Monty’s Ferry Schedule Ticker – Final

If I had more time, I would have made a shorter video.

New York, New York, it’s a wonderful town. The Bronx is up, and the Battery’s down! The people ride in a hole in the ground… and sometimes, on the water. (Lyrics from New York, New York, On The Town, 1949)

In this project, I iterated on the concept of a subway clock and created a version that displays the current schedule of the NYC ferry— for those who ride in style!

This product was created for my boyfriend who takes the ferry from the same stop every day to get to work. The design incorporates a perpetual scroll display that shares the next 3 departure times from his stop (North Williamsburg). He can glance over at the ferry times in the morning and determine which ferry to catch, and whether to walk, bike, or skateboard to catch his ferry. Using this clock reduces the likelihood that he will be distracted when looking up the schedule on the NYC Ferry’s mobile app. It’s a great way to start the day for anyone who relies on the ferry schedule with regularity 🙂 

My Instructables Project

https://www.instructables.com/NYC-Ferry-Schedule-Ticker-Clock

The Idea

Image source.
This project was inspired by a subway clock I saw at a friend’s house– and I have since discovered a few Arduino projects that recreate this product.

Prototype circuit and form

I sketched a few ideas for the encasement– some using corrugated wavy plastic (it’s giving waves!), others using acrylic sheets. I designed the case to fit in a very specific space on my boyfriend’s desk, and ultimately mis-measured 😀 when I cut the final. I used a 1/8″ pearlescent blue acrylic from Canal Plastics, and landed on a tab and slot pattern which I cut with a laser cutter in the VFL.

Materials

The materials that I used for this project are as follows:

  1. Arduino ESP32
  2. Arduino UNO and a solderless breadboard
  3. 1 16×32 LED RGB matrix
  4. 5V / 2A power cable
  5. jumper wires
  6. soldering equipment
  7. Acrylic sheets for the encasement (I used this!)
  8. A laser cutter

Setting Up The Display


Initially, I had planned to use an ESP32 to run my RGB matrix display and make my API call. However, because of the power requirements of the display, I switched to an Arduino UNO and a breadboard to provide the extra grounding required.

I used the Adafru.it RGB Matrix tutorial to get my display set up and working. I followed the pinout guides and wiring in the Connecting with Jumper Wires tutorial for the RGB matrix in order to create my circuit, making sure to adjust as specified in the tutorial for the UNO. Then I ran the test code examples to make sure my circuit was working and to get familiar with how to program the display.

After testing that my circuit was working, I began to customize the text on the display.

Display Circuit Construction & Code

👉 In general, staring at an LED display for hours on end at all times of day/night can be hard on the eyes, so the first thing I’d recommend doing while you’re tweaking your code is changing your text to red which is less abrasive. 👈

The following libraries are required for this project. When you install them, make sure to install their dependencies too 🙂 

  1. RGB Matrix Panel x Adafruit (all the functions I needed to control my display)
  2. Adafruit GFX. Adafruit GFX library has a bunch of fonts that you can import and use to customize your display. You can futz with the cursor’s starting position depending on the height of the font. 
  3. The Adafruit Protomatter library is designed to make the LED matrix display work with the ESP32. As I mentioned, I had some issues with voltage and also connecting the ESP32 and the display, so ultimately I didn’t use this library. But maybe you’ll have better luck 🙂

For my code, I used the scroll_text_16x32 sketch from the RGB matrix panel example, and customized from there:

  1. Thinking ahead to the information I wanted my ferry clock to display, I hardcoded in an example message so that I could make aesthetic adjustments to accommodate the desired text.
  2. I tried out some different fonts for the text using the GFX library mentioned above, ultimately landing on FreeSans 9pt 7b.
  3. Out of the box, text on the display zooms by very quickly, so incorporating a scroll delay was important for legibility. I introduced the delay as a variable upfront and then called it directly in my loop(), working from the code in this forum post.
  4. I adjusted the position of the cursor for optimal legibility of the text on the display.
  5. I changed the color of my text to blue, to go with the case that I designed for it.

This sketch allowed me to finish a “looks like” prototype, which served as a guide for me when it came to incorporating real data from the NYC ferry schedule.

// scrolltext demo for Adafruit RGBmatrixPanel library.
// Demonstrates double-buffered animation on our 16x32 RGB LED matrix:
// http://www.adafruit.com/products/420
// DOUBLE-BUFFERED ANIMATION DOES NOT WORK WITH ARDUINO UNO or METRO 328.

// Written by Limor Fried/Ladyada & Phil Burgess/PaintYourDragon
// for Adafruit Industries.
// BSD license, all text above must be included in any redistribution.

