MultiTech


MultiTech's official mbed team.

Dot library change log

Dot Library Change Log

Changes in versions 3.x.x and onward apply to mDot and xDot unless explicitly specified.

AT Firmware Change Log

3.2.1

Updated library on 08-29-2019 to ARMC6 compiler

Changes

  • Upgrade mbed-os to 5.11.1
  • Added support for LoRaWAN 1.0.3rA
  • Removed AutoSleep functionality
  • Added Class B
    • Added BeaconRx and BeaconLost events: mDotEvent.h
    • Added BeaconLocked and BeaconData properties to mDotEvent
    • Added getGPSTime to perform DeviceTimeReq
    • Added ServerTimeSeconds and ServerTimeMillis to mDotEvent to return DeviceTimeAns
    • setDeviceClass accepts argument of "B" to enter beacon acquisition state
    • setPingPeriodicity, getPingPeriodicity to control Class B windows
    • getNextTxMaxSize returns available payload bytes for next transmission
  • Added getFrequencyOffset, setFrequencyOffset for fine tuning of Tx due to crystal variance

Bug Fixes

  • Invalid MAC commands being processed
    • Verify length of last command
  • Lock-up if sleep is called during/before Rx Windows
    • State is reset on wake-up
  • Join when class C enabled could report false negative response for Rx2
    • Join timeout extended passed end of Rx2 window in Class C mode
  • Repeated calls to restoreNetworkSession will flip channel mask
    • Channel mask is restored correctly with multiple calls

Regressions in 3.2.0

  • Downlink 16-bit counter rollover was not handled correctly

3.2.0

  • Added support for LoRaWAN 1.0.3rA
  • Added Class B
  • Removed AutoSleep functionality
  • Added Class B
    • Added BeaconRx and BeaconLost events: mDotEvent.h
    • Added BeaconLocked and BeaconData properties to mDotEvent
    • Added getGPSTime to perform DeviceTimeReq
    • Added ServerTimeSeconds and ServerTimeMillis to mDotEvent to return DeviceTimeAns
    • setDeviceClass accepts argument of "B" to enter beacon acquisition state
    • setPingPeriodicity, getPingPeriodicity to control Class B windows
    • getNextTxMaxSize returns available payload bytes for next transmission
  • Added getFrequencyOffset, setFrequencyOffset for fine tuning of Tx due to crystal variance

3.1.0

Enhancements

  • Added support for firmware over the air updates (FOTA) -mDot only
  • Added support for multicast messages
  • Added auto sleep support for sleeping between rx windows
  • Added support for IN865, KR920 channel plans
  • Store AppEUI and AppKey in protected settings
  • Upgraded to mBed OS 5.7.7
  • ADR enabled by default
  • Default settings changed to Public LoRaWAN with 5 second Join Delay
  • Added bootloader for xDot
  • Added support for custom bootloader for xDot
  • Update KR920 max payload sizes changed in LW 1.0.2 Regional Specification

Bug fixes

  • AS923 reduce min frequency to cover New Zealand 915-928 MHz
  • Add downlink channel settings for rx1 in EU, IN and KR
  • ChannelPlan: EU868 default channels support only DR0-5
  • Mac Commands buffer fixes, buffer will clear properly
  • Negative Antenna gain functions correctly now
  • AT&F now changes dots to class A
  • LBT now uses AT+TXF for testing at a fixed frequency
  • Added Info logging for wrong packet received information (wrong address, mic failure)
  • Suppress some trace logging to avoid stack overflow
  • Allow default channels to be disabled with a LinkADRReq MAC command
  • Add support for DlChannelReq MAC command for all applicable channel plans
  • Added locking for spi write mDot, now thread safe
  • AU915: DR0-6 support
  • Open rx window on wakeup in Class C mode
  • Fix for backward compatibility for 1.0 and 2.0 dot libraries

Known Issues

  • Sleeping before rx windows close can cause transmit in progess error -Workaround call cancelRxWindow before sleep
  • Commands sent at the wrong baud rate can lock up the xDot and mDot

3.0.0

