jes notes Index Gallery . Shaft passers Snap issues

2024-12-03

Last modified: 2024-12-04 20:23:33

< 2024-12-02 2024-12-04 >

Stiffer frame

How am I going to do the stiffer frame?

Ideas include:

The benefit of aluminium extrusion is that you can easily adjust the mounting points etc.

The benefit of welded steel is that it stays in one shape and you don't have to worry about bumping the mounting points etc.

The big drawback of welded steel is that you need a way to make sure everything lines up after it is welded, because you can't adjust it.

So I'm thinking I maybe weld the outer framework but use adjustable bolted joints to locate the actual bearings.

As long as I make it easy to bolt on extra parts then I can keep prototyping extra bits with 3d-printed frames and just switch them to metal once I know I won't want to change them.

Then the next question is whether I start on the "actual" outer framework now, or whether I just make a minimal steel frame that will hold the balance wheel and escape wheel, and worry about integrating it into the larger frame later.

Or potentially I only want it to hold the balance wheel, and that way I can still experiment with escape wheel bearings etc. in 3d-printed frames.

Let's say I'm just making a prototyping frame for the balance wheel, not the final one, and then I don't care whether it is any use in the final clock or not. If it holds the balance pivots more rigidly then it's doing its job.

I drew this as an idea for the layout:

So that shows belts/chains from the falling weight to the train, and from the train to the hands.

I would maybe move the balance wheel to the top, just below the face, and obviously make the falling weight fall from the very top up where the face is.

When I look at that picture suddenly the frame doesn't seem so complicated any more, I could probably do the final one on the first go? Just need to allow provisional for bolting horizontal pieces on to it to support the individual shafts.

Currently my escape wheel has 37 teeth and the balance period is 4.75 seconds. I'd want to increase both of those, so let's say I have ~50 teeth and 5 second period. Then it takes 250 seconds to turn the escape wheel, and I think I previously thought 15 turns of the winding drum per year, so about 1:8400 ratio from the winding drum to the escape wheel.

Which you can do with 3 lots of about 1:20.

So the shaft that the winding drum is on, geared to shaft A, geared to shaft B, geared to the shaft that the escape wheel (remontoire...) is on. Nice and simple?

So shaft B will take about 5000 seconds to turn, should be easy enough to gear that to the minute hand.

And, by random chance, my sketch had the right number of shafts in the train, but it could be simplified if the drive to the hands came directly off shaft B instead of its own shaft geared off shaft A.

That's just 2 more stages of gearing compared to what my current model has.

Frome homeless charities

I saw a homeless man in Frome today. (Not particularly unusual). He was in a grubby jacket, hunched over on a bench, talking to himself quite loudly. At first I thought he was talking Arabic or doing prayers or something because I couldn't understand him, but I eventually worked out it was just English. I heard him say "I'm scared, lonely, and ill, and I just want to die". But I didn't help him or react in any way, just kept walking like normal.

But it must be quite an awful situation if you are scared, lonely, and ill, and just want to die, and you have noone to ask for help, and you ask out for help in public and the rich comfortable middle-class people totally ignore you and walk on by, more worried about whether to use a steel frame or an aluminium frame for their clock prototype.

But also I don't want to approach random nutters in the street and engage them in conversation.

So I am going to look up Frome homeless charities and give some money to whichever one looks like it is most effective.

ChatGPT suggested:

And there's also:

Julian House is just a charity shop, not obvious that they do any actual work in Frome.

Fair Frome looks to be mainly focused on food. Their main services seem to be a food bank https://fairfrome.org/food-bank/ , and hot dinners https://fairfrome.org/food-at-five/ - so potentially useful for the homeless.

Frome Area Community Land Trust says:

Homelessness isn’t just the distressing sight of people sleeping rough in tents or shop doorways.

It’s also the young people who are sofa surfing, the families who are in temporary accommodation, and anyone who’s living at risk of violence or abuse in the home and is unable to find alternative accommodation. Covid national lockdowns and the rising cost of living has increased this problem and homelessness is on the rise across the UK.

But actually I am mainly interested in helping the people who are having to sleep rough, not the people who are sofa-surfing or in temporary accommodation. I want to get people into temporary accommodation! And the thing about Covid lockdowns makes it seem like nobody is really keeping it up to date. Has noone who works on this looked at their homepage in the last 3 years?

The Frome Town Council page on "help for rough sleepers in Frome" is closer to what I'm trying to do. It says you can report rough sleepers via StreetLink. OK, I didn't see this guy sleeping but let's try and report him on StreetLink anyway.

The "enter a postcode or location" box doesn't seem to be very good. I am trying variations of "Frome library", "Cheese & Grain", "Cattle market car park", and it's not finding anything.

"Justice lane" found it, and then you can move a dot on a map. OK, seems pretty good.

It doesn't want to hear about him though.

Are you sure the person was sleeping or preparing to sleep?

Please do not make an alert if the person is begging or engaging in anti-social behaviour if they are not rough sleeping.

I looked on the section for "Get help for yourself" and it basically tells you to contact the council. Also I can't see anywhere to donate, I think this is basically a public service rather than a charity.

Step Together says:

We support people in Somerset who are homeless or at risk of homelessness, and who are facing multiple disadvantages such as mental health difficulties. Our aim is to help our clients find the hope and courage they need to change their lives.

Which seems to be about what I want. They have offices in Taunton, Yeovil, and Street, so not Frome.

