4 ms·
The "oscilloscope" Jochen used for this is a huge piece of junk, quite frankly. I wrote the library he used to interface with the scope for this attack, and I f
by rpcope1 8y ago
The "oscilloscope" Jochen used for this is a huge piece of junk, quite frankly. I wrote the library he used to interface with the scope for this attack, and I frankly wouldn't even bother touching that "scope" unless I needed a kind of quick two port DAQ. It would be far smarter to spend a little more and buy a Rigol 1102 (or similar) instead.
In terms of technically why it's really a bad piece of hardware, I can elaborate if someone wants details, but at a high level it lacks any form of hardware triggering (and everything is pretty much driven by the relatively slow on-board 8051 (no FPGA or anything similar)), and data transfer only happens over bulk USB transfers; furthermore sometimes the firmware just drops data.
- tomswartz07 8y agoAgree, a Rigol 1054z is easy to come by inexpensively, and it can be software modded to unlock some extra features. The scope also works great on Linux with Sigrok.
- setquk 8y agoDefinitely. 1054Z is a bargain for what it is. I’ve got a DG1022Z gen as well and you can use the two together to do protocol injection. Record with the DS1054Z and dump into DG1022Z arb memory then use the DS1054Z pattern trigger to trigger the DG1022Z. Totally amazing bits of kit and together cost me less than a bottom end 100Mhz Tektronix scope. Both have Ethernet too so I do a lot of scripting with python and the two. You can add your own features then! So far I've written a simple distortion analyser similar to the one bob Pease described for ED magazine in around 2001. Basically it subtracts input and output and then applies arbitrary phase shift and gain and then subtracts that from the original signal to see where the distortion occurs in the cycle. Only complaint is that the DG1022Z csv parser is a piece of shit if you want to load your own arb data. Works better over LXI.
- brokenmachine 8y agoI have a 1054Z and use it in a pretty basic manner, but when I want to take screenshots, I find that the Ultrascope software is super crashy. I'm on Win7 64bit. It basically crashes almost every time I run it. I can restart it but it's irritating. All I need to do is take screenshots, is there a quick way to do that over USB without having to use Ultrascope?
- setquk 8y agoUltrascope is crap. I’m using lxi-tools and Ethernet to capture screenshots. It’s a command line tool. I run it in WSL on windows 10. https://github.com/lxi-tools/lxi-tools https://github.com/lxi-tools/lxi-tools Or USB stick. But that requires carting the stick around.
- andrewcchen 8y agoYou can take screenshots by plugging a usb stick into the scope
- brokenmachine 8y agoI know, but I'd much rather do it from my PC than muck around with flashdrives.
- sannee 8y agoThere is a python library+utility which can take screenshots over Ethernet - https://github.com/pklaus/ds1054z https://github.com/pklaus/ds1054z
- brokenmachine 8y agoThanks for that, ATM I don't have an ethernet cable near to the scope, would be easier for me via USB, but I might have to run a cable there later on. I'm surprised there seems to be no stable way to do it by USB.
- tomswartz07 8y agoNot sure if you've checked out Sigrok, but it does work well for screenshots.
- vardump 8y ago> the relatively slow on-board 8051 Cypress FX2LP? It's pretty sad indeed. 48 MHz clock and performance is maybe 2 MIPS, if that...
- rpcope1 8y agoYeah, I think that was it. It's kind of fun to program (in the sense that 8051 assembler is usually less crazy than x86/x64 assembler), but it's way underpowered in that way it got used for the 6022BE.
- vardump 8y agoIn case this could help to improve that scope, I'll share my best FX2LP trick: The key to get the best out of FX2LP is to set MPAGE to 0xe6. This way you can index USB registers at 0xe6xx through 8051 r0 and r1 -- no need to load register address to DPTR. Most interestingly, this also works for XAUTODAT1 and XAUTODAT2 registers, which can act as (optionally auto-incrementing) read/write pointers anywhere in xram. This enables "fast" memcopy, memfill, strlen, etc. If r0 points to XAUTODAT1 and r1 to XAUTODAT2, and auto-incrementing is enabled, memcpy becomes just this: memcpy_loop: movx a, @r0 movx @r1, a djnz r7, memcpy_loop AUTOPTR1H/AUTOPTR1L and AUTOPTR2H/AUTOPTR2L set the pointer address. With FX2LP autopointers, 8051 native DPTR isn't typically needed at all.
- CamperBob2 8y agoNote that the 8051 core on the FX2 is mostly there just to set up and manage the FIFOs, which run at the full 48 MHz rate supported by USB 2. Building logic analyzers and other things that don't rely on basic FIFO operation was not Cypress's intention.