element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Project Videos
  • Challenges & Projects
  • element14 presents
  • Project Videos
  • More
  • Cancel
Project Videos
Documents Reviving a Vintage LED Sign with Arduino and PS/2 Control -- Episode 708
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Project Videos to participate - click to join for free!
Related
Recommended
EMI-Reduction-Techniques
Engagement
  • Author Author: cstanton
  • Date Created: 1 Apr 2026 2:58 PM Date Created
  • Last Updated Last Updated: 2 Apr 2026 12:34 PM
  • Views 9393 views
  • Likes 6 likes
  • Comments 8 comments

Reviving a Vintage LED Sign with Arduino and PS/2 Control -- Episode 708

An ageing LED sign picked up from an auction turns into a practical exercise in reverse engineering, electrical safety, and creative interfacing. After uncovering unsafe internal wiring, Clem rebuilds the power system, then works around the original control limitations by using an Arduino Uno R4 WiFi to emulate a PS/2 keyboard, unlocking a simple but effective way to update messages. Along the way, he explores the quirks of legacy hardware, from timing-sensitive inputs to unreliable networking attempts, ultimately giving the display a functional second life.

Watch the Build

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Reviving a Vintage LED Sign - With a Few Lessons Along the Way

Clem has a habit of picking up hardware that most people would walk past. So when an ageing LED sign surfaced at an event company auction, it didn’t take much convincing before it ended up on his bench. At first glance, it’s exactly what you’d expect from a previous generation of display tech: rows of discrete red LEDs arranged into a scrolling matrix. No modular panels, no driver ICs doing the heavy lifting, just a dense grid of components and straightforward multiplexing.

Against better judgement, Clem powers it up before opening it.

It works.

Even more interestingly, it’s still displaying its last programmed message, preserved from its previous life. A small detail, but one that immediately confirms the hardware is at least functional, and worth digging into further.

image

A Shocking Discovery

That initial optimism fades quickly once the enclosure comes off.

Inside, this isn’t a neatly engineered commercial product. It’s been modified, heavily. The most concerning detail is the power input: mains AC wires are soldered directly onto an AC/DC converter module, with no strain relief, no insulation, and no grounding.

Clem doesn’t overstate it, he calls out just how precarious this setup is, noting that “this is the sort of thing that only works until it really doesn’t”. The entire system depends on external protection breakers, RCDs, rather than anything inside the unit itself. It’s a hazard.

Before anything else, that has to be addressed.

imageimage

Making It Safe (First, Always)

There’s no attempt to salvage the original power arrangement.

The internal supply is removed entirely and replaced with a simple, external 5 V input via a barrel jack. The sign itself has modest power requirements, so a regulated supply,like a Raspberry Pi adapter, is more than sufficient.

It’s not an interesting modification, but it’s the most critical one. As Clem puts it, “there’s no point reverse engineering something you can’t safely touch.”

Only once the risk is eliminated does the project move forward.

image

Inside the Sign

With the electrical hazards out of the way, attention turns to the electronics.

The controller board is built around an 8051-family microcontroller, unsurprising for hardware of this era. There’s no clear branding or standardisation; everything about the board suggests it’s been adapted rather than designed as a standalone product.

The LED matrix reinforces that impression. Tracks have been cut and rerouted, and sections appear to have been physically reshaped to fit the enclosure. Clem notes that “it looks like the display and the case weren’t originally meant for each other.”

This isn’t just old hardware, it’s repurposed hardware that’s already had one life before this.

image

UART… or Not?

The next step is straightforward in theory: find a way to change the message.

A connector on the board looks promising—something resembling a UART or RS-232 interface. Clem brings in an Arduino Uno R4 WiFi, specifically chosen because it operates at 5 V logic levels, avoiding the need for level shifting.

He wires directly into the pins and starts probing.

Nothing.

No valid serial output. No obvious baud rate. No response when transmitting. Clem remarks that “it behaves like it should be serial, but it just… isn’t.”

The working theory shifts: this connector may not be for programming at all. Instead, it likely served as a link between multiple signs—daisy-chaining displays rather than configuring them. It’s a dead end. The breakthrough comes from something far less technical.

Among the accessories that came with the sign is a sheet of command instructions, and a PS/2 keyboard.

Plugging it in works immediately.

