Pytrack and Pysense firmware release 0.0.2



  • Hello,

    We have released a new firmware for Pytrack and Pysense. The version is 0.0.2. These are the release notes:

    • Add possibility to wakeup via the Pysense/Pytrack pushbutton.
    • Correct the timing of the deep sleep cycles.
    • Correct the generic read/write modify function to control the PIC microcontroller.

    The instructions to apply the new firmware can be found in: https://docs.pycom.io/pycom_esp32/pycom_esp32/toolsandfeatures.html#updating-pysense-and-pytrack-firmware

    New link: https://docs.pycom.io/chapter/pytrackpysense/installation/firmware.html

    We will publish the libraries to use the GPS and the sensors on the board tomorrow.

    Cheers,
    Daniel



  • @jmarcelino s/n is "1713000002"
    @Pajarraco sorry I should have said that I already used those drivers... but strangely, I had to manually select the drivers as the device appeared as "unknown device" and windows 10 didn't ask me to choose what to do automatically



  • @titi974
    There is something very weird with your Pysense.

    1209:2002 is the USB ID for the PIC16F1-USB-DFU-Bootloader project which sounds like what Pycom used here.

    However the firmware image and indeed the boards I've seen all use 04d8:f011. I wonder if yours is a very early version or if something slipped through production. Can you post your serial number? (sticker underneath)

    Maybe someone from Pycom can chime in on this, it's a head scratcher.



  • @titi974 yes, I read that you have followed every steps... Well, maybe you can try to install the drivers which @jmarcelino has provided some posts bellow and retry the procedure



  • @Pajarraco so, if you have read the entire thing, I've said that my problem is not that it's not recognised, it's that the IDs do not match...
    And, on windows I get the exact same results as I've had on mac (see my first answer to understand the thing about device IDs that do not match). And yes I'm doing the procedure that you described.
    I've been trying to make this work with my colleague since this morning so I think we've tried every possible way to launch it ahah and on different pcs and macs too.



  • @titi974 Wel, if you are in Windows and you press the push buttom while you plug in, and then you maintein your finger one second more, you could see when you run the first command Cannot open device (id) DFU or something like that. By the way, if you run it correctly, you can heard the sound when a device is pluged in, and 7 seconds laters the sound that something has pluged out(despite that maybe it's still pluged in)

    If that doesnt work, you have to repeat the process sometimes. (plug in while pressing the buttom and running the first command)To me it didnt work the first attempts but I could obtain an output different than "dfu-util: No DFU capable USB device available"



  • Hello, I followed every steps, both on windows or mac and I can't upgrade my pysense...
    So, to be clear, I'll only speak about the mac part.
    I installed dfu-util with brew, so I've the latest version (0.9).
    If I try to upload the firmware without specifying the device ID, I get :
    "dfu-util: No DFU capable USB device available"

    When I use dfu-util -l to see dfu capable devices plugged in my mac, I see two devices :
    "Found Runtime: [05ac:8290] ver=0146, devnum=6, cfg=1, intf=5, path="20-8", alt=0, name="UNKNOWN", serial="UNKNOWN"
    Found Runtime: [1209:2002] ver=0001, devnum=14, cfg=1, intf=0, path="20-5", alt=0, name="UNKNOWN", serial="UNKNOWN""

    The second one is pysense since it disappears when I unplug it.

    So I tried to force the device with "dfu-util --device 1209:2002 -D pysense_0.0.2.dfu" and this is what I get :
    "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/

    Opening DFU capable USB device...
    ID 1209:2002
    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
    dfu-util: Error: File ID 04d8:f011 does not match device (1209:2002 or 1209:2002)"

    It seems like my pysense doesn't have the good ideas... what should I do ?



  • @livius @jmarcelino In my case I was obtaining the same error:
    dfu-util(-static).exe -D pytrack_0.0.2.dfu
    Cannot open DFU device 04d8:f014
    No DFU capable USB device available

    However, running the same with this option finally flashed the Pytrack!

    dfu-util-static.exe --device 04d8:f014 -D pytrack_0.0.2.dfu

    Hope that this can help to whom have the same problem!

    Edit: I should add that before running that command I installed the driver packages which provided @jmarcelino and it didnt work after several attempts.



  • @jmarcelino said in Pytrack and Pysense firmware release 0.0.2:

    Sorry should have figured you'd have done that already :-)

    for us we can assume this always ;-)



  • @livius
    Sorry should have figured you'd have done that already :-)

    Not sure what it can be, but if pressing reset works I guess it's the WiPy crashing and not the Pysense shutting it off. Sounds like that was the question Daniel had.



  • @jmarcelino said in Pytrack and Pysense firmware release 0.0.2:

    Not sure how many checks the DFU stuff uses (would think it was reliable since it's a USB.org standard) but maybe try flashing it again?

    I have tried before 5 times before written here
    also with different cable on different USB port - no difference
    and with really short cable (used for near everythin programing)
    e.g. white cable below
    0_1497120825859_upload-0244a2c0-5595-4f1e-b223-ccfb034a6530

    Does the Pysense after update appear as a USB serial device using the usbser driver?

    yes
    0_1497120892968_upload-a5383b83-7006-438e-b27a-1284065bc70b



  • @livius
    Does the Pysense after update appear as a USB serial device using the usbser driver?

    0_1497119839049_Screen Shot 2017-06-10 at 19.15.17.png



  • @livius
    No problem here with the Pysense (also upgraded using Windows) and a LoPy (sorry I don't have a WiPy to test)

    Not sure how many checks the DFU stuff uses (would think it was reliable since it's a USB.org standard) but maybe try flashing it again?



  • @daniel
    it revive by pressing reset button on Wipy2
    and back hang

    UPDATE
    pytrack is ok only pysense is affected



  • @livius after it hangs, does it revive by resetting the WiPy 2, or do you have to power cycle the pysense?



  • @daniel
    for me pysense + wipy2 hangs after few seconds

    upgrade was ok

    dfu-util-static.exe -D pysense_0.0.2.dfu
    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 dfu-util@lists.gnumonks.org
    
    Match vendor ID from file: 04d8
    Match product ID from file: f011
    Opening DFU capable USB device...
    ID 04d8:f011
    Run-time device DFU version 0100
    Claiming USB DFU Runtime Interface...
    Determining device status: state = dfuIDLE, status = 0
    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!
    

    wipy2 after fresh

    os.mkfs('/flash')
    

    with current firmware 1.7.2.b1 (official build)

    i put 6 times os.uname() but only first 2 i get response and then it hang totally
    all interfaces go down - wifi and uart
    no info on COM/response on any command and no output

    rst:0x1 (POWERON_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
    ets Jun  8 2016 00:22:57
    
    rst:0x10 (RTCWDT_RTC_RESET),boot:0x17 (SPI_FAST_FLASH_BOOT)
    configsip: 0, SPIWP:0x00
    clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
    mode:QIO, clock div:2
    load:0x3fff9010,len:12
    ho 0 tail 12 room 4
    load:0x3fff9020,len:388
    load:0x40078000,len:11412
    load:0x4009fc00,len:848
    entry 0x4009fd9c
    MicroPython v1.8.6-650-g9bacbbd4 on 2017-06-09; WiPy with ESP32
    Type "help()" for more information.
    >>> os.uname()
    (sysname='WiPy', nodename='WiPy', release='1.7.2.b1', version='v1.8.6-650-g9bacbbd4 on 2017-06-09', machine='WiPy with ESP32')
    >>> os.uname()
    (sysname='WiPy', nodename='WiPy', release='1.7.2.b1', version='v1.8.6-650-g9bacbbd4 on 2017-06-09', machine='WiPy with ESP32')
    >>> 
    

    i moved this wipy to expansion board and it work without any problem



  • @jmarcelino thanks for the instructions!
    @daniel where can we find examples and libraries?
    regards



  • @jobbyworld
    If you update to dfu-util version 0.8 or later it should pick up the correct ids from the file to filter on



  • @joe2612
    on macbook pro :
    I advice to specify device since another device is in dfu mode

    dfu-util -l
    dfu-util 0.7
    
    Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2012 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to dfu-util@lists.gnumonks.org
    
    Found Runtime: [05ac:8289] devnum=0, cfg=1, intf=3, alt=0, name="UNDEFINED"
    Found Runtime: [04d8:f011] devnum=0, cfg=1, intf=0, alt=0, name="UNDEFINED"
    

    so i advice to specify device :

    dfu-util --device 04d8:f011 -D pysense_0.0.2.dfu 
    dfu-util 0.7
    
    Copyright 2005-2008 Weston Schmidt, Harald Welte and OpenMoko Inc.
    Copyright 2010-2012 Tormod Volden and Stefan Schmidt
    This program is Free Software and has ABSOLUTELY NO WARRANTY
    Please report bugs to dfu-util@lists.gnumonks.org
    
    Filter on vendor = 0x04d8 product = 0xf011
    Opening DFU capable USB device... ID 04d8:f011
    Run-time device DFU version 0100
    Claiming USB DFU Runtime Interface...
    Determining device status: state = dfuIDLE, status = 0
    WARNING: Runtime device already in DFU state ?!?
    Found Runtime: [04d8:f011] devnum=0, cfg=1, intf=0, alt=0, name="UNDEFINED"
    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
    Dfu suffix version 100
    bytes_per_hash=327
    Copying data from PC to DFU device
    Starting download: [##################################################] finished!
    state(2) = dfuIDLE, status(0) = No error condition is present
    Done!
    ```


  • PySense and PyTrack DFU use different USB IDs so I generated two driver packages for Windows using libusbK (I don't know how to make a single one...)

    PySense: http://metavurt.net/software/drivers/PySense_DFU.zip
    PyTrack: http://metavurt.net/software/drivers/PyTrack_DFU.zip

    After installing the driver you need download dfu-util for Windows from http://dfu-util.sourceforge.net/releases/dfu-util-0.8-binaries/win32-mingw32/ , I recommend the static compiled binary to avoid any library issues, you only need one executable: dfu-util-static.exe

    Place the executable and the dfu firmware from Pycom together and get ready to run:
    dfu-util-static.exe -D pysense_0.0.2.dfu or
    dfu-util-static.exe -D pytrack_0.0.2.dfu depending on your firmware and board

    Then connect the board with the button pressed down, release the button after one second and run the command above - remember you only have 7 seconds to do so!

    The process will look like this
    0_1497008523329_Screen Shot 2017-06-09 at 12.40.37.png



Pycom on Twitter