Changes

  • ADR validation enforces minimum of 2 enabled 125kHz channels for US915 and AU915 plans - follows Semtech reference
  • xDot - check system tick prescaler value after waking from sleep and fix if necessary
  • KR920 chooses random join datarate instead of exclusively using DR2
  • US915 max TX power to 30dB and reduce if necessary when preparing for TX (< 50 125kHz channels enabled)
  • min TX power set to 0 for all channel plans
  • IN865 updated to match final 1.0.2 spec - updated max TX power and ADR handling & validation
  • fix AS923 ADR validation - plan only has 2 default channels, not 3
  • update ADR handling to be compliant with 1.0.2 spec - process multiple sequential ADR commands atomically
  • update min/max TX powers to line up with 1.0.2 spec - EU, AS, KR channel plans affected
  • AS923 define min downlink DR based on downlink dwell time - section 2.7.7 of 1.0.2 spec
  • add getDefaultFrequencyBand and setDefaultFrequencyBand
  • remove setFrequencyBand
  • getFrequencyBand now returns the current channel plan (frequency band)
  • removed NZ918 channel plan
  • default TX power, datarate, & LBT configuration if saved configuration was saved with a different channel plan
  • only restore network session if it was saved with the same channel plan that's currently in use
  • LBT can be configured with setLbtTimeUs & setLbtThreshold
  • update LoRa and FSK RSSI offsets
  • add version information for MTS-Lora
  • add DlChannelAns MAC command
  • removed built-in channel plans - pass a ChannelPlan object to mDot::getInstance
  • add KR920 and AS923 channel plans

Bug Fixes

  • add FB_* enums to channel plan enum for full backwards compatibility
  • clear data pending flag when sending a packet to ensure app doesn't see false positives
  • correct max TX power for channel plans
  • fix AS923 ADR validation - plan only has 2 default channels, not 3
  • setTxPower now validates using channel plan minimum and maximum
  • ACK timer does not start when the uplink is a join request
  • disable CRC for all LoRa downlink packets & enable it for all FSK downlink
  • fix 32 bit counter rollover at 16 bits
  • xDot now opens RX windows at same time as mDot
  • RX2 frequency & datarate is correctly initialized on startup
  • 128 byte network name and passphrase no longer returned corrupted by getNetworkName & getNetworkPassphrase
  • handle duplicate session files in filesystem
  • disable CRC for downlink packets according to LoRaWan spec
  • enable CRC for FSK
  • don't reset FrequencySubBand to 0 after successful join in case gateway doesn't support all 64 channels - wait for channel mask from GW
  • set link state back to IDLE in P2P mode - resolves issue where sends fail after CRC error in P2P mode

Known Issues

  • none

2.0.17

Changes

  • No changes

Bug Fixes

  • No changes

Known Issues

  • No changes

2.0.16

Changes

  • check PVD before executing filesystem transactions - greatly reduces chance of filesystem corruption on mDots running at voltages < 3.3V

Bug Fixes

Known Issues



2.0.15

Changes

  • Save and restore internal GPIO state around sleep mode to achieve lowest possible power consumption
  • add mbed library version to library version
  • ADR: check adr request datarate and channel mask independently
  • enable test mode TX delay
  • ADR: Do not change datarate until ACK_LIMIT + ACK_DELAY + 1 (64 + 32 + 1 = 97)
  • update test mode packet timeout to 160

Bug Fixes

  • Wake up from Sleep mode on either edge instead of only falling edge

Known Issues



2.0.14

Changes

  • FSK mode fixes for xDot, can send up to 242 bytes

Bug Fixes

Known Issues



2.0.10

Changes

  • Allow dev address 00000000
  • Fix P2P power limiting based on configured frequency and regional regulations

Bug Fixes

Known Issues



2.0.8

Changes

  • Better stop mode current 55 uA
  • Calibrate tx power based on measure power at each setting
  • ADR reduce datarate after each ADR_ACK_DELAY (32)

Bug Fixes

Known Issues



2.0.1

