* Add ESP32 Power Management lessons learned document Documents our experimentation with ESP-IDF DFS and why it doesn't work well for Meshtastic (RTOS locks, BLE locks, USB issues). Proposes simpler alternative: manual setCpuFrequencyMhz() control with explicit triggers for when to go fast vs slow. * Addition of traffic management module * Fixing compile issues, but may still need to update protobufs. * Fixing log2Floor in cuckoo hash function * Adding support for traffic management in PhoneAPI. * Making router_preserve_hops work without checking if the previous hop was a router. Also works for CLIENT_BASE. * Adding station-g2 and portduino varients to be able to use this module. * Spoofing from address for nodeinfo cache * Changing name and behavior for zero_hop_telemetry / zero_hop_position * Name change for exhausting telemetry packets and setting hop_limit to 1 so it will be 0 when sent. * Updated hop logic, including exhaustRequested flag to bypass some checks later in the code. * Reducing memory on nrf52 nodes further to 12 bytes per entry, 12KB total using 8 bit hashes with 0.4% collision. Probably ok. Adding portduino to the platforms that don't need to worry about memory as much. * Fixing hopsAway for nodeinfo responses. * traffic_management.nodeinfo_direct_response_min_hops -> traffic_management.nodeinfo_direct_response_max_hops * Removing dry run mode * Updates to UnifiedCacheEntry to use a common cache, created defaults for some values, reduced a couple bytes per entry by using a resolution-scale time selection based on configuration value. * Enhance traffic management logging and configuration. Updated log messages in NextHopRouter and Router to include more context. Adjusted traffic management configuration checks in AdminModule and improved cache handling in TrafficManagementModule. Ensured consistent enabling of traffic management across various variants. * Implement destructor for TrafficManagementModule and improve cache allocation handling. The destructor ensures proper deallocation of cache memory based on its allocation source (PSRAM or heap). Additionally, updated cache allocation logic to log warnings only when PSRAM allocation fails. * Update TrafficManagementModule with enhanced comments for clarity and improve cache handling logic. Update protobuf submodule to latest commit. * Creating consistent log messages * Remove docs/ESP32_Power_Management.md from traffic_module * Add unit tests for Traffic Management Module functionality * Fixing compile issues, but may still need to update protobufs. * Adding support for traffic management in PhoneAPI. * Making router_preserve_hops work without checking if the previous hop was a router. Also works for CLIENT_BASE. * Enhance traffic management logging and configuration. Updated log messages in NextHopRouter and Router to include more context. Adjusted traffic management configuration checks in AdminModule and improved cache handling in TrafficManagementModule. Ensured consistent enabling of traffic management across various variants. * Implement destructor for TrafficManagementModule and improve cache allocation handling. The destructor ensures proper deallocation of cache memory based on its allocation source (PSRAM or heap). Additionally, updated cache allocation logic to log warnings only when PSRAM allocation fails. * Update TrafficManagementModule with enhanced comments for clarity and improve cache handling logic. Update protobuf submodule to latest commit. * Add mock classes and unit tests for Traffic Management Module functionality. * Refactor setup and loop functions in test_main.cpp to include extern "C" linkage * Update comment to include reduced memory requirements Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Re-arranging comments for programmers with the attention span of less than 5 lines of code. Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update comments in TrafficManagementModule to reflect changes in timestamp epoch handling and memory optimization details. * bug: Use node-wide config_ok_to_mqtt setting for cached NodeInfo replies. * Better way to handle clearing the ok_to_mqtt bit * Add bucketing to cuckoo hashing, allowing for 95% occupied rate before major eviction problems. * Extend nodeinfo cache for psram devices. * Refactor traffic management to make hop exhaustion packet-scoped. Nice catch. * Implement better position precision sanitization in TrafficManagementModule. * Added logic in TrafficManagementModule to invalidate stale traffic state. Also, added some tests to avoid future me from creating a regression here. * Fixing tests for native * Enhance TrafficManagementModule to improve NodeInfo response handling and position deduplication logic. Added tests to ensure local packets bypass transit filters and that NodeInfo requests correctly update the requester information in the cache. Updated deduplication checks to prevent dropping valid position packets under certain conditions. --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
63 lines
1.8 KiB
C
63 lines
1.8 KiB
C
/*
|
|
Board Information: https://wiki.uniteng.com/en/meshtastic/station-g2
|
|
*/
|
|
|
|
// Station G2 may not have GPS installed, but it has a GROVE GPS Socket for Optional GPS Module
|
|
#define GPS_RX_PIN 7
|
|
#define GPS_TX_PIN 15
|
|
|
|
// Station G2 has 1.3 inch OLED Screen
|
|
#define USE_SH1107_128_64
|
|
|
|
#define I2C_SDA 5 // I2C pins for this board
|
|
#define I2C_SCL 6
|
|
|
|
#define BUTTON_PIN 38 // This is the Program Button
|
|
#define BUTTON_NEED_PULLUP
|
|
|
|
#define USE_SX1262
|
|
|
|
#define LORA_MISO 14
|
|
#define LORA_SCK 12
|
|
#define LORA_MOSI 13
|
|
#define LORA_CS 11
|
|
|
|
#define LORA_RESET 21
|
|
#define LORA_DIO1 48
|
|
|
|
#ifdef USE_SX1262
|
|
#define SX126X_CS LORA_CS // FIXME - we really should define LORA_CS instead
|
|
#define SX126X_DIO1 LORA_DIO1
|
|
#define SX126X_BUSY 47
|
|
#define SX126X_RESET LORA_RESET
|
|
|
|
// DIO2 controlls an antenna switch and the TCXO voltage is controlled by DIO3
|
|
#define SX126X_DIO2_AS_RF_SWITCH
|
|
#define SX126X_DIO3_TCXO_VOLTAGE 1.8
|
|
|
|
// Ensure the PA does not exceed the saturation output power. More
|
|
// Info:https://wiki.uniteng.com/en/meshtastic/station-g2#summary-for-lora-power-amplifier-conduction-test
|
|
#define SX126X_MAX_POWER 19
|
|
#endif
|
|
|
|
// Enable Traffic Management Module for Station G2
|
|
#ifndef HAS_TRAFFIC_MANAGEMENT
|
|
#define HAS_TRAFFIC_MANAGEMENT 1
|
|
#endif
|
|
#ifndef TRAFFIC_MANAGEMENT_CACHE_SIZE
|
|
#define TRAFFIC_MANAGEMENT_CACHE_SIZE 2048
|
|
#endif
|
|
|
|
/*
|
|
#define BATTERY_PIN 4 // A battery voltage measurement pin, voltage divider connected here to measure battery voltage
|
|
#define ADC_CHANNEL ADC1_GPIO4_CHANNEL
|
|
#define ADC_MULTIPLIER 4
|
|
#define BATTERY_SENSE_SAMPLES 15 // Set the number of samples, It has an effect of increasing sensitivity.
|
|
#define BAT_FULLVOLT 8400
|
|
#define BAT_EMPTYVOLT 5000
|
|
#define BAT_CHARGINGVOLT 8400
|
|
#define BAT_NOBATVOLT 4460
|
|
#define CELL_TYPE_LION // same curve for liion/lipo
|
|
#define NUM_CELLS 2
|
|
*/
|