amiibrOS

May 2019 - Aug 2019

Project Overview

amiibrOS is an electronics/embedded-software summer project started in 2019.

The original goal of the project was to create a retro art display which would change to reflect an Nintendo Amiibo figure scanned by its built-in scanner.

As time progressed, however, the project turned into a video game console and the display functionality was implemented as a slideshow app - one of the many kinds of apps amiibrOS now supports.

At the end of its initial development time (Summer 2019), the major proof-of-concept goals were completed with only polish details left for me to implement someday later.

Hardware

The hardware consists of:

  • Raspberry Pi 3B+ used to run amiibrOS system software.
  • PN532 Breakout Board for scanning NFC tags embedded within Nintendo Amiibo figures.
  • LTN170X2-L02 LCD screen salvaged from an old Gateway laptop.
  • LTN170X2-L02 LCD compatible controller board such as this one from Amazon
  • Custom power module which supplies 3A+ split across 5V and 12V.
  • 12V 3A power adaptor with a 5.5mm jack output.
  • Power switch fashioned from a N.O. Push Button switch, jumper cables, and Lego.

I also played around with bluetooth and was able to get an 8Bitdo N30 Pro 2 to work (though you can see me struggle to operate it in the video).

I built an enclosure hastily out of Lego. It will hold the project together while I get around to designing and building a better enclosure.

Enclosure made of Lego

Software

The main part of the amiibrOS project was its system software - dubbed “amiibrOS”. The software would run on a custom, minimal Linux built via Buildroot. There are several software components, including:

  • amiibrOS main system software coded in C with interface using Raylib graphics library.
  • Python program for scanning NFC and using a pipe to communicate to amiibrOS main system software.
  • Python program launched via init.d to monitor the GPIO connected to the power switch.
  • Optional slideshow application coded in C also using Raylib.
  • A fork of Buildroot containing a default configuration for building amiibrOS automatically.

All of the software can be found at the GitHub project: https://github.com/jpyankel/amiibrOS