GithubHelp home page GithubHelp logo

Hits

Hi, I'm Gabriel Staples 👋 profile for Gabriel Staples on Stack Exchange, a network of free, community-driven Q&A sites

Working hard to make the internet more complete.
>> Become a sponsor on GitHub! <<

I'm originally an Idaho country guy who grew up primarily in a small farming town, on a little farm, near Boise, ID. Where I grew up, town sizes are measured in the quantity of stop lights we have. Some towns are so small they have zero. My town was a 3 stop light town. Today, it has more. Before that we were in just a 1-blinking-light town. I grew up jumping off cliffs, bridges, and railroad trestles and doing flips off of rope swings into rivers, canals, and reservoirs. For work, I shoveled poo and cleaned cow stalls, dug ditches with a pick, chopped wood, bucked hay, fed cows, irrigated fields with siphon tubes, weeded gardens, and mowed grass.

Now, I live in the San Francisco Bay area and work in San Francisco.

(click to expand and learn more)

I'm trying to balance my life somehow as a husband, father, active Christian, and multi-faceted engineer. When I'm not busy trying to figure out how to better learn my job as a senior embedded software engineer, I'm trying to spend time with my two kids and wife, figure out how to make a Jekyll-based website so I can write about my thoughts, and spend some time flying my radio-controlled airplanes or building or creating something.

I also programmed this gadget and sell it on Amazon, and trying to do the business side of things and handle customer support takes a lot of my spare time.

I am big into RC aircraft and embedded programming. Very fun stuff. I love airplanes and all things that fly! I love building control systems to make autonomous vehicles autonomous. I'm an aeronautical engineer by trade, but I also do a lot with electronics, electrical engineering, and computer science/programming (including a lot with C/C++ in Arduino and some lower-level AVR code). That's how I got my job I have today. Here's my website, with some articles on the aforementioned topics, showing a tiny subset of my work: http://www.ElectricRCAircraftGuy.com. More recently, I created https://gabrielstaples.com to have an avenue to write about anything.

I strive to be a polyglot. I have studied both foreign languages and programming languages many thousands of hours.

I speak English. (Hablo inglés.) (Je parle anglais.) (أنا أتكام الإنجليزية.)
Hablo español. (I speak Spanish.) (Je parle espagnol.) (أنا أتكلم الاِسبانية.)
Je parle un peu de français. (I speak some French.) (Hablo algo de francés.) (أنا أتكلم بعض الفرنسية.)
Eu falo muito pouco de português. (I speak very little Portuguese.)
انا اتكلم العربية قليلاً جداً. (I speak Arabic very little.) (Hablo muy poco de árabe.) (Je parle un petit peu l'arabe.)

I love learning about foreign people, eating foreign foods, and speaking foreign languages. I have put many thousands of hours into foreign language study--just as I have done for aeronautical engineering, electrical engineering, programming, electronics, and controls. I speak Spanish really well and have even helped translate official medical training documents. French is my next best, and is my current area of study. Next comes Portuguese, which I have the least formal training in, but speak next best because it's like a blend of Spanish and French. Lastly, comes Arabic. Although I technically have a minor in it, I'm not conversational in the slightest. Nevertheless, I can read and write it, and I know the alphabet. I have put a great deal of effort into proper pronunciation so I can read and write and make all the sounds.

Here's one of my favorite projects I've ever done! (Autonomous quadcopter flight controller I wrote myself)

Quadcopter Physics-based Flight controller demo w/lead point navigation & Arduino interface to RC Tx.

See some of the code from an Arduino to the back of an RC Tx (required to duplicate this project yourself) here: https://github.com/ElectricRCAircraftGuy/eRCaGuy_PPM_Writer.

Flight Controller Videos:

  1. 1/3 - Autonomous quadcopter guidance and control (physics-based pure pursuit simulation)
  2. 2/3 - Autonomous quadcopter guidance and control (PID-based pure pursuit demonstration)
  3. 3/3 - Autonomous quadcopter guidance & control (physics-based pure pursuit demonstration) <=== my favorite video

You can find me at many places online:

(click to hide)
  1. My Websites (listed newest first):
    1. GabrielStaples.com - my newest and current, anything-I-want Jekyll-based website. Topics I write about here include engineering and programming of course, but I want this to literally be a place I can write about anything, so it will also cover some of my thoughts and knowledge on finances and life skills, such as general computer skills, refinancing a house, calculating loan costs, and fixing my bike or phone. It is also where I can write about politics and religion. This is a website that is truly my own. Being a Jekyll site, this also allows me to write in markdown (same as this readme itself), which makes writing less burdensome.
    2. ElectricRCAircraftGuy.com - my slightly-older, general-purpose engineering and programming website.
      Examples of some of my more-popular articles (click to expand):
      1. Restoring/Recharging Over-discharged LiPo (Lithium Polymer) Batteries!
      2. Parallel Charging Your LiPo Batteries
      3. The Power of Arduino
      4. Propeller Static & Dynamic Thrust Calculation - Part 1 of 2
      5. Arduino Power, Current, and Voltage Limitations
      6. Using the Arduino Uno’s built-in 10-bit to 16+-bit ADC (Analog to Digital Converter)
      7. Arduino micros() function with 0.5us precision - using my Timer2_Counter Library
    3. OldSite.ElectricRCAircraftGuy.com - my oldest website, with various useful articles which are still found here and only here. See the navigation links in the top-left corner for more articles. Examples:
  2. Forums & Community Sites (these are just a few):
    1. Wikipedia.org--@ERCaGuy - see my contributions to Wikipedia here.
    2. cppreference.com--@ERCaGuy - see my contributions to the cppreference.com C and C++ reference documentation here.
    3. Gumroad.com--@gabrielstaples - download some things I've made here. Note: Gumroad is intended to be a place you can BUY (pay $$ for) things. So, I have some downloads for sale here, though most are no cost ($0.00) but allow an optional payment or "donation" to support my work if you so choose.
    4. Instructables.com--@ElectricRCAircraftGuy - see my Instructables articles here.
    5. FliteTest.com--@panther3001 - see my FliteTest articles here.
    6. RCGroups.com--@panther3001
    7. Forum.arduino.cc--@panther3001
  3. LinkedIn - follow me on LinkedIn!
    • Please DO follow me on LinkedIn! Please don't try to add me as a connection unless I can vouch for your skills.
  4. All of my "Stack Exchange" Sites (incl. Stack Overflow)
    (click to expand)
    1. Stack Overflow
    2. Ask Ubuntu
    3. Arduino
    4. Super User
    5. Electrical Engineering
    6. Unit & Linux
    7. etc.
  5. GitHub
  6. YouTube--@eRCaGuy (ElectricRCAircraftGuy) Channel. Examples:
  7. Instagram--@ercaguy
  8. Twitter:
    1. Twitter (Hobby)--@eRCaGuy
    2. Twitter (Personal)--@GabrielStaples3

Gabriel Staples's Projects

ercaguy_backup icon ercaguy_backup

Easily back up your files on any Linux system via a Bash rsync wrapper which supports dry-runs, include & exclude files, and nice logging.

ercaguy_buttonreader icon ercaguy_buttonreader

-Based on the main Arduino "Debounce" example, read a button or switch's latest action or state easily, so you can act when the button is pressed OR released!

ercaguy_codeformatter icon ercaguy_codeformatter

A collection of scripts & configuration files to quickly and easily format your code (by calling clang-format, for instance)

ercaguy_dotfiles icon ercaguy_dotfiles

.bashrc file, terminal prompt that shows current git branch, Arduino setup, Eclipse setup, git diff with line numbers, helpful scripts, improved Linux productivity, etc.

ercaguy_engineering icon ercaguy_engineering

General engineering equation sheets, notes, knowledge, links, etc, including Aeronautical Engineering

ercaguy_eventreader icon ercaguy_eventreader

-the most thorough and robust button and event debouncing algorithm for Arduino that man has ever known :)

