Ideas

Production Board.

The rebuilt production board: three shifts with plan, actual, UPH and efficiency, and a 24-hour grid

A Korean client, someone I'd like to work with properly one day, asked me for a couple of changes. They had an old program showing hourly output on a screen above a production line, and they wanted it to run against a different server. That's all. A couple of changes.

I opened the old program to see what I was dealing with.

Everything on the screens below is made-up demo data. Not one real number from the line.

What I found

The old production board: one page, date and time, three shifts with plan, actual, UPH and percent, and an hourly table
The old board. This one page was the whole program. It looked like this at 18:28 and at 23:59, and at 00:01 it was empty again. Nothing stored, nothing to look back on, and one of these columns had been wrong for years.

It was written in a language that stopped being supported in 2008, last touched in early 2024 by a vendor nobody could reach anymore. Every shift time, every break, every hourly target, the cycle time, even the database password, was compiled into the program itself. If the line wanted a new plan for tomorrow, somebody had to find the original vendor and ask for a recompile.

It asked the production database about fifty questions every second, all day, every day. Millions of queries a day against a server that runs the line.

It forgot everything at midnight. A new day, a clean board, yesterday gone. Nobody could look at last Tuesday.

And the night shift number had been wrong for years. A copy-paste mistake: from midnight to six in the morning, one column was quietly showing the other column's count. Nobody noticed, because there was nothing to compare it to.

I could have patched it. That's what was asked. But I couldn't put my name on a wrong number and walk away.

What I built instead

I rebuilt the whole thing from nothing. Kept every number, every column, the three shifts and the 24-hour grid exactly as the operators know them, because people on a line don't need a new screen, they need the same screen that's right. There's even a theme that looks pixel-for-pixel like the old board, next to the new dark one.

It runs on a Raspberry Pi the size of a pack of cards, plugged in between their server and the TV. It never writes to their database. It reads, once every five seconds, one light question instead of fifty a second. Nothing is installed on their server. Nothing on it changes.

It works completely offline. The plant network has no internet and never will, so everything the app needs is inside the box: fonts, libraries, the lot. Updates come on a USB stick. And the boxes can talk to each other over that closed network, which is where the next part comes in.

The Raspberry Pi 5 kit in a small black case: USB-C power, micro HDMI to the screen, one network cable, one USB stick
The whole installation. Power, network cable, HDMI to the TV, a USB stick for backups. A spare imaged SD card in the drawer means a dead unit is swapped in minutes.

Everything it reads, it keeps. Every hour of every shift goes into its own history on the Pi. Seven days, thirty, ninety, a year, any range you like. For the first time the line has a memory.

The rebuilt board: morning, afternoon and night shifts with plan, actual, UPH, efficiency, and the hourly grid
The board. Same numbers the line has always looked at, now correct, now kept. This is demo data, not the real line.
The board with the current hour highlighted red and a BEHIND PLAN alert at the top
Behind plan. The current hour goes red and the board says so. Stops are logged. Alerts stay quiet during breaks, because a lunch break isn't a problem.
The same thing, moving. The line stops, the board notices, the board goes red. Demo data, no sound needed.

The things nobody asked for

The shift plan is entered once and the hourly targets work themselves out from the real working minutes, so the first hour, the lunch hour and the last hour get lower targets and the day still adds up. Breaks and shift times are editable in an admin panel, by someone with a password, and every change is written down: who, when, what it was, what it became.

Admin panel: breaks and shift times editable per shift
Breaks and shift times. Editable by a manager, not by a vendor with a compiler.
Plan change log with user, shift, what changed and old to new values
Every plan change, logged. Nothing here can be edited or deleted. Names blurred for the website, obviously.
History and trends: quantity versus plan over 30 days, efficiency chart, shift table
History and trends. The bit that didn't exist before. Last Tuesday is now a thing you can look at.

And exports, because a screen on a wall is not a report. Put a USB stick in, choose the dates and the shift, and it writes three files: an Excel sheet for whoever needs to add things up, a password-protected PDF for whoever needs to print it, and an HTML file that opens on any laptop with no internet and looks exactly like the app, charts and all, for whoever needs to stand in a meeting room and show it.

Export to USB dialog asking for a safe stick and a manager login
Export to USB. Manager login, safe stick, three files. The plant network has no internet, so everything works offline, on purpose.
Example PDF production report: totals, quantity versus plan and efficiency charts, plus a shift table in English and Korean
An example of the PDF report, one of the three files the export writes. Totals, charts, every shift in a table, English and Korean side by side. It asks for a password before it opens, and that password is set by whoever exports it, before the file is even written. Drop it into any presentation. Product name blurred here, demo data.

It speaks English and Korean. It always starts in English, because that's what they asked for, and that one I did as asked.

None of the rest was requested. Not the history, not the exports, not the alerts, not the admin panel. That's what I'd want if it were my line, from the years I spent managing people and production before I ever wrote a line of code. So I built it the way I'd build it for myself.

Where it's at

Ninety-nine percent, which anyone who builds anything knows is the longest one percent there is. Two hundred and twenty-five automated checks pass. The demo runs. The next step is plugging it into their real server, read-only, and watching it match the line.

In two weeks I show it to the people who asked for a couple of changes. They don't know yet. I've been rehearsing how to say "I didn't do what you asked, I did this instead" so it sounds like good news.

There's no contract. Nothing was promised. If they don't want it, I'll have built the best production board I know how to build, for a line I'll never see again. I can live with that.

Next: one more Raspberry Pi, the manager. It sits in the office and reads every line's box over the plant's own closed network, never the internet, and puts all four lines on one screen. Which line is running, which one is behind, which one has stopped, right now, without anyone walking to the floor. Each line keeps its own box and its own history. The manager just listens. That one is in progress.