Public | Automated Build

Last pushed: a month ago
Short Description
A tool that facilitates over-the-air firmware uploads for the MySensors bootloader.
Full Description

Mysb



A Firmware Uploading Tool for the MYSBootloader via MQTT

Installation

Via Docker

docker run -d --name="mysb" -v /the/path/to/config_folder:/config -v /etc/localtime:/etc/localtime:ro mannkind/mysb

Via dotnet

git clone https://github.com/mannkind/mysb
dotnet build -c Release mysb
mysb/bin/Release/mysb */the/path/to/config_folder/config.yaml*

Configuration

Configuration happens in the config.yaml file. A full example might look this:

settings:
    clientid: 'GoMySysBootloader'
    broker:   'tcp://mosquitto:1883'
    subtopic: 'mysensors_rx'
    pubtopic: 'mysensors_tx'

control:
    autoidenabled: true   
    nextid: 12
    firmwarebasepath: '/the/path/to/config_folder/firmware'
    nodes:
        default: { type: 1, version: 1 }
        1: { type: 1, version: 1 }
        2: { type: 3, version: 1 }
        3: { type: 1, version: 2 }
        4: { type: 1, version: 1 }
        5: { type: 2, version: 3 }

The firmware a node is using is a combination of a type and a version. The priority of the firmware used is based on the following:

  1. A type/version assigned to the node in the config.yaml file
  2. The requested type/version sent in the configuration request
  3. The default firmware setup in the config.yaml file

The location of the firmware picked is relative to the control['firmwarebasepath'] setting in config.yaml.

E.g. /path/to/config_folder/firmware/type/version/firmware.hex

$ find /path/to/config_folder/firmware
/path/to/config_folder/firmware/3
/path/to/config_folder/firmware/3/1
/path/to/config_folder/firmware/3/1/firmware.hex
/path/to/config_folder/firmware/2
/path/to/config_folder/firmware/2/1
/path/to/config_folder/firmware/2/1/firmware.hex
/path/to/config_folder/firmware/2/2
/path/to/config_folder/firmware/2/2/firmware.hex
/path/to/config_folder/firmware/2/3
/path/to/config_folder/firmware/2/3/firmware.hex
/path/to/config_folder/firmware/1
/path/to/config_folder/firmware/1/1
/path/to/config_folder/firmware/1/1/firmware.hex
/path/to/config_folder/firmware/1/2
/path/to/config_folder/firmware/1/2/firmware.hex
Docker Pull Command
Owner
mannkind
Source Repository

Comments (0)