Show HN: I replaced a $120k bowling center system with $1,600 in ESP32s

2935 points by section33 ↗ HN
I might be the only SRE on Earth with his own bowling center. It's a more in-depth gig than you'd think.

My family and I bought an abandoned 8-lane bowling center in the rural mid-west. In our small town there weren't many recreation options for families. You've heard of a food desert? This is an R&R desert.

It had been abandoned for a good reason. The roof leaks, the electrical system was constantly surging, and my 70-year-old bowling equipment (still) doesn't work perfectly. The system that keeps your score is particularly interesting to me. It's the thing you watch during your game, but it fades into the background beyond that. Turns out these things are really cool, but absurdly expensive.

Ours was installed in 2008 and cost six figures. It's calculating ball speed and trajectory, camera-based pin detection (object detection and trig, on ICs!), runs the fouling, the animations, the pinsetting machine and ball return. Very cool stuff for its age.

From the business perspective, my facility only cost me $105k. To forklift-replace the score keeping system runs anywhere between $80-$120k, depending on features, vendor, and unit age. No upgrades or service contracts, mind you, and every feature and customization is a new line item. That's for a 1:1 replacement on a system installed in 2008. Incredible, given how fast the tech world moves.

Replacement parts cost a shocking $4000 per pair of lanes. But wait, the bowling machines themselves are 70 years old, so what's this "advanced" system actually doing back there? Actuating a single relay to trigger that big old machine. Everything else is strictly mechanical. Meanwhile I've got a six-figure invoice in my hand. I'm upset.

Given the state of open hardware, computer vision, real-time event streaming, and open source running megascale products worldwide, there had to be a way to do this myself.

So far I've built an equivalent prototype for about $200 per lane-pair, $400 if you're fancy. ESP32 and ESPNow with an RS485 fallback, reporting to a raspberry pi lane computer that's really just redis and a state machine bolted to an ESP32 gateway for the mesh.

Since it's all ESP32, I've got a fistful of spare controllers in a drawer, pre-flashed or waiting to be. All common off-the-shelf hardware: microcontrollers wired to relays, optocouplers, and IR-break-beam sensors, each running slightly different firmware. Writing the firmware and protocol is the actual hard part.

It's an ESPNow star-topology mesh: each node emits events from its sensors and accepts commands for its controls, reporting to a gateway node connected to the raspi over UART. From there it's event streaming: RX packets get translated and tossed into redis, commands relay back out to the mesh as needed. RS485 sits underneath as a wired fallback for noisy RF environments.

Once the data's in redis, it's familiar middleware/React/websocket/pub-sub stuff. Any React dev can build their own UI and bowling animations. Since it all runs on commodity hardware, I can do legit anything I want as the proprietor, and I own all my data. Repairs take five minutes; I can swap the rig on a lane pair in under 10. I'd bet a house like mine could go from zero to running in an hour or two.

We're calling it OpenLaneLink, and I plan to open source the hardware, firmware, and software stack when it's ready. Bowling is fun, and I want to help keep it affordable for alleys like mine. I hate vendor lock-in. I'm not a fan of closed systems, calling support for every hiccup, or paying to "white label" my own equipment. Want to go Tron-themed for a night? Good luck finding a neon neumorphic theme in something bought at the turn of the century.

All that bugged me. Sure, bowling equipment is niche, but the open hardware and software landscape is amazing.

Thanks for reading! Let me know if anyone's interested in more posts about this bowling nonsense.

158 comments

[ 0.23 ms ] story [ 84.5 ms ] thread
Right now I'm working on adding LED + DMX DJ light control - I kinda want to be able to order LED strips to "chase" a ball as it goes down the lane or back up the return. I plan on triggering laser-light shows and such with the DMX controller.

Eventually, I want to allow a customer walk up to the lane, tap to pay and start bowling immediately, too. Kiosk-ize bowling alleys, yknow?

I'm pumped. So much room for activities!

Best post in a lonnnng time. Need any help? I have some dmx/dj experience from my days in digital signage.
Hopefully you can synch the light flashes to the ball rotation:

1: maybe make the ball look like it isn't rolling - or even backspinning

2: perhaps it could you make the amount of side-spin or other spin more obvious to help learning

Maybe hard to read the ball rotation accurately: even if the ball was marked with dots or bands that help?

Tap to pay probably doesn't help with getting people into the alley but probably helps with 'one more game'.

Your beginners have to come for shoes anyway, and the pointer to which lanes to take (you don't want them taking a lane at 6:30 that's reserved at 7)

I'll throw out two quick suggestions for you:

- DMX kinda sucks but it's manageable. Cabling isn't cheap, it really wants shielded 120 ohm cable. If you do go that route, don't cheap out and use Mic cable or Cat-5, you'll be chasing ghosts forever.

- However... Art-net is an absolutely brain dead simple protocol that you can run over WiFi or ESP-Now if you don't care about it being perfect, or over Ethernet with an ESP32 with an Ethernet PHY or a Teensy or similar. I'm serious, you can implement it in an afternoon. Lots of COTS lighting controllers can talk Art-net, and you'll be amazed at how trivial it is to make a Python script to blast out the appropriate UDP packets.

