Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
dallmair opened this issue Apr 1, 2023 · 0 comments

Comments

@dallmair
Copy link
Member

dallmair commented Apr 1, 2023

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.

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

No branches or pull requests

1 participant