HACKER Q&A
📣 tim--

What is the best way to learn how to build your own hardware?


For the last few years, I have really had a strong urge to build a smart device. Basically, a mixture of a Google Home, with a light that can remotely change colours.

The thing is, I don't really know where to start when it comes to actually building a device that would be able to do this.

Does anyone have any recommendations on the best way for me to start this journey? Any books, YouTube videos or websites that might guide me on the right path?


  👤 the__alchemist Accepted Answer ✓
As you learn, keep your focus on this project/idea you'd like to build. Use tutorials and examples only to help you get to this goal; take detour as required. I think this approach will be easier to stay motivated with, than doing tutorials start-finish.

ESP32 is a popular MCU that connects to WIFI, and has cheap dev boards: I recommend you find a tutorial for this MCU to start with. A downside, is that its official docs are lacking compared to other MCUs, like the STM32.

Once you have something working using a dev board, learn PCB design software; a nice free one is KiCad. JLCPCB is a cheap, fast service that will create your PCB, and solder the smaller components on to it. You will have to hand solder the bigger ones.

Programming languages suitable for this are C, C++, and Rust. Are you proficient in at least one of them?


👤 ChrisGammell
Depends on how much of the process you'd like to do! If you want to build the actual PCBs, I'd suggest starting by learning how to blink a single LED on a PCB. I have two video series that teach that:

* Shine on you crazy KiCad - Blink an LED using a RPi https://contextualelectronics.com/courses/shine-on-you-crazy...

* Getting To Blinky - Blink an LED using a 555 https://contextualelectronics.com/gtb

Both of those series will teach you how to use KiCad, which is open source and always improving.

From there, you can learn how to design in an ESP32 or similar module. Or if you'd like, there are some other courses on the CE site that show you how to build other devices.

As the other comments alude to, you'll need to dive into firmware and higher level software on the web side of things. I always recommend adafruit and sparkfun boards and tutorials to get started with that quickly. Building off of a known dev board is a good way to make sure you're actually making progress and not just troubleshooting your own hardware. Both of those companies create open source hardware, so you can take the files and use those as a reference or even as a starter project for whatever you want to build.



👤 tape_measure
I would start with Arduino. It's the most common platform for this type of thing. There are plenty of online resources. Adafruit is a good combined resource and store. At minimum, you'll need:

The lights: maybe this is a good start https://www.adafruit.com/product/1461

An Arduino: https://www.adafruit.com/product/3345

A wifi or ethernet shield (a shield stacks on the Arduino board and add a function): https://www.adafruit.com/product/2971

A power supply: https://www.adafruit.com/product/658

You may also want a soldering iron and a nice case if this is a permanent project.

You could start with a raspberry pi, which will have a lower investment, but the Arduino's simplicity is great for learning.


👤 roland35
Check out hackaday.com, there are lots of great examples of all sorts of hardware projects on there! Some are definitely similar to the level of functionality you are looking at.