It's been a while since the last update, but lots of boards have been getting built, new features implemented and tested, and general fun had all around. Perhaps some of those details will be a post for another day.
The most interesting board this time around is the IoT soldering iron:
To be more precise, it's a JBC controller, inspired by a similar open-source project, AxxSolder, but with USB Type-C PD, IoT, and a buck converter as a power stage. The Type-C PD provides a convenient, universal connector, while the IoT capability allows a PC interface to adjust parameters on-the-fly and monitor graphs (in addition to the more traditional built-in encoder / screen interface).
The buck converter is more interesting - partly this is meant as a tech demonstrator / proof-of-concept of a generated (as is in line with the electronics design HDL project's goals) custom synchronous buck converter, and part of it is meant to accommodate a wider range of iron tips (with different resistances) and input voltages. And maybe also be cleaner from an EMI standpoint, since it should be a more DC waveform instead of a very square wave running through a long loop of wire.
It's also got a dual-packed opamp, which combines the opamps used in the thermocouple amp and current sense block. Not all that new conceptually in light of our SCF paper that introduced the basic logic last year, but it's nice to have it hardware proven.
On the open-source firmware side, this all runs ESPHome, which among other things, provides simple config-based firmware generation with a builtin IoT dashboard. Since ESPHome (currently) includes neither USB-PD nor a synchronous converter, those have been custom built, and the code (ESPHome config + custom components - which were not trivial to write) is all open-source on GitHib if you have (or want to make!) an IoT USB-PD board. All the hardware is baseline functional (and then some) - the PD negotiates a configurable voltage, and the buck circuit... bucks.
ESPHome config of the custom component
It even bucks with synchronous PWM with deadtime, using the ESP32 MCPWM module, and blanking to read the thermocouple!
In the grander scheme of things, this was just one piece of a larger panel, which also included other more advanced boards like a USB key where the PCB is the USB contact, and a IoT fan driver with a discrete ESP32-C3 and RF circuit (which worked, once the split ground plane was fixed with copper tape 🤪 and blobs of solder).
Surprisingly, we did not get any comments from the board house about the weird geometry of this panel