nRF52832 RS-485 Firmware Development

Job ID: 39797659

Budget: $250 – $750 AUD

Embedded Firmware PoC — nRF52832 + RS-485/Modbus + LoRaWAN (SX1262) + Cellular MQTT (SIM7600)

Platform

MCU: Nordic nRF52832 (Cortex-M4), Zephyr RTOS.

Radios: SX1262 LoRa over SPI (DIO/Busy/Reset pins provided).

Cellular: SIM7600 (LTE/4G) via UART (PPP/IP or AT-TCP).

RS-485: UART to transceiver (e.g., MAX3485). GPIOs for DE/RE, 120 Ω termination + fail-safe bias on board.

Non-volatile: FRAM FM24CL64B (I²C).

Scope (phased to reduce risk)
P1 – RS-485 / Modbus (Slave first)

UART half-duplex driver with DE/RE control and timeouts.

Modbus RTU Slave at 9 600–115 200 bps, CRC-16, exceptions.

Configurable register map (holding/input/coils).

Python harness (PC/RPi) for read/write tests.
P2 – LoRaWAN Uplink (SX1262)

Regional stack (AU915/AS923), join (OTAA), ADR, confirmed/unconfirmed uplinks.
P3 – Cellular MQTT (SIM7600)

AT task, PDP context, MQTT publish/subscribe over TCP/IP (broker URL provided).
P4 – Integration & Hardening

Run RS-485 + LoRa uplink + MQTT publish concurrently.

Watchdog, logging, persistent settings (FRAM), basic power-fail safety.

Deliverables

Source (C/C++) for Zephyr; CMake/nRF Connect build.

Board config (DTS/Kconfig) + pin map.

HAL drivers: UART/RS-485, I²C FRAM, SPI SX1262, SIM7600 AT.

Python test tools (Modbus read/write, simple MQTT pub).

README: build/flash, config, test steps.

CI script (GitHub Actions): build + unit tests (if any).

License report (all third-party libs) and confirmation of IP assignment to client.

Acceptance

On your board:

Modbus Slave exchange at 115 200 bps (read/write N registers, correct CRC & exceptions).

LoRaWAN OTAA join + uplink success.

MQTT publish via SIM7600 (LTE/4G) to broker.

All three operate in the same build for ≥10 minutes without task starvation or watchdog reset.
(Optionally add Modbus Master in a follow-on milestone.)

Out-of-scope (for now)

Full OTA, deep power optimization, TLS offload on modem, cloud dashboards.