Skip to content

Added support for RAK3401 + RAK13302 (RAK WisMesh 1W)#28

Draft
Carl-McCoy wants to merge 8 commits intoattermann:masterfrom
Carl-McCoy:support-rak3401
Draft

Added support for RAK3401 + RAK13302 (RAK WisMesh 1W)#28
Carl-McCoy wants to merge 8 commits intoattermann:masterfrom
Carl-McCoy:support-rak3401

Conversation

@Carl-McCoy
Copy link
Copy Markdown

@Carl-McCoy Carl-McCoy commented Mar 21, 2026

Support for RAK3401 MCU with RAK13302 PA

Not ready to merge

https://store.rakwireless.com/products/wismesh-1w-booster-starter-kit

This is the first thing I've done involving platformio or RNode firmwares and I don't know what I'm doing.
Hopefully someone can spot any obvious issues here.

Firmware builds and is stable so far with atterman's latest filesystem commits.

    -DURTN_PATH_TABLE_MAX_RECS=25
    -DRNS_DEFAULT_ALLOCATOR=RNS_HEAP_ALLOCATOR
    -DRNS_CONTAINER_ALLOCATOR=RNS_HEAP_ALLOCATOR

Note to self: Clean/Update PlatformIO lib imports of microReticulum and microStore when merging changes.

Issues

  • Provisioning after the firmware upload fails; Restarting board and provisioning manually works with the below commands.
    rnodeconf --product 10 --model 14 --hwrev 1 --rom /dev/ttyACM0
    rnodeconf --firmware-hash `rnodeconf -L /dev/ttyACM0 | grep "actual firmware hash" | awk '{print $7}'` /dev/ttyACM0`
    
  • Currently matching the MeshCore setup, only using one SPI bus
    This should be fixed to allow use of GPS etc. on the second
  • NFC pins left undefined

Uncertainties

1 ) Boards.h / platformio.ini - Not sure what the best method is to define the IDs, but this looked okay reusing 0x10 and incrementing. I'm still unsure where the BOARD_RAK3401 ID is used.

 #define PRODUCT_RAK4631     0x10
 #define BOARD_RAK4631       0x51
 #define MODEL_11            0x11 // RAK4631, 433 Mhz
 #define MODEL_12            0x12 // RAK4631, 868 Mhz
 #define BOARD_RAK3401       0x52 // RAK3401 + RAK13302 (nRF52840 + SX1262 + SKY66122 1W FEM)
 #define MODEL_13            0x13 // RAK3401 + RAK13302, 433 MHz
 #define MODEL_14            0x14 // RAK3401 + RAK13302, 868 MHz

2 ) boards/rak3401.json isn't/shouldn't be required and using 4631.json works. I had issues making it work again, left as 3401 board and variant for now.
I'm not sure what the right way to add the variant is, but tried a few, settling on this setup when it packaged with the rnode_firmware_rak4631.zip filename needed for rnodeconf.

3 ) Provisioning when uploading worked once that I saw. Unsure if it's a timing issue on startup (occasionally requires a reset and provisioning within the next ~5 seconds) or the platformio.ini board / variant settings

@Carl-McCoy Carl-McCoy force-pushed the support-rak3401 branch 2 times, most recently from afb5719 to ce72700 Compare March 22, 2026 02:18
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