Skip to content

Project to build my own working Weasley Clock to track the location of family members.

License

Notifications You must be signed in to change notification settings

whurleywhurley/WeasleyClock

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weasley Clock

Build a working physical Weasley Clock from Harry Potter.

Photo album of the build: https://photos.app.goo.gl/7yxiuzpsFReUh5Yy5

Details of the build can be found in my Build Log.

Design

Weasley Clock Flow Diagram

  1. Track location of family members using Life360. This service allows for real-time updates of each family member's location and speed. Life360 allows for naming of arbitrary geo-fenced areas. This is used for labling locations like school and work.

  2. Use Home Assistant as a clearing house for family member location and movement within and around home. Home assistant is hosted on a Raspberry Pi running Hass.io.

  3. Custom Home Assistant rules calculate the Weasley Clock state for each family member. Each state is visible from the Home Assistant dashboard. Changes in clock state are transmitted to the physical clock using the MQTT protocol over the network.

  4. Custom software running on a Raspberry Pi monitoring the MQTT message stream for changes in clock state and updating the physical clock hands to match. This software also adds some flare to hand movement. For example, the placement of the hand within each clock face sector will be determined by the person's distance from home. This way you can tell if someone is far or near to home at a glance. You might even be able to notice the progress of the person's clock hand progressing towards home.

  5. A physical clock with four hands. The clock is mounted into an old grandfather clock. The face of the clock is divided into eight nearly equal sectors. Each sector has a location/situations label. These labels are: Home, Mortal Peril, Quidditch, Work, School, Garden, In Transit, and Lost.

  6. The next phase will be to reuse the chimes that came with the original clock. The chimes can alert to noteworthy changes in the clock's state, for example, announcing someone's arrival back home. The current plan is to use a stepper motor to drive the existing chime mechanism.

Clock Face and Meaning of Sectors

Weasley Clock Demo 3 Weasley Clock Demo 2

What each sector of the clock face means:

  • Home The home state is triggered by the Home Assistant Life360 integration. I have a defined geo-fenced area, when we are inside that region, we are considered home. I also use the Home Assistant Unifi integration to identify when members of the family are connected to the home WiFi network. Additionally, I can identify which WiFi access points (APs) they are connected to. This provides some granularity as to where they on the property. The system can tell if someone is in the shop, in the main house, or outside in the garden. I use the clockwise half of the Home sector to indicate someone is in the main house and the counter-clockwise half to indicate someone is in the shop.

  • Lost This is a catch-all state for when someone is stationary, not at home, and is not at one of the named locations of School or Work. The clock hand varies its location within the sector depending on how far from home they are. The closer to home, the closer the hand inches towards the Home sector. The position within the Lost sector varies on a logarithmic scale to give a finer grain detail when closer to home.

  • In Transit This indicates the family member is on the move.

  • Garden This sector is triggered when connecting to the WiFi access point outside, near the garden.

  • School Triggered when at a Life360 location labeled as "school."

  • Work Triggered when at a Life360 location labeled as "work."

  • Quidditch Triggered when someone is bicycling. I have this triggered in two ways. First, by a complex set of rules about low speed movement, faster than walking and slower than driving. Secondly, I detect when someone is currently active on Zwift, an VR indoor cycling app.

  • Mortal Peril This is triggered if Life360 measures someone's speed as greater than 75mph. With teenagers on the verge of driving age, I will be watching this one closely.

Case Design

I decided to reuse an old grandfather/grandmother clock instead of building a new case. I got lucky and found a perfect case at a thrift shop. The clock was a petite grandfather clock, sometimes referred to as a grandmother clock. Not as imposing and difficult to move as a full sized grandfather clock. I needed the dimensions of the face to match the artwork I have and the depth of the case needed to hold the servos and new clockwork.

Clock Hands

Hands are 3D printed with the name of each family member on the hands, just like in the Harry Potter movies. The bottom of each hand has the person's initial. Hands are painted for better contrast and to give an aged appearance.

I spent a long time trying to figure out how to secure the hands to the brass tube axles. I considered clamping hubs (too bulky), collets (metal connectors traditional clock hands use), glue, and hot glue (this works well). In the end, by making the holes in the 3D printed hands strategical smaller, I was able to expand the holes with a file so that they just fit. They were tight enough to be secure. I did remove too much material from one of the hands and resorted to glue (E-6000) to keep it in place.

Here are the fonts I evaluated for use on the hands.

Related Projects and Inspiration

