What time is it? What day is it? No one really knows anymore. This clock won't help you tell exact time, but it does try to capture this pervasive, ubiquitous mood in this global pandemic. Inspired by my favorite mental refuge: Animal Crossing New Horizons. Powered by Adafruit and CircuitPython.

Seasoned players will (hopefully) recognize these as Nova Lights, one of the DIY items you can craft in-game. The recipe is from Celeste, who is my absolute FAVE.

Here's how it works: the top Nova Light unit will change depending on the time of day, roughly following the colors of a star going nova (from white, blue, yellow, orange then red) as the day goes on. It's like a little sun that explodes everyday! β˜€οΈ Captures the doomsday feeling of the times, doesn't it?

The bottom Nova Light unit will change colors depending on what day it is, and the smallest "star fragment" will calmly breathe, just to let you know that time is indeed passing, even if it doesn't feel like it. ⏰

But when it's Friday, who even cares about time! πŸ€·πŸ»β€β™€οΈ The nova lights will just breathe different colors, in celebration of this day. Maybe it will help remind you that Friday used to be a day you got excited about.

When it's 12am - 7am, all the lights turn off, reminding you that you should probably stop looking at the news and go to bed.

This clock attempts to illustrate how I feel about time – I can tell it's passing, I can appreciate its beauty, but I honestly just have a hard time knowing the difference from one timestamp to the next.

Animal Crossing has actually helped me keep track of time, and provided me with temporal landmarks so that my brain can process the days pass. I wanted to make this project as an homage to this wonderful world that was a supportive mental crutch for a lot of people in a time when we needed it most.

Also I made a library for Celeste and she visited me to check it out!

The beauty of personal projects is that my function names can be whatever i want – here's a snippet of code that runs when it's Friday:

def friday_feels():
    wait = 0.05
    what_even_is_time(bottom_nova, top_nova, BOTTOM_NOVA_LEN, wait)
what even is time, anyway?

The rest of the code is below, as well as details about how to craft your own Nova Light clock. ✨

How to craft your own!

You'll need:

  1. A wooden panel
  2. Some fake leaves - mine was from IKEA
  3. 115 GSM Vellum paper - I used these from Amazon
  4. 2 x Neopixel 16 pixel rings from Adafruit
  5. 1 x Neopixel Jewel (RGBW) from Adafruit
  6. 1 x PCF 8523 Realtime Clock module from Adafruit
  7. 1 x Featherwing Proto board also from Adafruit duh
  8. 12-pin and 16-pin Feather pan headers (sometimes known as female headers but "pan" is cuter)
  9. Muffin headers (sometimes known as male headers but "muffin" is cuter)
  10. A bunch of wires
  11. Wire stripper tool
  12. Flush cutter

Sonobe Modules

First, I crafted an Ironwood DIY Workbench to keep it classy, then I got to folding. Each Nova Light is made from sonobe origami modules, and assembled two into an icosahedron, and a smaller one into an octahedron. Here are the two video tutorials I followed:

  1. Modular Origami Icosahedron 30 Sonobe Units - for the two bigger Nova Lights
  2. Modular Origami Stellated Octahedron 12 Sonobe Units - for the smaller Star Frag
Made on a real Ironwood DIY Workbench! :D 

Circuit assembly with Feather M4 Express

I followed this tutorial for wiring up the Realtime clock module – this is the piece of the board that can keep accurate time even if you end up unplugging the power from the board (you just have to make sure there's a coin cell battery in it). Here's a summary of what needs to connect together:

PCF8523 Feather M4
GND GND
VCC 3.3v
SDA SDA
SCL SCL

And then I wired up the Neopixels as follows:

Neopixels Feather M4
GND GND
5V DC 3.3V line *
Jewel DIN D9
Top Ring DIN D6
Bottom Ring DIN D5

I first tried the circuit connections from the board to the Neopixels and the PCF8523 on a breadboard. Then, I soldered up the connections on an Adafruit Featherwing Proto Board to make these connections a bit more compact and permanent. The proto board pictured below goes directly on top of the Feather M4.

Front of the proto board.
Back of the proto board. The day I discovered Proto boards... wait when was that?

Note: I believe that ideally, the Neopixels should be supplied with 5v power and 5v signals. However, I really wanted to use the Featherwing Proto board to keep wiring simple, and it only had a connected power line from 3.3V. I tried it, it's working, YMMV πŸ₯°

I used some 3-wire terminals to connect the wires from the circuit to the Neopixels since I knew I was gonna have to route some wires in weird places. These terminals allowed me to use screws to connect and re-connect as needed.

Putting it all together

I Β ended up using these delicate enameled copper wires because they fit in the gaps of the sonobe modules. If you decide to go this route, you'll need to label your wires so you don't get them mixed up.

With the help of my trusty Third Hands, I opened up a bit of the Nova light to insert the Neopixel and secure it (kinda messily) with some hot glue.

Since I used wire terminals, I could connect alligator clips into them and test the circuit after assembly (super important to test!)

alligator clips nom nom nom

Now that I've assembled the lights, I had to secure the Feather M4 Express onto the leaves background. Some trusty thread and a needle did the job pretty well!

secured!

Now that I secured the Feather itself, putting on the Featherwing proto board was super easy. I could then plan out the placement of the lights then connect the wires to the terminals! The board hides under a canopy of leaves, in its own mini tropical paradise.

A wild Feather has appeaared!

CircuitPython setup and code

After assembling and wiring up the parts, follow these quick and easy instructions to learn more about CircuitPython and setup the newest CircuitPython on the Feather M4:

  1. What is CircuitPython?
  2. Adafruit Feather M4 Express - CircuitPython install guide

Once you have that setup, feel free to use my code below and edit as you wish! This code takes parts from the guide from the Adafruit tutorial on PCF8523.

Note: If you are viewing this blog post on a mobile device, visit this link to see the code – I'll have to re-learn some CSS-fu to fix this issue, thanks for your patience!

The cool thing about the Feather M4 Express is that you can program it via USB, and when you're done coding, you can use a regular USB wall charger or battery pack to power this project! I'll be using a wall charger just as soon as I figure out where exactly this beauty will be hanging :D

To keep it classy while powering the project, I'm using a golden USB cord, which ended up pairing well with the leaves and the wood ✨

Always keep it classy.

That's it! I hope this project can help re-assure you that time is still passing, and that it's ok to play AC (at least that is what I keep telling myself) πŸ˜…