Hacker News new | ask | show | jobs
Ask HN: What hardware hobby would you recommend to a software engineer?
8 points by merek 15 days ago
I'm an experienced software engineer with essentially no hardware experience.

Areas like PCB design, embedded systems, SDR and biohacking all seem interesting, but I'm not sure where to begin.

I'm hoping to find a hobby with a low barrier to entry, supportive community, and exciting future.

Do you have any hobbies involving hardware that you would recommend? What do you like about it, and what advice would you give to new comers?

5 comments

I might be biased here but drones in general, though the barrier isn't necessarily low. Learning how to fly one on a simulator is a question of 10-hours of crashing behind a screen(you gotta push through, a few hours into it, everything suddenly clicks). Learning how to build one, which parts to use, what you should and shouldn't do (motors, flight controllers, batteries, chargers, radio protocols, video, frequencies, legal restrictions, frames, propellers, gps, beepers, protocols and a ton of other) is a science in it's own right. Same with configuring the drone you've just built. But once you figure those two out, you can have endless fun: to this day I am still finding it hard to believe how easy it is to transfer your flight time in a simulator to the real world. Personally I had spent around 100 hours flying different drones on simulator and the day I went out, it felt like I've done it thousands of times before.

Community - it's generally supportive but can be pretty useless if you wanna take a single step out of the norm - you're on your own pretty much - you get a ton of shrugs and "idk".

I'll never forget the time a fellow member of PS1 in Chicago, a programmer, had his intuition broken by an Arduino and a set of LEDs. He built a project pretty much as described but as the Arduino turned on multiple outputs, each LED got dimmer.

It turned out that he knew that it didn't matter which side of an LED a current limiting resistor was on, the circuit worked identically. It thus seemed reasonable to refactor several separate resistors into one, to save parts.

A perfectly reasonable conclusion from a programmer perspective, turned out wrong in terms of circuits. Practical lessons were learned.

Getting a 3d printer and learning CAD offers similar challenges, and expansion of your world view. Some intuitions will turn out to work just fine, the exceptions are where you learn new things.

FPGAs are a good way to get into Verilog. The Arty-7 series from Xilinx/AMD is affordable.

Another option is the BeagleV-Fire which uses a Microchip RISC-V plus FPGA.

You could also take the Arduino route which has dozens of options.

The ESP32 is the new Ardiono!
Played with the old Tensilica versions, haven't seen the RISCV one yet but you're right. ESP32 is probably a better option today than Arduino.
Another vote for getting into the Arduino world, which includes the ESP32.

To learn the basics there's still no better route than getting an Arduino Uno (or clone) starter kit and learning about digital electronics. The boards are programmed in C++ through the Arduino IDE. As you progress you could program larger-memory boards with python. Some people use other languages like Rust. You aren't limited to small AVR microcontrollers, you can program other microcontrollers such as ESP32, STM32, Raspberry Pi, etc. If you get to the point of having PCBs made you can use KiCad to design the boards.

There is a huge amount of online information and help available. Companies like Arduino, Sparkfun and Adafruit also have online material, some specific to their products, some general.

Apart from the actual hardware all the software used is free. Microcontroller boards, while not free, are cheap but powerful.

I'm a retired software engineer with an out-of-control microcontroller hobby.

https://docs.arduino.cc/

https://learn.adafruit.com/

https://www.sparkfun.com/documentation

https://www.raspberrypi.com/documentation/microcontrollers/

https://www.kicad.org/

https://www.amazon.com/s?k=esp32-c3+board

I’ve had fun with arduino.