The evolution of an electronics hacker

EB231E38-2E37-4231-99AA-2B2BAF6AD617I’ve been thinking about how far I’ve come in the world of electronics hacking, and how far down the “slippery slope” I’ve come. From what i can tell, my journey is not that unlike many others…

Step 1: Radio Shack
You buy an Arduino and do a few simple sketches. It looks really cute and easy to use — sort of reminds you of your college EE classes. How does this thing work? Will it fry my laptop? Will I short it out if I hold it while its on? Is this weird language I write my sketches? C++?? It looks like C++ but it acts weird… A few days later you have a blinking LED and light sensor. Maybe you go back to the store and buy a few shields because they make adding new parts a lot easier. Everything is nice and tidy. You avoid hooking up your own LEDs because you’ve heard its possible to blow them out and you can’t remember enough electronics from college.

Hello world = “Blink”

Step 2: Solderless Breadboards
Suddenly, you’ve graduated to putting things on a breadboard, which you gingerly connect to the pins of your Arduino Uno. Next thing you know you’ve gotten sick of those CdS photocells and bought a real I2C light sensor from Adafruit… you’re a little scared because you haven’t soldered a connection since college 15 years ago. Of course, at this point you’ve gotten a simple multimeter and a 10W soldering iron from RadioShack. A few days later, you realize that Limor Fried is a genius for making electronic components that are low-frustration and offer high reward for low effort. You start to think about making your projects permanent, but you aren’t sure how. You now breadboard your own LEDs and resistor them with a 2.2K because thats what the wiring diagram shows you.

Hello world = “A speaker and and LCD display”

Step 3: Make something real
Gosh you think, wouldn’t it be nice if I could actually made a protoboard that does something and is more permanent. You start hacking your own little thru-hold boards with a mess of wires on both sides. Everything is a big hack but … Volia! A stand-alone project! You start buying small Arduino breakout boards like the Mini or the Trinket. Now suddenly you start having opinions about project cases. The thought occurs to you to get a 3D printer or a laser cutter so you can make better ones. You are counting your lucky stars that every sensor or tool already has a pre-built Arduino library from Adafruit.

Hello world = “A hacked together light sensor”

Step 4: Loose the wires
Overnight, you realize that your existing projects are too boring. They all have to be tethered to your computer. They can’t stand on their own and collect data. You start learning how Lipo chargers work, and develop opinions about battery technology. You realize your multimeter won’t measure microamps and upgrade. Suddently you have a Xbee, a Moteino, and a LightBlue Bean floating around your desk and you’re building wireless sensors and toys. You aren’t quite sure when this happened, but somehow the idea of a pull up resistor no longer seems magical to you. You’ve not only tried the Yun, but you’ve developed rich opinions about software serial and wish it had two UARTs.

Hello world = “A wireless sensor network”

Step 5: Software and Hardware mastery
All at once, you realize that there are a bunch of little things you need to get good at. Previously you’d put off learning python, but now you want to write a GUI that reads from bluetooth and it would be so much easier just to use the sample code. You’ve previously avoided data sheets like the plague, but now you start to devour them, trying to figure out what pins you’d need for your new wild creations. At this point you’ve read the AVR data sheet twice. You know how to put it in low power mode and which pins are connected to timers. You now regularly pop open components from Sparkfun or Adafruit into Eagle to make sure you understand how the library works, but you’re still using it in “read only mode” because the Eagle software looks intimidating. You’re now using AWG 30 wire for everything you do since its “tidier”, and you’ve come to learn the magic of teflon coated wires. You are now giving Sparkfun and Adafruit a lot of business. Limor Fried and Paul J Stoffregen occupies the same part of your brain as Richard Stallman and Linus Torvalds. You’ve learned you can avoid resistoring your LEDs if you hook them up to PWM pins. You vaguely know that some people are making their own PCBs with SMT parts, but that’s something “you’ll never do.” Your managing your Arduino projects in Github.

Hello World = “Installing a new boot loader”

Step 6: Down the rabbit hole
How far can we take this? Now you’re starting to write your own sensor libraries, and routinely read through library files critiquing their memory use before you include them in your project. You’ve started to fork libraries and submit pull requests. You’ve discovered bugs in the Arduino pre-processor and grouchily stab in workarounds. You’re sticking PROGMEM everywhere you can in your code to strip out every last byte of your sketches. You’ve gotten over your fear of mains current and have cut open more than your fair share of power cables to wire up something that needs a power supply. You put in your first order to Digikey, and now 50% of your components come from swap fairs and ebay. You used to ignore Bill of Materials files but now they are something you scrutinize to learn more about what kind of “inventory” you need. You decide its time to learn exactly how MOSFETs work. Low power is now essential, and you’re busy thinking about how to put everything to sleep for the greatest amount of time. 10mA now feels like an embarrasing amount of current for any project to draw when its idle…

Hello World = “Talking to a new sensor with a hand-built I2C code”

Step 7: Maybe SMT isn’t so scary after all?
Up until this point, you’ve admired SMT parts but figured that messing with them is something only “real” engineers do. Now you’re upset with how “bulky” your designs are and you dedicate yourself to learning Eagle. You order your first SMT parts and promptly loose the first few you open somewhere on the floor. Now you need tweezers, flux and magnifying glasses. You’re first order from OSH Park comes in and you’ve soldered your first board. Suddenly bootloaders and the ICSP header are now vital in every new design. You’ve learned enough of Eagle’s quirks that its now starting to feel familiar, almost like an old friend. You’ve ordered a new sensor and out of curiosity you bug wire it because you don’t have any spare breakout boards. Digikey is on speed dial, and your getting a new shipment every other week.

Hello World = “Your own customized PCB with 0805 parts”

Step 8: SMT and beyond
You buy a hot air rework station. Now when you run out of AVR chips you first consider desoldering them from old bits of junk you have laying around. You’re getting into RF, and suddenly have opinions on frequency shift keying. It occurs to you to get a Ham radio license so your creations can be more “law compatible”. Your 3D printer feels more like an appliance rather than a toy, and you get stressed when you realize that the custom power supply you built for your heated bed doesn’t work anymore. You’ve crossed the rubicon on custom wiring harnesses and now have opinions about different crimpers and the right amount of angle to use for a JST XPH crimp. You’ve got sorting systems to hold all of your SMT parts, and you’ve become a hoarder of component footprints in Eagle. You start doing research on oscilloscopes because its “only a matter of time.”

Hello world = “Soldering your own dipole antenna”