* Right-size nRF52 heap tiers after 2.8.0 heap-exhaustion field reports Field reports on 2.8.0 show nRF52840 devices at 99% heap (114/115 KB) within minutes of boot; operator new asserts on OOM, so these devices are one allocation from a reboot. The 2.8.0 cache sizing ladders gave nRF52 the largest non-PSRAM tiers on the assumption that a BLE-only part has a roomy heap - the arena is actually ~125 KB shared with the FreeRTOS task stacks. Per-target retiers (nRF52840 unless noted): - Traffic Management cache 1000 -> 250 entries (10 KB -> 2.5 KB); the unclassified fallthrough drops 1000 -> 400 to match the classic-ESP32 tier (also affects RP2040/RP2350) - Warm node store 200 -> 100 entries (8 KB -> 4 KB); the non-XXAA fallthrough drops 320 -> 100 so an unclassified RAM-constrained part can't boot-allocate 12.8 KB - MESSAGE_HISTORY_LIMIT 20 -> 10 (text pool 4.4 KB -> 2.2 KB), the tier classic ESP32 already ships - MAX_RX_TOPHONE 32 -> 16, shrinking the static packet pool 70 -> 54 slots (~6.6 KB of .bss returned to the heap arena) - PacketHistory hash index off arch-wide (1 KB); O(n) over 240 records is negligible at LoRa packet rates - OLEDDISPLAY_REDUCE_MEMORY arch-wide (~1 KB OLED back buffer); the five TFT variants -U it because TFTDisplay.cpp needs buffer_back for dirty-window diffing - Drop the stale "for testing" 1024-entry TMM override on T1000-E Measured on rak4631: heap arena grows 124,572 -> 131,180 B and boot allocations drop ~15.7 KB, roughly +22 KB free heap on the field-report device class. Migration: the nRF52840 warm flash ring replays through place() (LRU), so the newest 100 identities survive the shrink; the file backend rejects oversized snapshots cleanly (new test covers this). Native suites pass (536/536 Docker, 13/13 native-macos warm store); rak4631, heltec-mesh-node-t114 (TFT) and tracker-t1000-e build green. * Drop stale OLEDDISPLAY_REDUCE_MEMORY -U on t114 / mesh-solar-tft Only USE_TFTDISPLAY variants (t1, t096, wismeshtap) compile TFTDisplay.cpp and need the lib's buffer_back; t114 and mesh-solar-tft render through the meshtastic-st7789 driver, which handles the reduced-memory configuration fine - as #10894 (merged from develop) already established by defining the flag there. Remove the -U guard and the per-variant -D (redundant with the arch-wide define in nrf52_base on this branch). Both variants verified building.
48 lines
2.4 KiB
INI
48 lines
2.4 KiB
INI
; The very slick RAK wireless RAK10701 Field Tester device. Note you will have to flash to Arduino bootloader to use this firmware. Be aware touch is not currently working.
|
|
[env:rak_wismeshtap]
|
|
custom_meshtastic_hw_model = 84
|
|
custom_meshtastic_hw_model_slug = WISMESH_TAP
|
|
custom_meshtastic_architecture = nrf52840
|
|
custom_meshtastic_actively_supported = true
|
|
custom_meshtastic_support_level = 1
|
|
custom_meshtastic_display_name = RAK WisMesh Tap
|
|
custom_meshtastic_images = rak-wismeshtap.svg
|
|
custom_meshtastic_tags = RAK
|
|
|
|
extends = nrf52840_base
|
|
board = wiscore_rak4631
|
|
build_flags = ${nrf52840_base.build_flags}
|
|
-UOLEDDISPLAY_REDUCE_MEMORY ; TFTDisplay.cpp needs the lib's buffer_back for dirty-window diffing
|
|
-Ivariants/nrf52840/rak_wismeshtap
|
|
-DWISMESH_TAP
|
|
-DRAK_4631
|
|
-DEINK_DISPLAY_MODEL=GxEPD2_213_BN
|
|
-DEINK_WIDTH=250
|
|
-DEINK_HEIGHT=122
|
|
-DMESHTASTIC_EXCLUDE_WIFI=1
|
|
-DMESHTASTIC_EXCLUDE_DETECTIONSENSOR=1
|
|
-DMESHTASTIC_EXCLUDE_STOREFORWARD=1
|
|
-DMESHTASTIC_EXCLUDE_POWER_TELEMETRY=1
|
|
-DMESHTASTIC_EXCLUDE_ATAK=1
|
|
build_src_filter = ${nrf52_base.build_src_filter} +<../variants/nrf52840/rak_wismeshtap> +<mesh/eth/> +<mesh/api/> +<mqtt/>
|
|
lib_deps =
|
|
${nrf52840_base.lib_deps}
|
|
${networking_base.lib_deps}
|
|
# renovate: datasource=custom.pio depName=Melopero RV3028 packageName=melopero/library/Melopero RV3028
|
|
melopero/Melopero RV3028@1.2.0
|
|
# renovate: datasource=github-tags depName=RAK13800-W5100S packageName=RAKWireless/RAK13800-W5100S
|
|
https://github.com/RAKWireless/RAK13800-W5100S/archive/1.0.2.zip
|
|
# renovate: datasource=custom.pio depName=RAK NCP5623 RGB LED packageName=rakwireless/library/RAKwireless NCP5623 RGB LED library
|
|
rakwireless/RAKwireless NCP5623 RGB LED library@1.0.3
|
|
# renovate: datasource=custom.pio depName=TFT_eSPI packageName=bodmer/library/TFT_eSPI
|
|
bodmer/TFT_eSPI@2.5.43
|
|
# renovate: datasource=custom.pio depName=RAK12034 packageName=beegee-tokyo/library/RAKwireless RAK12034
|
|
beegee-tokyo/RAKwireless RAK12034@1.0.0
|
|
# renovate: datasource=custom.pio depName=RAK14014-FT6336U packageName=beegee-tokyo/library/RAK14014-FT6336U
|
|
beegee-tokyo/RAK14014-FT6336U@1.0.1
|
|
# renovate: datasource=custom.pio depName=RAK12035_SoilMoisture packageName=beegee-tokyo/library/RAK12035_SoilMoisture
|
|
beegee-tokyo/RAK12035_SoilMoisture@1.0.4
|
|
debug_tool = jlink
|
|
; If not set we will default to uploading over serial (first it forces bootloader entry by talking 1200bps to cdcacm)
|
|
;upload_protocol = jlink
|