22 Apr 2017, 07:14

Xmodem

In order to upgrade XBee programmable modules over the air with node.js based tooling there is need for an Xmodem protocol implementation.

Project home: https://github.com/exsilium/xmodem.js

Protocol sequence for uploading

  • Sender == uploader
  • Receiver == downloader
  • Transfers are receiver driven!
  • All errors are retried 10 times.
  • The receiver has a 10-second timeout.
  • Variable length checksum depending on the transfer mode:
    • normal/classic/original: 1 byte
    • crc mode: 2 bytes

WORK IN PROGRESS

SenderReceiverloop[every 3 sec]Data gets corrupted in transfer<ACK> gets garbaged<NAK><SOH> 01 FE -data- <xx><ACK><SOH> 02 FD -data- <xx><NAK><SOH> 02 FD -data- <xx><ACK><SOH> 03 FC -data- <xx><ACK><SOH> 03 FC -data- <xx><ACK><EOT><ACK>SenderReceiver

Questions

  • What is the frequency that the receiver sends out the NCG byte to start the transfer? - 3 seconds?

Testing