What is this?
I got myself one of these cheap USB logic analyses for about 10€. You can order these directly from china, free shipping, for example at dealextreme or aliexpress.
Unfortunately the hardware only supports digital input but not digital output even though the software does. But as it turns out you can add output capability with a nice small hack. This way you get a logic analyzer, a frequency generator, frequency counter, PWM generator, arbitrary digital signal generator,….! All in one.
The hardware of the LA basically consists of a CY7C6813A which handles the USB communication and a HC245 bidirectional bus driver. Yes bidirectional! A little debugging showed that the CY7C6813A as a matter of fact does output digital signals, when requested by software.
The only problem is, that the direction pin of the HC245 is hardwired to input mode.
- A soldering iron with a small tip
- A 10k resistor (or any other value between, let’s say 10k and 100k)
- Some enamelled copper wire
- A little switch
- maybe some super glue
Take a knife or a scalpel and cut the trace marked in red. Solder the resistor to the contact marked as GND and use the enamelled copper wire to connect it to the pin which was connected to the trace you cut.
Take a small switch – I just took what I had lying around – and connect it to VCC and to the direction pin.
You can use the knive to cut an opening for the switch into the case and then use the super glue to glue it in. Done…
So now you can switch between input and output mode. Just be careful not to leave any outputs connected to the device when putting it into output mode.
(I used hot glue instead of super glue so it looks kind of ugly, but I don’t care 😉
This is a 1Mhz signal at the output:
There is a nice writeup about which software you can use on the ePanorama Blog
update: A lot of people (including myself) had problems with the USB cable that came with the LA. I couldn’t even charge my phone properly with it. So if you ever experience problems with high sample rates, glitches, etc, replace it.