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 Platform Differences #2

Open
oclyke opened this issue Jul 11, 2019 · 0 comments
Open

Bootloader Platform Differences #2

oclyke opened this issue Jul 11, 2019 · 0 comments

Comments

@oclyke
Copy link
Contributor

oclyke commented Jul 11, 2019

Intro

Some initial investigation indicates that there may be a dependency on timing of the accompanying Python script on the host computer. On Windows the timing is sufficient to successfully bootload, but on MacOSX (and possibly Linux) the timing causes a failure when using the Artemis Bootloader.

Background

  • Most testing of the Artemis Bootloader (also called "SparkFun Variable Loader" or SVL) has occurred on Windows machines.
  • Deploying the Apollo3 Arduino Core increased the amount of testing that could be done on Mac and Linux, many thanks to helpful users
  • This issue was found after looking into this issue: Upload issue SparkFun Edge

Details

  • Differences between Windows and MacOSX (and perhaps Linux) within SVL Python script: (Can be observed in Logic LA captures SecondResetCapture (Mac) and GoodWindowsRef (Windows)
    • Time to switch USB-serial baud rate. (Windows: ~15 ms, MacOSX: ~37 ms)
    • Control lines toggle on change baud rate. (Windows: no control toggle on baud change, MacOSX: Control lines toggle causing another reset after changing baud rate)

Explanation

The differences above cause the bootload process to fail, each for their own reasons.

  • The time to switch can cause the bootloader to hang if the computer does not send"BL_COMMAND_COMPUTER_READY" before the bootloader sends "BL_COMMAND_NEXT_FRAME"
  • The second reset will wreak havoc on the baud rate negotiation by losing volatile baud rate data.
@oclyke oclyke changed the title Bootloader Timing Dependency Bootloader Platform Differences Jul 11, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant