Skip to content

Add Variant rak3401 (for new 1W booster kit) - #1387

Merged
ripplebiz merged 3 commits into
meshcore-dev:devfrom
chrisdavis2110:rak3401
Jan 19, 2026
Merged

Add Variant rak3401 (for new 1W booster kit)#1387
ripplebiz merged 3 commits into
meshcore-dev:devfrom
chrisdavis2110:rak3401

Conversation

@chrisdavis2110

Copy link
Copy Markdown
Contributor

RAK introduced a new 1W module kit, but it comes with their 3401 WisBlock Core, not the 4631. They are both based on the nRF52840 MCU, but the 3401 uses SPI1 where the 4631 uses SPI.

The 1w module (RAK13302) attaches to the base board (RAK19007) via the WisBlock IO at the end, and needs pin 31 (ANT_SW (IO3)) to activate.

Datasheets:
3401: https://docs.rakwireless.com/product-categories/wisblock/rak3401/datasheet/
19007: https://docs.rakwireless.com/product-categories/wisblock/rak19007/datasheet/
13302: https://docs.rakwireless.com/product-categories/wisblock/RAK13302/datasheet/

@Cisien

Cisien commented Jan 14, 2026

Copy link
Copy Markdown

For whatever reason, I can't seem to get any rf out of this patch. sending advert in the console while listening to the SDR is silent.

with debugging enabled:

DEBUG: RadioLibWrapper: noise_floor = -120
advert
  -> OK - Advert sent
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: error: startTransmit(-707)
DEBUG: 01:42:06 - 14/1/2026 U Dispatcher::loop(): ERROR: send start failed!
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
advert
  -> OK - Advert sent
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: error: startTransmit(-707)
DEBUG: 01:42:23 - 14/1/2026 U Dispatcher::loop(): ERROR: send start failed!
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120

Here's the debug output of the startup:

DEBUG: GPS did not init with this IO pin... try the next
DEBUG: GPS did not init with this IO pin... try the next
DEBUG: GPS did not init with this IO pin... try the next
DEBUG: No GPS found
DEBUG: AHT10/AHT20 was not found at I2C address 38
DEBUG: BME680 was not found at I2C address 76
DEBUG: BME280 was not found at I2C address 76
DEBUG: BMP280 was not found at I2C address 76
DEBUG: SHTC3 was not found at I2C address 70
DEBUG: SHT4X was not found at I2C address 44
DEBUG: LPS22HB was not found at I2C address 5C
DEBUG: INA3221 was not found at I2C address 42
DEBUG: INA219 was not found at I2C address 40
DEBUG: INA260 was not found at I2C address 40
DEBUG: INA226 was not found at I2C address 44
DEBUG: MLX90614 was not found at I2C address 5A
DEBUG: VL53L0X was not found at I2C address 29
DEBUG: BMP085 was not found at I2C address 77
DEBUG: RadioLibWrapper: error: startReceive(-707)
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120
DEBUG: RadioLibWrapper: noise_floor = -120

@chrisdavis2110

Copy link
Copy Markdown
Contributor Author

It works for me. Tested both the companion and repeater. Got a message out from the companion and this is the log from the repeater:

advert
→> OK - Advert sent
10:53:26 - 15/5/2024 U RAW:
1D03D932C2D31DEC67E1D29DF240C43E57FE02E760D683F2ABE624CA81807795B37B6EBC517B2AD2D2C0D69(
10:53:26 - 15/5/2024 U: RX, len=56 (type=7, route=F, payload_len=51) SNR=11 RSSI=-29
score=1000 time=231 hash=685589CB7530F579
DEBUG: 10:53:26 - 15/5/2024 U Dispatcher::checkRecv(), score delay below threshold
(0)
10:53:27 - 15/5/2024 U RAW:
1D04D9785696D31DEC67E1D29DF240C43E57FE02E760D683F2ABE624CA81807795B37B6EBC517B2AD2D2C0D(
10:53:27 - 15/5/2024 U: RX, len=57 (type=7, route=F, payload_len=51) SNR=11 RSSI=-74
score=1000 time=231 hash=685589CB7530F579
DEBUG: 10:53:27 - 15/5/2024 U Dispatcher::checkRecv(), score delay below threshold
(0)
10:53:27 - 15/5/2024 U: TX, Len=57 (type=7, route=F, payload_len=51)
10:53:27 - 15/5/2024 U: TX, len=132 (type=4, route=F, payload_len=130)
DEBUG: RadioLibWrapper: noise_floor = -103

@9voltbattery

9voltbattery commented Jan 15, 2026

Copy link
Copy Markdown

The rak3401board.h file has #include <helpers/NRF52Board.h> but that file was not provided? Throws compilation erros when building,

 Compiling .pio/build/RAK_3401_repeater/variants/rak3401/target.cpp.o
In file included from variants/rak3401/target.h:6:0,
                 from examples/simple_repeater/MyMesh.h:6,
                 from examples/simple_repeater/MyMesh.cpp:1:
variants/rak3401/RAK3401Board.h:5:10: fatal error: helpers/NRF52Board.h: No such file or directory
 #include <helpers/NRF52Board.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Compiling .pio/build/RAK_3401_repeater/variants/rak3401/variant.cpp.o
*** [.pio/build/RAK_3401_repeater/examples/simple_repeater/MyMesh.cpp.o] Error 1
In file included from variants/rak3401/RAK3401Board.cpp:4:0:
variants/rak3401/RAK3401Board.h:5:10: fatal error: helpers/NRF52Board.h: No such file or directory
 #include <helpers/NRF52Board.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/RAK_3401_repeater/variants/rak3401/RAK3401Board.cpp.o] Error 1
In file included from variants/rak3401/target.h:6:0,
                 from examples/simple_repeater/MyMesh.h:6,
                 from examples/simple_repeater/main.cpp:4:
variants/rak3401/RAK3401Board.h:5:10: fatal error: helpers/NRF52Board.h: No such file or directory
 #include <helpers/NRF52Board.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/RAK_3401_repeater/examples/simple_repeater/main.cpp.o] Error 1
In file included from variants/rak3401/target.h:6:0,
                 from variants/rak3401/target.cpp:2:
variants/rak3401/RAK3401Board.h:5:10: fatal error: helpers/NRF52Board.h: No such file or directory
 #include <helpers/NRF52Board.h>
          ^~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pio/build/RAK_3401_repeater/variants/rak3401/target.cpp.o] Error 1
====================================================================================== [FAILED] Took 21.97 seconds ======================================================================================

Environment        Status    Duration
-----------------  --------  ------------
RAK_3401_repeater  FAILED    00:00:21.970

@recrof

recrof commented Jan 15, 2026

Copy link
Copy Markdown
Member

The rak3401board.h file has #include <helpers/NRF52Board.h> but that file was not provided? Throws compilation erros when building,

are you patching dev branch?

@9voltbattery

9voltbattery commented Jan 16, 2026

Copy link
Copy Markdown

are you patching dev branch?

Suppose that would do it. Similar to Cisien it will not send any rf, seems to acknowledge a ping as power draw jumps briefly

@seabits-steve

Copy link
Copy Markdown

I've tried the same patch on my rak3401 and had the same problem - no rf at all. Not sure where to start to help debug....

@chrisdavis2110

Copy link
Copy Markdown
Contributor Author

are you all using the new 1W module booster kit?

@9voltbattery

Copy link
Copy Markdown

I think theres only one. Did you tweak settings on meshcore at all? I tried giving it external 5v and it seems to respond to direct pings as there is a slight jump in power draw but still no rf out with usb power or external.

@seabits-steve

Copy link
Copy Markdown

are you all using the new 1W module booster kit?

Yes, it's the new kit. RAK3400 + RAK13302 on a RAK19007

IMG_2775

@9voltbattery

Copy link
Copy Markdown

I take back what I said about the radio listening. Flashed it to usb companion and this is what I get on the noise floor tool.

image

@Cisien

Cisien commented Jan 17, 2026

Copy link
Copy Markdown

I see that Chris's branch is made from main, but I applied it to dev for my testing. I wonder if something changed in dev that broke this?

@seabits-steve

Copy link
Copy Markdown

I see that Chris's branch is made from main, but I applied it to dev for my testing. I wonder if something changed in dev that broke this?

I applied it to dev too. It wouldn't build in main due to the missing file referenced by @9voltbattery

@chrisdavis2110

Copy link
Copy Markdown
Contributor Author

I think I fixed the issue. I thought I was on recent dev branch

@9voltbattery

Copy link
Copy Markdown

Works for me. Thanks for putting the time into making these work.

@Cisien

Cisien commented Jan 19, 2026

Copy link
Copy Markdown

I think I fixed the issue. I thought I was on recent dev branch

Fixes it for me, I think this is good to go @ripplebiz

@seabits-steve

Copy link
Copy Markdown

Works for me as well, thank you!

@OregonGunslinger

OregonGunslinger commented Jan 20, 2026

Copy link
Copy Markdown

When can we expect to see this in the flasher or a build available for download? Specifically a repeater node variant?

@recrof

recrof commented Jan 20, 2026

Copy link
Copy Markdown
Member

When can we expect to see this in the flasher or a build available for download? Specifically a repeater node variant?

https://files.brazio.org/meshcore/nightly/
look for RAK_3401

@venamartin

Copy link
Copy Markdown

The file seems to have disappeared.

RAK_3401_repeater-nightly-xxxx.uf2

@recrof

recrof commented Jan 28, 2026

Copy link
Copy Markdown
Member

The file seems to have disappeared.

fixed the build errors, if it gets merged, it will be built again: #1507

@chrisdavis2110
chrisdavis2110 deleted the rak3401 branch May 5, 2026 04:43
@EldoonNemar

Copy link
Copy Markdown

Question. Does this work with the 4631 + 13302? It seems if you already have the 19007 + 4631 you can use it also. Will it use the 1w if you flash the 4631 image?

@chrisdavis2110

chrisdavis2110 commented May 11, 2026

Copy link
Copy Markdown
Contributor Author

@EldoonNemar the 13302 should only be used with the 3401. I have heard some reports of it working with the 4631, but RAK's website states it should only be used with the 3401.

only compatible with RAK3401 WisBlock Core

rak13302 Module store page

@EldoonNemar

EldoonNemar commented May 20, 2026

Copy link
Copy Markdown

I just wanted to circle back and tell you that the 19007 with a 4631 on it programmed as a 3401 works with 1 watt. I'll let you know if it gives me a headache

@warrenjmcdonald

Copy link
Copy Markdown

@EldoonNemar Did this variant work OK on the 4631+13302 combo?

@recrof

recrof commented Aug 13, 2026

Copy link
Copy Markdown
Member

@EldoonNemar Did this variant work OK on the 4631+13302 combo?

yes, it works(I tested it briefly), but not 100% sure if the old LoRa chip pin connections are conflicting with anything in the new variant - that needs to be investigated

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.

10 participants