gabriel stacey-chartrand

Week 18: invention, intellectual property, and income

License

i/o is released under a Creative Commons Attribution Non-Commercial Share-Alike 4.0 International (CC BY-NC-SA 4.0) license.

This means anyone can use, adapt, and share the design files and firmware freely, as long as they credit the source, don't use it for commercial purposes, and release any derivatives under the same license. All the files are already linked on the final project page: the KiCad projects, Fusion models, firmware, and test sketches.

CC BY-NC-SA felt like the right balance between keeping the open culture of Fab Academy and maintaining some protection over the design. The share-alike clause means that anyone who builds on this has to keep it open and non-commercial, which preserves the intent of the project while still allowing the broader community to use and adapt it.

I'm also considering whether elements of this project are worth pursuing patent protection for, if this direction evolves into a future product. Two technical candidates worth exploring are: the magnetic differential used as a haptic interaction input, where the slip condition itself is the intended UX; and the combination of hall effect detection, motor-driven magnetic coupling, and synchronised multimodal output as a system for creating finite sensory experiences. Beyond the mechanism, I'm also interested in whether the broader concept is protectable in some form: a device designed specifically as a break ritual object that is explicitly not a timer, not a fidget toy, not an alarm, and not a productivity tool. Whether a conceptual claim in that direction could survive a patent application is something I'd want a patent attorney's view on. Whether any of this holds up under prior art search is something I'd want to explore before publishing the mechanism in detail beyond this documentation.

Dissemination plan

The documentation on this site is the primary dissemination vehicle. Everything is already public: the design rationale, the process, all the source files, and the firmware. That's the Fab Academy approach and it works.

Beyond this site, the plan is:

Future possibilities

Several things I planned didn't happen, and several things I didn't plan revealed themselves during the build. Both categories suggest what comes next.

What didn't happen that still should

The base was planned in Jesmonite AC84, cast in a mould milled from wax. I ran out of time and printed it in PLA instead. The PLA base works and isn't structurally wrong, but Jesmonite would feel fundamentally different in the hand: heavier, warmer, and quieter as a material.

A proximity-triggered start was in the original concept: the object detects someone approaching and begins drawing attention to itself before the user even touches it. That would use a mmWave sensor. Right now the user has to initiate by turning the dial, which is fine as a first version. The proximity trigger would add another layer to the ritual: the object responds to your presence before you respond to it.

Intermission Space

While the i/o project was in progress, I was approached by someone looking to develop an installation for a calm sensory space at an electronic music festival. The idea is to scale the principles of Intermission Object into a collective environment.

The conceptual background for the installation:

This installation builds upon Intermission Object, a handheld ritual device developed to make moments of pause feel intentional and complete without relying on screens, numbers, or alarms.

Intermission Object was developed in response to a common problem: many breaks are no longer breaks at all. Moments of pause are often filled by phones, notifications, cigarettes, or endless streams of information. Rather than measuring time, the project explores how time can be experienced through touch, light, sound, and movement.

Intermission Space expands these principles into a collective environment. Visitors are invited to engage with the installation through their bodies rather than through a screen, creating opportunities for presence, reflection, and connection with others.

What was once a personal object becomes a shared experience. The central monolith acts as a collective version of the object itself: a focal point through which visitors can connect not only with the installation, but with one another through a common rhythm of light, sound, touch, and presence. In the context of an electronic music festival, the installation offers a collective intermission: a moment to slow down, reconnect with the body, and temporarily step outside the constant stimulation of the surrounding environment.

This is still in the proposal stage, but it's a concrete near-term path for the concept and worth developing seriously.

What I still want to do with i/o

The most important thing is getting the firmware feel right at full production duration. All testing was done in TEST_MODE at 30–60 s; the real experience is 3–5 minutes, and the breath envelope, audio levels, and held-dial blending all need to be tuned at that timescale. That's the work that most directly affects the quality of the experience.

I also want to synthesise the audio from scratch rather than using a generated sine wave. The current tone is functional but not as pleasing as it could be. Although, I do like the alien-like, ominous/dystopian feel, but that wasn't really the original idea. A custom synthesised sound designed around the feel of the experience would make a significant difference.

On the hardware side, a few things would bring the object closer to the original intent. The LED filaments I used are 140mm; 100mm filaments would fit better and match the proportions of the 3D model and renderings. The finish on the clear SLA printed parts could be refined further, and the logo resin needs to be recast with corrected colours and orientation. The speaker cavity isn't tuned, and the speaker itself is a generic unit; redesigning the cavity with the speaker volume and port in mind, and using a better driver, would improve the audio noticeably. Wireless charging in the base would be a clean improvement, letting the object sit on a pad rather than needing a cable plugged into the side. The screw terminals need to go; connectors that are accessible without disassembly would make the electronics much more serviceable. And the object should be smaller. The current size works, but a more compact form would feel better in the hand and be truer to the original concept.

