"Star Power" for embedded devices

You can see the two “Stars”. They have blue heat shrink tubing on them

I’m building a large led panel. No idea why. Mainly to see if I can. Anyhoo, I’ve got six 8x8 panels that are linked to a Raspberry Pi PICO. One way to link the power signals for the panels is to “daisy chain” them, i.e. connect the power output of one panel to the power input of the next one. This makes the wiring a bit tidier, but it does mean that the power to the last panel in the chain has to make its way through five other panels before it gets there. This can cause the supply voltage to drop and the later panels end up looking dimmer. I know this for a fact because I daisy chained the panels from my PICO and the panels further away from the supply were dimmer.

So I’ve changed the wiring to “star”. A single wire from the power supply is split six ways and sent to each of the boards. There are no chains and the panels all get the same voltage. With the result that all the panels now look the same.

Pretty in pink

I think things were made a bit worse because I was using super-thin wire wrap cable which doesn’t transfer power very well. If you are finding that things don’t look the same as each other it is worth looking into the power supply side.

Buy "20 GOTO 10"

This book is fantastic. If you lived through the microcomputer revolution of the 1970’s and 1980’s it will refresh a lot of memories. If not, it will give you a wonderful glimpse into that time. It’s packed with facts and stories you didn’t know you cared about until you read them.

Some of the articles are tiny, some span several pages. All of them are uniquely identified by a “line number” and each has references to other related stories. You can follow a path through the text and reach a happy ending, or just an ending. Or you can do what I do, which is dive into the text and just read stuff I fancy.

The printing is small, but that just leaves more room for detail. You should buy and read this if you have any interest in computers and where they came from. And if you have no interest, buy it anyway and learn even more. I can’t recommend it highly enough.

Huge Camera Fun at Comicon 2025

I feel terrible about this shot.

It was up at 5:00am today to catch the early train to London and head to Comicon. Everything worked fine, although I could have done without the walk in the rain to the station. Anyhoo, we arrived in good time and got our badges. I took the big camera, with a plan to use the built-in flash. I gave that up after the first few shots. The flash seemed to go off like a supernova. After nearly blinding a wizard I switched to using available light. Of which there was a surprisingly small amount. This meant turning up the sensitivity and using slow shutter speeds, so all the shots came with a extra noise and blur. But I did manage a few pictures which I’m happy with. Especially if you look at small versions…

Daleks on Parade

Mr. Saypuffed

I’ve no idea who this chap is, but he came out very well.

I need to work on my framing. But the picture isn’t too bad.

Now I do know who this chap is, and he even has a sabre of the correct colour

Nice Car

Another view

I don’t think you can buy this as a kit

If I could have held the camera steadythis would have been a great shot

Great fun was had. The stalls were full of interesting stuff. The place was mad busy after lunch though.

Dial Repairs

I love a camera with real gears inside it

I met up with Ian today for a coffee. I took along my Canon Dial 35 to take some snaps. Coffee was great and then I wandered down Newland Avenue with the camera. It was a lovely day and there were lots of photo-worthy things around. The Dial 35 winds on the film automatically, which made taking lots of pictures really easy. Then it made a funny noise and stopped. Oh dear. Then I pressed the rewind button to return the film to the cassette and it made an even funnier noise. Oh double dear.

When I got home I put the camera in my light tight bag and took a look at it with my fingers. The film had come all the way out of the cassette and wrapped itself around the take up spool. I managed to recover the problem and get the film back in the cassette for developing later. But the camera still didn’t want to work.

So I took the film winder spring off the bottom and had a poke around. I think a thing which is supposed to move smoothly up and down is not doing that. I’ve freed it off a bit, added a tiny amount of oil, put everything back together and it seems to work. I really hope it is mended. It has a super sharp lens and takes really good pictures.

The Rabbit R1 is now worth buying

This is what it made of me…

I’ve had my Rabbit R1 for around a year now. I think it has reached the point where I would say it is worth buying one. Particularly as you can pick them up second hand for less than half the new price. The latest upgrades to the software have made the device a lot more compelling.

This is what it did to my Lego Robot

The magic camera is a lot less abstract and produces images that very recognisable. And if you want to add artistic effects you can do that too. The RabbitHole lets you automate web based tasks and provides an “Intern” that you can task with, er, tasks. I asked it to write a Rust course for me and it just went away and did it. Very impressive.

You can now ask your Rabbit to send you email responses. I asked mine to email me the weather forecast for the next five days and it just popped into my inbox.

You can give your Rabbit its own personality - mine presently talks to me like a cowboy for some reason.

And, last but by no means least, your Rabbit now has a memory. When you turn it on you take part in a little phone call where a friendly voice asks you a few questions and then starts to track what you are like and remember stuff that you tell it.

All of this is provided for free (at the moment) and it all works. I’m not sure if the Rabbit business model is workable (actually, I am sure - I don’t see how it can be long term) but I hope that at some point it moves to something where I can pay a sum each month to keep a Rabbit in my life.

Well worth a look. Particularly if you can pick one up cheaply.

Begin to Code books in a Humble Bundle

