* Migrate esp32 families to pioarduino platform * ESP32c6 align text.handler_execute same as C3 * Use pioarduino `develop` The latest fixes and the latest bugs! * preliminary esp32p4.ini * pioarduino: Update LovyanGFX Includes Manuel's recent commit * pioarduino 3.3.6 * pioarduino 3.3.6 *release* chasing the release * pioarduino: Fix OG ESP32 duplicate libs * pioarduino: T-Beam 1W CDC mode * pioarduino: disable network provisioning (wifiprov) * pioarduino: use legacy esptoolpy naming (forward-compatible) * Update lovyangfx from `develop` commit to 1.2.19 * fix esp32p4.ini * check for esp32 w/ wifi * esp32-p4 specific adaptations * Switch to meshtastic/esp32_https_server fork (idf5 branch) * don't ignore esp_lcd * config for MUI * fix/workaround SDMMC * revert a6f6175, update to 3.3.8 * enable esp_hosted for esp32-p4 (experimental) * Pioarduino 55.03.38-1 * NimBLE-Arduino -> Arduino "BLE" (3.3.x) migration (#10164) * NimBLE-Arduino -> Arduino "BLE" (3.3.x) migration * More NimBLE * Fix Device Name in ATT Read Request (0x2A00). Device Name is exposed in two places: - Advertisement data: this is set properly in startAdvertising. - GATT attribute Device Name (0x2A00). This one is handled internally in NimBLE and comes from ble_svc_gap_device_name_set. This is set initially, but then BLEDevice::createServer calls ble_svc_gap_init which resets the device name. This causes the device to apparently "change name after pairing": < ACL Data TX:... flags 0x00 dlen 7 #113 [hci0] 14.241149 ATT: Read Request (0x0a) len 2 Handle: 0x0003 Type: Device Name (0x2a00) > ACL Data RX: Handle 2048 flags 0x02 dlen 11 #115 [hci0] 14.269050 ATT: Read Response (0x0b) len 6 Value[6]: 6e696d626c65 # "nimble" Workaround this by setting the device name once again after BLEDevice::createServer. * Temporarily lower CORE_DEBUG_LEVEL to INFO to avoid triggering an apparent ESP-IDF Bluetooth bug when re-connecting to Pixel 8 Android devices. Initial pairing works, but after ESP32 is rebooted, phone fails to reconnect. Meshtastic app shows it as disconnecting immediately. LightBlue shows a more detailed error "Peripheral Connection - Warning: onConnectionStatusChange: status 61" (0x3D - MIC Failure). Bug report to Espresssif: https://github.com/espressif/esp-idf/issues/18126#issuecomment-4286197744 * Temporarily disable ble_gap_set_data_len, causes crash with Pixel 8 Android reconnect. Crash looks like this: [ 11966][E][BLEAdvertising.cpp:341] setScanResponseData(): ble_gap_adv_rsp_set_data: 22 [ 11975][E][BLEAdvertising.cpp:1554] start(): Host reset, wait for sync. ERROR | ??:??:?? 11 BLE failed to start advertising Guru Meditation Error: Core 0 panic'ed (LoadProhibited). Exception was unhandled. Core 0 register dump: PC : 0x420e6190 PS : 0x00060730 A0 : 0x820e158b A1 : 0x3fce50c0 A2 : 0x00000000 A3 : 0x3fcb8600 A4 : 0x3fcb85cc A5 : 0x00000000 A6 : 0x00000000 A7 : 0x00000c03 A8 : 0x00000000 A9 : 0x3fce50b0 A10 : 0x0000000e A11 : 0x00000000 A12 : 0x00000010 A13 : 0x3fce50e0 A14 : 0x00000c03 A15 : 0x00000001 SAR : 0x0000001e EXCCAUSE: 0x0000001c EXCVADDR: 0x00000000 LBEG : 0x400570e8 LEND : 0x400570f3 LCOUNT : 0x00000000 Backtrace: 0x420e618d:0x3fce50c0 0x420e1588:0x3fce5110 0x420dfe87:0x3fce5200 0x420dfefb:0x3fce5220 0x420dff3f:0x3fce5240 0x4219602b:0x3fce5260 0x4037b0e5:0x3fce5280 0x4201edf3:0x3fce52a0 Connection seems fast enough even without this. We'll investigate the reason for the crash and re-enable once it's safe. --------- Co-authored-by: Catalin Patulea <cronos586@gmail.com> * Add extension from pioarduino nag "Jason2866.esp-decoder" * Cleanup after merge * ESP32: Disable classic bluetooth * Cleanup: Fix ADC channels on new variants * InkHUD: Fix type casting for message size in saveToFlash method inkhud compiles again! * update p4 esp_hosted for BT * I thought I fixed this * fix linker error using response file (p4 only) * fix infinite loop * Fix Power.cpp check warning Local variable 'config' shadows outer variable [shadowVariable] * Build ESP32 original with NimBLE ('custom_sdkconfig' approach). (#10235) * Re-enable littlefs json manifest This works locally again :) Not sure what changed * Re-add tool-mklittlefs * sensecap indicator fixes after upgrade arduino-esp & lovyanGFX libs * hackaday fix * robot tbeam cache error fix Co-authored-by: Copilot <copilot@github.com> * trunk fmt * ignore trunk * BLEDevice::deinit() added Co-authored-by: Copilot <copilot@github.com> * platformio-custom: Modify mtjson target dependency to prevent fake-success. (#10291) Co-authored-by: Copilot <copilot@github.com> * Fix ESP32-C6 linker errors. Align .text.handler_execute section to 4 bytes and update watchdog timer core mask configuration Co-authored-by: Copilot <copilot@github.com> * tlora-c6: Disable Screen MESHTASTIC_EXCLUDE_SCREEN=1 on tlora-c6. It doesn't have a screen, and this gets it compiling again (saving flash). * Use mverch's iram_memset hack for all OG-ESP32 * Refactor watchdog timer initialization and handling * use adc_channel_t in variant.h * Fix variant headers * More idiomatic default ethernet that doesn't break the build * Elecrows: Delete problematic variant.cpp Not needed after USE_ETHERNET_DEFAULT --------- Co-authored-by: mverch67 <manuel.verch@gmx.de> Co-authored-by: Manuel <71137295+mverch67@users.noreply.github.com> Co-authored-by: Catalin Patulea <cronos586@gmail.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: vidplace7 <1779290+vidplace7@users.noreply.github.com> Co-authored-by: Copilot <copilot@github.com> Co-authored-by: thebentern <9000580+thebentern@users.noreply.github.com> Co-authored-by: Ben Meadors <benmmeadors@gmail.com>
124 lines
5.9 KiB
C
124 lines
5.9 KiB
C
//////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// Have custom connections or functionality? Configure them in this section //
|
|
// //
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Debugging
|
|
// #define GPS_DEBUG
|
|
|
|
// Lora
|
|
#define USE_LLCC68 // Original Chatter2 with LLCC68 module
|
|
#define USE_SX1262 // Added for when Lora module is swapped for HT-RA62
|
|
|
|
#define SX126X_CS 14 // module's NSS pin
|
|
#define LORA_SCK 16 // module's SCK pin
|
|
#define LORA_MOSI 5 // module's MOSI pin
|
|
#define LORA_MISO 17 // module's MISO pin
|
|
#define SX126X_RESET RADIOLIB_NC // module's NRST pin
|
|
#define SX126X_BUSY 4 // module's BUSY pin works for both LLCC68 and RA-62 with cut & jumper
|
|
#define SX126X_DIO1 18 // module's DIO1 pin
|
|
#define SX126X_DIO2_AS_RF_SWITCH // module's DIO2 pin
|
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8 // module's DIO pin
|
|
#define SX126X_TXEN RADIOLIB_NC
|
|
#define SX126X_RXEN RADIOLIB_NC
|
|
|
|
// External notification
|
|
// FIXME: Check if EXT_NOTIFY_OUT actualy has any effect and removes the need for setting the external notication pin in the
|
|
// app/preferences
|
|
// #define EXT_NOTIFY_OUT 2 // The GPIO pin that acts as the external notification output (here we connect an LED to it)
|
|
|
|
// Buzzer
|
|
#define PIN_BUZZER 19
|
|
// Buttons
|
|
// #define BUTTON_PIN 36 // Use the WAKE button as the user button
|
|
// I2C
|
|
// #define I2C_SCL 27
|
|
// #define I2C_SDA 26
|
|
|
|
#define SX126X_MAX_POWER 22 // SX126xInterface.cpp defaults to 22 if not defined, but here we define it for good practice
|
|
|
|
// Display
|
|
|
|
#define HAS_SCREEN 1 // Assume no screen present by default to prevent crash...
|
|
|
|
// ST7735S TFT LCD
|
|
#define ST7735S 1 // there are different (sub-)versions of ST7735
|
|
#define ST7735_CS -1
|
|
#define ST7735_RS 33 // DC
|
|
#define ST7735_SDA 26 // MOSI
|
|
#define ST7735_SCK 27
|
|
#define ST7735_RESET 15
|
|
#define ST7735_MISO -1
|
|
#define ST7735_BUSY -1
|
|
#define TFT_BL 32
|
|
#define ST7735_SPI_HOST HSPI_HOST // SPI2_HOST for S3, auto may work too
|
|
#define SPI_FREQUENCY 40000000
|
|
#define SPI_READ_FREQUENCY 16000000
|
|
#define TFT_HEIGHT 160
|
|
#define TFT_WIDTH 128
|
|
#define TFT_OFFSET_X 0
|
|
#define TFT_OFFSET_Y 0
|
|
#define TFT_INVERT false
|
|
#define FORCE_LOW_RES 1
|
|
#define SCREEN_ROTATE
|
|
#define SCREEN_TRANSITION_FRAMERATE 5 // fps
|
|
#define DISPLAY_FORCE_SMALL_FONTS
|
|
#define TFT_BACKLIGHT_ON LOW
|
|
#define USE_TFTDISPLAY 1
|
|
|
|
// Battery
|
|
|
|
#define BATTERY_PIN 34 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage
|
|
#define ADC_CHANNEL ADC_CHANNEL_6
|
|
#define ADC_ATTENUATION \
|
|
ADC_ATTEN_DB_2_5 // 2_5-> 100mv-1250mv, 11-> 150mv-3100mv for ESP32
|
|
// ESP32-S2/C3/S3 are different
|
|
// lower dB for lower voltage rnage
|
|
#define ADC_MULTIPLIER 5.0 // VBATT---10k--pin34---2.5K---GND
|
|
// Chatter2 uses 3 AAA cells
|
|
#define OCV_ARRAY 1580, 1400, 1350, 1300, 1280, 1250, 1230, 1190, 1150, 1100, 1000
|
|
#define NUM_CELLS 3
|
|
#undef EXT_PWR_DETECT
|
|
|
|
// GPS
|
|
// FIXME: unsure what to define HAS_GPS as if GPS isn't always present
|
|
#define HAS_GPS 1 // Don't need to set this to 0 to prevent a crash as it doesn't crash if GPS not found, will probe by default
|
|
// #define PIN_GPS_EN 15
|
|
// #define GPS_EN_ACTIVE 1
|
|
#undef GPS_TX_PIN
|
|
#undef GPS_RX_PIN
|
|
#define GPS_TX_PIN 13
|
|
#define GPS_RX_PIN 2
|
|
|
|
// keyboard
|
|
#define INPUTBROKER_SERIAL_TYPE 1
|
|
#define KB_LOAD 21 // load values from the switch and store in shift register
|
|
#define KB_CLK 22 // clock pin for serial data out
|
|
#define KB_DATA 23 // data pin
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// You should have no need to modify the code below, nor in pins_arduino.h //
|
|
// //
|
|
/////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#define LORA_CS SX126X_CS // FIXME: for some reason both are used in /src
|
|
|
|
// Many of the below values would only be used if USE_RF95 was defined, but it's not as we aren't actually using an RF95, just
|
|
// that the 4 pins above are named like it If they aren't used they don't need to be defined and doing so cause confusion to those
|
|
// adapting this file LORA_RESET value is never used in src (as we are not using RF95), so no need to define LORA_DIO0 is not used
|
|
// in src (as we are not using RF95) as SX1262 does not have it per SX1262 datasheet, so no need to define
|
|
// FIXME: confirm that the linked lines below are actually only called when using the SX126x or SX128x and no other modules
|
|
// then use SX126X_DIO1 and SX128X_DIO1 respectively for that purpose, removing the need for RF95-style LORA_* definitions when
|
|
// the RF95 isn't used
|
|
#define LORA_DIO1 \
|
|
SX126X_DIO1 // The old name is used in
|
|
// https://github.com/meshtastic/firmware/blob/7eff5e7bcb2084499b723c5e3846c15ee089e36d/src/sleep.cpp#L298, so
|
|
// must also define the old name
|
|
// LORA_DIO2 value is never used in src (as we are not using RF95), so no need to define, and if DIO2_AS_RF_SWITCH is set then it
|
|
// cannot serve any extra function even if requested to LORA_DIO3 value is never used in src (as we are not using RF95), so no
|
|
// need to define, and DIO3_AS_TCXO_AT_1V8 is set so it cannot serve any extra function even if requested to (from 13.3.2.1
|
|
// DioxMask in SX1262 datasheet: Note that if DIO2 or DIO3 are used to control the RF Switch or the TCXO, the IRQ will not be
|
|
// generated even if it is mapped to the pins.)
|