One Click FEZ Firmware Updater

After having some trouble to update the firmware of my FEZ Panda I decided to make a program who would do that the “FEZ” way.

It automatically detects when a FEZ in Boot Loader mode is connected to the PC and selects the right serial port (GHI Boot Loader), all you have to do is click a button !

I put it on CodePlex: http://fezfirmwareupdater.codeplex.com

Yeah, I know FEZ Panel can update the firmware too, I realized that when I almost finished, but this one is simpler.

Looking through the source, it appears as though this will only update USBizi based boards. IS there any way to query the bootloader to find out what the target is based on and automatically choose the respective firmware?

I was chatting with Gus about this a few months ago in the chat room. every board, except the EMX module, will return a unique ID number when queried. I don’t recall the command but it seemed to be a fairly straightforward thing to do.

So you just look for a UID, and if there isn’t one it’s an EMX?

What about the ChipworksX?

Yes, it only works with USBizi boards because I only have a Panda to test.

I looked over the code of FEZ Panel and it tries to detect the board type, I don’t know if the code really works

Again, the only thing my program does better than FEZ Panel is to automatically, in real time, select the right serial port.

Well, updating firmware on the emx also consist of two parts. The tinybooter and the hex files… Would that program be able to do that anyway?

I tried it with my Domino and I just got “Transfer failed”.

Might i suggest you look at what the latest firmware is on this website and notify the user if they dont have the latest SDK installed. With hard coded folders it isn’t very future proof :frowning:

@ Chris : I only have the Panda to test, I’ll add more detailed messages

@ MarkH : that’s a good idea but I’m not sure how to implement it, maybe use the HTTP HEAD verb to get the las modified date…

A feature I’l like to implement is to verify the firmware file, maybe there is a checksum or signature I could check ? And would be nice to get the firmware version from the file.

Why not include the firmware in the executable?
This would mean you would need to update the resource with new firmware, but it would be more “fool proof”. Hard coded folders will not work.

Parse this page for SDK version:
http://www.tinyclr.com/release-notes/

I can make it even more FEZ:

[url]http://www.tinyclr.com/api.php?query=release-sdk-version[/url]
[url]http://www.tinyclr.com/api.php?query=beta-sdk-version[/url]

[quote]I can make it even more FEZ:

http://www.tinyclr.com/api.php?query=release-sdk-version
http://www.tinyclr.com/api.php?query=beta-sdk-version
[/quote]

Sweet!

Josh … you are da man! That is truly FEZ

-Eric

Would you also be able to make a list with hashes of all the files for the current SDK? Something that will be updated with each new SDK version.

randoom! Great work man, can I help in any way? I can implement the update feature if you want checking the page for version and the current version on the board? or something else? just say so.

Nice Josh! ;D

…nvm…

@ Foekie (Robert) : That would mean a new version of the program will be needed for each new firmware release, not ideal …
If you want to use your FEZ with the new firmware you’d need the new SDK anyway.
I’ll try to implement a smart localization algoritm for the firmware file.
Also there is an option to manually select the file (“Browse…” button is not yet implemented)

@ Howler (Josh) : nice, thanks ! Would it be possible to have the firmware checksum too ? (CRC32, MD5 …)

@ Ramon : Thanks fot the offer ! Do you have one of the following : FEZ Rhino, FEZ Domino, FEZ Mini ? If so maybe test it and if it doesn’t work see why ? :slight_smile:

You can contact me : catalin dot dicu at g mail dot com

There really is no way to create a hash on the SDK files every time it’s uploaded without adding additional work when the SDK is uploaded. I’m open to ideas if you have them.