Photo by Carl Raw / Unsplash

Using a Flipper Zero to Emulate Amiibo NFC

May 19, 2023

DISCLAIMER: All Amiibo data has been retrieve from my own Amiibos. I will never post sources of Amiibo data. I will only show you how to back up your own amiibo data and store/emulate them on your Flipper Zero. Lastly, as a good OSS citizen, I will also credit developers of any code used within this blog post.

Ok, so you got your new Swiss Army Knife of wireless tools - the new-ish Flipper Zero. Maybe you've heard about this tool from the LTT video. Maybe you heard about this in underground security forums. Either way, you're here because you want to know how to convert those .bin amiibo files to a readable .nfc format that the Flipper Zero can read. I can make this quick and painless.

Giving credit to whom it belongs

First off, I want to give all the credit to this Lanjelin for the AmiiboConverter project. They wrote this extremely helpful project. All I did was containerize it and run it in a Docker container. There are ways to grab amiibo data directly in an .nfc format, but because of what I use this blog for, I will not be posting these options here. I will be using my own amiibos for demonstration.

Procedure for Podman (or Docker)

The quickest and easiest way, by far, is to leverage Podman (or Docker, if you're into that sort of thing). I would suggest Podman Desktop because it's becoming way more feature-rich than Docker, especially if you consider that Docker now rate limits and charges just for the privilege of use. (No thanks).

The first thing you're going to want to do is locate the directory that stores your amiibo .bin files. This could be a backup, but no judging from me on where you get these backups from. Let me show you a tree of the directory for these four amiibos in the picture above. The container image is stored on Quay.io.

❯ tree ~/Downloads/amiibos/
/Users/v1k0d3n/Downloads/amiibos/
└── collection
    ├── Dread E.M.M.I.bin
    ├── Dread Samus.bin
    ├── Link Archer.bin
    └── Link Skyward Sword.bin

1 directory, 4 files

Next, you can use the container I created for Lanjelin's project like below.

podman run \
  -v /Users/v1k0d3n/Downloads/amiibos:/opt/AmiiboConverter/data \
  quay.io/v1k0d3n/amiiboconverter:latest \
  -m bin2nfc \
  -i collection \
  -o ./nfc/out

You will see a report of Done! if this is completed successfully. The way I created the container is to use ENTRYPOINT for the python3 AmiiboConverter.py portion of the command with a CMD of the -h or help menu. To get this help menu, just run the container without any other flags (this is by design).

❯ podman run quay.io/v1k0d3n/amiiboconverter:latest
usage: AmiiboConverter.py [-h] -m MODE -i [INPUT ...] [-o OUTPUT] [-r] [-v]
                          [-d DUPLICATE_FILES]

options:
  -h, --help            show this help message and exit
  -m MODE, --mode MODE  Mode to run; bin2bin, bin2nfc, id2bin, id2nfc,
                        nfc2bin, or nfc2nfc.
  -i [INPUT ...], --input [INPUT ...]
                        Single file or directory tree to convert.
  -o OUTPUT, --output OUTPUT
                        Directory or file to save to. Will be created if it
                        doesn't exist. If not specified, the output will be
                        stored in the same location as the original file.
  -r, --random-uid      Set to randomize UID of the output.
  -v, --verbose         Show extra info: pass -v to see what's going on, pass
                        -vv to get debug info.
  -d DUPLICATE_FILES, --duplicate-files DUPLICATE_FILES
                        Do you want duplicates?

If you have a Flipper Zeros, you should sort of know what you're doing by now anyway.

The resulting tree output should looke like the following:

❯ tree ~/Downloads/amiibos/
/Users/bjozsa/Downloads/amiibos/
├── collection
│   ├── Dread E.M.M.I.bin
│   ├── Dread Samus.bin
│   ├── Link Archer.bin
│   └── Link Skyward Sword.bin
└── nfc
    └── out
        ├── Dread E.M.M.I.nfc
        ├── Dread Samus.nfc
        ├── Link Archer.nfc
        └── Link Skyward Sword.nfc

3 directories, 8 files

Copy .nfc files onto the Flipper Zero

So now that you have your .nfc files ready to go and formatted to go on the Flipper Zero, you have a couple of methods to get the files onto the device. I'm going to show one method, which is with using the desktop client (for MacOS, for the purposes of this blog post). First, fire up the qFlipper application.

On the SD card, within the nfc folder, you can add another directory called Amiibo, or whatever you want to name it. You can navigate to this folder any time, once you've uploaded your amiibos.

Once you've uploaded your .nfc files, you can emulate them. I probably don't need to show you this (I will anyway), but if you want to emulate the amiibo then  navigate to the following path:

NFC > Saved > [the amiibo folder] > [the amiibo .nfc file]

Then click on > Emulate

The Flipper Zero will be broadcasting the amiibo

All you have to do is tap the Flipper Zero on the right Joycon analog joystick.

Wrapping up

And that's really all there is to it! Let me know if you have any questions by hitting me up on Twitter. As always, with great toys like the Flipper Zero, comes great responsibility. This one of the more friendly ways to use the Flipper Zero. All I can say is stay nice, and do unto others as you'd have done to you.