Parametric modelling

I’ve been using a number of programs to design 3D parts. While there are a number of very good commercial offerings these are very costly and my budget does not stretch that far. Autodesk is a particular favourite as they seem to provide quite a number of tools in this space including photogrammetry, mesh modelling and parametric CAD. Their TinkerCAD is pretty good. I’d love to use their stable of tools but as a maker and hobbyist they remain largely out of reach.

Instead I’ve been trying the free and opensource tools and they very in ability and usefulness. While Blender is perfect in the mesh modelling space and my son is pretty good with it, like a lot of comprehensive tools you need to devote the time to make it become familiar. For a while I’ve use FreeCAD and some of it is pretty amazing, but as there is many ‘ways’ to accomplish the same thing it can get confusing at times. I’ve made a few models using it.

Support

Recently I’ve started using OpenSCAD and are really enjoying it. OpenSCAD is a little unusual as it is a programming language of sorts and you do not operate in a WYSIWYG mode – instead creating the model in your mind and then translating this into distances and objects. A great tutorial on OpenSCAD is over here. Its power comes from using geometry in a Cartesian reference space to combine, intersect, and subtract objects to create your model. I find it very powerful and easy to use as I can easily visualise 3D objects.

I’m building an enclosure for my 3D printer and will keep a record here, while making the objects available on Thingiverse for others to use.

Advertisements

3D prints everywhere…

dav

I’ve started printing lots of things with my 3D printer, maybe too many things! There were the normal table top figurines, busts of film characters, and printer test prints but then the bug really caught hold and I am in the midst of building a veritable mini-factory of sorts. Here’s my project list:

Projects

During the build of the 3D scanner, and while waiting for the parts to arrive from China, the US, and Europe I started another and began to get confused which project was which. Time to focus, methinks. The scanner is almost finished in its first incarnation and I’ll be able to use it for my future activities.

The end point of all this is to set up a mini-process line where I can produce small trinkets and sell them in my church’s Christmas fair in late November. We’re fund raising for a new building which involves mortgages, loans and long term commitment to a large community building, hence the fund raising.

How do you rotate a PDF?

Searching the internet for information on how to manually rotate a PDF finds lots of frustration. The reason I have done is this that my scanner produces pages rotated 90 degrees, and the times I have searched the internet over previous decade the answers have depressed me:

  1. Buy Adobe Acrobat Pro,
  2. Send your document off to an online service – dodgy if you value the information on that PDF,
  3. Download a program to do it, again suspect as you cannot examine the source code or understand the provenance of some programs,
  4. Buy a Mac, as the Preview preview on a Mac can do permanent rotation, and save the rotated document.

A lot of those ideas are bad for different reasons. Acrobat Pro is expensive for simply rotating a PDF; online services, even those that promise not to peek at your document, do have control of it; running strange programs isn’t recommended at all; and the world of Macs are wonderful and expensive.

There is a simpler way.

Some of the raw material in a PDF is in a format which describes the document in plain text, while some is in a binary format. The binary bits are best left alone, but the plain text parts are easy to edit in a good editor. I used Notepad++ but there are others such as Sublime Text or Atom. I realise that this is “download a program from the internet…” dressed up in different words, but these well-known editors main job is to faithfully edit things and save them without collateral damage. I also use them frequently for playing with programs that I write, so I trust them.

Within the first few lines of a PDF you will likely find a line like this:

/Rotate 0

Save a copy of the document first, then edit this line to some other multiple of 90 such as ‘180’ or ‘270’ then save the document. Multiple pages will have their own rotate declarative, so find those as well and change. On viewing the document now the page(s) will be rotated clockwise that amount of degrees. Job done!

Day Zero

Today is an amazing milestone in my life. Today, I am worth nothing. Not worthless – just nothing. If I add up all the liquid assets in my accounts they offset completely the debts I owe.

That is a good thing.

Debt is easily available in the UK and leveraging that availability leads to indebtedness. As an Indian colleague said to me as he moved back to India years ago: “most people here in England are on the tick” – which means that most people live on credit cards and other domestic loans for a long portion of their lives.

Once understood, it can be controlled and I found a program called You Need A Budget particularly helpful, a bit like a row of cookie jars into which you put your allowance each week and when a jar is empty then you stop spending. Their four basic principles are awesome. Using it for 5 years gave me a good appreciation of where my income was being spent, and that enabled me to accurately estimate how much I’d need when I retired.

Of course I am worth more than nothing – liquidate all the assets I have (investments, car, house, family …) then they would add to more than nothing but at least in liquid terms I am breaking even right now. That’s a great sense of relief, and allowed me to retire early. I’ve joined the FIRE movement big-time. Having started paying down all personal loans in my 40’s and moving to the YNAB budgeting system has given me the data needed to accomplish this and see life beyond the payslip.

