Modern Microcontroller Boosts Classic Logic Analyzer To New Heights

[Ted Fried] recently found a beautiful HP 1600A/1607A logic analyzer set. State of the art in 1975, it looks like glorious Space Age equipment today. He decided to hook it up some modern gear to put it through its paces.

Wanting to give the equipment a proper shakedown, he enlisted a Teensy 4.1 to spit a deluge of logic at the HP unit. The microcontroller was tasked with generating 32 data signals along with two clock outputs to give the analyzer plenty to analyze. The HP 1600A handled this no problem, so [Ted] kept tinkering.

His next feat was to explore the addressable “MAP” function of the unit, which allowed writing to the 64×64 pixel display. The Teensy 4.1 was easily able to send images to the display, but [Ted] isn’t stopping there. He’s got plans to do the usual thing and get Bad Apple going on the hardware.

Getting a logic analyzer to analyze logic isn’t much of a hack, sure. But it’s instructive of how to approach working with such hardware. If you want to spit a bunch of logic out fast, a Teensy 4.1 is a great choice because it’s got a ton of IO and a ton of clock cycles to tickle it with.

We enjoyed seeing this old piece of hardware light up the phosphors once more. If you’ve got your own projects going on with classic bits of HP test gear, don’t hesitate to let us know!

Light Guns Aren’t Just For CRTs Anymore

For how much of a cultural phenomenon light gun games like Duck Hunt were, they didn’t survive the transition from CRT televisions to LCDs particularly well because of all of the technological quirks the light guns exploited in older technology that simply disappeared with modern TVs. But it’s not impossible to get a similar gameplay from modern technology as evidenced by the success of the Wii and its revolutionary Wiimote, and there are plenty of modern games that use similar devices. There are a few paths to getting older light guns working again, though.

The first system to note, called SAMCO, uses a system of LEDs and a camera to synchronize the game’s flashes to the new technology and translate the input back into the game. Gun4ir uses a similar technique, and boasts extremely high accuracy and low latency largely due to being programmed in assembly. Both systems can use either an infrared tracking sensor or a Wiimote sensor as the LEDs and while the SAMCO system can run on a Raspberry Pi Pico, Gun4ir exclusively uses ATmega32U4 boards with the optimized assembly programming.

Both SAMCO and Gun4ir offer PCBs for anyone looking to try them out without designing their own circuit boards, and once the electronics are assembled they can either be put in an original NES-era light gun, put in a custom printed enclosure, or even stuffed into a Nerf gun. For others looking for a more turnkey solution, there are also offerings from companies like Sinden which make complete system. You can always build your own system to restore the functionality of original light guns from scratch if that’s more your style.

Thanks to [LookAtDaShinyShiny] for tipping us off to the latest happenings in the light gun community!

Photo courtesy of Wikimedia Commons

Using 5V Programmable Logic Here In The 2020s

Do you speak GAL? [Peterzieba] does, and has pulled together a collection of documents and tools so that you can too. There’s a dividing line in electronic engineering education, between those who were taught about FPGAs, and those who weren’t. Blurring that line slightly is gate array logic (GAL). These devices were a preceursor to the FPGA, with a much simpler structure, and usually in those days UV-erasable in the same manner as an EPROM. And oddly enough, they, or at least their successor compatible parts, are still available, and as handy DIP devices that talk to 5 volt logic.

The guide goes into detail about the parts, the terminology surrounding them, and the CUPL language which raises a few memories for us. There are several possible workflows, including for those not faint of heart, the possibility of writing a fusemap by hand. We’re impressed by that one.

If these devices interest you, our colleague Bil Herd wrote a two-part guide (part one, and part two) which should answer your questions.

Thanks [Bjonnh] for the tip!

Featured image: “Commodore Amiga 1000 – sub board – Texas Instruments PAL16L8ACN-0126” by Raimond Spekking

Logic Analyzers: Capabilities And Limitations

Last time, we’ve used a logic analyzer to investigate the ID_SD and ID_SC pins on a Raspberry Pi, which turned out to be regular I2C, and then we hacked hotplug into the Raspberry Pi camera code with an external MCU. Such an exercise makes logic analyzers look easy, and that’s because they are! If you have a logic analyzer, you’ll find that a whole bunch of hacks become available to you.

In this article, let’s figure out places where you can use a logic analyzer, and places where you can’t. We’ll start with the first limitation of logic analyzers – capture speed. For instance, here’s a cool thing you can buy on Aliexpress – a wristband from TTGO that looks like a usual fitness tracker, but has an ESP32 in it, together with an IMU, an RTC, and an IPS screen! The seller also has an FFC-connectable devboard for programming this wristband over UART, plus vibromotor and heartrate sensor expansion modules.

You can run C, MicroPython, Rust, JavaScript, or whatever else – just remember to bring your own power saving, because the battery is super small. I intended to run MicroPython on it, however, and have stumbled upon a problem – the ST7735-controller display just wouldn’t work with the st7735.py library I found; my image would be misaligned and inverted.

