Services

Firmware, radios, and the cloud link.

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.

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.

  • ESP32
  • ESP-IDF
  • STM32
  • C/C++

Radios and field setup

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.

  • BLE
  • ESP-NOW
  • A7670
  • GSM

Device to cloud

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.

  • MQTT
  • HTTPS
  • ThingsBoard
  • Azure IoT

Sensing, locks, and HMI

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.

  • HX711
  • LVGL
  • TouchGFX
  • E-paper

Raspberry Pi

Python gateways, kiosks, and camera-side work. Includes a completed job bringing a Halio NPU up with Ollama.

  • Raspberry Pi
  • Python

Production flashing and OTA

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.

  • ESP-IDF
  • OTA
  • UART

What a first week usually is

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.