#include <Arduino.h>
#include <RGBmatrixPanel.h>
#include <Fonts/FreeSans9pt7b.h> // best: matrix.setCursor(textX, 12) cuts of fragmented pxls at top

#define CLK  8 
#define OE   9
#define LAT 10
#define A   A0
#define B   A1
#define C   A2

// Last parameter = 'true' enables double-buffering, for flicker-free,
// buttery smooth animation.  Note that NOTHING WILL SHOW ON THE DISPLAY
// until the first call to swapBuffers().  This is normal.
RGBmatrixPanel matrix(A, B, C, CLK, LAT, OE, false);

// Similar to F(), but for PROGMEM string pointers rather than literals
#define F2(progmem_ptr) (const __FlashStringHelper *)progmem_ptr

const char str[] PROGMEM = "ER S at N WBURG in 9min...17 min...29 min..."; //hardcode in example text
int16_t textX = matrix.width();
int16_t textMin = (int16_t)sizeof(str) * -12;
uint16_t hue = 0;

const uint8_t CHAR_SPACING = 1;
const uint8_t SCROLL_DELAY = 5; // Adjust for speed control


void setup() {
  matrix.begin();
  matrix.setTextWrap(false); // Allow text to run off edges
  matrix.setFont(&FreeSans9pt7b); // Set the custom font
  // matrix.setTextColor(matrix.Color333(7, 0, 0)); // Set text color to red while debugging
  matrix.setTextColor(matrix.Color333(0, 0, 7)); // Set text color to blue 
}

// void loop() with slow down
void loop() {
  // Clear background
  matrix.fillScreen(0);

  // Set the text cursor + print the string
  matrix.setCursor(textX, 12); // Position text (for use with custom font size 9pt)
  matrix.print(F2(str));

  // Move text left (w/wrap)
  if ((--textX) < textMin) textX = matrix.width();

  // Update display
  matrix.swapBuffers(false);

  // Add delay to control scroll speed
  delay(SCROLL_DELAY); // Adjust this value to control the speed. Larger value = slower scroll
}

GETting the Background on GET Requests

The New York City Ferry Service uses GTFS (General Transit Feed Specification), which is a standard format for sharing transit system data. You can read more about GTFS here. This makes it possible for us to get an up-to-date ferry schedule by making an API call.

In order to work with GTFS directly, you need to spin up a server to manage the rate/volume of data when you make your query. (Follow Robert Boscacci’s subway clock tutorial for steps.)

However, after digging around on the internet, I found Transit.Land— an open data platform that collects GTFS and other open data feeds from transit providers around the world. Transitland makes all of this data queryable via REST APIs. There are feeds from over 2,500 operators in over 55 countries, including the NYC ferry!

I read through the Transit.Land documentation, and started to decode the the key/value pair data for ferry stops and ferry routes from the source feeds. I created an account on Interline.co to get a secure API key. Armed with my API key, I started to get to work on the program for my ESP32.

ESP32 API Call Code

Writing the API call and parsing the JSON data was the most complicated part of this project, and required a lot of research. I watched this video, read through ArduinoJSON’s deserialization documentation, and read this tutorial on GET requests, and got a lot of help from @Beckathwia.

We looked at Transitland’s REST API documentation for departures. This outlined how to specify which date we were looking for, and all of the other parameters necessary to include in the call.

I discovered that the returned payload only includes the next 20 departure times from any given stop. If you don’t specify a time, it gives the first 20 departure times for that day. So, I needed to pass in the current time in order to get the upcoming departure times. We did this (thanks @Beckathwia) via concatenation. Here’s a helpful guide.

I used Network Time Protocol to get the current time (more info here), and we defined variables for the base URL, and the current time above the setup(), and then concatenated them together in the loop():

String serverName = "https://transit.land/api/v2/rest/stops/s-dr5rsvh2hf-northwilliamsburg/departures?apikey=X77sYbAjffC4kXqNHkavDFY0mY2hUPP4&relative_date=today&start_time=";

WiFiClientSecure client;
char currentTime[9]; // Buffer to hold HH:MM:SS

// later, in void loop():
String serverPath = serverName + currentTime;

The final code attached here calls the API, parses the returned JSON file, and then prints to the Serial monitor the departure time of the next ferry departing from the station that is specified in the API call parameters.

What this code does not do yet is use Software Serial to connect the ESP32 to the UNO to pass the data along to be displayed on the matrix.

Make the Box

For this design, I went with a tab and slot box because I always find it beneficial to be able to revisit my circuits if I want to improve them in the future, and a tab and slot design avoids the need for glue.

I created a simple vector design for my box in Adobe Illustrator before I learned about MakerCase, which is a web tool that instantly creates box templates for laser cutters from a set of input dimensions. I recommend using MakerCase instead of DIYing it unless you’re hoping to make something really custom 🙂

The file for the encasement I created is attached if you’d like to use it! I had initially planned to include 2 rotary switches in my design, to allow the user to rotate through routes and stops, so there are some holes in the top panel to accommodate those. There is an exit hole in the back panel for the power cord. Everything else (my UNO and all of my cables) fits snugly inside behind the display which serves as the front of the box.

I cut the pieces out of a pearlescent blue acrylic which gives off the feeling of waves. It might not be an accurate depiction of what the East River water looks like, but hey, it’s aspirational 😉

^ the pattern I created in Adobe Illustrator for my tab and slot encasement.

Retrospective & Next Steps:
Software Serial & Soldering (still)

What I learned:

This project was a fantastic refresher on coding in general. It was great to be able to dig into documentation and work at putting the pieces together.

Unfortunately, I wasn’t able to figure out how to pass the results of my API call to my UNO for display. I ran into issues handling some of the time elements, passing messages into program memory, and passing multiple strings to be displayed in sequence on my display. The summary of the steps that remain are as follows:

  1. I need to link up my ESP32 and my UNO, so that the ESP32 can call the API, get the next 3 departure times, and pass them as a message via Software Serial to the UNO to display on the matrix.
  2. Solder my circuits! Right now my display circuit is sitting nicely inside my acrylic box, but it’s not permanent, and I can change that by soldering my ESP32 to a perf board, and soldering my UNO — but this has to wait for the previous step.

Monty’s Ferry Schedule Ticker – WIP


My idea has been revised to create a ticker for the home that displays the current schedule of the East River Ferry in NYC.

The user in this case is my boyfriend ❤️ who takes the ⛴️ ferry with our 🐕 dog to his workplace everyday. The value prop? He can glance over at the ferry times in the morning and can get ready quicker and without the use of his cellphone in the mornings at all! What a great way to start the day 🙂

Inspo:

Image source.


Prototype circuit and form

Here’s a sketch of what I’m envisioning for the encasement, using corrugated wavy plastic (it’s giving waves!) for the top and bottom of the box, and acrylic sheets for the sides.

It will have to be a fairly thin box to fit on the side-shelf of the desk in the office, which feels like the best place for it in our house. If I can’t find corrugated plastic that I like, I will make the whole box out of frosted acrylic from Canal Plastics using a tab and slot method (see second drawing). I also like the triangle formation and might move in that direction (I need to grab the dimensions of our shelf and check some angles out this week before creating the vector diagram for the laser cutter).

For the circuit, Adafruit supplies (listed above and in my doc) have been ordered. I also just realized that I’m missing the button in my diagram above, and I have to update my diagram.

