Blinkenlights To Bootloader: A Guide To STM32 Development

While things like the Arduino platform certainly opened up the gates of microcontroller programming to a much wider audience, it can also be limiting in some ways. The Arduino IDE, for example, abstracts away plenty of the underlying machinations of the hardware, and the vast amount of libraries can contribute to this effect as well. It’s not a problem if you just need a project to get up and running, in fact, that’s one of its greatest strengths. But for understanding the underlying hardware we’d recommend taking a look at something like this video series on the STM32 platform.

The series comes to us from [Francis Stokes] of Low Byte Productions who has produced eighteen videos for working with the STM32 Cortex-M4 microcontroller. The videos start by getting a developer environment up and blinking LEDs, and then move on to using peripherals for more complex tasks. The project then moves on to more advanced topics and divides into two parts, the development of an application and also a bootloader. The bootloader begins relatively simply, and then goes on to get more and more features built into it. It eventually can validate and update firmware, and includes cryptographic signing (although [Francis] notes that you probably shouldn’t use this feature for production).

One of the primary goals for [Francis], apart from the actual coding and development, was to liven up a subject matter that is often seen as dry, which we think was accomplished quite well. A number of future videos are planned as well. But, if you’re not convinced that the STM32 platform is the correct choice for you, we did publish a feature a while back outlining a few other choices that might provide some other options to consider.

Continue reading “Blinkenlights To Bootloader: A Guide To STM32 Development”

Open-Source Cell Phone Based On ESP32

Over the past decade or so, smartphones have exploded in popularity and seamlessly integrated themselves into nearly every aspect of most people’s lives. Although that comes with a few downsides as well, with plenty of people feeling that the smart phone makes it a little too easy to waste time and looking to switch to something simpler, like an older-style flip phone. If this style of phone is more your speed, take a look at this DIY cell phone which takes care of everything a phone really needs to do. (Google Translate from French)

The phone uses an ESP32 at its core, with a SIM800L GSM modem to interact with the cell network, including retrieving the system time. A small battery is included as well as all of the support circuitry for charging it as well as a USB interface that can communicate to a PC. The operating system for the phone is built from the ground up as well, with a touch screen interface allowing the user to make phone calls, send text messages, store contacts, and a few other basic features. There’s also a GPS application though, allowing the phone to know basic location information.

Another perk of this device is that its creator, [Gabriel], made the design schematics, print files for the case, and the operating system software completely open source for anyone to build this phone on their own. Everything is available on the project’s GitHub page. It’s a fairly remarkable achievement, especially considering [Gabriel] is only 16. And, if you’re not one to eschew modern smart phone technology there are some DIY smart phones available to build as well.

Thanks to [come2] for the tip!

The ESP32 Doesn’t Need Much

For those looking to add wireless connectivity to embedded projects or to build IoT devices, there is perhaps no more popular module than the ESP32. A dual-core option exists for processor intensive applications, the built-in WiFi and Bluetooth simplify designs, and it has plenty of I/O, memory, and interoperability for most applications. With so much built into the chip itself, [atomic14] wondered how much support circuitry it really needed and set about building the most minimalist ESP32 development board possible.

Starting with the recommended schematic for the ESP32, the most obvious things to remove are a number of the interfacing components like the USB to UART chip and the JTAG interface. The ESP32 has USB capabilities built in, so the data lines from a USB port can be directly soldered to the chip instead of using a go-between. A 3.3V regulator eliminates the need for many of the decoupling capacitors, and the external oscillator support circuitry can also be eliminated when using the internal oscillator. The only thing [atomic14] adds that isn’t strictly necessary is an LED connected to one of the GPIO pins, but he figures the bare minimum required to show the dev board can receive and run programs is blinking an LED.

Building the circuit on a breadboard shows that this minimalist design works, but instead of building a tiny PCB to solder the ESP32 module to he attempted to build a sort of dead-bug support circuit on the back of the ESP32. This didn’t work particularly well so a tiny dev board was eventually created to host this small number of components. But with that, the ESP32 is up and running. These modules are small and compact enough that it’s actually possible to build an entire dev board setup inside a USB module for a Framework laptop, too.

Continue reading “The ESP32 Doesn’t Need Much”

ESP32 Freezer Alarm Keeps Tabs On Tricky Door

