I recently bought an interesting gadget on Aliexpress. It has a tiny LCD screen, the only input is a stick thingy on top that you can press and steer in two directions. You can upload Amiibo data through a web interface or a WeChat miniprogram via bluetooth. You can even upgrade the firmware through the web interface.

There is no branding or anything on the device, and the store I bought it from has been closed as of writing this. Everything is sketchy AF, But it works wonderfully as an Amiibo emulator and potentially even more. While my Flipper Zero already can emulate Amiibo tags, it is very awkward to use. You need to aim it at a very specific location on the joycon, and it is very hard to get it right. I had to take the protective case off my flipper zero to get it to work. Apart from a convenient dimension, this tiny little device has a few more tricks up its sleeve. It is very easy to switch between different tags, and it can automatically randomize the UID of the tag, which is a feature that the Flipper Zero does not have. In games like Zelda, you can use the tag to get some items once a day, and the random UID feature makes it possible to spam the tag and get the items as many times as you want. Very useful.

Naturally, I am curious about what is inside this tiny thing, who made it, and how it works. The store I bought it from didn’t specify what it was, but I found out it’s called pixl.js through the upload website and the config interface on the tiny thing. After some digging, I am pretty sure it is based on this open-source project, which is based the original pixl.js project (and confusingly named the same).

The original pixl.js is a “smart LCD with Bluetooth LE.” The author took expands on the original hardware and added a bunch of features specifically for Amiibo emulation. This is possible because the MCU used in pixl.js hardware, nRF52832 by Nordic. nRF52832 is a very popular MCU for Bluetooth LE applications, but it can also emulate NFC tags. Its big brother nRF52840 is used in the ChameleonUltra project, which is a standalone NFC tag emulator. Actually, it seems that the NFC emulation part of the pixl.js project is based on the ChameleonUltra project.