The Shelter website looks a bit too effective at asking for money, which makes me think they are setup to be hyper-optimised in the wrong way, i.e. for collecting money rather than spending it effectively.

The Shelter website section on homelessness basically directs you to contact the council. So what service are you providing exactly? Hosting a website?

So I think Fair Frome and Step Together are the best candidates, although neither of them obviously directly provide accommodation for the homeless in Frome.

The Second Step donation is via JustGiving, and supports arbitrary "tip" to JustGiving, whereas the Fair Frome one is via LocalGiving, which seems to give you a choice between either paying the fee on top of your donation, or having the charity pay it out of your donation. So I gave a bit less to Fair Frome because the minimum fee was higher.

Friction table for 3d-printed materials

I'm curious about the friction properties of different 3d-printing materials.

Chiefly:

I should make a 2-dimensional table showing the coefficients of friction between different 3d-printed materials.

For each pair of materials we have a lot of modes of motion:

So I think to start with I'd just want to do layer lines on layer lines, parallel to the lines. That is the mode that we have when gear teeth are meshing. But maybe o

Not today, too much else to do.

I2C Sensor Wiring

The electrical connectors that I ordered yesterday have arrived already! That was quick. And they have a generous amount of cable on them, just under 1 metre. So, OK, it was £51, but it came the next day, has plenty of cable, and looks to be good quality. Apparently you get what you pay for.

Also the BMP390 has arrived.

So I can now put all of these sensors on cables, and 3d print housings for them and a case for the Raspberry Pi.

The pins don't appear to be numbered on the connectors, so let's say:

Looking into the female connector.

And I checked with the male version (admittedly only on one) and the colours match.

I don't have any 2-row pin headers, so I will connect these to the GPIO header with 2x 1-row pin headers glued together. I don't know how to make sure it doesn't get plugged in backwards. Maybe don't worry about it.

I've wired up the BMP390 using the new connectors, no panel mount or anything, just loose on the desk. Let's see if I can read from it...

BMP390

Maybe start by getting Cursor to write a BMP390 lib in go?

The BMP390 is using address 0x77 just like the BMP180 did. I thought this was meant to be at 0x76? Not the end of the world if I can only use one of them.

I think this might be a fake BMP390, the markings on the casing don't match what it says on https://www.bosch-sensortec.com/products/environmental-sensors/pressure-sensors/pressure-sensors-bmp390.html

Cursor's interface lib didn't work properly, gave bogus values. I'm going to feed the datsheet into ChatGPT and ask it to have a go.

ChatGPT's gave bogus numbers as well. Both implementations had "placeholder" code for "applying compensation". I asked both of them to write the compensation code and both of them still gave bogus numbers. This is annoying.

Next I put https://raw.githubusercontent.com/libdriver/bmp390/refs/heads/main/src/driver_bmp390.c in Cursor and asked it to port it to Go.

Woo, after a few iterations of "please don't simplify it, do the full implementation", "please add the missing calibration steps", etc., it is giving believable values:

Temperature: 21.51°C, Pressure: 101333.05 hPa

Pressure is just 100x too high but then we're there.

Hmm, but touching it and breathing on it isn't making it give different answers.

This complicated compensation code might just be a magic trick that makes it always give the same answer.

I should try to find some already-working code that can read from this sensor just to verify that the sensor is working.

I'll try https://learn.adafruit.com/adafruit-bmp388-bmp390-bmp3xx/python-circuitpython

I've created a "virtualenv" for Python so that I can install packages.

Interestingly, if I run the Go code and the Python code in parallel then the Go code starts seeing the values changing. So I guess the Python code knows how to tell the BMP390 to take a new measurement, whereas the Go code is just reading a stored measurement?

But the numbers do match between the Go code and the Python code.

It looks like one of the commands enables/disables power to the actual sensors. Would you want to leave them on all the time so that they are stable, or leave them off most of the time so they don't heat up?

Don't know, still haven't got the Go code to work. Worst-case I could shell out to Python, could be slightly annoying in future but maybe I don't really care. It might be good to work out if there is a difference between leaving the sensors powered and only powering them up to read from them though.

SHT85

I'll pause on the BMP390 and try out the SHT85. This will be more tricky to solder because the pins are much closer together.

i2cdetect -y 1 found it at address 0x44.

Cursor wrote me a working SHT85 driver with only a small amount of debugging connection issues.

Probably I should ideally move these drivers into a dedicated github repo so that other people can easily use them. Maybe some other time.

It's absolutely phenomenal that claude-3.5-sonnet has enough information in it to write working device drivers given only model numbers.

I have SHT85 data showing on the web UI now.

I should wire the BMP180 to a plug, and put a second socket on the GPIO, just to make sure 2 of them definitely work at the same time.

Here's 4 female connectors wired to the GPIO through a little bit of stripboard:

I think I've left enough wire on these to be able to fit them to a case.

Woo, works with both at the same time.

You can see the SHT85 has much better precision.

Low-friction oil-free pivots study

I should do some experiments to work out how to make pivots for this clock in a way that doesn't require oil.

I'm imagining a metal shaft running either in micro bearings or some kind of plastic bushing.

Obvious things include:

And I think we'd want to know how much torque it takes to start turning the shaft under various levels of load. So, place the shaft under test on anti-friction wheels, hang a weight off it suspended from some pivot made from the material under test, and then see how much torque it takes to rotate the shaft inside that pivot?

I think we'll find that for low loads plain bushings win, and for higher loads micro bearings win, but would be good to quantify.

TODO

< 2024-12-02 2024-12-04 >