Sketch of a Tandy TRS-80 Model 100 with Arduino Mega 2560

TRS-80 Model 100 Gets Arduino Heart Transplant

When [Stephen Cass] found himself with a broken Tandy TRS-80 Model 100 portable computer, the simplest solution was to buy another broken one and make one working computer from two non-working computers. However, this left him with a dilemma — what to do with the (now even more) broken one left over?

LCD layout is unusual by modern standard, but optimized for fast updates

Naturally, he did what a lot of us would do and used modern hardware to interface with the original parts that still work. In this case it meant replacing the motherboard with an Arduino Mega 2560.

Luckily, the Model 100 has a substantial fanbase and there’s a lot of helpful information available online, including the detailed service manual, that helped [Stephen] to understand how to drive the unusual display.  The LCD has a resolution of 240×64 pixels, which are broken down into eight zones of 50×32 pixels, and two zones of 40×42 pixels.  Each zone is then further divided into four banks, eight pixels tall, so that each column of eight pixels corresponds to a single byte.

Every one of the ten zones is controlled by an individual HD44102 driver IC, connected to a 30-bit wide bus for selecting the correct chip, bank and column.

With the Arduino handling the data, the old LCD still needed a -5 V supply for contrast and an RC filter to smooth out the PWM signal [Stephen] is using to adjust the viewing angle.

With the new interface, [Stephen] is able to access all of the pixels on the original display, and to use modern graphics libraries such as displayio. With the display issue solved, he intends to use a separate Teensy 4.1 to connect with the keyboard matrix and provide a VT100 terminal interface.

Schematic of the HD44102 driver circuit

Upcycling old, broken hardware can be a lot of fun and is always educational.  Understanding why certain design decisions were made at a time when the engineering trade-offs were different can lead to insights that are directly relevant to modern designs when resources get tight. In this case, the quirky LCD drivers were a response to making the display of text as efficient as possible, so as not to overburden the processor.

The TRS-80 computers are ripe for hacking, with their “built-for-service” designs, and we’ve featured a few in the past.  Some have replaced the motherboard with something newer, like [Stephen], whereas others have also replaced the display, or connected them to the cellphone network.

Have you found new ways to get old hardware working? Tell us in the comments below or send us a message on the Hackaday tips line.

Thanks to [nb0x0308] for the tip!

Trojans Can Lurk Inside AVR Bootloaders

If there’s one thing we’ve learned over the years, it’s that if it’s got a silicon chip inside, it could be carrying a virus. Research by one group focused on hiding a trojan inside an AVR Arduino bootloader, proving even our little hobbyist microcontrollers aren’t safe.

The specific aim of the research was to hide a trojan inside the bootloader of an AVR chip itself. This would allow the trojan to remain present on something like a 3D printer even if the main firmware itself was reinstalled. The trojan would still be able to have an effect on the printer’s performance from its dastardly hiding place, but would be more difficult to notice and remove.

The target of the work was the ATmega328P, commonly used in 3D printers, in particular those using the Marlin firmware. For the full technical details, you can dive in and read the research paper for yourself. In basic terms, though, the modified bootloader was able to use the chip’s IVSEL register to allow bootloader execution after boot via interrupt. When an interrupt is called, execution passes to the trojan-infected bootloader’s special code, before then returning to the program’s own interrupt to avoid raising suspicion. The trojan can also execute after the program’s interrupt code too, increasing the flexibility of the attack. Continue reading “Trojans Can Lurk Inside AVR Bootloaders”

An orange and white cat eats from a bowl with a hinged cover. The cat and the bowl are on top of an MDF platform.

Load Cells To Get The Right Pet The Right Food

If you have more than one pet, you may know how hard it is to tell how much each furry friend is eating. If you introduce prescription foods, then this minor annoyance can have a major impact on your pet’s health. Facing this dilemma, [tomasdiazwahl] set out to make a pet feeder that feeds his pets exactly what they need when they approach the feeder.

Using the ever-popular Arduino Uno, the feeder is connected to a platform that uses load cells to detect the pet’s weight. The weight data is then used to identify which animal is looking for food. Once the pet is identified, the correct food bowl opens. It seems this prototype only has one food chamber to keep unauthorized pets from eating the special food, but the basic idea should be extensible to two or more chambers. While some existing solutions read the pet’s microchip or NFC collars to determine who’s at the feeder, [tomasdiazwahl] decided against these given the fickleness of trying to reliably get a reader at the correct position relative to the pet. As long as you don’t have multiple pets with the same weight, it should work just fine.

This project has a nice mix of woodworking, 3D printing, and electronics showing what can be accomplished when you aren’t afraid to mix techniques. We also really appreciate that [Tomasdiazwahl] spent the extra time to include a testing procedure and safety mechanism into the project. Designing a device to improve your pet’s health shouldn’t come with a safety risk!

This isn’t the first cat feeder we’ve covered that uses weight to tell the difference between the pets, and if you want a simpler project to start with, check out this Simple Auger Pet Feeder.

Arduino Nano Powers Reverse Polish Notation Calculator

