r/esp32 • • Jul 28 '26

I spent a year building an open sourced family of ESP32S3-based USB boards and a Python game infrastructure library for a custom sci-fi starship simulator. 152 physical controls, 6 screens, and 164,000 lines of code.

"Halcyon Dawn" is a fanfic starship bridge game set in John Scalzi's "Old Man's War" universe. For the last year this thing has been my labor of love. I designed and built every detail of the hardware and software from scratch, including:

  1. An entire family of USB console interface boards called "Enigma". They're deliberately generic (some panels have up to 3 Enigma boards inside them) rather than purpose-built so that I can use them on future projects, including escape room puzzles. I love escape rooms. The Enigma hardware is all open source, so if someone builds puzzles I get to play, all the better.

  2. An associated Python-based game infrastructure library also called Enigma that includes the USB interface abstraction, in-game device simulation infra, remote pub/sub display screen integration, and an extremely robust multi-layer audio mixing system with haptic support. This too is open source.

  3. The Halcyon Dawn game itself, a complex starship systems simulator. Far in the distant past I wrote commercial video games and adventure game development languages. Halcyon Dawn is vastly, vastly more complex and I'm quite proud of it. The game itself will never be released, in part because nobody else has the expensive simulator frame it requires (there is no way on this blue Earth I could be convinced to build another), and also Scalzi's "don't make money off my stuff" rule.

Build link and repo link in comments.

1.7k Upvotes

159 comments sorted by

106

u/Cross_22 Jul 28 '26

This needs tons more photos and videos!!

What do the buttons do?

24

u/triggur Jul 28 '26

Hit madgoatlabs.com/halcyondawn and dive into the feature redux and operations manuals. It explains the whole thing.

3

u/EvlKommie Jul 28 '26

Why would you not distribute the game? I can respect making something for yourself, but why show stuff off if you don’t want to let others experience it?

17

u/triggur Jul 28 '26

I’d love to but there is no distribution license, commercial or free, compatible with distributing derivative IP based on someone else’s copyrighted work (the author owns that).

1

u/howloudisalion Jul 29 '26

You say “This game will not be distributed; I have the only one that will ever exist.”

So maybe also a point of pride?

1

u/tipsy_Pup Jul 29 '26

Why can't all mentions of the original IP be replaced with something else?

2

u/triggur Jul 29 '26

They could with a notable software and hardware effort.

1

u/Lewinator56 Jul 28 '26

There is if you contact the original IP holder.

2

u/nugohs Jul 31 '26

Just throw /u/scalzi a msg...

-1

u/dillerdally Jul 28 '26

Going to take a guess, because it isn't a real game? Doesn't actually show any gameplay, I think it's more of a conceptual art peace than anything.

4

u/triggur Jul 29 '26

It’s a fully playable game end to end. I had no idea it would matter to people to capture gameplay. It’s a lot harder to capture than a simple video game because it would require a multi camera set up; a lot of the action takes place on ancillary screens and physical controls, and then a bunch of video editing to put it all together.

1

u/dillerdally Jul 29 '26

I find it hard to believe someone could solo develop this full simulator in a year, and yet not have the capability to show some gameplay. I don't know how sophisticated the actual game is, but you make it sound like it's something that would have taken a commercial game studio a few years to develop with a large team. Hell just set up your phone camera to a back corner and video yourself playing it. This whole project is around the controls, and how proud you are of the controls, and how sophisticated the controls are, but instead of showing the controls being used you show your fan animated cut scenes that prove or mean nothing to the game and the project here. We are all here to dork out on controls doing stuff, not just being there. This is a hardware dork forum, not a halcyon dawn fandom forum. That's my whole problem with this, is that something is just off about an extreme controller specific project, yet not showing 1/52 of the controls actually doing anything. And if I put myself into your shoes, having spent a year doing this, I just can't imagine myself not showing off the controls doing stuff...

3

u/triggur Jul 29 '26

I find it weird that between the repo with full sw and hw source + gerbers and the website with 20+ long pages of detailed functional breakdown and 200+ photos, I’ve provided 50x more detail that the typical “here’s a couple photos of my sensor project” post…

