DEV Community

Discussion on: A UI for your room

ssimontis profile image
Scott Simontis

I would check out these ESP32 modules. Very tiny screen, Arduino-compatible, but nothing stopping you from getting the ESP-IDF SDK and twiddling all the bits yourself. I have heard complaints of poor documentation on these modules however. I have a 5% coupon for their website I am not going to use if you decide to go that route, just let me know. ESP32s are some of the cheapest microcontrollers you can find and they generally have wi-fi and Bluetooth built in.

My other recommendation would be going with a STM32 microcontroller, if you get a F469I-DISCO evaluation board, it has the touch-screen attached to the developer board. STM32 devices use ARM Cortex M processors, which pretty much dominate the embedded industry. You can find Arduino libraries for them, or they have a SDK that they have improved a lot from its previous rendition.

Start small. It's hard because you realize you can do so many cool things with the device, but it's a lot of new knowledge. You're going to need to learn the basics of electricity so you can safely connect your microcontroller to peripherals without damage. You're learning a new machine architecture and memory-mapped I/O to control different devices.

The datasheet is your friend. It is incredibly intimidating and at least 1,000 pages, but literally everything you need to know about every single component on the board is within it. There's lots of Application Notes (at least from ST Microelectronics) that are much shorter and capture small, practical aspects of the system.

Adafruit is a maker-focused site for parts, the main distributors in America for electronic components are Arrow, Digikey, Mouser and Newark. I like Arrow and Digikey just because I have used them for years. Their sites are intimidating because there is so much stuff listed, but it is a lot safer than Amazon or generic sites because there is a huge counterfeit industry with microcontrollers.

Blinking an LED is normally step 1, and from there you can try to get more complicated. Stop the blinking at the press of a button. Write the number of times it blinks to Flash memory. Keep building up step by step.