- sACN is the new kid on the block for this stuff though and it's a little more complex. Not to shill LLMs... I hadn't actually heard of it before, Claude mentioned it and then one-shotted both a server (ESP32-side) and a test client (Python). There were a couple little bugs, but about two hours from never having heard of the protocol to having existing COTS lighting design software talking to it was pretty dope.

The other annoy bit with DMX: it's 250kbaud RS485, so it's not always trivial to just make a USB-serial-RS485 adapter that will actually run at that baud rate. With the Art-net/sACN approach, it is trivial to get an ESP32 or similar to run at that baudrate and drive the RS485 DE pin correctly as well.

Enjoy!

1. Can we stack two lanes on top of each other, please? Make homemade bunklanes?

2. Something about preventing people from rubbing the bowling balls on your precious lanes.

3. Laser light shows + Liquor license = Bowling Alley Wine Mixer

Sorry, I got overly excited by your reference. I say that so GD much, at least once a month, for nearly 20 years now haha. SOOO much room for activities!

Hi,

What you accomplished here sounds interesting, both from an entrepreneurial point of view and also from the engineering side.

A good, nice, detailed technical write-up of what you achieved here would be very interesting. Maybe a Hackaday.com blog entry, too? Put it on GitHub?

Have fun :)

EspNow is really helpful in this kind of network.

For those not familiar it uses WiFi packets to send short messages without any WiFi log on.

Excellent approach to an interesting issue... I hope you will share more information about everything around here! And good luck!
Ah, that's extremely cool! I'm enjoying hacking around with ESP32s etc at the moment (maybe it's just nice to do something physical that an AI can't) and it's amazing how mature the hardware ecosystem around them is. I'd love to hear more, both about the tech and the economics.
Real question. Did you have any contact with organized crime? Some of the 'territory' of nothing-type technologies like vending are said to be 'owned' by certain groups.
Not that I know of! My market research shows something like < 3500 remaining bowling proprietors in the US, down from 12k in the 60's. I think the lack of alternatives is just a matter of being super, super niche -and- a legacy industry if I'm being honest.
That is awesome. I worked at a bowling alley as a mechanic in high school (Brunswick A2) and got a sense of how stupid expensive the replacement equipment was. At one point another employee spilled their coffee over the keyboard used to control the score-keeping system, apparently the replacement was something like $400. What fancy proprietary keyboard did you get for that $400? The keyboard cable replaced with a phone plug.
I'd make all ESP32 controllers the same - same ready-made PCB, plug-in terminals for the controller and screw terminals for inputs and outputs. ESP32-S3 has enough of IO to handle an absurd variety of tasks. You can have at least 40 ESP32s on the same WiFi reporting data within milliseconds of the event and taking commands via HTTP APIs. Firmware updates are easy over WiFi, too. You can probably have the same firmware for all of them with precise logic configured via the HTTP API. Works well for me in https://github.com/kachurovskiy/nanoels - albeit with just 1 ESP32 per machine :)
I think that an overview of how the machinery works and how it interfaces would be interesting.

As a side note, I do enjoy the bizarre bowling animations that the screens come up with.

Lol, nice! It depends on what you mean by "owning a bowling center," but it looks like there are at least two of us into this :D

I bought a really old fully mechanical (and automated!) mini bowling lane. It works without a CPU, except for the score display, which originally used a 1970 Intel D8749H (MCS-48)!

Just like yours, the only thing that turns this machine on is a single relay :D On my model, I also get feedback on the pin status and a "ball received" signal, so I can trigger the scoring.

I dumped the firmware and replaced the display PCB with a more recent DIY PCB with an Arduino that speaks a modern, documented protocol. It's now compatible with ScoreMore software, and I can do a lot more with it.

Here are some pictures and more info on the Bowltech forum (you should post your stuff here too!):

* https://www.bowltech.com/forum/small-scale-bowling/small-sca...

@vik8 on discord if you need :)

I love it! I actually looked at integrating with scoremore myself, but once I crossed into hardware world, I still couldn't get over how much fouling alone cost. $750 / unit and they're -ancient-.

Definitely will post on bowl-tech as well. I'm just new enough to have a lot of that new-guy anxiety around posting OpenLaneLink there yknow? Those guys know -everything- about this stuff.

Can you explain the significance of the single relay? My car starts with a single solenoid.
I’m just going to say I am going to find a way to be the third person in your bookclub. This is so cool!
Hah! I remember playing a couple times in one of those Alf Minibowling machines in Madrid in the early/mid nineties... It's a string machine, isn't it?

Kind of funny that factory is in a small town next to Zaragoza...

