From f8299568fba6f8d30580bc3df7e9414ffeafb37c Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Wed, 11 Sep 2024 21:01:51 +0100 Subject: [PATCH 1/8] Replace all references to python with python3 instead, close #33 --- Console/Makefile | 6 +++--- Documentation/CONTRIBUTING.md | 2 +- Makefile | 26 +++++++++++++------------- Release/esptool/esptool.py | 2 +- Release/esptool/gen_esp32part.py | 2 +- Release/esptool/spiffsgen.py | 2 +- partition_hashes | 2 +- release_hashes.py | 4 ++-- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Console/Makefile b/Console/Makefile index d3158ae..6fdfc65 100644 --- a/Console/Makefile +++ b/Console/Makefile @@ -14,10 +14,10 @@ dirs: @mkdir -p ./build/images pages: - python ./build.py + python3 ./build.py pages-debug: - python ./build.py --no-gz --no-remap + python3 ./build.py --no-gz --no-remap sourcepack: @echo Packing firmware sources... @@ -44,4 +44,4 @@ site: clean external dirs data sourcepack pages local: clean external dirs data sourcepack pages-debug serve: - python -m http.server 7777 --bind 127.0.0.1 --directory ./build + python3 -m http.server 7777 --bind 127.0.0.1 --directory ./build diff --git a/Documentation/CONTRIBUTING.md b/Documentation/CONTRIBUTING.md index 09cb729..459707f 100644 --- a/Documentation/CONTRIBUTING.md +++ b/Documentation/CONTRIBUTING.md @@ -197,7 +197,7 @@ upload-wicked_esp32: @sleep 1 rnodeconf /dev/ttyACM0 --firmware-hash $$(./partition_hashes ./build/esp32.esp32.esp32c3/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32c3 --port /dev/ttyACM0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin ``` #### nRF52 ``` diff --git a/Makefile b/Makefile index 595b505..f931e34 100644 --- a/Makefile +++ b/Makefile @@ -50,11 +50,11 @@ console-site: spiffs: console-site spiffs-image spiffs-image: - python Release/esptool/spiffsgen.py 1966080 ./Console/build Release/console_image.bin + python3 Release/esptool/spiffsgen.py 1966080 ./Console/build Release/console_image.bin upload-spiffs: @echo Deploying SPIFFS image... - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin firmware-tbeam: arduino-cli compile --fqbn esp32:esp32:t-beam -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x33\"" @@ -121,56 +121,56 @@ upload-tbeam: @sleep 1 rnodeconf $(or $(port), /dev/ttyACM0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.t-beam/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-lora32_v10: arduino-cli upload -p $(or $(port), /dev/ttyUSB0) --fqbn esp32:esp32:ttgo-lora32 @sleep 1 rnodeconf $(or $(port), /dev/ttyUSB0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.ttgo-lora32/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-lora32_v20: arduino-cli upload -p $(or $(port), /dev/ttyUSB0) --fqbn esp32:esp32:ttgo-lora32 @sleep 1 rnodeconf $(or $(port), /dev/ttyUSB0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.ttgo-lora32/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-lora32_v21: arduino-cli upload -p $(or $(port), /dev/ttyACM0) --fqbn esp32:esp32:ttgo-lora32 @sleep 1 rnodeconf $(or $(port), /dev/ttyACM0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.ttgo-lora32/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-heltec32_v2: arduino-cli upload -p $(or $(port), /dev/ttyUSB0) --fqbn esp32:esp32:heltec_wifi_lora_32_V2 @sleep 1 rnodeconf $(or $(port), /dev/ttyUSB0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.heltec_wifi_lora_32_V2/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-heltec32_v3: arduino-cli upload -p $(or $(port), /dev/ttyUSB0) --fqbn esp32:esp32:heltec_wifi_lora_32_V3 @sleep 1 rnodeconf $(or $(port), /dev/ttyUSB0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.heltec_wifi_lora_32_V3/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32-s3 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32-s3 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-rnode_ng_20: arduino-cli upload -p $(or $(port), /dev/ttyUSB0) --fqbn esp32:esp32:ttgo-lora32 @sleep 1 rnodeconf $(or $(port), /dev/ttyUSB0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.ttgo-lora32/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-rnode_ng_21: arduino-cli upload -p $(or $(port), /dev/ttyACM0) --fqbn esp32:esp32:ttgo-lora32 @sleep 1 rnodeconf $(or $(port), /dev/ttyACM0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.ttgo-lora32/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-t3s3: @echo @@ -178,7 +178,7 @@ upload-t3s3: @read arduino-cli upload -p $(or $(port), /dev/ttyACM0) --fqbn esp32:esp32:esp32s3 @sleep 2 - python ./Release/esptool/esptool.py --chip esp32s3 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32s3 --port $(or $(port), /dev/ttyACM0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin @echo @echo Press the RESET button on the board now, and hit enter @read @@ -190,7 +190,7 @@ upload-featheresp32: @sleep 1 rnodeconf $(or $(port), /dev/ttyUSB0) --firmware-hash $$(./partition_hashes ./build/esp32.esp32.featheresp32/RNode_Firmware_CE.ino.bin) @sleep 3 - python ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin + python3 ./Release/esptool/esptool.py --chip esp32 --port $(or $(port), /dev/ttyUSB0) --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x210000 ./Release/console_image.bin upload-rak4631: arduino-cli upload -p $(or $(port), /dev/ttyACM0) --fqbn rakwireless:nrf52:WisCoreRAK4631Board @@ -202,7 +202,7 @@ release: release-all release-all: console-site spiffs-image release-tbeam release-tbeam_sx1262 release-lora32_v10 release-lora32_v20 release-lora32_v21 release-lora32_v10_extled release-lora32_v20_extled release-lora32_v21_extled release-lora32_v21_tcxo release-featheresp32 release-genericesp32 release-heltec32_v2 release-heltec32_v3 release-heltec32_v2_extled release-rnode_ng_20 release-rnode_ng_21 release-t3s3 release-hashes release-hashes: - python ./release_hashes.py > ./Release/release.json + python3 ./release_hashes.py > ./Release/release.json release-tbeam: arduino-cli compile --fqbn esp32:esp32:t-beam -e --build-property "build.partitions=no_ota" --build-property "upload.maximum_size=2097152" --build-property "compiler.cpp.extra_flags=\"-DBOARD_MODEL=0x33\"" diff --git a/Release/esptool/esptool.py b/Release/esptool/esptool.py index d1d62b4..e2ec3a0 100755 --- a/Release/esptool/esptool.py +++ b/Release/esptool/esptool.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # SPDX-FileCopyrightText: 2014-2022 Fredrik Ahlberg, Angus Gratton, Espressif Systems (Shanghai) CO LTD, other contributors as noted. # diff --git a/Release/esptool/gen_esp32part.py b/Release/esptool/gen_esp32part.py index 273f4e3..3168aa6 100644 --- a/Release/esptool/gen_esp32part.py +++ b/Release/esptool/gen_esp32part.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # ESP32 partition table generation tool # diff --git a/Release/esptool/spiffsgen.py b/Release/esptool/spiffsgen.py index 45f8449..75ebd61 100644 --- a/Release/esptool/spiffsgen.py +++ b/Release/esptool/spiffsgen.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # # spiffsgen is a tool used to generate a spiffs image from a directory # diff --git a/partition_hashes b/partition_hashes index b520250..d6b81fe 100755 --- a/partition_hashes +++ b/partition_hashes @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # Copyright (C) 2023, Mark Qvist diff --git a/release_hashes.py b/release_hashes.py index ce28a0c..c54a9d1 100644 --- a/release_hashes.py +++ b/release_hashes.py @@ -1,4 +1,4 @@ -#!/bin/python +#!/bin/python3 # Copyright (C) 2023, Mark Qvist @@ -47,4 +47,4 @@ for filename in files: "version": target_version } -print(json.dumps(release_hashes)) \ No newline at end of file +print(json.dumps(release_hashes)) From ba9022335cc62361c8d40b6e6ec6c17e44bc5683 Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Wed, 11 Sep 2024 21:49:27 +0100 Subject: [PATCH 2/8] Well that was embarassing... --- Config.h | 4 +++- RNode_Firmware_CE.ino | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Config.h b/Config.h index 7f4c505..9a46878 100644 --- a/Config.h +++ b/Config.h @@ -78,9 +78,11 @@ bool pmu_ready = false; bool promisc = false; bool implicit = false; - volatile bool packet_ready = false; uint8_t implicit_l = 0; + volatile bool packet_ready = false; + volatile uint8_t packet_interface = 0xFF; + uint8_t op_mode = MODE_HOST; uint8_t model = 0x00; uint8_t hwrev = 0x00; diff --git a/RNode_Firmware_CE.ino b/RNode_Firmware_CE.ino index 2ead632..96e0849 100644 --- a/RNode_Firmware_CE.ino +++ b/RNode_Firmware_CE.ino @@ -359,6 +359,7 @@ void receive_callback(uint8_t index, int packet_size) { getPacketData(selected_radio, packet_size); seq = SEQ_UNSET; + packet_interface = index; packet_ready = true; } else if (isSplitPacket(header) && seq != sequence) { @@ -384,6 +385,8 @@ void receive_callback(uint8_t index, int packet_size) { } getPacketData(selected_radio, packet_size); + + packet_interface = index; packet_ready = true; } } else { @@ -392,6 +395,8 @@ void receive_callback(uint8_t index, int packet_size) { read_len = 0; getPacketData(selected_radio, packet_size); + + packet_interface = index; packet_ready = true; } @@ -1167,7 +1172,7 @@ void loop() { #endif kiss_indicate_stat_rssi(); kiss_indicate_stat_snr(); - kiss_write_packet(1); + kiss_write_packet(packet_interface); } bool ready = false; From 07b7e28c7406ab39fc93390605a6acf4fa6cc369 Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Wed, 11 Sep 2024 21:49:56 +0100 Subject: [PATCH 3/8] Allow ESP32 with BLE to compile --- Utilities.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Utilities.h b/Utilities.h index 84b2de8..f1e832d 100644 --- a/Utilities.h +++ b/Utilities.h @@ -579,6 +579,7 @@ void serial_write(uint8_t byte) { } else { SerialBT.write(byte); + #if MCU_VARIANT == MCU_NRF52 && HAS_BLE // This ensures that the TX buffer is flushed after a frame is queued in serial. // serial_in_frame is used to ensure that the flush only happens at the end of the frame if (serial_in_frame && byte == FEND) { @@ -588,6 +589,7 @@ void serial_write(uint8_t byte) { else if (!serial_in_frame && byte == FEND) { serial_in_frame = true; } + #endif } #else Serial.write(byte); From 02f9dc13450d55c8fad1dfbf8826c3d9a5ab0879 Mon Sep 17 00:00:00 2001 From: jeremy Date: Thu, 12 Sep 2024 10:57:16 -0400 Subject: [PATCH 4/8] Squashed commit of the following: commit 2e25bff15413f2365f1b18c901f93297ce07c645 Author: jeremy Date: Thu Sep 12 10:19:07 2024 -0400 Adds t-echo support commit aa44625847179c5b3c4d03b9f7e062f409da0d8a Author: jeremy Date: Thu Sep 12 10:19:07 2024 -0400 Adds t-echo support --- .vscode/settings.json | 16 +++++++++++ Boards.h | 64 +++++++++++++++++++++++++++++++++++++++++-- Device.h | 6 +++- Makefile | 15 ++++++++++ RNode_Firmware_CE.ino | 26 +++++++++++++----- ROM.h | 3 ++ Radio.cpp | 5 ++++ Utilities.h | 13 +++++++-- 8 files changed, 136 insertions(+), 12 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..48174a9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "files.associations": { + "array": "cpp", + "deque": "cpp", + "list": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "string_view": "cpp", + "initializer_list": "cpp", + "ranges": "cpp", + "span": "cpp", + "format": "cpp" + } +} \ No newline at end of file diff --git a/Boards.h b/Boards.h index 3193b8e..eb2527b 100644 --- a/Boards.h +++ b/Boards.h @@ -39,6 +39,7 @@ #define BOARD_RNODE_NG_20 0x40 #define BOARD_RNODE_NG_21 0x41 #define BOARD_T3S3 0x42 + #define BOARD_TECHO 0x43 #define BOARD_GENERIC_NRF52 0x50 #define BOARD_RAK4631 0x51 @@ -50,7 +51,7 @@ #if defined(ESP32) #define PLATFORM PLATFORM_ESP32 #define MCU_VARIANT MCU_ESP32 - #elif defined(NRF52840_XXAA) + #elif defined(NRF52840_XXAA) || defined(_VARIANT_PCA10056_) #include #define PLATFORM PLATFORM_NRF52 #define MCU_VARIANT MCU_NRF52 @@ -629,7 +630,66 @@ #endif #elif MCU_VARIANT == MCU_NRF52 - #if BOARD_MODEL == BOARD_RAK4631 || BOARD_MODEL == BOARD_FREENODE + #if BOARD_MODEL == BOARD_TECHO + #define VALIDATE_FIRMWARE false + //#define GPS_BAUD_RATE 115200 + //#define PIN_GPS_TX 41 + //#define PIN_GPS_RX 40 + #define EEPROM_SIZE 296 + #define EEPROM_OFFSET EEPROM_SIZE-EEPROM_RESERVED + //#define HAS_EEPROM true + //#define HAS_SD true + //#define HAS_DISPLAY true + //#define HAS_CONSOLE true + //#define HAS_TXCO true + //#define DISPLAY EINK_BW + //#define HAS_BLE true + //#define HAS_PMU true + #define CONFIG_UART_BUFFER_SIZE 40000 + #define CONFIG_QUEUE_0_SIZE 6144 + #define CONFIG_QUEUE_MAX_LENGTH 200 + #define BLE_MANUFACTURER "LilyGO" + #define BLE_MODEL "T-Echo" + #define INTERFACE_COUNT 1 + //#define I2C_SDA 26 + //#define I2C_SCL 27 + #define CONFIG_QUEUE_1_SIZE 40000 + // first interface in list is the primary + const uint8_t interfaces[INTERFACE_COUNT] = {SX126X}; + const bool interface_cfg[INTERFACE_COUNT][3] = { + // SX1262 + { + false, // DEFAULT_SPI + true, // HAS_TCXO + true // DIO2_AS_RF_SWITCH + } + }; + + const int8_t interface_pins[INTERFACE_COUNT][10] = { + // SX1262 + { + 24, // pin_ss + 19, // pin_sclk + 22, // pin_mosi + 23, // pin_miso + 17, // pin_busy + 20, // pin_dio + 25, // pin_reset + -1, // pin_txen + -1, // pin_rxen + 21 // pin_tcxo_enable + } + }; + + const int pin_disp_cs = 30; + const int pin_disp_dc = 28; + const int pin_disp_reset = 2; + const int pin_disp_busy = 3; + const int pin_disp_en = 43; + + const int pin_led_rx = LED_BLUE; + const int pin_led_tx = LED_RED; + #elif BOARD_MODEL == BOARD_RAK4631 || BOARD_MODEL == BOARD_FREENODE #define HAS_EEPROM false #define HAS_DISPLAY true #define DISPLAY EINK_BW diff --git a/Device.h b/Device.h index 944479d..304e676 100644 --- a/Device.h +++ b/Device.h @@ -275,6 +275,7 @@ bool device_firmware_ok() { #if MCU_VARIANT == MCU_ESP32 || MCU_VARIANT == MCU_NRF52 bool device_init() { + #if VALIDATE_FIRMWARE if (bt_ready) { #if MCU_VARIANT == MCU_ESP32 for (uint8_t i=0; i #include "Utilities.h" -#if MCU_VARIANT == MCU_NRF52 - #define INTERFACE_SPI +#if MCU_VARIANT == MCU_NRF52 + #define INTERFACE_SPI + #if BOARD_MODEL == BOARD_RAK4631 // Required because on RAK4631, non-default SPI pins must be initialised when class is declared. SPIClass interface_spi[1] = { // SX1262 @@ -29,6 +30,17 @@ interface_pins[0][2] ) }; + #elif BOARD_MODEL == BOARD_TECHO + SPIClass interface_spi[1] = { + // SX1262 + SPIClass( + NRF_SPIM3, + interface_pins[0][3], + interface_pins[0][1], + interface_pins[0][2] + ) + }; + #endif #endif #ifndef INTERFACE_SPI @@ -1101,11 +1113,11 @@ void validate_status() { if (eeprom_checksum_valid()) { eeprom_ok = true; if (modems_installed) { - if (device_init()) { - hw_ready = true; - } else { - hw_ready = false; - } + if (device_init()) { + hw_ready = true; + } else { + hw_ready = false; + } } else { hw_ready = false; Serial.write("No valid radio module found\r\n"); diff --git a/ROM.h b/ROM.h index 323449d..4ecd02a 100644 --- a/ROM.h +++ b/ROM.h @@ -32,6 +32,9 @@ #define MODEL_12 0x12 #define MODEL_13 0x13 // RAK4631 LF with WisBlock SX1280 module (LIBSYS002) #define MODEL_14 0x14 // RAK4631 HF with WisBlock SX1280 module (LIBSYS002) + #define PRODUCT_TECHO 0x15 + #define MODEL_16 0x16 // T-Echo 433 + #define MODEL_17 0x17 // T-Echo 915 #define MODEL_21 0x21 // European band, 868MHz #define MODEL_A1 0xA1 #define MODEL_A5 0xA5 // T3S3 SX1280 PA diff --git a/Radio.cpp b/Radio.cpp index e0df264..0686b0b 100644 --- a/Radio.cpp +++ b/Radio.cpp @@ -744,6 +744,8 @@ void sx126x::enableTCXO() { uint8_t buf[4] = {MODE_TCXO_3_3V_6X, 0x00, 0x00, 0xFF}; #elif BOARD_MODEL == BOARD_TBEAM uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF}; + #elif BOARD_MODEL == BOARD_TECHO + uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF}; #elif BOARD_MODEL == BOARD_T3S3 uint8_t buf[4] = {MODE_TCXO_1_8V_6X, 0x00, 0x00, 0xFF}; #else @@ -2563,6 +2565,9 @@ void sx128x::disableCrc() byte sx128x::random() { // todo: implement + return 0x4; //chosen by fair die roll + //guarenteed to be random + //https://xkcd.com/221/ } void sx128x::setSPIFrequency(uint32_t frequency) diff --git a/Utilities.h b/Utilities.h index f1e832d..8405736 100644 --- a/Utilities.h +++ b/Utilities.h @@ -210,7 +210,12 @@ uint8_t boot_vector = 0x00; void led_rx_off() { digitalWrite(pin_led_rx, LOW); } void led_tx_on() { digitalWrite(pin_led_tx, HIGH); } void led_tx_off() { digitalWrite(pin_led_tx, LOW); } - #endif + #elif BOARD_MODEL == BOARD_TECHO + void led_rx_on() { digitalWrite(pin_led_rx, HIGH); } + void led_rx_off() { digitalWrite(pin_led_rx, LOW); } + void led_tx_on() { digitalWrite(pin_led_tx, HIGH); } + void led_tx_off() { digitalWrite(pin_led_tx, LOW); } + #endif #endif void hard_reset(void) { @@ -1160,6 +1165,8 @@ uint16_t getQueueSize(uint8_t index) { case 11: return CONFIG_QUEUE_11_SIZE; #endif + default: + return CONFIG_QUEUE_0_SIZE; } } @@ -1334,7 +1341,7 @@ bool eeprom_product_valid() { #if PLATFORM == PLATFORM_ESP32 if (rval == PRODUCT_RNODE || rval == BOARD_RNODE_NG_20 || rval == BOARD_RNODE_NG_21 || rval == PRODUCT_HMBRW || rval == PRODUCT_TBEAM || rval == PRODUCT_T32_10 || rval == PRODUCT_T32_20 || rval == PRODUCT_T32_21 || rval == PRODUCT_H32_V2 || rval == PRODUCT_H32_V3) { #elif PLATFORM == PLATFORM_NRF52 - if (rval == PRODUCT_RAK4631 || rval == PRODUCT_HMBRW || rval == PRODUCT_FREENODE) { + if (rval == PRODUCT_TECHO || rval == MODEL_16 || rval == MODEL_17 || rval == PRODUCT_RAK4631 || rval == PRODUCT_HMBRW || rval == PRODUCT_FREENODE) { #else if (false) { #endif @@ -1362,6 +1369,8 @@ bool eeprom_model_valid() { if (model == MODEL_FF || model == MODEL_FE) { #elif BOARD_MODEL == BOARD_TBEAM if (model == MODEL_E4 || model == MODEL_E9 || model == MODEL_E3 || model == MODEL_E8) { + #elif BOARD_MODEL == BOARD_TECHO + if (model == MODEL_16 || model == MODEL_17) { #elif BOARD_MODEL == BOARD_LORA32_V1_0 if (model == MODEL_BA || model == MODEL_BB) { #elif BOARD_MODEL == BOARD_LORA32_V2_0 From 2550b7a379f7ace8c467d94fe1717c63b15d64a8 Mon Sep 17 00:00:00 2001 From: jeremy Date: Thu, 12 Sep 2024 11:02:21 -0400 Subject: [PATCH 5/8] adds .vscode to git ignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c585a06..b879ff5 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ Release/*.zip Release/*.json Console/build build/* +.vscode \ No newline at end of file From 83ae40470f4891512da07b9a975504dd375959e3 Mon Sep 17 00:00:00 2001 From: jeremybox <33465600+jeremybox@users.noreply.github.com> Date: Thu, 12 Sep 2024 11:03:56 -0400 Subject: [PATCH 6/8] Delete .vscode/settings.json --- .vscode/settings.json | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 48174a9..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "files.associations": { - "array": "cpp", - "deque": "cpp", - "list": "cpp", - "string": "cpp", - "unordered_map": "cpp", - "unordered_set": "cpp", - "vector": "cpp", - "string_view": "cpp", - "initializer_list": "cpp", - "ranges": "cpp", - "span": "cpp", - "format": "cpp" - } -} \ No newline at end of file From 2cdf2951e6f68074a7cf6b381ca22562d6101e5f Mon Sep 17 00:00:00 2001 From: "jacob.eva" Date: Thu, 12 Sep 2024 20:32:54 +0100 Subject: [PATCH 7/8] Cleanup --- Device.h | 5 ++--- Radio.cpp | 2 +- Utilities.h | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Device.h b/Device.h index 304e676..e09ba55 100644 --- a/Device.h +++ b/Device.h @@ -259,14 +259,12 @@ void device_validate_partitions() { // todo, add bootloader, partition table, or softdevice? calculate_region_hash(APPLICATION_START, USER_DATA_START, dev_firmware_hash); #endif - #if VALIDATE_FIRMWARE for (uint8_t i = 0; i < DEV_HASH_LEN; i++) { if (dev_firmware_hash_target[i] != dev_firmware_hash[i]) { fw_signature_validated = false; break; } } - #endif } bool device_firmware_ok() { @@ -324,7 +322,8 @@ bool device_init() { } else { return false; } - #else //if VALIDATE_FIRMWARE is false + #else + // Skip hash comparison and checking BT return true; #endif } diff --git a/Radio.cpp b/Radio.cpp index 0686b0b..fe45ceb 100644 --- a/Radio.cpp +++ b/Radio.cpp @@ -2562,7 +2562,7 @@ void sx128x::disableCrc() setPacketParams(_preambleLength, _implicitHeaderMode, _payloadLength, _crcMode); } -byte sx128x::random() +uint8_t sx128x::random() { // todo: implement return 0x4; //chosen by fair die roll diff --git a/Utilities.h b/Utilities.h index 8405736..0424984 100644 --- a/Utilities.h +++ b/Utilities.h @@ -1341,7 +1341,7 @@ bool eeprom_product_valid() { #if PLATFORM == PLATFORM_ESP32 if (rval == PRODUCT_RNODE || rval == BOARD_RNODE_NG_20 || rval == BOARD_RNODE_NG_21 || rval == PRODUCT_HMBRW || rval == PRODUCT_TBEAM || rval == PRODUCT_T32_10 || rval == PRODUCT_T32_20 || rval == PRODUCT_T32_21 || rval == PRODUCT_H32_V2 || rval == PRODUCT_H32_V3) { #elif PLATFORM == PLATFORM_NRF52 - if (rval == PRODUCT_TECHO || rval == MODEL_16 || rval == MODEL_17 || rval == PRODUCT_RAK4631 || rval == PRODUCT_HMBRW || rval == PRODUCT_FREENODE) { + if (rval == PRODUCT_TECHO || rval == PRODUCT_RAK4631 || rval == PRODUCT_HMBRW || rval == PRODUCT_FREENODE) { #else if (false) { #endif From 50a60f07d2e52cc2861e841696afd618020d33d0 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Mon, 16 Sep 2024 12:50:56 -0400 Subject: [PATCH 8/8] fixes adds missing adafruit repo used for prep-nrf, and adds prep-nrf to the make prep --- Makefile | 2 +- arduino-cli.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 4618f95..6ed3007 100644 --- a/Makefile +++ b/Makefile @@ -21,7 +21,7 @@ clean: -rm -r ./build -rm ./Release/rnode_firmware* -prep: prep-esp32 prep-samd +prep: prep-esp32 prep-nrf prep-samd prep-esp32: arduino-cli core update-index --config-file arduino-cli.yaml diff --git a/arduino-cli.yaml b/arduino-cli.yaml index a8ad233..2f836f0 100644 --- a/arduino-cli.yaml +++ b/arduino-cli.yaml @@ -1,5 +1,6 @@ board_manager: additional_urls: + - https://adafruit.github.io/arduino-board-index/package_adafruit_index.json - https://liberatedsystems.co.uk/rnode-firmware-ce/esp-custom-package.json - https://raw.githubusercontent.com/RAKwireless/RAKwireless-Arduino-BSP-Index/main/package_rakwireless_index.json - http://unsigned.io/arduino/package_unsignedio_UnsignedBoards_index.json