To update the firmware on any of the expansionboards, please see the following instructions. The firmware of can be updated via the USB port using the terminal tool, 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 expansionboard 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:
Board | DFU bootloader (update mode) | Application firmware (normal mode) |
---|---|---|
Pygate | 0xED15 |
0xED14 |
Pytrack | 0xF014 |
0xF013 |
Pysense | 0xF011 |
0xF012 |
Pyscan | 0xEF37 |
0xEF38 |
Expansion Board v3 | 0xEF99 |
0xEF98 |
Note: USB Vendor ID is always 0x04D8
MacOS
homebrew
:$ brew install dfu-util
MacPorts
:port install libusb dfu-util
Linux
$ 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 Pycom board in DFU mode.
To install the drivers, the board must be in DFU-mode:
“Install Driver
button immediately. If the driver was unsuccessful, repeat from step 1.
If all went sucessfully, you will see the device show up in Device Manager
as a LibusbK device.If you accidentally installed the
libusbk
while the device was in Application mode, then the need to update the driver to theSerial 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.
To enter update mode follow these steps:
.dfu
file toExpansionboard 3.1 | Pygate | Pysense | Pysense 2.0 X | Pytrack | Pytrack 2.0 X | PyScan |
---|---|---|---|---|---|---|
] |
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
is USB PID). It is active for just 7-8 seconds, if the MCLR button was pressed just before plugging in the USB connector.Bus 020 Device 005: ID 04d8:f013 Microchip Technology Inc. Pytrack Serial: Pyabcde0
f013
is USB PID). This means the bootloader verified the firmware and it boot-up correctly.