-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Description
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.
Metadata
Metadata
Assignees
Labels
No labels