InsideGadgets Logic Observer
Status | planned |
---|---|
Channels | 8 |
Samplerate | 50MHz |
Samplerate (state) | — |
Triggers | high, low |
Min/max voltage | 2V — 5.5V |
Threshold voltage | ? |
Memory | 131ksamples/ch |
Compression | none |
Website | insidegadgets.com |
The insideGadgets Logic Observer is an 8-channel logic analyzer with up to 50MHz sampling rate. It is a mostly open project with all source code (CPLD, MCU) available, as well as a schematic of the PCB.
See insideGadgets Logic Observer/Info for more details (such as lsusb -v output) about the device.
Hardware
Protocol
The device is controlled entirely via USB control messages. The command is encoded in the request value of the control message; value and index are unused.
The following requests are defined:
USB_TRANSFER (1)
This tells the device to transfer the samples captured in memory to the host. This is called multiple times; the buffer memory is transferred 254 bytes at a time, with the address increasing automatically. The address is reset when a capture is started or settings are updated.
USB_SETTINGS (2)
Send new settings to the device. The settings consist of the following eight bytes sent along with the control request:
Byte | Description | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Bitmask of the channels to trigger on. All channels marked according to the
trigger level must match before a trigger is considered to have fired. | ||||||||||||||||||
1 | Level to trigger on (0 or 1). | ||||||||||||||||||
2 | Delay after trigger, in milliseconds. | ||||||||||||||||||
3 | Trigger count: number of times the trigger must fire before the capture starts. | ||||||||||||||||||
4 | Sample rate, as follows:
| ||||||||||||||||||
5 | Number of samples to capture | ||||||||||||||||||
6 | Start capture flag: a capture is started if this is not 0. | ||||||||||||||||||
7 | Always 0. |
USB_STATUS (3)
Returns a 2-byte status field. The first byte indicates whether capturing has finished (1) or not (0). The second byte is always 0.
USB_CANCEL (4)
This cancels a capture in progress.