It's nowadays so easy to create your own custom esp32 thing. I used to control a home battery installation. Used it on a old Landrover defender where we added a complete dash unit with digital gauges. Used it for controlling a Zigbee 12v switch to activate sprinklers in a garden. In combination with Claude one can create an entire setup in a couple days. Before I was sometimes spending a week on the lcd drivers alone.
Heh - do you have a "blog" (ala jwz's DNA Lounge)?

(This is the kind of retiring from IT tale that I love to read and follow the trials and tribulations of over the years - good luck, thanks for open-sourcing your work!)

man I haven't thought of that blog for like 20 years. crazy how many old blogs and web comics that I used to check every day that I've mostly forgotten about.
I only check 4/day now. For awhile when RSS/Atom was big, I had hundreds - but was inundated with "too much info" and so wouldn't check anything for weeks at a time and then it was a slog - never did get into the Google Reader, was a fan of RSSBandit.

My dailies continue to be; Antipope (Charlie Stross), Whatever (John Scalzi), Contrapositive Diary (Jeff Duntemann) and the aforementioned jwz...

That one was perhaps more of a cautionary tale, given the economics.
Heh - that's where I was going with the "tribulations" aspect of my comment - which is why I like to read honest blogs - those dreams of "someday I might do 'X'", only to find someone who has - and then read all the challenges that had/have to be overcome. (which is not to say that hard-work and following a dream/passion-project are not worth doing - it's just nice to have more understanding of the risks/rewards and issues)
Back when I was in school I interned at a company installing bowling lanes / machines. Even back then it was fairly simple technology, no cameras or speed measurement yet, just some inputs from the machine as to what pin-cords had been pulled out (i.e. what pins fell down) translated to some simple animations. I remember the screens being just a simple VIA motherboard running DOS + their software from a compact flash card.

Sounds like a great project to work on given how cheap both hard- and software is becoming. Wishing you all the best!

N.b. The forces in the machines can easily break hardware so be sure to move it away from the machine if possible, and otherwise protect it appropriately.

In the US tethered pins with cords aren't really a thing, instead most bowling alleys use mechanical pinsetter machines. These machines are large, complex, and expensive (see here for a video on how they work: https://www.youtube.com/watch?v=Iod6uwUGM2E ) which is why he's talking about the equipment being 70+ years old- with the revenues most bowling alleys make, it's not economical to replace a pinsetter instead of maintaining the current one. This also means that the alley needs to have a mechanic on staff to keep the pinsetter running smoothly.

The way the machines detect the pins is still fairly simple. The assembly that puts the pins into place moves down after the ball is thrown, and has sense switches above each pin that detect which pins are still standing.

(comment deleted)
Honestly this sounds amazing for a vlog on YouTube
This is cool! I too was thinking some time back about creating a CCTV for home using a Raspberry Pi 5 to avoid having my data leak over company-controlled data backups for those. But yeah, I guess I should start thinking about it again.
Is there a URL I can send people? I would like to show this to an OG in the pro circuit who has been looking to buy an alley and modernize it but is being dissuaded by the exact situation you are describing.

We so desperately need more 'third spaces' and Bowling Alleys are great for this

This is great content. Have you thought about a second income stream by teaching prospective tech business owners on Youtube? It's a model ppl are successfully using?
I started bowling in my teens and as a programmer have often wondered about how these things work, and have had a few opportunities to peek under the hood of the machines. Incredible stuff. Thank you for this work, I'll point my alleys to your creation when it's public.
- A Digital Twin of the facility in 3D?

- R3F and Drei for React-based 3D Three.js animations; but it might be best to pre-render at high FPS and encode with ffmpeg

- ProjectM, MilkDrop3, limit

- TIL about shuffle skating aka jam skating

- OpenNext NextJS

- Serwist for a PWA so that you can access your stats when not connected

- IndexedDb, sqlite-wasm, duckdb-wasm

- To run lights, projectors, etc. (with low enough hertz to avoid PSE Photosensitive Epilepsy risk) I have heard about: OSC (BespokeSynth, Resolume,), SMPTE LTC, Resolume projection mapping, mapmapteam/mapmap projection mapping,

Open Lighting Architecture has a list of Ethernet Protocols including OSC, and a list of USB/Serial/Network devices.

HyperHDR does ambient lightning to match displayed video.

Sometimes the glare from all of the lights is too much for visually impaired persons and animals FWIU; no varying lights hour might win too.

- If the machines are so old that all you need is a relay, there's possibly not as much need to model the whole system with TLA+ and check the proof.

Could ask the model about an "SIL" (Safety Integrity Level) controller or similar for a bowling alley. Rust RTIC and Rust embassy have RTOS features.

How to write unit and integration tests for the system without hardware simulators that can randomly fault.

- Soft-white backlit multicolor(?) ePaper displays would save energy and cut glare.

Most flying insects cannot see red, orange or yellow light;

Red preserves night vision. Blue keeps operators awake. Blue and white cause the worst glare. Jet instrument gauges are reddish/orange-ish.

- UV Blacklight paint, UV LED Black light.

Blue light glasses are great for reducing UV blacklight glare.

- Best LED projector 2026

- Gogs/Gitea/Forgejo host Issues, repos and can run Actions with nektos/act.

Cool project. Integrate an issue tracker with mobile notifications?

This is awesome, and I'm really happy that someone is trying this. Recreational spaces are severely lacking in so many places now: while I love digital things, it can't fully replace actual group activities in meat space, but I guess it's just not as profitable since it doesn't scale.

I would totally be a patron with my family at your bowling center, and would love to read a blog or something about your journey.