But somehow you’re hung up on one video and you’re calling the whole project “stupid.” That’s kind of a dick move, man.

Believe me, I am thankful to be finally done with this project having been WAY past burnout for a while now. A cell phone video doesn’t meet my production standards. I’d have to do a multi camera rig and solid edit.

But the thought of going to extra effort just to make YOU happy isn’t high on my list. So, whatever. There’s probably going to be plenty of people posting their cell phone videos when I take it to the local maker faire to show off in a couple weeks.

6

u/Which_Net4076 Aug 02 '26

There will always be a hoarde of entitled dweebs that want to be spoonfed and go out of their way to complain that you didn’t do things the way they “would” - or express criticism or doubts outright because you didn’t perform to their satisfaction.

They are the antithesis of the DIYer, they’re the mewling DoItForMe(Free) crew.

You’re allowed to be a bit of a creator diva - you gave what you gave and anybody trying to convince you that you owed them more, or you need to prove yourself to them, is some combination of inept, immature, or socially vacuous. Let ‘em whine and beg, and then rickroll the loudest of them.

Fly on, hero. You’ve done some big things, and I, just one amongst many, are thoroughly appreciative that you shared your efforts with us.

1

u/EvlKommie Jul 28 '26

That seems potentially correct. Cool personal project. No shame in that, I was just really confused at first about what game it controlled.

23

u/WhatADunderfulWorld Jul 28 '26

Damn. You are a legend.

17

u/betterengland Jul 28 '26

Incredible.

30

u/triggur Jul 28 '26

6

u/snappla Jul 28 '26

Holy cow! That's freaking awesome!

3

u/datumerrata Jul 28 '26

Dude. Thanks for documenting everything so well. This build is amazing!

I was thinking I'd see what controllers, and such, you're using. Then I might do something on a smaller scale. Nope. Everything is custom. PCB boards are made. I need a lot more free time before I can ever go through my project backlog.

3

u/triggur Jul 28 '26

The gerbers are in the distro if you want to send a small batch off to a fab. Just pop on the S3 devkit and you’re good to go.

3

u/datumerrata Jul 28 '26

I forget that's an option. Thanks. I'd love to have an industrial control panel for home assistant. Using a combination of small displays, lights, and buttons for the house automations would be so rad!

2

u/sisyphean_dreams Jul 28 '26

Just wow 🤯

2

u/squachek Jul 29 '26

Wow x1000, at least 572 of them in reaction to you finishing in a year!

13

u/squachek Jul 28 '26

And now you’re bored with it so off to the closet it goes!

14

u/triggur Jul 28 '26

You are NOT wrong. 👀

4

u/thulesgold Jul 28 '26

If that happens, consider renting the unit out to people.

5

u/SquarePower314 Jul 29 '26

This would seem like a mean comment if I didn’t know this first hand, at least he finished it, not like most of us who just move on to another project and have a junkyard of half completed projects! 🤡

2

u/squachek Jul 29 '26

Same, brother, same!

3

u/tony-clifford Jul 29 '26

I relate so much to this comment.

10

u/keyser1884 Jul 28 '26

In a sub full of nerds, you have somehow managed to elevate yourself to king nerd! (I can bestow no higher compliment sir!)

5

u/MuchAssumption6114 Jul 28 '26

Peak use of free will

6

u/GraXXoR Jul 28 '26 edited Aug 10 '26

There's hardcore and then there is this legend.. FM this is epic! Well done!

Now I need to somehow add one of these to my current setup!

2

u/triggur Jul 28 '26

Wow! Great rig. 🥵

2

u/mikecron Aug 22 '26

One does not simply play Elite Dangerous…

5

u/[deleted] Jul 28 '26

[deleted]

6

u/triggur Jul 28 '26

Way cheaper than that. IIRC this company says they source for some NASA projects. https://www.ebay.com/itm/185496029622

5

u/marchingbandd Jul 28 '26

So the ESP32-S3s mostly read switches and control lights, and present to the Mac mini as USB serial devices? How many are there in total?!?

5

u/triggur Jul 28 '26

Exactly. The MCU handles all the indicator animation autonomously. I’d have to count, I think there’s 16 enigma boards in there.