Casting the base in Jesmonite would be worth trying at some point to understand how the material changes the feel in the hand, even if it's not something I'll do immediately.

Publishing the magnetic differential mechanism on Hackaday is the most impactful dissemination step I can take quickly. Writing it up as a standalone mechanism post, with the Fusion files, the motor and magnet selection rationale, and the hall effect detection approach, would reach people who can use it in their own projects.

The Intermission Space proposal is the most meaningful direction to develop after Fab Academy. The festival context provides a real deadline and a real collaborator, which is how speculative ideas become actual things.

Project status

What's done

What remains

What's working and what's not

Working well

The magnetic coupling slip is the thing I was least sure about going in. It works. The combination of steel M3 nuts in the inner rotor and 5×5mm neodymium magnets in the outer dial gives the right balance of pull and slip. You can feel distinct soft pulses as the inner rotor passes beneath a stationary dial. When you let go, the dial moves with the mechanism smoothly. The difference between the two states is clear and tactile.

The heldBlend float approach for interpolating between normal and held states was the right architectural decision. LED brightness, breath period, and audio amplitude all follow the same ramp, so the transition between states feels continuous rather than digital. It took one tuning session to get the timing right once the structure was in place.

OTA uploads saved the project during assembly. Once the enclosure is closed, USB access to the XIAO is gone. Having a reliable wireless upload path meant I could keep iterating on firmware after assembly without undoing the whole thing each time.

The hall effect sensor works great. I was worried about tolerances.

Not working as intended

The N20 geared motor is currently giving me problems and I'm still trying to isolate the cause. It's the most urgent open issue before the final presentation.

The 140mm LED filaments are too long for the enclosure. They look messy inside the object and don't match the proportions of the model. 100mm filaments would fit properly and are already on the list for the next version.

The audio from the speaker is functional but not pleasing. The tone is a basic sine wave and it shows. The sound needs to be properly synthesised to match the feel of the experience.

I mirrored the logo when casting the epoxy resin dots. I realised after pouring the second dot, at which point it was too late to fix. The colours are also off from what I was going for. It needs to be redone.

There are a couple of fissures in the SLA printed parts. Nothing structural, but visible.

The screw terminals on the PCB are inaccessible once the object is assembled. Getting to them means partially disassembling the enclosure, which is a poor solution for anything that might need adjustment or servicing.

Questions that need to be resolved

The most pressing question right now is what's wrong with the N20 motor. It's behaving inconsistently and I haven't been able to isolate whether the problem is the motor itself, the driver circuit, a power supply issue, or something in the firmware.

The broader unresolved question is whether the experience holds up at real production durations. All firmware testing was done in TEST_MODE (30–60 s). The production window is 3–5 minutes. The config parameters (breath period, audio amplitude floor, held-dial blend speed) were tuned for the short test mode and may need adjustment at full duration.

The second open question is how the experience reads to someone who doesn't know what it's for. I designed it from my own experience of ADHD and time blindness, and I know what I was aiming for. Whether it communicates the intended ritual quality to someone unfamiliar with the object is something I'll only know once other people use it.

Timeline

What I've learned

Writing the firmware spec before writing any code was the most valuable process decision I made on this project. The spec forced me to be precise about every state, every transition, and every output behaviour before touching a file. The architecture that came out of it was clean and stayed intact through every revision. The spec approach was faster in total even though it felt slower at the start.

Test incrementally and confirm before integrating. The individual component test sketches (Hall sensor, TM6605, LED breath, audio) became the direct building blocks of the final firmware. When I hit the inverted TM6605 init check bug, I found it immediately because I had a known-working test to compare against. If I'd written the full firmware in one pass without the earlier tests, that bug would have been much harder to isolate.

The magnetic differential took many more physical iterations than I expected. The mechanism is simple in concept (two magnetically coupled discs) but the specific combination of magnet geometry, ferromagnetic material, gap distance, and motor speed that produces a pleasing haptic feel required hands-on testing to find. You can't simulate that feel. You have to make it and hold it.

SLA printing is awful. The supports are much worse than I expected, the slicers are terrible, and the post-processing is horrendous. Resin is a miserable material to work with. Beyond the process, the prints are so rigid that tolerances set for FFF don't transfer: embedded nuts for mounting to the middle section and the magnet pockets in the dial coupling both needed reworking because parts that fit fine in PLA simply don't fit the same way in resin.

OTA should be set up before final assembly, not after. I was fortunate that I included it from the start. Once the enclosure is closed, it becomes the only path back in. This applies to any embedded project that gets sealed into an enclosure: treat OTA as part of the design, not an afterthought.

i/o: intermission object
Country roads...