Changes

  • Alternate between 125 and 500 kHz channels on join for US915/AU915
  • Calculate join backoff as random value between 0 and max duty-cycle for current backoff period.
  • Join backoff keep track of time-on-air for current period
  • Cycle through datarates on join attempts
  • Class C handle rx timeouts for missed ACK and missed join, skip rx2 window event as rx2 is opened on timeout of rx1
  • Add support for generating CW of cert testing
  • ADR check if datarate was lowered below current payload size and increment as necessary
  • Do not allow mac commands in payload and options bytes. Bad check caused link check failure. [IN:1928]
  • P2P will use TX frequency setting in EU868 and respect duty cycle according to set power level (Must set to 869.85 MHz and Power + Ant < 7 dBm for 100% duty-cycle)
  • Antenna gain param change will take effect immediately
  • Public/Private mode will take effect immediately

Bug Fixes

Known Issues



1.1.0

Changes

  • Function to clear uplink mac command buffer
  • Function to retrieve uplink mac command buffer
  • Function to cancel rx windows

Bug Fixes

  • TX DataRate is no longer reset during OTA join process
  • US915 Rx1 with datarate offset for TxDR 0,1,2 and Offset 1,2,3 fixed
  • Convert input of SF_12 or SF_11 to DR0 in US915
  • US915 64 channel mode skipped channel 16

Known Issues



1.0.13

Changes

  • Join Duty cycle limitation 1% first hour, 0.1% next ten hours, 0.01% there after
  • Random Join Datarate
  • Aggregate Duty Cycle limitation configurable by MAC command

Bug Fixes

  • AT+TXCH output is fixed

Known Issues



1.0.12

Changes

  • AU915 Support according to LoRaWAN 1.0.1
  • ACK and REP settings take effect without save/restart
  • Peer to peer rx window open at start
  • Duty cycle will run for all datarates
  • Added check for max payload
  • Class C support AT+DC=C (use AT+SD or debug log to see packets received from server)
  • AT+MAC command to inject mac commands into mac layer (see attached doc for command instructions, debug output will show effect of commands)
  • AT+TXCH output has been changed
  • AT+CHM - allows changing the channel mask of enabled channels AT+CHM=0,00FF (enable 0-15) AT+CHM=1,FF00 (enable 48-55)
  • +PING and +NLC fixed
  • Peer to peer much better (aka works)

Bug Fixes

Known Issues



1.0.9

Changes

Switched LoRaWAN implementation to MTS-Lora

Bug Fixes

Known Issues



1.0.8-1 Sleep

Changes

  • Improved sleep functionality.
    • Sleep (stop) mode leaves the application in control of the external I/O pins. In order to achieve lowest power draw, it is recommended that those pins be configured at analog inputs with no pull resistors during sleep. If the application needs to maintain a pull up or pull down resistor on any of the external pins, this mode needs to be used. Otherwise deep sleep (standby) is recommended.
    • Deep sleep (standby) power draw was found to be inconsistent. Deep sleep is now consistent at about 40uA. When deep sleep is requested, all I/O pin states are saved before sleep and restored after sleep. The mDot library invokes stop mode on the processor so that some internal pins can be pulled high or low during sleep to achieve minimum power draw. When exiting sleep, the processor is not reset and RAM is maintained.

Bug Fixes

Known Issues



1.0.8

Changes

Bug Fixes

  • US ADR fixed for 64 channels
  • EU ADR commands accept only ctrl mask of 0 or 6
  • Add configured channels only in EU868 mode

Known Issues



1.0.6

Changes

  • Handle packet repeat settings with timeout values and reset rx window flags
  • Fix SF to DR convert in setTxDatarate function

Bug Fixes

  • Add configured channels to the session on startup [IN:001786]
  • next tx ms now looks only at channels that support current datarate

Known Issues



1.0.5

Changes

  • FSK Payload 50 bytes

Bugfixes

  • Stop RX2 window only if valid packet received
  • Apply correct frequency for duty-cycle in peer-to-peer mode [IN:1775]

Known Issues



1.0.4

Changes

  • LoRaWAN 1.0 Certified

Bug Fixes

  • Extract RX Datarate from MAC command correctly

Known Issues



1.0.3

Changes

  • ADR functionality complete

Bug Fixes

  • ADR parameter validation

Known Issues



1.0.0-rc2

Changes

  • Reset server ACK requested on txdone

Bugfixes

  • 868 optional channels in join accept message received as LSB
  • Update downlink counter only if mic passes
  • Save timer value to temp variable, addresses race condition that led to MAX_INT wait times [IN:001725]
  • Power adjustments of txPower as radio output and antenna gain accounted for
  • Removed redundant max payload size check at 242
  • Mac timers start on Wakeup [IN:001719]

Known Issues



1.0.0

Changes

  • Preserve Session - allow configuration to preserve session in AUTO_OTA mode over reset/power, save session must be called before power down to save uplink counter
  • Save Session - allow user to save session including uplink counter
  • Restore Session - allow user to restore session including uplink counter
  • Join Delay - allow configuration of join rx window 1 delay
  • Rx Delay - allow configuration of rx window 1 delay
  • App Port - allow configuration of port for application data
  • RTC clock not reset over sleep
  • sleep - two sleep modes available sleep and deepsleep
  • duty-cycle checks time off air instead of toggling channel in channel mask
  • add aggregate duty cycle limiting
  • add Repeat setting to repeat unconfirmed frames (0-15) 0|1 send once
  • expand send error messages to include duty cycle limits met messages
  • Keep RxTimingSetupAns in mac command buffer until downlink is received
  • Choose random datarate upto the configured datarate for join request
  • Implemented AddChannel function
  • Implemented LoRaWAN 1.0 EU868 test-mode
  • Implemented join duty-cycle based on LoRaWAN 1.0.1
    • Join duty-cycle 1% for 1st hour, 0.1% 1-10 hours and 0.01% beyond 10 hours is enforced in US and EU modes
  • Add upto 10 random seconds between join attempts
  • Add UplinkCounter, Rx1Delay, Datarate, TxPower, Repeat, Rx2Frequency, DownlinkCounter, AggregateDutyCycle to session info
  • Add seedRandom function to allow external seeding of RNG, defaults to RSSI reading from radio to generate random seed
  • highBw is deprecated in the send function, setTxDatarate can accept high-speed datarates US(DR4:SF8BW500) and EU(DR6:SF7BW250,DR7:FSK)
  • setTxDatarate accepts values US(0-4,8-13) and EU(0-7) for datarates listed in LoRaWAN

Bugfixes

  • SNR - reports correct value in cB
  • NewChannelReq - disable channel when freq = 0
  • Reset server ACK requested on txdone
  • SxRadio - increase FSK rx timeout
  • Use radio random to seed psuedo rand function in LoRaMac
  • 868 optional channels in join accept message received as LSB
  • Update downlink counter only if mic passes
  • Save timer value to temp variable, addresses race condition that led to MAX_INT wait times [IN:001725]
  • Power adjustments of txPower as radio output and antenna gain accounted for
  • Removed redundant max payload size check at 242
  • Mac timers start on Wakeup [IN:001719]

Known Issues



0.0.9

Changes

Bugfixes

  • Response for US915 - DR4 fixed
  • check the duty-cycles and enable and expired duty cycles before looking for free channel.
  • [1415] +TXN may return very large number
  • added channels to the session to be restored after sleep in AUTO OTA mode.
  • Start uplink counter at 0
  • Sequence number no longer increases by 2 when acks are off
  • [1417] Duty cycle elapsed time was doubled across sleep

Known Issues



0.0.8

Changes

Bugfixes

  • Session is reset on power-on/reset
  • Join stats are now counted on successful join
  • US915 - rx1 datarate for high bandwidth channel
  • AUTO OTA link check off by one
  • AUTO OTA link count is saved over sleep
  • AUTO OTA US915 frequency sub-band is saved over sleep

Known Issues

  • Response for US915 - DR4 does not follow Table 22: Data rate mapping in LoRaWAN r1.0

0.0.7

Changes

  • Sleep mode
    • added sleep mode
    • added wake mode, interval, delay and timeout settings for sleep mode
  • User file storage, up to 4 user file may be open at a time
    • added save, append, read, move, delete options for files
    • added open, seek, read, write and close options for files
    • added firmware upgrade from user file

Bugfixes

  • EU868 duty cycles, check for spurious wake-ups

Known Issues

  • US915 sending using highBW option requires txDatarate to be set to SF_8 to receive response
  • LinkCheckThreshold check is off by one when using ACK's require one extra packet to detect network loss

All wikipages