LifeTime

by rabbitcreek in Circuits > Microcontrollers

1008 Views, 11 Favorites, 0 Comments

LifeTime

IMG_9039.jpeg
LifeTime
Weeks.jpeg

Many of the electronic objects that we make are manifestations of the passage of time. The most all encompassing of concerns is of course our own mortality and the place it harbors in our lives. Much of our culture is a death cult, meaning an overiding concern with our passing rather than with living. Religion, movies and now our game life cares not so much with how we love or pass our daily struggle but with death. Stoics believe that life really belongs to death in that so much of our time really is gone out that tube that on a percentage basis we are mostly covered in the black shroud already. They are fond of Memento mori--objects that remind you of your own mortality--as if we lack for trappings in that mode. Well, I have built another one. One of the more sobering pieces of paper I have received was a small sheet that listed all the weeks your alive until age 90 or so. (Above) Since everyone is dead by 90 this tiny graph that looks like a boring section of window screen, clearly shows that at my age nearly all the boxes are checked off! Yea, no matter how many articles you read about the benefits of this or that, or genetics or luck you're going to check out when this tiny screen is filled up with check marks. The lifeTime provides you with an electronic version of this coda. It is an animated grid of tiny Neopixels stacked up into the months you will live over the course of 90 years. It requires that you input the owners birthday. On regular intervals the tablets open to reveal an animated display of how much time you have left. Otherwise it sleeps and provides you with background illumination that varies with the time of day and inspiration to think about life instead of death: “We’re all going to die, all of us, what a circus! That alone should make us love each other but it doesn’t. We are terrorized and flattened by trivialities, we are eaten up by nothing.” Charles Bukowski

Supplies

pin_map-2.png
3013-09.jpg
6178KakOfSS._SL1500_.jpg
1.jpg

Seeed Studio 6x10 Neopixel Matrix is the cool little output device that provides the ease of building this big display. It contains 60 WS2812B LEDs are easily controlled by the Xiao ESP32S3 microcontroller. They don't use as much power as their big board cousins so you don't need large xtra power supplies for this device...just plug it into a wall wart.

  1. Seeed Studio 6 x 10 Neopixel Matrix--you need 18 of these--$5 apiece. Don't short yourself, this is your lifetime you're displaying.
  2. Xiao ESP32S3 $5--super little board!
  3. RTC 3231 from Adafruit...have used the generic ones and seem to have trouble with them regularly...$15
  4. Tiny Digital Servo $10...dont like the non-digital cheaper versions...they regularly crap out and make more noise
  5. On/off switch
  6. 6 mm stailess rod 2 x 80 mm $5
  7. 6 mm bearing/10mm ext $1

Print Your Parts

colorGear.jpg
parts.jpg

All of the parts for this project are 3D printed using PLA Prusament Galaxy Black. Some parts needed support. BambuP1S printer was used. All design work was done on Fusion360. Gears were designed with gear plug-in.

Wire It

IMG_8893.jpeg
IMG_8895.jpeg
IMG_8896.jpeg
IMG_8898.jpeg
IMG_8901.jpeg
IMG_8904.jpeg

The wiring for this project is pretty straightforward so I didn't include a wiring diagram. The Xiao ESP32S3 has a lot of GPIO pins and the few that are used for this project are as listed:

D7: Servo

D8: Left Neopixel Chain

D9: Right Neopixel Chain]

D4: SDA

D5: SCL

USB: Power to Servo and Neopixels

3V: Power to RTC

To wire up the RTC, solder power and ground to Xiao 3v and SDA to D4 and SCL to D5. The Servo is connected to USB power on the Xiao board and ground and controlled through D7. The Neopixel stacks are wired for power and ground through USB. The control wires are connected to D8 and D9. The On/Off switch controls power from the USB to the Neopixels and the Servo to turn them off when the clock becomes too annoying. The RTC power is connected directly to the USB on the Xiao board to continue powering it even when the switch is turned off. The only hard part of the wiring is connecting all nine of the Xiao neopixel boards together in a daisy chain to fit together in the towers. Line them up carefully so that DO matches with DI and that 5V and GND are also aligned carefully...blue sticky tape helps a lot. Carefully cut small sections of resistor leg wire to bridge the connector pads. Use lots of rosin on the pads and place tiny amounts of solder on each one. Lay the resister wire across and melt into place. When finished the stack of Xiao's holds together rather well. Make sure they align straight or the design will definitely look crooked.