The specifications didn’t provide much other than “ST7735, 80×160”. Recap – the original code uses an Arduino (C++) ST7735 library and works well, and we have a MicroPython ST7735 library that doesn’t. In addition to that, I was having trouble getting a generic Arduino ST7735 library to work, too. Usually, such a problem is caused by the initialization commands being slightly different, and the reason for that is simple – ST7735 is just the name of the controller IC used on the LCD panel.

Each display in existence has specifics that go beyond the controller – the pixels of the panel could be wired up to the controller in a bunch of different ways, with varying offsets and connection types, and the panel might need different LCD charge pump requirements – say, depending on the panel’s properties, you might need to write 0x10 into a certain register of the ST7735, or you will need 0x40. Get one or more of these registers wrong, and you’ll end up with a misaligned image on your display at best, or no output at worst. Continue reading “Logic Analyzers: Capabilities And Limitations”

When Tail Lights Lose Touch With Reality

To study the history of the automobile is to also be a student of technological progress — as with each decade’s models come new innovations to make them better handling, more corrosion-resistant, faster, more efficient, or whatever the needs of the moment dictate. But sometimes that technological advancement goes awry and works against the motorist, making for a vehicle that’s substantially worse than what went before. [FordTechMakuloco] has a video with an example in a Ford pickup, which we believe deserves to be shared.

The problem with the vehicle was simple enough, indeed it’s one we’ve had in the past ourselves. Water got into a tail light, and corroded some connectors. The difference with this Ford though was that such a simple fault took out the whole car, and that the fix for a simple tail light cost $5600. The first was due to a vehicle-wide CAN bus going down due to the electrical short, and the second was due to the assembly containing an assortment of wiring and modules which couldn’t be replaced separately. These included some form of side-facing parking radar, a component unnecessary for operation of the light itself. Some relatively straightforward design and component supply decisions such as separating subsystems across multiple CAN busses, ensuring individual modules are separately available, and even designing connectors to face downwards and self-drain, could have fixed it, but the automaker chose instead to build in some planned obsolescence. Would you buy a Ford truck after seeing the video below the break?

We’ve written here before about how automotive design has taken this wrong path, and even advanced a manifesto as to how they might escape it. This Ford tail light seems to us an egregious example of electronics-as-the-new-rust rendering what should be a good vehicle into a badly designed piece of junk, and honestly it saddens us to see it. Oddly, there was once a time when a Ford truck was about as good as you could get.

Continue reading “When Tail Lights Lose Touch With Reality”

Logic Analyzers: Tapping Into Raspberry Pi Secrets

Today, I’d like to highlight a tool that brings your hacking skills to a whole new level, and does that without breaking the bank – in fact, given just how much debugging time you can save, how many fun pursuits you can unlock, and the numerous features you can add, this might be one of the cheapest tools you will get. Whether it’s debugging weird problems, optimizing your code, probing around a gadget you’re reverse-engineering, or maybe trying to understand someone’s open-source library, you are likely missing out a lot if you don’t have a logic analyzer on hand!

It’s heartbreaking to me that some hackers still don’t know the value that a logic analyzer brings. Over and over again, tactical application of a logic analyzer has helped me see an entirely different perspective on something I was hacking on, and that’s just the thing I’d like to demonstrate today.

Diving In

A logic analyzer has a number of digital inputs, and it continuously reads the state of these digital inputs, sending them to your computer or showing them on a screen – it’s like a logic-level-only oscilloscope. If you have an I2C bus with one MCU controlling a sensor, connect a logic analyzer to the clock and data pins, wire up the ground, launch the logic analyzer software on your computer, and see what’s actually happening.

For instance, have you ever noticed the ID_SC and ID_SD pins on the Raspberry Pi GPIO connector? Are you wondering what they’re for? Don’t you want to check what actually happens on these pins? Let’s do that right now! Continue reading “Logic Analyzers: Tapping Into Raspberry Pi Secrets”

Patching Together Logic Gates

The digital world offers many advantages over its analog relatives, the use of boolean logic among them. Some of the functions, like NOT, OR, and AND are fairly straightforward and line up nicely with their linguistic counterparts. Others are more elusive, like XOR and NAND. For those just getting their start in digital logic, this teaching tool allows different logic gates to be wired together with patch cables.

While [David] first thought to use 74-series logic circuits directly, a much more versatile solution was to use configurable custom logic — a feature found in AVR DA-series microcontrollers that allows for the creation of custom logic circuits without the need for external hardware or complex programming. He went with an ATmega4809 which is capable of supporting twelve gates which are depicted graphically on the board, where the patch cables can be connected between inputs and outputs from a set of switches on the left to another set of LEDs on the right. The microcontroller continually polls for connections, applies the correct logic via a lookup table, and lights the appropriate LED.

Even with only twelve gates, the amount of real-world analogs that can be created with this teaching tool are numerous and varied, from simple things like displaying traffic light patterns in the correct order to implementing a binary adder. It’s an excellent way to get started in digital logic or understanding gates, and much simpler than dealing with 74-series chips on a breadboard like many of us might have done, but those logic chips can be powerful tools to have on hand even in the modern world of microcontrollers.