Skip to content

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

@dallmair

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.

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