I’m also starting to explore the code here using this resource as a baseline
(-> https://www.hackster.io/ericBcreator/1024-led-matrix-wifi-message-board-with-menu-web-interface-1b2666) and Becky’s help!

My Google Doc draft tutorial:
https://docs.google.com/document/d/1ve_EmIc0rhf3G6LIEIOIoHzqF_URn0q_YEYLMiaOCH4/edit?tab=t.0

My Instructables profile: https://www.instructables.com/member/mpreston21

My Instructables draft preview: https://www.instructables.com/preview/E8JUASDM3OGT4BJ/

    Monty’s Final Project Proposal

    Final project time!

    Here are my initial ideas / sketches:

    1 — Glow Rug

    I’m inspired by this project by Dara Benno, designed to reduce the need for light usage at night.

    I think it could be cool to create a rug that activates / lights up when walked on, like bioluminescent algae. The rug could serve as a visual reminder of our environmental footprint, while also making a convenient, automatic and as needed night light.

    Here are some visual references:

    This project would give me an opportunity to work with the tufter, which I’ve been hoping to try!

    Execution:
    – I’m assuming I can use a pressure sensor to activate the change
    – I’m not sure how I would incorporate lights into the construction of the rug
    – I have no idea how to get this sort of area-specific activation and will have to do more research.


    2 — Plant / Lamp Window Pane

    For a while now I’ve been thinking about creating a portable window. I always feel better when I can look outside and see something green, but often, we don’t have the choice of what we can see from our window, or if we have access to a window at all.

    I’d like to create a frame or a room divider that looks like there is a plant on the other side of it, with light shining through it.

    It could be nice to explore different plastic textures, like these pixelated options or corrugated plastic perhaps, to give different feels and effects. It could be nice to explore different window shapes too — perhalps round like a submarine? Or irregular?

    3 — Princess iPhone Holder

    I hate my cell phone so much. I think it would be way more fun to have a house phone that rings that delightful old-school ring when a friend calls. I really dig Dreyfus’ Princess Phones and these chunky guys:


    Could I retrofit a retro phone to act like a phone case, and take my calls through the Princess phone instead?

    4 — Cell Phone Toaster

    It’s a toaster with the heating element removed. You put your phone in one of the bread slots and you can’t take it out until it pops. I think it should also emit a nice light from the sides, to create a positive experience while you’re phone-less.

    5 — How about just some cool art?

    Like a cool glowing frame that changes its color based on the art? Or some light behind pigmented resins? Or maybe art that interacts with the viewer’s palm print in some way…

    Looking forward to feedback.

    Monty’s Fallen Angel Wings

    This year for Halloween I was a fallen angel. I wore black under a red cloak I purchased from Amazon, and the star of the show was the glowing winged collar I created in this class.

    I was inspired by this photo, and adapted the headpiece design to make it spookier for the occasion. I changed the color to red, so it would have a more daemonic feel, and I added glowing red LEDs that cycle through at the pace of breathing, so it would feel animalistic.



    The wings are worn around the neck and secured in place with velcro dots. The wires for the microcontroller and batter pack went down my back under my cloak and sat in my back pocket.



    In the process, I learned about feather patterns for wings (big thanks to Lynn for the help here!):


    I also got more comfortable with C++, re-familiarizing myself with variable definitions, importing libraries, and writing functions (which I haven’t done much of since doing a backend Python bootcamp during COVID). I also got more practice soldering, and debugging/interpreting error messages!

    If I had to do this project again, I would:

    1. ADJUST THE SHAPE:
      –> use narrower feathers overall to give greater clarity of shape to the wings. The size of the wings to the size of the feathers was difficult to get right as a first-timer (its hard to gauge size when ordering feathers online!). The final wings were a bit stumpy looking and compared to the size of the collar, and don’t taper to the top in the way I intended.

    2. DIFFUSE MORE LIGHT:
    –> add another layer of diffusion for the lights around the collar between the felt and the feathers, to make the LED spots less obvious

    3. MAKE IT LESS HOT:
    –> given how hot it was Halloween night, I woulud also re-design how the wings are worn, so that they attach from the back only, rather than wrapping around the front of the neck, which was crazy hot. It was so hot that the glue on the velcro dots melted off while I was wearing them.

    Materials and Parts:

    Wings:

    • Natural feathers of different shapes and textures (these, these and these)
    • wire (for the armature) (I used galvanized steel and copper, 16 and 22 gauge respectively)
    • red felt to wrap the armature (from Blick)
    • hot glue

    Circuit:

    Circuit diagram

    Arduino code

    
    /*  PulseSensor™ Starter Project   http://www.pulsesensor.com
     *   
    This an Arduino project. It's Best Way to Get Started with your PulseSensor™ & Arduino. 
    -------------------------------------------------------------
    1) This shows a live human Heartbeat Pulse. 
    2) Live visualization in Arduino's Cool "Serial Plotter".
    3) Blink an LED on each Heartbeat.
    4) This is the direct Pulse Sensor's Signal.  
    5) A great first-step in troubleshooting your circuit and connections. 
    6) "Human-readable" code that is newbie friendly." 
    */
    
    
    //Initialize
    #include <Adafruit_NeoPixel.h>
    #ifdef __AVR__
     #include <avr/power.h> // Required for 16 MHz Adafruit Trinket
    #endif
    
    // Which pin on the Arduino is connected to the NeoPixels?
    // On a Trinket or Gemma, change to 1:
    #define LED_PIN 1    
    
    // How many NeoPixels are attached to the Arduino?
    #define TOTAL_LEDs  50
    
    // NeoPixel brightness, 0 (min) to 255 (max)
    #define BRIGHTNESS 50 // Set BRIGHTNESS to about 1/5 (max = 255)
    
    // Declare our NeoPixel strip object:
    Adafruit_NeoPixel strip(TOTAL_LEDs, LED_PIN, NEO_GRB + NEO_KHZ800);
    // Argument 1 = Number of pixels in NeoPixel strip
    // Argument 2 = Arduino pin number (most are valid)
    // Argument 3 = Pixel type flags, add together as needed:
    //   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)
    //   NEO_KHZ400  400 KHz (classic 'v1' (not v2) FLORA pixels, WS2811 drivers)
    //   NEO_GRB     Pixels are wired for GRB bitstream (most NeoPixel products)
    //   NEO_RGB     Pixels are wired for RGB bitstream (v1 FLORA pixels, not v2)
    //   NEO_RGBW    Pixels are wired for RGBW bitstream (NeoPixel RGBW products)
    
    void setup() {
      // These lines are specifically to support the Adafruit Trinket 5V 16 MHz.
      // Any other board, you can remove this part (but no harm leaving it):
    #if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
      clock_prescale_set(clock_div_1);
    #endif
      // END of Trinket-specific code.
    
      strip.begin();           // INITIALIZE NeoPixel strip object (REQUIRED)
      strip.show();            // Turn OFF all pixels ASAP
      strip.setBrightness(BRIGHTNESS);
      
    }
    
    void loop()
    {
      breathe(255, 0.008, 5);
    }
    
    void breathe(float MaximumBrightness, float SpeedFactor, float StepDelay)
    {
      // Make the lights breathe
      for (int i = 0; i < 6000; i++) {
        // Intensity will go from 10 - MaximumBrightness in a "breathing" manner
        float intensity = MaximumBrightness /2.0 * (1.0 + sin(SpeedFactor * i));
        strip.setBrightness(intensity);
        // Now set every LED to that color
        for (int ledNumber=0; ledNumber<TOTAL_LEDs; ledNumber++) {
          strip.setPixelColor(ledNumber, 255, 0, 0);
        }
    
        strip.show();
        //Wait a bit before continuing to breathe
        delay(StepDelay);
      }
    }

    In-progress images/sketches

    Here are some images of my process!

    I made the headpiece armature from galvanized steel…
    …wrapped it in felt…
    …wrapped the felt in the LED strand…
    …checked light placement and tested the code to optimize it…
    …started applying feathers…
    …soldered my lights to my GEMMA M0…
    … added velcro to close the collar…
    … and finished adding the feathers!

    Monty’s Halloween Costume (Week 6 Progress)

    In a previous post, I shared a few different ideas and directions for my Halloween costume. After a lot of consideration, I’ve decided on a direction!

    I really want to challenge my making skills with this costume while also being reasonable about what I feel I can push myself to accomplish in this time frame.

    I’ve landed on the concept of a Fallen Angel, using a red and black color theme. I’ll be creating a winged headpiece using armature and red feathers, which will have embedded LEDs that glow red in slow-pulses. I want this headpiece to be beautiful and wearable, and the overall feeling of the costume to be dramatic, ethereal, and otherworldly.

    For the rest of the costume, I’ll wear an extra long red velvet cape with a black lining, and all black underneath (black wool sweater, black pants, black boots). (Note: I will not wear this cape with the hood up, I’m aware that wont work). I debated going all red (which I think would have looked higher quality but would have been way more expensive because I don’t own any red clothes or red shoes) so I’m staying budget conscious. The red and black cape I ordered also has the added benefit of being 2 layers so it will be slightly warmer 🙂

    My stretch goal will be to create a jeweled veil using Swarovski crystals which will bounce the LED light glow from the wings, but this will depend on timing.

    Arduino Techniques

    I’m creating a circuit that uses a physiological input, specifically my pulse, to pace the glow strength of the LEDs. I think that could have a kind of animalistic/creature-y vibe.

    I’ve ordered this product which has an ear attachment, which will be perfect for this given the location of the headpiece. It’s en route.

    I’m going to test against my heart-rate to determine what the pace of the cycle cycle (light dim to light high) should be (eg 8 beats per cycle, or 2 beats per cycle).

    Update:
    I’ve throw in the towel on the pulse sensor and am going with a pre-programmed glow cycle which has the desired effect. The pulse sensor was not working despite a lot of debugging and I had to move forward with my soldering.

    Progress Photos

    Here are some images of my process!

    I made the headpiece armature from galvanized steel…
    …wrapped it in felt…
    …wrapped the felt in the LED strand…
    …checked light placement and tested the code to optimize it…
    …started applying feathers…
    …soldered my lights to my GEMMA M0…
    … added velcro to close the collar…
    … and finished adding the feathers!

    Materials and Parts

    Wings:

    • Natural feathers of different shapes and textures
    • wire (for the armature)
    • solder
    • felt to wrap the armature
    • hot glue (will experiment)

    Circuit:

    • stranded wire
    • micro-controller (Gemma M0)
    • Neopixel Strand
    • battery pack
    • solder/tin
    • hot glue for strain relief
    • heat shrink proofing

    Veil: didn’t get to it unfortunately!

    • red swarovski crystals
    • fishnet stockings
    • beading thread

    Circuit diagram

    Here’s my circuit drawing — its a WIP because I am not sure how to connect to ports that are already in use… solder it together? Let’s chat lol.

    Done:

    • construct circuit
    • write code
    • construct wing armature
    • wrap armature in felt
    • wrap LEDs
      • cover with feathers 🙂

    To Do:

    • just need to iron my cape 🙂

    Monty’s NeoPixel Circuit & Halloween Costume Proposal

    Neopixel Circuit

    Here’s my super boomer-y video including both landscape and portrait oriented video, showing my set up, soldering and working circuit! Wooo! Thanks to Sofia G for helping me with the code 🙂

    Tinkercad circuit link: https://www.tinkercad.com/things/kNSQNRE3DWs


    Halloween Brainstorm

    To start off my Halloween brainstorming, I went back through some cool costumey things I had saved on Pinterest.

    Here are some images that kicked off ideas of their own:

    I started grouping Halloween-LED ideas together in a new board:

    In the past I have done a fair bit of bead work and I’ve always been interested in creating a beaded veil as a head or face piece. I think it could be nice to incorporate LEDs into this somehow. Here are a few sketches and ideas:

    1. The Ghost
    I drew a glittery take on a ghost, made from a sheer material like mesh or organza, with crystal beads and LED lights attached like beads of condensation all around the form:

    Materials needed:

    • organza fabric (not sure about amount…)
    • beading thread (1 spool, 50yds)
    • white crystals in a few sizes (100 pcs)
    • neopixel chips and maybe strips (maybe 40 pcs?)
    • either an all black or all white bodysuit / sweat suit for underneath…

    2. Space Princess

    I also like the possibility of doing something smaller, like an LED hair veil, that could be paired with some additional LED accents on a black outfit that give off a spacey vibe. I’m also interested in creating a knotted bag from glow-in-the-dark-fluoro climbing rope, maybe with LEDs acting like a jewel-embellishment. Paired with some fluorescent face paint makeup, I think this could be a fun and accomplishable project:


    Materials needed:

    • glow in the dark climbing rope
    • organza or fishnet
    • headband
    • rgb neopixel LED strips
    • individual neopixel chips?
    • black outfit
    • glow in the dark facepaint

    3. Obligatory Hoe-y Devil

    The title says it all, and while this isn’t really my style, I thought wings could be fun to make using some sort of stretchy fabric around a wire structure. More realistically, I could interpret this into something more face-forward and create an LED-embellished head piece with wings or horns attached to it, like the headpiece references below the sketch, and then wear all black or all red .

    Materials Needed:

    • acrylic or plastic sheets (I could actually do the top left one from something like recycled pop-bottles)
    • rgb neopixels
    • sculptural wire and wire tools

    or

    • feathers
    • rgb neopixels (to light up from within the base of the feathers and give an overall glow)
    • sculptural wire and wire tools
    • elastic material

    4. Skeleton

    This one is very halloweeny but to be honest I haven’t the foggiest idea how I would pull this off and make it actually look good. I feel like unless the bones were pretty close to “right”, they might look like a disaster. A light up stick figure might actually be more realistic for me (hehe).

    Materials Needed:

    • neopixel LED strips
    • body suit or sweat suit
    • fluroescent face paint.
    • a better understanding of human anatomy.

    5. Eliza Doolittle, My Fair Lady

    Ok last thought — I could dress up as Eliza Doolittle, in her flower-seller form, and instead of lighting up a full costume, I could fill a basket of LED flowers! I could even keep the flowers and display them at home after-the-fact 🙂

    Materials Needed:

    Which one do you think I should do??


    Monty’s Fluffle Study Buddy

    Dhou Fu Has Arrived!

    Meet Dhou Fu (Tofu), the silken-tofu-meets-silkie-chicken-inspired study-buddy night-light.


    Dhou Fu was created for students who like to do deep work, and need quiet focus in order to tap into this part of their brains.


    Dhou Fu lives on his owner’s desk and serves as a study-guardian. When his owner wants to do deep work and avoid interruptions, Dhou Fu turns blue, to let others in the shared workspace know that his owner is deep in thought, and to please not interrupt them.

    Above: Dhou Fu in his natural habitat.

    Dhou Fu is designed with magnetic toes and pipe-cleaners inside his feet, to help him attach to various objects, and ideally, hang from a desk lamp. He also has cute little eyes that gaze encouragingly toward his owner, seeming to say “you can do it!”, because who doesn’t need a little bit of extra support every now and then!

    Top: Dhou Fu hanging out.
    Bottom: Dhou Fu guarding from the clouds.

    Materials and parts used:

    • faux fur
    • cotton plaid fabric
    • blue plastic eyes
    • a 2-LED circuit
    • pipe cleaners
    • fridge magnets
    • embroidery thread
    • stuffing

    The Journey

    Creating Dhou Fu was not difficult but it took a lot of time and attention to detail. I had ever used faux fur fabric before in any creation, and it presented a few challenges, and there were a number of things I had to do to make him look his best:

    1) cutting very close to the base of the fabric to avoid cutting any of his hair;

    Above: Trimmed edges of early prototype compared to the final product after sewing.

    2) folding the fur in and away from the edges as I sewed the seam of the body;

    3) pulling out any hair that was sewn down, which was really tedious but ultimately incredibly worth it. His hair is glorious!

    Above: Pulling out small sections of hair along the seam.

    I also made chicken feet for the first time, which had a lot of twists and turns and was an involved process. However, I’m really pleased with how they turned out, I think they add a lot of character.

    Top Left: a foot in progress.
    Top Right: a finished foot.
    Middle: Dhou Fu with feet (left) versus the prototype (right).

    Bottom: Dhou Fu’s feet gripping my metal lamp base.

    I think the most difficult part of this whole process was that at the end I decided to add buttons, like a crazy person. Here’s why:

    After securing the LEDs and battery pack in place with stuffing, I began sewing in Dhou Fu’s legs. As I sewed them in place along the bottom line of the body, I became concerned that if I were to cut the seam open in the future to replace the batteries, I might compromise the seam holding his legs in place. I decided that having his bottom seam open instead with buttons would be a good way to keep everything in place but make the batter pack more accessible.

    I did a test with a button and sewing a button hole on some scrap fabric, and once I felt confident that it would work, I made 3 button holes on one side of the opening, and added 3 buttons to the other side. I also “finished” the edges of the fabric openings with embroidery thread to give it a cleaner look.

    The Future of Dhou Fu

    With more time to work on Dhou Fu, I would replace the magnets in his right foot. They’re a little smaller than the magnets in his right foot, which I didn’t realize until I started working on the left foot, and the layers of fabric started interacting with them. In his left foot, I put stronger magnets, which fortunately are strong enough that he can hang from a metal object by just one foot if the right foot fails.

    Above: Dhou Fu’s toe magnets in action.

    Above 3 images: Dhou Fu’s toe magnets in action in various locations.

    Dhou Fu’s Circuit:

    Here’s a quick look at Dhou Fu’s circuit diagram, and the making process. On Becky’s advice, I used 2 blue LEDs to ensure that he was as bright from the back as he was from the front, as blue LEDs are fairly directional in the light that they emit, and I wanted to make sure his blue light was visible from all angles. Thanks Becky!



    Dhou Fu Gallery: The Work in Progress

    And lastly, here are some additional shots of the making process:

    Above: Prototyping and testing feet shapes with stuffing and pipe cleaners.

    Above: Preparing my work station.

    Above Images: Cutting a larger pattern based on original prototype shape.

    Above images: Finishing the feet and constructing the body.

    Above: Finished product!

    Monty’s Plush Night Light Proposal

    Fluffle Prototype

    This is my prototype, Fluffle. He’s a little furry dust-bunny like creature that lives on my desk and let’s people know when I’m available to talk, or when I am “heads down” and working. When I need to focus, Fluffle turns blue. When I’m free, he turns his light off and takes a nap. He’s an ideal desk companion for students or office workers who want a friendly way to let colleagues know when they prefer not to be disturbed 🙂

    His pattern was very simple — just a blob shape. I’d like to add feet in the next iteration. It would be great if his feet had wires inside so they could be bent to allow him to perch, or possibly magnets so they could snap together and he could hang upside down 🙂

    original pattern

    He was entirely inspired by the white faux fur material that he is made out of. He’s filled with stuffing surrounding a ping-pong-ball used to the diffuse the light from my single-LED circuit, and he really came to life when I put eyes on him:

    Sketch Explorations

    I did some sketches exploring alternate concepts, such as an LED bouquet of flowers, a “crossing man” sign, or a puffer fish. Ultimately I kept returning to the furry creature in one form or another: in the below sketches you can see a few variations including an abominable snowman style creature with horns, and a bunny like creature with ears and a tail.

    Circuit Diagram

    The Fluffle prototype uses a single LED circuit, as diagramed below:

    He only glows blue, to indicate that I’m in “Focus Time”.

    I would love it if Fluffle could have some further communication with me as I am working. Maybe Fluffle can glow different colors, to indicate different things, such as green to indicate I’m available to talk, or yellow to remind me that it’s time to take a break after a set period of time. Maybe I can create multiple Fluffles, that can talk to each other, changing their light to white when their desk owners get together for group work 🙂

    Materials I will need:

    • white faux fur ✅
    • pipe cleaners or wire ✅
    • magnets for toes
    • stuffing ✅
    • ping pong ball ✅
    • blue or multicolored LED
    • my circuit! ✅

    Tracker Teardowns

    In 2024, we are constantly being tracked. What we buy, what we watch, where we go, who we talk to, what we say, what we listen to, where we travel, and what we Google; none of it is private. We sign up for all of this by carrying smartphones and logging into accounts when we make purchases. Why don’t we care about our privacy? I find this perplexing.

    Today, I’m taking a look inside two tracking devices from our recent past:

    1. The Nike+iPod activity tracker, circa 2006; and
    2. an Object-tracking device, by an unknown manufacturer.

    Before 👆

    After 👇


    1. Nike+iPod Activity Tracker

    Tools used in this teardown:

    • Precision Phillips head screwdriver
    • Precision Flat head screwdriver
    • Tweezers
    • Exacto blades
    • Push Pin
    • Sewing Pin
    • Hammer
    • Plasticine

    I started with the Nike+iPod Nano activity tracker. Designed to fit into a special Nike+ sneaker insole, the device worked with an app on the iPod Nano which tracked speed, distance covered, calories burned, and provided a voice-over personal trainer experience for runners.

    I tried to split the device open with a flat head screwdriver, then a push pin, then a smaller pin. No cigar. I did some searching and found this video suggesting a way to open the device, and bizarrely enough, I had a jewelry saw on hand, and so tried to use that to crack through the outer layer. It did not work. Then I found another video and tried a few different exacto blades as suggested, but wanted to avoid a trip to the ER so I found a very thin flat head screw driver and decided brute force was the only way: I stuck the device in plasticine to hold it firmly to the table, and then I jammed a flat head down into it and smashed on it with a hammer. That finally worked!

    Here are all the tools I tried to use 😅:

    Here’s what actually worked:


    So, what’s inside the Nike+iPod Nano tracker?

    In addition to the pieces listed below, there were many rubbery adhesive strips used to keep everything in place.

    ComponentManufacturer and NumberMaterialPurpose
    Outer shellhard plastic, high reflectivityencase the product
    Reset Button (outer)soft, flexible siliconeencase the reset switch
    Reset button (inner)hard plastic and metaltrigger the reset
    Circuit boardmetal
    BatteryPanasonic CR 2032 3Vpower source
    Wireless TransmitterNordic Semiconductorultra-low-power wireless transmitter (talks to the iPod)
    Micro chipPIC16F688mini computer
    AntennaAntenova A10192hard plastic, metalconverts current into radio waves

    For this device, the design choice that interested me most was the fact that it was so hard to open this sensor. There’s no way to recharge the battery, or replace it. You wont be surprised to learn that these were meant to be tossed out after the battery died, and replaced with a new one. At $29 a pop, with a 1000 mile battery life (approximately 1 year per Nike and Apple) the price for the tracker is reasonable. Considering that you can get a 5 pack of the Panasonic 3V batteries for $3.29, I wonder what the additional cost would be to make a tracker where the battery replaceable. Would more plastic required? Would a larger insole be needed?

    The Nike+iPod product evolved along with Apple products, but this specific form-factor has been retired.


    2. Moving on to to “Tile” Type Device

    Tools used in this teardown:

    • Precision Phillips head screwdriver
    • Precision Flat head screwdriver
    • Tweezers

    This device is fairly simple as well, and only had a few parts:

    Here’s what makes up the “Tile-type” tracker:

    ComponentManufacturer and NumberMaterialPurpose
    Outer shell/caseHard plastic, low reflectivity, paintedencase the product
    Battery capHard plastic, low reflectivity, paintedallow battery replacement
    Light cap?hard, clear, frostedI didnt’ find an LED so I’m not sure what this is for!!
    “D” Ringhard plasticused to attach object
    BatteryPanasonic CR 2032 3Vpower source
    System-on-ChipTexas Instruments CC2541micro-controller
    Circuit boardFP E204460 / M11 94V-0
    Date stickerset for 8/2014identify approximate date of manufacture
    AntennaAntenova A10192converts current into radio waves

    For this design, the most interesting piece was the small, white/clear, semi-opaque piece of plastic that was found at the corner of the device. It seems like a cap to close the case, but also to allow light to pass through. However, as this isn’t a device to actively turn on and therefore doesn’t need a light to indicate whether its on or off, AND the fact that I didn’t find a light/LED in the device, I wonder what the point of it is. It doesn’t add functional or aesthetic value… and yet it was included.


    All in all, this was a great exercise, I enjoyed cracking these devices open and taking a look at what was inside. Looking forward to learning more about how all of the parts work together this week!