The Controller Board Where Every Button Read as Pressed

This controller board rescue started with a custom control board that kept reporting buttons as pressed when nobody touched them. Worse, the engineer who designed it had left without handing over the files. We rebuilt the board on an Arduino Mega, with more inputs, more analog channels and inputs that can no longer float.

Client: A training-equipment manufacturer

Users: Operators of the client’s control equipment

Services: Project Rescue, System Integration

Year: 2025

Delivered: A redesigned controller board on Arduino Mega with more digital and analog inputs and pull-up protected inputs, plus new Arduino firmware and new Unity software

Before and after: the original board (blurred) and the redesigned Arduino Mega board.

The situation

The client controlled its equipment through a custom board. The board carried an Arduino Uno R4 WiFi, a bank of digital inputs for buttons and a few analog inputs for sensors and joysticks.

However, it didn’t stay reliable. After running for a while, the inputs would start to float, and the controller would then see every button as pressed at once. As a result, nobody could trust the equipment, and nobody on the client’s side could fix it.

What was broken

  • Inputs drifted into a floating state after running for a while, so every button read as pressed
  • No design files or firmware: the engineer who built the board had moved on without leaving the working files
  • Limited room to grow: a fixed number of digital inputs, and only three analog inputs, which an add-on ADC module extended

How we handled the controller board rescue

With no files to work from, patching the old board wasn’t an option. Instead, we redesigned the controller from scratch and treated the failure as the main requirement.

01

Inputs that can’t float

We set every button input to use a pull-up, so an unpressed button always reads a known state. A press pulls the line to ground. Consequently, a lost or noisy connection no longer looks like a press.

02

A bigger controller

We moved to an Arduino Mega. It gave us many more digital inputs and native analog channels, so the board no longer needs the add-on ADC module.

03

A cleaner connection layout

The new board has a labelled connector for every button, three joystick connectors, a power connector and two spare connectors for future needs.

We also wrote new code on both sides of the connection: new Arduino firmware for the board, and new Unity software that reads it. Since the original code never arrived, the board and the software now work together as one documented system.

The hard part: no files, and a fault that came and went

An intermittent fault is the hardest kind to fix, because the board works when you test it. The original only failed after it had run for a while. So the question became how to make the failure impossible by design, rather than how to replace a single bad part.

With no schematic or source code, we couldn’t rely on the previous designer’s intentions. On the other hand, starting clean let us choose a known-safe input scheme from the beginning. In the end, the client received a documented design that they own.

The result

We printed the new board in July 2025. Today the client has a replacement controller with matching firmware and Unity software, built on a common, well-supported platform. It has room for more buttons and analog inputs, and unconnected inputs read as “not pressed”.[Optional: a short quote from the client.]

What came next

In 2026, the client came back and appointed Syazmedia to build a new version of the board. This time it isn’t a rescue. It’s an improvement, built on a design that works and that the client owns.

Meanwhile, connecting Arduino hardware to Unity turned out to be a problem worth solving properly. As a result, the Unity side of this project inspired us to build the Serial Input Bridge, a tool that connects an Arduino to Unity’s Input System without custom serial code.

What this shows

Not every controller board rescue ends in a repair. When the files are gone and the fault sits in the design, the fastest route to a reliable product is often a clean redesign. It fixes the root cause, and it gives the client something they can maintain. In this case, it also earned a second project: the client trusted us with the next version.

Is your hardware unreliable, with no one left who knows it?

We can work out what’s wrong, then fix it or rebuild it so it stays fixed. Start with a free assessment.

1 thought on “The Controller Board Where Every Button Read as Pressed”

  1. Pingback: Custom Arduino Controller Board - Syazmedia PLT

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top