firmwarebeginner

Armachat CircuitPython LoRa Messenger

CircuitPython-based LoRa messenger firmware for Armachat devices, running on both ESP32-S3 and Raspberry Pi Pico with a 2.8\" IPS display, RFM95 radio, and fully open-source transparent code.

Boards:ESP32-S3RP2040
Firmware:CircuitPython
Use Cases:Mesh NetworkingPortable DeviceEducation

Overview

Armachat CircuitPython is an alternative firmware implementation for the Armachat communicator family, written entirely in CircuitPython for maximum readability and hackability. It runs on both ESP32-S3 and Raspberry Pi Pico hardware, providing a transparent, easy-to-modify LoRa messaging platform.

Hardware Support

The firmware is designed to run on Armachat boards featuring:

  • MCU: BPI-PicoW-S3 (ESP32-S3) or Raspberry Pi Pico
  • Display: 2.8" IPS Color LCD (320x240)
  • Radio: RFM95 LoRa module
  • Input: QWERTY keyboard matrix

Firmware Features

  • Simple, readable CircuitPython code — fully open source and transparent
  • Cross-platform support (ESP32-S3 and RP2040)
  • Runtime-configurable LoRa radio parameters via radioInit function
  • Persistent configuration saved to config.txt when filesystem is writable
  • Direct message and broadcast modes

Getting Started

  1. Install CircuitPython on your board (ESP32-S3 or Pico)
  2. Clone the repository and copy the Software folder contents to your board
  3. Configure radio parameters for your region
  4. Power on and start messaging

Relationship to Meshtastic

While this firmware uses its own Armachat protocol, it was proposed as a starting point for potential Meshtastic integration on Armachat hardware. The TrackSenger variant of the hardware now runs Meshtastic firmware natively.

Resources