Inspiration
We wanted to take the hacker badge's interactivity to the next level by letting Hack the North attendees battle each other 1-on-1 in real time, on a game heavily inspired by Pokémon. Beyond the game itself, we were excited to learn mesh peer-to-peer networking and wanted to encourage people to explore the venue and connect with more event goers. At the end of the day, we wanted to work on an interesting and challenging problem.
What it does
Badgémon lists all players in close proximity and lets you challenge any of them to a battle. Take part in one-on-one fights, trigger wild encounters with geese by moving fast in the wild, and win more Pokéballs by beating other players.
How we built it
- Flashed custom embedded firmware onto the badge hardware
- Built a peer-to-peer networking framework using ESP-NOW
- Used LVGL for text, UI, and cheap image rendering
- Designed custom game assets in Figma, inspired by Hack the North's character art and branding
- Built a custom Pokémon-inspired game engine, wired into the networking layer for multiplayer
- Implemented a lobby system so players can challenge others nearby
- Used the accelerometer to trigger pokeball throws & wild encounters when running
Accomplishments that we're proud of
- Getting this running on the badge hardware without the official firmware
- Creative use of the badge's sensors, like the accelerometer
- Faithfulness to GBA Pokémon game graphics
- A small resource footprint
- Building something fun and social that people loved
- Not bricking the badge
Challenges we ran into
We initially weighed using the badge's built-in Lua framework versus building our own firmware. The Lua framework had solid tooling for deployment, which would've made it easy for players to install and join, but the wireless interfaces it exposes were very limited. We kept hitting memory constraints and could never get the boards talking to each other in our apps, so we pivoted to writing our own firmware and flashing it directly to our team's badges.
What we learned
- A deeper look into embedded programming
- How to build and debug tooling for a low-level embedded app
- Using agentic AI to help develop features with a verifiable feedback loop for self-correction
What's next for Badgémon
- Making use of more onboard hardware peripherals
- NFC-based Pokecentre, scavenger hunt style
- More gesture-based actions using the accelerometer and other motion sensors
- A peer-to-peer leaderboard
- A trading feature
Built With
- badge
- esp32
- pokemon

Log in or sign up for Devpost to join the conversation.