Logic analyzer capture, showing the rails constantly oscillating at a high rate

When Your Level Shifter Is Too Smart To Function

By now, 3.3V has become a comfortable and common logic level for basically anything you might be hacking. However, sometimes, you still need to interface your GPIOs with devices that are 5 V, 1.8 V, or something even less common like 2.5 V. At this point, you might stumble upon autosensing level shifters, like the TXB010x series Texas Instruments produces, and decide that they’re perfect — no need to worry about pin direction or bother with pullups. Just wire up your GPIOs and the two voltage rails you’re good to go. [Joshua0] warns us, however, that not everything is hunky dory in the automagic shifting world.

During board bring-up and multimeter probing, he found that the 1.8 V-shifted RESET signal went down to 1.0V — and its 3.3 V counterpart stayed at 2.6V. Was it a current fight between GPIOs? A faulty connection? Voltage rail instability? It got more confusing as the debugging session uncovered the shifting operating normally as soon as the test points involved were probed with the multimeter in a certain order. After re-reading the datasheet and spotting a note about reflection sensitivity, [Joshua0] realized he should try and probe the signals with a high-speed logic analyzer instead.

Continue reading “When Your Level Shifter Is Too Smart To Function”

Probes connected from a Pi Pico board to the SPI flash chip, with other end of the probes connected tot the level shifter circuit resistors

Motherboard Revived With Simplest 1.8V SPI Shifter Ever

If you have ever had to fix a modern desktop motherboard, you might have noticed that the BIOS (UEFI) SPI flash is 1.8V – which means you can no longer use a Raspberry Pi or a CH341 adapter directly, and you’d need to use a 1.8V level shifter of some sort. Now, some of us can wait for a 1.8V level shifter adapter from an online store of your choosing, but [treble] got a “BIOS flash failed” motherboard from Facebook Marketplace, and decided to make it work immediately.

She tells us a story about reviving the motherboard, and there’s one thing she shows that is interesting in particular – a very simple way to level shift 3.3V signals from a serprog-flashed Pi Pico down to the 1.8V that the flash chip required, something you are guaranteed to be able to build out of the parts in your parts bin, only requiring nine resistors and an NPN transistor. If you ever need to reflash BIOS on a modern motherboard, take note. As for 1.8V rail, she ended up tapping the 1.8V power pin of the SPI chip the motherboard itself to power the chip while programming it.

In the end, after swapping the two BIOS chips places and fixing a broken trace mishap, the motherboard booted, and works wonderfully to this day, a much-needed upgrade to [treble]’s toolkit that allows her to do RISC-V cross-compiling with ease nowadays. This is not the first time we see people reflash modern boards with 1.8V chips – if you want to learn more, check out this incredibly detailed writeup! Need to do some further debugging? Use your Pico as a POST card!

A Pi Pico on a breakout board inside a Busch 2090 educational computer

Pi Pico Becomes SRAM For 1981 Educational Computer

Ever since the Raspberry Pi Pico was introduced in early 2021 we’ve seen the tiny Pi being used for an astonishing variety of applications. It has powered countless clocks, gadgets, games, and accessories for all kinds of computers old and new. [Michael Wessel] has recently added an interesting new application in the “old computer” category, by turning a Pico into a 2114 SRAM emulator for his Busch 2090, an educational computer system from 1981.

The pinout of the classic 2114 SRAM chip is quite simple: ten address lines, four data lines, Write Enable and Chip Select. Since the 3.3 V Pico is more or less 5V tolerant, you could directly connect these signals to its GPIO ports, but [Michael] considered it more reliable to use level shifters between the two voltage domains. He experimented with a few standard level shifter circuits, but quickly realized he had to take the 33 kΩ pulldown resistors on the Busch 2090’s address bus into account. By just adding a couple of resistors to the Pico’s ports he could make completely passive level shifters, which worked just fine since the system’s clock frequency is only 500 kHz.

[Michael] demonstrates his RAM replacement in the video below, with a neat set of blinkenlights showing the data being shuttled around in real time. He has plans to make a proper PCB for his project, as well as to enable all kinds of neat features by modifying the system’s RAM in real time. This is of course not limited to the Busch 2090: the 2114 chip was widely used in the 1980s, so the PicoRAM can probably be used in many other systems of the era. Code for the Pi is available on GitHub if you’re interested in trying this for yourself. If you’d like to find out what programming a Busch 2090 feels like, you can emulate one using an Arduino.

Continue reading “Pi Pico Becomes SRAM For 1981 Educational Computer”

YouTube Like It’s 1970s France With This Minitel-VCR Mashup

When it’s not just sticking fake gears on things and calling it a day, the Steampunk look is pretty cool. Imagining technology in a world stuck with Victorian aesthetics is a neat idea, and one that translates to the look of other time periods — Fallout, anyone?

But what if you try to create a technological aesthetic based on a more recent and less celebrated time? That’s what [ghettobastler] has attempted with this somewhat bizarre Minitel-YouTube-VCR mash-up. Taking inspiration from a webcomic’s take on “Formicapunk,” modern tech based on the aesthetic of the wildly successful French videotex service of the 70s and 80s, the system uses a very cool Minitel 1B terminal and a Raspberry Pi 3.

A custom level-shifter for the Pi