The sign accepts specific key sequences and stores messages internally. No protocol decoding, no reverse engineering required, just a human interface that had been there all along. Clem highlights the simplicity of it: “sometimes the interface is exactly what it looks like, it’s just a keyboard.”

That discovery re-frames the problem entirely. Instead of trying to talk to the sign electrically, the goal becomes emulating a keyboard.

image

Teaching an Arduino to Type (Very Slowly)

Using the Arduino Uno R4 and a PS/2 device library, Clem sets out to replicate keystrokes programmatically. This turns out to be less straightforward than expected.

Timing is critical. The sign is extremely sensitive to how quickly input arrives. If characters are sent too fast, they’re dropped or misinterpreted. Clem notes that “it only really behaves if you type like a person—and not a particularly fast one.”

The solution is deliberately slow input, with significant delays between each keypress. The implementation in code reflects this. A simplified version of the approach:

void sendMessage(const char* msg) {
    sendControlSequenceStart();

    for (int i = 0; msg[i] != '\0'; i++) {
        ps2Keyboard.write(msg[i]);
        delay(150); // deliberately slow to match human typing
    }

    sendControlSequenceEnd();
}

The full implementation in Clem’s code expands on this with control characters, message framing, and serial input handling, allowing text to be sent over USB and translated into PS/2 keystrokes.  Clem points out that AI-assisted coding helped bridge some of the gaps here, particularly in structuring the PS/2 communication: “it got me 80% of the way there, and then I had to make it actually work.”

There is one limitation: after updating the message, the sign requires a power cycle before it begins scrolling the new text. It’s not ideal, but it’s consistent, and workable.

image

Putting It on the Network

With reliable message input achieved, Clem pushes further. The Uno R4’s built-in Wi-Fi opens the door to remote control. A lightweight web server is implemented, exposing a simple interface where messages can be submitted via HTTP requests.

On paper, it’s a clean solution. In practice, it’s inconsistent.

Clem observes that “sometimes it works perfectly, and sometimes it just drops off the network entirely.” The metal enclosure likely contributes to signal attenuation, but even with the board exposed, reliability isn’t guaranteed.

This leaves the networking aspect in an unfinished state, a proof of concept rather than a dependable feature. Despite the false starts and limitations, the outcome is clear. The sign is now safe to use, fully programmable, and capable of being driven by modern hardware. It retains its original character, hundreds of red LEDs scrolling text in a way that feels distinctly of its era, but with a new interface layered on top.

Clem sums it up simply: “it’s not perfect, but it works, and that’s kind of the point.”

What started as a questionable auction find is now a functioning piece of workshop hardware, ready for a second life, this time without the risk of electric shock, and with just enough modern control to make it genuinely useful.

image

Supporting Files and Links

- Github Repository (Code Snapshot)

Bill of Materials

 

Product Name Manufacturer Quantity Buy Kit
Ardunio uno R4 wifi ARDUINO 1 Buy Now
Rpi power supply Raspberry pi 1 Buy Now
Product Name
old led sign

  • reverse engineering electronics
  • 8051 microcontroller
  • e14presents_mayermakes
  • multiplexed LED display
  • DIY LED display
  • retro electronics restoration
  • WiFi microcontroller project
  • arduino uno r4 wifi
  • PS/2 keyboard emulation
  • embedded systems project
  • LED matrix control
  • serial communication troubleshooting
  • hardware hacking
  • Arduino PS2 library
  • electronics repair project
  • vintage LED sign
  • friday_release
  • Share
  • History
  • More
  • Cancel
Actions
  • Share
  • More
  • Cancel
  • Sign in to reply
Parents
  • michaelkellett
    michaelkellett 11 days ago

    PS/2 has a sort of handshake system where the host can hold the clock low to stop the keyboard from transmitting. I wonder if your LED bar and Arduino library actually implement this correctly.

    https://en.wikipedia.org/wiki/PS/2_port

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Comment
  • michaelkellett
    michaelkellett 11 days ago

    PS/2 has a sort of handshake system where the host can hold the clock low to stop the keyboard from transmitting. I wonder if your LED bar and Arduino library actually implement this correctly.

    https://en.wikipedia.org/wiki/PS/2_port

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
Children
  • mayermakes
    mayermakes 6 days ago in reply to michaelkellett

    both are in doubt.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube