Files
meshtastic_firmware/variants/esp32c3/diy/moonshine_ESP_C3/readme.md
T
2026-07-31 11:08:59 +08:00

3.3 KiB

Moonshine ESP-C3

DIY Meshtastic node variant based on the ESP32-C3 + EBYTE 433 MHz LoRa module.

Hardware

  • MCU: ESP32-C3 with 4 MB external SPI flash
  • LoRa: one of three EBYTE 433 MHz modules (see LoRa module selection)
  • USB CDC: enabled (ARDUINO_USB_MODE=1, ARDUINO_USB_CDC_ON_BOOT=1) - serial console is exposed via the USB CDC port, no separate UART chip
  • Battery ADC: 0.5 voltage divider on GPIO1 (ADC_MULTIPLIER = 2.0)
  • No screen, no GPS on this board

LoRa module selection

This board supports three EBYTE 433 MHz LoRa modules. Select the module by commenting/uncommenting the #define lines at the top of variant.h:

#define E220_400M30S
//#define E220_400M33S
//#define E22_400M33S

Only one module should be enabled at a time.

Module Chip Power USE_* TX_GAIN_LORA SX126X_MAX_POWER Total output
E220-400M30S LLCC68 30 dBm (1 W) USE_LLCC68 8 22 22 + 8 = 30 dBm
E220-400M33S LLCC68 33 dBm (2 W) USE_LLCC68 11 22 22 + 11 = 33 dBm
E22-400M33S SX1268 33 dBm (2 W) USE_SX1268 25 8 8 + 25 = 33 dBm

E22-400M33S power note

The E22-400M33S has a high-gain PA (~25 dB). The variant limits the SX1268 chip output to 8 dBm (SX126X_MAX_POWER = 8), which the PA amplifies to ~33 dBm. Do not raise SX126X_MAX_POWER above 8 without verifying actual PA output and current draw - overdriving the PA can cause large current spikes and system resets.

See variants/nrf52840/diy/moonshine_NRF52/variant.h for the same module wired with a more conservative power profile (SX126X_MAX_POWER = 2, ~27 dBm output).

Pin map

Function GPIO Notes
BUTTON 9 BOOT button
LED 0 Active high (LED_STATE_ON = 1)
BATTERY_ADC 1 0.5 divider (ADC_MULTIPLIER = 2.0)
LORA_RXEN 2 RF switch RX enable
LORA_DIO1 3 IRQ
LORA_BUSY 4
LORA_RESET 5
LORA_MISO 6
LORA_MOSI 7
LORA_CS 8
LORA_SCK 10

DIO2 drives the module's TXEN pin internally (SX126X_DIO2_AS_RF_SWITCH), so SX126X_TXEN is left as RADIOLIB_NC. SX126X_RXEN is driven by GPIO2.

Build & Flash

Build

pio run -e moonshine_ESP_C3

Uses PRIVATE_HW (HardwareModel 255) - no protobuf or architecture.h changes required. Board level is extra (built only on full releases).

Flash

pio run -e moonshine_ESP_C3 -t upload --upload-port <port>

The board boots into USB CDC mode, so the serial console appears as a CDC ACM port (/dev/ttyACM* on Linux/macOS, COMx on Windows) at 115200 baud.