Workshop detail header
Workshop notes

Mechanical Bitcoin movement

Build logs, machining experiments, watchmaking notes, and lessons from trying to make a mechanical watch shaped by Bitcoin.

This is the main record of the project: what worked, what failed, what changed, and what I learned along the way.

2026/05/27 20:14 UTC
TLDRCanon 100mm is the clear winner for now: it’s easier to frame, light, and actually use on tiny reflective parts. The Laowa 24mm can get closer, but it made everything too exact to be practical, so the next test will control the setup better.
Show more Show less

Winner so far: the Canon 100mm.

I started with the Canon lenses I already had for closeups. Good baseline. Easy to frame. Easy enough to light.

Then I tried the odd one: the Venus Optics Laowa 24mm.

It focuses very close. That sounded useful. In practice, I could not get it to work.

Yes, it gets physically close to the part. But that made everything harder at once. Framing shifted. Light had nowhere to go. Depth of field was basically gone.

On small reflective parts, that fell apart fast.

The useful part of the test was not image quality. It was seeing what each setup demanded.

The Canon 100mm felt forgiving. The Laowa wanted everything exact, and I was not there yet.

I definitely underestimated this a bit. Tiny shiny parts do not give you much margin 😅

What changed

The goal now is a tighter test:

  • Same part
  • Same light
  • Same camera position

That should make the comparison real. Process first.

For now, the Canon 100mm is the closeup lens. The Laowa might become a special tool later. Right now, it is just making the job harder.

Read standalone post

2026/05/10 18:35 UTC
TLDRThe keyless finally started working as one system, and that unlocked a big step forward: the movement is down to 6.6mm, with ~8.8mm total thickness possible. It mattered because getting there took fixing a flawed cannon pinion design and debugging the stem/yoke/setting lever one function at a time.
Show more Show less

Small win this week: the winding stem, yoke, and setting lever are finally starting to behave like one system instead of three separate problems 👍

The keyless works area fought me hard. Tiny geometry changes, recut parts, assemble, test, tear down, measure, repeat. A lot of “wait… why is that touching?” moments.

Loss: I had to re-work the cannon pinion. Turns out my previous design didn’t actually let it slide properly, which means setting the time would have been… impossible 😅

Win: the stem now has a clearer feel between positions, the yoke is moving the sliding pinion more predictably, and the setting lever is finally starting to make sense in the assembly.

Big win: I managed to compress the movement even more, down to 6.6mm. If the case and sapphire stack behave, I might be looking at around 8.8mm total. For me, that is monumental.

Honest version: this whole area humbled me.

A few times I thought I had it, then one pull on the stem exposed the weak spot. Sharp corner. Spring face slightly off. Part looked fine alone, wrong in assembly.

What helped was slowing down and separating the problem:

  • Position feel first.
  • Then engagement.
  • Then release.
  • Then hacking.

Less guessing. More signal.

Still not final-final, but now the setup is predictable. That feels like real progress.

Next: bridges. And yes, power reserve is still in the back of my mind 🤔 Simple idea. Not simple to build.

Read standalone post

2026/05/03 20:16 UTC
TLDRSteel delays paused the cutting tests, so the real progress was in the watch movement: the model is tighter, thickness dropped from 8.833 mm to 7.5 mm, and 6 mm still looks doubtful because the hand stack keeps eating space. It matters because the design is getting more parametric and realistic, with the balance wheel now switched to safer, more standard nickel silver.
Show more Show less

Two weeks waiting on 309 stainless. That still blocks the heat-treat tests for the O1 and A2 bits.

The comparison is still the same plan: harden both, cut with both, then check tool life, finish, and edge stability under load. Until the steel arrives, there is no point guessing.

So I kept pushing the watch script instead. That is where the useful change happened.

More of the geometry lives in the model now. One change can propagate through the movement instead of turning into a pile of manual edits.

Height is still the fight

The movement started at 8.833 mm. It is now at 7.5 mm.

That removes 1.333 mm, which is real progress. The target is still 6.0 mm, so there is 1.5 mm left to find.

The last 1.5 mm is the ugly part. The co-axial hand stack for hours, minutes, and seconds keeps eating space.

Each layer needs thickness, clearance, and enough stiffness not to create a new problem. Honestly, I am not sure 6 mm is possible with that layout 🤔

Diameter and overall target

Diameter is landing well at 32.5 mm. That part looks promising.

The bigger target is still a 38 mm watch around 9 mm thick overall. That feels like the right direction, even if the movement needs more rounds.

Material change: balance wheel

I also changed the balance wheel material. After reading more, I ruled out carbide and copper beryllium.

Milling both carries hazards I do not want in the shop. So the balance wheel is now nickel silver instead, which also tracks better with NIHS standards.

Still waiting on steel. But the process moved: tighter model, thinner movement, better material choices.

Read standalone post

2026/04/23 17:45 UTC
TLDRThe core win: after 1.5 years of fixes and retesting, the machines finally held precision well enough to pass a balance staff test. That matters because a balance staff exposes any drift or slop fast, so this feels like real progress—not luck.
Show more Show less

