All Projects → garrett-davidson → Pimiibo

garrett-davidson / Pimiibo

A tool to create your own amiibo!

Projects that are alternatives of or similar to Pimiibo

Universal-Manager
Multimedia tool for Nintendo DSi, Nintendo 3DS and Nintendo Switch.
Stars: ✭ 26 (-71.74%)
Mutual labels:  nintendo, nintendo-3ds, nintendo-switch
SARC-Tool
Tool for extracting and packing SARC files present in Nintendo EAD games.
Stars: ✭ 60 (-34.78%)
Mutual labels:  nintendo, nintendo-3ds, nintendo-switch
Jksv
Data Tool For Switch
Stars: ✭ 388 (+321.74%)
Mutual labels:  nintendo, nintendo-switch
Nxloader
My first Android app: Launch Fusée Gelée payloads from stock Android (CVE-2018-6242)
Stars: ✭ 417 (+353.26%)
Mutual labels:  nintendo, nintendo-switch
Citro2d
Library for drawing 2D graphics using the Nintendo 3DS's PICA200 GPU
Stars: ✭ 88 (-4.35%)
Mutual labels:  nintendo, nintendo-3ds
Picasso
Homebrew PICA200 shader assembler
Stars: ✭ 41 (-55.43%)
Mutual labels:  nintendo, nintendo-3ds
Road To Yuzu Without Switch
This Repo explains how to install the Yuzu Switch Emulator without a Switch
Stars: ✭ 267 (+190.22%)
Mutual labels:  nintendo, nintendo-switch
Nintendo Switch Eshop
Crawler for Nintendo Switch eShop
Stars: ✭ 463 (+403.26%)
Mutual labels:  nintendo, nintendo-switch
switch joy con as mouse for macos
Tool to use Nintendo Switch Joy-Con as a mouse for macOS
Stars: ✭ 19 (-79.35%)
Mutual labels:  nintendo, nintendo-switch
Hydrosphere
Ocean beyond the Horizon
Stars: ✭ 17 (-81.52%)
Mutual labels:  nintendo, nintendo-switch
Nx Shell
A multi-purpose file manager for the Nintendo Switch.
Stars: ✭ 639 (+594.57%)
Mutual labels:  nintendo, nintendo-switch
Arcropolis
Work-in-progress file replacement plugin for Super Smash Bros. Ultimate
Stars: ✭ 58 (-36.96%)
Mutual labels:  nintendo, nintendo-switch
bottomless-block-barrage
Panel de Pon (Tetris Attack) clone for the 3ds.
Stars: ✭ 15 (-83.7%)
Mutual labels:  nintendo, nintendo-3ds
m3diaLib-CTR
A C++ library for easier homebrew development for the Nintendo 3DS
Stars: ✭ 39 (-57.61%)
Mutual labels:  nintendo, nintendo-3ds
Sxos Cheatdb
This is a collection of cheat codes for use with Team Xecuter's SXOS CFW on Nintendo Switch
Stars: ✭ 352 (+282.61%)
Mutual labels:  nintendo, nintendo-switch
byml-v2
Nintendo BYML or BYAML parser, writer and converter. Fully supports Breath of the Wild and Super Mario Odyssey files.
Stars: ✭ 23 (-75%)
Mutual labels:  nintendo, nintendo-switch
Rekado
Payload launcher and serial number checker for Nintendo Switch
Stars: ✭ 455 (+394.57%)
Mutual labels:  nintendo, nintendo-switch
Splatoon 2 Meme Mod
Splatoon 2 mod about memes.
Stars: ✭ 11 (-88.04%)
Mutual labels:  nintendo, nintendo-switch
Nintendo-Switch-JoyCon-Hack
Hardwiring a push button in a JoyCon to grant bootloader access
Stars: ✭ 44 (-52.17%)
Mutual labels:  nintendo, nintendo-switch
LeafEdit
Work in progress Animal Crossing: New Leaf save manager & editor for the Nintendo 3DS!
Stars: ✭ 56 (-39.13%)
Mutual labels:  nintendo, nintendo-3ds

pimiibo

This is a tool for spoofing amiibo NFC tags using a Raspberry Pi and PN532 NFC reader/writer with libnfc. Enjoy and please let me know if you have any issues :)

Hardware

