MultiTech / libxDot-Custom

Fork of libxDot-dev-mbed5-deprecated by MultiTech

The Connect example can be used as a starting point for an xDot application.

Import programmDot_LoRa_Connect_Example_CUSTOM_AS923

Example configuration of frequencies and datarates for AS923 channel plan.

Change the libmDot-Custom library to libxDot-Custom after importing the above example.

Change the platform for the project to xDot in upper right corner of the compiler page.

Ensure the mbed-os version matches the with the library commit.

Currently the AT Firmware cannot be built online for the xDot.

Creating new channel plans

Copy EU868 or US915 custom channel plan as a starting point

Import librarymDot_Channel_Plans

Channel plans to enable libmDot-Custom

EU868 provides a framework for a DYNAMIC channel plan with duty-cycle limitations

US915 provides a framework for a FIXED channel plan

RADIO_POWERS are measured output in dBm for each radio tx power setting.

Additional MAC Commands can be implemented by overriding the HandleMacCommand function.

Steps

  1. Setup datarates, duty-cycle bands and channels in ChannelPlan_* constructor
  2. Modify GetJoinDatarate and CalculateJoinBackoff to change join datarates and backoff
  3. Customize HandleJoinAccept datarates
  4. Use GetRxWindow(int) to define how the device open Rx window 1 and 2
  5. GetNextChannel will pick a channel from the enabled channel at the current datarate before each TX
Revision:
24:707857d35a6e
Parent:
23:17a25e16ccf1
diff -r 17a25e16ccf1 -r 707857d35a6e Mote.h
--- a/Mote.h	Mon Oct 31 14:51:55 2016 +0000
+++ b/Mote.h	Fri Jan 06 14:48:17 2017 +0000
@@ -196,7 +196,7 @@
 
             /**
              * Add a channel to the channel plan
-             * EU868 allows additional channels to be added
+             * EU868, AS923 and KR920 allows additional channels to be added
              * Channels 0-2 are fixed default channels
              *
              * @param index of the channel
@@ -207,6 +207,16 @@
             uint8_t AddChannel(uint8_t index, uint32_t frequency, lora::DatarateRange range);
 
             /**
+             * Add a downlink channel to the channel plan
+             * EU868, AS923 and KR920 allows downlink channels to be added
+             *
+             * @param index of the channel
+             * @param frequency of the channel or 0 to remove channel
+             * @return LORA_OK if channel was added
+             */
+            uint8_t AddDownlinkChannel(uint8_t index, uint32_t frequency);
+
+            /**
              * Set network mode
              * Choose Public LoRaWAN mode or Private Multitech mode
              *