Over the course of this build I spent a fair amount of time researching how others have attempted to build a Weasley Clock. The most complete and authentic build I've found is by Printable Props.

Artwork

I looked around on the internet and there are two styles of faces for the Weasley clock that appear in the Harry Potter movies. The first style comes up more often, and it is easier to replicate. It also has some sectors like "Prison" that I hope to never need.

Weasley Clock Style 1

I prefer the second style.

Weasley Clock Style 1

As luck would have it, Minalima, the artists of this style, sell officially licensed posters of the Weasley Clock. This was well worth the money for the poster as I didn't have to create the artwork myself and this is the artwork from the Harry Potter movie.

Chimes

The grandmother/grandfather clock came with a set of chimes. I plan to integrate them once I have the clock mechanism finished. I started a new project to research and document this build: Weasley Chimes.

Home Assistant

I am using Home Assistant for tracking and transmitting the location of my family members. To do this I am using the Life360 integration for detailed location tracking. For tracking finer locations around the house I am using the Unifi integration to monitor which WiFi access point each family member is closest to.

Home Assistant Weasley Clock

I'm including example Home Assistant YAML configuration code creating a Weasley Clock sensor. This sensor will track a given user's Weasley Clock states: home, garden, school, work, intransit, mortalperil, lost, error.

Example Home Assistant configurations can be found in the homeassistant directory.

Software

I need a daemon running on the Raspberry Pi that controls the clock servos. For this I wrote weasleyclockd that monitors the MQTT messages from Home Assistant and manages the physical clock movement.

CAD Models of Parts

Most of the parts from ServoCity.com have CAD models that can be found here: https://www.servocity.com/step-files

CAD model of the HS-785HB Servo can be found here: https://grabcad.com/library/servo-motor-hitec-hs-785hb-1

Custom CAD files for the clock supports and hands are in the CAD sub-directory.

The CAD for the clockworks support structures were created by my father-in-law, Ron. He also handled all the 3D printing for this project.

My son, Alex, did the CAD for the clock hands, and generated a CAD rendering of the clockworks. Complete CAD renderings of the clockworks and hands are on GrabCad.com.

Cad View CAD Front View

Mounting poster to plywood

I used 3M Super 77 Spray Adhesive for mounting the clock face artwork.

I had considered using Mod Podge and went so far as experiment mounting some other posters to plywood using Mod Podge.

3M Super 77 leaves the face surface smoother, and doesn't require coating the front of the art to get good adhesion. Super 77 sets up really quickly, so watch some videos on how to use it and get a buddy to help keep the poster straight as you lay it down.

Shopping list

Raspberry Pi

  • standard set of Raspberry pi requirements. Pi, power supply, SD card, case

Servo Hat

Shopping list from Servo City

Count Description SKU
4 HS-785HB SERVO 33785S
3 32T, 0.250" (1/4) Bore 32P Shaft Mount Pinion Gear 615254
1 32P, 32 Tooth, 24T C1 Spline Servo Mount Gear (Metal) 615290
3 C1 SPLINE SERVO TO 1/4" SHAFT COUPLER (SET SCREW) 525134
3 0.250" (1/4") X 2.50" (2-1/2") STAINLESS STEEL D-SHAFTING 634074
4 32 Pitch, 64 Tooth (.50" Bore) Aluminum Hub Gear 615194
2 6mm (0.770") Clamping Hub 545616
2 5mm (0.770") Clamping Hub 545612
2 4MM (0.770") Clamping Hub 545608
2 3MM (0.770") Clamping Hub 545604

Shopping list from Hobbylinc

  • https://www.hobbylinc.com/htm/k+s/k+s9821.htm
  • NOTE: checked items are a good set for a 4 hand clock. Theoretically possible to create a 6 hand clock with all of the sizes. However, servocity doesn't sell clamping hubs for size 2mm and 7mm.
  • parts:
    • 2mm x 300mm Round Brass Tube .45mm Wall (4) k+s9820 Item # K+S9820
    • 3mm x 300mm Round Brass Tube .45mm Wall (4) k+s9821 Item # K+S9821
    • 4mm x 300mm Round Brass Tube .45mm Wall (3) k+s9822 Item # K+S9822
    • 5mm x 300mm Round Brass Tube .45mm Wall (3) k+s9823 Item # K+S9823
    • 6mm x 300mm Round Brass Tube .45mm Wall (2) k+s9824 Item # K+S9824
    • 7mm x 300mm Round Brass Tube .45mm Wall (2) k+s9825 Item # K+S9825

About

Project to build my own working Weasley Clock to track the location of family members.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%