More soldering stations, are you nuts? Ok maybe, but probably no. One thing you learn about electronics projects after you finish them, is that you wished you would have known things you didn’t know starting out, and you’ve probably also left things out that you shouldn’t have. This is what gave way to the STM32 JBC station.
I’ll just go over a couple of the upgrades that let to the creation of this station. First off, the previous stations had mostly been designed around simple displays that did not take up much processing power. I had run into problems when trying to drive more complex OLED displays. Many of these problems were minimized when changing the heating code to a nice tight interrupt service routine, (ISR) thereby getting the important stuff done first, and leaving the display updating to be done when there was free time. Still, when driving larger displays, a faster processor is nice to have.
An important update was also made in the way zero volt crossing was detected. In the previously used method, the AC sine wave was reduced to a square wave, which worked for triggering on the falling edge, but not on the rising edge; as at this point trying to switch is going to be too late. So, in the previous stations, switching had to be done on only falling edges of the sine wave, which lead to 50% less opportunity to switch, leading to a looser feedback loop, therefor looser regulation. While the stations that use this method seem to have pretty good regulation anyway, I decided that a better method should be used if designing a newer station. As we are using a STM32F103 which supports USB serial communication, we might as well add a USB port, as well as SPI, for supporting something other than only I2C displays.
With these updates, we are free to extend the station a bit more in using larger displays featuring different communication protocols, as well as other better regulation and a few other minor improvements not worth mentioning.