Skip to content
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Development
  3. MYSBootLoader OTA documentation
  • Getting Started
  • Controller
  • Build
  • Hardware
  • Download/API
  • Forum
  • Store

MYSBootLoader OTA documentation

Scheduled Pinned Locked Moved Development
5 Posts 2 Posters 2.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • jsiddallJ Offline
    jsiddallJ Offline
    jsiddall
    Plugin Developer
    wrote on last edited by
    #1

    Is there any documentation on how MYSBootloader expects to receive OTA firmware updates? This is a slick feature for sure but I need to write an OTA stack for my controller since I am not using MYSController.

    I checked for documentation but there seems to be almost zero there (just a brief mention that OTA exists on the serial protocol page).

    tekkaT 1 Reply Last reply
    0
    • jsiddallJ jsiddall

      Is there any documentation on how MYSBootloader expects to receive OTA firmware updates? This is a slick feature for sure but I need to write an OTA stack for my controller since I am not using MYSController.

      I checked for documentation but there seems to be almost zero there (just a brief mention that OTA exists on the serial protocol page).

      tekkaT Offline
      tekkaT Offline
      tekka
      Admin
      wrote on last edited by
      #2

      @jsiddall You can find additional information and sources here:

      https://github.com/mysensors/MySensorsBootloaderRF24

      1 Reply Last reply
      1
      • jsiddallJ Offline
        jsiddallJ Offline
        jsiddall
        Plugin Developer
        wrote on last edited by
        #3

        Thanks @tekka. Binary huh? Looks like it's time I read http://perldoc.perl.org/perlpacktut.html

        I also see #define FIRMWARE_BLOCK_SIZE 16

        with 6 bytes of other headers brings it up to 22 bytes of the 25 available payload bytes. Is it safe to assume the block size won't be changing any time soon?

        Also, if the actual firmware doesn't fill the last block is the expected behavior to send less than FIRMWARE_BLOCK_SIZE bytes (i.e.: no padding)?

        tekkaT 1 Reply Last reply
        0
        • jsiddallJ jsiddall

          Thanks @tekka. Binary huh? Looks like it's time I read http://perldoc.perl.org/perlpacktut.html

          I also see #define FIRMWARE_BLOCK_SIZE 16

          with 6 bytes of other headers brings it up to 22 bytes of the 25 available payload bytes. Is it safe to assume the block size won't be changing any time soon?

          Also, if the actual firmware doesn't fill the last block is the expected behavior to send less than FIRMWARE_BLOCK_SIZE bytes (i.e.: no padding)?

          tekkaT Offline
          tekkaT Offline
          tekka
          Admin
          wrote on last edited by
          #4

          @jsiddall It's actually 7 bytes header, leaving 25 bytes for payload.
          FW blocks are 16 bytes (FIRMWARE_BLOCK_SIZE). Padding bytes (0xFF) are added to fill the page (m328p has 64 words per page). CRC is calculated over all transmitted pages.

          See here for additional information: https://github.com/mysensors/MySensorsSampleController

          1 Reply Last reply
          1
          • jsiddallJ Offline
            jsiddallJ Offline
            jsiddall
            Plugin Developer
            wrote on last edited by
            #5

            @tekka, yes, sorry, should have clarified. 7 bytes for MYS sensor, but the 6 bytes I was referring to as a "header" was the typedef on the firmware download. So 7+6=13/32 leaving up to 19 bytes for the firmware block itself.

            Thanks for the clarification on the padding and the CRC. That will become important.

            1 Reply Last reply
            1
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            18

            Online

            11.7k

            Users

            11.2k

            Topics

            113.0k

            Posts


            Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • OpenHardware.io
            • Categories
            • Recent
            • Tags
            • Popular