The ζ1 Audio Widget asynchronous USB-I²S module

Audio Widget firmware for ζ1

The ζ1 comes pre-flashed with firmware. You don't normally need to re-flash it, unless it's for version upgrade. When available, upgrades are announced in the AMB DIY audio forum.

The firmware version number (a date code) is reported in the serial number field of ζ1's USB device data. On Linux, this is logged in the syslog when the ζ1 module is connected to the computer. You can also see it in the "lsusb -v" command output, in the iSerial field pertaining to the zeta1 device data. On Windows, use the Thesycon USB Descripitor Dumper utility, and look for the iSerialNumber field pertaining to the zeta1 device.

Downloading the firmware binary image

The firmware binary image file can be downloaded here:
  • Download: ζ1 firmware binary image
  • After extracting the downloaded ZIP archive, you will find the firmware binary image file: zeta1_100_fw_YYYYMMDD.elf, where YYYYMMDD is the date code which serves as a version number.

    Please note that this firmware is for use with the AMB ζ1 module only. To avoid configuration conflicts and potential support issues, do not flash this firmware on other Audio Widget based devices. Firmware binaries for such devices should also never be flashed on the ζ1. In particular, AMB's firmware identifies the ζ1 as a "AMB zeta1 USB-I2S Audio-Widget", and has two unique pairs of USB VIDs/PIDs.

    Flashing the firmware on Linux

    1. Download and extract: ζ1 Linux firmware tools

      You'll see these files under the zeta1_linux_fw_tools directory:

      • program-widget - a shell script wrapper for dfu-programmer
      • dfu-programmer - the program that does the actual work (i586)
      • dfu-programmer64 - 64-bit version of dfu-programmer (x86_64)
      • dfu-programmer-audio-widget.tar.gz - source code of the modified dfu-programmer
      • README.txt - contains some instructions

      Move the program-widget and dfu-programmer files into a folder that's contained in your PATH environment (e.g., /usr/local/bin). If you put these files somewhere other than /usr/local/bin, then edit the program-widget script to fix the path to where you installed dfu-programmer.

      If you're running on a x86_64 system, you can use the dfu-programmer64 executable in place of dfu-programmer (rename it).

      This step needs to be done only once to install the needed programs. You can proceed to step 2 directly the next time you flash the firmware.

    2. Mate the ζ1 to the main board (such as γ1.5 or γ3) and connect a USB cable between your computer and the ζ1. Then, press and hold both the Prog and Reset buttons, release the Reset button first, wait a short moment, then release the Prog button. At this point the external LED should be off.

    3. Log in as root and type the following command at a shell prompt:

      program-widget widget.elf
      where widget.elf is the name of the firmware binary image file (e.g., zeta1_100_fw_YYYYMMDD.elf) that you downloaded. If you want to do this as a user without superuser priviledge, see the README.txt file for instructions.

    4. The following is what you'll see.


    5. When you see the shell prompt again, and there are no errors, then the flash is successful. Press and release the Reset button to restart the ζ1 module's onboard MCU.

    Flashing the firmware on Windows

    The firmware is flashed via the batchisp program which is part of the Flip package from Atmel. Follow these steps:
    1. Install the Java runtime environment (32-bit version), if you don't already have it. If you have the 64-bit version installed, you still need to install the 32-bit version. Both versions can co-exist on the system.

    2. Install the C++ runtime from Microsoft if you don't already have it.

    3. Install Atmel Flip 3.4.7 (Choose the version that does not include Java. You want your Java from Oracle, not from Atmel!)

    4. Download this file and then extract to this folder:
      C:\Program Files (x86)\Atmel\Flip 3.4.7\bin

    5. Copy the ζ1 firmware binary image file that you downloaded previously into this folder:
      C:\Program Files (x86)\Atmel\Flip 3.4.7\bin

    6. Do the following. Ignore and approve any messages about driver not being signed.

      Start,
      Run, hdwwiz.exe,
      Next,
      Install the hardware..., manually,
      Next,
      Show All,
      Next,
      Have Disk,
      Browse to "C:\Program Files (x86)\Atmel\Flip 3.4.7\usb",
      Choose "atmel_usb_dfu.inf",
      Open,
      OK,
      Select "AT32UC3A3",
      Next,
      Next,
      Finish

    7. Reboot the computer.

      Steps 1 through 7 needs to be done only once to install the needed programs. You can proceed to step 8 directly the next time you flash the firmware.

    8. Mate the ζ1 with the main board (such as γ1.5) or γ3, and connect a USB cable between your computer and the ζ1. Then, press and hold both the Prog and Reset buttons, release the Reset button first, wait a short moment, then release the Prog button. At this point the external LED should be off. The first time you do this, Windows will do a fair bit of driver housekeeping.

    9. You may or may not receive messages about lacking drivers for "DG8SAQ-I2C". Ignore them if they show up.

    10. Windows should now be able to find the boot loader in the MCU. To verify:

      Start,
      Run, devmgmt.msc,
      Look for Atmel USB Devices.

    11. To flash the firmware, use the Flip installation and the Add_to_flip345_bin.zip package. Things may take extra time and require up to five attempts the first time:

      Start,
      Run, cmd.exe,
      The Command Prompt window opens.

    12. Type the following commands in the Command Prompt window:

      cd "C:\Program Files (x86)\Atmel\Flip 3.4.7\bin"
      prog widget.elf

      where widget.elf is the name of the firmware binary image file (e.g., zeta1_100_fw_YYYYMMDD.elf) that you downloaded.

    13. The following is what you'll see.


    14. If there are no errors, then the flash is successful. Press and release the Reset button to restart the ζ1 module's onboard MCU.
    If there are errors, try the following:
    • Instead of prog.bat, try prog_noerase.bat from the Add_to_flip345_bin.zip file. prog_noerase.bat comes without the "erase f" phase of the command. You may also try omitting other parts of the command in prog.bat.
    • Try the Linux method for firmware flashing. See above.
    • Instead of pressing Prog + Reset and then releasing Reset and Prog in sequence, unplug the USB cable leading to the ζ1. Wait 10sec-30min (exact time indeterminate). Press and hold Prog while reconnecting the USB cable, then release Prog and execute prog.bat or prog_noerase.bat again.


    Main: ζ1 Main | Prev: Instructions | Next: Design integration