mirror of
https://github.com/alexhopeoconnor/firmware.git
synced 2026-10-16 00:21:35 +10:00
743 lines
71 KiB
Markdown
743 lines
71 KiB
Markdown
# Hardware Support Context
|
|
|
|
This document inventories the board-support inputs and common target-definition fields
|
|
currently used in the Meshtastic firmware repository. It is intended as reusable context
|
|
for adding new hardware support without re-discovering naming patterns, metadata keys, and
|
|
frequently used pin or capability macros from scratch.
|
|
|
|
## Scope
|
|
|
|
- Variant directories scanned: 166
|
|
- PlatformIO environments summarized: 212
|
|
- Sources: `variants/**/platformio.ini` and `variants/**/variant.h`
|
|
- Notes: This inventory reflects explicit per-variant declarations. Some boards also inherit
|
|
defaults from architecture headers or shared base environments, which must still be checked
|
|
before creating new hardware support.
|
|
|
|
## Repository Metadata Inputs
|
|
|
|
The following `custom_meshtastic_*` metadata keys are already used across board environments:
|
|
|
|
- `custom_meshtastic_hw_model`
|
|
- `custom_meshtastic_hw_model_slug`
|
|
- `custom_meshtastic_architecture`
|
|
- `custom_meshtastic_actively_supported`
|
|
- `custom_meshtastic_support_level`
|
|
- `custom_meshtastic_display_name`
|
|
- `custom_meshtastic_images`
|
|
- `custom_meshtastic_tags`
|
|
- `custom_meshtastic_requires_dfu`
|
|
- `custom_meshtastic_partition_scheme`
|
|
|
|
## Common Target-Definition Categories
|
|
|
|
### Input
|
|
|
|
| Macro | Used in | Description |
|
|
| ---------------------------------- | ------------ | --------------------------------------------------------------------------- |
|
|
| `BUTTON_PIN` | 127 variants | Primary user button GPIO pin number. |
|
|
| `ALT_BUTTON_PIN` | 12 variants | Secondary / alternate button pin, used on boards with two buttons. |
|
|
| `CANCEL_BUTTON_PIN` | 8 variants | Button wired to cancel/back actions (e.g., T-Deck cancel key). |
|
|
| `KB_BL_PIN` | 5 variants | Keyboard backlight control pin (e.g., T-LoRa Pager keyboard). |
|
|
| `KB_INT` | 4 variants | Keyboard interrupt input pin; signals a keypress to the MCU. |
|
|
| `INPUTDRIVER_ENCODER_TYPE` | 3 variants | Selects the rotary encoder driver variant (0 = none, 1+ = specific type). |
|
|
| `BUTTON_PIN_ALT` | 2 variants | Alternative spelling used by some older board families for a second button. |
|
|
| `INPUTDRIVER_TWO_WAY_ROCKER` | 2 variants | Enables the two-way rocker input driver. |
|
|
| `INPUTDRIVER_TWO_WAY_ROCKER_RIGHT` | 2 variants | GPIO pin for the rightward rocker direction. |
|
|
| `INPUTDRIVER_TWO_WAY_ROCKER_LEFT` | 2 variants | GPIO pin for the leftward rocker direction. |
|
|
| `INPUTDRIVER_TWO_WAY_ROCKER_BTN` | 2 variants | GPIO pin for the rocker click/press direction. |
|
|
| `KB_POWERON` | 2 variants | Pin used to power-on or enable the keyboard peripheral. |
|
|
| `KB_SLAVE_ADDRESS` | 2 variants | I2C address of the keyboard controller IC. |
|
|
| `ROTARY_A` | 2 variants | First encoder channel pin (clock / A signal). |
|
|
| `ROTARY_B` | 2 variants | Second encoder channel pin (data / B signal). |
|
|
|
|
### Radio
|
|
|
|
| Macro | Used in | Description |
|
|
| -------------------------- | ------------ | ----------------------------------------------------------------------------- |
|
|
| `SX126X_CS` | 150 variants | SX126x chip-select pin (often same as LORA_CS). |
|
|
| `SX126X_RESET` | 150 variants | SX126x reset pin (often same as LORA_RESET). |
|
|
| `SX126X_BUSY` | 150 variants | SX126x BUSY pin; must be polled low before issuing SPI commands. |
|
|
| `SX126X_DIO1` | 150 variants | SX126x DIO1 interrupt output used for all IRQ events. |
|
|
| `USE_SX1262` | 145 variants | Select the SX1262 sub-GHz LoRa chip driver. |
|
|
| `SX126X_DIO3_TCXO_VOLTAGE` | 140 variants | Drives the TCXO regulator via DIO3; set to the supply voltage (e.g., 1.8). |
|
|
| `LORA_CS` | 137 variants | LoRa radio SPI chip-select GPIO pin. |
|
|
| `LORA_RESET` | 135 variants | LoRa radio hardware-reset GPIO pin (active low). |
|
|
| `SX126X_DIO2_AS_RF_SWITCH` | 135 variants | Set to 1 so the driver controls the TX/RX RF switch via DIO2. |
|
|
| `LORA_DIO1` | 130 variants | LoRa radio DIO1 interrupt pin; on SX126x this is the primary IRQ line. |
|
|
| `LORA_SCK` | 125 variants | LoRa radio SPI clock pin. |
|
|
| `LORA_MISO` | 125 variants | LoRa radio SPI MISO pin. |
|
|
| `LORA_MOSI` | 125 variants | LoRa radio SPI MOSI pin. |
|
|
| `LORA_DIO2` | 110 variants | LoRa radio DIO2 pin; on RF95 used for FSK interrupt; on SX126x tx/rx control. |
|
|
| `LORA_DIO0` | 98 variants | LoRa radio DIO0 interrupt pin (RF95/SX1276 done/RxDone). |
|
|
|
|
### GPS
|
|
|
|
| Macro | Used in | Description |
|
|
| ------------------------- | ------------ | ------------------------------------------------------------------------------ |
|
|
| `GPS_RX_PIN` | 114 variants | UART RX pin connected to the GPS module TX output. |
|
|
| `GPS_TX_PIN` | 111 variants | UART TX pin connected to the GPS module RX input. |
|
|
| `HAS_GPS` | 69 variants | Set to 1 if the board has an on-board GPS receiver; 0 to disable GPS entirely. |
|
|
| `PIN_GPS_PPS` | 43 variants | GPS pulse-per-second input pin for timing synchronisation. |
|
|
| `PIN_GPS_EN` | 30 variants | GPIO to power-enable or power-gate the GPS module. |
|
|
| `PIN_GPS_STANDBY` | 29 variants | Places the GPS into standby/low-power mode when driven. |
|
|
| `GPS_THREAD_INTERVAL` | 28 variants | Millisecond poll interval for the GPS background thread. |
|
|
| `GPS_L76K` | 27 variants | Selects the Quectel L76K GPS driver and protocol. |
|
|
| `GPS_BAUDRATE` | 27 variants | UART baud rate for GPS serial communication. |
|
|
| `GPS_EN_ACTIVE` | 17 variants | Logic level (HIGH or LOW) that enables the GPS power pin. |
|
|
| `PIN_GPS_RESET` | 16 variants | Hardware-reset line to the GPS module. |
|
|
| `GPS_DEFAULT_NOT_PRESENT` | 16 variants | Compiled-in default assuming no GPS; overridden at runtime if detected. |
|
|
| `GPS_RESET_MODE` | 13 variants | Defines the reset signal polarity or protocol for the GPS chip. |
|
|
| `GPS_UBLOX` | 8 variants | Selects the u-blox GPS driver and UBX protocol. |
|
|
| `PIN_GPS_REINIT` | 7 variants | Pin used to trigger GPS re-initialisation sequences. |
|
|
|
|
### Display
|
|
|
|
| Macro | Used in | Description |
|
|
| ----------------------------- | ----------- | ------------------------------------------------------------------------ |
|
|
| `PIN_EINK_CS` | 51 variants | E-ink display SPI chip-select pin. |
|
|
| `PIN_EINK_BUSY` | 51 variants | E-ink display BUSY output; high when a page update is in progress. |
|
|
| `PIN_EINK_DC` | 51 variants | E-ink display data/command select pin. |
|
|
| `PIN_EINK_RES` | 51 variants | E-ink display hardware-reset pin. |
|
|
| `PIN_EINK_SCLK` | 49 variants | E-ink display SPI clock pin. |
|
|
| `PIN_EINK_MOSI` | 49 variants | E-ink display SPI MOSI pin. |
|
|
| `HAS_SCREEN` | 34 variants | Set to 1 if the board has any display hardware. |
|
|
| `USE_TFTDISPLAY` | 27 variants | Selects the TFT LCD driver path. |
|
|
| `TFT_HEIGHT` | 25 variants | Vertical pixel resolution of the TFT display. |
|
|
| `TFT_WIDTH` | 25 variants | Horizontal pixel resolution of the TFT display. |
|
|
| `SCREEN_TRANSITION_FRAMERATE` | 23 variants | Target framerate for UI animations and transitions. |
|
|
| `TFT_OFFSET_X` | 22 variants | Horizontal pixel offset for display alignment correction. |
|
|
| `TFT_OFFSET_Y` | 22 variants | Vertical pixel offset for display alignment correction. |
|
|
| `SCREEN_ROTATE` | 18 variants | Non-zero value rotates the display 180° for mounted-upside-down screens. |
|
|
| `TFT_BL` | 15 variants | Backlight control PWM or GPIO pin for the TFT panel. |
|
|
|
|
### I2C/SPI
|
|
|
|
| Macro | Used in | Description |
|
|
| ----------------------- | ------------ | ----------------------------------------------------- |
|
|
| `I2C_SDA` | 103 variants | Primary I2C data line GPIO pin. |
|
|
| `I2C_SCL` | 103 variants | Primary I2C clock line GPIO pin. |
|
|
| `PIN_SPI_MISO` | 72 variants | Primary SPI MISO (data from peripheral) GPIO pin. |
|
|
| `PIN_SPI_MOSI` | 72 variants | Primary SPI MOSI (data to peripheral) GPIO pin. |
|
|
| `PIN_SPI_SCK` | 72 variants | Primary SPI clock GPIO pin. |
|
|
| `SPI_INTERFACES_COUNT` | 66 variants | Number of hardware SPI buses available on this board. |
|
|
| `WIRE_INTERFACES_COUNT` | 64 variants | Number of hardware I2C buses available on this board. |
|
|
| `PIN_SPI1_MISO` | 35 variants | Secondary SPI bus MISO pin. |
|
|
| `PIN_SPI1_MOSI` | 35 variants | Secondary SPI bus MOSI pin. |
|
|
| `PIN_SPI1_SCK` | 35 variants | Secondary SPI bus clock pin. |
|
|
| `SPI_FREQUENCY` | 24 variants | Default SPI clock frequency in Hz for this board. |
|
|
| `SPI_READ_FREQUENCY` | 21 variants | Reduced SPI clock rate used for read transactions. |
|
|
| `SPI_SCK` | 19 variants | SPI clock pin alias used in older board files. |
|
|
| `SPI_MOSI` | 19 variants | SPI MOSI pin alias used in older board files. |
|
|
| `SPI_MISO` | 19 variants | SPI MISO pin alias used in older board files. |
|
|
|
|
### Power
|
|
|
|
| Macro | Used in | Description |
|
|
| ------------------------------- | ------------ | -------------------------------------------------------------------------- |
|
|
| `BATTERY_PIN` | 128 variants | ADC input GPIO connected to the battery voltage divider. |
|
|
| `ADC_MULTIPLIER` | 122 variants | Floating-point scale factor to convert raw ADC reading to battery voltage. |
|
|
| `ADC_CHANNEL` | 71 variants | ADC channel enum or number for the battery sense input. |
|
|
| `BATTERY_SENSE_RESOLUTION_BITS` | 64 variants | ADC resolution in bits used for battery voltage sampling. |
|
|
| `ADC_RESOLUTION` | 49 variants | Board-level ADC resolution definition, referenced by other power macros. |
|
|
| `BATTERY_SENSE_RESOLUTION` | 44 variants | Alias for the effective ADC resolution for battery sense. |
|
|
| `ADC_CTRL` | 29 variants | GPIO that enables or gates the ADC voltage-divider circuit. |
|
|
| `ADC_CTRL_ENABLED` | 27 variants | Logic level (HIGH or LOW) that turns on the ADC control switch. |
|
|
| `EXT_NOTIFY_OUT` | 23 variants | GPIO output used to signal an external LED or buzzer for notifications. |
|
|
| `USE_POWERSAVE` | 21 variants | Enables aggressive power-save mode (deep sleep, reduced poll intervals). |
|
|
| `SLEEP_TIME` | 21 variants | Default light-sleep duration in milliseconds between wakeups. |
|
|
| `ADC_ATTENUATION` | 20 variants | ESP32 ADC input attenuation setting; controls measurable voltage range. |
|
|
| `PIN_POWER_EN` | 18 variants | GPIO to assert to enable a board power rail or load switch. |
|
|
| `BATTERY_SENSE_SAMPLES` | 11 variants | Number of ADC samples to average for a stable battery reading. |
|
|
| `HAS_PPM` | 4 variants | Set to 1 if the board has an IP5306 or similar PPM power path IC. |
|
|
|
|
### Connectivity/Other
|
|
|
|
| Macro | Used in | Description |
|
|
| ----------------- | ----------- | ------------------------------------------------------------------- |
|
|
| `HAS_TOUCHSCREEN` | 19 variants | Set to 1 for boards with a capacitive or resistive touch panel. |
|
|
| `HAS_NEOPIXEL` | 14 variants | Set to 1 if the board has addressable RGB LEDs (WS2812 / NeoPixel). |
|
|
| `PCF8563_RTC` | 11 variants | I2C address of the PCF8563 real-time clock IC. |
|
|
| `HAS_ETHERNET` | 9 variants | Set to 1 for boards with a wired Ethernet interface. |
|
|
| `HAS_I2S` | 7 variants | Set to 1 if I2S audio output is present. |
|
|
| `PCF85063_RTC` | 3 variants | I2C address of the PCF85063 real-time clock IC. |
|
|
| `NFC_INT` | 2 variants | Interrupt pin from the NFC controller IC. |
|
|
| `NFC_CS` | 2 variants | SPI chip-select for the NFC controller. |
|
|
| `USE_XL9555` | 2 variants | Enables the XL9555 16-bit I2C GPIO expander driver. |
|
|
| `EXPANDS_DRV_EN` | 2 variants | GPIO expander pin used to enable the haptic driver. |
|
|
| `EXPANDS_AMP_EN` | 2 variants | GPIO expander pin used to power-on the audio amplifier. |
|
|
| `EXPANDS_KB_RST` | 2 variants | GPIO expander pin used to reset the keyboard controller. |
|
|
| `EXPANDS_LORA_EN` | 2 variants | GPIO expander pin used to power-gate the LoRa radio. |
|
|
| `EXPANDS_GPS_EN` | 2 variants | GPIO expander pin used to power-gate the GPS module. |
|
|
| `EXPANDS_NFC_EN` | 2 variants | GPIO expander pin used to power-gate the NFC controller. |
|
|
|
|
### Other
|
|
|
|
| Macro | Used in | Description |
|
|
| -------------------- | ----------- | -------------------------------------------------------------------------- |
|
|
| `LED_POWER` | 94 variants | GPIO for the status LED, defines the LED pin number. |
|
|
| `LED_STATE_ON` | 88 variants | Logic level (HIGH or LOW) that turns the status LED on. |
|
|
| `PIN_SERIAL1_RX` | 67 variants | Secondary UART RX pin (used for accessories, GPS on some boards). |
|
|
| `PIN_SERIAL1_TX` | 67 variants | Secondary UART TX pin. |
|
|
| `PIN_WIRE_SDA` | 64 variants | Arduino-framework I2C SDA pin alias (nRF52 / RP2040 style). |
|
|
| `PIN_WIRE_SCL` | 64 variants | Arduino-framework I2C SCL pin alias. |
|
|
| `PIN_LED1` | 63 variants | First LED GPIO pin in the nRF52 Arduino BSP pin table. |
|
|
| `VARIANT_MCK` | 63 variants | Crystal oscillator frequency in Hz for nRF52 variant clock configuration. |
|
|
| `PINS_COUNT` | 63 variants | Total number of GPIO pins defined in the Arduino BSP variant table. |
|
|
| `NUM_DIGITAL_PINS` | 63 variants | Count of digital-capable pins in the BSP variant table. |
|
|
| `NUM_ANALOG_INPUTS` | 63 variants | Count of analog-input pins in the BSP variant table. |
|
|
| `NUM_ANALOG_OUTPUTS` | 63 variants | Count of analog-output (DAC) pins in the BSP variant table. |
|
|
| `LED_BLUE` | 62 variants | GPIO number of the blue status LED (typical on nRF52 and RP2040 boards). |
|
|
| `USE_LFXO` | 58 variants | Instructs the nRF52 BSP to use the low-frequency crystal oscillator. |
|
|
| `BUTTON_NEED_PULLUP` | 54 variants | Enables internal pull-up on the button GPIO (duplicate entry for clarity). |
|
|
|
|
## Architecture and Environment Inventory
|
|
|
|
### diy
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| ------------------------- | ------------ | -------- | ------- | --------------------------------------------- | --------------------------------------------------------- |
|
|
| 9m2ibr_aprs_lora_tracker | | | | variants/esp32/diy/9m2ibr_aprs_lora_tracker | Display:1, Radio:24, Input:1, GPS:2, Power:4 |
|
|
| esp32c3_super_mini | | | | variants/esp32c3/diy/esp32c3_super_mini | Display:1, Radio:18, Input:1, GPS:2 |
|
|
| meshtastic-diy-v1_1 | | | | variants/esp32/diy/v1_1 | Radio:24, Input:1, GPS:1, Power:1 |
|
|
| my-esp32s3-diy-eink | | | | variants/esp32s3/diy/my_esp32s3_diy_eink | Display:6, Radio:17, Input:1, GPS:1, Connectivity/Other:1 |
|
|
| my-esp32s3-diy-oled | | | | variants/esp32s3/diy/my_esp32s3_diy_oled | Display:1, Radio:17, Input:1, GPS:1, Connectivity/Other:1 |
|
|
| nrf52_promicro_diy-inkhud | | | | variants/nrf52840/diy/nrf52_promicro_diy_tcxo | Display:4, Radio:29, Input:1, GPS:4, Power:6 |
|
|
| t-energy-s3_e22 | | | | variants/esp32s3/diy/t-energy-s3_e22 | Display:1, Radio:18, Input:1, GPS:3, Power:3 |
|
|
|
|
### esp32
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| --------------------------- | --------------------------- | -------- | --------------------------- | ------------------------------------------ | ------------------------------------------------------------------ |
|
|
| betafpv_2400_tx_micro | | | | variants/esp32/betafpv_2400_tx_micro | Radio:14, Input:1, Connectivity/Other:1 |
|
|
| betafpv_900_tx_nano | | | | variants/esp32/betafpv_900_tx_nano | Display:1, Radio:10, Input:1 |
|
|
| chatter2 | | | | variants/esp32/chatter2 | Display:12, Radio:16, Input:3, GPS:3, Power:4 |
|
|
| hackerboxes-esp32-io | | | | variants/esp32/hackerboxes_esp32_io | Display:1, Radio:16, Input:1, GPS:1 |
|
|
| heltec-v1 | Heltec V1 | 11 | HELTEC_V1 | variants/esp32/heltec_v1 | Radio:5, Input:1, GPS:2, Power:3 |
|
|
| heltec-v2_0 | Heltec V2.0 | 5 | HELTEC_V2_0 | variants/esp32/heltec_v2 | Radio:5, Input:1, GPS:2, Power:3 |
|
|
| heltec-v2_1 | Heltec V2.1 | 10 | HELTEC_V2_1 | variants/esp32/heltec_v2.1 | Radio:5, Input:1, GPS:3, Power:4 |
|
|
| heltec-wireless-bridge | | | | variants/esp32/heltec_wireless_bridge | Radio:9, GPS:1 |
|
|
| heltec-wsl-v2_1 | | | | variants/esp32/heltec_wsl_v2.1 | Radio:9, Input:1, Power:5 |
|
|
| hydra | Hydra | 39 | HYDRA | variants/esp32/diy/hydra | Radio:22, Input:1, GPS:3, Power:4 |
|
|
| m5stack-core | M5 Stack | 42 | M5STACK | variants/esp32/m5stack_core | Display:7, Radio:9, Input:1, GPS:2 |
|
|
| m5stack-coreink | | | | variants/esp32/m5stack_coreink | Display:7, Radio:34, Input:1, GPS:2, Power:3, Connectivity/Other:1 |
|
|
| meshtastic-diy-v1 | DIY V1 | 39 | DIY_V1 | variants/esp32/diy/v1 | Radio:23, Input:1, GPS:3, Power:4 |
|
|
| meshtastic-dr-dev | DR-DEV | 41 | DR_DEV | variants/esp32/diy/dr-dev | Display:1, Radio:26, Input:1, GPS:2, Power:3 |
|
|
| nano-g1 | Nano G1 | 14 | NANO_G1 | variants/esp32/nano-g1 | Display:1, Radio:13, Input:1, GPS:2, Power:1 |
|
|
| nano-g1-explorer | Nano G1 Explorer | 17 | NANO_G1_EXPLORER | variants/esp32/nano-g1-explorer | Display:1, Radio:13, Input:1, GPS:2, Power:5 |
|
|
| radiomaster_900_bandit | | | | variants/esp32/radiomaster_900_bandit | Radio:19, Input:1, GPS:1, Connectivity/Other:1 |
|
|
| radiomaster_900_bandit_nano | RadioMaster 900 Bandit Nano | 64 | RADIOMASTER_900_BANDIT_NANO | variants/esp32/radiomaster_900_bandit_nano | Display:1, Radio:19 |
|
|
| rak11200 | RAK WisBlock 11200 | 13 | RAK11200 | variants/esp32/rak11200 | Radio:18, GPS:2, Power:2 |
|
|
| station-g1 | Station G1 | 25 | STATION_G1 | variants/esp32/station-g1 | Display:1, Radio:13, Input:1, GPS:2, Power:5 |
|
|
| sugarcube | | | | variants/esp32/tlora_v2_1_16 | Radio:6, Power:4 |
|
|
| tbeam | LILYGO T-Beam | 4 | TBEAM | variants/esp32/tbeam | Display:4, Radio:14, Input:1, GPS:3, Power:2, Connectivity/Other:1 |
|
|
| tbeam-displayshield | | | | variants/esp32/tbeam | Display:4, Radio:14, Input:1, GPS:3, Power:2, Connectivity/Other:1 |
|
|
| tbeam0_7 | LILYGO T-Beam V0.7 | 6 | TBEAM_V0P7 | variants/esp32/tbeam_v07 | Radio:5, Input:1, GPS:3, Power:3 |
|
|
| tlora-v1 | LILYGO T-LoRa V1 | 2 | TLORA_V1 | variants/esp32/tlora_v1 | Radio:5, Input:1, Power:1 |
|
|
| tlora-v2 | LILYGO T-LoRa V2 | 1 | TLORA_V2 | variants/esp32/tlora_v2 | Radio:5, Input:1, Power:2 |
|
|
| tlora-v2-1-1_6 | LILYGO T-LoRa V2.1-1.6 | 3 | TLORA_V2_1_1P6 | variants/esp32/tlora_v2_1_16 | Radio:6, Power:4 |
|
|
| tlora-v2-1-1_8 | LILYGO T-LoRa V2.1-1.8 | 15 | TLORA_V2_1_1P8 | variants/esp32/tlora_v2_1_18 | Radio:6, Input:1, Power:3 |
|
|
| tlora_v1_3 | | | | variants/esp32/tlora_v1_3 | Radio:5, Input:1, Power:2 |
|
|
| trackerd | | | | variants/esp32/trackerd | Display:1, Radio:5, Input:1, GPS:9, Power:4 |
|
|
| wiphone | | | | variants/esp32/wiphone | Display:9, Radio:9, GPS:1 |
|
|
|
|
### esp32-c3
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| -------------------------- | ------------ | -------- | ----------- | ----------------------------------------- | ------------------------------------------------------------------ |
|
|
| ai-c3 | | | | variants/esp32c3/ai-c3 | Radio:15, Input:1, GPS:1 |
|
|
| hackerboxes-esp32c3-oled | | | | variants/esp32c3/hackerboxes_esp32c3_oled | Display:1, Radio:16, Input:1, GPS:1 |
|
|
| heltec-hru-3601 | | | | variants/esp32c3/heltec_hru_3601 | Display:1, Radio:16, Input:1, GPS:1, Power:1, Connectivity/Other:1 |
|
|
| heltec-ht62-esp32c3-sx1262 | Heltec HT62 | 53 | HELTEC_HT62 | variants/esp32c3/heltec_esp32c3 | Display:1, Radio:16, Input:1, GPS:1 |
|
|
| m5stack-stamp-c3 | | | | variants/esp32c3/m5stack-stamp-c3 | Radio:9, Input:1, GPS:1 |
|
|
|
|
### esp32-c6
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| --------------- | ---------------- | -------- | ----------- | -------------------------------- | ------------------------------------------------ |
|
|
| m5stack-unitc6l | M5Stack Unit C6L | 111 | M5STACK_C6L | variants/esp32c6/m5stack_unitc6l | Display:1, Radio:14, GPS:3, Connectivity/Other:1 |
|
|
| tlora-c6 | | | | variants/esp32c6/tlora_c6 | Radio:15 |
|
|
|
|
### esp32-s3
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| -------------------------------- | ----------------------------- | -------- | ---------------------------- | --------------------------------------------- | -------------------------------------------------------------------- |
|
|
| CDEBYTE_EoRa-Hub | | | | variants/esp32s3/CDEBYTE_EoRa-Hub | Display:2, Radio:14, Input:1, Power:6 |
|
|
| CDEBYTE_EoRa-S3 | EBYTE EoRa-S3 | 61 | CDEBYTE_EORA_S3 | variants/esp32s3/CDEBYTE_EoRa-S3 | Display:2, Radio:13, Input:1, Power:3 |
|
|
| EBYTE_ESP32-S3 | | | | variants/esp32s3/EBYTE_ESP32-S3 | Display:1, Radio:26, Input:1, GPS:5, Power:1 |
|
|
| ESP32-S3-Pico | | | | variants/esp32s3/esp32-s3-pico | Display:6, Radio:18, Input:2, GPS:1, Power:4, Connectivity/Other:1 |
|
|
| bpi_picow_esp32_s3 | | | | variants/esp32s3/bpi_picow_esp32_s3 | Display:1, Radio:25, Input:1, GPS:1 |
|
|
| crowpanel-esp32s3-2-epaper | | | | variants/esp32s3/crowpanel-esp32s3-5-epaper | Display:6, Radio:21, Input:1, GPS:1, Power:1 |
|
|
| crowpanel-esp32s3-4-epaper | | | | variants/esp32s3/crowpanel-esp32s3-5-epaper | Display:6, Radio:21, Input:1, GPS:1, Power:1 |
|
|
| crowpanel-esp32s3-5-epaper | | | | variants/esp32s3/crowpanel-esp32s3-5-epaper | Display:6, Radio:21, Input:1, GPS:1, Power:1 |
|
|
| dreamcatcher-2206 | | | | variants/esp32s3/dreamcatcher | Radio:16, Input:1, Power:1, Connectivity/Other:1 |
|
|
| elecrow-adv-24-28-tft | Crowpanel Adv 2.4/2.8 TFT | 97 | CROWPANEL | variants/esp32s3/elecrow_panel | Display:1, Radio:21, GPS:6, Power:2 |
|
|
| elecrow-adv-35-tft | Crowpanel Adv 3.5 TFT | 97 | CROWPANEL | variants/esp32s3/elecrow_panel | Display:1, Radio:21, GPS:6, Power:2 |
|
|
| elecrow-adv1-43-50-70-tft | Crowpanel Adv 4.3/5.0/7.0 TFT | 97 | CROWPANEL | variants/esp32s3/elecrow_panel | Display:1, Radio:21, GPS:6, Power:2 |
|
|
| hackaday-communicator | | | | variants/esp32s3/hackaday-communicator | Display:12, Radio:14, Input:1, GPS:1, Power:2 |
|
|
| heltec-v3 | Heltec V3 | 43 | HELTEC_V3 | variants/esp32s3/heltec_v3 | Display:1, Radio:16, Input:1, Power:6 |
|
|
| heltec-v4 | Heltec V4 | 110 | HELTEC_V4 | variants/esp32s3/heltec_v4 | Display:1, Radio:21, Input:1, GPS:10, Power:6 |
|
|
| heltec-v4-tft | Heltec V4 TFT | 110 | HELTEC_V4 | variants/esp32s3/heltec_v4 | Display:1, Radio:21, Input:1, GPS:10, Power:6 |
|
|
| heltec-vision-master-e213 | Heltec Vision Master E213 | 67 | HELTEC_VISION_MASTER_E213 | variants/esp32s3/heltec_vision_master_e213 | Display:6, Radio:15, Input:2, Power:6 |
|
|
| heltec-vision-master-e213-inkhud | | | | variants/esp32s3/heltec_vision_master_e213 | Display:6, Radio:15, Input:2, Power:6 |
|
|
| heltec-vision-master-e290 | Heltec Vision Master E290 | 68 | HELTEC_VISION_MASTER_E290 | variants/esp32s3/heltec_vision_master_e290 | Display:6, Radio:15, Input:2, Power:6 |
|
|
| heltec-vision-master-e290-inkhud | | | | variants/esp32s3/heltec_vision_master_e290 | Display:6, Radio:15, Input:2, Power:6 |
|
|
| heltec-vision-master-t190 | Heltec Vision Master T190 | 66 | HELTEC_VISION_MASTER_T190 | variants/esp32s3/heltec_vision_master_t190 | Display:6, Radio:16, Input:2, Power:6 |
|
|
| heltec-wireless-paper | Heltec Wireless Paper | 49 | HELTEC_WIRELESS_PAPER | variants/esp32s3/heltec_wireless_paper | Display:6, Radio:15, Input:1, Power:6 |
|
|
| heltec-wireless-paper-inkhud | | | | variants/esp32s3/heltec_wireless_paper | Display:6, Radio:15, Input:1, Power:6 |
|
|
| heltec-wireless-paper-v1_0 | Heltec Wireless Paper V1.0 | 57 | HELTEC_WIRELESS_PAPER_V1_0 | variants/esp32s3/heltec_wireless_paper_v1 | Display:6, Radio:15, Input:1, Power:6 |
|
|
| heltec-wireless-tracker | Heltec Wireless Tracker V1.1 | 48 | HELTEC_WIRELESS_TRACKER | variants/esp32s3/heltec_wireless_tracker | Display:9, Radio:16, Input:1, GPS:7, Power:6 |
|
|
| heltec-wireless-tracker-V1-0 | Heltec Wireless Tracker V1.0 | 58 | HELTEC_WIRELESS_TRACKER_V1_0 | variants/esp32s3/heltec_wireless_tracker_V1_0 | Display:9, Radio:16, Input:1, GPS:9, Power:4 |
|
|
| heltec-wireless-tracker-v2 | Heltec Wireless Tracker V2 | 113 | HELTEC_WIRELESS_TRACKER_V2 | variants/esp32s3/heltec_wireless_tracker_v2 | Display:10, Radio:19, Input:1, GPS:7, Power:6 |
|
|
| heltec-wsl-v3 | Heltec Wireless Stick Lite V3 | 44 | HELTEC_WSL_V3 | variants/esp32s3/heltec_wsl_v3 | Radio:16, Input:1, Power:6 |
|
|
| heltec_capsule_sensor_v3 | | | | variants/esp32s3/heltec_capsule_sensor_v3 | Display:1, Radio:16, Input:1, GPS:7, Power:6 |
|
|
| heltec_sensor_hub | | | | variants/esp32s3/heltec_sensor_hub | Display:1, Radio:15, Input:1, Power:6, Connectivity/Other:1 |
|
|
| icarus | | | | variants/esp32s3/icarus | Display:1, Radio:12, Input:1 |
|
|
| link32-s3-v1 | | | | variants/esp32s3/link32_s3_v1 | Display:1, Radio:16, Input:2, Power:4, Connectivity/Other:1 |
|
|
| m5stack-cardputer-adv | | | | variants/esp32s3/m5stack_cardputer_adv | Display:5, Radio:17, Input:2, GPS:4, Power:3, Connectivity/Other:2 |
|
|
| m5stack-cores3 | | | | variants/esp32s3/m5stack_cores3 | Radio:11, Power:1 |
|
|
| mesh-tab-3-2-IPS-capacitive | | | | variants/esp32s3/mesh-tab | Radio:18, Input:1, GPS:2, Power:5, Connectivity/Other:1 |
|
|
| mesh-tab-3-2-IPS-resistive | | | | variants/esp32s3/mesh-tab | Radio:18, Input:1, GPS:2, Power:5, Connectivity/Other:1 |
|
|
| mesh-tab-3-2-TN-resistive | | | | variants/esp32s3/mesh-tab | Radio:18, Input:1, GPS:2, Power:5, Connectivity/Other:1 |
|
|
| mesh-tab-3-5-IPS-capacitive | | | | variants/esp32s3/mesh-tab | Radio:18, Input:1, GPS:2, Power:5, Connectivity/Other:1 |
|
|
| mesh-tab-3-5-IPS-resistive | | | | variants/esp32s3/mesh-tab | Radio:18, Input:1, GPS:2, Power:5, Connectivity/Other:1 |
|
|
| mesh-tab-3-5-TN-resistive | | | | variants/esp32s3/mesh-tab | Radio:18, Input:1, GPS:2, Power:5, Connectivity/Other:1 |
|
|
| mesh-tab-4-0-IPS-capacitive | | | | variants/esp32s3/mesh-tab | Radio:18, Input:1, GPS:2, Power:5, Connectivity/Other:1 |
|
|
| mini-epaper-s3 | LILYGO Mini ePaper S3 E-Ink | | MINI_EPAPER_S3 | variants/esp32s3/mini-epaper-s3 | Display:8, Radio:12, Input:5, GPS:1, Power:3, Connectivity/Other:1 |
|
|
| mini-epaper-s3-inkhud | | | | variants/esp32s3/mini-epaper-s3 | Display:8, Radio:12, Input:5, GPS:1, Power:3, Connectivity/Other:1 |
|
|
| nibble-esp32 | | | | variants/esp32s3/nibble_esp32 | Radio:9, Input:1 |
|
|
| nugget-s3-lora | | | | variants/esp32s3/nugget_s3_lora | Display:2, Radio:9, Input:1, Connectivity/Other:1 |
|
|
| picomputer-s3 | Pi Computer S3 | 52 | PICOMPUTER_S3 | variants/esp32s3/picomputer-s3 | Display:10, Radio:9, Input:1, Power:3 |
|
|
| picomputer-s3-tft | | | | variants/esp32s3/picomputer-s3 | Display:10, Radio:9, Input:1, Power:3 |
|
|
| rak3112 | | | | variants/esp32s3/rak3312 | Radio:13, GPS:3, Power:5 |
|
|
| rak3312 | RAK3312 | 106 | RAK3312 | variants/esp32s3/rak3312 | Radio:13, GPS:3, Power:5 |
|
|
| rak_wismesh_tap_v2 | RAK WisMesh Tap V2 | 116 | WISMESH_TAP_V2 | variants/esp32s3/rak_wismesh_tap_v2 | Radio:13, Input:1, GPS:3, Power:4 |
|
|
| rak_wismesh_tap_v2-tft | | | | variants/esp32s3/rak_wismesh_tap_v2 | Radio:13, Input:1, GPS:3, Power:4 |
|
|
| seeed-sensecap-indicator | Seeed SenseCAP Indicator | 70 | SENSECAP_INDICATOR | variants/esp32s3/seeed-sensecap-indicator | Display:12, Radio:17, Input:1, GPS:4, Connectivity/Other:1 |
|
|
| seeed-sensecap-indicator-tft | | | | variants/esp32s3/seeed-sensecap-indicator | Display:12, Radio:17, Input:1, GPS:4, Connectivity/Other:1 |
|
|
| seeed-xiao-s3 | Seeed Xiao ESP32-S3 | 81 | SEEED_XIAO_S3 | variants/esp32s3/seeed_xiao_s3 | Radio:16, Input:1, GPS:6, Power:3 |
|
|
| station-g2 | Station G2 | 31 | STATION_G2 | variants/esp32s3/station-g2 | Display:1, Radio:14, Input:1, GPS:2, Power:4 |
|
|
| t-beam-1w | LILYGO T-Beam 1W | 122 | TBEAM_1_WATT | variants/esp32s3/t-beam-1w | Display:3, Radio:19, Input:2, GPS:6, Power:5 |
|
|
| t-deck | LILYGO T-Deck | 50 | T_DECK | variants/esp32s3/t-deck | Display:11, Radio:17, Input:3, GPS:3, Power:5, Connectivity/Other:2 |
|
|
| t-deck-pro | LILYGO T-Deck Pro | 102 | T_DECK_PRO | variants/esp32s3/t-deck-pro | Display:6, Radio:18, Input:2, GPS:7, Power:5, Connectivity/Other:1 |
|
|
| t-deck-tft | | | | variants/esp32s3/t-deck | Display:11, Radio:17, Input:3, GPS:3, Power:5, Connectivity/Other:2 |
|
|
| t-eth-elite | | | | variants/esp32s3/t-eth-elite | Display:1, Radio:34, Input:1, GPS:5, Connectivity/Other:1 |
|
|
| t-watch-s3 | LILYGO T-Watch S3 | 51 | T_WATCH_S3 | variants/esp32s3/t-watch-s3 | Display:12, Radio:17, Input:1, GPS:5, Power:3, Connectivity/Other:3 |
|
|
| t5s3_epaper_inkhud | | | | variants/esp32s3/t5s3_epaper | Radio:21, Input:3, GPS:2, Power:5, Connectivity/Other:3 |
|
|
| tbeam-s3-core | LILYGO T-Beam Supreme | 12 | LILYGO_TBEAM_S3_CORE | variants/esp32s3/tbeam-s3-core | Display:1, Radio:25, Input:1, GPS:4, Power:1, Connectivity/Other:2 |
|
|
| thinknode_m2 | ThinkNode M2 | 90 | THINKNODE_M2 | variants/esp32s3/ELECROW-ThinkNode-M2 | Display:2, Radio:14, Input:2, GPS:1, Power:6 |
|
|
| thinknode_m5 | ThinkNode M5 | 107 | THINKNODE_M5 | variants/esp32s3/ELECROW-ThinkNode-M5 | Display:6, Radio:14, Input:2, GPS:8, Power:4, Connectivity/Other:1 |
|
|
| tlora-pager | LILYGO T-LoRa Pager | 103 | T_LORA_PAGER | variants/esp32s3/tlora-pager | Display:10, Radio:30, Input:6, GPS:5, Power:5, Connectivity/Other:17 |
|
|
| tlora-pager-tft | | | | variants/esp32s3/tlora-pager | Display:10, Radio:30, Input:6, GPS:5, Power:5, Connectivity/Other:17 |
|
|
| tlora-t3s3-epaper | LILYGO T-LoRa T3-S3 E-Ink | 16 | TLORA_T3_S3 | variants/esp32s3/tlora_t3s3_epaper | Display:6, Radio:28, Input:1, GPS:3, Power:3 |
|
|
| tlora-t3s3-epaper-inkhud | | | | variants/esp32s3/tlora_t3s3_epaper | Display:6, Radio:28, Input:1, GPS:3, Power:3 |
|
|
| tlora-t3s3-v1 | LILYGO T-LoRa T3-S3 | 16 | TLORA_T3_S3 | variants/esp32s3/tlora_t3s3_v1 | Display:1, Radio:36, Input:1, Power:3 |
|
|
| unphone | unPhone | 59 | UNPHONE | variants/esp32s3/unphone | Display:9, Radio:9, Input:3, GPS:1, Power:2, Connectivity/Other:1 |
|
|
| unphone-tft | | | | variants/esp32s3/unphone | Display:9, Radio:9, Input:3, GPS:1, Power:2, Connectivity/Other:1 |
|
|
|
|
### esp32s2
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| -------------- | ------------ | -------- | ------- | ------------------------------- | -------------------------------------- |
|
|
| nugget-s2-lora | | | | variants/esp32s2/nugget_s2_lora | Radio:9, Input:1, Connectivity/Other:1 |
|
|
|
|
### native
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| ---------------- | ------------ | -------- | ------- | ----------------------------------- | ----------------- |
|
|
| buildroot | | | | variants/native/portduino-buildroot | Display:2, GPS:1 |
|
|
| coverage | | | | variants/native/portduino | Display:2, GPS:1 |
|
|
| native | | | | variants/native/portduino | Display:2, GPS:1 |
|
|
| native-fb | | | | variants/native/portduino | Display:2, GPS:1 |
|
|
| native-tft | | | | variants/native/portduino | Display:2, GPS:1 |
|
|
| native-tft-debug | | | | variants/native/portduino | Display:2, GPS:1 |
|
|
|
|
### nrf52840
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| -------------------------------- | -------------------------- | -------- | ------------------------- | ---------------------------------------------- | --------------------------------------------------------- |
|
|
| ME25LS01-4Y10TD | | | | variants/nrf52840/ME25LS01-4Y10TD | Radio:8, Input:1, GPS:8, Power:4 |
|
|
| ME25LS01-4Y10TD_e-ink | | | | variants/nrf52840/ME25LS01-4Y10TD_e-ink | Display:6, Radio:8, Input:1, GPS:8, Power:4 |
|
|
| TWC_mesh_v4 | | | | variants/nrf52840/TWC_mesh_v4 | Display:1, Radio:7, GPS:4, Power:5 |
|
|
| canaryone | Canary One | 29 | CANARYONE | variants/nrf52840/canaryone | Radio:7, GPS:8, Power:5 |
|
|
| feather_diy | | | | variants/nrf52840/feather_diy | Radio:17, Input:1 |
|
|
| gat562_mesh_trial_tracker | | | | variants/nrf52840/gat562_mesh_trial_tracker | Display:2, Radio:8, GPS:4, Power:5 |
|
|
| heltec-mesh-node-t096 | Heltec Mesh Node 096 | 127 | HELTEC_MESH_NODE_T096 | variants/nrf52840/heltec_mesh_node_t096 | Display:8, Radio:11, GPS:10, Power:9 |
|
|
| heltec-mesh-node-t114 | Heltec Mesh Node T114 | 69 | HELTEC_MESH_NODE_T114 | variants/nrf52840/heltec_mesh_node_t114 | Display:7, Radio:8, GPS:7, Power:8, Connectivity/Other:1 |
|
|
| heltec-mesh-node-t114-inkhud | | | | variants/nrf52840/heltec_mesh_node_t114-inkhud | Display:6, Radio:8, GPS:7, Power:7, Connectivity/Other:1 |
|
|
| heltec-mesh-pocket-10000 | Heltec Mesh Pocket | 94 | HELTEC_MESH_POCKET | variants/nrf52840/heltec_mesh_pocket | Display:6, Radio:8, GPS:1, Power:7 |
|
|
| heltec-mesh-pocket-10000-inkhud | Heltec Mesh Pocket | 94 | HELTEC_MESH_POCKET | variants/nrf52840/heltec_mesh_pocket | Display:6, Radio:8, GPS:1, Power:7 |
|
|
| heltec-mesh-pocket-5000 | Heltec Mesh Pocket | 94 | HELTEC_MESH_POCKET | variants/nrf52840/heltec_mesh_pocket | Display:6, Radio:8, GPS:1, Power:7 |
|
|
| heltec-mesh-pocket-5000-inkhud | Heltec Mesh Pocket | 94 | HELTEC_MESH_POCKET | variants/nrf52840/heltec_mesh_pocket | Display:6, Radio:8, GPS:1, Power:7 |
|
|
| heltec-mesh-solar | Heltec MeshSolar | 108 | HELTEC_MESH_SOLAR | variants/nrf52840/heltec_mesh_solar | Radio:8, GPS:6 |
|
|
| heltec-mesh-solar-eink | | | | variants/nrf52840/heltec_mesh_solar | Radio:8, GPS:6 |
|
|
| heltec-mesh-solar-inkhud | | | | variants/nrf52840/heltec_mesh_solar | Radio:8, GPS:6 |
|
|
| heltec-mesh-solar-oled | | | | variants/nrf52840/heltec_mesh_solar | Radio:8, GPS:6 |
|
|
| heltec-mesh-solar-tft | | | | variants/nrf52840/heltec_mesh_solar | Radio:8, GPS:6 |
|
|
| makerpython_nrf52840_sx1280_eink | | | | variants/nrf52840/MakePython_nRF52840_eink | Display:6, Radio:6, GPS:4, Power:5 |
|
|
| makerpython_nrf52840_sx1280_oled | | | | variants/nrf52840/MakePython_nRF52840_oled | Radio:6, GPS:4, Power:5 |
|
|
| meshlink | | | | variants/nrf52840/meshlink | Display:6, Radio:7, Input:1, GPS:5, Power:5 |
|
|
| meshlink_eink | | | | variants/nrf52840/meshlink | Display:6, Radio:7, Input:1, GPS:5, Power:5 |
|
|
| meshtiny | | | | variants/nrf52840/meshtiny | Display:2, Radio:8, Input:5, Power:5 |
|
|
| minimesh_lite | | | | variants/nrf52840/dls_Minimesh_Lite | Radio:15, Input:1, GPS:4, Power:6 |
|
|
| monteops_hw1 | | | | variants/nrf52840/monteops_hw1 | Radio:8, GPS:3, Power:5, Connectivity/Other:1 |
|
|
| ms24sf1 | | | | variants/nrf52840/MS24SF1 | Radio:8, Input:1, GPS:8, Power:4 |
|
|
| muzi-base | muzi BASE | 93 | MUZI_BASE | variants/nrf52840/muzi_base | Display:3, Radio:19, Input:1, GPS:4, Power:5 |
|
|
| nano-g2-ultra | Nano G2 Ultra | 18 | NANO_G2_ULTRA | variants/nrf52840/nano-g2-ultra | Display:1, Radio:7, GPS:4, Power:6, Connectivity/Other:1 |
|
|
| nrf52_promicro_diy_tcxo | NRF52 Pro-micro DIY | 63 | NRF52_PROMICRO_DIY | variants/nrf52840/diy/nrf52_promicro_diy_tcxo | Display:4, Radio:29, Input:1, GPS:4, Power:6 |
|
|
| pca10059_diy_eink | | | | variants/nrf52840/Dongle_nRF52840-pca10059-v1 | Display:7, Radio:8, GPS:4, Power:5 |
|
|
| r1-neo | muzi R1 Neo | 101 | MUZI_R1_NEO | variants/nrf52840/r1-neo | Display:1, Radio:8, GPS:4, Power:5 |
|
|
| rak2560 | RAK WisMesh Repeater | 22 | WISMESH_HUB | variants/nrf52840/rak2560 | Display:6, Radio:8, GPS:2, Power:5 |
|
|
| rak3401-1watt | RAK3401 1W | 117 | RAK3401 | variants/nrf52840/rak3401_1watt | Display:6, Radio:12, GPS:3, Power:5 |
|
|
| rak4631 | RAK WisBlock 4631 | 9 | RAK4631 | variants/nrf52840/rak4631 | Display:6, Radio:8, GPS:3, Power:7, Connectivity/Other:1 |
|
|
| rak4631_dbg | | | | variants/nrf52840/rak4631 | Display:6, Radio:8, GPS:3, Power:7, Connectivity/Other:1 |
|
|
| rak4631_eink | | | | variants/nrf52840/rak4631_epaper | Display:6, Radio:8, GPS:4, Power:5 |
|
|
| rak4631_eink_onrxtx | | | | variants/nrf52840/rak4631_epaper_onrxtx | Display:6, Radio:8, Power:1 |
|
|
| rak4631_eth_gw | | | | variants/nrf52840/rak4631_eth_gw | Display:6, Radio:8, GPS:3, Power:5, Connectivity/Other:1 |
|
|
| rak4631_eth_gw_dbg | | | | variants/nrf52840/rak4631_eth_gw | Display:6, Radio:8, GPS:3, Power:5, Connectivity/Other:1 |
|
|
| rak4631_nomadstar_meteor_pro | NomadStar Meteor Pro | 96 | NOMADSTAR_METEOR_PRO | variants/nrf52840/rak4631_nomadstar_meteor_pro | Display:6, Radio:8, GPS:3, Power:5, Connectivity/Other:1 |
|
|
| rak4631_nomadstar_meteor_pro_dbg | | | | variants/nrf52840/rak4631_nomadstar_meteor_pro | Display:6, Radio:8, GPS:3, Power:5, Connectivity/Other:1 |
|
|
| rak_wismeshtag | RAK WisMesh Tag | 105 | WISMESH_TAG | variants/nrf52840/rak_wismeshtag | Display:7, Radio:8, GPS:4, Power:5 |
|
|
| rak_wismeshtap | RAK WisMesh Tap | 84 | WISMESH_TAP | variants/nrf52840/rak_wismeshtap | Display:21, Radio:8, GPS:3, Power:7, Connectivity/Other:1 |
|
|
| seeed_solar_node | Seeed SenseCAP Solar Node | 95 | SEEED_SOLAR_NODE | variants/nrf52840/seeed_solar_node | Radio:9, Input:2, GPS:8, Power:3 |
|
|
| seeed_wio_tracker_L1 | Seeed Wio Tracker L1 | 99 | SEEED_WIO_TRACKER_L1 | variants/nrf52840/seeed_wio_tracker_L1 | Display:2, Radio:9, Input:1, GPS:7, Power:3 |
|
|
| seeed_wio_tracker_L1_eink | Seeed Wio Tracker L1 E-Ink | 100 | SEEED_WIO_TRACKER_L1_EINK | variants/nrf52840/seeed_wio_tracker_L1_eink | Display:7, Radio:9, Input:1, GPS:7, Power:3 |
|
|
| seeed_wio_tracker_L1_eink-inkhud | | | | variants/nrf52840/seeed_wio_tracker_L1_eink | Display:7, Radio:9, Input:1, GPS:7, Power:3 |
|
|
| seeed_xiao_nrf52840_kit | Seeed Xiao NRF52840 Kit | 88 | XIAO_NRF52_KIT | variants/nrf52840/seeed_xiao_nrf52840_kit | Radio:19, Input:2, GPS:9, Power:6 |
|
|
| seeed_xiao_nrf52840_kit_i2c | | | | variants/nrf52840/seeed_xiao_nrf52840_kit | Radio:19, Input:2, GPS:9, Power:6 |
|
|
| t-echo | LILYGO T-Echo | 7 | T_ECHO | variants/nrf52840/t-echo | Display:7, Radio:8, GPS:7, Power:6, Connectivity/Other:1 |
|
|
| t-echo-inkhud | | | | variants/nrf52840/t-echo | Display:7, Radio:8, GPS:7, Power:6, Connectivity/Other:1 |
|
|
| t-echo-lite | LILYGO T-Echo Lite | 109 | T_ECHO_LITE | variants/nrf52840/t-echo-lite | Display:6, Radio:9, GPS:10, Power:8 |
|
|
| t-echo-plus | | | | variants/nrf52840/t-echo-plus | Display:8, Radio:8, GPS:7, Power:6 |
|
|
| thinknode_m1 | ThinkNode M1 | 89 | THINKNODE_M1 | variants/nrf52840/ELECROW-ThinkNode-M1 | Display:7, Radio:8, Input:1, GPS:8, Power:8 |
|
|
| thinknode_m1-inkhud | | | | variants/nrf52840/ELECROW-ThinkNode-M1 | Display:7, Radio:8, Input:1, GPS:8, Power:8 |
|
|
| thinknode_m3 | Elecrow ThinkNode M3 | 115 | THINKNODE_M3 | variants/nrf52840/ELECROW-ThinkNode-M3 | Radio:1, Input:2, GPS:8, Power:7, Connectivity/Other:1 |
|
|
| thinknode_m4 | | | | variants/nrf52840/ELECROW-ThinkNode-M4 | Radio:8, GPS:12, Power:7 |
|
|
| thinknode_m6 | ThinkNode M6 | 120 | THINKNODE_M6 | variants/nrf52840/ELECROW-ThinkNode-M6 | Radio:7, GPS:9, Power:9, Connectivity/Other:1 |
|
|
| tracker-t1000-e | Seeed SenseCAP T1000-E | 71 | TRACKER_T1000_E | variants/nrf52840/tracker-t1000-e | Display:1, Radio:8, Input:1, GPS:13, Power:5 |
|
|
| wio-sdk-wm1110 | | | | variants/nrf52840/wio-sdk-wm1110 | Radio:8, Input:1 |
|
|
| wio-t1000-s | | | | variants/nrf52840/wio-t1000-s | Radio:8, Input:1, GPS:12, Power:4 |
|
|
| wio-tracker-wm1110 | Seeed Wio WM1110 Tracker | 21 | WIO_WM1110 | variants/nrf52840/wio-tracker-wm1110 | Radio:8, Input:1, GPS:3 |
|
|
|
|
### rp2040
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| -------------------- | ------------------- | -------- | ----------- | ------------------------------------ | ------------------------------------------------ |
|
|
| catsniffer | | | | variants/rp2040/ec_catsniffer | Display:1, Radio:17, GPS:1 |
|
|
| challenger_2040_lora | | | | variants/rp2040/challenger_2040_lora | Radio:17, Input:1, Power:1 |
|
|
| feather_rp2040_rfm95 | | | | variants/rp2040/feather_rp2040_rfm95 | Radio:17, Input:1, Power:1 |
|
|
| nibble-rp2040 | | | | variants/rp2040/nibble_rp2040 | Radio:9, Input:1 |
|
|
| pico | Raspberry Pi Pico | 47 | RPI_PICO | variants/rp2040/rpipico | Radio:16, Input:1, Power:4 |
|
|
| pico_slowclock | | | | variants/rp2040/rpipico-slowclock | Display:2, Radio:16, Input:1, GPS:5, Power:4 |
|
|
| picow | Raspberry Pi Pico W | 47 | RPI_PICO | variants/rp2040/rpipicow | Radio:16, Input:1, Power:4, Connectivity/Other:1 |
|
|
| rak11310 | RAK WisBlock 11310 | 26 | RAK11310 | variants/rp2040/rak11310 | Radio:17, Input:1, Power:3, Connectivity/Other:1 |
|
|
| rp2040-lora | RP2040 LoRa | 30 | RP2040_LORA | variants/rp2040/rp2040-lora | Radio:18, Input:1, Power:1 |
|
|
| senselora_rp2040 | | | | variants/rp2040/senselora_rp2040 | Display:1, Radio:9, Input:1, Power:1 |
|
|
|
|
### rp2350
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| ----------- | ------------ | -------- | ------- | ------------------------- | ------------------------------------------------ |
|
|
| pico2 | | | | variants/rp2350/rpipico2 | Radio:16, Input:1, Power:4 |
|
|
| pico2w | | | | variants/rp2350/rpipico2w | Radio:16, Input:1, Power:4, Connectivity/Other:1 |
|
|
|
|
### stm32
|
|
|
|
| Environment | Display Name | HW Model | HW Slug | Variant Dir | Common Categories |
|
|
| --------------- | ------------ | -------- | ------- | ------------------------------ | ---------------------------------- |
|
|
| CDEBYTE_E77-MBL | | | | variants/stm32/CDEBYTE_E77-MBL | Display:1 |
|
|
| milesight_gs301 | | | | variants/stm32/milesight_gs301 | Display:1, Radio:1, Input:1 |
|
|
| rak3172 | | | | variants/stm32/rak3172 | Display:1 |
|
|
| russell | | | | variants/stm32/russell | Display:1, Radio:1, Input:1, GPS:4 |
|
|
| wio-e5 | | | | variants/stm32/wio-e5 | Display:1 |
|
|
|
|
## Representative Board Examples
|
|
|
|
### diy: `9m2ibr_aprs_lora_tracker`
|
|
|
|
- Variant directory: `variants/esp32/diy/9m2ibr_aprs_lora_tracker`
|
|
- Input examples:
|
|
- `BUTTON_PIN` = `15`
|
|
- Radio examples:
|
|
- `LORA_SCK` = `18`
|
|
- `LORA_MISO` = `19`
|
|
- `LORA_MOSI` = `23`
|
|
- `LORA_CS` = `5`
|
|
- `LORA_DIO0` = `26`
|
|
- `LORA_RESET` = `27`
|
|
- `LORA_DIO1` = `12`
|
|
- `LORA_DIO2` = `RADIOLIB_NC`
|
|
- GPS examples:
|
|
- `GPS_RX_PIN` = `16`
|
|
- `GPS_TX_PIN` = `17`
|
|
- Display examples:
|
|
- `HAS_SCREEN` = `1`
|
|
- I2C/SPI examples:
|
|
- `I2C_SDA` = `21`
|
|
- `I2C_SCL` = `22`
|
|
- Power examples:
|
|
- `BATTERY_PIN` = `35`
|
|
- `ADC_MULTIPLIER` = `2.01`
|
|
- `ADC_CHANNEL` = `ADC1_GPIO35_CHANNEL`
|
|
- `BATTERY_SENSE_RESOLUTION_BITS` = `ADC_RESOLUTION`
|
|
|
|
### esp32: `betafpv_2400_tx_micro`
|
|
|
|
- Variant directory: `variants/esp32/betafpv_2400_tx_micro`
|
|
- Input examples:
|
|
- `BUTTON_PIN` = `25`
|
|
- Radio examples:
|
|
- `LORA_SCK` = `18`
|
|
- `LORA_MISO` = `19`
|
|
- `LORA_MOSI` = `23`
|
|
- `LORA_CS` = `5`
|
|
- `RF95_FAN_EN` = `17`
|
|
- `USE_SX1280` = `1`
|
|
- `LORA_RESET` = `14`
|
|
- `SX128X_CS` = `5`
|
|
- I2C/SPI examples:
|
|
- `I2C_SDA` = `22`
|
|
- `I2C_SCL` = `32`
|
|
- Connectivity/Other examples:
|
|
- `HAS_NEOPIXEL` = `1`
|
|
|
|
### esp32-c3: `ai-c3`
|
|
|
|
- Variant directory: `variants/esp32c3/ai-c3`
|
|
- Input examples:
|
|
- `BUTTON_PIN` = `9`
|
|
- Radio examples:
|
|
- `USE_RF95` = `1`
|
|
- `LORA_SCK` = `4`
|
|
- `LORA_MISO` = `5`
|
|
- `LORA_MOSI` = `6`
|
|
- `LORA_CS` = `7`
|
|
- `LORA_DIO0` = `10`
|
|
- `LORA_DIO1` = `3`
|
|
- `LORA_RESET` = `2`
|
|
- GPS examples:
|
|
- `HAS_GPS` = `0`
|
|
- I2C/SPI examples:
|
|
- `I2C_SDA` = `SDA`
|
|
- `I2C_SCL` = `SCL`
|
|
|
|
### esp32-c6: `m5stack-unitc6l`
|
|
|
|
- Variant directory: `variants/esp32c6/m5stack_unitc6l`
|
|
- `custom_meshtastic_hw_model`: `111`
|
|
- `custom_meshtastic_hw_model_slug`: `M5STACK_C6L`
|
|
- `custom_meshtastic_architecture`: `esp32-c6`
|
|
- `custom_meshtastic_actively_supported`: `true`
|
|
- `custom_meshtastic_support_level`: `1`
|
|
- `custom_meshtastic_display_name`: `M5Stack Unit C6L`
|
|
- `custom_meshtastic_images`: `m5_c6l.svg`
|
|
- `custom_meshtastic_tags`: `M5Stack`
|
|
- Radio examples:
|
|
- `USE_SX1262` = `1`
|
|
- `LORA_MISO` = `22`
|
|
- `LORA_SCK` = `20`
|
|
- `LORA_MOSI` = `21`
|
|
- `LORA_CS` = `23`
|
|
- `LORA_RESET` = `RADIOLIB_NC`
|
|
- `LORA_DIO1` = `7`
|
|
- `LORA_BUSY` = `19`
|
|
- GPS examples:
|
|
- `HAS_GPS` = `1`
|
|
- `GPS_RX_PIN` = `4`
|
|
- `GPS_TX_PIN` = `5`
|
|
- Display examples:
|
|
- `SCREEN_TRANSITION_FRAMERATE` = `10`
|
|
- I2C/SPI examples:
|
|
- `I2C_SDA` = `10`
|
|
- `I2C_SCL` = `8`
|
|
- Connectivity/Other examples:
|
|
- `HAS_NEOPIXEL` = `1`
|
|
|
|
### esp32-s3: `CDEBYTE_EoRa-Hub`
|
|
|
|
- Variant directory: `variants/esp32s3/CDEBYTE_EoRa-Hub`
|
|
- Input examples:
|
|
- `BUTTON_PIN` = `0`
|
|
- Radio examples:
|
|
- `USE_LR1121` = `1`
|
|
- `LORA_SCK` = `9`
|
|
- `LORA_MOSI` = `10`
|
|
- `LORA_MISO` = `11`
|
|
- `LORA_RESET` = `12`
|
|
- `LORA_CS` = `8`
|
|
- `LORA_DIO9` = `13`
|
|
- `LR1121_IRQ_PIN` = `14`
|
|
- Display examples:
|
|
- `HAS_SCREEN` = `1`
|
|
- `USE_SSD1306` = `1`
|
|
- I2C/SPI examples:
|
|
- `I2C_SCL` = `17`
|
|
- `I2C_SDA` = `18`
|
|
- `I2C_SCL1` = `21`
|
|
- `I2C_SDA1` = `10`
|
|
- Power examples:
|
|
- `BATTERY_PIN` = `1`
|
|
- `ADC_CHANNEL` = `ADC1_GPIO1_CHANNEL`
|
|
- `ADC_MULTIPLIER` = `103.0`
|
|
- `ADC_ATTENUATION` = `ADC_ATTEN_DB_0`
|
|
- `ADC_CTRL` = `37`
|
|
- `ADC_CTRL_ENABLED` = `LOW`
|
|
|
|
### esp32s2: `nugget-s2-lora`
|
|
|
|
- Variant directory: `variants/esp32s2/nugget_s2_lora`
|
|
- Input examples:
|
|
- `BUTTON_PIN` = `0`
|
|
- Radio examples:
|
|
- `USE_RF95` = `1`
|
|
- `LORA_SCK` = `6`
|
|
- `LORA_MISO` = `8`
|
|
- `LORA_MOSI` = `10`
|
|
- `LORA_CS` = `13`
|
|
- `LORA_DIO0` = `16`
|
|
- `LORA_RESET` = `5`
|
|
- `LORA_DIO1` = `RADIOLIB_NC`
|
|
- I2C/SPI examples:
|
|
- `I2C_SDA` = `34`
|
|
- `I2C_SCL` = `36`
|
|
- Connectivity/Other examples:
|
|
- `HAS_NEOPIXEL` = `1`
|
|
|
|
### native: `buildroot`
|
|
|
|
- Variant directory: `variants/native/portduino-buildroot`
|
|
- GPS examples:
|
|
- `HAS_GPS` = `1`
|
|
- Display examples:
|
|
- `HAS_SCREEN` = `1`
|
|
- `USE_TFTDISPLAY` = `1`
|
|
|
|
### nrf52840: `ME25LS01-4Y10TD`
|
|
|
|
- Variant directory: `variants/nrf52840/ME25LS01-4Y10TD`
|
|
- Input examples:
|
|
- `BUTTON_PIN` = `(0 + 27)`
|
|
- Radio examples:
|
|
- `LORA_RESET` = `(32 + 11)`
|
|
- `LORA_DIO1` = `(32 + 12)`
|
|
- `LORA_DIO2` = `(32 + 10)`
|
|
- `LORA_SCK` = `PIN_SPI_SCK`
|
|
- `LORA_MISO` = `PIN_SPI_MISO`
|
|
- `LORA_MOSI` = `PIN_SPI_MOSI`
|
|
- `LORA_CS` = `PIN_SPI_NSS`
|
|
- `USE_LR1110` = `1`
|
|
- GPS examples:
|
|
- `HAS_GPS` = `0`
|
|
- `PIN_GPS_EN` = `-1`
|
|
- `GPS_EN_ACTIVE` = `HIGH`
|
|
- `PIN_GPS_RESET` = `-1`
|
|
- `GPS_VRTC_EN` = `-1`
|
|
- `GPS_SLEEP_INT` = `-1`
|
|
- `GPS_RTC_INT` = `-1`
|
|
- `GPS_RESETB_OUT` = `-1`
|
|
- I2C/SPI examples:
|
|
- `WIRE_INTERFACES_COUNT` = `1`
|
|
- `SPI_INTERFACES_COUNT` = `1`
|
|
- `PIN_SPI_MISO` = `(0 + 29)`
|
|
- `PIN_SPI_MOSI` = `(0 + 2)`
|
|
- `PIN_SPI_SCK` = `(32 + 15)`
|
|
- `PIN_SPI_NSS` = `(32 + 13)`
|
|
- Power examples:
|
|
- `BATTERY_PIN` = `-1`
|
|
- `ADC_MULTIPLIER` = `(2.0F)`
|
|
- `ADC_RESOLUTION` = `14`
|
|
- `BATTERY_SENSE_RESOLUTION_BITS` = `12`
|
|
|
|
### rp2040: `catsniffer`
|
|
|
|
- Variant directory: `variants/rp2040/ec_catsniffer`
|
|
- Radio examples:
|
|
- `USE_SX1262` = `1`
|
|
- `LORA_SCK` = `18`
|
|
- `LORA_MISO` = `16`
|
|
- `LORA_MOSI` = `19`
|
|
- `LORA_CS` = `17`
|
|
- `LORA_DIO0` = `5`
|
|
- `LORA_RESET` = `24`
|
|
- `LORA_DIO1` = `4`
|
|
- GPS examples:
|
|
- `HAS_GPS` = `0`
|
|
- Display examples:
|
|
- `HAS_SCREEN` = `0`
|
|
|
|
### rp2350: `pico2`
|
|
|
|
- Variant directory: `variants/rp2350/rpipico2`
|
|
- Input examples:
|
|
- `BUTTON_PIN` = `17`
|
|
- Radio examples:
|
|
- `USE_SX1262` = `1`
|
|
- `LORA_SCK` = `10`
|
|
- `LORA_MISO` = `12`
|
|
- `LORA_MOSI` = `11`
|
|
- `LORA_CS` = `3`
|
|
- `LORA_DIO0` = `RADIOLIB_NC`
|
|
- `LORA_RESET` = `15`
|
|
- `LORA_DIO1` = `20`
|
|
- Power examples:
|
|
- `EXT_NOTIFY_OUT` = `22`
|
|
- `BATTERY_PIN` = `26`
|
|
- `ADC_MULTIPLIER` = `3.1`
|
|
- `BATTERY_SENSE_RESOLUTION_BITS` = `ADC_RESOLUTION`
|
|
|
|
### stm32: `CDEBYTE_E77-MBL`
|
|
|
|
- Variant directory: `variants/stm32/CDEBYTE_E77-MBL`
|
|
- Display examples:
|
|
- `USE_STM32WLx` = `1`
|
|
|
|
## Intake Guidance For New Hardware
|
|
|
|
When using this context to add a new board, collect these inputs before generating files:
|
|
|
|
- PlatformIO environment name
|
|
- `custom_meshtastic_hw_model` and `custom_meshtastic_hw_model_slug`
|
|
- Display name and architecture
|
|
- Whether the board is actively supported and its support level
|
|
- Partition scheme, DFU requirement, and image/tag metadata if applicable
|
|
- Radio chip family and complete radio pin group
|
|
- Input/button/rotary/keyboard pins
|
|
- Display interface pins and driver-related macros
|
|
- GPS, power-management, I2C, SPI, storage, and auxiliary peripheral definitions
|
|
- Any board-specific initialization that requires `variant.cpp` or extra variant hooks
|
|
|
|
## Inherited Defaults Note
|
|
|
|
Some architecture families rely on BSP (Board Support Package) or base-environment defaults rather than declaring every pin or capability macro explicitly in `variant.h`. When adding a new board for one of these families, check the relevant BSP headers before assuming a missing define means a feature is absent.
|
|
|
|
Directories scanned that had no `variant.h` (relying entirely on BSP/base-environment): diy: 4, esp32: 3, esp32s3: 1
|
|
|
|
### nrf52840
|
|
|
|
- VARIANT_MCK — nRF52 BSP clock constant (e.g., 64000000ul); always inherited from BSP unless overridden.
|
|
- USE_LFXO — low-frequency crystal oscillator selection; declared locally only when the board uses LFXO rather than the RC oscillator.
|
|
- PIN*SPI*_ / PIN*SPI1*_ — SPI bus pin numbers come from the BSP variant table; boards override only when the LoRa radio or display uses non-default SPI routing.
|
|
- WIRE_INTERFACES_COUNT / SPI_INTERFACES_COUNT — bus count comes from BSP; explicitly set only when the board deviates.
|
|
- LED_BLUE / PIN_LED1 / PINS_COUNT / NUM_DIGITAL_PINS — standard BSP pin-table entries inherited from the nRF52 Arduino core.
|
|
|
|
### rp2040
|
|
|
|
- PIN*SPI*\* — primary SPI pins come from the RP2040 Arduino BSP; most boards declare them explicitly, but the defaults align with the Pico pin assignments.
|
|
- NUM_DIGITAL_PINS / NUM_ANALOG_INPUTS — Arduino BSP counts; rarely overridden locally.
|
|
|
|
### stm32
|
|
|
|
- Radio and pin assignments for STM32WL targets are largely internal to the WL SoC and declared via STM32 HAL/BSP headers; variant.h files are minimal.
|
|
- USE_STM32WLx is typically the only explicit define; all other radio config comes from the BSP.
|
|
|
|
### native
|
|
|
|
- The native/Portduino target uses runtime configuration rather than compile-time pin defines; variant.h only sets display and GPS stubs.
|
|
|
|
## Cautions
|
|
|
|
- Some boards rely on architecture defaults rather than declaring every field locally.
|
|
- Some board families expose multiple environments or display variants that share one hardware model.
|
|
- Source materials such as schematics still need human verification before new pin mappings are trusted.
|
|
- This document is a starting context artifact, not proof that a new board definition is safe to merge.
|