Difference between revisions of "Sync Box Firmware Upgrade using dfu-programmer"

From MCEWiki
(Programming)
Line 17: Line 17:
  
 
== Programming ==
 
== Programming ==
To enable programming of the sync box, do the following:
+
See the procedure on the [[Sync Box firmware#Microcontroller_programming_.28.hex_file.29|Sync Box firmware]] page for details on how to get the bootloader to enter reprogramming  mode.  This will cause it to present itself as a USB device to your computer.  When the device is properly detected, it will show up in <tt>lsusb</tt> as something like:
# Start with the sync box powered off and disconnected from USB
 
# Depress ''both'' the RESET switch and the PS_EN switch
 
# Power on the sync box
 
# Release the RESET switch
 
# Release the PS_EN switch
 
# Plug in the USB cable
 
 
 
When the device is properly detected it will show up in <tt>lsusb</tt> as something like:
 
 
  $ lsusb
 
  $ lsusb
 
  Bus 002 Device 049: ID 03eb:2ffd Atmel Corp. at89c5130/c5131 DFU bootloader
 
  Bus 002 Device 049: ID 03eb:2ffd Atmel Corp. at89c5130/c5131 DFU bootloader

Revision as of 16:35, 7 November 2016

This describes how to upgrade Sync Box Firmware using the free dfu-programmer on linux. This only applies to the microprocessor; often it is also necessary to upgrade the CPLD.

Installation

The dfu-programmer software can be installed in Ubuntu like this:

sudo apt-get install dfu-programmer

Make sure your version supports the sync box device (at89c5131):

$ dfu-programmer --version
dfu-programmer 0.6.1
$ dfu-programmer --targets
targets:
   at89c51snd1c       at89c51snd2c       at89c5130          at89c5131
   at89c5132          at90usb1287        at90usb1286        at90usb1287-4k
   ...

Programming

See the procedure on the Sync Box firmware page for details on how to get the bootloader to enter reprogramming mode. This will cause it to present itself as a USB device to your computer. When the device is properly detected, it will show up in lsusb as something like:

$ lsusb
Bus 002 Device 049: ID 03eb:2ffd Atmel Corp. at89c5130/c5131 DFU bootloader

To prove things are working, dump the contents of the device into a file:

$ sudo dfu-programmer at89c5131:<USB_BUS>,<USB_DEVNUM> dump > part_dump.bin

where <USB_BUS> is the bus number from lsusb and <USB_DEVNUM> is the device number from lsusb. For the example lsusb output above, this would give us:

$ sudo dfu-programmer at89c5131:2,49 dump > ./part_dump.bin

The contents of part_dump.bin can then be inspected with hexdump -C ./part_dump.bin to confirm it's the sync box code and not some other nonsense. (It's also good to keep a copy of the previous program; if the new program doesn't work, you can always revert.)

Then to program the device the syntax is:

$ sudo dfu-programmer at89c5131:<USB_BUS>,<USB_DEVNUM> flash ./sync_box_v22_26sept2014.hex

External links