Work
Projects, with the decisions left in.
Case studies below are written from public repositories, my Upwork portfolio, and completed contracts. Private client names stay off the page. Where a GitHub link is shown, the repository was public when this site was built.
Case studies
01
Sayapatri contactless payment terminal
Card tap → ESP32 → Wi-Fi or GSM → payment flow
Two ESP32 payment terminals. One takes the amount from a phone over BLE and joins shop Wi-Fi. The other uses a keypad, a battery, and a cellular modem.
02
Addify 3D printer
Touch panel → STM32 TouchGFX → PID thermal control
The Addify printer’s thermal UI on STM32: TouchGFX screens from the supplied designs, PNG assets, PID on the heater, and a developer mode for the display and touch.
03
Remote hive monitor
Weight, climate, GPS, solar → ESP32 → MQTT → ThingsBoard
A field node for a hive: weight, temperature and humidity, GPS, and battery or solar voltage, reported to ThingsBoard. A cellular modem is part of the unit.
04
Touchscreen data logger
Sensors → ESP32-S3 → LVGL panel → log
ESP32-S3 logger for 4.3 inch and 7 inch panels. It takes temperature and pressure over serial and BLE, stores the log, and can print or plot it.
05
Clinical cart kiosk
QR on Pi → UART → ESP32-S3 → ST7701 vitals UI
A Raspberry Pi reads a QR code and passes the identifier over UART to an ESP32-S3, which shows patient vitals on an RGB LCD.
06
Perfume dispenser
Button → Nayax MDB → Raspberry Pi → relay
A Raspberry Pi perfume dispenser. A Nayax reader takes a card over MDB, and the Pi pulses one of five relays only after the payment is approved.
07
Stock tools scale
HX711 + MCP9700 → BLE setup → MQTT → ThingsBoard
An ESP32 scale that reports weight and temperature to ThingsBoard. A phone sets Wi-Fi and the server over BLE, so the unit does not need a laptop after the first flash.
08
Medication reminder
DS3231 + PIR + DHT22 → ESP32 → HTTP → ThingsBoard
An ESP32 medicine box that alarms on a schedule, treats nearby motion as a taken dose, and posts temperature, dose, and help events to ThingsBoard.
09
SMS relay to Azure IoT Hub
SMS → A7670 → FreeRTOS queue → HTTPS → Azure IoT Hub
LilyGo T-Call A7670 firmware that takes incoming SMS off the modem and posts each message to Azure IoT Hub, with a queue so a burst does not drop on the floor.
10
ESP32 production flasher
Host ESP32 → UART bootloader → target flash → OTAdrive on the host
One ESP32 flashes another: bootloader, partition table, application, and SPIFFS over UART, with status on an OLED. The flasher itself updates from OTAdrive.
11
ESP32 4G hotspot
4G modem → PPP → ESP32 softAP → phones and nodes
ESP-IDF firmware for a LilyGo A7670 board that brings up a cellular data session and shares it as a Wi-Fi access point for nearby devices.
12
Wireless ESP32 game prototype
LED remote → ESP-NOW → central unit → DFPlayer
LED button remotes and a central sound unit. The radios talk with ESP-NOW. The central unit plays clips from a DFPlayer.
13
UWB distance tracking
MaUWB ESP32-S3 → ranging
Firmware on the Makerfabs MaUWB ESP32-S3 module for distance tracking.
14
Vending machine controller
Pulse sense → controller → 3.5 inch SPI display → A7670
A vending controller with pulse sensing, a 3.5 inch SPI display, and a LilyGo A7670 for the link.
15
E-paper weather nodes
Weather data → ESP32 → e-paper → deep sleep
Private weather firmware for LilyGo T5 e-paper boards, including a 4.7 inch panel and a T5-ePaper-S3, with deep sleep between updates.
16
Low-power float tracker
ULP wake → GPS → GSM SMS
A compact ESP32 tracker for a remote float: the ULP coprocessor wakes the board, a GPS gives position, and a GSM modem sends the update by SMS.
Completed Upwork contracts
These finished with a 5.0 rating. Each page stays with the job title and the client’s words.
01
Barcode and QR reader on ESP32
A completed Upwork contract to integrate a barcode and QR reader with an ESP32. Rated 5.0.
02
RP2040 flashing-lights PCB
Firmware for a custom RP2040 / Raspberry Pi Pico PCB: buttons and lights, written in the Arduino IDE, with a virtual setup used to test them. Rated 5.0.
03
Arduino data to Excel or Google Sheets
A short Upwork job: Arduino firmware that uploaded readings to Excel or Google Sheets, finished inside a two-day deadline. Rated 5.0.
04
Halio NPU with Ollama on Raspberry Pi
A completed Upwork job: Raspberry Pi, Halio NPU, and Ollama working together. Rated 5.0.
05
Arduino motorbike code
Arduino firmware for a motorbike project. A prototype came first, then the final code. Rated 5.0.
06
Self-driving car
A completed Upwork project titled Self driving car. Rated 5.0. The client wrote about the coding and the electrical circuits.
Smaller public repositories
- Bluestar energy meter logger Logger for a Bluestar P200-T energy meter.
- HiveMQ + Protobuf on A7670 MQTT with Protobuf on a TTGO-A7670.
- Door unlock Mongoose OS firmware that pulses a door lock from Blynk.
- MQTT pump controller NodeMCU firmware, Mongoose OS, MQTT in and out for a pump.
- HTTP button ESP8266 button that calls an HTTP endpoint, Mongoose OS.
- Azure audio logger Audio-detection logger reporting to Azure IoT.