To update the firmware on any of the expansion boards, please see the following instructions. The firmware of can be updated via the USB port using the terminal tool, DFU-util.
DFU-util
The latest firmware DFU file can be downloaded from the links below:
Make sure to choose the correct firmware version for your expansion board. both 3.0 and 3.1 versions have version numbers in the silkscreen on the back of the board. See the image below for examples highlighted in Red.
In normal operation, the expansion board is in Application mode. However when we want to update the firmware, we should put the board in DFU (Device Firmware Upgrade) mode. This is a special mode that allows us to alter the firmware of the device. Entering DFU mode changes the Product ID of the device, such that we will never accidentally update the firmware. To actually upgrade the firmware, we need to install the DFU-Util tool. Below, the USB Product ID is depicted for each case. You can check the Product ID for your board using lsusb on macOS and Linux, and checkin the device manager in Windows:
lsusb
0xED15
0xED14
0xF014
0xF013
0xF011
0xF012
0xEF37
0xEF38
0xEF99
0xEF98
Note: USB Vendor ID is always 0x04D8
0x04D8
homebrew
$ brew install dfu-util
If using MacPorts:
MacPorts
port install libusb dfu-util
$ sudo apt-get install dfu-util
Windows
Download and install DFU-util v0.9
For Windows, we will need to install separate drivers for the board to recognized as a SG Wireless board in DFU mode.
To install the drivers, the board must be in DFU-mode:
“Install Driver
Device Manager
If you accidentally installed the libusbk while the device was in Application mode, then the need to update the driver to the Serial USB (CDC) driver has to be installed for application mode. This will allow Windows to allocate a COM port, which is required for REPL console.
libusbk
Serial USB (CDC)
To enter update mode follow these steps:
.dfu
sudo dfu-util -D pytrack_0.0.8.dfu
dfu-util-static.exe -D filename.dfu
If the update was successful, “Done!” should appear in the bottom of the command prompt. The output should look like the following:
dfu-util 0.9 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2016 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to http://sourceforge.net/p/dfu-util/tickets/ Match vendor ID from file: 04d8 Match product ID from file: f014 Opening DFU capable USB device... ID 04d8:f014 Run-time device DFU version 0100 Claiming USB DFU Runtime Interface... Determining device status: state = dfuIDLE, status = 0 dfu-util: WARNING: Runtime device already in DFU state ?!? Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 0100 Device returned transfer size 64 Copying data from PC to DFU device Download [=========================] 100% 16384 bytes Download done. state(2) = dfuIDLE, status(0) = No error condition is present Done!
Using lsusb command, the device should be visible in both normal and bootloader modes.
For example, a Pytrack board is visible as either:
Bus 020 Device 004: ID 04d8:f014 Microchip Technology Inc. Application Specific Device
f014
Bus 020 Device 005: ID 04d8:f013 Microchip Technology Inc. Pytrack Serial: Pyabcde0
f013