{"id":6978,"date":"2024-04-29T19:28:56","date_gmt":"2024-04-29T19:28:56","guid":{"rendered":"https:\/\/lora.vsb.cz\/?page_id=6978"},"modified":"2025-07-21T12:41:33","modified_gmt":"2025-07-21T12:41:33","slug":"433-mhz-adafruit-feather-m0","status":"publish","type":"page","link":"https:\/\/lora.vsb.cz\/index.php\/433-mhz-adafruit-feather-m0\/","title":{"rendered":"433 MHz Adafruit Feather M0"},"content":{"rendered":"<table style=\"height: 66px;\" width=\"356\">\n<tbody>\n<tr>\n<td style=\"text-align: left; min-width: 100px;\" width=\"10%\"><strong>TTN version:<\/strong><\/td>\n<td><strong><span style=\"color: #008000;\">TTNv3 \/ TTS SANDBOX<br \/>\n<\/span><\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; min-width: 100px;\" width=\"10%\"><strong>Activation:<\/strong><\/td>\n<td>OTAA \/ ABP<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; min-width: 100px;\" width=\"10%\"><strong>Device Class:<\/strong><\/td>\n<td>Class A<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left; min-width: 100px;\" width=\"10%\"><strong>Last revision:<\/strong><\/td>\n<td>July 21, 2025<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>At the <strong>Feather M0<\/strong>&#8218;s heart is an <strong>ATSAMD21G18 ARM Cortex M0<\/strong> processor, clocked at 48 MHz and at 3.3 V logic. This chip has a whopping<strong> 256 KB of FLASH<\/strong> (8x more than the ATmega32u4) and <strong>32 KB of RAM<\/strong> (16x as much).<\/p>\n<p>The <strong>Adafruit Feather M0 RFM96 LoRa Radio &#8211; 433MHz<\/strong> uses the extra space left over to add an <strong>RFM96 LoRa 433\/470 MHz radio module<\/strong>. This radio version\u00a0can be used for the license-free ISM bands ITU &#8222;Europe&#8220; @ 433MHz\u00a0transmission\/reception.\u00a0<strong><a href=\"https:\/\/www.adafruit.com\/product\/3179\" target=\"_blank\" rel=\"noopener\">See complete specification here<\/a><\/strong>.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7084 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/radiovy-modul-feather-m0-433mhz-rfm96-lora-kompatibilni-s-arduino-adafruit-3179.webp\" alt=\"\" width=\"409\" height=\"409\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/radiovy-modul-feather-m0-433mhz-rfm96-lora-kompatibilni-s-arduino-adafruit-3179.webp 1080w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/radiovy-modul-feather-m0-433mhz-rfm96-lora-kompatibilni-s-arduino-adafruit-3179-300x300.webp 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/radiovy-modul-feather-m0-433mhz-rfm96-lora-kompatibilni-s-arduino-adafruit-3179-1024x1024.webp 1024w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/radiovy-modul-feather-m0-433mhz-rfm96-lora-kompatibilni-s-arduino-adafruit-3179-150x150.webp 150w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/radiovy-modul-feather-m0-433mhz-rfm96-lora-kompatibilni-s-arduino-adafruit-3179-768x768.webp 768w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/p>\n<h2><span style=\"color: #189bd6;\"><strong>Prepare<\/strong><\/span><\/h2>\n<ul>\n<li>Adafruit Feather M0 with RFM96 LoRa Radio &#8211; 433 MHz<\/li>\n<li>1x wire<\/li>\n<li>breadboard (optional)<\/li>\n<li>PC + micro USB cable<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"color: #800000;\">Assembly<\/span><\/strong><\/h2>\n<p>W<span style=\"color: #000000;\">ire up the Adafruit Feather M0&#8217;s <strong>IO1 pin<\/strong> with <strong>pin 6<\/strong>.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2232 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_Assembly.png\" alt=\"Adafruit Feather M0 assembly\" width=\"348\" height=\"263\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_Assembly.png 600w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_Assembly-300x227.png 300w\" sizes=\"auto, (max-width: 348px) 100vw, 348px\" \/> <\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"color: #800000;\">Arduino IDE setup<\/span><\/strong><\/h2>\n<ol>\n<li>Download <a href=\"https:\/\/www.arduino.cc\/en\/software\" target=\"_blank\" rel=\"noopener\"><strong>Arduino IDE<\/strong><\/a>.<\/li>\n<li>Run Arduino IDE.<\/li>\n<li style=\"text-align: left;\">In the Arduino IDE <strong>File -&gt; Preferences <\/strong>copy and paste the link below into the <strong>Additional Boards Manager URLs<\/strong>.<br \/>\n<code>https:\/\/adafruit.github.io\/arduino-board-index\/package_adafruit_index.json<\/code><\/li>\n<li>Click OK.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2905 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/09\/AF32u4_A2_Setup2.png\" alt=\"Adafruit 32u4 Arduino2 Setup\" width=\"518\" height=\"347\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/09\/AF32u4_A2_Setup2.png 805w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/09\/AF32u4_A2_Setup2-300x201.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/09\/AF32u4_A2_Setup2-768x515.png 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/09\/AF32u4_A2_Setup2-272x182.png 272w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/li>\n<li>Install the Adafruit boards via <strong>Boards Manager -&gt; <\/strong>search <strong>Arduino SAMD Boards<\/strong><strong>\u00a0-&gt; Install<\/strong>.<\/li>\n<li>Install the Adafruit boards via <strong>Boards Manager -&gt; <\/strong>search <strong>Adafruit SAMD<\/strong><strong> Boards -&gt; Install<\/strong>.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3649 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup1.png\" alt=\"M0 Setup Arduino IDE\" width=\"303\" height=\"500\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup1.png 492w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup1-182x300.png 182w\" sizes=\"auto, (max-width: 303px) 100vw, 303px\" \/><\/li>\n<li>You should see in <strong>Tools -&gt; Board -&gt; Adafruit SAMD<\/strong> the Adafruit Feather M0.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3650\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup2.png\" alt=\"M0 Setup Arduino IDE\" width=\"702\" height=\"262\" \/><\/li>\n<li>Connect the Adafruit Feather M0 using micro USB cable to your computer.<\/li>\n<li>Choose the appropriate COM port which is used for communication with Adafruit.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3653 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32.png\" alt=\"M0 Setup Arduino IDE\" width=\"333\" height=\"193\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32.png 452w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32-300x174.png 300w\" sizes=\"auto, (max-width: 333px) 100vw, 333px\" \/><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #800000;\"><strong>Activation<\/strong><\/span><\/h2>\n<p><strong>Over The Air Activation (OTAA) &#8211;<\/strong> the most secure and recommended activation method for end devices. Devices perform a join procedure with the network, during which a dynamic device address is assigned and security keys are negotiated with the device.<\/p>\n<p><strong>Activation By Personalization (ABP)<\/strong> &#8211; requires hardcoding the device address as well as the security keys in the device. ABP is <strong>less secure<\/strong>\u00a0than OTAA and also has the downside that devices can not switch network providers without manually changing keys in the device.<\/p>\n<p>See the\u00a0<a href=\"https:\/\/www.thethingsnetwork.org\/docs\/lorawan\/end-device-activation\/\" target=\"_blank\" rel=\"noopener\"><strong>documentation<\/strong><\/a> for more information on activation.<\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #189bd6;\"><strong>Over The Air Activation (OTAA)<\/strong><\/span><\/h2>\n<h4><span style=\"color: #800000;\"><strong>MCCI LoRaWAN LMIC library setup<\/strong><\/span><\/h4>\n<ol>\n<li>Download the <a href=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/MCCI_LoRaWAN_LMIC_library.zip\" download=\"\">MCCI LoRaWAN LMIC library<\/a>, which is an updated version of the library by Terry Moore, modified to work with the EU433 frequency plan.\n<div class=\"min-h-[20px] text-message flex flex-col items-start whitespace-pre-wrap break-words [.text-message+&amp;]:mt-5 juice:w-full juice:items-end overflow-x-auto gap-3\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"06f49de5-0e63-48ad-a91f-b44b1297cd2f\"><\/div>\n<\/li>\n<li>In the Arduino IDE, go to Sketch -&gt; Include Library -&gt; Add .ZIP Library, search for the downloaded <strong>MCCI LoRaWAN LMIC library<\/strong>, and open it.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7167\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601.png\" alt=\"\" width=\"550\" height=\"345\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601.png 806w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601-300x188.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601-768x482.png 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601-436x272.png 436w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/li>\n<\/ol>\n<h4><span style=\"color: #800000;\"><strong>Add Feather M0 into The Things Stack<\/strong><\/span><\/h4>\n<ol>\n<li><a href=\"https:\/\/www.thethingsnetwork.org\/login?next=\/\" target=\"_blank\" rel=\"noopener\"><strong>Create an account<\/strong><\/a> on The Things Network if you don&#8217;t have one.<\/li>\n<li><strong>Login<\/strong> on <strong><a href=\"https:\/\/www.thethingsnetwork.org\/login?next=\/\" target=\"_blank\" rel=\"noopener\">The Things Network<\/a><\/strong>.<\/li>\n<li>Click on your username and choose <strong>Console<\/strong>.<\/li>\n<li>Select a network cluster.<\/li>\n<\/ol>\n<h6><strong>Add application<\/strong><\/h6>\n<ol>\n<li><strong>Go to applications<\/strong>.<\/li>\n<li>Click on button <strong>+ Add application<\/strong>.<\/li>\n<li>Write something into <strong>Application ID<\/strong>.<\/li>\n<li>Click on button <strong>Create application<\/strong>.<\/li>\n<\/ol>\n<h6><strong>Add end device<\/strong><\/h6>\n<ol>\n<li>In your application click on button <strong>+ Register end device<\/strong>.<\/li>\n<li>Input Method \u2013 Choose <strong>Enter end device specifics manually<\/strong>.<\/li>\n<li>Frequency plan &#8211; <span style=\"color: #000000;\"><strong>Europe 433 MHz (ITU region 1)<\/strong><\/span><\/li>\n<li>LoRaWAN version &#8211; <strong>LoRaWAN Specification 1.0.3<\/strong><\/li>\n<li>Click on <strong>Show advanced activation, LoRaWAN class and cluster settings<\/strong><\/li>\n<li>Activation mode &#8211; <strong>Over the air activation (OTAA)<\/strong><\/li>\n<li>Additional LoRaWAN class capabilities &#8211; <strong>None (class A only)<\/strong><\/li>\n<li><strong>Deselect<\/strong> &#8211; Use network&#8217;s default MAC settings<\/li>\n<li>Rx2 data rate = <strong>0<\/strong><\/li>\n<li>Rx2 frequency = <strong>434.665\u00a0MHz<\/strong><\/li>\n<li>JoinEUI &#8211; <strong>0000000000000000 \/\/<\/strong>It should be provided by the end device manufacturer for pre-provisioned end devices, or by the owner of the Join Server you will use.<\/li>\n<li>Click on <strong>Confirm<\/strong>.<\/li>\n<li>DevEUI &#8211; <strong>Generate<\/strong><\/li>\n<li>AppKey &#8211; <strong>Generate<\/strong><\/li>\n<li>End device ID &#8211; here you can name your device<\/li>\n<li>After registration &#8211; <strong>View registered end device<\/strong><\/li>\n<li>Click on button <strong>Register end device<\/strong><\/li>\n<li>Click on <strong>Settings<\/strong><\/li>\n<li>Network layer &#8211; <strong>Expand<\/strong><\/li>\n<li>Click on <strong>Advanced MAC settings<\/strong><\/li>\n<li>Desired Rx1 delay = <strong>1<\/strong><\/li>\n<li>Rx1 data rate offset = <strong>0<\/strong><\/li>\n<li>Add Frequency = <strong>433175000<\/strong><\/li>\n<li>Add Frequency = <strong>433375000<\/strong><\/li>\n<li>Add Frequency = <strong>433575000<\/strong><\/li>\n<li>Add Frequency = <strong>433775000<\/strong><\/li>\n<li>Add Frequency = <strong>433975000<\/strong><\/li>\n<li>Add Frequency = <strong>434175000<\/strong><\/li>\n<li>Add Frequency = <strong>434375000<\/strong><\/li>\n<li>Add Frequency = <strong>434575000<\/strong><\/li>\n<li>Adaptive data rate (ADR) &#8211; <strong>Dynamic mode<\/strong><\/li>\n<li>Click on button <strong>Save changes<\/strong><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h4><span style=\"color: #800000;\"><strong>Sending &#8222;Hello LoRa!&#8220; to TTS<\/strong><\/span><\/h4>\n<ol>\n<li style=\"text-align: left;\">In <strong>TTS -&gt; Applications -&gt; YourAppName -&gt; YourEndDeviceName -&gt; Payload formatters -&gt; Uplink<\/strong> change <strong>Formatter type<\/strong> to <strong>Custom Javascript formatter <\/strong>and to <strong>Formatter code<\/strong> copy and paste code bellow:\n<pre><span style=\"color: #333399;\"><em>function<\/em><\/span> <span style=\"color: #ff0000;\">Decoder<\/span>(bytes, port) { \r\n   <em><span style=\"color: #333399;\">return<\/span><\/em> {\r\n          mydata: String.fromCharCode.<span style=\"color: #ff0000;\">apply<\/span>(<span style=\"color: #993300;\">null<\/span>, bytes) \/\/ Decode plain text\r\n   };\r\n}<\/pre>\n<\/li>\n<li><strong>Save changes<\/strong><\/li>\n<li>To your Arduino IDE copy and paste program <strong><a href=\"https:\/\/github.com\/MiraKnapovsky\/GPS_Tracker_433MHz\/blob\/341de313a0a78228864dc382e07da9e18fd72c2c\/OTAA_Sending_Hello_LoRa_433MHz.ino\" target=\"_blank\" rel=\"noopener\">Sending Hello LoRa &#8211; OTAA<\/a><\/strong>.<\/li>\n<li>In program replace <strong>APPEUI<\/strong>, <strong>DEVEUI<\/strong> and <strong>APPKEY<\/strong> with keys in TTS. Keys are in <strong>TTS -&gt; Applications -&gt; YourAppName -&gt; YourEndDeviceName -&gt; Device overview -&gt; Activation information<\/strong>.<\/li>\n<li>Connect Adafruit Feather M0 using micro USB cable to your computer.<\/li>\n<li>Choose the appropriate COM port which is used for communication with Adafruit.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3653 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32.png\" alt=\"M0 Setup Arduino IDE\" width=\"300\" height=\"174\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32.png 452w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32-300x174.png 300w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/li>\n<li>In Arduino IDE click on <strong>Upload<\/strong> button to upload program to your Adafruit Feather M0.<\/li>\n<li>In Arduino IDE click on <strong>Serial Monitor <\/strong>button and you should <strong>every +-30 seconds<\/strong> see &#8222;Sending &#8211; Hello, LoRa!&#8220;:<span style=\"color: #ff6600;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3655 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial.png\" alt=\"\" width=\"750\" height=\"331\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial.png 1208w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial-300x132.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial-1024x452.png 1024w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial-768x339.png 768w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/span><\/li>\n<li>In <strong>TTS -&gt; Applications -&gt; YourAppName -&gt; YourEndDeviceName -&gt; Live data<\/strong> you should see this:<span style=\"color: #ff6600;\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-2243 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_TTS.png\" alt=\"\" width=\"750\" height=\"431\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_TTS.png 1549w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_TTS-300x172.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_TTS-1024x588.png 1024w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_TTS-768x441.png 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/AFM0_TTS-1536x883.png 1536w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #189bd6;\"><strong>Activation By Personalization (ABP)<\/strong><\/span><\/h2>\n<h4><span style=\"color: #800000;\"><strong>MCCI LoRaWAN LMIC library setup<\/strong><\/span><\/h4>\n<ol>\n<li>Download the <a href=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/MCCI_LoRaWAN_LMIC_library.zip\" download=\"\">MCCI LoRaWAN LMIC library<\/a>, which is an updated version of the library by Terry Moore, modified to work with the EU433 frequency plan.\n<div class=\"min-h-[20px] text-message flex flex-col items-start whitespace-pre-wrap break-words [.text-message+&amp;]:mt-5 juice:w-full juice:items-end overflow-x-auto gap-3\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"06f49de5-0e63-48ad-a91f-b44b1297cd2f\"><\/div>\n<\/li>\n<li>In the Arduino IDE, go to Sketch -&gt; Include Library -&gt; Add .ZIP Library, search for the downloaded <strong>MCCI LoRaWAN LMIC library<\/strong>, and open it.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7167\" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601.png\" alt=\"\" width=\"550\" height=\"345\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601.png 806w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601-300x188.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601-768x482.png 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2024\/05\/Screenshot-2024-05-14-174601-436x272.png 436w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/li>\n<li>On Windows open <strong>lmic_project_config.h<\/strong> located in <strong>\\Documents\\Arduino\\libraries\\MCCI_LoRaWAN_LMIC_library\\project_config\\<\/strong><\/li>\n<li>Change project definitions to definitions listed bellow and save it.<\/li>\n<\/ol>\n<pre style=\"padding-left: 40px;\">\/\/ project-specific definitions\r\n#define CFG_eu433 1\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/for Europe (change it based on your location)\r\n#define CFG_sx1276_radio 1\r\n#define DISABLE_JOIN 1\r\n#define DISABLE_PING 1\r\n#define DISABLE_BEACONS 1<\/pre>\n<p>&nbsp;<\/p>\n<h4><span style=\"color: #800000;\"><strong>Add Feather M0 into The Things Stack<\/strong><\/span><\/h4>\n<ol>\n<li><a href=\"https:\/\/www.thethingsnetwork.org\/login?next=\/\" target=\"_blank\" rel=\"noopener\"><strong>Create an account<\/strong><\/a> on The Things Network if you don&#8217;t have one.<\/li>\n<li><strong>Login<\/strong> on <strong><a href=\"https:\/\/www.thethingsnetwork.org\/login?next=\/\" target=\"_blank\" rel=\"noopener\">The Things Network<\/a><\/strong>.<\/li>\n<li>Click on your username and choose <strong>Console<\/strong>.<\/li>\n<li>Select a network cluster.<\/li>\n<\/ol>\n<h6><strong>Add application<\/strong><\/h6>\n<ol>\n<li><strong>Go to applications<\/strong>.<\/li>\n<li>Click on button <strong>+ Add application<\/strong>.<\/li>\n<li>Write something into <strong>Application ID<\/strong>.<\/li>\n<li>Click on button <strong>Create application<\/strong>.<\/li>\n<\/ol>\n<h6><strong>Add end device<\/strong><\/h6>\n<ol>\n<li>In your application click on button <strong>+ Register end device<\/strong>.<\/li>\n<li>Input Method \u2013 Choose\u00a0<strong>Enter end device specifics manually<\/strong>.<\/li>\n<li>Frequency plan &#8211; <span style=\"color: #000000;\"><strong>Europe 433 MHz (ITU region 1)<\/strong><\/span><\/li>\n<li>LoRaWAN version &#8211; <strong>LoRaWAN Specification 1.0.3<\/strong><\/li>\n<li>Click on <strong>Show advanced activation, LoRaWAN class and cluster settings<\/strong><\/li>\n<li>Activation mode &#8211; <strong>Activation by personalization (ABP)<\/strong><\/li>\n<li>Additional LoRaWAN class capabilities &#8211; <strong>None (class A only)<\/strong><\/li>\n<li><strong>Deselect<\/strong> &#8211; Use network&#8217;s default MAC settings<\/li>\n<li>Rx1 data rate offset = <strong>0<\/strong><\/li>\n<li>Rx1 delay = <strong>1<\/strong><\/li>\n<li>Resets frame counters &#8211; <strong>Enabled<\/strong><\/li>\n<li>Rx2 data rate = <strong>0<\/strong><\/li>\n<li>Rx2 frequency = <strong>434.665\u00a0MHz<\/strong><\/li>\n<li>Add entry = <strong>433175000<\/strong><\/li>\n<li>Add entry = <strong>433375000<\/strong><\/li>\n<li>Add entry = <strong>433575000<\/strong><\/li>\n<li>Add entry = <strong>433775000<\/strong><\/li>\n<li>Add entry = <strong>433975000<\/strong><\/li>\n<li>Add entry = <strong>434175000<\/strong><\/li>\n<li>Add entry = <strong>434375000<\/strong><\/li>\n<li>Add entry = <strong>434575000<\/strong><\/li>\n<li>DevEUI &#8211; <strong>Generate<\/strong><\/li>\n<li>Device address &#8211; <strong>Generate<\/strong><\/li>\n<li>AppSKey &#8211; <strong>Generate<\/strong><\/li>\n<li>NwkSKey &#8211; <strong>Generate<\/strong><\/li>\n<li>End device ID &#8211; here you can name your device<\/li>\n<li>After registration &#8211; <strong>View registered end device<\/strong><\/li>\n<li>Click on button <strong>Register end device<\/strong><\/li>\n<li>Click on <strong>Settings<\/strong><\/li>\n<li>Network layer &#8211; <strong>Expand<\/strong><\/li>\n<li>Click on <strong>Advanced MAC settings<\/strong><\/li>\n<li>Desired Rx1 delay = <strong>1<\/strong><\/li>\n<li>Adaptive data rate (ADR) \u2013\u00a0<strong>Dynamic mode<\/strong><\/li>\n<li>Click on button <strong>Save changes<\/strong><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h4><span style=\"color: #800000;\"><strong>Sending &#8222;Hello LoRa!&#8220; to TTS<\/strong><\/span><\/h4>\n<ol>\n<li style=\"text-align: left;\">In <strong>TTS -&gt; Applications -&gt; YourAppName -&gt; YourEndDeviceName -&gt; Payload formatters -&gt; Uplink<\/strong> change <strong>Formatter type<\/strong> to <strong>Custom Javascript formatter <\/strong>and to <strong>Formatter code<\/strong> copy and paste code bellow:\n<pre><span style=\"color: #333399;\"><em>function<\/em><\/span> <span style=\"color: #ff0000;\">Decoder<\/span>(bytes, port) { \r\n   <em><span style=\"color: #333399;\">return<\/span><\/em> {\r\n          mydata: String.fromCharCode.<span style=\"color: #ff0000;\">apply<\/span>(<span style=\"color: #993300;\">null<\/span>, bytes) \/\/ Decode plain text\r\n   };\r\n}<\/pre>\n<\/li>\n<li><strong>Save changes<\/strong><\/li>\n<li>To your Arduino IDE copy and paste program <strong><a href=\"https:\/\/github.com\/MiraKnapovsky\/GPS_Tracker_433MHz\/blob\/341de313a0a78228864dc382e07da9e18fd72c2c\/ABP_Sending_Hello_LoRa_433MHz.ino\" target=\"_blank\" rel=\"noopener\">Sending Hello LoRa<\/a><\/strong>.<\/li>\n<li>In program replace <strong>NWKSKEY<\/strong>, <strong>APPSKEY<\/strong> and <strong>DEVADDR<\/strong> with keys of your end device registred in TTS. Keys are in <strong>TTS -&gt; Applications -&gt; YourAppName -&gt; YourEndDeviceName -&gt; Device overview -&gt; Session information<\/strong>.<\/li>\n<li>Connect Adafruit Feather M0 using micro USB cable to your computer.<\/li>\n<li>Choose the appropriate COM port which is used for communication with Adafruit.<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3653 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32.png\" alt=\"M0 Setup Arduino IDE\" width=\"300\" height=\"174\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32.png 452w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-Setup32-300x174.png 300w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/li>\n<li>In Arduino IDE click on <strong>Upload<\/strong> button to upload program to your Adafruit Feather M0.<\/li>\n<li>In Arduino IDE click on <strong>Serial Monitor <\/strong>button and you should <strong>every +-1 minute<\/strong>\u00a0see <span style=\"color: #000000;\">&#8222;Sending &#8211; Hello, LoRa!&#8220;<\/span>:<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3656 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial2.png\" alt=\"\" width=\"780\" height=\"242\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial2.png 1198w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial2-300x93.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial2-1024x318.png 1024w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2023\/01\/M0-HelloLora-Serial2-768x238.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/li>\n<li>In <strong>TTS -&gt; Applications -&gt; YourAppName -&gt; YourEndDeviceName -&gt; Live data<\/strong> you should see this:<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-1859 \" src=\"http:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/TTS_Hello_Lora.png\" alt=\"TTS_Hello_Lora\" width=\"779\" height=\"355\" srcset=\"https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/TTS_Hello_Lora.png 1562w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/TTS_Hello_Lora-300x137.png 300w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/TTS_Hello_Lora-1024x467.png 1024w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/TTS_Hello_Lora-768x350.png 768w, https:\/\/lora.vsb.cz\/wp-content\/uploads\/2022\/06\/TTS_Hello_Lora-1536x700.png 1536w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>TTN version: TTNv3 \/ TTS SANDBOX Activation: OTAA \/ ABP Device Class: Class A Last revision: July 21, 2025 At the Feather M0&#8218;s heart is an ATSAMD21G18 ARM Cortex M0 processor, clocked at 48 MHz and at 3.3 V logic. This chip has a whopping 256 KB of FLASH (8x more than the ATmega32u4) and [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6978","page","type-page","status-publish","hentry","post"],"_links":{"self":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/6978","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/comments?post=6978"}],"version-history":[{"count":27,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/6978\/revisions"}],"predecessor-version":[{"id":8862,"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/pages\/6978\/revisions\/8862"}],"wp:attachment":[{"href":"https:\/\/lora.vsb.cz\/index.php\/wp-json\/wp\/v2\/media?parent=6978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}