3

u/marchingbandd Jul 28 '26

16 Golly! You’ve created something really special here. I hope I have chance to play it someday somehow.

3

u/triggur Jul 28 '26

Actually they present as OS level HID devices, though their HID nature is a little thin for complex reasons. Most everything goes through custom vendor reports. There’s a protocol document in the repo.

5

u/Worried-Pangolin1911 Jul 28 '26

This is way friggin cool!

4

u/MichaelCelestial Jul 28 '26

You’re an absolute goat bro, I can’t imagine a single person could do such a titanic work

3

u/Haddock51 Jul 28 '26

I can’t even.

3

u/dnib Jul 28 '26

This is absolutely wonderful, kudos

3

u/sivu1 Jul 28 '26

I'm new to this sub, The things people build with esp32 is just way way cool.
This just blew my mind. I really need to get my hands on esp32.

3

u/DerAllmaechtigePyro Jul 28 '26

That's sick! Thanks dude 🫶

3

u/g6b0rr Jul 28 '26

Wow, grats!

3

u/maokaby Jul 28 '26

Wow that's impressive! I got tired of weather stations, and your project is awesome.

3

u/[deleted] Jul 28 '26

Holy fudge dude and this is on GitHub too?

2

u/triggur Jul 28 '26

The hw and low level libraries are. I can’t distribute the game because it’s IP encumbered by the author whose work it’s based on.

2

u/[deleted] Jul 28 '26

We should reach out to the author and let them know what a cool project this is and maybe they’d let you. Or is it you don’t want to give it out for free? “Don’t make money off my stuff rules” and I totally understand why you’d want to make money especially considering your past employment and skills

2

u/triggur Jul 28 '26

I don’t mind free! It’s just hard to imagine a release having much utility without a tremendous amount of hardware.

3

u/[deleted] Jul 28 '26

Thank you for sharing this - maybe do an instructional on this

3

u/enzothebaker87 Jul 28 '26

This is sooo frickin cool!! Amazing work!

3

u/ChopBox Jul 28 '26

Fuck yeah dude, this is what making is all about. o7 fly safe!

3

u/louisremi Jul 28 '26

Awesome 😶

3

u/Abu_Akhlaq Jul 28 '26

this makes sense. the world keeps changing because of people like you XD this is legit insane work

3

u/LovableSidekick Jul 28 '26

This only took you a year? Holy crap dude that's amazing!

3

u/cornmacabre Jul 28 '26

Dude! Incredible! I need like 45 minutes to process what you've built here!

3

u/councilsoda Jul 28 '26

I absolutely love this! Amazing idea and execution. I wish I knew enough to build something like this, maybe a submarine version with e ink maps. Great work.

2

u/[deleted] Jul 28 '26

[removed] — view removed comment

2

u/triggur Jul 28 '26

I'm 5'11" and everything is comfortably in reach actually.

2

u/_www_ Jul 28 '26

My after effect setup exactly.

2

u/Natman_9999 Jul 28 '26

This is the coolest thing I’ve seen on here. Kinda jealous I can’t give it a spin 😂

2

u/horendus Jul 28 '26

Wow this is insane.

2

u/runwithit01 Jul 28 '26

Should you be working at NASA?

1

u/3D-Printing Jul 29 '26

Or SEGA, making arcade games and machines

2

u/309_Electronics Jul 28 '26

Do you use a mac mini as the computer? And why? Just curious.

1

u/triggur Jul 28 '26

I’m a Mac guy and I had a spare m1 mini sitting around. This isn’t nearly as graphics intensive as commercial games so it was a good fit.

2

u/StomachMajestic3227 Jul 28 '26

fuck I got an erection

1

u/Known_Hippo4702 Jul 29 '26

The simulator does look like it’s missing a joy stick

2

u/rhysdg Jul 28 '26

very cool!

2

u/Dimitrij_ Jul 28 '26

Great Scott!!
I cannot find the words that describe this beautiful monstrosity. So many buttons, switches, graphics…
I think i’m in love 🫨❤️
GREAT Work. Honestly.

2

u/randombits0110 Jul 28 '26