There’s something about Reverse Polish Notation (RPN) and the calculators that use it. It calls to mind a time when a calculator was a serious tool, and not just a throwaway toy. Created in the legacy of such calculators by HP and Texas Instruments, [Simon Boak] shows off his SB116, sporting an Arduino Nano under the hood. It’s a fully custom design, with a hand-built metal case, a custom PCB for the keyboard, and a tiny OLED display for maximum retro green goodness.

The impetus for this build was to replace a particular calculator, a well-used TI Programmer, that’s useful for working with 6502 assembly. The SB116 supports binary, octal, decimal, and hex; and boasts some downright useful functions — AND, NOT, OR, XOR, and bitshifts. The source code is available, but you’re on your own for the case and keyboard. And for maximized retro faux-nostalgia, [Simon] designed a box that would have looked right at home on an 80s store shelf.

Stick around for more retro-modern takes on calculators, or tales of repairing a genuine vintage model.

Ethersweep: An Easy-To-Deploy Ethernet Connected Stepper Controller

[Neumi] over on Hackaday.IO wanted a simple-to-use way to drive stepper motors, which could be quickly deployed in a wide variety of applications yet to be determined. The solution is named Ethersweep, and is a small PCB stack that sits on the rear of the common NEMA17-format stepper motor. The only physical connectivity, beside the motor, are ethernet and a power supply via the user friendly XT30 connector. The system can be closed loop, with both an end-stop input as well as an on-board AMS AS5600 magnetic rotary encoder (which senses the rotating magnetic field on the rear side of the motor assembly – clever!) giving the necessary feedback. Leveraging the Trinamic TMC2208 stepper motor driver gives Ethersweep silky smooth and quiet motor control, which could be very important for some applications. A rear-facing OLED display shows some useful debug information as well as the all important IP address that was assigned to the unit.

Control is performed with the ubiquitous ATMega328 microcontroller, with the Arduino software stack deployed, making uploading firmware a breeze. To that end, a USB port is also provided, hooked up to the uC with the cheap CP2102 USB bridge chip as per most Arduino-like designs. The thing that makes this build a little unusual is the ethernet port. The hardware side of things is taken care of with the Wiznet W5500 ethernet chip, which implements the MAC and PHY in a single device, needing only a few passives and a magjack to operate. The chip also handles the whole TCP/IP stack internally, so only needs an external SPI interface to talk to the host device.

Continue reading “Ethersweep: An Easy-To-Deploy Ethernet Connected Stepper Controller”

Touch Tone MIDI Phone And Vocoder Covers Daft Punk

[poprhythm]’s Touch Tone MIDI Phone is a fantastic conversion of an old touch tone phone into a MIDI instrument complete with intact microphone, but this project isn’t just about showing off the result. [poprhythm] details everything about how he interfaced to the keypad, how he used that with an Arduino to create a working MIDI interface, and exactly how he decided — musically speaking — what each button should do. The LEDs on the phone are even repurposed to blink happily depending on what is going on, which is a nice touch.

Of course, it doesn’t end there. [poprhythm] also makes use of the microphone in the phone’s handset. Since the phone is now a MIDI instrument with both a microphone and note inputs, it’s possible to use them together as the inputs to vocoder software, which he demonstrates by covering Around the World by Daft Punk (video).

We love how [poprhythm] explains how he interfaced to everything because hardware work is all about such details, and finding the right resources. Here’s the GitHub repository for the Arduino code and a few links to other resources.

We have seen MIDI phone projects before, and each one is always unique in its own way: here’s a different approach to converting a keypad phone to MIDI, and this rotary pulse-dial phone went in a completely different direction with the phone itself completely unmodified, using only external interfacing.

You can admire [poprhythm]’s Touch Tone MIDI Phone in action in the short videos embedded below, with each one showing off a different aspect of the build. It’s great work!

Continue reading “Touch Tone MIDI Phone And Vocoder Covers Daft Punk”

The Ease Of Wireless Charging, Without The Wait

Historically, there have been a few cases of useful wireless power transmission over great distances, like a team at MIT that was able to light up a 60 W bulb at several meters, and of course Nikola Tesla had grand dreams of drawing energy from the atmosphere. But for most of us wireless power is limited to small, short-range devices like cellphone chargers. While it’s not a lot of work to plug in a phone when it needs a charge, even this small task can be automated.

This build begins with a 3D printed cradle for the smartphone to sit in. When the device detects that the phone has been placed in the cradle, it uses a linear actuator to drive a custom-built charging cable into the phone’s USB port. Similarly, when the phone is lifted from the cradle the cable is automatically removed. It appears that there is some play in the phone’s position that lets the charger be plugged in smoothly, and the project’s creator [Larpushka] points out that the linear actuator is not particularly strong so we don’t imagine the risk of damage is very high.

While wireless charging still may have the edge when it comes to keeping debris out of the port, we still really enjoy a project like this that seems to be done for its own sake. There are some improvements that [Larpushka] plans to make, but for now we’re delighted by this build. For anyone looking to add true wireless charging to any phone that doesn’t have it, though, it’s not too difficult to accomplish either.