IoT LoRa Remote Control System

2023
  • Personal
  • Hardware integration

An end-to-end IoT remote control system using MQTT and LoRa radio. A CircuitPython Feather M4 bridge device polls Adafruit IO for state changes and relays commands over 915 MHz LoRa (RFM9x) to a remote receiver that actuates a physical load.

Needed reliable wireless control over a long distance where WiFi was not viable. The project was also a deliberate exercise in implementing the full IoT stack from cloud broker down to the RF physical layer.

Packet framing, error handling, and status feedback had to be implemented in CircuitPython, where available memory is measured in kilobytes and standard library support is minimal. The bridge device also had to maintain a reliable SSL WiFi connection to Adafruit IO while simultaneously managing the LoRa radio link — two very different communication stacks running on a microcontroller.

A simple fixed-length packet format was designed for the LoRa link that could be parsed with minimal memory allocation. The Feather M4 runs a tight polling loop: check Adafruit IO for state changes over SSL, encode any change into a LoRa packet, transmit, and wait for an acknowledgment from the receiver before updating the broker.

The system worked as intended. The project deepened practical knowledge of the full IoT stack in a way directly applicable to robotics and automation work.

  • CircuitPython
  • MQTT (Adafruit IO, Mosquitto)
  • LoRa (RFM9x, 915 MHz)
  • WiFi / SSL
  • NeoPixel status indication
  • Packet framing
  • Embedded systems design