Product firmware
ESP32 (Arduino, PlatformIO, and ESP-IDF), AVR/Arduino, STM32/GD32, and RP2040. The goal is behaviour that still works after a reboot, a bad network, and a firmware update.
Services
I take hardware products from a bench sketch to something you can provision, flash, and leave running. The list below is the work I have already shipped.
ESP32 (Arduino, PlatformIO, and ESP-IDF), AVR/Arduino, STM32/GD32, and RP2040. The goal is behaviour that still works after a reboot, a bad network, and a firmware update.
BLE provisioning (including Nordic UART-style command protocols), Wi-Fi captive portals, ESP-NOW, and cellular: SIMCom A7670 / LilyGo T-Call, SMS, PPP, and a 4G hotspot.
MQTT and HTTPS into ThingsBoard, Azure IoT Hub, and HiveMQ. Credentials in NVS, a queue when the link drops, and a way back into setup mode when the network is wrong.
Load cells, temperature and humidity, PIR, RTC, e-paper, TFT and RGB LCD, LVGL / SquareLine, and TouchGFX. Also QR and barcode readers, relays, and door locks.
Python gateways, kiosks, and camera-side work. Includes a completed job bringing a Halio NPU up with Ollama.
A host ESP32 that puts a target into the ROM bootloader and writes bootloader, partition table, app, and SPIFFS, then takes its own updates from OTAdrive.
I start from the part that will fail in the field: the radio, the sensor front-end, the display bring-up, or the cloud path. The first proof is a small slice on real hardware, then the rest of the behaviour around it. Documentation is part of the job: pin maps, how to flash, and what to try when a unit will not join the network.
Languages I use on this work are C, C++, and Python. MATLAB only comes up if the job is actually that. I do not lead with machine learning unless the product needs it. The Halio NPU and Ollama job is the one to read for on-device models.
Email kattelroshan1@gmail.com with the board, the radio, and what has to happen in the first week. Upwork is still open at $30/hr, more than 30 hours a week, from Kathmandu. Upwork profile.