Skip to content

RAK3112: octal PSRAM aan, batterijmeting gerepareerd, Heltec-restanten verwijderd - #7

Open
hp197 wants to merge 1 commit into
Dutch-MeshCore:mqtt-bridge-implementation-flex-dmcfrom
hp197:feature/rak3112-improvements
Open

hp197 wants to merge 1 commit into
Dutch-MeshCore:mqtt-bridge-implementation-flex-dmcfrom
hp197:feature/rak3112-improvements

Conversation

@hp197

@hp197 hp197 commented Oct 14, 2026 •

Copy link
Copy Markdown

Samenvatting

De RAK3112-variant was grotendeels gekopieerd uit de Heltec V3-variant. Daardoor werkte de PSRAM niet en klopte de batterijmeting niet. Deze PR past alleen variants/rak3112/ aan.

Wijzigingen

  • Octal PSRAM aan (board_build.arduino.memory_type = qio_opi). De RAK3112 (ESP32-S3R8) heeft 8 MB octal PSRAM. Het esp32-s3-devkitc-1-board gaat uit van quad PSRAM (qio_qspi), waardoor de boot faalde met PSRAM ID read error ... wrong PSRAM line mode. Builds met BOARD_HAS_PSRAM draaiden dus zonder PSRAM: maximaal 2 MQTT-slots, en TLS op de interne heap.
  • PIN_ADC_CTRL (GPIO36) verwijderd. Dat is een Heltec-restant. De RAK3112 heeft geen ADC-enable-pin, en GPIO33–37 zijn de lijnen van de octal PSRAM.
  • Batterijmeting gebruikt nu het gekalibreerde analogReadMilliVolts() met de spanningsdeler van het WisBlock-baseboard (1M/1,5M, empirisch ×1,73, net als Meshtastic voor de RAK4631 op hetzelfde baseboard). De oude formule kwam van de nRF52 (AREF 3,0 V) en klopt niet voor de ESP32-ADC.
  • Sensor-env: ENV_PIN_SDA/SCL=33/34 verwijderd (Heltec V3-waarden en PSRAM-pinnen), en de advert-naam "RAK3112 v3 Sensor" is "RAK3112 Sensor" geworden.
  • Envs zonder MQTT bouwen weer. MQTTMessageBuilder.cpp en JWTHelper.cpp worden uitgesloten in de basis-[rak3112], en de *_observer_mqtt-envs voegen ze zelf weer toe. Eerder faalden onder andere RAK_3112_repeater, RAK_3112_room_server en RAK_3112_sensor met Timezone.h: No such file or directory.

Getest

Op een RAK3112 met RAK19007 en een LiPo van 3200 mAh, env RAK_3112_room_server_observer_mqtt:

Let op

De partitie-indeling is ongewijzigd (8 MB-layout), dus bij een update blijft de opgeslagen config staan. De RAK3112 heeft 16 MB flash, maar overstappen naar default_16MB.csv zou SPIFFS verplaatsen en de config wissen. Dat laat ik bewust buiten deze PR (omdat die 16MB ook niet nodig is).

- Set board_build.arduino.memory_type = qio_opi. The RAK3112 (ESP32-S3R8)
  has 8MB octal PSRAM; the esp32-s3-devkitc-1 default (qio_qspi) failed with
  "PSRAM ID read error ... wrong PSRAM line mode", so BOARD_HAS_PSRAM builds
  ran without PSRAM (MQTT limited to 2 slots, TLS on internal heap).
- Remove PIN_ADC_CTRL (GPIO36) handling copied from Heltec V3. The RAK3112
  has no ADC enable pin and GPIO33-37 are used by the octal PSRAM.
- Read VBAT with calibrated analogReadMilliVolts() and the WisBlock base
  board divider (1M/1.5M, empirical x1.73 as in Meshtastic's RAK4631).
- Sensor env: drop ENV_PIN_SDA/SCL=33/34 (Heltec V3 values, PSRAM pins).
- Exclude MQTTMessageBuilder/JWTHelper from non-MQTT envs so they build
  without the MQTT-only libraries (Timezone.h not found).

Tested on RAK3112 + RAK19007: PSRAM found (8MB), 5 MQTT slots, both
dutchmeshcore collectors connected, battery reads 4139 mV on a full LiPo.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant