Petar Marinov

Electronics and Automation eng.

I decided to write a bit about my experience programming controllers.

Since I cannot write complex code, I use FLProg—a completely free visual programming software created by Sergey Glushenko (FLProg Club — official FLProg project website). It is very convenient and easy to use (and, as far as I know, currently has no equivalent). There is no need to write actual code; it is entirely visual, block-based programming (similar to Siemens LOGO! Soft Comfort). One drawback is the lack of a simulation feature, but since the controllers are inexpensive, you can simply test your programs directly on the hardware. There is a great option for creating custom blocks, and a rich collection of such blocks is available at “FLProg User Blocks.” I am currently using version 8.2.3; newer versions do not include the block for RemoteXY (Remote control Arduino – RemoteXY), which I use almost all the time.

You can find many tutorials on how to use FLProg on YouTube, available in both English and Russian. You can build almost anything with FLProg—web interfaces, remote control via Home Assistant and/or RemoteXY, control through Telegram, and more.

The software does have its downsides, however. There are quite a few bugs; for instance, I have never managed to update microcontrollers over Wi-Fi, even though the author claims it should be possible. Additionally, when compiling code generated by FLProg, the Arduino IDE sometimes throws errors—though these are easily fixed with the help of AI (I’ve used Claude for this).

Some custom blocks also fail to work or cause issues on certain controllers. However, everything built into the program itself works flawlessly (based on what I’ve tested—and I’ve tested quite a lot). This includes UART communication, Nextion touch panels, connecting 2 or 3 controllers via Wi-Fi on a local network, and working with I2C expansion modules (such as the MCP23017 16-pin GPIO expander, ADS1115 16-bit ADC, MCP4725 12-bit DAC, INA219 A/V meter, and SSD1302 OLED display), among many others.

The controllers I have tested the most are the ATmega328P, ATmega2560, ESP8266-12F, and ESP32 WROOM.

I have devices based on the ATmega328P, ESP8266-12F, and ESP32 that have been running in industrial and home environments for over 3 years without ever freezing.

With the ESP8266-01, a restart is occasionally required (1–2 times per year).