Skip to content

Locus Pocus - 2025 Fab Academy Final Project

Logo for Locus Pocus Whereabouts Clock Project

Conceptual Sketch of Locus Pocus Whereabouts Clock Locus Pocus Whereabouts Clock
Original Conceptual Design Locus Pocus Clock

Locus Pocus conceptual design and outcome - a whereabouts clock showing locations and status of people important to you


Final Project Video

Locus Pocus Project - Final Project Video


Final Project Slide

Final Project Slide - 1920 x 1080


Evaluation / Outcome - Full Testing Run Video

Locus Pocus was tested using a live run with 7 locations + In-Transit. The full description of the evaluation is documented on the Locus Pocus Evaluation page.

Locus Pocus - Live Testing - Full Test Run


What does it do?

Locus Pocus is a kind of whereabouts clock - instead of time, it shows the locations or status of friends or family on the clock face. It is conceptually inspired by the magical Weasley clock from the Harry Potter book series.

In practice, it is an internet-of-things device to support connectedness between people through situated awareness. You can keep in touch with others through an ambient social connection.


Who’s done what beforehand?

I conducted research on previous projects for designing and building a whereabouts clock. Detail can be found on the Who's Done What Beforehand? page.


What did you design?

Details of what was designed for Locus Pocus are provided in the System Integraton documentation. The summary of what I designed is:

  • Activity Sensing - for sensing people's location events and communicating them to the Locus Pocus system. This will involve:
    • Activity Sensing - when somone enters / exits a location
    • Data Streaming - distributing location events from activity sensing to the primary clock control
    • XIAO ESP32C3 Microcontroller Development Board - For primary application control, I used the embedded computing board that I designed in Electronics Design and produced in Electronics Production.
    • Primary Control Code - embedded systems programming to control receipt of location events and trigger clock actions
  • Clock Mechanism - for controlling the clock hand display. This will involve:
    • Motor Gear Design (3D Design / 3D Printing) - creating driver gears for motors to actuate the hand display
    • Clockwork Design (3D Design / 3D Printing) - creating the spindle (nested clock-hand shafts with driven gears), as well as the motor framing for connecting the motor gears with the spindle gears
    • Clock Hands (3D Design / 3D Printing) - creating the clock hands that will attach to each of the clock-hand shafts and point to different locations on the clock face
    • Clock Face (2D Design / Laser Cutting) - creating the clock face with different locations to display
    • Secondary Motor Control Code - for controlling the motors and moving the clock hands
  • Clock Case (2D Design / Laser Cutting) - functional / aesthetic design to embody the clockwork mechanism, clock display, and supporting components
  • Packaging - (3D Design / 3D Printing) - sensibly organizing internal components

What sources did you use? What materials and components were used? Where did they come from? How much did they cost?

I developed a Bill of Materials that identifies the sources, materials / components, access, and cost for elements of the Locus Pocus project.


What parts and systems were made?

The overall set of parts and systems is detailed in the System Integration documentation. The summary of parts and systems for Locus Pocus is:

  • Location Activity System
    • IFTTT Activty App - I configred the IFTTT Activity smartphone App to sense location and send data to the IFTTT Activity Service
    • IFTTT Activity Service - I configured the IFTTT cloud service to receive location data and manage / trigger location events for 7 specific locations in testing
    • Upon entry/exit from each location, the IFTTT service is configured to send a message of the format: :@
      • indicates the person / clock hand - based on the device being used (e.g., "h1")
      • indicates the name of the location being entered or exited (e.g., "home")
      • indicates the sense of the movement - entering the location or exiting the location
      • For example, entering the home location for clock hand 1, would be: "h1:home@entered"
      • Each IFTTT event is sent to a specific Adafruit IO feed, called "clock" for distribution
    • See Activity App for additional IFTTT setup detail
  • Adafruit IO Data Broker Service - I configured the Adafruit IO Data Broker Service to
    • Receive location data events from the IFTTT Activity Service
    • Package events for distribution to XIAO ESP32C3 embedded primary controller for the clock system
    • Set up the data API for communication with the XIAO ESP32C3 embedded primary controller
    • The Adafruit IO service is set up with a specific data feed, called "clock"
      • The "clock" feed is paired with the IFTTT service location triggers - this feed receives all location events
      • The clock system primary control application code connects to the Adafruit IO service and monitors the "clock" feed to receive location events
    • See Data Broker for additional Adafruit IO setup detail
  • Clock System
    • I designed and produced the XIAO ESP32C3 Primary application control - embedded computing board to receive events from the data distribution service over WiFi, process the events to create actionable clock commands, and send clock commands to the secondary motor control using Bluetooth BLE networking
  • Primary control application code - I programmed the primary application control code using C/C++
    • Secondary motor control - I programmed the secondary embedded motor control system to receive clock commands from primary control via Bluetooth BLE and actuate motors / clock hands using
    • Clock Embodiment
      • Clockwork - I designed and created the clock mechanism, consisting of
        • Motor gears (4) - driver gears for clock-shafts / hands
        • Clock-shafts (4) - nested, geared shafts for turning clock hands
        • Clock hands (4) - visual indicators for locations
        • Clock face (4) - data display showing potential locations
      • Clock Case - I designed and creaed the functional / aesthetic container for all of the physical system components

Fab Academy Assignments Toward Final Project