Rage against the machine

I was expecting a delivery of a mattress today from a large retail chain.

When I ordered from the store I requested a specific day for the delivery and noted the time in my calendars. I kept telling my family that it would be delivered today and even prepared the space by taking out the old furniture to be ready. Lots of emails from the retailer including earlier today an invoice, and I noted that the money had moved from my bank account today as well. I was prepped and ready to receive!

Cue waiting at my window at the appointed time. With a sore back from an earlier exertion I had my son on hand to help with the lifting and shifting. Towards the end of the delivery window a large truck pirouetted around on the street and pulled just past my driveway. Woo hoo! son alerted, I opened the front door and put on my best delivery man smile … only to watch as they took out an mattress and walked around the corner and into someone else’s driveway! What, I thought, perhaps they have the wrong address – and my anger was confounded when they appeared with plastic in hand from unwrapping the mattress somewhere else!

I watched them drive off, any slower and I’d have been over the road accosting them and asking to see the delivery invoice. Back into the house and searching Google for things like “can I keep an item if it is misdelivered to me?”. Ready to stalk around the corner and ask a neighbour “have you got my stuff?” On the phone to the store asking what was happening, spouting off to my son and beginning to feel really passive-aggressive! Finally got through to the store and gave them my order number.

My delivery wasn’t today.

Apparently in the 10 or so emails which they’d sent through they’d moved it back 4 days. I’d skim read all of them including the three or so PDFs and missed the one where 14 ==> 18, at the same delivery time.

I was the one who was wrong, but I had plenty of ammunition to prove I was right!

It shows me how often incidents are caused by self-righteous people who think they are right, and perhaps even are right on occasion, but for whom that ‘rightness’ justifies all types of reactions. I’m glad I didn’t tell the delivery guys they were idiots, or bang on the door of my neighbour (although I might have met a new one that way!). I’m glad that I didn’t prove to be a fool to a greater extent than merely watching them and then calling the store, but I wonder how many other people around me today are encountering misunderstandings which escalate into angry words or deeds rather than being clear up?

Creality Ender 3 bed leveling

I’ve brought a Creality Ender 3. This is one of the cheapest 3D printers available and as many people were giving it good reviews on YouTube, decided to take the plunge at £165 on eBay. It was shipped locally from the UK and arrived quickly.

First impressions on unpacking were very favourable. All the parts came neatly labelled and I especially liked the small plastic bags with extra spare parts for screws, washers and other attachments. They also supplied a full set of tools including side cutters, hex spanners, zip ties and even a platen scraper to free models from the bed. This is a quality product and is very complete for the price.

But the bed levelling is a disaster.  Full disclosure – I may not know the slightest what I am doing, and all this could be a noob’s series of mistakes.

As I understand it, bed levelling is either done automatically with presence or induction sensors on higher-end machines, and manually on lower-end machines such as the Ender 3. While there is an after-market 3rd add-on available, I only have the stock machine. The whole idea of levelling is to make the plane of the print head x-y axis’s parallel to the plane of the printed material – more correctly known as ‘tramming‘ by machine operators. This is done by adjusting the bed to within a paper’s width of the print head, by moving the print head to the four corners and moving the bed up or down.

I did this, and could not ever get it level. There was never enough play length on the bed screws to adjust the amount needed. The issue seems to be that the side z-stop sensor is too high – even the installation instructions mention that it should be “~32mm” from the bracket bottom to the underside of the machine – however there was a lug on the printed bracket which would not let it descend to that level and held it at 35mm height.

  1. I removed the lug and set the z-stop to the suggested 32mm above base level. The bed was now too high and the auto-home feature would have broken the glass platen if I had not switched off the machine. IMG_20180809_110853
  2. Still not enough play, so move the z-stop higher. I can adjust the front thumb-screw enough and I am hopeful (- and this would work with the stock epoxy bed cover, not the glass one which is thicker). Still not enough play in the back thumb screws, especially the left rear. Heated bed electrics are in way. That spring is at the tightest depression while the nozzle is touching the glass. InkedIMG_20180809_110940_LI (2)
  3. So I removed the rear heated bed bracket, remounted without the bracket and now I get a lot more travel in the height at the rear. That leaves the heated bed electric exposed but I can live with that for a while.sdr

Much better. Now on to levelling the bed with the paper shim and manually moving the print head to the four corners.

I can either build a new support for the 24V electric line using Sugru or more likely, once I come up to speed with TinkerCAD and Cura or whatever software I start using, I can 3D print a new one.

It is a superb machine and very worthy of the kudos being given it on the internet – just be prepared to do a little work with it to get it running at its best.

Just One More Year

Financial Independence, Retire Early (or ‘FIRE’) is the domestic monetary policy that says when you have enough, you stop working. After all retirement is just earning money by other means.