The machines finally did the thing they should have done from day one: hold precision 🙂

That sounds small. It was not.

The last 1.5 years were mostly study, bad cuts, measurement loops, and fixing problems the machine builder should have caught before delivery.

Not one issue. A stack of them. Hardware and software.

The real job was not making parts. It was making the machine honest.

Mechanical adjustments first. Then control-side changes. Backlash checks. Repeatability checks. Tiny offsets. Test part. Measure. Change one thing. Run it again.

Over and over.

The hardest test so far

This week, all of that started to converge.

The hardest test yet was a balance staff.

A balance staff is a good liar detector. Tiny features. Tight tolerances. No room for vague machine behavior.

If something is flexing, drifting, or overshooting, it shows up fast. That is why this was the part I wanted to see after all the tuning.

And it worked 👍

What actually changed

The win is not just that a balance staff came off the machine.

The win is that the process changed.

We are guessing less. The baseline is better. Machine behavior is clearer.

The path from CAD to cut to measurement makes more sense now. That feels like real progress.

One honest line: there were stretches where it felt like we were only proving the machine wrong in new ways.

Credit where it is due

Huge credit to Kevin.

He knows how to push through a challenge when the easy answer would be to stop. A lot of this week happened because he kept leaning into the problem until it gave us something useful.

Next problem. Better starting point.

For the first time in a while, it feels less like fighting the machine and more like learning what it can actually do.

Now the next challenge is clear: centering multiple lathe tools.

Different tool positions. Same expectation for accuracy. New problem. Better starting point. That is a much nicer place to be 😅

Read standalone post

2026/04/21 00:06 UTC
TLDRFirst clean A2 cut with the custom tool finally happened, and it looks like a real process breakthrough—not luck. It matters because the result came from months of invisible prep: better machine alignment, rigidity, tool design, and Kevin’s steady work.
Show more Show less

We got the first clean cut in A2 today with the custom tool I made for this job.

That was the wall for a while. Harder material. Less forgiveness. More ways to expose a weak setup.

Today the stack finally lined up. Tool, machine, and process all did their part.

A lot of that traces back to Kevin.

He has spent months on the machine work that usually stays invisible. Alignment. Rigidity. Chasing small errors until they stop showing up in the cut.

Nothing flashy. Just changes that actually moved the process.

You could see that in the cut right away. Not just that the toolpath finished, but that the whole operation felt controlled. Less forcing it. More like the machine was finally telling the truth.

I struggled with how far away this kept feeling. Slow progress. Unclear causes. Then one run makes the stack visible.

This one belongs to the prep as much as the cut. The tool design mattered. Kevin’s machine work mattered. The patience mattered.

Kevin has been an awesome teammate through all of it 👍

What changed today was not luck. It was accumulated work paying off.

On paper, it is simple: first successful A2 cut with the fancy tool. On the bench, it is a real step forward.

Heres how the m=0.13 looks for the wheel and pinion, this is the mainspring barrel teeth

Read standalone post

2026/04/18 23:21 UTC
TLDRThey finally made usable wheel teeth after 1.5 years—not by changing the tooth design, but by getting the mill stable enough and building a custom tooling/workflow around it. Brass was the proof step; next comes A2 rod, then carbide.
Show more Show less

Breakthrough day. After 1.5 years of failed tests, tuning problems, and a 6-month sabbatical in the middle, we can finally produce the teeth for the wheels.

The bottleneck was not the geometry. It was the machine.

Getting the mill tuned tightly enough to hold ±0.003 mm took more than 20 failed attempts and months of trying.

Alexis cracked that part. He spent months learning the machine and motors well enough to get it behaving.

On my side, I rewrote the machine's Mach4 profiles and built a custom tool workflow because Fusion 360 fell short.

That hardware/software split changed everything.

Once the mill was stable, I could finally work on the cutter itself. Custom tool. Then custom toolpaths.

I kept polishing the G-code until the cuts stopped looking almost right and started looking usable.

The first image is that moment: the mill cutting brass, and for the first time, we knew we were close.

Then: success.

Honestly, this part was rough. Small errors. Tiny adjustments. No clean answer. Just measure, change one thing, and run it again.

What changed was the process. Not the final part.

  • Machine tuning to ±0.003 mm
  • Mach4 profiles rewritten
  • Custom tool made
  • Custom toolpaths and cleaner G-code
  • First successful cut in brass

Next step: mill the tool in A2 rod.

After that: a carbide version with diamond coating.

Brass proved the process. Now we move the material and the tool forward 🙂

Success!

Look how tiny it is

Teeth pre-viz after cut

One of the last fails

Read standalone post

2026/04/15 18:37 UTC
TLDRThe carbide milling playground is now a real multi-material calculator, not just a static reference. It gives per-cutter feeds, RPM, and stepover, which makes the starting numbers more useful—now it just needs real-cut validation.
Show more Show less

Big upgrade to the carbide milling playground at See Here.

I pointed GPT-high 4dawin at it. It came back with fixes that actually changed how the tool works.

What changed

The biggest shift: it is not single-material anymore.

Now it handles multiple materials. Different stock, different assumptions, different numbers.

