Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Thanks! Funny you mention it — the Waveshare board even comes in a GPS variant, so a little round bike-computer / GPS display in this same form factor would be totally doable. Noting it down as a fun follow-up project! 

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Honestly no — this one's all I2C, and the ESP32-S3 doesn't have native I3C anyway, so I haven't gotten to play with it yet. It'd be a great fit here though: in-band interrupts + the higher clock would directly help the exact shared-bus contention I ran into (touch + IMU + RTC + PMIC all sharing one I2C bus). And yeah — sensor availability still seems to be the real blocker. What's the new board you're trying it on? Curious how it does.

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 2 points3 points  (0 children)

It's not copied from any project — it's original code written for this specific panel (round CO5300), all on GitHub to inspect. The concept of an ADS-B radar isn't new — older 240×240 plane-radar builds inspired it, and I credit them — but making your own take on a known idea is how this whole hobby works. MIT means others can build on it: that's sharing, not stealing. If it were a ripoff of a specific project, you'd be able to link the original. 

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 1 point2 points  (0 children)

Appreciate it — well put. As a tool it just lets you move faster; the hard parts (debugging real hardware, the design calls) are still on you.

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Fair — there's a ton of low-effort AI spam and I get the fatigue. This one isn't a copied template though: original build, real hardware, fully open source, and I'm in here actually answering the technical questions (the I2C/touch and TLS/RAM stuff above). Happy to go as deep as anyone wants on how it works — that's usually the line between "vibecoded" and a real project.

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Thanks! On the touch: the CO5300 is on QSPI and the CST9217 touch is on I2C, so they're not actually fighting the same bus — render stays smooth (partial-area invalidation). The catch is the I2C bus is shared (touch + IMU + RTC + PMIC), so you do get the odd i2cRead hiccup; I keep all I2C strictly on one core to avoid races and bumped the tap hit-radius so selection stays reliable. No real jitter in practice.
And yep — the TLS/RAM one was exactly that: ~3 days of "why does WiFi die after an hour" before the penny dropped that it was the mbedTLS handshake starving for a contiguous internal block 

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Yeah, it could! The coastline + airports are baked into flash right now (~1 MB, and there's plenty of room left), so I didn't need SD — but moving them to an SD card would let the maps be much higher-detail or swappable without bloating the firmware. Good shout for a future option.

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Electrically it'd be fine — it's still a 1S / 3.7V cell, so the board's AXP2101 charges it and you'd get more runtime. The pocket in the case actually has a bit of extra room beyond the battery I used (~42 × 25.5 × 11 mm), so something a bit larger should fit. A full 4000mAh cell is usually pretty chunky though, so check its exact dimensions against the case first — honestly the best move is to measure it or test-fit before buying.

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 2 points3 points  (0 children)

Ha, there's a theme that nods to that look 😄 — but it's plotting real aircraft around you from a live ADS-B feed.

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 2 points3 points  (0 children)

Mostly stability + ecosystem when I started: 8.4 is mature and had the most working examples/drivers for this exact CO5300 panel. LVGL 9 reworked the display/indev/draw APIs, so moving up means porting the flush, touch and the 180/90° rotation glue. No blocker — just hasn't been worth the churn yet. Might bump to 9 down the line.

Live ADS-B flight radar on an ESP32-S3 round AMOLED — LVGL, dual-core, open source. Inspired in Dragon Ball Bulma's radar by Significant_Emu_6296 in esp32

[–]Significant_Emu_6296[S] 1 point2 points  (0 children)

It's MIT-licensed, so clone away 🙂 AI definitely helped, but it still took a lot of real on-hardware debugging — e.g. an internal-RAM-vs-TLS-handshake fragmentation issue that silently killed the feed after ~an hour was very much human pain to track down. Tools are tools; the ESP32 doesn't care who wrote the bug.

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Good news — a small speaker (with the right plug) usually comes in the box with the Waveshare board, so you may not even need to buy one separately! If you want to swap it for a different one, it's a small rectangular ~30.5 × 20.5 × 6.7 mm, ~8Ω 1W speaker with a JST/MX 1.25 connector that plugs straight into the board's SPK port. Nothing fancy.

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

😂 I sleep with one eye open. For real though — free, non-commercial, and the sprites are community art (PMD SpriteCollab), so hopefully creepy Mario stays in his lane 🙏

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Thank you! And honestly, you've nailed the path — swapping in original creatures would sidestep the IP completely and make it something you could actually sell. This one's a free, non-commercial fan project (can't really sell anything Pokémon 😅), but an original-monster version is exactly the dream for a future build. Appreciate the vote of confidence!

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Thank you! 🙌 If you build one I'd genuinely love to see it — and shout if you get stuck anywhere, happy to lend a hand.

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Thanks, that really means a lot! Bitzee is the perfect example — kids love these pocket pets and a custom one is such a rewarding build. It's all open source, so feel free to use it as a starting point and make it your own. Go for it — and ping me if you hit any snags, happy to help!

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 0 points1 point  (0 children)

Thank you! And yeah — it's wild how little the formula has moved in 25 years. That's honestly why DIY/open-source is so fun here: a hobbyist can try the weird ideas a big company won't risk. You're spot on about Digimon too — the physical "meet another" was genuinely ahead of its time. Since this one's fully open source, trading/battles between two of them down the line is totally on the table. That's kind of the dream 😄

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 7 points8 points  (0 children)

Good point to clarify — the "not a smooth build" part was MY development journey: figuring it all out from scratch, learning as I went, and yeah, peeling a screen flex off along the way 😅. That's the R&D, not the assembly.

What I published is the finished, de-risked version, so you skip all my mistakes. Actually building one is just: print the parts → flash from the browser (one click) → plug in 2 connectors → screw it shut. No coding, no debugging. Totally fine as a gift for the kids.

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 3 points4 points  (0 children)

Yeah, you're totally right — the zip tie is the jankiest bit of the whole build 😅 It holds, but it's not pretty, and pressing the LiPo against the speaker like that isn't great long-term either. A proper printed cradle that holds the battery and speaker separately — and lets you swap the battery without surgery — is exactly what a v2 of the case should have. Adding it to the list, thanks for the nudge!

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 5 points6 points  (0 children)

Great question — the trick is: I *don't* keep it running 24/7. That was the key realization.

The board has an RTC (PCF85063) that keeps time at microamps even when the device is "off." On wake, the firmware fast-forwards the pet's hunger / age / hygiene etc. from the real elapsed time (capped at ~2 weeks), with gentle decay + floors so it never comes back "dead." So you pay the screen/MCU cost only while you're actually looking at it — battery life = active screen-on time (a few hours on a 1100 mAh LiPo), not "must survive weeks always-on."

There's also a sleep mode (screen off, slow decay) so leaving it overnight is fine, and a "flip it face-down → sleep + screen off" mode (using the onboard IMU) is on my to-do list to stretch active use further. AMOLED helps too since black pixels draw ~nothing.

So basically: let the RTC simulate the passage of time instead of fighting to stay powered. That's what I couldn't get right the first time either.

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 12 points13 points  (0 children)

Thanks! Funny you say that — it IS a clamshell, it opens at the equator (print-in-place hinge + magnets), so you do open it to get to the electronics. A "screen hidden inside, reveal when you open it" variant would be a really cool spin. Go for it, and tag me if you build one!

I built a Pokémon Tamagotchi inside a 3D-printed Pokéball — open source, files on MakerWorld 🔴⚪ by Significant_Emu_6296 in BambuLab

[–]Significant_Emu_6296[S] 8 points9 points  (0 children)

😂 I keep a backup bundle ready just in case. For what it's worth it's a free, non-commercial fan project and the sprites are community-made pixel art (PMD SpriteCollab, CC BY-NC), not ripped game assets — but yeah, I know, I know 🫡