I just want to note what I’ve noticed about use of Saleae 2.x vs Saleae 1.x on the same desktop PC, with the same device (I think it is Logic Pro 8) connected on same USB port.
I’m trying to describe the event that spawned BUG: Text in error messages in Saleae Logic 2.4.14 cannot be selected for copy/paste from memory, so I hope I will not miss out something.
I have used the same device on the same PC on the same USB connection with Saleae Logic 1.x for at least 4 years now, and I think I’ve only experienced a problem once or twice in this setup, so that setup worked fine for me.
So, I decided to take a closer look on Saleae Logic 2.x software, started some older version I had installed on my Windows 10 machine, got prompted to update to 2.4.14, said OK, program got updated, started and connected to my device.
Then I closed the program, did something else, started it up again - and now I get an error.
An unknown error occurred during device connection. Please disconnect and reconnect your device. If the error persists, please contact Saleae support.
Ok, so I’m thinking, let me start 1.2.40 software, it used to work - but it couldn’t communicate with the device either.
So, I think I restarted the PC here, but I experienced the same problem - neither Saleae 1.x nor 2.x software wanted to communicate with the device.
At this time, I felt it necessary to unplug and replug the device - the problem is, I work remote on this computer, and I cannot unplug/replug USB. I did look for a way to power off USB devices in a software ways, unfortunately it seems that it is generally impossible (or at least, depends on the controller); see winapi - Power off an USB device in software on Windows - Stack Overflow
So, I had to power off the PC - I had previously set up wake on LAN, so I was hoping that it will work still. Thankfully, waking of the PC did work, however, I did not wait much between power off and issuing wake on LAN, and I saw something scary: the node/entry for the Logic Pro 8 USB device disappeared from Windows 10 Device Manager; instead I got a USB node with “Unknown USB Device (Device Descriptor Request Failed)”!
So, after some unsuccessful attempts to get the device back, I decided to power off PC again, wait for 10 minutes, and then power the PC on again. Thankfully, this time the Logic Pro 8 was back as USB device node in Device Manager.
So I try Saleae Logic 1.2.40 software again - it connects to the device fine. I close it, I start Saleae Logic 2.4.14 software - and it first says it found the device, but then after 2-3 minutes in the program, it reported that it lost the connection or something similar, and I think it prompted me to replug USB again. Again I close Saleae Logic 2.4.14 software, I start Saleae Logic 1.2.40 software again - and now it cannot connect to the device.
So, again, power down the PC, wait 10 minutes, power up the PC via wake on LAN - USB device node for Logic Pro 8 is thankfully present in Device Manager.
And this time, as the first program I start after PC power cycle, I decide to start Saleae Logic 2.4.14 software - and it finds the device; after a minute or so it printed some other messages, but it did not lose the connection - and finally I could use the Logic Pro 8 device with Saleae Logic 2.4.14.
So, what happened? I think I understand what happened only thanks to the fact that Saleae Logic 1.2.40, when it starts for the first time after PC restart, and it connects to the Saleae Logic device for the first time, it says something like “Flashing firmware on device …” in the title bar; I did not see anything similar in Saleae Logic 2.x, and I think it is a UI mistake hiding this message: I understand business want to make the impression on users that everything “just works” and therefore prefer to report back only the most generic messages like “device connected” - but one things inevitably stop working, details like this (the fact that the software actually flashes firmware on the device on first start/connection) become crucial.
So, here is what I think happened:
- After a Logic device is started from a power off state (by getting power over USB), it is fully “braindead”/“erased”, that is, it has no firmware, other than that which makes it appear as a USB device node in the operating system of the USB host (the PC)
- Upon first start of either Saleae Logic 1.x or Saleae Logic 2.x software, the software checks the device - and if it is “erased”, it attempts to flash relevant firmware
- In subsequent (re)starts of Saleae Logic software of the same version that originally flashed the device, it is trivial for the software to see that the device had already been flashed, and the software does not attempt to flash firmware again
- I’d expect the firmware Saleae Logic 2.x software flashes on a device is different from the one Saleae Logic 1.x; … and here is the kicker:
- If the device had its firmware flashed by Saleae Logic 1.x, and afterwards we try to access it with Saleae Logic 2.x - that will fail, probably due to incompatibilities of firmware versions
Therefore, if we want to use a Saleae Logic device, that had been flashed with one version of Saleae Logic software, with the other version of Saleae Logic software - then we need to erase the previously flashed version of the firmware from the device, which means generally we have to unplug and replug the device from USB (or in my case, shutdown PC, wait, and then power on the PC).
Probably it would have been better for me, if Saleae 2 detected if the device is already flashed with firmware, and reported back something like “Logic device flashed with incompatible firmware - please disconnect and reconnect …” instead of just “unknown error”.
Well, hope this helps someone - wish I did not have to use up some hours on this myself …