Method for upgrading the DSO Quad firmware on Mac OS X

After a few hours of trial and error, I finally managed to upgrade my DSO Quad firmware + system + apps on Mac OS X !

At first I thought I would just have to mimic the Linux method but it was a bit more difficult than that.

So, if it can help anyone, here are the important steps:

  1. Print this message because you won’t have access to a web browser during the whole upgrade process.

  2. Download everything you want to install (FPGA, system, apps…) but don’t open any zip file using the Finder. This would add Mac resource forks to uncompressed files, which then translate into additional files when copied to the DSO MS-DOS file system, which disturbs the upgrade system. Put the files into a place that is easy to access, like /Users/(youraccount)/DSO/

  3. Boot your Mac in single user mode. Just hold Command-S during startup, until you see white text on black background. This will allow us to mount the DSO as a USB disk without any OS X process trying to write invisible system files to it, which also disturbs the upgrade system.

  4. Mount the root filesystem by typing the following command line:

mount -uw /
  1. Go to the directory where you put all the files:
cd /Users/(youraccount)/DSO
  1. Uncompress what needs to be uncompressed. You can use the unzip command. For instance:
  1. Create an empty directory that will serve as a mount point. Let’s call it mnt:
mkdir mnt
  1. Connect the DSO and start it in firmware upgrade mode by holding the “play/pause” button while switching it on. After a few seconds, a cryptic message should appear (“USBMC Identifier (non-unique)” before a series of letters and numbers). Just ignore it and hit Return once or twice to make some space for typing.

  2. Find the device node of your DSO USB disk. That requires some trial and error but it’s no big deal. The device node is a path like /dev/disk# where # is a number (or sometimes several numbers with a letter inbetween). disk0 is very likely the system disk, so you can start the search at disk1. If you want to know what disks are available, type

ls /dev/disk*

In order to make things easier, disconnect all external disks and USB keys, except the DSO Quad.

Now, look for a disk with an “msdos” file system. To know the FS type of a disk, use the fstyp command:

fstyp /dev/disk1

In my case, disk1 was the one. Warning : if you don’t follow exactly the steps below, the device node of your DSO may change (for instance, from disk1 to disk2, then back to disk1). It’s not a problem but it makes things more difficult because you have to find it again.

  1. Mount the DSO Quad. Assuming it is disk1:
mount -t msdos -o sync,noasync /dev/disk1 mnt
  1. Copy the .ADR file to the DSO. Assuming its name is CFG_FPGA.ADR:
cp -X CFG_FPGA.ADR mnt && sync && umount mnt

(The -X flag is very important. It tells cp not to create separate files for resource forks.)

  1. After a few seconds, you should see a message similar to the one before (“USBMC Identifier” etc.).

  2. Check that the DSO is happy. Repeat the command of step 9 to mount it again:

mount -t msdos -o sync,noasync /dev/disk1 mnt

(If you get an error message then the disk number has probably changed, and/or it was not unmounted at step 10.)

List the files in it:

ls mnt

You should see the file you just copied, except its extension is now .SET or .USE or .RDY instead of .ADR.
If it is .ERR, that’s not good. Start again and see if you followed all the steps. Don’t worry, it happened to me and I sorted it out. But you must fix the error or the DSO will be unusable.

  1. Repeat steps 10 to 12 with the remaining files. After .ADR, copy .BIN first, then .HEX for system, then .HEX for application(s).

  2. Some instructions in the Wiki tell to format the main disk. I’m not sure it’s really necessary. If you want to do it, just turn off the DSO, start it normally, then type the Linux command line that is in the wiki.

Hope this helps! :slight_smile:

I think this program automates the process: