ROS1 Docker tutorial

docker ros featured

This is a walkthrough of the standard ROS1 tutorial using the WSL2 docker image prepared in the previous post.

ROS, Docker and WSL

robots ros featured

ROS1 is not very well supported in Windows, but it is very useful to be able to do robot simulation on a desktop PC even when Linux systems are not available.

The robots are coming (virtually)

robots ros

Yes, it’s several years since I last posted anything. But I think this might conceivably be useful for somebody, in a very specific set of circumstances.

The sons of Martha

Rudyard Kipling wrote a poem called ‘The sons of Martha’ which is a gentle hymn of praise to those in society whose graft keep things going while others enjoy themselves. I like to think it’s about engineers. It contains a line which I really like: ‘They do not preach that their God will rouse them a little before the nuts work loose’. If I’d paid a little more …

Making things to make things to make things

I recently acquired a woodturning lathe. Unfortunately, it was missing a rather important part - the centre drive head, which grips the wood being turned. It’s not huge or complex. It just looks like an elongated nut with spikes on one end which grip the wood being turned. At the other end is an internal screw thread, which fits on to the drive shaft of the lathe: Because the lathe is old …

Happiness is a clean head

I’ve not posted much about 3D printing for a while, largely because I haven’t ben able to get my printer to make a decent print without a lot of fiddling. Prints were rough, structurally weak, and generally unsatisfactory. I Tried all sorts of kludgy fixes, but nothing seemed to work reliably. I was beginning to think that the filament I was using was beginning to degrade (some of it …

ESP8266 happiness

arduino-2 esp8266 arduino esp8266 wifi
It just goes to show that perseverance sometimes pays off. It turns out that the reason I couldn’t get the Olimex esp8266 to work properly was that my USB/serial converter was faulty. The replacement one arrived today, and now I can program the wifi module using the arduino IDE with no problem. Five seconds after programming it, it had connected to my home network and was sending temperature …

ESP8266 disappointment

arduino-2 esp8266 arduino esp8266 olimex
I found a very promising new ESP8266 module, from Olimex (a Bulgarian company). It’s a breadboard-friendly board with an ESP8266 and 512k of flash memory on it, and it’s dead cheap. There’s even a carrier board for it, with a relay and a reset button, also dead cheap. I bought a couple, because it exposes all the pins from the microcontroller, so I can (a) use more than one I/O, …

The King is dead. Long live the king!

arduino-2 esp8266 arduino esp8266 iot
For a while now, I’ve been playing with the super-cheap esp8266 WiFi module. It’s been a bit of an uphill struggle, mostly because of the poor documentation (actually, that’s not fair - the documentation may well be excellent, but my understanding of Chinese isn’t) and the lack of easy programming tools. Until now, there have been essentially three ways of using the module: …

Printed lathe parts online

Since I posted a video of my 3D printed lathe on YouTube, the video has now been viewed over 100,000 times. If a typical working day is 8 hours, and the working year is 250 days or so, then it’s the equivalent of about two solid years of someone watching it. That’s not a job I’d want. Anyway, a number of people have asked for the STL files so they could make one themselves.

Arduino tutorial 7

At tonight’s Hull Digital Hardware Meetup, we will be doing the seventh tutorial on Arduino programming and interfacing. This one involves yet more flashing lights (it is nearly Christmas, after all). The tutorial notes are available on the Arduino page

Never mind the Buzzclock

arduino-2 arduino real-time-clock
Fair warning So far, only one person I’ve told about this project thinks it’s a good idea. Everyone else looks at me wtih a mixture of pity and puzzlement, neither of which emotions seems to be mitigated by my explanation. Clearly, the best thing to do with the project is to bury it quietly, and where better to commit something to obscurity than on my blog? A little bit of background …

Cracking the cube

lego-mindstorms rubiks-cube
I can’t take any credit for this. Earlier this summer, I built a Rubik’s cube solver from a Lego Mindstorms set. I simply followed the plans for the Mindcuber design. It seemed to work quite well, but my Rubik’s cube had one face which was much stiffer to rotate than others, and the power available from the Lego motors was insufficient to reliably turn it. So it’s been …

...and we're back!

As a close follower of my blog, you will doubtless have noticed that it has been off the air the last few days. I didn’t. Rob drew my attention to its non-existence. It turns out that there were hosting troubles, and to cut a dull story short I’ve had to move the blog to a different hosting provider. It’s more or less fixed now, but still has a few niggles to sort out.

Creating 3D models is hard

3D printing is easy. You can buy a 3D printer off the shelf for a few hundred of your Earth pounds, download patterns from thingiverse and be printing solid stuff straight away. Creating your own 3D models is harder, and it seems to me that this is now the bottleneck (at least, if you don’t want to spend a lot of money). There are several options. You can scan a real item, if you have a 3D …

More tiny WiFi success

arduino-2 arduino esp8266 wi07c wifi
As I have posted before, I have been playing with the super-cheap WI07C WiFi module based on the ESP8266 chip. I’ve now had sufficient success with it that I can publish a post on a working project. This simple setup uses an Arduino nano to read temperatures from to 18BS20 sensors, formats the data as JSON and then sends it over WiFi to a server on my home network. It’s cheap and …

Wifi success, for a change!

arduino-2 arduino esp8266 wi07c wifi
I’m actually having success in connecting the super-cheap WI07C wifi module to my home network, so that an arduino can send data anywhere. [caption id=“attachment_373” align=“alignnone” width=“300”] WI07C module featuring esp8266 chipset[/caption] I can now reliably establish a TCP connection and send data back and forth. It works rather well, with some …

WiFi for less than a fiver

arduino-2 arduino esp8266 wi07c wifi
Last week, the excellent hackaday ran a story about a new WiFi module (the Wi07c) based on the ESP8266 chip. It is eminently suitable for attaching to an arduino or similar, but it only costs $5. As I’ve been whining for some time about the high cost of WiFi shields for arduino, this piqued my interest. I bought a couple from the electrodragon store and have now had a bit of time to play …

New Arduino tutorial (number 6)

At tonight’s Hull Digital Hardware Meetup, we will be doing the sixth tutorial on Arduino programming and interfacing. This one involves sensing colours and flashing lights. The tutorial notes are available on the Arduino page

Lathe parts online

Some people (honestly, more than one) have asked for the source files for the parts for the 3D printed lathe. I’ve posted them under the OpenSCAD tab. There’s a direct link here. Don’t forget the Youtube video if you want to see it in action.

It's not my fault!

3dprinting 3d-printing
It’s probably not my fault, at least. If you’ve been following my blog (and why wouldn’t you?), you’ll know that I have had some issues with my 3D printer printing things skewed. It got particularly annoying a day or two ago when a five-hour print ended up unusable. It’s about time I got this problem sorted out. Annoyingly, it seems that every time I do a test print, …

Disappointment is...

… finding your five-hour print is faulty Hmmm. Yesterday I replaced the heater in the printer’s hot end, vastly improving printing. Today I replaced a faulty power switch, reducing the chance of the printer cutting out mid-print. There seemed to be no reason not to make a start printing some of the bigger components I’ve been working on. Here’s the first one: Don’t …

Things are hotting up

3dprinting 3d-printing hot-end
I haven’t posted much about the 3D printer recently (or indeed about anything else). This is partly because I have been trying to work out what was the cause of poor print quality. I’ve finally worked out what the cause of the problem was. I’d been finding it increasingly difficult to print larger objects, particularly those which involved long continuous print movements. The …

New Arduino tutorial

arduino-2 arduino hull-digital
At tonight’s Hull Digital Hardware Meetup, we will be doing the fourth tutorial on Arduino programming and interfacing. This one involves Things Beginning With The Letter ‘I’, so if you have narcissistic tendencies you may enjoy it. Or you may have completely misunderstood. The tutorial notes are available on the Arduino page

Hot Pi

raspberry-pi hardware pi python
In my last post, I explained how to set up the Pi with the drivers needed to allow it to read temperatures from DS120B sensors. In this post, I’ll show you the code and setup required to make it start taking readings automatically at bootup, and store the information in a Mysql database for future use. I’ll also add a couple of LEDs to the circuit, so that the system can provide some feedback and …

Warming to the Pi and Python

raspberry-pi pi python
I’ve had a Raspberry Pi since Christmas, but haven’t done much with it up till now. That’s all changed since I moved house. Getting to grips with a new central heating system, I find that (for reasons too dull to list here) I need to monitor and control it rather more flexibly than I can do with the standard timer. I also don’t want to pay lots of money for a Nest controller, however beautiful it …

New Arduino tutorial

arduino-2 arduino hull-digital
At the Hull Digital Hardware Meetup tomorrow evening, we will be doing the second tutorial on Arduino programming and interfacing. This one involves Nerf guns, so it may be little chaotic. The tutorial notes are available on the Arduino page

Richmond revealed

3dprinting 3d-printing
I was at one of Rob’s excellent rather useful seminars yesterday. As it was about 3D printing, Rob asked me to say a little bit about my printer. Having not prepared to do anything, I relied on some bits of video I found on my tablet. Thinking about it, I realised that although this blog has quite a few posts about specific parts of the building process, there isn’t really a post just simply …

Turn again, Whittington!

3dprinting 3d-printing lathe
As a devoted reader of my blog, you will know that I’m engaged in a continuing quest to improve the precision of my 3D printer. The most recent improvement was to replace all the pivots in my original design, which were simply composed of screws passing through holes in plastic, with proper miniature ball bearings. This has had a huge benefit – there is now very little play in the movement of the …

Success, of a sort

The recent modifications to my printer have made a huge difference. Not only is it printing much more accurately, but I can print item after item without recalibrating. There are further improvements to be made (aren’t there always?), but I’m now at a point where I can be reasonably confident of being able to print the parts I need to make modifications. Here’s an example: These two clamps are …

You will be upgraded!

You will become like us. Yes, I like Doctor Who (as if that was unlikely). This isn’t about Cybermen, though, it’s about a significant upgrade to my 3D printer. As initially designed and constructed, many of the pivots in the printer are simply screws passing through holes in the PLA printed parts. Over usage, these holes have become enlarged, so that the screws are loose. This means that apart …

Engage reheat!

Yesterday, I wrote about the bad consequences of letting printed PLA get too warm – in summary, it softens and bends. In the case of my 3D printer, it resulted in the print head getting out of alignment. Thinking it over, it occurred to me that I might be able to fix the problem by reheating the plastic a bit and straightening it out. To my surprise, it worked. I boiled some water, put it in a …

The funny thing about thermoplastic…

… is that it melts when it gets hot. “Well, duh!”, as my daughters would say. PLA, the thermoplastic used in most 3D printers, is a very practical material. It’s light, strong enough for most purposes, and melts at a reasonable temperature. Which is why I’ve used it for many of the parts in my printer. Most of these parts have no chance of getting hot, so the fact that PLA softens as it heats up …

Who ate too much Pi?

Calibration, that’s what you need. If you want to be the best, if you want to beat the rest, oh-ho-ho, calibration’s what you need. I apologise to anyone too young to remember the TV programme Record Breakers but i couldn’t resist. Calibration of my printer proceeds apace. Today I’ve been checking the vertical movement of each carriage independently, and guess what? If I command them all to move …


Generally regarded as a Good Thing in an Englishman, eccentricity is rarely desirable in pulleys. The drive mechanism of my printer uses six pulleys, all of which have themselves been printed. In my ongoing pursuit of accuracy, I have discovered that some of these pulleys are not entirely circular, nor are they mounted entirely concentrically on the motor spindles (though exactly what ‘concentric’ …

Concerning calibration

Or, Why You Should Always Listen To People Who Know More Than You. There are many 3D printer designs out there. I took ideas from some of them, and designed my own. I’ve built it, and it kind of works. My prints are dogged by a number of problems. Principle amongst these has been a distinct slant to all the printed items (and by ‘distinct’, what I really mean is ‘45 degrees’).

Solid printing at last!

The hot end is assembled and fitted. The filament drive extruder is assembled and fitted. Even the LCD panel is fitted and (mostly) working. this means that I can now print solid plastic parts. In theory. In practice, there are teething troubles. Levelling the bed. Layers of plastic must be deposited at thicknesses of less than 0.35mm. If the print bed is not level with respect to the print head …

Some like it hot

Over the last couple of weeks, I’ve got the printer to a point where I can send it G-Code commands in the reasonable expectation of it carrying them out. At the moment, the print head only has a pen mounted in it, so I can check its positioning, but it will draw things on a piece of paper. There’s a rather poor quality video of it doing a calibration test print (or should that be a test plot?

What's it for?

When I tell people I’m making a 3D printer, their first question is usually “what’s a 3D printer?”. Once I have explained that, the next question seems to be either “why?” or “what will you use it for?”. Well, today I saw the perfect answer to both questions: this link

Pink plastic printer parts printed

3dprinting 3d-printing
Last weekend, the ever-generous Rob very kindly printed out a whole batch of parts for my 3D printer: With the ones he’s already done for me (and a few bearings, nuts and bolts and bit of carbon fibre rod) these comprise enough to build the printer completely, apart from the ‘hot end’. So that’s what I’ve done over the last few days. Although the parts were printed to quite high accuracy, with …

It’s Alive!

Yesterday, Rob very kindly printed a few more components for my 3D printer: a stepper motor mounting bracket, the top end idler pulley bracket, an idler pulley and a drive pulley. The drive and idler pulleys are version 2 components. I had to modify them to allow for a phenomenon I’m choosing to call squeezage. This is the behaviour of molten plastic which causes it to extrude slightly sideways …

When good cameras go bad

“Fuzzy” is a word that should only ever be applied to felt. Ignoring the colour, can you spot the difference between the two images below? They are scaled down, but if you click on them you should get a larger version of each. Obviously, the one on the left is out of focus. Both photos were taken of the same target, at the same distance. The sharp one one is taken with my wife’s Canon Ixus 105, …

Scary maths

Or how to convert from x,y,z coordinates to delta robot position With a simple cartesian robot (or printer), the mechanism moves directly along rails in each of the x, y and z directions. If you want to move a print head from the origin to, say, (10,10,20) you simply direct the motors to move it 10mm along the x axis rail, 10 along the y axis rail and 20 along the z.

Motorized mayhem

3dprinting stepper-motor-ramps
Caution! Hyperbole warning! All right, so there is no mayhem involved. But there are motors. Stepper motors, to be exact. Four of them. Over the weekend I built my RAMPS module (Aah, solder fumes!) and I am pleased to crow about the fact that it worked first time. In case you don’t know, this is an arduino shield which integrates the majority of the external components required for a 3d printer.

Something for the weekend, Sir?

I love the smell of solder fumes in the morning. Raw materials for my 3D printer keep arriving. It’s not surprising, as I keep ordering them, but it is fun. I’ve now received the aluminium extrusions I’m going to use for the vertical posts in my design. I ordered them from a place in Surrey, and was a amused to watch their delivery progress on the UPS website. Amused, because they started their …

Printer Claus has come to town!

As you know (because you follow my blog very closely), I’m building my own 3D printer. Today I received a box of stepper motors, an Arduino Mega 2560 board and a RAMPS controller board kit. These are the major items that I had to buy (rather than getting Rob to print for me). Having spent actual money, I’m now really committed to building the printer. Any day now I should receive the aluminium …

Creating a new world

One layer at a time 3D printing is not particularly new. It’s not quite commonplace yet, but in the last couple of years it has become sufficiently cheap that even a tightwad like me can consider it. I could buy a printer or a kit, but that would be too easy. Instead, I’m working on my own design for a printer similar to the marvellous Rostock printer. While most 3D printers are based on a …

Jumping Jack Flash

It’s a gas, gas, gas… OK, so the title’s rubbish. I’m open to suggestions for a better one which includes the word ‘gas’ or ‘meter’. Except the Beatles song ‘From me to you’, of course, because that would be a dreadful pun. And so to the point, which is that this blog post talks about using Gadgeteer kit to periodically read a gas meter, and …

Breaking out of bondage

Let my inputs go! The Gadgeteer system is great; there are loads of modules that you can easily use to do a range of interesting things. There’s a ‘but’ coming here, of course, and it is this: there’s no obvious way of connecting things which are not already Gadgeteer modules. For example, suppose you want to put a switch on your fridge door, so that you can trigger a …

Tracking fast moving targets with a Gadgeteer camera…

gadgeteer gadgeteer
…is completely impractical. In my last post, I briefly described a simple hack which allowed the Gadgeteer system to control the bearing and azimuth of an old USB missile launcher by using a joystick. Manual control like this is all very well, but it would be much more entertaining if the systems could track a target automatically before raining down atomic retribution on it. I use the words …

Nuclear armageddon

Or possibly sponge-tipped minor annoyance In this post, I’m going to show you a little bit of interfacing the Gadgeteer system with the real world. I’m going to do this by hacking an old USB-controlled rocket launcher which I picked up (from Marks and Spencer of all places) some years ago. The Gadgeteer system has a lot of plug-in components available, but none of them fire missiles (a …

1080p HD TV on a Gadgeteer system

Oh, and ‘orange’ sounds like ‘gullible’ if you say it slowly… In this post, I am not going to show you how to do HDTV on a Gadgeteer system. I am, however, going to do some stuff with the Sytech LCD touch panel, and show you how to do some simple (and rather rubbish, if truth be told) user interface interactions for your Gadgeteer projects. The .NET Micro Framework …

Buttons and bows

Or lights, at least In this post, I’m going to do a walkthrough of creating a very simple Gadgeteer prototype. It will not do a great deal, other than make some lights change when a button is pressed, but it will serve as an introduction to illustrate the Gadgeteer development process. First, get a telegraph pole… When I was a kid, I had a book called something like ‘Four …

Getting going with Gadgeteer

Being by way of an introduction. For many years, I’ve amused myself by building electronic devices. By far the most entertaining for me have been those which interact with the real world. I like stuff which moves things, senses things and generally behaves as if it had some magic in it. Since the advent of cheap microcontrollers, most of these projects have involved more programming and less …