jes notes Index Gallery . 4th axis Anniversary Clocks Blog ideas Micro-machining CNC milling machine Paint colours CNC Router Shaft passers Snap issues Software ideas Stepper motor clock Toy ideas Watchmaking Wildflowers

2023-11-17

Last modified: 2023-11-17 23:14:40

< 2023-11-16 2023-11-18 >

Escapements

Yesterday I mentioned the idea of an "escapement" where a pendulum is powered by a crank, and by chance I stumbled across this video: https://www.youtube.com/watch?v=KgTg4eoje-I which has a pendulum with a crank on it!

That example actually has the pendulum powered by a separate (Galileo?) escapement, and the pendulum is driving the crank, but the connection between the crank and the pendulum is exactly what I had in mind. I imagine that if you removed the escapement and hung the weight off the wheel with the crank, it would drive the pendulum.

Milling machine

I went out to try and make the pins/shafts for the 1x escapement model, but I did not have great success.

Firstly mk-pivot was acting like it wasn't even doing anything. I tried re-zeroing the A axis at 180 degrees to see if the compensation in mk-pivot was backwards, but that didn't even change anything!

I measured Z axis backlash at 0.65mm, set 0.65mm compensation, ran it again, and now it seemed to be over-compensating.

I think what is happening is there is actually quite a lot of backlash (maybe even more than 0.65mm), but gravity takes it up as long as the gibs are loose enough. Where the gibs are tighter, gravity doesn't take up the backlash and compensation is required. So I don't know what the answer is, maybe I need to get better ballscrews/ballnuts?

Garage

List of things I want to improve about the garage:

So what about this plan:

The milling machine moves into the corner, the desk with the CNC PC gets larger to have room for writing etc., and gets a chair, and has room for legs underneath.

The big workbench gets smaller and lower, and the CNC router gets a "funnel" underneath to direct dust etc. into a big black crate.

At the end of the big workbench we have the bandsaw and pillar drill and grinder, and a new shelving rack with drill bits, drills, chargers, taps and dies, etc. on it.

We build a big shelf high up on the wall to move stuff that is currently stored in stupid places.

I put a new MDF top on the island bench.

Emma said she will touch up the paintwork.

And then remaining things are, for the space:

And for the tools: * better vice (or better jaws) * jog pendant * network access on PC * better chip brush * make 4th axis concentric * fix the power switch * lathe tool for sharp shoulders * carriage DRO * Z axis backlash

I think most important there is working out a way to turn sharp shoulders on the lathe, and then I can make my pivots on the lathe instead of messing about with the 4th axis, and I become a lot less bothered by the milling machine issues.

Actually, given that the milling cutter I've been using has a 0.2mm radius anyway, and that is the same as the lathe tool, I should just be using the lathe already...

SCAMP

I did a bit of testing with SCAMP, writing a 2022 day18 solution, and discovered that I can't use continue any more, because anything beginning with a c is diverted towards const. Fixed that: https://github.com/jes/scamp-cpu/commit/938478c6c18a867e0d8ef8f7e10e59167765686e

Also I noticed that my day18 part1 solution ran significantly faster when compiled, despite being presumably bottlenecked on parsing integers in bscanf. Need to profile that and work out what is wrong.

The profile says:

I've made logical AND and logical OR short-circuit in the interpreter. Not sure if it is a good idea to have different semantics, but I am pretty sure I know not to rely on the semantics either way. https://github.com/jes/scamp-cpu/commit/caf7110156504ecc2bb9a170b00bdc92a32cf0f3

Scotch Yoke escapement

I've modelled this frame, intended to be clamped in the vice (by the thicker section).

I expect it won't perform very well, but if it is anywhere near to being a reasonable timekeeper I reckon I should make a clock with this.

Well I printed out the frame part, and it worked fine, but then I tried to print the other parts, and I just can't get it to work, it keeps acting like the nozzle is jammed. I don't know why this sometimes happens on this printer. It will do an entire print completely fine, and then I change nothing, and the next print it just won't work at all.

I'm going to try removing the Bowden tube fitting, pushing the heatbreak up, and then re-tightening the Bowden tube fitting.

That actually moved up quite far! Maybe this is the issue. Well it seems to be printing better, so I'll try to remember that.

Crank escapement simulation

And while the Scotch Yoke parts are printing, let's try and make a Matter.js simulation of the "crank escapement".

Aaaargh, Matter.js is so infuriating. It takes so much code to do basic things, and then when you've finally written it all it doesn't even work properly. Why is my pendulum bouncing up and down about its pivot? It's meant to be constrained to its pivot!

I don't think I've ever been really satisfied with anything I've made with Matter.js.

A physics engine isn't exactly what I want, because they are normally designed for complex interactions between lots of free objects. I normally want to model simple interactions between objects that have well-defined linkages. Maybe I should just simulate the physics myself like I did in the oscillating engine simulator. Kind of lame to have to do it from scratch every time though.

So let's work out the physics for the crank escapement.

You have constant torque applied to the crank. Based on the crank angle, this applies a force to the top of the pendulum lever. Based on the angle between the con rod and the pendulum, this applies a torque to the pendulum. Gravity also applies a torque to the pendulum, based on the pendulum angle.

We then update the pendulum's angular velocity according to the resultant torque, and update its position according to its angular velocity, and then work backwards to determine the new con rod position and the new crank position.

So that is easy for me to describe in text, but I don't know a library that I can give that description to and get the kind of simulation that I want. Maybe I need to make one.

ChatGPT isn't a million miles away from writing what I want, it does a pretty decent pendulum simulation, but it can't understand how to connect a crank to it via a con rod.

I'll just do it myself, but it's annoying because it's the kind of thing where you can easily get the trigonometry wrong and not notice.

OK, change of plan, I've downloaded Algodoo Phun and got a pendulum rocking back and forth immediately. As much as I hate closed-source software, and I want to specify relationships in code instead of with a mouse, this may be the easiest option.

Great success, this is what I wanted! And it exhibits an issue straight away: when the pendulum reaches the limits of travel, it suddenly takes all the load off the motor, but then the load suddenly comes back after the motor has accelerated, making it a very jerky motion. Is it the same in real life or is this a problem with the simulation?

Also turns out it's pretty hard to set the length of the con rod so that the pendulum is "in beat", this is one advantage of the Scotch Yoke system.

Next

< 2023-11-16 2023-11-18 >