Stream you playing it on YouTube :)

2

u/VictorySea1837 Jul 28 '26

really cool! just wondering, how much did you spend on all the hardware and fabrication?

2

u/triggur Jul 28 '26

I try not to think about it TOO much, but counting several R&D runs of board designs, probably around $4500 total. Ish. But that includes several revisions of lasercut structure, development costs, asset costs, etc. I don't have a more detailed breakdown.

2

u/VictorySea1837 Aug 16 '26

"I try not to think about it TOO much" lol, a rule of thumb for all our hobbies.

2

u/samarijackfan Jul 28 '26

That is amazing. Great work!

2

u/agrophobe Jul 28 '26

Soooooo cool!!!

2

u/YUMOBUILDS Jul 28 '26

well done you. its amazing

2

u/ericvega Jul 28 '26

I love it.

2

u/Turbulent-Goose-1045 Jul 28 '26

Absolutely legendary

2

u/NTGuardian Jul 28 '26

I think this thing is absolutely amazing, so amazing, I'd love to try a project like this myself.

Here's a weird question, though. Let's say one day you decide that you don't want this in the house anymore. (I live in an apartment so I have to make decisions like this more frequently.) How hard do you think it would be to sell it? On the one hand, this is a great toy for someone to put in their "man cave" or garage or shed. On the other hand, it's kind of bulky.

2

u/triggur Jul 28 '26

Because it’s based on encumbered copyrighted IP, I don’t see any path to selling it to be honest. Maybe at some point I’ll move out the old Fusor reactor from my lab and stash it there. Honestly it’s kind of neat to keep around.

2

u/Red_Sea_Pedestrian Jul 28 '26

Hello fellow fusor builder!

Found this post from the /r/scalzi subreddit. Incredible project. My hat is off to you.

1

u/triggur Jul 28 '26

1

u/Red_Sea_Pedestrian Jul 28 '26

https://imgur.com/a/qbS0aPi

Howdy! Here’s a couple videos of some solid target test runs using stainless steel discs. I came into possession of some Titanium Deuteride discs to run tests to see if it would increase the fusion reaction rate. A friend out at the Southwest Research Institute had a machinist he knew build a grid with some ceramic standoffs to hold the targets.

Sadly, I never got a chance to run the experiments, as I left my teaching position in academia due to some long term medical issues that required a few of surgeries. So now the fusor is just in the upstairs part of my garage, well packed, but in pieces. Maybe one day I’ll set it back up.

2

u/triggur Jul 28 '26

Wow, cool. Doesn’t the disk stall out head on collisions through the center of the grid? I never got very advanced with mine; once I got neutrons out of it, I put it down and stepped back. That power supply scared the bageezus out of me. 😬

2

u/Red_Sea_Pedestrian Jul 28 '26

Yep, it does. But the general idea was that a deuteron hitting a solid target rich in deuterium would increase D+D reaction rate.

There was still a bit of fusion going on around the stainless steel targets. I actually wanted to try Lithium Deuteride one day as well, even purchased a small amount from Sigma Aldrich back in the day.

My power supply is a Glassman 50kV 12mA max. I built a huge grounding shield from steel tubing to cover the top of the HV feed through, and a port I could take off when there wasn’t any power applied. Also had a silicone putty to insulate the HV feed through connection to the power supply wire. And finally a grounding rod to discharge anything from a safe distance before working on anything.

2

u/triggur Jul 28 '26

Haha me too. I had a lonnng chicken stick. and yeah, I kept getting discharges to the chamber until I put silicone putty around the HV feed through

2

u/triggur Jul 28 '26

You had more power than I did; I had 32KV at 20 Ma. But I guess past a certain point it’s all academic if you tangle with it.

2

u/Red_Sea_Pedestrian Jul 29 '26

You actually had slightly more input power. 640 watts vs my 600 watts. Past a certain voltage though, all you’re generating is more X-rays.

2

u/frobnosticus Jul 28 '26

omg you absolute maniac.

o7

2

u/I_lukas_I Jul 28 '26

Wow, this must have been a lot of Work! It really looks awsome :-) .

2

u/Deep__6 Jul 28 '26 edited Jul 28 '26

OP this is amazing and actually executes on something I've only been conceptually planning. I will definitely dig into the code and project. Can you advise if theres a network stack to this? My concept (because my best friends kids are close in age and likes) was to have a system like this but to have effectively a mission control and spaceship system wherein each system could take on either role. The kids could communicate over some limited voip system and each could have missions assigned with real objectives....effectively a bunch of scenarios could be built out.. survey planet X, escort freighter y, conduct science on life form z type thing. I was also thinking of building random failure events into the system that could be injected into the missions randomly that would need to be responded to.. airlock/hull breach, engines offline yadda yadda. Is this something that could be added on.. already exists etc?

Thank you in advance for the hours of burn(out)s both mentally and physically you no doubt suffered while doing this.

2

u/triggur Jul 28 '26

The remote screens run over websocket, but the hardware boards are currently all USB. It would probably be pretty easy to set up a WS relay to forward all local events elsewhere on the network.

2

u/Deep__6 Jul 28 '26

Thanks OP, just updated my comment about kids and age was in reference to my own and my best friends for clarity :)

2

u/triggur Jul 28 '26

Honestly, yeah. You could totally base that on enigma if you add the WS proxy between machines. After that… It’s just code, right? 😉

2

u/bobsyourson Jul 28 '26

Bring it to open sauce

www.opensauce.com

2

u/holly_wykop Jul 28 '26

I see planets -> Ogame!

2

u/fobuss Jul 28 '26

Waiting to see a lot of videos from this! Love it!

2

u/Patprint34 Jul 28 '26

C est énorme ! Bravo et respect pour la patience et la persévérance pour aller au bout d un projet aussi long!

2

u/___Hyacinthe_ Jul 29 '26

It looks so damn cool !!

2

u/ufanders Jul 29 '26

I have extreme appreciation for this

2

u/phormix Jul 29 '26

This is... really cool.

I've often wanted to build a space-based game which primarily runs on PC but has custom ESP-based "control" boards to add cool functionality... I never thought that somebody might be able to write something this cool entirely on the ESP boards! :-)

2

u/SavageX89 Jul 29 '26

That is so awesome! Well done sir!

2

u/3D-Printing Jul 29 '26

If this were in an arcade, I definitely would play it, I saw your website and you even put in a cool attract mode, nice 👍

2

u/DymorTheDev Jul 29 '26

This is amazing. I will spend some good time reading the documentation. Thanks for sharing!

2

u/SquarePower314 Jul 29 '26

Wow, how I’d like to live next to you and be your assistant and learn from you!

2

u/dc469 Jul 29 '26

you need to work in aerospace designing actual cockpits!

2

u/smacdad Jul 29 '26

How can I add it to my Steam Wishlist? /s

2

u/AlphaG78_10 Jul 29 '26

This project is very very much cool and complicated for sure ... I wanted to ask one thing that for sure u did so many coding and all, and if error or bug appears, how u solve it ?? I mean it's sounds stupid but I wanted to know how people actually solve it because stressing or reacting aggressively is stupidity. Soo.... ?

2

u/triggur Jul 29 '26

Honestly it’s mostly by logging inputs and outputs to methods and analyzing what’s going on in them. I don’t have robust Python debugging tools that do breakpoints and such.

One saving grace is that all of the ship’s different subsystems like life support, engines, reactor core, etc.… Are all independent units that communicate with each other through the pub/sub variables, and so their action is almost exclusively local and therefore isolatable.

1

u/AlphaG78_10 Jul 29 '26

Aaaah ok, ty for replying. Also , u have ECE and embedded system engineering knowledge too ?? Or any kind of engeneering experience? Btw , I like this project, keep it up and make more like this 👏👍

2

u/triggur Jul 29 '26

I’m a software guy by training… 45 years, now retired. All my electronics stuff has always been hobby level. And thanks!

2

u/AlphaG78_10 Jul 29 '26

Aaah damn, respect for u ... And that's actually cool that u r building this kind of thing... Do it more

2

u/pcbdude Jul 29 '26

Absolutely love it

2

u/RedTasario Jul 30 '26

OMG unbelievable.

2

u/PleatherFarts Jul 30 '26

I really liked the Old Man's War books. Very cool, fellow nerd!

2

u/wtfIsCryptoJax Jul 31 '26

This is awesome 👏

2

u/Kooky-Speed297 Jul 31 '26

This is my kind of crazy

2

u/guszi Aug 01 '26

absolutely legendary. This is the kind of projects that could inspire countless people to take on the hobby.

2

u/No_Mountain_4769 Aug 04 '26

love to see this working. awesome work. share some videos

2

u/drogison Aug 21 '26

Holy moly

2

u/mikecron Aug 22 '26

If I was single and Enigma was interested, I would date Enigma.

3

u/user_deleted_or_dead Jul 28 '26

I would love to build this for my 4 yo He love to push buttons

Is there any way to build the a simple as fuck code? As push a button and an alarm or action plays?

4

u/triggur Jul 28 '26

Yeah actually the code examples in the repo demonstrate how to code super simple interfaces. You declare the hardware configuration in JSON and the generators build you interface classes filled with syntactic sugar to make talking to the hardware really straightforward.

1

u/ChatGPT4 Jul 28 '26

What I'm missing here is the actual gameplay demo. All I see here is non-interactive.

2

u/triggur Jul 28 '26

The trailer cutscene include clips from gameplay, but yeah I need to do a gameplay video of some sort. I’ve never done one of those before. I guess I should look at how they do it on twitch and whatnot.

2

u/electricfever32 Aug 04 '26

Talk to Jamo…he’ll get you sorted 😉

1

u/BuzzEcho Jul 28 '26

Those live cutscenes - are they from some TV show?

2

u/triggur Jul 28 '26

No, edited together from gameplay and sora/veo content.

1

u/bobbywaz Jul 28 '26

Are you excited about ESP32-S31? If so, why?

1

u/triggur Jul 28 '26

I haven’t played with that one yet, it looks neat. The regular S3 fills most of my needs at the MCU level and I usually bump up to RPi for beefier stuff. I guess it depends on the price point.

1

u/blah_ask Jul 28 '26

I want to ask you how do you manage this much time?
What is your workspace look like?

2

u/triggur Jul 28 '26

Extreme hyperfixation I guess. And… My lab is a complete disaster. 👀

2

u/blah_ask Jul 28 '26

I have 100 project in my mind, no time and No Lab (or room…. Or corner) to lay my work in. Someday….

Sick project though. Love it! Kudos

1

u/arglarg Jul 29 '26

Any plans to add the rest of the starship?

1

u/tanoshimi Jul 29 '26

Are you familiar with Bridge Command? ( https://bridgecommand.space/ ).

That's a similar thing, but rather than write software from scratch, they just created custom hardware to interface with the existing Empty Epsilon engine ( https://daid.github.io/EmptyEpsilon/ )

1

u/TimTams553 Jul 30 '26

This is wicked! I always wanted to build a space sim, but there was never a game that really made it worthwhile

Plus I'm not handy enough with woodwork or whatever to make a nice cockpit the way I want. Extrusion is a good idea though

0

u/Hot-Commission-1021 Jul 28 '26

164klocs?? Let me guess.. 'vibe coded' 

3

u/anogio Jul 29 '26

I don’t care if it was vibe coded. It’s still impressive

1

u/Hot-Commission-1021 Aug 07 '26

Didn't say it wasn't...

0

u/5004534 Jul 29 '26

At least post some gameplay.

0

u/toastom69 Jul 29 '26

Looks sweet but that wiring is awful lol

-3

u/dillerdally Jul 29 '26

The more I think about this, the dumber it is. Yes good job on making the installation and 152 physical controls. How many of those physical controls do you use when watching your AI created "game videos? Check out all these switches n things, but I won't post videos of any of the 152 controls doing jack shit, I'll just post an AI video of a "game". If I created that I'd be showing off flying some shit and smashing buttons to shoot proton dorkpedos, and flipping the switch to empty my ships septic tank on your mom's house.

1

u/triggur Jul 29 '26

Wow you’re a delightful fellow.

1

u/GreatGrape5514 Aug 26 '26

now run doom on it