Just before the dawn of the PC era, IBM typewriters reached their technical zenith with the Wheelwriter line. A daisy-wheel printer with interchangeable print heads, memory features, and the beginnings of word processing capabilities, the Wheelwriters never got much time to shine before they were eclipsed by PCs. Wheelwriters are available dirt cheap now, and like many IBM products are very hackable, as shown by this simple Arduino interface to make a Wheelwriter into a printer.
[Chris Gregg] likes playing with typewriters – he even got an old Smith Corona to play [Leroy Anderson]’s The Typewriter – and he’s gotten pretty good with these largely obsolete but lovable electromechanical relics. Interfacing a PC to the Wheelwriter could have been as simple as scrounging up an original interface card for the machine, but those are like hen’s teeth, and besides, where’s the sport in that? So [Chris] hooked a logic analyzer to the well-labeled port that would have connected to the interface card and reverse engineered the somewhat odd serial protocol by banging on keys. The interface he came up with for the Wheelwriter is pretty simple – just a Light Blue Bean Plus and a MOSFET to drive the bus high and low for the correct amount of time. The result is what amounts to an alphanumeric printer, but with a little extra code some dot-matrix graphics are possible too.
Having spent a lot of time reverse engineering serial comms, we can appreciate the amount of work this took to accomplish. Looking to do something similar but don’t have the dough for a logic analyzer? Maybe you can free up $22 and get cracking on a similarly impressive hack.
Continue reading “Vintage IBM Daisywheel Prints Again after Reverse Engineering”
I recently opened the mailbox to find a little device about the size of White Castle burger. It was an “Analog Discovery 2” from Digilent. It is hard to categorize exactly what it is. On the face of it, it is a USB scope and logic analyzer. But it is also a waveform generator, a DC power supply, a pattern generator, and a network analyzer.
I’ve looked at devices like this before. Some are better than others, but usually all the pieces don’t work well at the same time. That is, you can use the scope or you can use the signal generator. The ones based on microcontrollers often get worse as you add channels even. The Analog Discovery 2 is built around an FPGA which, if done right, should get around many of the problems associated with other small instrumentation devices.
I’d read good things about the Discovery 2, so I was anxious to put it through its paces. I will say it is an impressive piece of gear. There are a few things that I was less happy with, though, and I’ll try to give you a fair read on what I found both good and bad.
Continue reading “Review: Digilent Analog Discovery 2”
If you are in the market for an inexpensive USB logic analyser you have a several choices, but few of them deliver much in the way of performance. There are kits from China for a few dollars using microcontrollers at their heart, but they fail to deliver significant sample rates. If you require more, you will have to pay for it.
It is therefore rather interesting to see [kevinhub88]’s SUMP2 project, an open source logic analyser with a claimed 96 MSPS sample rate using an off-the-shelf Lattice iCEstick FPGA evaluation board that only costs about $20.
It talks to a host computer via USB using the established SUMP protocol, so its software front-end comes from the sump.org logic analyser project. Edit: Since this post was published [Kevin] has contacted us to inform us that the project’s capabilities have now moved beyond SUMP’s capabilities and in fact it now uses his own software.
This project has the promise to add a very useful piece of test equipment to the armoury of the engineer on a budget, and to aid the cost-conscious reader he’s provided extensive documentation and installation instructions, as well as the code for the FPGA. Thanks to one of the more awesome hacks of 2015, there is an entirely open toolchain for this Lattice part, and our own [Al Williams] has written up a multi-part getting-started guide if you want to get your feet wet. You probably want one of these anyway, and now it’s a logic analyzer to boot.
We’ve covered quite a few inexpensive home-produced digital instruments here over the years, including this logic analyser with a slightly higher price tag, this inexpensive VNA, and this oscilloscope board. Maybe one day the bench of our dreams will all come on one open-source PCB for $100, who knows!
[Matthew D’Asaro] was recently entrusted with an entire classroom fleet of fourteen broken Tektronix TLA5202 logic analyzers — a pile of equipment that once was worth hundreds of thousands of dollars. His task: Fixing them. He fixed them all, and on the way documented a number of common failure points in these old but still great devices.
Continue reading “Repairing 14 Tektronix TLA5202 Logic Analyzers”
Sometimes there’s just no substitute for the right diagnostic tool. [Ankit] was trying to port some I2C code from an Arduino platform to an ARM chip. When the latter code wasn’t working, he got clever and wrote a small sketch for the Arduino which would echo each byte that came across I2C out to the serial line. The bytes all looked right, yet the OLED still wasn’t working.
Time to bring out the right tool for the job: a logic analyzer or oscilloscope. Once he did that, the problem was obvious (see banner image — Arduino on top, ARM on bottom): he misunderstood what the ARM code was doing and was accidentally sending an I2C stop/start signal between two bytes. With that figured, he was on the right track in no time.
We just ran an epic post on troubleshooting I2C, and we’ll absolutely attest to the utility of having a scope or logic analyzer on hand when debugging communications. If you suspect that the bits aren’t going where they’re supposed to, there’s one way to find out. It’s conceivable that [Ankit] could have dug his way through the AVR’s hardware I2C peripheral documentation and managed to find the status codes that would have also given him the same insight, but it’s often the case that putting a scope on it is the quick and easy way out.
There are piles of old 128MB and 256MB sticks of RAM sitting around in supply closets and in parts bins. For his Hackaday Prize project, [esot.eric] is turning these obsolete sticks of RAM into something useful – a big, fast logic analyzer. It’s cheap, and simple enough that it can be built on a breadboard.
If using old SDRAM in strange configurations seems familiar, you’re correct. This project is based on [esot.eric]’s earlier AVR logic analyzer project that used a slow AVR to measure 32 channels of logic at 30 megasamples per second. The only way this build was possible was by hacking an old stick of RAM to ‘free run’, automatically logging data to the RAM and reading it out with an AVR later.
This project expands on the earlier projects by using bigger sticks of RAM faster, with the ultimate goal being a 32-bit, 133MS/s logic analyzer that is more of a peripheral than a single, monolithic project. With a Raspberry Pi Zero, a stick of RAM, and a few miscellaneous logic chips, this project can become anything from a logic analyzer to a data logger to an oscilloscope. It’s weird, yes, but the parts to make this very handy tool can be found in any hackerspace or workshop, making it a great trick for the enterprising hardware hacker.
We often see “logic analyzer” projects which are little more than microcontrollers reading data as fast as they can, sending it to a PC, and then plotting the results. Depending on how fast the microcontroller is, these projects range from adequate to not very useful.
At first glance, [esot.eric’s] logic analyzer project has an AVR in it, so it ought to be on the low end of the scale. Then you look at the specs: 32 channels at 30 megasamples per second. How does that work with an AVR in it?
The answer lies in the selection of components. The analyzer uses a 128MB SDRAM DIMM (like an older PC might use for main memory). That makes sense; the Arduino can’t store much data internally. However, it isn’t the storage capacity that makes this choice critical. It seems [esot.eric] has a way to make the RAM “free run”.
The idea is to use the Arduino (or other host microcontroller) to set up the memory. Some of the memory’s output bits feedback to the address and data lines. Then the microcontroller steps aside and the SDRAM clocks samples into its memory by itself at the prevailing clock rate for the memory.
Continue reading “SDRAM Logic Analyzer Uses An AVR And A Dirty Trick”