Leaving your freezer door open accidentally is a great way to make a huge mess in the kitchen. [Guy Dupont] had a freezer that would regularly fail to close properly, and was sick of the regular meltdown events. Thus, he whipped up a very digital solution.

The build combines an ESP32 with a reed switch, which is activated by a magnet on the freezer door. If the freezer door is open, the reed switch similarly remains open. The ESP32 checks the switch status every few minutes, and if the door remains open for two consecutive checks, it raises the alarm. A notification is sent to [Guy] via WiFi so that he can rectify the situation. The rig runs off a 400 mAh battery, which lasts for just over three weeks running door checks at two minuteĀ  intervals.

Based on [Guy]’s YouTube video, it appears the freezer door is jamming up against the wall. Perhaps shoving the freezer into a better position would help, though we suspect he would have thought of that first. And, in his own words, “That would be a very boring YouTube video, wouldn’t it?”

It’s not the first fridge alarm we’ve featured, and it won’t be the last, refrigeration gods willing.

Continue reading “ESP32 Freezer Alarm Keeps Tabs On Tricky Door”

Sand Drawing Plotter Runs On ESP32

Humans have always drawn lines in the sand, whether it’s to communicate a plan of attack or to indicate metaphorically a very real boundary. It’s also something we do just for the aesthetic pleasure, and this plotter from [aidenvigue] is great at performing in just that role.

The plotter traces patterns in the circular sand tray by dragging a small marble with a magnet. This is achieved with a pair of NEMA 17 stepper motors, set up in a polar coordinate fashion. One stepper motor controls the angle, while another motor controls the marble’s distance from the center point of the circle. It’s a simple way to build a circular plotter, and works far better than a Cartesian setup would for this geometry. The build uses an ESP32 as the brains of the operation. It hosts a web interface that allows various patterns to be selected and run on the device. It also runs a set of addressable SK6812 LEDs that light the sand rather nicely.

We’ve seen some great sand plotters before, and have always been particular fans of the larger variety. Video after the break.

Continue reading “Sand Drawing Plotter Runs On ESP32”

An ESP32 Dev Board As A Framework Laptop Module

The Framework laptop will no doubt already have caught the eye of more than one Hackaday reader, as a machine designed for upgrade and expansion by its users. One of its key features is a system of expansion modules. The modules are USB-C devices in a form factor that slides into the expansion bays on the Framework Laptop. Framework encourages the development of new modules, which is something [Spacehuhn] has taken on with an ESP32-S3 development board.

The board itself is what you’d expect, the ESP is joined by a multicolor LED and one of those Stemma/Quiik connectors for expansion. The case is handily provided by Framework themselves, and all the files for the ESP32 module can be found in a GitHub repository. We’re guessing it will find application in experimenting with WiFi networks rather than as a standalone microcontroller. Either way, it shows the route for any Framework owners into making their own add-ons. Take a look, we’ve placed the video below the break.

As you might expect we’ve given a lot of coverage to the Framework laptop since its launch, in particular, our colleague [Arya Voronova] is a fan and has shown us many alternative uses for the parts.

Continue reading “An ESP32 Dev Board As A Framework Laptop Module”

Much Better VGA From An ESP32

The ESP32 series from Espressif have been a successful line of products, offering a powerful microcontroller with on-chip wireless networking. There’s a snag though in their practice of calling all of them ESP32s despite wildly varying specifications and even different processor cores, such that it’s easy to lose track of exactly what the chip in front of you can do. [Bitluni] was faced with updating his VGA library to include a newer variant, and was pleasantly surprised to find that it includes a far more capable display peripheral which enables significantly higher resolutions than previously.

The part in question is the ESP32-S3, a version of the chip with the dual Extensa cores we’re familiar with from earlier versions, but the interesting addition of an LCD controller. His previous VGA on ESP32 used the I2S peripheral and sacrificed some of the available bits to create sync pulses, while this version is not only faster but also includes dedicated sync hardware. He can now do up to 16-bit colour in as much as 1024×768 resolution as can be seen in the video below the break, though this feat requires a slightly out of spec framerate that only works on some screens. It’s by no means perfect because the peripheral is intended for LCD rather than VGA use, but it’s pushing microcontroller VGA to new heights and we look forward to any other uses people will put it to.

We covered the original Bitluni ESP32 VGA library when it first appeared.

Continue reading “Much Better VGA From An ESP32”