{"id":2607,"date":"2023-11-03T17:08:49","date_gmt":"2023-11-03T16:08:49","guid":{"rendered":"https:\/\/www.nico-maas.de\/?p=2607"},"modified":"2023-12-01T19:29:31","modified_gmt":"2023-12-01T18:29:31","slug":"rak11300-teardown","status":"publish","type":"post","link":"https:\/\/www.nico-maas.de\/?p=2607","title":{"rendered":"RAK11300 - Getting it to work with Arduino-Pico and RadioLib!"},"content":{"rendered":"<h3>Intro<\/h3>\n<p>About a year ago I got some <a href=\"https:\/\/docs.rakwireless.com\/Product-Categories\/WisDuo\/RAK11300-Module\/Datasheet\/#description\" title=\"RAK11300\">RAK11300<\/a> modules - which are a nice combination of an RP2040 alongside a SX1262 radio on one module - designed a breakout board - tested it - and quickly shelved it. Reason was that this module was somewhat Arduino compliant - as stated - however only with <a href=\"https:\/\/github.com\/RAKWireless\/RAK-RP-Arduino\/tree\/main\" title=\"RAKwireless Arduino mbedOS Repo\">RAKwireless Arduino mbedOS Repo<\/a>. Alongside of it being a bit... hacked together, it had the issue of not supporting any low power modes for the RP2040 - making it run on both cores at full tilt and consuming batteries in no time. Not the best thing for a portable\/battery powered sensor system, I guess?<\/p>\n<p>Some people tried already to get this RP2040 working with other software - e.g. Micropython or Arduino, but I never heard someone getting it working, so I tried my luck - this is the whole journey from start to finish. Spoiler, it is now working and you can find the example code at the end with Arduino-Pico and RadioLib now fully supporting this module :).<\/p>\n<h3>Pinout<\/h3>\n<p>The most important thing was trying to figure out the internal wiring of the RP2040 to the SX1262 - while RAK did not offer complete schematics, they at least <a href=\"https:\/\/forum.rakwireless.com\/t\/rak11300-pinout-rp2040-to-sx1262\/8414\" title=\"revealed parts of it\">revealed parts of it<\/a> after <a href=\"https:\/\/github.com\/beegee-tokyo\/SX126x-Arduino\/blob\/fe6178f82d81e6509a5352f1d2aa85e433e19a7a\/src\/boards\/mcu\/board.cpp#L239\" title=\"asking in the forums\">asking in the forums<\/a> :).<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/rak11300_schematic.png?ssl=1\"><img data-recalc-dims=\"1\" height=\"300\" width=\"207\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/rak11300_schematic.png?resize=207%2C300&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<pre><code>The antenna switch direction is controlled by the SX1262 itself through DIO2.\nThe antenna switch power is controlled with GPIO25\nIt uses an TCXO<\/code><\/pre>\n<pre><code>uint32_t lora_rak11300_init(void)\n{\n    _hwConfig.CHIP_TYPE = SX1262;          \/\/ Chip type, SX1261 or SX1262\n    _hwConfig.PIN_LORA_SCLK = 10;          \/\/ LORA SPI CLK\n    _hwConfig.PIN_LORA_MOSI = 11;          \/\/ LORA SPI MOSI\n    _hwConfig.PIN_LORA_MISO = 12;          \/\/ LORA SPI MISO\n    _hwConfig.PIN_LORA_NSS = 13;           \/\/ LORA SPI CS\n    _hwConfig.PIN_LORA_RESET = 14;         \/\/ LORA RESET\n    _hwConfig.PIN_LORA_BUSY = 15;          \/\/ LORA SPI BUSY\n    _hwConfig.RADIO_TXEN = -1;             \/\/ LORA ANTENNA TX ENABLE (e.g. eByte E22 module)\n    _hwConfig.RADIO_RXEN = 25;             \/\/ LORA ANTENNA RX ENABLE (e.g. eByte E22 module)\n    _hwConfig.USE_DIO2_ANT_SWITCH = true;  \/\/ LORA DIO2 controls antenna\n    _hwConfig.USE_DIO3_TCXO = true;        \/\/ LORA DIO3 controls oscillator voltage (e.g. eByte E22 module)\n    _hwConfig.USE_DIO3_ANT_SWITCH = false; \/\/ LORA DIO3 controls antenna (e.g. Insight SIP ISP4520 module)\n    _hwConfig.PIN_LORA_DIO_1 = 29;         \/\/ LORA DIO_1\n    _hwConfig.USE_RXEN_ANT_PWR = true;     \/\/ RXEN is used as power for antenna switch\n#ifdef RAK11310_PROTO\n    _hwConfig.USE_LDO = true; \/\/ True on RAK11300 prototypes because of DCDC regulator problem\n#else\n    _hwConfig.USE_LDO = false;\n#endif<\/code><\/pre>\n<p>To sum up:<\/p>\n<ul>\n<li>RP2040 connects to the SX1262 using SPI1<\/li>\n<li>RP2040 has the same pinout\/GPIO output as a generic Raspberry Pi Pico board<\/li>\n<li>SPI1 however has its connections twisted a bit<\/li>\n<li>SPI1 Pinout:\n<ul>\n<li>SCLK\/CLK\/Clock: GPIO 10<\/li>\n<li>MOSI: GPIO 11<\/li>\n<li>MISO: GPIO 12<\/li>\n<li>CS\/ChipSelect: GPIO 13<\/li>\n<\/ul>\n<\/li>\n<li>Additional lines needed for SX1262:\n<ul>\n<li>NRESET: GPIO 14<\/li>\n<li>Busy: GPIO 15<\/li>\n<li>DIO1: GPIO 29<\/li>\n<li>RXEN: GPIO 25<\/li>\n<\/ul>\n<\/li>\n<li>LoRaWAN compliance is mentioned to be 1.0.2 specification compliant with Rev B, however I also saw mentions of 1.0.3 with Rev B<\/li>\n<\/ul>\n<h3>RP2040<\/h3>\n<p>To get this to work, you can take the legendary Earle F. Philhower's <a href=\"https:\/\/github.com\/earlephilhower\/arduino-pico\" title=\"Arduino Pico repo\">Arduino Pico repo<\/a>, use the normal RPi Pico board and overwrite the SPI1 positions like so:<\/p>\n<pre><code>SPI1.setCS(13);\nSPI1.setSCK(10);\nSPI1.setTX(11);\nSPI1.setRX(12);\nSPI1.begin(false);<\/code><\/pre>\n<p>however, to make it easier <a href=\"https:\/\/github.com\/earlephilhower\/arduino-pico\/pull\/1802\" title=\"I put up a PR\">I put up a PR<\/a> to directly change those pinouts and integrate the RAKwireless RAK11300 proper into the arduino-pico framework.<\/p>\n<h3>SX1262<\/h3>\n<p>Lets get to the SX1262 library and the implementation of the LoRaWAN communication schema:<br \/>\nLuckily, Jan Grome\u0161, maintainer of the awesome <a href=\"https:\/\/github.com\/jgromes\/RadioLib\" title=\"RadioLib\">RadioLib<\/a> decided to implement LoRaWAN support - and the SX1262 modules. I tried to get everything working, however, there seem to be some minor issues. His library does detect the SX1262, however, I am not able to join TTN with it. The issue ticket is currently open <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/issues\/864\" title=\"here\">here<\/a>.<\/p>\n<p>The most weird thing is still the GPIO 25 for me, the mentioned Antenna switch power. It might be all thats needed to put this port as output and put it on high to supply power whenever someone wants to receive\/transmit - but I am not really sure yet. I have not found any evidence and I feel something with the join event in the RadioLib is still off as <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/issues\/858\" title=\"other people\">other people<\/a> also saw issues - so there are probably two different problems right now.<\/p>\n<h3>Getting further<\/h3>\n<p>To understand the whole idea better, I opened up one RAK11300 and put it under the microscope. Sadly my microscope camera ain't really good, so the picture quality is a bit hit and miss, but as there are no pictures at all on the internet, I thought it might be useful for someone. <\/p>\n<p>Some details:<\/p>\n<ul>\n<li>Flash Chip is a Winbond 25Q16JVIQ (16 Mbit, should be 2 MB then?)<\/li>\n<li>RP2040 is the usual RP2-B2<\/li>\n<li>Semtech SX1262<\/li>\n<li>Antenna Switch is a small 6 pin part with label 259 128, I not really found anything on the net, pinout looks a bit like that:<\/li>\n<\/ul>\n<pre><code>    GPIO25  | Antenna   |   DIO2(?)\n                    259\n                    128\n*   VR_PA\/RFO | GND     |   RFI_N\/RFI_P<\/code><\/pre>\n<p>So it looks like the RP2040 PIN 25 could be really the &quot;power supply&quot; for that switch, while the DIO2 of the SX1262 would be changing the switch to either supply the RX or TX chains to the antenna output, however I am not that sure.<\/p>\n<h3>Photos<\/h3>\n<p>So, without anymore addition, here are the pictures, sorry for the bad quality.<\/p>\n<p>If you have any infos to help on the quest, please let me know :).<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00001.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"169\" width=\"300\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00001.jpg?resize=300%2C169&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00002.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"169\" width=\"300\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00002.jpg?resize=300%2C169&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00003.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"169\" width=\"300\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00003.jpg?resize=300%2C169&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00004.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"169\" width=\"300\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00004.jpg?resize=300%2C169&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00005.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"169\" width=\"300\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00005.jpg?resize=300%2C169&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00006.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"169\" width=\"300\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00006.jpg?resize=300%2C169&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00007.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"300\" width=\"232\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00007.jpg?resize=232%2C300&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00008.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"300\" width=\"233\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00008.jpg?resize=233%2C300&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00009.jpg?ssl=1\"><img data-recalc-dims=\"1\" height=\"300\" width=\"226\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/RAK11300_00009.jpg?resize=226%2C300&#038;ssl=1\" alt=\"\" \/><\/a><\/p>\n<h3>Update to the Antenna Switch \/ GPIO25 (@2023-11-03 17:08)<\/h3>\n<p>Looking at the lora_rak11300_init, we can quickly find out that the GPIO 25 is used as power to the antenna switch, e.g. switching on the use of the antenna. Its important to see that TXEN=-1, so RXEN and TXEN are not used to determine the direction (e.g. if sending or receiving, but this is done by DIO2\/directly by the SX1262 module. The use of RXEN\/GPIO25 is purely for powering the Antenna switch:<\/p>\n<pre><code>    _hwConfig.RADIO_TXEN = -1;             \/\/ LORA ANTENNA TX ENABLE (e.g. eByte E22 module)\n    _hwConfig.RADIO_RXEN = 25;             \/\/ LORA ANTENNA RX ENABLE (e.g. eByte E22 module)\n    _hwConfig.USE_RXEN_ANT_PWR = true;     \/\/ RXEN is used as power for antenna switch\n    _hwConfig.USE_DIO2_ANT_SWITCH = true;  \/\/ LORA DIO2 controls antenna<\/code><\/pre>\n<p>( <a href=\"https:\/\/github.com\/beegee-tokyo\/SX126x-Arduino\/blob\/fe6178f82d81e6509a5352f1d2aa85e433e19a7a\/src\/boards\/mcu\/board.cpp#L239C25-L239C25\">https:\/\/github.com\/beegee-tokyo\/SX126x-Arduino\/blob\/fe6178f82d81e6509a5352f1d2aa85e433e19a7a\/src\/boards\/mcu\/board.cpp#L239C25-L239C25<\/a> )<\/p>\n<p>If we dig a bit deeper, we will find the SX126xIoInit ( <a href=\"https:\/\/github.com\/beegee-tokyo\/SX126x-Arduino\/blob\/ca879479b25071c568ded9a60f7c060f10c7791a\/src\/boards\/sx126x\/sx126x-board.cpp#L49\">https:\/\/github.com\/beegee-tokyo\/SX126x-Arduino\/blob\/ca879479b25071c568ded9a60f7c060f10c7791a\/src\/boards\/sx126x\/sx126x-board.cpp#L49<\/a> )<\/p>\n<pre><code>    \/\/ Use RADIO_RXEN as power for the antenna switch\n    if (_hwConfig.USE_RXEN_ANT_PWR)\n    {\n        if (_hwConfig.RADIO_TXEN != -1)\n            pinMode(_hwConfig.RADIO_TXEN, INPUT);\n        pinMode(_hwConfig.RADIO_RXEN, OUTPUT);\n        digitalWrite(_hwConfig.RADIO_RXEN, LOW);\n    }<\/code><\/pre>\n<p>This also shows that the GPIO25 is used only as antenna switch power and is configured as output, but still in &quot;low&quot; mode, e.g. the power switch is off.<\/p>\n<p>In all instances of the Antenna used or the TX\/RX channels ( SX126xAntSwOn, SX126xAntSwOff, SX126xRXena, SX126xTXena - <a href=\"https:\/\/github.com\/beegee-tokyo\/SX126x-Arduino\/blob\/ca879479b25071c568ded9a60f7c060f10c7791a\/src\/boards\/sx126x\/sx126x-board.cpp#L496-L555\">https:\/\/github.com\/beegee-tokyo\/SX126x-Arduino\/blob\/ca879479b25071c568ded9a60f7c060f10c7791a\/src\/boards\/sx126x\/sx126x-board.cpp#L496-L555<\/a> ) we can see that the GPIO25 is pulled high, e.g powers on the Antenna Switch - and powers down after sending. It does not make a difference if TX or RX is needed, its always HIGH\/ON when the antenna is used and LOW\/OFF when its not. Probably to preserve energy. So basically, we would need to always set GPIO25 as output and pull it high when we need to use the module.<\/p>\n<h3>Update to RadioLib (@2023-11-03 20:29)<\/h3>\n<p>I got TTN working, however Chirpstack proved to be difficult. Reason was the error &quot;ERROR chirpstack::uplink: Deduplication error error=Unknown data-rate: Lora(LoraDataRate { spreading_factor: 7, bandwidth: 125000, coding_rate: \u201c4\/7\u201d })&quot; reason for that was that RadioLib accidently tries to drive EU868 packets with 4\/7 instead of 4\/5 coding rate - so these packets are thrown away right away ( <a href=\"https:\/\/forum.chirpstack.io\/t\/error-unknown-data-rate-on-eu868-with-coding-rate-4-7\/16109\">https:\/\/forum.chirpstack.io\/t\/error-unknown-data-rate-on-eu868-with-coding-rate-4-7\/16109<\/a> ). I made a PR ( <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/pull\/865\">https:\/\/github.com\/jgromes\/RadioLib\/pull\/865<\/a> ) to fix that issue. There is also an error in the LoRaWAN example as handled by this PR ( <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/pull\/866\">https:\/\/github.com\/jgromes\/RadioLib\/pull\/866<\/a> ). With that we can finally join TTN and Chirpstack v4 servers! What is still a problem, is re-connecting: Trying to restore a connection ends with an issue -1101 in RadioLib, seems to be what was described beforehand in <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/issues\/858\">https:\/\/github.com\/jgromes\/RadioLib\/issues\/858<\/a>. Lets see if we find something. Other than that, its looking so much better already :)\/<\/p>\n<h3>Update to RadioLib (@2023-11-04 16:25)<\/h3>\n<ul>\n<li>The issue with the restore of the connection is now also solved, it was an issue with the &quot;software&quot; EEPROM on the RP2040 and has now been fixed by a PR ( <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/pull\/868\">https:\/\/github.com\/jgromes\/RadioLib\/pull\/868<\/a> ).<\/li>\n<li>The switching of the Antenna Switch can be done as such (kudos also to Jan from RadioLib for pointing it out :))\n<pre><code>static const uint32_t rfswitch_pins[] = { 25, RADIOLIB_NC, RADIOLIB_NC };\nstatic const Module::RfSwitchMode_t rfswitch_table[] = {\n{MODE_IDLE,  { LOW }},\n{MODE_RX,    { HIGH }},\n{MODE_TX,    { HIGH }},\nEND_OF_MODE_TABLE,\n};\n(...)\nradio.setRfSwitchTable(rfswitch_pins, rfswitch_table); \/\/ must be called before begin!\nradio.begin();<\/code><\/pre>\n<\/li>\n<li>There is currently a big PR from StevenCellist ( <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/pull\/867\">https:\/\/github.com\/jgromes\/RadioLib\/pull\/867<\/a> ) being put together which will make everything a lot better - I tested it and now the RAK11300 is fully working!<\/li>\n<li>Currently still working on getting my PR for the RAK11300 included in the arduino-pico, but we are getting there \ud83d\ude42<\/li>\n<\/ul>\n<h3>Update to RadioLib (@2023-11-12 14:02)<\/h3>\n<p>RadioLib has accepted the PR and the needed commits are now in the main branch.<br \/>\nBoth RadioLib and Arduino-Pico have not yet posted a new release version, so if you want to use the tech right now, you need to install the current main git branches.<\/p>\n<h3>Update to Arduino-Pico (@2023-11-22)<\/h3>\n<p>Earle has now released arduino-pico 3.6.1 which does include my contribution and adds the RAK11300 as its own board to his awesome Arduino Core ( <a href=\"https:\/\/github.com\/earlephilhower\/arduino-pico\/releases\/tag\/3.6.1\">https:\/\/github.com\/earlephilhower\/arduino-pico\/releases\/tag\/3.6.1<\/a> ). You can download it right now via the Arduino Board Manager. So we just need for the latest RadioLib to drop :).<\/p>\n<h3>Update to RadioLib (@2023-11-29)<\/h3>\n<p>Jan has now pushed RadioLib 6.3.0 which includes all changes and fixes to support the module \ud83d\ude42 ( <a href=\"https:\/\/github.com\/jgromes\/RadioLib\/releases\/tag\/6.3.0\">https:\/\/github.com\/jgromes\/RadioLib\/releases\/tag\/6.3.0<\/a> ). I am thinking about putting up a finale example to use it and then this project to support the RAK11300 directly via Arduino will be finished.<\/p>\n<h3>Full Example \/ Closing thoughts (@2023-12-01)<\/h3>\n<p>Following full example shows all magic needed to use RAK11300 with the Arduino-Pico 3.6.1 (using either the standard Raspberry Pi Pico or the RAKwireless RAK11300 as board setting) and RadioLib 6.3.0. It was kind of quite a ride and I am very pleased with this working now, finally. Thanks a lot for all that helped make this a reality. All the best \ud83d\ude42<\/p>\n<pre><code class=\"language-c\">\/*\n  RadioLib LoRaWAN End Device Persistent Example\n\n  This example assumes you have tried one of the OTAA or ABP\n  examples and are familiar with the required keys and procedures.\n  This example restores and saves a session such that you can use\n  deepsleep or survive power cycles. Before you start, you will \n  have to register your device at https:\/\/www.thethingsnetwork.org\/\n  and join the network using either OTAA or ABP.\n  Please refer to one of the other LoRaWAN examples for more\n  information regarding joining a network.\n\n  NOTE: LoRaWAN requires storing some parameters persistently!\n        RadioLib does this by using EEPROM, by default\n        starting at address 0 and using 384 bytes.\n        If you already use EEPROM in your application,\n        you will have to either avoid this range, or change it\n        by setting a different start address by changing the value of\n        RADIOLIB_HAL_PERSISTENT_STORAGE_BASE macro, either\n        during build or in src\/BuildOpt.h.\n\n  For default module settings, see the wiki page\n  https:\/\/github.com\/jgromes\/RadioLib\/wiki\/Default-configuration\n\n  For full API reference, see the GitHub Pages\n  https:\/\/jgromes.github.io\/RadioLib\/\n*\/\n\n\/\/ include the library\n#include &lt;RadioLib.h&gt;\n\n\/\/ RAK11300\n\/\/ SX1262 on RAK11300 has the following connections:\n\/\/ pin name       pin number  pin mnemonic (RAK11300 board in arduino-pico)\n\/\/ SPI1 NSS\/CS:   13          PIN_SPI1_SS\n\/\/ BUSY\/GPIO:     15          PIN_SX1262_BUSY     \n\/\/ RESET\/RST:     14          PIN_SX1262_NRESET\n\/\/ DIO1\/IRQ:      29          PIN_SX1262_DIO1     \n\/\/ RXEN\/swpwr:    25          PIN_SX1262_ANT_PWR  \n\/\/ SPI1 CLK:      10          PIN_SPI1_SCK   \n\/\/ SPI1 MOSI:     11          PIN_SPI1_MOSI  \n\/\/ SPI1 MISO:     12          PIN_SPI1_MISO\n\n\/\/ RAK 11300 setup of SX1262 Radio\nSPISettings spiSettings(2000000, MSBFIRST, SPI_MODE0);\nSX1262 radio = new Module(13, 29, 14, 15, SPI1, spiSettings);\n\n\/\/ RAK11300 setup of RF switch configuration\n\/\/ powers up RF switch when modules wants to send or receive data\nstatic const uint32_t rfswitch_pins[] = {25,  RADIOLIB_NC, RADIOLIB_NC};\nstatic const Module::RfSwitchMode_t rfswitch_table[] = {\n  {Module::MODE_IDLE,  {LOW}},\n  {Module::MODE_RX,    {HIGH}},\n  {Module::MODE_TX,    {HIGH}},\n  END_OF_MODE_TABLE,\n};\n\n\/\/ create the node instance on the EU-868 band\n\/\/ using the radio module and the encryption key\n\/\/ make sure you are using the correct band\n\/\/ based on your geographical location!\nLoRaWANNode node(&amp;radio, &amp;EU868);\n\nvoid setup() {\n  Serial.begin(9600);\n\n  \/\/ RAK11300 set SPI1 ports correctly\n  SPI1.setCS(13);\n  SPI1.setSCK(10);\n  SPI1.setTX(11);\n  SPI1.setRX(12);\n  SPI1.begin(13);\n\n  \/\/ RAK11300 add RF switch configuration to radio\n  radio.setRfSwitchTable(rfswitch_pins, rfswitch_table);\n\n  \/\/ initialize SX1262 with default settings\n  Serial.print(F(&quot;[SX1262] Initializing ... &quot;));\n  int state = radio.begin();\n  if(state == RADIOLIB_ERR_NONE) {\n    Serial.println(F(&quot;success!&quot;));\n  } else {\n    Serial.print(F(&quot;failed, code &quot;));\n    Serial.println(state);\n    while(true);\n  }\n\n  \/\/ first we need to initialize the device storage\n  \/\/ this will reset all persistently stored parameters\n  \/\/ NOTE: This should only be done once prior to first joining a network!\n  \/\/       After wiping persistent storage, you will also have to reset\n  \/\/       the end device in TTN and perform the join procedure again!\n  \/\/ Here, a delay is added to make sure that during re-flashing\n  \/\/ the .wipe() is not triggered and the session is lost\n  \/\/ delay(5000);\n  \/\/ node.wipe();\n\n  \/\/ now we can start the activation\n  \/\/ Serial.print(F(&quot;[LoRaWAN] Attempting over-the-air activation ... &quot;));\n  \/\/ uint64_t joinEUI = 0x12AD1011B0C0FFEE;\n  \/\/ uint64_t devEUI = 0x70B3D57ED005E120;\n  \/\/ uint8_t nwkKey[] = { 0x74, 0x6F, 0x70, 0x53, 0x65, 0x63, 0x72, 0x65,\n  \/\/                      0x74, 0x4B, 0x65, 0x79, 0x31, 0x32, 0x33, 0x34 };\n  \/\/ uint8_t appKey[] = { 0x61, 0x44, 0x69, 0x66, 0x66, 0x65, 0x72, 0x65,\n  \/\/                      0x6E, 0x74, 0x4B, 0x65, 0x79, 0x41, 0x42, 0x43 };\n  \/\/ state = node.beginOTAA(joinEUI, devEUI, nwkKey, appKey);\n\n  \/\/ after the device has been activated,\n  \/\/ the session can be restored without rejoining after device power cycle\n  \/\/ on EEPROM-enabled boards by calling &quot;restore&quot;\n  Serial.print(F(&quot;[LoRaWAN] Resuming previous session ... &quot;));\n  state = node.restore();\n  if(state == RADIOLIB_ERR_NONE) {\n    Serial.println(F(&quot;success!&quot;));\n  } else {\n    Serial.print(F(&quot;failed, code &quot;));\n    Serial.println(state);\n    while(true);\n  }\n\n}\n\n\/\/ counter to keep track of transmitted packets\nint count = 0;\n\nvoid loop() {\n  \/\/ send uplink to port 10\n  Serial.print(F(&quot;[LoRaWAN] Sending uplink packet ... &quot;));\n  String strUp = &quot;Hello World! #&quot; + String(count++);\n  String strDown;\n  int state = node.sendReceive(strUp, 10, strDown);\n  if(state == RADIOLIB_ERR_NONE) {\n    Serial.println(F(&quot;received a downlink!&quot;));\n\n    \/\/ print data of the packet (if there are any)\n    Serial.print(F(&quot;[LoRaWAN] Data:\\t\\t&quot;));\n    if(strDown.length() &gt; 0) {\n      Serial.println(strDown);\n    } else {\n      Serial.println(F(&quot;&lt;MAC commands only&gt;&quot;));\n    }\n\n    \/\/ print RSSI (Received Signal Strength Indicator)\n    Serial.print(F(&quot;[LoRaWAN] RSSI:\\t\\t&quot;));\n    Serial.print(radio.getRSSI());\n    Serial.println(F(&quot; dBm&quot;));\n\n    \/\/ print SNR (Signal-to-Noise Ratio)\n    Serial.print(F(&quot;[LoRaWAN] SNR:\\t\\t&quot;));\n    Serial.print(radio.getSNR());\n    Serial.println(F(&quot; dB&quot;));\n\n    \/\/ print frequency error\n    Serial.print(F(&quot;[LoRaWAN] Frequency error:\\t&quot;));\n    Serial.print(radio.getFrequencyError());\n    Serial.println(F(&quot; Hz&quot;));\n\n  } else if(state == RADIOLIB_ERR_RX_TIMEOUT) {\n    Serial.println(F(&quot;no downlink!&quot;));\n\n  } else {\n    Serial.print(F(&quot;failed, code &quot;));\n    Serial.println(state);\n  }\n\n  \/\/ on EEPROM enabled boards, you can save the current session\n  \/\/ by calling &quot;saveSession&quot; which allows retrieving the session after reboot or deepsleep\n  node.saveSession();\n\n  \/\/ wait before sending another packet\n  \/\/ alternatively, call a deepsleep function here\n  \/\/ make sure to send the radio to sleep as well using radio.sleep()\n  delay(30000);\n}<\/code><\/pre>\n<div class=\"shariff shariff-align-flex-start shariff-widget-align-flex-start\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button printer shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"javascript:window.print()\" title=\"print\" aria-label=\"print\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 30 32\"><path fill=\"#999\" d=\"M6.8 27.4h16v-4.6h-16v4.6zM6.8 16h16v-6.8h-2.8q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-11.4v11.4zM27.4 17.2q0-0.5-0.3-0.8t-0.8-0.4-0.8 0.4-0.3 0.8 0.3 0.8 0.8 0.3 0.8-0.3 0.3-0.8zM29.7 17.2v7.4q0 0.2-0.2 0.4t-0.4 0.2h-4v2.8q0 0.7-0.5 1.2t-1.2 0.5h-17.2q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-4q-0.2 0-0.4-0.2t-0.2-0.4v-7.4q0-1.4 1-2.4t2.4-1h1.2v-9.7q0-0.7 0.5-1.2t1.2-0.5h12q0.7 0 1.6 0.4t1.3 0.8l2.7 2.7q0.5 0.5 0.9 1.4t0.4 1.6v4.6h1.1q1.4 0 2.4 1t1 2.4z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button mailto shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"mailto:?body=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607&subject=RAK11300%20-%20Getting%20it%20to%20work%20with%20Arduino-Pico%20and%20RadioLib%21\" title=\"Send by email\" aria-label=\"Send by email\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#999\" d=\"M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607&text=RAK11300%20-%20Getting%20it%20to%20work%20with%20Arduino-Pico%20and%20RadioLib%21\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button linkedin shariff-nocustomcolor\" style=\"background-color:#1488bf\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607\" title=\"Share on LinkedIn\" aria-label=\"Share on LinkedIn\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0077b5; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#0077b5\" d=\"M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button pinterest shariff-nocustomcolor\" style=\"background-color:#e70f18\"><a href=\"https:\/\/www.pinterest.com\/pin\/create\/link\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607&media=https%3A%2F%2Fwww.nico-maas.de%2Fwordpress%2Fwp-content%2Fuploads%2Frak11300_schematic-207x300.png&description=RAK11300%20-%20Getting%20it%20to%20work%20with%20Arduino-Pico%20and%20RadioLib%21\" title=\"Pin it on Pinterest\" aria-label=\"Pin it on Pinterest\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#cb2027; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#cb2027\" d=\"M27.4 16q0 3.7-1.8 6.9t-5 5-6.9 1.9q-2 0-3.9-0.6 1.1-1.7 1.4-2.9 0.2-0.6 1-3.8 0.4 0.7 1.3 1.2t2 0.5q2.1 0 3.8-1.2t2.7-3.4 0.9-4.8q0-2-1.1-3.8t-3.1-2.9-4.5-1.2q-1.9 0-3.5 0.5t-2.8 1.4-2 2-1.2 2.3-0.4 2.4q0 1.9 0.7 3.3t2.1 2q0.5 0.2 0.7-0.4 0-0.1 0.1-0.5t0.2-0.5q0.1-0.4-0.2-0.8-0.9-1.1-0.9-2.7 0-2.7 1.9-4.6t4.9-2q2.7 0 4.2 1.5t1.5 3.8q0 3-1.2 5.2t-3.1 2.1q-1.1 0-1.7-0.8t-0.4-1.9q0.1-0.6 0.5-1.7t0.5-1.8 0.2-1.4q0-0.9-0.5-1.5t-1.4-0.6q-1.1 0-1.9 1t-0.8 2.6q0 1.3 0.4 2.2l-1.8 7.5q-0.3 1.2-0.2 3.2-3.7-1.6-6-5t-2.3-7.6q0-3.7 1.9-6.9t5-5 6.9-1.9 6.9 1.9 5 5 1.8 6.9z\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div>","protected":false},"excerpt":{"rendered":"<p>Intro About a year ago I got some RAK11300 modules - which are a nice combination of an RP2040 alongside a SX1262 radio on one module - designed a breakout board - tested it - and quickly shelved it. Reason was that this module was somewhat Arduino compliant - as stated - however only with &hellip; <a href=\"https:\/\/www.nico-maas.de\/?p=2607\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">RAK11300 - Getting it to work with Arduino-Pico and RadioLib!<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n<div class=\"shariff shariff-align-flex-start shariff-widget-align-flex-start\"><ul class=\"shariff-buttons theme-round orientation-horizontal buttonsize-small\"><li class=\"shariff-button printer shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"javascript:window.print()\" title=\"print\" aria-label=\"print\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 30 32\"><path fill=\"#999\" d=\"M6.8 27.4h16v-4.6h-16v4.6zM6.8 16h16v-6.8h-2.8q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-11.4v11.4zM27.4 17.2q0-0.5-0.3-0.8t-0.8-0.4-0.8 0.4-0.3 0.8 0.3 0.8 0.8 0.3 0.8-0.3 0.3-0.8zM29.7 17.2v7.4q0 0.2-0.2 0.4t-0.4 0.2h-4v2.8q0 0.7-0.5 1.2t-1.2 0.5h-17.2q-0.7 0-1.2-0.5t-0.5-1.2v-2.8h-4q-0.2 0-0.4-0.2t-0.2-0.4v-7.4q0-1.4 1-2.4t2.4-1h1.2v-9.7q0-0.7 0.5-1.2t1.2-0.5h12q0.7 0 1.6 0.4t1.3 0.8l2.7 2.7q0.5 0.5 0.9 1.4t0.4 1.6v4.6h1.1q1.4 0 2.4 1t1 2.4z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button mailto shariff-nocustomcolor\" style=\"background-color:#a8a8a8\"><a href=\"mailto:?body=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607&subject=RAK11300%20-%20Getting%20it%20to%20work%20with%20Arduino-Pico%20and%20RadioLib%21\" title=\"Send by email\" aria-label=\"Send by email\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#999; color:#fff\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 32 32\"><path fill=\"#999\" d=\"M32 12.7v14.2q0 1.2-0.8 2t-2 0.9h-26.3q-1.2 0-2-0.9t-0.8-2v-14.2q0.8 0.9 1.8 1.6 6.5 4.4 8.9 6.1 1 0.8 1.6 1.2t1.7 0.9 2 0.4h0.1q0.9 0 2-0.4t1.7-0.9 1.6-1.2q3-2.2 8.9-6.1 1-0.7 1.8-1.6zM32 7.4q0 1.4-0.9 2.7t-2.2 2.2q-6.7 4.7-8.4 5.8-0.2 0.1-0.7 0.5t-1 0.7-0.9 0.6-1.1 0.5-0.9 0.2h-0.1q-0.4 0-0.9-0.2t-1.1-0.5-0.9-0.6-1-0.7-0.7-0.5q-1.6-1.1-4.7-3.2t-3.6-2.6q-1.1-0.7-2.1-2t-1-2.5q0-1.4 0.7-2.3t2.1-0.9h26.3q1.2 0 2 0.8t0.9 2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button twitter shariff-nocustomcolor\" style=\"background-color:#595959\"><a href=\"https:\/\/twitter.com\/share?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607&text=RAK11300%20-%20Getting%20it%20to%20work%20with%20Arduino-Pico%20and%20RadioLib%21\" title=\"Share on X\" aria-label=\"Share on X\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#000; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 24 24\"><path fill=\"#000\" d=\"M14.258 10.152L23.176 0h-2.113l-7.747 8.813L7.133 0H0l9.352 13.328L0 23.973h2.113l8.176-9.309 6.531 9.309h7.133zm-2.895 3.293l-.949-1.328L2.875 1.56h3.246l6.086 8.523.945 1.328 7.91 11.078h-3.246zm0 0\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button facebook shariff-nocustomcolor\" style=\"background-color:#4273c8\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607\" title=\"Share on Facebook\" aria-label=\"Share on Facebook\" role=\"button\" rel=\"nofollow\" class=\"shariff-link\" style=\"; background-color:#3b5998; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 18 32\"><path fill=\"#3b5998\" d=\"M17.1 0.2v4.7h-2.8q-1.5 0-2.1 0.6t-0.5 1.9v3.4h5.2l-0.7 5.3h-4.5v13.6h-5.5v-13.6h-4.5v-5.3h4.5v-3.9q0-3.3 1.9-5.2t5-1.8q2.6 0 4.1 0.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button linkedin shariff-nocustomcolor\" style=\"background-color:#1488bf\"><a href=\"https:\/\/www.linkedin.com\/sharing\/share-offsite\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607\" title=\"Share on LinkedIn\" aria-label=\"Share on LinkedIn\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#0077b5; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#0077b5\" d=\"M6.2 11.2v17.7h-5.9v-17.7h5.9zM6.6 5.7q0 1.3-0.9 2.2t-2.4 0.9h0q-1.5 0-2.4-0.9t-0.9-2.2 0.9-2.2 2.4-0.9 2.4 0.9 0.9 2.2zM27.4 18.7v10.1h-5.9v-9.5q0-1.9-0.7-2.9t-2.3-1.1q-1.1 0-1.9 0.6t-1.2 1.5q-0.2 0.5-0.2 1.4v9.9h-5.9q0-7.1 0-11.6t0-5.3l0-0.9h5.9v2.6h0q0.4-0.6 0.7-1t1-0.9 1.6-0.8 2-0.3q3 0 4.9 2t1.9 6z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button reddit shariff-nocustomcolor\" style=\"background-color:#ff5700\"><a href=\"https:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607\" title=\"Share on Reddit\" aria-label=\"Share on Reddit\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#ff4500; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 512 512\"><path fill=\"#ff4500\" d=\"M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2.1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z\"\/><\/svg><\/span><\/a><\/li><li class=\"shariff-button pinterest shariff-nocustomcolor\" style=\"background-color:#e70f18\"><a href=\"https:\/\/www.pinterest.com\/pin\/create\/link\/?url=https%3A%2F%2Fwww.nico-maas.de%2F%3Fp%3D2607&media=https%3A%2F%2Fwww.nico-maas.de%2Fwordpress%2Fwp-content%2Fuploads%2Frak11300_schematic-207x300.png&description=RAK11300%20-%20Getting%20it%20to%20work%20with%20Arduino-Pico%20and%20RadioLib%21\" title=\"Pin it on Pinterest\" aria-label=\"Pin it on Pinterest\" role=\"button\" rel=\"noopener nofollow\" class=\"shariff-link\" style=\"; background-color:#cb2027; color:#fff\" target=\"_blank\"><span class=\"shariff-icon\" style=\"\"><svg width=\"32px\" height=\"20px\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 27 32\"><path fill=\"#cb2027\" d=\"M27.4 16q0 3.7-1.8 6.9t-5 5-6.9 1.9q-2 0-3.9-0.6 1.1-1.7 1.4-2.9 0.2-0.6 1-3.8 0.4 0.7 1.3 1.2t2 0.5q2.1 0 3.8-1.2t2.7-3.4 0.9-4.8q0-2-1.1-3.8t-3.1-2.9-4.5-1.2q-1.9 0-3.5 0.5t-2.8 1.4-2 2-1.2 2.3-0.4 2.4q0 1.9 0.7 3.3t2.1 2q0.5 0.2 0.7-0.4 0-0.1 0.1-0.5t0.2-0.5q0.1-0.4-0.2-0.8-0.9-1.1-0.9-2.7 0-2.7 1.9-4.6t4.9-2q2.7 0 4.2 1.5t1.5 3.8q0 3-1.2 5.2t-3.1 2.1q-1.1 0-1.7-0.8t-0.4-1.9q0.1-0.6 0.5-1.7t0.5-1.8 0.2-1.4q0-0.9-0.5-1.5t-1.4-0.6q-1.1 0-1.9 1t-0.8 2.6q0 1.3 0.4 2.2l-1.8 7.5q-0.3 1.2-0.2 3.2-3.7-1.6-6-5t-2.3-7.6q0-3.7 1.9-6.9t5-5 6.9-1.9 6.9 1.9 5 5 1.8 6.9z\"\/><\/svg><\/span><\/a><\/li><\/ul><\/div>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,756,78,23],"tags":[487,757,784,758,785],"class_list":["post-2607","post","type-post","status-publish","format-standard","hentry","category-computer","category-lorawan","category-product-specific","category-projects","tag-arduino","tag-lorawan","tag-rak11300","tag-rakwireless","tag-rp2040"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/piXYf-G3","jetpack-related-posts":[{"id":2651,"url":"https:\/\/www.nico-maas.de\/?p=2651","url_meta":{"origin":2607,"position":0},"title":"Getting LoRaWAN working with STM32WL55 and Radiolib","author":"Nico Maas","date":"28. January 2024","format":false,"excerpt":"Elektor was looking for some ideas regarding their STM32 Design Contest - and so I thought, why not putting the excellent work of the guys behind the RadioLib to good use and getting this board working in LoRaWAN (and it was easier than I thought :)): https:\/\/www.elektormagazine.com\/labs\/getting-lorawan-working-with-stm32wl55-and-radiolib","rel":"","context":"In &quot;Arduino&quot;","block_context":{"text":"Arduino","link":"https:\/\/www.nico-maas.de\/?cat=344"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/IMG_20240128_152105001-2-1024x576.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/IMG_20240128_152105001-2-1024x576.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/IMG_20240128_152105001-2-1024x576.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/IMG_20240128_152105001-2-1024x576.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":2693,"url":"https:\/\/www.nico-maas.de\/?p=2693","url_meta":{"origin":2607,"position":1},"title":"RAK3172T in Arduino","author":"Nico Maas","date":"17. November 2024","format":false,"excerpt":"Updated on 2024-12-01 with latest fixes of STM32LoRaWAN v0.3.0 As the RAK11300 did not really match my requirements (it uses way too much energy), I looked further and found the RAK3172 which is based on an STM32WLE5CCU6 - an STM32 chip which usually include good powersaving modes. As with the\u2026","rel":"","context":"In &quot;Computer&quot;","block_context":{"text":"Computer","link":"https:\/\/www.nico-maas.de\/?cat=4"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/rak3172-300x222.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2414,"url":"https:\/\/www.nico-maas.de\/?p=2414","url_meta":{"origin":2607,"position":2},"title":"LoRaWAN with RAKwireless RAK5146: The SX1303 in the field, a rocky start","author":"Nico Maas","date":"10. October 2021","format":false,"excerpt":"Setting the scene Working with the guys over at balena comes with some perks - including the peer pressure of getting into new technologies and trying them out. My go-to person this time was balena Developer Advocate Marc Pous - who is not only no stranger to soldering - but\u2026","rel":"","context":"In &quot;LoRaWAN&quot;","block_context":{"text":"LoRaWAN","link":"https:\/\/www.nico-maas.de\/?cat=756"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2451,"url":"https:\/\/www.nico-maas.de\/?p=2451","url_meta":{"origin":2607,"position":3},"title":"Taming the RAK5146 \/ SX1303","author":"Nico Maas","date":"8. May 2022","format":false,"excerpt":"Its been a while - but good things come to those who wait ;). Trying to work out a new system you're unfamiliar with can be quite a challenge. In my case I got my first LoRaWAN concentrator along with some CubeCell HTCC-AB01\u00a0and tried to get them to work. It\u2026","rel":"","context":"In &quot;LoRaWAN&quot;","block_context":{"text":"LoRaWAN","link":"https:\/\/www.nico-maas.de\/?cat=756"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/bb69b3ffd44988a128f0123bd5893d0982badd6e.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/bb69b3ffd44988a128f0123bd5893d0982badd6e.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/bb69b3ffd44988a128f0123bd5893d0982badd6e.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/bb69b3ffd44988a128f0123bd5893d0982badd6e.jpeg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/bb69b3ffd44988a128f0123bd5893d0982badd6e.jpeg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/bb69b3ffd44988a128f0123bd5893d0982badd6e.jpeg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":1594,"url":"https:\/\/www.nico-maas.de\/?p=1594","url_meta":{"origin":2607,"position":4},"title":"Getting started with Infineon XMC for Arduino","author":"Nico Maas","date":"7. March 2017","format":false,"excerpt":"Infineon created the ARM Cortex M Series \"XMC\" in 2012 to give their users access to a rich portfolio of different AMR Cortex M0+ and M4 MCUs. These Microcontrollers, being supported by powerful peripherals had support for two different IDEs: Keils MDK and Infineons DAVE. While Keil is the definitive\u2026","rel":"","context":"In &quot;Arduino&quot;","block_context":{"text":"Arduino","link":"https:\/\/www.nico-maas.de\/?cat=344"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/xmc_intro_17.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/xmc_intro_17.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/xmc_intro_17.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.nico-maas.de\/wordpress\/wp-content\/uploads\/xmc_intro_17.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":1100,"url":"https:\/\/www.nico-maas.de\/?p=1100","url_meta":{"origin":2607,"position":5},"title":"[Win7+] Arduino 1.6.4+ Portable Installation","author":"Nico Maas","date":"20. June 2015","format":false,"excerpt":"In the last months, a lot of new updates arrived from the Arduino front. The latest installment of the Arduino IDE is now 1.6.4 and got some really nice additions, i.e. an Board Manager to install board definitions from the net via one click, the Library Manager, line numbers and\u2026","rel":"","context":"In &quot;Arduino&quot;","block_context":{"text":"Arduino","link":"https:\/\/www.nico-maas.de\/?cat=344"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/2607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2607"}],"version-history":[{"count":10,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/2607\/revisions"}],"predecessor-version":[{"id":2629,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=\/wp\/v2\/posts\/2607\/revisions\/2629"}],"wp:attachment":[{"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nico-maas.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}