Add ESP32-C3 SuperMini + LoRa SX1278 (RA-01/RA-02) board variant with I2C telemetry #293

Open
opened 2026-10-05 05:57:53 +02:00 by adam · 0 comments
Owner

Dear Ricardo (@richonguzman - CA2RXU),

Greetings and warm 73 from Indonesia!
My name is Arifin Santoso (YB2SAT).

First of all, congratulations on the official release of the LoRa APRS iGate/Digipeater Firmware V4.0.0! The new Web UI, interactive map, and the Web Flasher ecosystem are truly remarkable achievements that make deployment very straightforward.

I am writing to respectfully request an official build target on the Web Flasher for:
ESP32C3 SuperMini + LoRa SX1278 / RA-01 / RA-02 (433MHz)

We are building compact, standalone solar-powered LoRa APRS iGates equipped with weather telemetry and battery monitoring. This specific combination is very practical for our local setups due to the following reasons:

1. Component Availability in Indonesia (IARU Region 3)

In our local market, 1-Watt Ebyte modules (like the E22-400M30S) are hard to source, expensive, and subject to strict import regulations. Conversely, standard 100mW Semtech SX1278 modules (Ai-Thinker RA-01 / RA-02) and ESP32-C3 SuperMini boards are inexpensive, widely available off-the-shelf, and already popular among local radio amateurs.

2. Full I2C Weather & Battery Telemetry Support

As noted in your V4.0.0 Manual (Appendix 2, page 32), the official ESP32-C3 + 1W E22 target requires 9 GPIO pins, leaving no hardware pins available for I2C telemetry add-ons.

In contrast, the classic SX1278 requires fewer control lines, leaving GPIO 0 (SDA) and GPIO 1 (SCL) completely free for native I2C communication. This allows us to connect:

  • BME280 / BME680 (Weather telemetry)
  • INA219 / INA226 (Battery health & solar voltage monitoring)
  • SSD1306 OLED display

3. Clarification on Pinout & Boot Strapping

We noticed that @iz5diy recently submitted PR #453 for an RA02 variant using GPIO 8 and GPIO 9 for I2C.

From your experience, what do you think about using GPIO 0 and GPIO 1 instead for I2C? In our hardware tests with the SuperMini, using GPIO 0 (SDA) and GPIO 1 (SCL) felt very clean and avoided any potential strapping interactions with GPIO 9 (the BOOT button) and GPIO 8 (the on-board LED):

#ifndef BOARD_PINOUT_H_
#define BOARD_PINOUT_H_

    // LoRa Radio (SX1278 / RA-01 / RA-02)
    #define HAS_SX1278
    #define RADIO_SCLK_PIN          6
    #define RADIO_MISO_PIN          4
    #define RADIO_MOSI_PIN          7
    #define RADIO_CS_PIN            5
    #define RADIO_RST_PIN           10
    #define RADIO_BUSY_PIN          3       // DIO0
    #define RADIO_WAKEUP_PIN        RADIO_BUSY_PIN
    #define GPIO_WAKEUP_PIN         GPIO_NUM_3

    // I2C & Display
    #define HAS_DISPLAY
    #define USE_WIRE_WITH_OLED_PINS

    #undef  OLED_SDA
    #undef  OLED_SCL
    #undef  OLED_RST

    #define OLED_SDA                0
    #define OLED_SCL                1
    #define OLED_RST                -1

#endif

<!-- github-sync-id:5495027993 -->
Dear Ricardo (@richonguzman - CA2RXU), Greetings and warm 73 from Indonesia! My name is Arifin Santoso (YB2SAT). First of all, congratulations on the official release of the LoRa APRS iGate/Digipeater Firmware V4.0.0! The new Web UI, interactive map, and the Web Flasher ecosystem are truly remarkable achievements that make deployment very straightforward. I am writing to respectfully request an official build target on the Web Flasher for: **`ESP32C3 SuperMini + LoRa SX1278 / RA-01 / RA-02 (433MHz)`** We are building compact, standalone solar-powered LoRa APRS iGates equipped with weather telemetry and battery monitoring. This specific combination is very practical for our local setups due to the following reasons: ### 1. Component Availability in Indonesia (IARU Region 3) In our local market, 1-Watt Ebyte modules (like the E22-400M30S) are hard to source, expensive, and subject to strict import regulations. Conversely, standard 100mW Semtech SX1278 modules (Ai-Thinker RA-01 / RA-02) and ESP32-C3 SuperMini boards are inexpensive, widely available off-the-shelf, and already popular among local radio amateurs. ### 2. Full I2C Weather & Battery Telemetry Support As noted in your V4.0.0 Manual (**Appendix 2, page 32**), the official ESP32-C3 + 1W E22 target requires 9 GPIO pins, leaving no hardware pins available for I2C telemetry add-ons. In contrast, the classic SX1278 requires fewer control lines, leaving **GPIO 0 (SDA)** and **GPIO 1 (SCL)** completely free for native I2C communication. This allows us to connect: - **BME280 / BME680** (Weather telemetry) - **INA219 / INA226** (Battery health & solar voltage monitoring) - **SSD1306 OLED** display ### 3. Clarification on Pinout & Boot Strapping We noticed that @iz5diy recently submitted PR #453 for an RA02 variant using GPIO 8 and GPIO 9 for I2C. From your experience, what do you think about using **GPIO 0 and GPIO 1** instead for I2C? In our hardware tests with the SuperMini, using GPIO 0 (SDA) and GPIO 1 (SCL) felt very clean and avoided any potential strapping interactions with GPIO 9 (the BOOT button) and GPIO 8 (the on-board LED): ```cpp #ifndef BOARD_PINOUT_H_ #define BOARD_PINOUT_H_ // LoRa Radio (SX1278 / RA-01 / RA-02) #define HAS_SX1278 #define RADIO_SCLK_PIN 6 #define RADIO_MISO_PIN 4 #define RADIO_MOSI_PIN 7 #define RADIO_CS_PIN 5 #define RADIO_RST_PIN 10 #define RADIO_BUSY_PIN 3 // DIO0 #define RADIO_WAKEUP_PIN RADIO_BUSY_PIN #define GPIO_WAKEUP_PIN GPIO_NUM_3 // I2C & Display #define HAS_DISPLAY #define USE_WIRE_WITH_OLED_PINS #undef OLED_SDA #undef OLED_SCL #undef OLED_RST #define OLED_SDA 0 #define OLED_SCL 1 #define OLED_RST -1 #endif <!-- github-sync-id:5495027993 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/LoRa_APRS_iGate#293