I’ve gone the FIRE route and are stopping regular, salaried work. While I’m not sure that this will mean stopping all paid work (‘retirement’ itself being a concept that is changing), it does mean stopping any notion of a ‘career’ and simply getting money through anything that works – barring illegal activities of course!

A corollary of taking early retirement is the “just one more year” syndrome where you feel that you would like to stop working but think that one more year of a regular salary can help you pay off the mortgage, get the children through university, create a nest egg, or whatever. I encountered a quite few colleagues who felt this applied to them. Once I started planning and saw that my outgoings could be controlled and that I could achieve what I felt was a comfortable existence the idea of trying to make extra money seemed ridiculous. When would enough be enough?

You’ll never get as much income as when you are working and if you really cannot make your outgoings be less than your incomings, then you will never be able to stop work. As someone noted usually the event that gets you to stop thinking this way is something like a big workplace bonus, a buyout or redundancy offer, a friend’s health crisis or death, or a personal health crisis. For me it was a mix of redundancy offers which seemed to come around every couple of years (I personally sat through about five over the last ten years) combined with some maths that showed me I could survive outside the system. Once the next offer came around, I jumped at the opportunity and was the first to apply.

But it took guts to stop the job I had continuously for 25 years. I still have a very small mortgage (which will be paid off from my redundancy lump sum) and my grown up children still haven’t fledged yet. I walked back from posting my papers with tears in my eyes, and are still washing those decades of work out of my hair.

But the sheer energy and happiness I have now is amazing. I’ve helped with a week-long children holiday club, helped Syrian refugees in Europe, and gone on an overseas trip with my church. I’m looking at helping build houses with Habitat for Humanity, and exploring other things where my skills fit with a need. Every day I look forward with expectation as to what I can do and create without any feeling that I have to do tasks.

I’ll close with a quote from one of the early retirement forums:

“It’d be especially sad to work longer for more money while missing an opportunity to do the tremendously satisfying things that don’t happen to require much money at all.”

Doorbells

As I work more in my garden shed some of the conveniences of the house become apparent: heating, power, internet connection, cups of tea, and doorbells. I realised this last one after missing a couple of deliveries which while they were expected, weren’t expected at exactly the moment I stepped out my back door.

The problem isn’t the doorbell, the problem is that having a doorbell convinces you that you’ve answered the question of knowing when someone is at your door.

Nest are now supplying their WiFi doorbell in the UK and it looks a very capable device, and Amazon also do the Ring video doorbell.  While the price is high there is a lot of function provided and they variously do facial recognition, storage of video for review (with a subscription), presence detection, and letting you know when someone is at the door. That last one is strange: I run design thinking workshops and one of the exercises involves asking people to re-imagine the door bell. First exercise begins with: “draw me a doorbell”, while the second is exactly the same but begins with “draw me something to tell me that someone is at the door”. Needless to say the second elicits a wider range of devices including dogs, pressure mats, windows, and pull bells. But doorbells these devices are not: their primary functions are to enhance the door arrival experience so that we can either speak to the person there, let them in remotely, or see unwanted visitors before they see us. So why am I leery of wifi doorbells?

Power

Power is the enemy of remote devices. At least one of the current crop of internet connected doorbells needs a wired connection and this smacks to me of a fudge. My bottom line is that I might as well wire in a press button and a Raspberry Pi with video camera via power-over-ethernet as load such a big device on my doorstep. This aversion stems from my earlier work with power budgets on embedded devices and how it compared to other devices running in the ISM band, some of which operated for up to 2 years on a coin battery! Astonishing to consider that SBCs like the Raspberry Pi only operate for a day or so on a massive 13Ah battery pack, and even lower powered devices such as the Pycom LoRa struggle to get micro-amp-hour range while sleeping.

433MHz/868MHz devices, on the other hand, can exist for much longer on a smaller power budget – my Friedland front door chime runs for years on a coin cell battery. While I’ve played with ISM band devices before, their OOK or FSM modulation is difficult to understand unless you have a spec sheet. Long ago I had a set of devices from a now-defunct small electronic company which used an embedded protocol called LLAP and a cyclic wake mode which worked perfectly for my variety of monitors. Sadly, I am resurrecting the whole setup using more functional, but more power-hungry LoRa devices.

While there are other attempts such as DoorPi and some convoluted GitHub repos that write everything in Python, including event handling and streaming of video, I want to simply use my NodeRed installation to slave off the door press and everything else can happen from there. From my central NodeRed running on an Odroid SBC I can stream video, send a text message, speak back to the caller, switch on lights, and so on.

Question: how do I slave off the wireless ISM Friedland door chime?

Commercial Alternatives

Ring

