This is for core owners who would like to upgrade their factory firmware from V01 to the V02 that is on the new core manufactured!
Continue only if you understand the possible risk of ending up with a non-functioning core (which still can be revived) which you have to troubleshoot
The way to tell which FR-firmware now is to enter Listening Mode (Press Mode button for 5s)
Using a Terminal, enter ‘w’ to send Wifi Credentials
If your core prompts you for 'Security type', you are on V02 and you don’t need to upgrade
If you are only asked for SSID and Password, then you are on V01
*Allow me to say that this is not the best way to determine the FF-firmware in future versions (V03, V04, V05) but right now that’s the key difference between V01 & V02
This tutorial will be updated in future should there by a way to determine the Core FF-firmware Version, maybe just a simple ‘V’ command over usb for example
Pre-check!
Make sure you have already done installed the DFU-driver for Spark Core in order to continue.
If you have not or have no idea what I just mentioned…you probably need to do it
The command is the easy part, it is the build, minor number creation, weather the working directory is modifies, and not rebuilding that file each time part of it that requires the work.
Major, Minor and Rev can come from the const in the MakeFile?
build come from the version control system. (the trick is making one number from three repos (the knot) and not making it a human dependent task.
the timestamp would reflect the time of the build.
Like I said above and in the last message to get the build is tricky but it can be done with make. The timestamp is worse.
I see the total revision number solution best solved with an makefile , script an API for reading and embedded ID and, some linker magic.
But yes you can do all but the timestamp statically, but guarens at some point, late one night, after a marathon sprint, someone will forget to “bump the rev”
thanks for the tutorial, I really want to update my sparkcore since I am on V1 and having some troubles that V2 promises to help.
I am not able to reproduce your steps, what am i doing this wrong? besides using a win7 machine most of the links are all about linux. sorry, probably should get a linux box for this i know.
but after I was able to get the dfu drivers installed: http://sourceforge.net/projects/libwdi/files/zadig/
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=0, name="UNDEFINED"
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=1, name=“UNDEFINED”
so I think (cool it’s working) but back up command was not working, mostly I get:
Filter on vendor = 0x1d50 product = 0x607f
Opening DFU capable USB device… Cannot open device
so I figure what the heck and tried the load command and got this response:
Error: Invalid dfuse address: 0x00020000:leave
hopefully this is a simple noob mistake ,I am trying to follow your directions but not doing so hot. any advice , or link to reading material is appreciated.
@kennethlimcp you know what they say “it’s hard to make things idiot proof since idiots figure out new ways to break things every day.”
Since this is my 1st micro controller I did not have any of the prerequisites installed on my machine, this picture might help explicitly point out what a noob should look for. (I think…OR it will help you see something else I have set up wrong)
@Dave, thanks for the link to the utility, now I am getting new results.
the back up command get farther but as they say “close but no cigar”.
Filter on vendor = 0x1d50 product = 0x607f
Opening DFU capable USB device… ID 1d50:607f
Run-time device DFU version 011a
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=1, name=“UNDEFINED”
Claiming USB DFU Interface…
Cannot claim interface
so who needs a backup anyway…the load command says the same thing.
T:\SPARK-core\dfu07>dfu-util -d 1d50:607f -a 1 -s 0x00020000:leave -D core-firmware.bin
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 = 0x1d50 product = 0x607f
Opening DFU capable USB device… ID 1d50:607f
Run-time device DFU version 011a
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=1, name=“UNDEFINED”
Claiming USB DFU Interface…
Cannot claim interface
T:\SPARK-core\dfu07>
Should I be getting the 2 devices when I do the list command? does this look right to you?
T:\SPARK-core\dfu07>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 DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=0, name=“UNDEFINED”
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=1, name=“UNDEFINED”
I’m guessing you hit another gotcha on Windows, some operating systems require elevated access to write to devices using something like dfu-util. Try running that process in an Administrator Command Prompt, and maybe that’ll fix it?
thanks for the continued help. I do have the files in the same directory (thanks for checking), and even when running CMD as admin I am getting the “can not claim interface”.
I am trying to do some reading seems like this error means dfu might be seeing more than one interface. But not sure since dfu only reports is a single interface:
T:\SPARK-core\dfu07>dfu-util.exe -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 DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=0, name="UNDEFINED"
Found DFU: [1d50:607f] devnum=0, cfg=1, intf=0, alt=1, name="UNDEFINED"
T:\SPARK-core\dfu07>
I am all set up, had the wrong DFU driver. thanks to @kennethlimcp I am now on V2.
once I got the right version to reinstall the DFU driver for windows http://zadig.akeo.ie/