YOU CAN PUT AN ORIGINAL GAME BOY ADVANCE ONLINE, AND NOTHING GETS SOLDERED

An ESP32-S3 accessory that plugs into the Link Port of an unmodified Game Boy Advance and takes homebrew games online over Wi-Fi.

by Emilio Cano

FULL CAD BOM FIRMWARE DOCS

SoftwareGaming

Built withESP32

difficulty
●●●●○
time
a weekend-plus
license
MIT
repo
repo ACTIVE3 stars
1
Jump to section

COMPAREE VERDICT

CanoFlash is a clean technical solution to a problem that has sat unchanged since 2001: the Game Boy Advance shipped with local-only multiplayer, and this project brings Wi-Fi to the original hardware without touching the console. The ESP32-S3 accessory handles Wi-Fi, TLS and device authentication while the game runs from an ordinary flash cartridge on completely stock hardware. What is open is the game side: the SDK is two MIT-licensed C99 files with examples for devkitARM and Butano, covering matchmaking, private room codes, state updates and reliable events. The device itself is not an open-hardware build — there are no published PCB files or firmware, and the hardware is being funded as a product through a Kickstarter campaign, so every player needs their own CanoFlash unit. The second constraint is that only homebrew games built against the CanoFlash SDK will work, so you need to be writing or modifying GBA homebrew, not just playing existing cartridges. The creator says it is tested with two players on real hardware and aimed at turn-based and slower real-time games, not 60 fps action. If you write GBA homebrew and want online play on real consoles, this is the cleanest route available.

GOOD TO KNOW

  • —The MIT-licensed SDK (C99 source, API docs and three example games) is on GitHub; the CanoFlash device's PCB and firmware are not published.
  • —The SDK is MIT-licensed with no commercial restrictions.
  • —No BOM, schematic or Gerbers are published — the device is sold as a finished product, not built from files.
  • —The console hardware is completely unmodified — the accessory plugs into the existing Link Port.
  • —Only works with homebrew games built against the CanoFlash SDK, not with original cartridges.
  • —The device is not a DIY build: it is offered through the creator's Kickstarter campaign, and each player needs their own unit.

Parts to buy

3 items

From our check of the build. Exact quantities and part numbers are in the creator’s BOM.

  • One CanoFlash device per playerFind
  • Game Boy Advance or SP per playerFind
  • Compatible flash cartridge per playerFind

BUILDS OF THE WEEK

Five open-source builds worth your weekend, every week.

Checked like this one: what’s really in the repo, what it costs, how hard it is. One email, unsubscribe anytime.

Can I build this?