Humble Bundles are awesome. You can use them to get low cost collections of software, games and books. And I’m very pleased to report that my “Begin to Code” books are in the one of their latest bundles: “Learn to Program 2025”. You can get my C#, Python and JavaScript books at fantastic reductions.. There are lots of other interesting looking titles too. Well worth a look.

Careless People: Sarah Wynn-Williams

You should read “Careless People: A story of where I used to work”. The author is Sarah Wynn-Williams. She spent a lot of time at Facebook, at a level high enough to get to fly around with the boss in the corporate jet. Her story starts with a shark attack and then gets properly exciting.

Having identified a need for an ethical framework at Facebook and persuaded the company to take her on board to build it, she learns that the company doesn’t actually care about ethics. It cares about numbers. The number of users, the amount of their engagement, and the amount the company can earn from monetising all of this. Her carefully constructed checks and balances become just part of the campaign to get to more people and organisations and make bigger numbers.

People have reacted with surprise at some of the things revealed in this book. Not so much me. One of my theories (I have many) is that some people will try to get away with anything a given situation will let them. Great Power might come with Great Responsibility, as Peter Parker’s uncle said, but you can choose not to exercise any responsibility. If it takes time, costs money and reduces numbers you can just do what you like instead of worrying about bad things like law breaking and getting folks killed.

I’d love to think that there is an ending coming up where some of these chickens come home to roost. Where people find out that they are not above the law and that actions have consequences. But I don’t see that happening any time soon. And it will only happen if enough people read books like this one and start to think more about where the world is heading.

Update: I read the book for free using the BorrowBox app that is available to people lucky enough to live in the Hull area. They have lots of recent books available. You might have to reserve a title and wait for it to become available (just like a real book) but it costs you nothing. Worth signing up for.

Italian for beginners

Are you embarrassed by your lack of Italian skills? Having bother telling your pancetta from your pana cotta. I present to your this handy way of remembering, and retaining your continental cooking cred.

  • pana cotta: babies sleep in cots, and they like drinking milk. So this is the creamy desert.

  • pancetta: cheetahs like to chase pigs, so this is the one that is a bit like bacon.

  • panettoni: Tony likes eating cake, so this is the one which is like cake

You’re welcome.

Turning off the Circuit Python storage device

When you connect a CircuitPython powered device to a desktop PC the device appears on the PC as a usb storage device onto which you can write your program and data files. If you don't want this to happen you can put a **boot.py** file on the device. When a CircuitPython powered device wakes up it runs the program in this file.

import storage
import usb_cdc

# Disable USB mass storage
storage.disable_usb_drive()

# Keep USB REPL enabled to allow deploying files via REPL tools
usb_cdc.enable(console=True, data=True)

# Remount the filesystem so CircuitPython code can write to it
storage.remount("/", readonly=False)

This program disables the usb storage, ensures that we can still deploy files using the REPL commands and then remounts the Circuit Python file system so that it can be written to.

Note: If you don't enable the REPL console you will have a slightly more secure device (it will not be possible to easily fiddle with the filestore via a serial connection). However, you will have to erase the current program in the device if you want to make any changes to it.

Recognising "Two" at the Hardware Meetup

The evidence is on the screen if you look closely

More fun at the Hardware Meetup last night. Brian had brought along an M5 Stack device that recognizes words that you say. Mostly. The idea is that you can use it to make your devices voice controlled. It’s very cheap, has a vocabulary of 42 words and nearly all of them work. Except “Two”. This stubbornly refused to be picked up until Ross turned up and managed to make it work. We think it might be his accent. Or lack of it.

If you don’t want to input numbers you might find a use for it. You connect via a serial port and it sends messages when it receives the wake word and words that it recognizes. The marketing blurb says that you can add extra words from a total vocabulary of 300 words, but at the moment it is not clear how to do this.

At the price I think it represents good value. It was certainly fun to play with.

Tidying up the home page

I’ve done some tidying up of this site. I’ve got rid of the word cloud thing, which served only to remind me that I’ve written lots of posts about things that no longer exist. In its place I’ve put some links to things that are ongoing and folks might find interesting.

If you think there are other things I could do which would improve “The Rob Miles on-line experience” please let me know in the comments.

Update: I’ve put the tag cloud back. You can now find it on the top menu. I’ve also added a “Bad Jokes” link.

Current Flow

You know that feeling when you put a teacake in the toaster, push down the lever and everything goes out. I do. It happened at teatime today. Turned out that a wayward raisin had bridged the gap between the element and the case of the toaster causing a current flow (yay!) which tripped the circuit breaker. It took me three goes to fix it, but now I can make toast again.

The Python Connected Little Box takes shape

I’ve been making Connected Little Boxes for ages. Up until now they’ve been powered by a large a complicated C program that I wrote a while back. I thought it might be fun to convert the code to Python and run it in a Raspberry Pi PICO. So last week I started putting it together.

The code controls an embedded device and is based around pluggable manager components which are automatically discovered and loaded when a device starts. Managers can have dependencies so that the MQTT manager won’t do much until WiFi is working, etc etc. There’s setting management, messaging and a console command interface too. It’s all coming along splendidly at the moment. I’ll have everything on GitHub once I’ve made it work.