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,
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)|
|Expansion Board v3||
Note: USB Vendor ID is always
$ brew install dfu-util
port install libusb dfu-util
$ sudo apt-get install dfu-util
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 Driverbutton immediately. If the driver was unsuccessful, repeat from step 1. If all went sucessfully, you will see the device show up in
Device Manageras a LibusbK device.
If you accidentally installed the
libusbkwhile 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.
To enter update mode follow these steps:
|Expansionboard 3.1||Pygate||Pysense||Pysense 2.0 X||Pytrack||Pytrack 2.0 X||PyScan|
$ 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!
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
f014is 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
f013is USB PID). This means the bootloader verified the firmware and it boot-up correctly.