The github repository GadgetFactory/OpenBench-Logic-Sniffer hasn't been updated in 4+ years and is broken in respect of upgrading the firmware on Linux platforms.
However, the FPGA firmware in that repository is the latest and so is the PIC firmware, and both of those work well.
The ols-fwloader tool can be used to upgrade firmware under linux, given the files from the former repository.
The java OLS client application is still being updated (now 0.9.7.2)
So yes, the device is mature and everything works, although not out of the box. Some fiddling is required and a lot of the instructions floating around the Internet are now obsolete.
# Rules for Openbench Logic Sniffers. Creates a nice link to the ols ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fc92", MODE="0666", SYMLINK+="OpenBenchLogicSniffer", ENV{ID_MM_DEVICE_IGNORE}="1"
Shorting the PGC-PGD pins then pressing RESET puts the OLS into bootloader mode. Bootloader mode is required to read or write the PIC firmware.
Holding down UPDATE while pressing RESET puts the OLS into FPGA update mode; ols-fwloader can move the device from update mode to bootloader mode with the "-n" option.
It took some time, but I now have a definitive answer to when the "Error - unknown flash type (48 01 46 03)" occurs, and why.
The error comes from the various firmware update tools which try to read the flash type, and instead of sending the flash type, the device sends its device ID again (these are the first 4 bytes from the 7-byte Get ID response). This happens because the OLS when in update mode, accepts 4-byte long requests and it has got out of sync.
The reason it got out of sync is that a process on your computer (probably ModemManager) has opened the /dev/ttyACM* device and sent one or more characters to it.
So one thing you should do is update your udev rules file to contain this:
# Rules for Openbench Logic Sniffers. Creates a nice link to the ols ATTRS{idVendor}=="04d8", ATTRS{idProduct}=="fc92", MODE="0666", SYMLINK+="OpenBenchLogicSniffer", ENV{ID_MM_DEVICE_IGNORE}="1"
The other thing you should do is upgrade to the latest firmware utility, the ols-fwloader ...
I have recently modified this tool to fix some bugs and automatically resync the OLS during its device initialisation.
At this time, the GadgetFactory download "Latest Stable Release is Version 3.08" does not work for firmware upgrade under 64 bit Linux. The latest commits on github:
One more thing to note - passive power without an active pullup circuit is good for only 1-2 devices on a bus. You want more devices - like the 8 I am testing right now: use a MOSFET.
0550H is the power-on default, when you see it, that means the device didn't start converting temperature since it was reset.
I think 07FFH means the device started to convert temperature, but couldn't complete.
Assuming you are using parasitic power, it means your device(s) have insufficient power during the conversion phase. The solution is to either change to active power, or use a P-channel MOSFET to pull the bus voltage up during conversion.
To use a MOSFET, connect its SOURCE to VCC, DRAIN to your bus power/data wire, and GATE to the output pin which will be active LOW during the conversion interval.
The upgrade process will be a bit easier I think if all the obsolete information online is removed. Can't do much about the forums but I've made a start on improving the wiki:
Please test it out and comment or further improve the page. It provides a link to the latest packaged version and tells how to upgrade from source code, i.e. clone the github repository and compile and run the tools.
I solved the problem. I have to run ols-fw-update as root. A note should be added to the documentation or the script should check its uid or device permissions.
After the update:
$ linbin/ols-loader -p:/dev/ttyACM0 Logic Sniffer ROM loader v0.3 (November 9, 2010) Opening serial port '/dev/ttyACM0' @ 921600 ... OK Found OLS HW: 1, FW: 3.0, Boot: 2 Found flash: WINBOND W25X40
I can't proceed from here. Although I've supposedly loaded the Demon Core 3.07, the output from ols-loader is the same as initially:
$ linbin/ols-loader -p:/dev/ttyACM0 Logic Sniffer ROM loader v0.3 (November 9, 2010) Opening serial port '/dev/ttyACM0' @ 921600 ... OK Found OLS HW: 1, FW: 2.2, Boot: 2 Found flash: WINBOND W25X40
ols-fw-update fails. Also the device USB vid/pid are different to the command line: 04d8:fc92 but changing the command line accordingly doesn't change the output error message.
Hmm, after upgrade to 2.12, same output from ols-loader as before:
Found OLS HW: 1, FW: 2.2, Boot: 2
Trying Demon Core now.
Logic Sniffer ROM loader v0.3 (November 9, 2010) Opening serial port '/dev/ttyACM0' @ 921600 ... OK Found OLS HW: 1, FW: 2.2, Boot: 2 Found flash: WINBOND W25X40 Chip erase ... done :) Reading BIN file 'FPGAROM/logic_sniffer_3.07-Demon-Core.bit' ... OK! (binary size = 169314) Will write 662 pages Page 0x0000 write ... (0x0000 0x0000)OK Page 0x0001 write ... (0x0000 0x0001)OK [etc ...]
Logic Sniffer ROM loader v0.3 (November 9, 2010) Opening serial port '/dev/ttyACM0' @ 921600 ... OK Found OLS HW: 1, FW: 2.2, Boot: 2 Found flash: WINBOND W25X40 OLS switched to bootloader mode
Press any key to continue...
U2IO flash erasing: FAILED. Device is not found. Operation aborted.
The contents of ols-0308-expert.tgz haven't yet been committed into SVN? I can see some small differences. "ols-fw-update" looks like "fw_update" which I just compiled from /bootloader/fw_update/