Skip to content

Updating Your Device

bunnie edited this page Jul 22, 2022 · 82 revisions

You can update your device by running the Precursor Updater. The updater is available as a package on the PyPi test site. Please report any issues encountered installing and running the updater (this is literally the first time we've tried publishing a Python package).

Platform support:

  • Requires Python3.8+ and PyUSB
    • Linux
    • Windows
    • Mac

A typical invocation of the Precursor Updater is as follows:

python3 .\precursor_updater.py --bleeding-edge

This would update your device to use the latest version of Xous in the CI builds. Without --bleeding-edge, it will load the latest stable release.

Once you have finished the update, you will need to reset the Precursor using a paperclip, as shown in the image below:

Resetting a Precursor after an update

Only perform the reset if the update was successful. If an update fails, you can try re-running it before you punch the reset button.

Troubleshooting

Update performance is slow on machines with buggy USB stacks, such as M1 Macs and AMD-based PCs. If you have one of these, try running the update on a Raspberry Pi.

Windows 10

  • You will need to install python3 from the Windows App store if you don't already have it
  • use zadig to remap Precursor pvt2's Windows driver to libusb-win32
  • Run the command from a Powershell; elevated privs are not necessary after using zadig.

Users have reported trouble navigating the Zadig UI. Here is a guide:

zadig screenshot

  1. Select "Precursor pvt2" from the large pull-down box. Click the "Edit" checkbox if the menu is blank or unselectable.
  2. Select the driver to be "libusb-win32", using the red highlighted arrows, as shown in the right text box. You can ignore the text in the left box.
  3. Click the "Install Driver" (or "Reinstall driver") button (highlighted in green) once these settings are made. This step can take several minutes.

For Developers and Bricked Devices

There's a very comprehensive guide on how to do updates, including manual and failsafe methods, at Updating (Troubleshooting). For OG devs, this is also the original landing page for Updating.