Production Firmware-Update Utility Requirements #126
Replies: 1 comment
-
Not sure where else to leave this, so I’ll just continue the discussion here. Updating Firmware in an Experiment-Driven FashionGiven the recent push in harp-tech toward unified releases of firmware, interface, and Bonsai packages, we're in a great position to "lock" the firmware versions needed to run specific experiments. Here's what I have in mind:
The idea is simple: we treat the
Open QuestionsWhat about Python or other software?The current This approach generalizes to any software stack, since Finding a .NET Package from a Given BoardI'm not sure this is a real problem. If software is driving the firmware version, how do we determine the correspondence between an interface and a board? A natural solution is using
We can support dry-run options and no-downgrade flags for safety and control. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Some of the combined efforts from me and @PathogenDavid had me thinking I should capture the requirements for a firmware-update utility from the Allen-Institute side.
Motivation
We currently have ~99 Allen Harp Devices deployed across ~30 rigs and a few testbenches. Each of these devices is connect to a rig PC which runs the experiment. To update firmware, we need physical access to the Harp device such that we can press the BOOTSEL button and upload the firmware manually from a PC connected to the device.
We would like some form of automation to ensure that all rigs are running up-to-date firmware and to deploy new firmware across all rigs without requiring physical access to the device.
Background
We have made light efforts to try to streamline this process by:
but we are still missing capabilities in a few places to automate firmware updates to all Harp devices.
User Story
From the perspective of someone maintaining a collection of Production rigs, we'd like to inspect the version of the firmware running on any Harp device on any rig and possibly update specific device instances or all devices of a specific type. We'd also like the ability to periodically schedule an update such that any rig can self-update its Harp devices when new firmware is released online.
Ultimately, the number of Harp devices in production at AIND is set to grow to ~130 devices next year (at least), so we'd like a streamlined way to push fresh updates while minimizing/eliminating continuous labor to the people who maintain them.
Requirements
We'd like an automation solution (utility/script/application/etc.) with the following features:
Assumptions
Examples
Here are some example usages
Bonus:
More examples here!
References
Beta Was this translation helpful? Give feedback.
All reactions