RAK7200 with Arduino

Issue:Need RAK7200 hardware schematic

Setup:Arduino IDE


Details:Using information about the S76G T-Motion I am able to write sketches for the RAK7200. I have found that PC4 controls the 1.8V power to the GNSS and PA8 controls the Blue LED. Is there a schematic available? I am trying to access the other 2 LEDS and get the PPS to trigger an interrupt but can’t find the correct pins. Any help would be appreciated.

1 Like

I have a basic Arduino sketch that allows the RAK7200 to send location data to Helium Cargo and Helium Mapper. I can upload to GitHub if anyone is interested. The RAK7200 can be flashed directly from the USB without opening the case.

Also found pins for the red (PA11) and green (PA12) LEDs


Please share on GitHub - no one may need it today, but it may prove useful to someone tomorrow or another day …

Great @JasonRJ,

Is it also ready for TTN EU868 instead of Helium?



See other thread …

The sketch should work on any OTAA LoRaWAN network. Preconfigure your nodes Device EUI, App EUI and App Key in the TTN console and in the sketch. Then change the region to EU868 and compile the sketch.

I used the mcci-catena arduino-lmic https://github.com/mcci-catena/arduino-lmic which supports the following regions:
EU868 (EU 863-870MHz ISM Band)
US915 (US 902-928MHz ISM Band)
CN779 (China 779-787MHz ISM Band)
AU915 (Australia 915-928MHz ISM Band)
AS923 (AS923MHz ISM Band)
KR923 (South Korea 920-923MHz ISM Band)
IN865 (India 865-867 MHz ISM Band)
RU864 (Russia 864-870 MHz ISM Band)

To configure a different region edit the lmic_project_config.h in the Arduino/libraries/MCCI_LoRaWAN_LMIC_library/project_config/ folder comment out the #define CFG_us915 1 and uncomment the #define CFG_eu868 1 that should get you connected.

Let me know if this works for you.


1 Like

Hi @JasonRJ,

Thanks! I adapted the changes above but unfortunately running into 2 other isseus:
1: When compling I got this error:

S76G_NeoGPS_SX1276:568:31: error: ‘class gps_fix’ has no member named ‘hdop’
568 | data = (uint16_t)(fix.hdop);
| ^~~~

I commented it out to compile further: resulting in:

WARNING: library NeoGPS claims to run on avr, samd, sam, esp8266, arc32, esp32 architecture(s) and may be incompatible with your current board which runs on stm32 architecture(s).
C:\Users\jeroe\Documents\Arduino\libraries\MCCI_LoRaWAN_LMIC_library\src\hal\getpinmap_thisboard.cpp: In function ‘const Arduino_LMIC::HalPinmap_t* Arduino_LMIC::GetPinmap_ThisBoard()’:
C:\Users\jeroe\Documents\Arduino\libraries\MCCI_LoRaWAN_LMIC_library\src\hal\getpinmap_thisboard.cpp:69:72: note: #pragma message: Board not supported – use an explicit pinmap
69 | #pragma message(“Board not supported – use an explicit pinmap”)
| ^
Sketch uses 59876 bytes (30%) of program storage space. Maximum is 196608 bytes.
Global variables use 3064 bytes (14%) of dynamic memory, leaving 17416 bytes for local variables. Maximum is 20480 bytes.

When trying to upload to the board I got:
2: IDE tool reports to put the RAK7200 into ‘boot’ mode.
It is 100% in boot mode as the serial logger reports it is as soon as I report the RAK7200 the logger shows: .

Any advice for me/us?

BR, Jeroen

Dear @JasonRJ,

Just being curious, do you have time to help us with the above issues?

BR, Jeroen

HDOP it can be activated by uncommenting the //# define GPS_FIX_HDOP in the file GPSfix_cfg.h which is in the NeoGPS library in the Arduino -> libraries -> NeoGPS directory.

The first warning is because the NeoGPS library doesn’t list the STM32 MCU as a compatible MCU. I am looking for a simpler NMEA library or will write the decoder myself. It is safe to ignore.

The second warning is because the SX127x pin configuration wasn’t found in the known boards. The pin configure was set in the variables section of the code. Also safe to ignore.

You can get to DFU or BOOT mode the same way that you upgrade the firmware. Use an object (paper clip) to depress and hold the reset button (next to the USB connector) and while depressing the reset use an object to press and hold the BOOT0 button (the second button on the RAK7200) release the reset then release the BOOT0. That should put you into DFU/BOOT mode.

Here is the official link: https://docs.rakwireless.com/Product-Categories/WisNode/RAK7200/Quickstart/#upgrading-the-firmware

I hope this helps to get your RAK7200 connected to TTN.


1 Like

Hi Robert (@JasonRJ),

Thanks for the update, it works. Thanks!



Hi Robert (@JasonRJ),

Adjusted a lot, now sending when not moving his location every 180 sec. When moving every 17 sec.
Data in LPP for Cayenne support.

Only issue I have so far is this setting is not working:
// Set data rate and transmit power for uplink (note: txpow seems to be ignored by the library)

  • LMIC_setDrTxpow(DR_SF9,14);*

The DR is still SF7:

“frequency”: 867.3,
“modulation”: “LORA”,
“data_rate”: “SF7BW125”,
“coding_rate”: “4/5”,

Do you recognise this issue? The LMIC library is not helping me to fix it… (yet)

BR, Jeroen

Hi Robert (@JasonRJ),

With regards the above post, I do still have this issue.
It isn’t related to the LMIC library as I tried also a different version.
Also disabled (for sure) the ADR function but still it is sending with DR7.

Just womdering if you have a little time to investigate? Do you experience the same problem?

Update 25-1-2021:
When I add this line at:
void do_send(osjob_t *j)
Just before LMIC is going to send the data, it is working!

So, the settings at os_init(); are not stored?

BR, Jeroen

I guess that is why I have not seen that problem. I set ADR, DR, TXPower before each send.

Not strictly necessary - only really required when the device starts up - whilst it’s powered I’ve not seen LMiC forget settings.

If seen it ;-), that’s the reason why I reported it.

Seen LMiC lose settings whilst the device is powered?

Or not save the settings?

See above, at a certain location in de code it is not accepting (using) this SF setting.
Same code used for t-beam is is working fine.

@JasonRJ , can you share the link for the gitHub?
@JeroenKl , possible to share your adaptation, to only send while moving? ( really wanted feature on this device ).