Build It

IMG_8908.jpeg
IMG_8900.jpeg
IMG_8912.jpeg
IMG_8910.jpeg
IMG_8958.jpeg
IMG_8952.jpeg
IMG_8929.jpeg
IMG_8930.jpeg

The core of the build is just two intertwining gears. The driver gear is connected to a servo and is recognized by a slot in its head. Two heat set inserts (3mm) are placed in the gear holes which will hold the shaft. The servo comes with a round support feature which is screwed place. The gear is epoxied to the top of the round support horn. The servo is placed in its holder and glued into position. The electronics control box has an insert in its top for a 10mm bearing that fits a 6mm shaft. Glue this into position and glue the bearing cover over it. The other stainless shaft is superglued into the inner bearing race. Make sure it turns freely. The other printed gear is accommodated with two heat set inserts (3mm) and its tightened onto the shaft with 3 mm screws. The two gears are lined up and their support boxes are superglued together. The other stainless shaft is placed in the driver gear and tightened with 3 mm screws. The Xiao is placed inside its small computer box holder and glued inside the larger container. The RTC module is squirreled away in the other part of this case. The base of the unit has outlines for the two units with the mounted gears. They are superglued to the base. The on/off switch is mounted and the unit is assembled with the two main shafts through the holes. The wires to the two Neopixel towers are designed to go through the curved slots. The base plate and the main cover body have curved indents in the perimeter to allow them to snap together. The Neopixel stacks are slid into the 3D printed towers and snap fit covers close the tops. Heat set inserts (3mm) are put into the bottoms of each tower and screw are used to secure them to the shafts. The last pieces are the decorative color line on each tower and the pin piece that hold the tops of the towers together. There is plenty of room for the excess wiring in the case if you use a lot of zip ties. As with wiring with these sorts of things use small gauge silicon to make it easy and realize that wires must go through slots before you solder them.

Program It

IMG_8950.jpeg

Most of the software has good documentation with it. You have to initialize the RTC with the current date/time to start the process rolling. You also have to put in the year and the month you were born. Even with the power off for a couple years the RTC should keep ticking. The basic outline is the ESP checks to see if the RTC is connected. It then connects the servo to pin D7 and sets up two led matrix for the two neopixel towers: leds and leds2. The NUM_LEDS is 540 for each tower and the dimensions of the matrix are 90 height and 6 width. Falling Pixel and Raindrop are two structs that are set up as part of the animation sequence--Raindrop for setting up the green pixel representing the time you had on earth and falling pixels as this time melts away. These are both gravitational controlled in the animation. WaterLevel represents the filling of your years. XY function finds the the location of a spot on the matrix and finds where in the LED chain it is located. TimerCalc queries the RTC to find the number of months you have left. The loop function uses the fastLED EVERY_N to control how often the servos are actuated and the animation is done...you can set this to once a day or once a hour or once a minute. OpenServo and CloseServo are the two functions that control the opening of the towers. It then proceeds to run the series of animation functions. After the servo closes it queries the time function and runs a series of Pallet color changes based on the time of day.

Downloads

Use It

IMG_9047.jpeg

The display arms open up according to the time interval set up in the code and the matrix slowly fills from the bottom to the top with a baseline green display of all the time you had when you were born. The matrix than displays how many months you have left in bright blue at the bottom with the current years' months displayed in a fine bright red line. The matrix than randomly plucks the months from the display of time that you have used up, changing to the color red and letting them fall to the bottom of the display. When they are gone the display darkens and the towers close up again. To use it, plug it into the IDE and modify the birth month and year for yourself. Set it on the shelf and it will hourly remind you how little time you have left in stark graphical terms. The rest of the time it hangs around as a background light that changes with the hours of the day. The generous matrixes on both the swinging arms can be modified in the code to provide changing information that may be importance to you while time challenged. Running dow jones averages and weather reports come to mind although you could display the time lines of various famous people who died a lot earlier than 90 to make you feel better.