Printnothing required
BuyOne CanoFlash device per player (via the creator's Kickstarter), a Game Boy Advance or SP per player, a compatible flash cartridge per player
ToolsGBA console, compatible flash cartridge, a computer with devkitARM (and Butano for the C++ examples) if writing games
Skillsbasic GBA homebrew development (devkitARM C or Butano C++), building ROMs and loading them onto a flash cartridge
Timean evening to build and run the SDK examples once you have the devices; longer if you are integrating online play into your own game
CostOne CanoFlash device per player from the creator's Kickstarter, plus a 16340 or 18350 battery (not included) and a compatible flash cartridge if you do not already own one. The SDK itself is free.
SafetyLow-voltage only, no mains. The accessory runs on a 16340 or 18350 lithium cell that you supply: use a quality cell of the correct format and a proper charger.

Build at your own risk. Projects involve tools, electronics and sometimes mains voltage — follow the creator’s safety notes.

Videos

Official demo by the creator: a GBA and a GBA SP, each with its own CanoFlash, meet in an online room and play together with no PC.

More builds like this

All projects

Gallery

hackaday.io
hackaday.io
hackaday.io
hackaday.io
hackaday.io

Start here

Navigation into the creator’s own docs — we don’t rewrite the guide, we route you to the source.

  1. 1.Read the full project page on Hackaday.io (Project overview, demo videos and the link to the SDK on GitHub.)
  2. 2.Get a CanoFlash device for each player (Kickstarter campaign)(The device is a finished product, not a kit: no schematic, BOM or firmware is published. Each player needs their own unit and a 16340 or 18350 battery, which is not included.)
  3. 3.Install devkitARM (and Butano if you want the C++ examples) and build the SDK examples(You can compile the examples without a device, but an emulator's Link support will not give you a CanoFlash internet connection. Ready-built example ROMs are also in the repository's roms folder.)
  4. 4.Set up each CanoFlash and test with the SDK example(Configure each CanoFlash for Wi-Fi following the official device guide, then load the hello_world example ROM on two consoles.)

Resources

Documentation, files and community threads for this build — we link straight to the original sources and never rehost the creator’s files.

KNOWN ISSUES

  • There is no open hardware to build: the PCB and firmware are not published, so you need a CanoFlash unit per player from the creator's Kickstarter.
  • Hardware availability depends on the Kickstarter production run — check the campaign status before you plan a game around it.
  • Only homebrew games built with the CanoFlash SDK will work — this does not add online multiplayer to existing commercial cartridges.
  • You need a compatible flash cartridge to run the homebrew game on the GBA (check the cartridge list in the official device docs), and the device's battery is not included.
  • The SDK is MIT-licensed but assumes you are already familiar with GBA homebrew development — this is not a beginner's first embedded project.
  • Wi-Fi range and reliability depend on the ESP32-S3 antenna and your environment — the project does not specify antenna tuning or expected range.

Does this work with original Game Boy Advance games I already own?

No. Only homebrew games built against the CanoFlash SDK will connect online. Existing commercial cartridges will not work.

Do I need to modify or open the Game Boy Advance console?

No. The accessory plugs into the Link Port exactly like a link cable would. Nothing is soldered to the console and nothing inside it is modified.

Is there a pre-assembled board I can buy?

Yes — the creator is funding a first production run through Kickstarter, and that is the way to get the device. The PCB and firmware are not published, so there is no DIY route.

What flash cartridge do I need?

Check the compatible-cartridges list in the official CanoFlash device documentation; the device can also write homebrew to compatible rewritable cartridges over Wi-Fi.

Can I use this with a Game Boy Advance SP or a Micro?

The project page shows it working on the SP. The Micro uses a different Link Port connector and is not shown in the demo.

Community builds

No community builds yet — be the first, we feature the best ones.

Discussion1

FROM THE COMPAREE TEAM

The GBA shipped in 2001 with local-only multiplayer, and this device brings online rooms to the original hardware without touching the console. What homebrew game would you build for it first?

CompareeTEAM24d agoedited

Practical notes from our verification: only the GBA-side SDK is open source. It is MIT-licensed, the core is two C99 files, and it comes with three examples (plain C, Butano C++ and a full lobby) plus docs on rooms, reconnection and troubleshooting. The CanoFlash device itself is a commercial product funded on Kickstarter: no schematics, Gerbers, BOM or device firmware are published, so this is not something you build, you buy one per player and write games for it. The device plugs into the Link port and handles Wi-Fi, TLS and player authentication, while the console hardware stays completely stock. You also need to register your game on the CanoFlash dashboard to get an API key, and the SDK assumes you already write GBA homebrew with devkitARM. Compatible flash cartridges and loading ROMs are covered in the official device documentation on canoflash.com. Correction (4 October 2026): we re-checked this page line by line against the project's own repository, documentation and videos, and fixed errors in earlier versions.

Emilio Cano

Emilio Cano published CanoFlash on Hackaday.io to bring online multiplayer to the original Game Boy Advance hardware without modifying the console. The ESP32-S3 accessory and MIT-licensed SDK solve a problem that has sat unchanged since 2001.

Web

Star the project on GitHub

DISCLAIMER

  • Comparee is not the author of the projects featured here. All rights to each project belong to its creator — every page links to the original source, and we never host creators’ files.
  • Information is provided without warranty and may become outdated as projects evolve. Prices are indicative bands only — always check the creator’s parts list for current costs.
  • Building and operating any project is at your own responsibility. Protective equipment, safe workshop practice and compliance with local regulations are the builder’s responsibility.