Skip to content
Jason Reiss edited this page Dec 11, 2024 · 5 revisions

Work in progress on mts-wip branch.

See zephyr/samples/boards/multitech directory. https://github.com/MultiTechSystems/zephyr/tree/mts-wip/samples/boards/multitech

Supported Boards

  • mDot : multitech_mdot
    • Support for built-in flash and SX1272 radio
  • xDot : multitech_xdot
    • Support for built-in eeprom and SX1272 radio
  • xDot AD : multitech_xdot_ad
    • Support for built-in flash and eeprom and SX1262 radio
  • xDot ES : multitech_xdot_es
    • Support for external flash and SX1262 radio

Build instructions

mDot

west build --board multitech_mdot --build-dir build/mdot/lorawan_shell zephyr/samples/boards/multitech/lorawan/shell

Defining the channel plan using command line options

west build --board multitech_mdot --build-dir build/mdot/lorawan_shell zephyr/samples/boards/multitech/lorawan/shell -- -DCONFIG_LORAMAC_REGION_AU915=n -DCONFIG_LORAMAC_REGION_US915=n -DCONFIG_LORAMAC_REGION_EU868=n -DCONFIG_LORAMAC_REGION_EU868=y

xDot

west build --board multitech_xdot --build-dir build/xdot/lorawan_shell zephyr/samples/boards/multitech/lorawan/shell

xDot AD

west build --board multitech_xdot_ad --build-dir build/xdot-ad/lorawan_shell zephyr/samples/boards/multitech/lorawan/shell

xDot ES

west build --board multitech_xdot_es --build-dir build/xdot-es/lorawan_shell zephyr/samples/boards/multitech/lorawan/shell

Dot Examples

Flash

Simple example of reading/writing FLASH device on boot

EEPROM

Simple example of reading/writing EEPROM device on boot

LoRaWAN

Certification

LCTT Certification test application

Simple modification to LoRaMAC-node is needed to pass ADR tests. Add StopRetransmission when ChannelsNbTrans is updated by LinkADRReq, otherwise retransmissions start with the previous uplink packet being resent.

zephyrproject\modules\lib\loramac-node\src\mac\LoRaMac.c 2291 Nvm.MacGroup1.ChannelsTxPower = linkAdrTxPower; 2292 Nvm.MacGroup2.MacParams.ChannelsNbTrans = linkAdrNbRep; 2293 StopRetransmission(); 2294 }

LoRaWAN Shell

Simple example of saving device credentials to FLASH/EEPROM for OTA Join. Packets can be sent after joining the network. Saving to NVM will use the beginning of the device memory. For production level code a wear-leveling algorithm would be needed.

LoRaWAN Shell Commands

   lw - LoRaWAN Commands
   Subcommands:
   deveui   : Set/get [deveui:HEX8]
   joineui  : Set/get [joineui:HEX8]
   appkey   : Set/get [appkey:HEX16]
   save     : Save Config
   join     : Join Network
   send     : <port> <0:UNC,1:CNF> <payload:HEX>

uart:~$ lw deveui 1122334455667788
uart:~$ lw joineui 1122334455667788
uart:~$ lw appkey 11223344556677881122334455667788
uart:~$ lw save
uart:~$ lw join
uart:~$ lw send 1 0 FFEEDD