Возможно, самый бюджетный способ создания копий amiibo.
Amiibo — это оборудованные NFC-чипом фигурки или карточки, которые производит Nintendo. Существует множество игр для консолей Nintendo Switch, Wii U и Nintendo 3DS, в которых тем или иным образом эти карточки используются. Узнать больше об amiibo на сайте Nintendo
Сейчас стало появляться всё больше игр, навязчиво подталкивающих игрока к покупке новых фигурок. С ними, мол, комфортнее и веселее! Другие игры пошли ещё дальше, и без amiibo не работают совсем.
И если вы коллекционер и вам не жаль 15 долларов на очередную фигурку, то дальше можете не читать. Эта статья заинтересует более практичных и экономных читателей, кому хочется поближе познакомиться с amiibo, но не хочется переплачивать за коллекцию хоть и невероятно красивых, но довольно бесполезных вещей, основное предназначение которых — собирать пыль на полках.
Может быть и так, что вы так старательно бережете свои фигурки amiibo, что предпочитаете вообще не прикасаться к ним. Вам эта статья пригодится! Вы сможете сделать точные копии своих фигурок, которые будут отлично работать с вашими консолями, пока оригиналы безопасно хранятся в сейфе!
Интересно? Тогда приступим!
Готовые наборы amiibo
К счастью, на AliExpress уже доступны готовые комплекты для этих игр:
Для начала нужно убедиться, что в распоряжении есть все необходимые инструменты:
- Arduino и NFC-модуль. Они также идут в составе огромного набора
- Немного проводов для подключения Arduino к NFC-модулю
- Чистые NFC-метки NTAG215 — по одной метке на фигурку
- Мои скетчи для Arduino, предназначенные для работы с amiibo
- Библиотека для работы с NFC-модулем
- Дамп фигурки amiibo в формате bin
- Ключ для кодирования и раскодирования дампов
Сбор информации о NFC-метке
Для начала определим всю необходимую информацию об NFC-метке, на которую мы собираемся записать дамп.
Узнаем UID метки с помощью стандартного скетча Dumpinfo, поставляемого с библиотекой для работы с NFC-модулем.
Запускаем его и подносим карту:
В данном примере, UID моей метки: 044C4F2AE33E81
Получение дампа фигурки amiibo
Теперь необходимо сделать дамп фигурки amiibo, которую мы хотим клонировать. Также для этих целей подойдёт дамп из интернета. Такие дампы обычно можно отыскать по запросу «Amiibo BINs».
Для быстрого дампа имеющихся фигурок amiibo я написал простой скетч под названием Dump_amiibo
. Достаточно загрузить его в Arduino и поднести фигурку. Через пару секунд на экране появится дамп. Осталось скопировать полученный текст в hex-редактор и сохранить итоговый файл. Я использовал фигурку Chibi-Robo и назвал свой дамп Chibi-Robo.dump.bin
.
Расшифровка, модификация и шифровка дампа
Теперь пора подготовить дамп к записи.
Перейдём по ссылке https://games.kel.mn/amiibo, где нужно указать UID чистой метки, выбрать файл дампа, затем файл ключа и нажать «Submit».
На следующей странице получаем код дампа, сгенерированный специально для нашей метки.
Запись дампа на NFC-метку
Теперь код дампа нужно вставить в скетч для Arduino под названием Write_amiibo
.
Скопируем результат в скетч:
Запускаем скетч, подносим метку, ждём завершения записи.
Когда на экране появится сообщение «Write finished! Now please take your Amiibo card away!» метку можно снимать.
Результат
Если все шаги были выполнены верно, то ваш клон amiibo готов!
Материалы:
Making Amiibo NTAG215s — GBATemp.net
NTAG213/215/216 datasheet
bkifft’s amiiscript.sh
Что за дела? Купил 10 nfc меток по ссылке сверху, а они все с 8-ми значным uid. И что мне делать? Опять покупать и надеяться, что они будут с нужной длинной uid?
Другими словами uid был формата: AA AA AA AA. Хотел перезаписать мною купленный amiibo, но я так понимаю не выйдет.
Привет опять Костя.
Ряди интереса я пробовал запрограммировать UID S50 (1K)
Но скетч даже не считывает инфо с тага.
В чём проблема?
https://fr.aliexpress.com/item/33008074492.html?spm=a2g0o.detail.1000013.3.35ba5b6bWzoRcG&gps-id=pcDetailBottomMoreThisSeller&scm=1007.13339.146401.0&scm_id=1007.13339.146401.0&scm-url=1007.13339.146401.0&pvid=cc5ee751-7a47-4c5d-a806-16685afd45df
Привет, для начала проверь, работают ли примеры, которые идут с библиотекой MFRC522, например, DumpInfo. Скетчи для чтения и записи amiibo не будут работать с твоей NFC-меткой.
Не очень удобно на сайте. Код нельзя выложить. 🙁
Привет, пришли мне код через форму обратной связи: https://games.kel.mn/ru/obratnaya-svyaz/
Спасибо Костя.
Я и забыл что тут по русски есть страница.
Я конечно не мастер в этом деле, но попробовал такой код что бы на экране высвечивался номер «Blank tag UID».
Хотел высветить инфо типо «NFC full», если TAG уже не пустой, но застрял…
#include
#include
#include
#include
#define SS_PIN 10
#define RST_PIN 9
#define LED_DENIED_PIN 7
#define LED_ACCESS_PIN 6
LiquidCrystal_I2C lcd(0x3F,16,2);
MFRC522 mfrc522(SS_PIN, RST_PIN); // Instance of the class
void setup() {
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.setCursor(6, 0);
lcd.print(«Salut!»);
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522
Serial.println(«Arduino RFID reading UID»);
pinMode( LED_DENIED_PIN , OUTPUT);
pinMode( LED_ACCESS_PIN , OUTPUT);
lcd.init();
// Print a message to the LCD.
lcd.backlight();
lcd.setCursor(1,0);
lcd.print(«En attente NFC»);
}
void loop() {
if ( mfrc522.PICC_IsNewCardPresent())
{
if ( mfrc522.PICC_ReadCardSerial())
{
lcd.clear();
Serial.print(«Tag UID:»);
lcd.setCursor(0,0);
lcd.print(«Tag UID:»);
lcd.setCursor(0,1);
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
lcd.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
lcd.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println();
}
}
}
void reset_state()
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("En Attente NFC");
digitalWrite( LED_ACCESS_PIN , LOW);
digitalWrite( LED_DENIED_PIN , LOW);
}
#include
#include
#include
#include
Не компилируется . Ошибка
exit status 1
stray ‘\302’ in program
Выделенная Строка
Dump_amiibo/Dump_amiibo.ino at master · konstantin-kelemen/arduino-amiibo-tools · GitHub
Привет, Григорий! Я попробовал поискать ошибку в интернете, и похоже, что она возникает, при копировании кода в Arduino IDE из браузера, либо из других приложений. Правда, мне не удалось воспроизвести эту ошибку, скопировав код напрямую с GitHub.
Попробуй сохранить скетчи (файлы с расширением .ino) из репозитория себе на компьютер, и открыть их в Arduino IDE.
Подскажите пожалуйста, на Али продаются карточки ntag215 rewrite, то есть с возможностью перезаписи, возможно ли их использовать несколько раз?
Привет, не проверял но, судя по названию, да, их можно использовать несколько раз.
Привет. Я купил несколько карточек ntag215 rewrite, и оказалось, что они такие же, как и остальные. Их можно перезаписывать только если не заблокировать, что происходит при записи amiibo.
Константин, здравствуйте! Есть такой вопрос, можно ли изменять некоторые данные в дампе amiibo?
Часть данных изменить можно — количество сердец у Линка волка или данные бойцов Smash Bros. Для этого есть специальные приложения, например, TagMo на Android.
А вот записать дамп новой фигурки Amiibo на место старой не получится.
Хмм, Константин. При попытке проверки скетча DumpInfo выдает это:
Arduino: 1.8.5 (Mac OS X), Плата:»Arduino/Genuino Uno»
/Users/admin/Documents/rfid-master/examples/DumpInfo/DumpInfo.ino:37:21: fatal error: MFRC522.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Похоже вы скачали не ту версию библиотеки и положили не туда.
Судя по названию папки, «rfid-master», вы склонировали репозиторий. Надо удалить её и скачать последний релиз со страницы https://github.com/miguelbalboa/rfid/releases и распаковать архив в папку ~/Documents/Arduino/libraries/.
Также эту библиотеку можно установить автоматически в меню Sketch → Include Library → Manage Libraries…
С библиотекой я разобрался, а вот появился вопросик. UID карты: 0B D9 E8 AB
и все
Скорее всего вы используете метку, которая шла в наборе с NFC-модулем. Это не NTAG215 и работать такая метка не будет. Правильные метки можно купить по ссылкам из статьи.
Костя привет! Не могу найти Ключ для кодирования и раскодирования дампов. Можно ссылочку пожалуста?
Ссылку дать не могу, но если поискать в гугле «site:pastebin.com Use this to Encrypt your custom Amiibo NTag», всё найдётся.
Константин, здравствуйте! Купил карточки с Али, а они не читаются((( Что делать?
Для начала советую приклеить в центр антенны NFC-модуля небольшую монетку, должно повысить силу антенны. Если и это не поможет, то купить модуль PN532 и использовать эту инструкцию: https://games.kel.mn/en/create-amiibo-clones-with-arduino-and-pn532-nfc-module/
К сожалению, иногда метки из Китая не работают с дешевыми модулями RC522 и пока никто не может это починить. У меня самого есть около сотни таких вредных карточек, и я без проблем пишу их другим модулем или самой 3DS.
Извените, но я не совсем понял…Что значит «скетч»?
«с помощью стандартного скетча Dumpinfo»
Скетч — это программа, написанная да Arduino. В комплекте со средой разработки, а также с большинством дополнительных библиотек, поставляются скетчи с примерами. Все они доступны в меню File → Examples.
Спасибо огромное Костя за очень полезный пост.
Ещё вопрос.
У меня Мак (кажись у тебя тоже), можно с Маком работать с этим Андуино и скетчи?
И можно ли за место карточек использовать это :
https://ru.aliexpress.com/item/NFC-tag-NFC-lable-Ntag213-NFC-Forum-type2-tag-NFC-sticker-10pcs/32781632800.html?spm=a2g0v.10010108.100007.4.SBCK75&traffic_analysisId=recommend_2037_null_null_null&scm=1007.13482.37805.0&pvid=d836c4bd-6700-4b1f-b8a2-18fe1b7e18c4&tpp=1
Да, Мак отлично подходит для этих задач.
Метки по ссылке тоже подойдут, но я всё же рекомендую карточки из-за их надёжности. С метками-стикерами нужно обращаться очень осторожно.
Отлично!
Спасибо за совет и за всю информацию.
А ты видео случайно не делал?
Увы, видео нет. Но процесс достаточно прост и картинок должно хватить.
Ну, тогда со следующей «зарплатки» куплю и сотряпаю видео (с твоего разрешения). Правда не знаю как долго оно пролежит в нете.
Конечно, без проблем!
Костя, можно ещё вопросик.
В инструкции написано как подключать проводки Arduino и NFC-шилд между собой? Я думаю купить тот комплект на который ты послал ссылку выше.
Вот неплохая схема подключения. Плюс номера контактов указаны в шапке скетчей. https://uploads.disquscdn.com/images/17adca6f99aeb91184e9240eba71d80b82d85d5f0deb45e8e4715a3bd9aa9bdb.png
Ну ваще!
СПАСИБО!
Костя, Получил и сел делать…
Только вот не пойму с какой прогон в Маке открывать «DumpInfo.ino».
Подскажи плиз.
Похоже, ты забыл скачать/скачал не туда
библиотеку для работы с NFC-шилдом.
Она должна лежать в каталоге Documents/Arduino/libraries/MFRC522
Да вроде нет.
Всё на месте.
Не пойму как открыть сохранённый файл что бы увидеть UID моей метки?
🙁
Прежде, чем считывать метку, нажми на кнопку, которую я отметил на скриншоте. Должно появиться то самое окошко. Затем поднеси метку к считывателю, в окне должна появиться нужная тебе информация.
https://uploads.disquscdn.com/images/eb475e7b781039863246e62e63c26c43529de844f20301411d5d721ded8dedd6.png
Сделал.
Но в какой момент «Verify» жать?
Я когда открываю окошко монитора, то там пусто.
Пробовал нажимать на «Verify» с открытым окошком монитора, всё равно пусто.
Кнопка Verify только проверяет компиляцию программы, но не загружает её в память Arduino. Вместо этого тебе нужно нажать кнопку Upload.
А-а-а-а!
Супер!
Наконец-то.
Получилось Костя.
Ща буду продвигаться дальше.
😉
Получилось, только не правильный Амиибо взял.
А когда перезаписываю не ту-же метку, то происходит ошибка:
«MIFARE_Write() failed: A MIFARE PICC responded with NAK.
Write process failed, please try once more.
Your tag is still fine, just remove it and put back again in 3 seconds.»
Увы, перезаписать эту метку уже не получится, советую взять другую.
Лажа !
Я и не знал. Думал можно хоть сколько раз.
:((
По одной метке на фигурку amiibo.
После записи дампа в память метки, часть её памяти навсегда блокируется от записи, поэтому записать на неё другой дамп больше нельзя.
Неужели нету перезаписывающихся меток?
Есть Power Tag от компании PowerSaves. Это перезаписываемая метка со своим NFC-считывателем и программным обеспечением. Правда, вся эта система не позволяет записывать дампы из интернета, а подружить Power Tag с Arduino никто не пытался.
Понятно.
Я купил круглые метки, 20 штук.
Но чувствую что все их запартачу до того как научусь.
В следующий раз куплю ленты что по больше и подешевле 😉
Ничего страшного, у меня тоже не с первого раза получилось.
Просто внимательно следуй инструкции и всегда обновляй UID метки в онлайн-утилите.
Костя,
Спасибо большое ещё раз.
Всё работает.
Из своих 20 меток, я закартавил 7
😉
Спасибо тебе за терпение (со мной) и за этот пост.
13 из 20 меток работают? Отличный результат!
Спасибо за отзыв!
Отлично!
Спасибо за совет ну и за всю информацию.
А ты видео случайно не делал?