ercaguy_getmedian icon ercaguy_getmedian

A very thorough C++ implementation of a median function/media filter; it is overloaded so it can handle any date type; NB: THE ARRAY IS SORTED IN PLACE, SO IF YOU DON'T WANT YOUR PRIMARY ARRAY SORTED, PASS IN A COPY OF IT INSTEAD

ercaguy_hash_table icon ercaguy_hash_table

Hash table implementation in C; compatible with C++. Deterministic. Real-time. Safety critical.

ercaguy_hello_world icon ercaguy_hello_world

"hello world" demos & templates for various languages, for beginners and experts alike, incl. gcc build commands for C & C++

ercaguy_peer2peer icon ercaguy_peer2peer

A peer-to-peer send and receive synchronous half-duplex communication protocol with handshaking and auto-timeout, that requires only 2 (and any 2) pins, no timers, and no interrupts

ercaguy_ppm_writer icon ercaguy_ppm_writer

An >=11-bit, jitter-free (hardware-based) RC radio PPM signal generator for the Arduino!

ercaguy_pyterm icon ercaguy_pyterm

A datalogging serial terminal/console written in Python (I hope to extend it to Telnet and others later)

ercaguy_pytime icon ercaguy_pytime

A simple milli & microsecond-resolution timestamp & loop-synchronization module for Python

ercaguy_timercounter icon ercaguy_timercounter

An Arduino micros()-like function (encapsulated in a library) with 0.5us precision (since the built-in Arduino micros() function has only 4us precision)

ercaguy_touchlamp icon ercaguy_touchlamp

-an Arduino-based touch-lamp, using capacitive touch, with NO touch library (just a function) and NO additional touch hardware (just an Arduino and a wire)

ercaguy_unicode icon ercaguy_unicode

A few unicode-compatible tools and functions for C, such as tolower() and case-insensitive strcmp()

ercaguy_wdtimer icon ercaguy_wdtimer

-use this code to use the watchdog timer to attach an interrupt that automatically perform some action every ___ms (user-defined). The benefit here is that your attached function is guaranteed to execute at the interval you specify (it can't get blocked by delay() or other functions in your main loop), and that is uses the *watchdog timer*, thereby keeping your other timers (ex: Timer0, Timer1, Timer2) free to be used by other libraries!

ercaguy_x9c_digital_pot icon ercaguy_x9c_digital_pot

Arduino driver for the Renesas X9C102 (1k), X9C103 (10k), X9C503 (50k), and X9C104 (100k) family of digital potentiometers.

evtol_simulation icon evtol_simulation

C++ skills demonstration: a simulator to simulate some eVTOL aircraft battery usage, range, recharging and stuff

fit-waving-hand icon fit-waving-hand

-gimmicky trinket I programmed at the Florida Institute of Technology (FIT) using at the minimum a light sensor and two servos with a toy hand on a stick to wave at people as they pass by

freefilesync icon freefilesync

- a copy of FreeFileSync source (~v9.7 or later) from https://www.freefilesync.org/ that I'm patching to make buildable in Linux Ubuntu

freertos icon freertos

'Classic' FreeRTOS distribution. Started as Git clone of FreeRTOS SourceForge SVN repo. Submodules the kernel.

fzf icon fzf

:cherry_blossom: A command-line fuzzy finder

gamebone icon gamebone

A simple handheld electronic game based on an ATtiny85.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.