The final project was directly grounded in many of the weekly assignments. In particular I directly used the XIAO ESP32C3 development board designed in Electronics Design and produced in Electronics Production as the primary controller for my final project. Other weekly assignment work was selected to provide experience and grounding in the techiques used for the final project. An overview of the weekly connections can be found in the project progress documentation.


What processes were used?

To create the Locus Pocus project, I used the following processes:

  • 3D Design / Production
    • Motor Gear Design (3D Design / 3D Printing) - creating driver gears for motors to actuate the hand display
    • Clockwork Design (3D Design / 3D Printing) - creating the spindle (nested clock-hand shafts with driven gears), as well as the motor framing for connecting the motor gears with the spindle gears
    • Clock Hands (3D Design / 3D Printing) - creating the clock hands that will attach to each of the clock-hand shafts and point to different locations on the clock face
    • Packaging - (3D Design / 3D Printing) - sensibly organizing internal components
  • 2D Design / Production
    • Clock Face (2D Design / Laser Cutting) - creating the clock face with different locations to display
    • Clock Case (2D Design / Laser Cutting) - functional / aesthetic design to embody the clockwork mechanism, clock display, and supporting components
  • Electronics design and production - I expect to use the XIAO ESP32C3 development board created in earlier Fab Academy assignments.
    • Electronics Design - I designed a PCB development board for XIAO ESP32C3 using KiCad
    • Electronics Production - I produced a PCB development board for XIAO ESP32C3 using the earlier KiCad PCB design, Mods for toolpath generation, and Roland SRM-20 Mill for PCB milling. Soldered the development board components to the milled PCB to create the functional development board - XIAO ESP32C3 (microcontroller), pushbutton input, LED output, and breakout headers for XIAO ESP32C3 pins.
  • Embedded microcontroller interfacing and programming
    • Primary Application Control Code - embedded systems programming to control receipt of location events and trigger clock actions
    • Secondary Motor Control Code - for controlling the motors and moving the clock hands

What questions were answered?

Answers to the primary questions that were addresed are highlighted briefly below, with links to project detail:


What worked? What didn’t?

Almost all of the elements have worked as planned. Some revisions / redesign were neeeded.

  • The main sticking point was that the initially selecgted iOS version of the location activity app did not seem to provide enough resolution for testing. It was necessary to change to an Android device.
  • The clock case needed to be redesigned slightly, since the available material was too narrow for the original design.
  • The motor platforms needed to be redesigned slightly, to provide additional spacing between the driver / driven gears in the clockwork

How was it evaluated?

The Locus Pocus system was evaluated with live user testing - a real-time run covering 7 different locations. Details on the evaluation can be found on the Locus Pocus Testing page.


What are the implications?

Locus Pocus is a tested system that can provide real-time situated awareness and connectedness by indicating locations or status of friends or family on the clock face. A person can keep in touch with family or friends through an ambient social connection. As highigheted in the academic research found in Who's Done What Beforehand?, this kind of system can support family coordination, communication, and and emotional well-being through connectedness, reassurance, and social touch (see Supporting Family Awareness with the Whereabouts Clock).


Licensing

For the project outcome, I am interested in making the work available with the following considerations for sharing:

  • I am not expecting to commercialize project work, so broad, flexible sharing is reasonable
  • I want to support broad potential exposure and flexible use of project work to encourage remixing and collaboration
  • I would like to be acknowledged in the context of derivative works

Licensing for Project Documentation & Project Design Files

To support these goals for sharing project documentation, I have selected the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

The license allows for

  • Sharing - copying and redistributing the material in any medium / format
  • Adapting - remixing, transforming, and building upon the material

The main features of the CC BY-NC-SA 4.0 license are:

  • Attribution (BY) - requires crediting the creator, providing a link to the license, and indicating whether changes were made
  • NonCommercial (NC) - the material may not be used for commercial purposes
  • ShareAlike (SA) - material that is remixed, transformed, or built-upon the project material must use the same license as the original

Licensing for Project Code

The Creative Commons organization itself recommends against using Creative Commons licenses for software. Instead, Creative Commons recommends using more specific software licenses that are available.
To support the goals for sharing project software / code files, I have selected the GNU General Public License version 3.

This license allows for

  • Sharing - copying and redistributing the material or derivative works
  • Adapting - modifying the software to create derivatives

The main features of the GPLv3 license are:

  • Attribution - requires including the original copyright notice, note significant changes, and include a copy of the license text
  • Commercial - commercial use of the code is allowed
  • Same Licensing - derivative works must be released under the same license, helping to ensure code remains open source

Locus Pocus Project Source Files

Project Design Files

Locus Pocus project design files are released under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).

Project Software Source Code Files

Locus Pocus project software source code files are released under GNU General Public License version 3.


Acknowledgements

Other than the assistance of a driver for the testing run, as well as noted example code, all designs and products for the project were created entirely by myself.

Microsoft Copilot was used to generate the Locus Pocus logo, using the prompts:

  • simple logo for clock that shows location instead of time
  • Thanks! Now can you give it a magical theme?
  • Thanks! Can you add some wizardy text that reads "Locus Pocus" and then smaller "Timeless Guidance" in plain text?
  • I like the previous design better. Can you render that version in purple and bronze, on a white background?
  • Great! Keep everything the same except add two more hands to the clock face.

I would like to thank the global Fab Academy team for all of their support, and especially: my local evaluator Terence Fagan, my global evaluator Iván Sánchez Milara, and my Fab Academy cohort partner Jeremy Losaw.