With the help of a level-shifting circuit, the Mintel and the Pi talk over serial, allowing the terminal to be used as, well, a terminal for the Pi. Videos are downloaded from YouTube by the Pi, which sends the video to the VCR from its composite output, and controls the VCR with an IR LED that emulates the original remote. Come to think of it, just watch the video below — it’s probably easier than trying to describe it.

It’s weird, true, but we love the look of that Minitel terminal. Something about it just screams cyberdeck; if anyone has a spare one of these, get busy and put something together for our Cyberdeck Design Contest.

Continue reading “YouTube Like It’s 1970s France With This Minitel-VCR Mashup”

JTAG Hat Turns Raspberry Pi Into A Networked Debugger

Over the last year or so we’ve noticed a definite uptick in the number of folks using OpenOCD on the Raspberry Pi. It’s a cheap and convenient solution for poking around with various microcontrollers and embedded devices, but not always the most elegant. Looking to improve on the situation somewhat, [Matthew Mets] has been working on a purpose-built JTAG Hat to clean things up a bit.

Onboard level shifters allow you connect to JTAG and SWD interfaces from 1.8 to 5 V, and if you power the target device from the Pi itself, there’s even support for measuring the voltage and current. To connect up to your target, the open hardware board features a “legacy” pin header perfect for jumper wires, as well as a dedicated 10-pin Cortex Debug Connector. Whether you spin up your own or buy one assembled, it certainly looks like a tool worth having around if you often find yourself working with the appropriate chips.

In addition to the design files for the hardware, [Matthew] has also provided some nice documentation on how to get the software side of things up and running. Starting with a blank SD card, it walks you through the initial setup of the Raspberry Pi all the way through the installation and configuration of a patched version of OpenOCD designed to support the JTAG Hat.

If you spend more time working with 8-bit AVR chips, don’t worry. Last year we covered a similar project to turn everyone’s favorite Linux SBC into an all-in-one microcontroller development powerhouse.

Tetris For Game Boy Gets Online Multiplayer

Released in 1989, the Game Boy version of Tetris is notable for being the first game to support multiplayer via the so-called “Game Link Cable” accessory. So it’s fitting that, 32 years later, that same game is now playable with others over the Internet thanks to an open source USB adapter from [stacksmashing].

As explained in the video below, the adapter is essentially just a Raspberry Pi Pico paired with some level shifters so that it can talk to the Game Boy’s link port. That said, the custom PCB does implement some very clever edge connectors that let you plug it right into the Link Cable for the original “brick” Game Boy as well as the later Color and Advance variants. This keeps you from having to cut up a Link Cable just to get a male end, which is what [stacksmashing] had to do during the prototyping phase.

The DIY breadboard approach works as well.

Of course, the hardware is only one half of the equation. There’s also an open source software stack which includes a Python server and WebUSB frontend that handles communicating with the Game Boy and connecting players. While the original game only supported a two person head-to-head mode, the relatively simplistic nature of the multiplayer gameplay allowed [stacksmashing] to expand that to an arbitrary number of players with his code. The core rules haven’t changed, and each client Game Boy still thinks it’s in a two player match, but the web interface will show the progress of other players and who ends up on top at the end.

To be clear, this isn’t some transparent Link Cable to TCP/IP solution. While something like that could potentially be possible with the hardware, as of right now, the software [stacksmashing] has put together only works for Tetris. So if you want to battle Pokemon over the net, you’ll have to do your own reverse engineering (or at least wait for somebody else to inevitably do it).

The Link Cable port on the Game Boy, especially on the later versions of the hardware, is a surprisingly versatile interface capable of much more than just multiplayer gaming. While we’re certainly keen to see [stacksmashing] develop this project farther, we’re equally excited to see the non-gaming applications of such an easy to use computer interface for the iconic handheld.

Continue reading Tetris For Game Boy Gets Online Multiplayer”

Schematic of Diode Level Shifter for WS2812

Cheating At 5V WS2812 Control To Use 3.3V Data

If you’re looking to control WS2812 (or Neopixel) LEDs using a microcontroller running at 3.3 volts, you might run into some issues. The datasheet tells us that a logic high input will be detected at a minimum voltage of 0.7 * Vcc. If you’re running the LED at 5V, this means 5 V * 0.7 = 3.5 V will be needed for the WS2812 to detect a ‘1’ on the data line. While you might get away with using 3.3 V, after all the specification in the data sheet is meant to be a worst case, it’s possible that you’ll run into reliability issues.

So usually we’d say “add a level shifter to convert 3.3V to 5V” and this post would be over. We even have a whole post on building level shifters which would work fine for this application. However [todbot] at CrashSpace came up with a nifty hack that requires fewer components yet ensures reliability.

bigbutton-front-backFor the Big Button project at CrashSpace, [todbot] used an ESP8266 running at 3.3 volts and WS2812 LEDs running at 5 V. To perform the level shift, a signal diode is placed in series with the power supply of the first LED. This drops the first LED to 4.3 V, which means a 4.3 V * 0.7 = 3.01 V signal can be used to control it. The logic out of this LED will be at 4.3 V, which is enough to power the rest of the LEDs running at 5 V.

This little hack means a single diode is all that’s needed to control 5 V LEDs with a 3.3 V microcontroller. The first LED might be a little less bright, since it’s operating at a lower voltage, but that’s a trade off [todbot] made to simplify this design. It’s a small part of a well-executed project so be sure to click-through and enjoy all the thought [todbot] put into a great build.