The Ring doorbell by Amazon is an interesting alternative. It has the advantage that it is wire-free, but some of the reviews warn that it only trickle charges while connected through a wired extension and that ‘excessive’ number of people walking past can drain this – for which read 6-7 people max! That means a busy footpath like our road would very quickly drain it, so a non-starter. Also, lots of reports about delayed triggering of the phone application that make it seem not functional.

Nest

I like the Nest ecosystem, it handles well and rarely gives any problems. I have the Nest thermostat and their fire alarms and while the new Nest doorbell is currently retailing in the UK for around £250 and looks good, the base requirements specify a wired chime unit with exposed lugs on which to wire the leech wires from the door press. That makes it a no-starter for me as the initial cost of installing another wired door chime would be higher still. Perhaps if they do a wire-free option I could be interested again.

Others

While there are others out there and some pretty good CCTV combined monitors and door releases, I wanted to attempt my own because I have plenty of experience of using radio frequency ‘stuff’ and while I’m not an embedded microprocessor engineer, I will shortly have more time on my hands to complete projects.

I’ve started by using some Arduino code on a Wemos (- now called ‘Lolin’) D1 mini, which is an ESP8266 encapsulated on a board to expose the GPIO and powered by micro-USB. This can be programmed using the Arduino IDE and I’ve copied some code from Jamie Jones’ doorbell project. My sounder or chime is wirefree and links from the Friedland door press by using the ISM 433MHz radio band. Getting this part working was quite simple and a matter of adapting the code to local environment, and putting it into an enclosure – which is still to be done.

Next is to work out how to sound the chimes triggered by an MQTT message on a specific topic.

Extending WiFi to the garden shed

I’ve purchased a pair of Ubiquiti Litebeam M5 network dishes to extend my house wifi to the garden shed.

litebeam-m5-hero-gallery-01

Normally you’d only need one of these either to send or receive the broadcast from the main house, as my shed however is made of metal it tends to act as a Faraday cage and shields most radio frequencies, hence the pair of CPE devices. I have these set up so they point directly at one another and connect via the proprietary AirMax protocol which speeds things along as it is a layer 2 link (which means that broadcast and other packets normally inspected at the bridge boundary are passed as-is). While Ubiquiti do provide an excellent management server (UNMS) running in a Docker container, this is supplied only in a x86 image and won’t run on my always-on ARM SBCs.

These M5 are nice units because they are cheap, simple to assemble and operate, and gain up to 23db over a simple omnidirectional antenna.

litebeam-ac-features-gain-2x

Careful positioning is needed, and when they are talking to each other directly the signal is taken into my shed using normal ethernet Cat6 cable – although for professional and hardier situations there are toughened cables that you may use. This signal is fed to a Vigor 800 access point and spreads around the inside of my shed. Ethernet connection to the AP is also possible which gives really good latency response for playing games. I’ve measured 18ms response on a speed test which is pretty good considering how many bits are in the way, and the cable/radio/cable arrangement back to the main modem. I now have a number of managed switches and ADSL devices spread around my house, which is pretty good considering I don’t run a lot of servers.

Interestingly, the M5 are PoE meaning that they only have one ethernet cable into the actual radio ‘horn’, and further back you supply power and a connection to a PoE box – passive in this case – which feds 24 volts along the ethernet cable to the assembly. I also use this for my LoRa antenna in the loft as it means you don’t have to have power so close to the installation. They work well and my multi-protocol house is rapidly gaining an assembly of antennas!

(images taken from Ubiquiti web page)

Life Skills

As the world progresses the necessary ‘life skills’ needed in each era seem to change. The simple ones like being able to drive a car or horse, being able to read or use social media and understanding the difference between a cursor and and screen pointer! But even those get very old, very quickly.

Take, for example, the analog clock: the clock face with 12-hour divisions came from the ancient Egyptians with the the duodecimal system based on finger joints or lunar cycles. The skill based on being able to interpret the clock face is diminishing, and no-one needs it except those taught many decades ago. “Teach children to spell” yell the older generation while fumbling around on a keyboard and ignoring social media. “Make the remote control easier” grumble the same folks, while most younger people use their mobile phones to control their home lights, order meals, go shopping or find the next public transport. Skills change far more rapidly than a codified education system can keep up.

Take typing. If the only time you extensively have to use a pen is during an exam, surely you are training people for … the wrong things? Post university most people type things versus using a pen at almost a 10:1 ratio, yet we take many years to teach writing first. Teach them to drive a car just when autonomous cars appear and you’ve done the same thing as encouraging weaving just before the Industrial Revolution, or spelling just as spell checkers arrive.

We need to urgently identify those skills that are universal such as relationship management, ability to learn, adapting to change and fundamental things like self-learning and being curious. To paraphrase Pink Floyd, “we don’t need no prescriptive education”.