It also works bit by bit now. For each cutter, it calculates feeds, RPM, and stepover.

That was the real win. Less guessing. Better starting points. Internally consistent.

Why this matters

The old version felt too much like a static reference.

This one is closer to a system: material properties in, cutter data in, usable milling parameters out.

That framing changed the tool more than any one formula did.

What surprised me

Honestly, I did not expect the suggestions to be this practical.

It pushed on structure, inputs, and the small missing pieces that made the calculator feel half-finished.

Still early

The numbers are only as good as the assumptions behind them.

Machining has a way of humbling any neat model 😅

But this version feels more grounded already.

Next step

Test the recommendations against real cuts.

Then tighten the logic where reality disagrees. That is the fun part.

Read standalone post

2026/04/15 01:35 UTC
TLDRCore point: two real manufacturing breakthroughs today—custom wheel cuts that improve control, and repeatable two-sided milling at ±0.003 mm. It matters because these aren’t one-off lucky parts; they show a stable process that opens up better designs and more capable production.
Show more Show less

Two wins today.

First: custom wheel cuts.

Started with a traditional pattern—something readable. Change geometry from a known base.

Not decoration. Control.

Toolpath, workholding, runout, burrs, edge finish… it all shows. On a wheel, looks = mechanics. If it shifts or raises burrs, it’s wrong.

Second: proper two-sided milling. Finally 🙂

We can hold the stock properly now. Cut both sides and have them agree. ±0.003mm.

This took almost 2 years of frustration. Mostly fighting a truly awful machine vendor (NSCNC).

Now: features line up. Thickness holds. Second op looks intentional 👍

Not a lucky part. A process.

Still early. But this opens things up—design, and what we can actually make.

Two quiet wins. Feels good.

Read standalone post

2026/04/13 19:27 UTC
TLDRCore point: instead of fixing broken CAD history by hand, script the model so the real design rules live in one place and you can rebuild cleanly. It matters because changing a core assumption becomes one edit plus regenerate, not an afternoon of chasing red features.
Show more Show less

Complex CAD models have a way of turning one small fix into a full afternoon. You go back to change one early feature, and suddenly half the history tree is red. References break. Sketches lose their parents. Things that looked stable start moving in ways you did not ask for.

That is not really a software problem. It is what happens when a design gets complicated enough that too many later decisions depend on too many earlier ones. A model can look clean on screen and still be held together by a few fragile assumptions that no longer make sense a month later.

I have been hitting that wall hard enough that I started changing the approach instead of just patching the fallout. Instead of manually repairing or rebuilding the design every time I want to change something fundamental, I am working on a script that generates the whole thing for me.

Why script it at all?

The point is not automation for its own sake. The point is to put the real rules of the part in one place. Critical dimensions, relationships, patterns, and repeated operations go into code. Then the model gets rebuilt from first principles each time.

If a core assumption changes, I change it once and regenerate instead of trying to keep a long chain of downstream features alive.

What the script forces you to confront

That has already been the useful part. A script is less forgiving than a messy feature tree. It forces you to decide what actually drives the geometry, what is derived from something else, and what was just a convenient number typed in at 1 a.m.

If the design depends on a rule, the rule should be visible.

A better way to think about the part

This also feels closer to how I want to think about making parts in the first place: define the setup, define the constraints, define the sequence, then make the part.

That is a better fit for precision work than treating CAD like a pile of cosmetic edits balanced on top of each other.

Still early, but promising

It is still early, but it already feels like the right direction. Less repair work. Less fear of touching the foundation. More room to test ideas without wrecking the whole model.

I will share more once the script is far enough along to show what it fixes, and what kinds of problems it creates on its own.

Read standalone post

2026/04/03 14:16 UTC
TLDRThe project is back after six months, and the key win is reliable, repeatable precision. That matters because the real restart wasn’t motivation—it was fixing the hardware well enough to actually trust the machine.
Show more Show less

After six months away from the project, I’m finally starting again.

Getting back to it was not as simple as flipping the machine on and picking up where things left off. The real work was down in the hardware: machine setup, motor behavior, encoder feedback, and all the small details that decide whether a system is merely moving or actually moving with precision.

A big part of getting over that wall came from Alexis Paredes (@alexisparedesart on Instagram). Alexis put in the time, patience, and real attention needed to go deep into the setup with me. Not surface-level fixes, but the kind of careful troubleshooting that gets into the bones of the machine.

Thanks to that work, precision has finally been achieved in a way that feels solid and repeatable. That matters, because without trust in the hardware, everything that comes after is guesswork.

This restart feels different. Better grounded. Less about hoping the machine behaves, more about understanding why it does. That’s the kind of progress that actually holds.

So: the project is back on. And this time, it’s starting again from a much better place.

Thank you, Alexis.

Read standalone post

NOSTR:

npub1nvhq9vgkpahlugwcf3jsnpaq5lj3w3rk6lknnvf9r8h8ft2ja2asaqcn2a
npub1nvhq9vgkpahlugwcf3jsnpaq5lj3w3rk6lknnvf9r8h8ft2ja2asaqcn2a
Copyright 2025 The bitcoin watchmaker