PyTrack not recognised as DFU device
Hi there, I'm having an issue upgrading the firmware of a pytrack, via my ubuntu machine. I have followed the instructions within the documentation, having downloaded dfu-util, and this is the output I receive when running
dfu-util -D pytrack_0.0.4.dfufrom the directory in which the firmware file is located:
dfu-util 0.8 Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2014 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to email@example.com Match vendor ID from file: 04d8 Match product ID from file: f014 dfu-util: Cannot open DFU device 04d8:f014 dfu-util: No DFU capable USB device available
I have also tried using the -S flag for
dfu-utilbut to no avail. Anyone have any clues as to what I might have missed here?
jcaron last edited by
@pyoneer It's mostly a matter of timing. Too early and the device is not yet up. Too late and the Pysense has exited DFU mode and booted normally. IIRC the window is about 7 seconds.
pyoneer last edited by pyoneer
sudo tail -f /var/log/kern.logwas indeed helpful! Another marker is btw the displayed info:
Apr 30 15:51:51 tpX270 kernel: [81026.317961] usb 1-4.2: New USB device found, idVendor=04d8, idProduct=f011, bcdDevice= 0.08
You want to look for
idProduct=f011. Compare that ID with the table on the firmware update guide. For the pysense expension f011 indicates update mode.
You can also retrieve the same information with the simpler:
lsusbcommand which should yield (among others):
Bus 001 Device 028: ID 04d8:f011 Microchip Technology, Inc.
Again the info
f011is what you are interested in.
However, even while being in update mode I got the error message from above. What worked for me was to keep holding the button on the Pysense board while executing:
sudo dfu-util -D pysense_0.0.8.dfu
and a little update: I just had to do a firmware update on a second Pysense expansion board. Things didn't work as before, even though the board was clearly in update mode. This time I just repeated the process a couple of times (unchanged) until it worked ... there seems to be some randomness :(
This is a very long shot but can you try to disable Bluetooth in your Dell BIOS and try dfu-util again?
@jmarcelino Both are exactly the same version (16.04) The only reason I mention drivers is because I know Dell have to install some proprietary ones when you buy Ubuntu direct from them. But, as you say, it could very well be a case of it being more locked down. I've no real experience in what to do about that though, any thoughts?
There is no driver, dfu-util communicates directly via libusb.
Are the two Ubuntu versions different? Perhaps one is more locked down?
Success! Worked on the desktop first time! To that end though, does anyone have an idea as to how I check which driver I have/do not have on my laptop... and which one should I have?
@Xykon Apologies for the late reply, day job getting in the way. I ran
tailand saw the update mode output you described, but
dfu-utilstill won't recognise PyTrack as a DFU device. Could this perhaps be a driver issue? Am going to attempt on my desktop (also ubuntu, but not a Dell) now to see if there is any difference.
@jcaron 100% pure USB, no battery at all
jcaron last edited by
@dandrews just to be sure, you have only USB and no battery connected, right?
I would suggest you run
sudo tail -f /var/log/kern.login a second terminal window.
If the board is discovered in DFU update mode you should see the following:
Sep 15 22:03:37 UDOO-X86 kernel: [ 3803.217901] usb 1-2: new full-speed USB device number 34 using xhci_hcd Sep 15 22:03:37 UDOO-X86 kernel: [ 3803.358711] usb 1-2: New USB device found, idVendor=04d8, idProduct=f014 Sep 15 22:03:37 UDOO-X86 kernel: [ 3803.358728] usb 1-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
Once you see this message run
sudo dfu-util -D pytrack_0.0.4.dfuwithin 7 seconds in the other terminal window.
If you see the following instead your board is running in normal mode and dfu-util will not work:
Sep 15 22:03:46 UDOO-X86 kernel: [ 3812.526338] usb 1-2: new full-speed USB device number 35 using xhci_hcd Sep 15 22:03:46 UDOO-X86 kernel: [ 3812.669469] usb 1-2: New USB device found, idVendor=04d8, idProduct=f013 Sep 15 22:03:46 UDOO-X86 kernel: [ 3812.669486] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 Sep 15 22:03:46 UDOO-X86 kernel: [ 3812.669499] usb 1-2: Product: Pytrack Sep 15 22:03:46 UDOO-X86 kernel: [ 3812.669510] usb 1-2: Manufacturer: Pycom Sep 15 22:03:46 UDOO-X86 kernel: [ 3812.669518] usb 1-2: SerialNumber: Py343434 Sep 15 22:03:46 UDOO-X86 kernel: [ 3812.676628] cdc_acm 1-2:1.0: ttyACM1: USB ACM device
No, running with sudo gives the same output
Are you running dfu-util with sudo? Could be a permissions problem
Yeah, I can connect to the pymakr atom plugin with it. Which is why Im so surprised this doesn't work. I don't suppose there's a means of pushing the firmware via atom?
Does that same cable work to get a serial terminal?
I did indeed. held the button, connected USB, waited 1 second and ran the command within 7 seconds; no joy
Did you connect it to USB while pressing the button at the same time?