Skull of Fate SAO Designed in collaboration between p1x317h13f and MakeItHackin
Modes of Operation:
- Default Mode: After turning on, you can cycle through eye animations with the left button and optionally change the color of the LEDs with the right button.
- Some LED eye modes are special and change based on the accelerometer or microphone input, making them reactive to position and sound.
- Tarot Card Mode: Holding down both buttons at the same time puts the device in tarot card mode, where a card is "drawn" at random from the deck and can be read by a phone or other NFC devices.
- The NFC antenna is located at the upper part of the card.
- Simply hold the reading device above the card any time after pressing both buttons to receive your reading.
Components and Materials
- Microcontroller: SAMD21 (Arduino compatible)
- Accelerometer: Adafruit LIS3DH
- NFC/RFID Chip: ST25DV64KC (Adafruit breakout)
- PDM Microphone
- Magnetic Hall Effect Sensor
- NeoPixel LEDs: 42 x 1mm
- Discrete LEDs: (Specify names and types)
- External Flash Memory
Files Included
- Gerber Files 🐹: PCB design files for manufacturing.
- Artwork 🎨: Original design assets.
- Schematic 📂: Circuit diagrams and component layouts.
SAO as an I2C Client
The SAO can act as an I2C client, allowing it to interface with a host device like a Raspberry Pi Pico W running MicroPython.
MicroPython Code for I2C Host
The I2C host is based on MicroPython for the Raspberry Pi Pico W. It communicates with the SAO over I2C, sending commands and receiving responses.
SAO and Badge Interaction
The SAO, written in Arduino, has USER1 and USER2 ports to interact with the Raspberry Pi Pico Wireless (acting as the host badge).
- USER1:
- Connected to a NeoPixel on the SAO.
- USER2:
- Connected to the GPO1 pin of the ST25DV RFID chip and a button on the SAO.
- Pulled high with a 10kΩ resistor.
- When the RFID detects a field (read or write) or when the user presses the button, the signal goes low, allowing the badge to trigger an event.
Demo Script for NeoPixel Functionality on the Badge Connected to the SAO
The MicroPython script demonstrates how the badge can interact with the SAO's NeoPixel and respond to the USER2 input.
Additional Background
The SAO is based on several Adafruit components:
- Feather M0 Express: Provides the main microcontroller functionality.
- ST25DV64KC NFC/RFID Chip: Allows for NFC interactions, reading and writing data.
- LIS3DH Accelerometer: Enables motion detection and orientation sensing.
- PDM Microphone: For sound input and reactive animations.
- Magnetic Hall Effect Sensor: Detects magnetic fields for interactive features.
- NeoPixel LEDs: 42 x 1mm LEDs for eye animations and effects.
- Discrete LEDs: Additional LEDs (specify types and names) for various indicators.
- External Flash Memory: For storing data and configurations.
Programming and Development:
- The SAO is programmed using Arduino but can also support MicroPython if desired.
- The badge demo code interacting with the SAO is written in MicroPython.
Future Development:
- Use accelerometer for motion-based tarot readings (ie upside-down cards deliver different meanings)
- Interactive game?
- More LED effects
- Let us know if you have any suggestions!
Very nice project. More skull PCBs!