ZeroPlus Logic Cube Modification

the folks over at OpenSchemes are at it again. This time they’ve cracked open a low end ZerPlus logic analyzer and modified it to function the same as the higher end model. The 16 channel version they purchased appeared to be fully capable of handling the 32 channels of the more expensive model. The installation of the additional components looks like it might be somewhat difficult, but it is certainly cheap.We love seeing things upgraded for cheap. You might recognize OpenSchemes from when they upgraded the DMM tweezers or hacked the USB serial adapters.

[via HackedGadgets]

128 thoughts on “ZeroPlus Logic Cube Modification

  1. @Jaime

    Yeah, I was looking at the 36Mbit chip as well, but I’m probably just going to buy the 72Mbit.

    I can also verify that gedesu’s instructions will work. I compiled zeroprog under Fedora 12 (had to install gcc first). Worked great. It also lets you back up your original EEPROM values first.

  2. @Jake

    I installed Ubuntu in a Virtual PC machine and installed the libusb-1.0-1 package but I still get this error:
    “Package libusb-1.0 was not found in the pkg-config search path. Perhaps you should add the directory containing ‘libusb-1.0.pc’ to the PKG_CONFIG_PATH environment variable

    No package ‘libusb-1.0″ found”

  3. @Jaime

    Did you get it to work? I had trouble as well, but ended up downloading an RPM from some site on the ‘net and that installed just fine. Then, the only problem was that the USB port was write protected, easy fix with root access and chmod +rw…

  4. @Jake

    I am currently soldering all the surface mount components. I’ll try to do the EEPROM change when I finish this. It will probably take me a few hours to add all the components. The only bad thing about trying to add the parts is that I have no solder braid to remove the crappy lead-free solder. It needs at least 700F to melt properly.

  5. @Jaime

    Oh, man. I can’t imagine trying to do that without braid. Can’t you get some cheap stuff somewhere locally? Even the cheap stuff seems to work OK with a little flux…

  6. Bah! I was able to compile the program using Uwe’s suggestion, but now I found out that Windows Virtual PC has absolutely NO USB support! :( So now I have to actually install Ubuntu on my desktop in order to run the program and have it find the Zeroplus.

  7. Success! I was able to boot off the Ubuntu CD and installed the libusb-1.0-0-dev package. Then I ran the program I compiled previously and was able to see the EEPROM contents. I changed it to a 322000 even though I still have the small 166MHz chip in there. I guess it wont matter as long as I keep it under that speed and limit the memory used.

  8. Jaime,

    What kind of performance are you seeing on the newly enabled ports C-D?

    I am having trouble with the new ports latching in a high state, even with an input removed. They all start low, but if I apply a voltage to the pins, some of them will go high and stay that way. I am able to sample low frequencies with no problem, but higher ones (like 1MHz plus) are iffy.

    I have verified all of my component values. I used a 74LVT16245BDGG that I bought from mouser electronics, I am wondering if there is some obscure difference in this IC, since everything else is identical to the original parts.

  9. Oh, also, something odd: I have the 166MHz IC as well. I converted it to a 322000 in EEPROM, and I put a 1MHz square wave on channel A1, and set the sample length to 2M, frequency to 200MHz. It gave me 1,048,572 samples, and showed the correct square wave all the way to the end. Wtf?? Last I checked, that is a megabit.

  10. Jaime, just an update. I used an NXP 74LVT16245BDGG from Mouser. That chip does not seem to work properly with these boards. I am ordering some TI ‘245’s like what the boards come with, which should solve the problem I am having. I verified this by swapping the TI chip from my other 16032 to the unit I was testing. I tested two NXP parts with the same troublesome results.

  11. I havent done much testing. The only test I did was to connect all channels to the 1khz 3.3V output of my oscilloscope. The wave was properly displayed. I think I tried 2M but noticed that the waveform became more like a PWM signal of about 90% duty-cycle. I think the ASIC just writes to memory locations since it is a parallel SRAM device and since the address lines that would write to the 2MB device are not connected internally in the smaller chip, it just overwrites the data values in memory whenever it tries to write to an address higher than available.

  12. If your inputs weren’t latching high, then you should be fine. My problem was immediately noticeable, the pins would not go low until I either pulled them low, or cycled power to the device.

  13. Oh, wait. A PWM? Thats what mine looked like all the time when latched high – An input would stay high, with a narrow “blip” to ground every period of the signal. If I repeatedly disconnected and connected the input while acquiring constantly, sometimes the waveform would be displayed normally, and sometimes it would latch high and look like a 98% duty cycle PWM signal.

    Maybe yours was just because of the memory setting, but you might want to make sure.

  14. The PWM-like signal was seen on all channels, not just the newly added ones, so I don’t think we we’re seeing the same thing. That is why I think it was just a memory roll-over thing that I saw.

  15. It’s part of the serial number – For instance, I have two units, one starts with 0905 (2009, 05th month=May) and the other 1001 (2010, 01st month=January).

    The new units (1001 and on) will not work with the 32 channel mod, though you can get the extra memory (128k per channel) to work. I believe you can also make it a 32128 and though you only have 16 channels, you can get 256k samples each.

    If you are looking for one of the old 16032’s that will work for the 32 channel mod, forget it. They are long gone. However, you may be able to find older 16064’s or 16128’s that may have older production dates, since those sell less frequently. You will still have to replace the memory chip if you want to sample at 200MHz, as the older units come with 166MHz memory. I have replaced the memory on my 0905 unit with the 72MBit chip, and can get 2M samples on 32 channels! Woot!

    Good luck!

  16. @Jaime

    It’s funny, we both now have 1001 16128’s and 0905 32 channel units.

    What to do with the 16 channel “spare”? I don’t think I need two of these units!

    I think I’m gonna sell mine on eBay or something :/

  17. @Chris

    Depends on whether that has the same ASIC as the 0905 units or not. I have not seen 0906 units, so I have no idea.


    You should be able to make that unit a 16128 with no soldering.

  18. @Cube

    Ahh, I was under the impression that they all came with a minimum of a 4 Mbit IC, yours must have a 2 Mbit?

    I installed the CY7C1480V33-200AXC IC on mine and it is functioning well as a 322000 :)

  19. Jake:

    Same here. I especially like the feature where I can use the other half of the memory to extend the storage capacity of the original 16 channels to 4 megs.

    Also went and ordered the parts to add the other 16 channels. Quite a nice “saving”. :)

  20. I download and compiled “zeroprog” program successful under Ubuntu OS. But I do not know how to use this “zeroprog” program to read and write the EEPROM of LA, and I also can not find the user guide or document about how to use the “zeroprog” program. Does anyone would share how to use the “zeroprog”? Thanks a lot.

  21. I had compilered the “zeroprog” and “zerominus” under Ubuntu OS. Does anyone could tell me to to use the “zeroprog” program to read and write the EEPROM of LAP-C? I can not find any user manual or document about how to use the “zeroprog” program.

  22. @test

    zeroprog should give you instructions at the command line if you run it with no paramaters. Maybe you have to pass it ‘help’ or something, I can’t remember, and I am not in my lab right now.

    One thing I had to do under ubuntu was remove the write protection from the USB port. I passed it the correct parameters, but it told me that the USB port was write protected. I used chmod +rw on it, or something like that. I am not a linux expert by any means, but I was able to figure it out with about 20 minutes of time, and google.

    You will probably have to make zeroprog executable as well, with a command like ‘chmod +x zeroprog’ or something like that. Once again, no linux machine here so I can’t tell you for sure.

    Try it, and if you can’t get it to work, post your troubles here and I’ll try to help you this weekend.

  23. @Jake
    Thanks a lot. I am not familiar about using the Ubuntu OS. I tried to compiler and use the “zeroprog” under Ubuntu , but it still shown “zeroprog : command not found”. I remove the EEPROM of LAP-C PCB, and use my EEPROM programmer to read/write the data information successfully. After modified the EEPROM, I solded the EEPROM to PCB board. Jake, thank you again.

  24. Has anyone figured out how to re-activate protocols registered under the lower memory depth model after hacking the zero plus to a higher model??

    I know am very late to the party, I just ordered a C16064 with a 0905 serial; all the C16032 models are long gone. It should arrive in the next few days. Are the passive components on the board 0603 or 0402?

    The TI buffer that comes on the board is available for order from mouser and digikey, the part number is SN74LVT16245BDGGR

  25. @Cube,
    Thanks for the response, so I take it that means I have to revert the model number back to the original model number anytime I want to use the purchased protocols?

  26. The software tells the protocol which model you’re using and the protocol then checks if the key matches that model.

    And because you have to patch the model one way or another for the software to accept it, the protocol will not accept it. Again, if you patch it for the protocol to accept it, the software will not accept it.

  27. If anybody can confirm that is possible to convert 16032 with the new ZP322MC-5 ASIC to 322000 (with only real 16 channels) ? Do you know what is product-id of 162000?

  28. Don’t know if the memorybus is blocked or not.

    16032: 0C12 700E
    16064: 0C12 7009
    16128: 0C12 700A
    162000: 0C12 7016
    32128: 0C12 700B
    321000: 0C12 700C
    322000: 0C12 700D

  29. @Jacek

    Haven’t figured out a way at this point. I meant to X-Ray the ASIC to see if the pins are hardwired to ground or something, but I just haven’t had the time. I tried hitting the pins with 100mA current pulses, no change. I postulated that maybe this is some sort of FPGA and maybe it would be software reconfigurable, but haven’t taken the time to try and compare the pinout to any known FPGA.

  30. I’ve just received my 16032, bought at Tigal. Of course with new Asic :(, as other people i have 128Kx36b 250MHz memory so now it works as 16128 (thanks to zerominus team for their eeprom tool). But I found that it’s worth to change PID (can be mod in UsbPort.dll) to 162000 and it also works fine (but you cannot exceed 128K samples of course) – what is nice in 162000 software that you have 10 free protocols, on 16032/128 only four of them are free.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.