This project requires 3 main components: a Pi, a PN532 NFC reader/writer, and NTAG 215 NFC tags. You must use NTAG 215 tags. Any other tag type (e.g NTAG 210, 216, etc.) will not work. Anything meeting these requirements should be fine, but here is my setup for reference:

  1. Raspberry Pi Zero W ($10). A Pi Zero (not W) would cost $5.

  2. Elechouse PN532 NFC Module v3 ($10): Amazon.

  3. NTAG 215 tags. I've personally tested with these ($10 for 11) and these ($28 for 60).

Software setup

  1. Clone this repository with submodules:

    git clone --recurse-submodules https://github.com/garrett-davidson/pimiibo.git

  2. Install libnfc-dev:

    sudo apt-get update && sudo apt-get install libnfc-dev

  3. Compile sources. This will probably take a minute or two the first time on a Pi.

    make

Set up I2C (Optional)

This section is dependent on your NFC board and how plan to communicate with it. If you plan to use I2C, you need to enable I2C on your Pi and tell libnfc how to find it. If you plan to use SPI, HSU, or other communication methods, follow the specific instructions for your board.

(Note for SPI and HSU/UART users: if you're using a Pi 3 or Pi Zero W with Bluetooth built-in, then you will want to disable Bluetooth when communicating with the board. This is because the serial pin got hijacked for Bluetooth and the software pin has clocking issues. You can read more here.)

  1. Enable I2C on your Pi.

    sudo raspi-config

    Then navigate to Interfacing Options -> I2C -> Yes.

  2. Install i2c-tools

    sudo apt-get install i2c-tools

  3. Configure libnfc to search for your board:

    sudo nano /etc/nfc/libnfc.conf

    Add these lines to the end of the file:

    device.name = "_PN532_I2c"
    device.connstring = "pn532_i2c:/dev/i2c-1"
    
  4. Make sure your board is in I2C mode. Some boards, like the one linked above, support multiple communication modes, which are selected with physical dipswitches. For that Elechouse board, I2C mode is 1 0. This means toggle the top switch on (to the right), and the bottom switch off (to the left).

  5. Wire the board. For through-hole boards (including the Pi), I highly recommend soldering all of the headers on before continuing. A loose connection on any of these wires can damage your Pi and your NFC board, or waste an NFC tag. Once that is done, wire the board as follows:

    NFC Board Pin Pi Pin
    Ground Ground
    VCC 5 V
    SDA SDA.1 (Pin 3)
    SCL SCL.1 (Pin 5)
  6. Check to make sure it is working.

    sudo i2cdetect –y 1

    If all goes well, you should see a device show up as a number on that list (mine is 24). If the list is empty (all dashes), double check your setup.

Getting the required files

After you have followed the above setup, you just need two more files to start making your own amiibo: an amiibo dump, and the key file.

Amiibo Dump

Amiibo dumps are not hard to get. Amiibo are 540 bytes and usually stored in a .bin (binary) file. Assuming you are simply cloning your own legitimate amiibo, you can use any dumping tool to dump it to a .bin file. Otherwise, that's probably copyright infringement or something.

Key file

This is the file containing Nintendo's key, which they use to encrypt/decrypt data on the amiibo. It is probably also copyrighted content, but it's a 160 byte .bin file which matches the MD5 45fd53569f5765eef9c337bd5172f937.

Usage

Start the program: ./pimiibo path-to-key-file path-to-amiibo-file

Once you see ***Scan tag***, place and hold your blank NFC tag on the reader/writer. You should then see messages scrolling past with each data page as it begins writing them. Do not remove your tag until the write is finished. When you see Finished writing tag, it is safe to remove your tag and enjoy your new amiibo!

Common Problems

  • Failed to initialize adapter

    Initializing NFC adapter
    error	libnfc.bus.i2c	Error: wrote only -1 bytes (10 expected).
    

    Your Pi could not find your NFC device. Double check your wiring and try again.

  • Failed to write a page

    Writing to 4: a5 b0 d1 00...Failed
    Failed to write to tag
    Write: RF Transmission Error
    

    This means your tag is already locked. The NTAG 21x spec declares locking bits which permanently prevent certain parts of a tag from being written to once they are set. Therefore once the locking bits are set, you cannot rewrite this tag to another amiibo. All amiibo are required to have certain locking bits sets, so you cannot change a tag once you've used it.

    If this happened anywhere other than page 4, it probably means that your device lost connection to the tag. Try again while keeping the tag closer to your device. Hopefully in the future I'll add a feature to check which of these problems occurred.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].