Skip to content

Week 17 Assignments - Applications and Implications, Project Development

What will 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.

Locus Pocus will be a system for situated awareness, supporting locational awareness for up to 4 friends / family members.

Who has 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 will you design?

In earlier Fab Academy assignments, I designed and fabricated the primary embedded controller board that will be used in the project.

  • 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.

Going forward, I will need to design:

  • 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
    • 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 materials and components will be used?

I developed a Bill of Materials that identifies the components for the Locus Pocus project.

Where will they come from?

I developed a Bill of Materials that identifies where components for the Locus Pocus project are sourced.

How much will they cost?

I developed a Bill of Materials that identifies how much components for the Locus Pocus project will cost.

What parts and systems will be 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
    • Activty App - on a user's smartphone - senses location and sends data to the Activity Service
    • Activity Service - cloud service to receive location data and manage / trigger location events
  • Data Distribution Service
    • Receive location data events from the Activity Service
    • Package events for distribution to clock system
    • API for communication with clock system
  • Clock System
    • Primary application control - embedded computing board to receive events from the data distribution service, process the events to create actionable clock commands, and send clock commands to the secondary motor control
      • Primary control application code - embedded programming for primar control
    • Secondary motor control - embedded computing to receive clock commands from primary control and actuate motors / clock hands
    • Clock Embodiment
      • Clockwork - 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 - functional / aesthetic container for all of the physical system components

What processes will be used?

For creating the Locus Pocus physical / embedded components, the processes used will be:

  • 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 need to be answered?

Primary questions that need to be considered are:

  • What motors to use
  • What location activity service(s) to use
  • What data broker service(s) to use
  • How to design the gearing between the motors and the clock-hand shafts
  • How to create the case for structure / packaging

How will it be evaluated?

Ideally, the Locus Pocus system will be evaluated by creating a set of locations and conducting user testing to check system response.

What tasks have been completed?

At the time of writing, all tasks have been completed.

What tasks remain?

At the time of writing, all project development tasks have been completed. Only documentation remains.

What has worked? What hasn'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

What questions need to be resolved?

At the time of writing, no further questions need to be resolved.

What will happen when?

At the time of writing, documentation will be completed by Nov 15.

What have you learned?

I had some previous experience across different aspects of 3D and 2D design and fabrication, as well as some basic electronics. Through the project experience, I have leared a great deal about:

  • Gear design, motor control, mechanism design and machine design - particularly diving into the details and equations on gear design and use
  • Embedded computing networkikng and communication - while I have extensive programming experience, I have not previously focused on embedded systems programming for networking
  • C/C++ programming. It has been many years since I have done deeper C/C++ programming. It was a challenge to dust the details off.
  • Electronics Design / Production - this was my first experience with electronics design and production, and I can see many potential uses going forward