Skip to content

Bootloader protocol optimization: Group multiple responses to UPD_SEND_DATA together in a single message #73

Description

@dallmair

At the moment, the transmission is as follows:

PC -> BL   UPD_SEND_DATA (12 bytes payload)
BL -> PC   LL_ACK
BL -> PC   T_ACK
PC -> BL   LL_ACK
BL -> PC   UPD_SEND_LAST_ERROR (single byte payload!)
PC -> BL   LL_ACK
PC -> BL   T_ACK
BL -> PC   LL_ACK

That is quite a bit for transmitting a mere 12 bytes. What we could do here is to group multiple SEND_LAST_ERROR responses together and only send them out when:

  • The maximum number of bytes (error codes) that fit into a message is reached, or
  • There was an error, or
  • The page is full

No idea whether or rather how this is possible with calimero, though.

With Standard Frames, this could get us from 22x UPD_SEND_LAST_ERROR down to 2x UPD_SEND_LAST_ERROR, and therefore the transmission speed from ~120B/s up to ~188B/s.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions