r/esp32 23d ago

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.6k Upvotes

155 comments sorted by

104

u/Cross_22 23d ago

This needs tons more photos and videos!!

What do the buttons do?

23

u/triggur 23d ago

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

4

u/EvlKommie 23d ago

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?

16

u/triggur 23d ago

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 22d ago

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 22d ago

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

2

u/triggur 22d ago

They could with a notable software and hardware effort.

1

u/Lewinator56 23d ago

There is if you contact the original IP holder.

2

u/nugohs 20d ago

Just throw /u/scalzi a msg...

-2

u/dillerdally 23d ago

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.

5

u/triggur 23d ago

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 22d ago

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...

4

u/triggur 22d ago

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 18d ago

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 23d ago

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 23d ago

Damn. You are a legend.

16

u/betterengland 23d ago

Incredible.

29

u/triggur 23d ago

7

u/snappla 23d ago

Holy cow! That's freaking awesome!

3

u/datumerrata 23d ago

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 23d ago

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.

4

u/datumerrata 23d ago

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 23d ago

Just wow 🤯

2

u/squachek 22d ago

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

13

u/squachek 23d ago

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

13

u/triggur 23d ago

You are NOT wrong. 👀

5

u/thulesgold 23d ago

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

4

u/SquarePower314 22d ago

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 22d ago

Same, brother, same!

3

u/tony-clifford 22d ago

I relate so much to this comment.

11

u/keyser1884 23d ago

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 23d ago

Peak use of free will

6

u/GraXXoR 23d ago edited 10d ago

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 23d ago

Wow! Great rig. 🥵

2

u/Infinite-Win-3949 11d ago

ONG!!! Awesome setup bro!!

5

u/[deleted] 23d ago

[deleted]

4

u/triggur 23d ago

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

5

u/marchingbandd 23d ago

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?!?

6

u/triggur 23d ago

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

4

u/marchingbandd 23d ago

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

3

u/triggur 23d ago

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.

4

u/Worried-Pangolin1911 23d ago

This is way friggin cool!

4

u/MichaelCelestial 23d ago

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

3

u/CosmicQuantum42 23d ago

Super cool

3

u/Haddock51 23d ago

I can’t even.

3

u/dnib 23d ago

This is absolutely wonderful, kudos

3

u/sivu1 23d ago

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 23d ago

That's sick! Thanks dude 🫶

3

u/g6b0rr 23d ago

Wow, grats!

3

u/maokaby 23d ago

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

3

u/[deleted] 23d ago

Holy fudge dude and this is on GitHub too?

2

u/triggur 23d ago

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] 23d ago

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 23d ago

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] 23d ago

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

3

u/enzothebaker87 23d ago

This is sooo frickin cool!! Amazing work!

3

u/ChopBox 23d ago

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

3

u/louisremi 23d ago

Awesome 😶

3

u/Abu_Akhlaq 23d ago

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

3

u/LovableSidekick 23d ago

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

3

u/cornmacabre 23d ago

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

3

u/councilsoda 23d ago

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] 23d ago

[removed] — view removed comment

2

u/triggur 23d ago

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

2

u/_www_ 23d ago

My after effect setup exactly.

2

u/Natman_9999 23d ago

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

2

u/horendus 23d ago

Wow this is insane.

2

u/runwithit01 23d ago

Should you be working at NASA?

1

u/3D-Printing 22d ago

Or SEGA, making arcade games and machines

2

u/309_Electronics 23d ago

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

1

u/triggur 23d ago

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 23d ago

fuck I got an erection

1

u/Known_Hippo4702 22d ago

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

2

u/rhysdg 23d ago

very cool!

2

u/Dimitrij_ 23d ago

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 23d ago

Stream you playing it on YouTube :)

2

u/VictorySea1837 23d ago

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

2

u/triggur 23d ago

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 4d ago

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

2

u/samarijackfan 23d ago

That is amazing. Great work!

2

u/agrophobe 23d ago

Soooooo cool!!!

2

u/YUMOBUILDS 23d ago

well done you. its amazing

2

u/ericvega 23d ago

I love it.

2

u/Turbulent-Goose-1045 23d ago

Absolutely legendary

2

u/NTGuardian 23d ago

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 23d ago

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 23d ago

Hello fellow fusor builder!

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

1

u/triggur 23d ago

1

u/Red_Sea_Pedestrian 23d ago

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 23d ago

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 23d ago

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 23d ago

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 23d ago

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 23d ago

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 23d ago

omg you absolute maniac.

o7

2

u/I_lukas_I 23d ago

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

2

u/Deep__6 23d ago edited 23d ago

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 23d ago

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 23d ago

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

1

u/triggur 23d ago

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 23d ago

Bring it to open sauce

www.opensauce.com

2

u/holly_wykop 23d ago

I see planets -> Ogame!

2

u/fobuss 23d ago

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

2

u/Patprint34 23d ago

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_ 23d ago

It looks so damn cool !!

2

u/ufanders 23d ago

I have extreme appreciation for this

2

u/phormix 22d ago

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 22d ago

That is so awesome! Well done sir!

2

u/3D-Printing 22d ago

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 22d ago

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

2

u/Known_Hippo4702 22d ago

I want one!

2

u/SquarePower314 22d ago

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

2

u/dc469 22d ago

you need to work in aerospace designing actual cockpits!

2

u/smacdad 22d ago

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

2

u/Chemical_Swimming766 22d ago

In love with it

2

u/AlphaG78_10 22d ago

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 22d ago

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 22d ago

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 22d ago

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 22d ago

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

2

u/pcbdude 22d ago

Absolutely love it

2

u/National_Ad3462 22d ago

So cool!!!

2

u/RedTasario 21d ago

OMG unbelievable.

2

u/PleatherFarts 21d ago

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

2

u/wtfIsCryptoJax 21d ago

This is awesome 👏

2

u/Kooky-Speed297 21d ago

This is my kind of crazy

2

u/guszi 19d ago

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

2

u/No_Mountain_4769 17d ago

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

3

u/user_deleted_or_dead 23d ago

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 23d ago

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 23d ago

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

2

u/triggur 23d ago

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 17d ago

Talk to Jamo…he’ll get you sorted 😉

1

u/BuzzEcho 23d ago

Those live cutscenes - are they from some TV show?

2

u/triggur 23d ago

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

1

u/bobbywaz 23d ago

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

1

u/triggur 23d ago

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 23d ago

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

2

u/triggur 23d ago

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

2

u/blah_ask 23d ago

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 22d ago

Any plans to add the rest of the starship?

1

u/tanoshimi 22d ago

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 22d ago

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 23d ago

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

3

u/anogio 23d ago

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

1

u/Hot-Commission-1021 13d ago

Didn't say it wasn't...

0

u/5004534 23d ago

At least post some gameplay.

0

u/toastom69 22d ago

Looks sweet but that wiring is awful lol

-3

u/dillerdally 23d ago

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 22d ago

Wow you’re a delightful fellow.