More laser

Having bought a CNC engraver I got very caught up in messing around with the optional laser module.

I'd previously not considered a cheap diode laser would be worth having, especially due to their reputation for rubbish software.

However once I'd played with it and set up Laserweb this changed my mind and I ordered a 2.5W A3 engraver. The 5.5W models are twice the price and probably not twice as good, online discussion suggests they are far worse at intermediate power levels which are useful for engraving. If the laser modules come down in price later I can always upgrade.

It's a much simpler machine to build than the desktop CNC, with steppers directly driving a belt and dragging a carriage up and down the rails. So I got it put together over an hour or so and simply connected it to my existing Laserweb setup. The drive ratios needed setting but apart from that it 'just worked'. Now I need to tweak things like the maximum speed and acceleration as it draws quite slowly but straight away I started to get usable output from it.

Here's a little video of it engraving at max 25% power. This burns really well so I'm thinking 100% will cut some thin stuff quite nicely, just need to start experimenting.


My experience with the laser module in the desktop CNC has made me less paranoid around it, which is probably a bad thing. So I'm going to set this aside until I can find some time to make an enclosure with a safety interlock on the laser power. I'll just stick a normally open switch inline with the 12V power so the moment you lift the lid the steppers and laser get cut. The microcontroller onboard takes its power from the system driving it.

It'll have a Raspberry Pi inside to run Laserweb so hanging a Webcam off this to give an internal view when the lid is closed should be trivial. I quite fancy making a bit of a control panel on the front to control the Pi and also control power to the laser perhaps via a GPIO driven relay so the whole thing has a single on/off switch but this is verging on yak shaving.

Miniature particle accelerator

In a conversation with a friend about making a compact very retro computer thing, the old 'pocket' CRT TVs from the 80s sprang to mind as a good option for the display.

It seems they're available for little money on eBay and nothing says retro better than a genuine CRT. The display just has a different look to it, especially a monochrome tube. Monochrome tubes have no shadow mask to make red green and blue 'pixels'. It's just a uniform coating of phosphorescent material that the electron beam scans over uninterrupted and I always preferred this look. It's less tiring than a colour CRT display in much the same way the e-ink display of a Kindle is easier on the eyes than the standard screens in most tablets and laptops.

After about ten minutes of messing about, mostly taken up by finding suitable cables, I got a Raspberry Pi desktop displayed on it. No I don't really know what use this is yet but I love it.


Going fully open source with the CNC engraver

I've been playing with the CNC engraver and discovered a few things. First up is the controller is based off an Arduino Nano running open source code (grbl) but running an older, stable version (0.9). Another is that the z-axis was miswired, even for the software it shipped with, so I had to reverse the pins on one end of the z-axis cable. It's possible to fix this in software but it irked me.

Somebody from London Hackspace pointed me at LaserWeb as a good front end to the laser engraver side of things so I've started to investigate it.

Converting these Chinese laser engraver/cutter devices away from the slightly cheesy software they ship with to open source is a common question and an Australian woodworker has produced a breezy intro to doing this. It's for a different device but the fundamentals are the same.



The LaserWeb server will happily run on a Raspberry Pi and I've several sitting in a box. After a couple of hiccups going through the howto it's up and running. This needs a newer version of grbl so I've programmed the Nano in the controller with grbl 1.1e. It's easy to put the original software back on as part of the original CNC build is to program the Nano with a file they provide.

A big gotcha I did find is that the LaserWeb GUI needs ALL the components to be working. So if you try to use the interface and it's displaying error messages, particularly relating to WebGL, in the bottom right log window it just won't work at all. It looks like there is a server error because it says you can't connect but this can be down to the graphics library as it breaks a load of things in the app, not just the graphics previews. A very helpful person from the LaserWeb3 support comunity on G+ helped me work this one out.

Now I was down the rabbit hole of playing with the laser side of things I decided I wanted to be able to work safely while testing and sticking the whole thing in a box was going to make that irritating. I've got a load of cheap ~5mW laser pointer modules kicking around so I 3D printed a 'dummy' housing the same size as the 'real' laser module and fitted one of these.

This left me free to mess around without blinding myself or starting a fire. The laser may only pack a 500mW punch but that's enough to do both these things.

Having proved to myself that the thing wasn't going to smash into the end of its travel and LaserWeb turned the laser on and off reliably in a fashion that looked like it was going to produce sane activity instead of just melting something I didn't want melted I had a go at the real thing.

I found an .svg of the Coke logo on Wikipedia, scaled it appropriately in the LaserWeb interface and started burning. At first this had zero effect and I was wondering if the laser module was defective. As I had a box over the whole thing to prevent any chance of blinding myself I couldn't really see what was going on.

I don't really trust the cheap laser safety goggles I got from Banggood. I had a webcam pointed at it but the laser simply oversatured the picture so I couldn't see much.

Using the 'test laser' button in LaserWeb, which runs it very briefly at minimal power, with the box removed I could see the beam was totally unfocused. There wasn't any obvious way to fix this, but some experimental twisting of the module showed it can be focused. This is not obvious at all and not mentioned in the minimal documentation. Once adjusted carefully to make a tiny bright spot it engraves random wood quite nicely. This Coke logo was done by running it quite quickly doing multiple passes. I need to experiment somewhat with the engraving speed and at some point try to cut some thin material.


In principle LaserWeb has a 'CNC' mode too where it will handle CNC milling/engraving which I'll investigate as it would be nice to use the same software for both jobs. The more I play with this though the more I think I want some limit switches so it can home itself automatically and definitely prevent crashing into the end of travel this is a bit of modding that shouldn't be too hard to do.

A productive evening

I've had a good evening of mostly tightening M3 nylocs. Eventually after about three hours my desktop CNC engraver went from looking like the first picture to the second one.

There were only a couple of moments of retracing my steps. The set of picture instructions you download were OK. However they've changed the design slightly and substituted some fasteners so you run out of shorter ones if you use them everywhere they suggest.

I've no idea if it works at all as I haven't powered it on, let alone installed the software. This is a job for tomorrow evening.

Desktop CNC unboxing

It's been a while since I posted. Mostly I got involved in running a LARP, which sucked a lot of my energy through August and September then suddenly it was Christmas.

Speaking of which, my present to myself was one of these tiny desktop CNC mill/engraver/laser machines from Banggood.

It's taken me a couple of weeks to get around to ripping the box open and here it is. It's going to be a smaller, simpler project than my 3D printer to assemble but I suspect it'll still take a while.

It's a curiosity in that it can do both engraving using a cutting tool and with a laser that fits in the same mount. The laser is only 500mW so it's not going to be cutting anything but I reckon for surface marking stuff it'll be great.

Right now I'm building a 'disposable' PC to run the accompanying software as I don't trust it not to be flaky and/or virus infested.


TiLDA MKe

At EMF, as well as giving every attendee the new TiLDA Mkπ badge they had a pile of TiLDA MKe badges from the 2014 event on sale.

These are not as nice as the 2016 badge, but given the knock down price a really good platform to mess around with.

It's an Arduino Due, Ciseco SRF data radio, black & white LCD display, LiPo charging circuit, 3.3v LDO regulator, accelerometer and assorted buttons/lights on a single board plus a battery to power it.

Given I already had on my radar that I wanted to build something that was a 'handheld unit with display and some kind of wireless comms' to use as in-game props I snapped some up. I have been using SRF radios extensively already, going so far as to write my own networking protocol for them, so it's almost like these badges were tailor made for me.

Having been professionally designed and made this is far better than anything I could hand solder in my cellar and will save me an absolute ton of time. They do lack WiFi but I have a load of ESP-01 ESP8266 WiFi modules which should be fairly easy to piggyback on and squeeze into the case if I need this.

Somebody has also come up with a 3D printable case for them so I've quickly printed one out. It's not a perfect fit, being slightly too shallow to close with the battery inside, but the source files are online so this has got me  even closer to a finished device.

Now it comes down to writing the software and I'm experiencing version/dependency hell in the Arduino IDE so can't even upload 'blink' yet. The library files on the badge Wiki are made for an old version of the IDE so I suspect downgrading to the version they mention may well fix this. Once it works at all I'll try to rework things into a format/version modern versions of the IDE will deal with.

Electromagnetic Field 2016

This year I went along to Electromagnetic Field, the biggest maker/hacker event in the UK, and it was awesome.

You get something like 1400 like minded people in an environment akin to a music festival.

There's simply so much going on it's hard to get a balance between attending talks, socialising, playing with the various installations people bring and actually doing some making or coding.

To try and inspire everybody to have a go at the latter they produced this fantastic event badge. They've really pushed the boat out with this, it's got a colour screen, Wifi, accelerometer, compass, piezo sounder, LiPo battery/charger etc. etc. It runs MicroPython and you can connect to it as USB mass storage so it's possible to write code directly for it from almost anything with a USB port and a text editor.

Most impressive of all, while it doesn't exactly have an OS they have produced an ecosystem for it. The 'home' app is a menu system for accessing other apps and there's an 'app library' on a server you can install things from and a mechanism for updating them once on. Also people could upload code to the app library while at the event and by the end there were 69 apps in there.

Obviously some of these apps were broken/trivial/stupid but by the end I saw people wandering around with all manner of homebrew stuff on the screens of their badges. Best of all was an old school Elite style line drawing of a 3D cube rotating.

Sadly it's only a biennial event so I can't look forward to it in 2017 but I'm definitely going to make plans to go in 2018.


Using ESP8266, NodeMCU and MQTT to create a wirelessly connected 'installation' - paused

It's been a while since an update. We had been due to play the game I was building for at the end of June but we've had to postpone.

My friend Mik, who is the driving force behind the game, became very ill and while we could have finished off the work and played it didn't seem right.

Nonetheless I've now got ten Wifi connected RFID readers that talk MQTT and emulate the sort of thing you see on security doors. Blinkenlight, buzzers etc.

They're a bit chunky but then they're hand built from hobbyist modules and have a 3xAA batteries in to drive them. So chunk was kind of unavoidable.

Also I've built a faux CCTV system with some Wifi IP cameras and a 'portal' that uses the same RFID cards to log you in. The portal is a single page full of JavaScript which links to the various cameras and either shows or hides them based on which card you present. So it's not really secure but it's for a game after all.

The setup uses a cheap eBay USB card reader and these just emulate a keyboard. When you present a card it sends the card ID and presses enter. A little bit of JavaScript to capture this and it looks like magic.

Implementing this all in JavaScript worked way more easily than I expected and I'm really looking forward to using this in a game.

We were throwing away two prehistoric Compaq TC1100 Wintel slate PCs from work and I managed to grab them. With Ubuntu Mate installed they work just great, even the horrible stylus is functional. What's great about them is it stops me building a 'high tech terminal' prop as they look like one without really looking exactly like a conventional laptop.

The whole thing isn't 100% finished, I'd been burning the midnight oil a bit and when it got postponed I stopped. Once we've got a new date for the game I'll get back on the horse.

In the meantime though I presented at the London Arduino Meetup about some of my previous work.

There's a video of my full presentation here, but DON'T WATCH THIS IF YOU PLAN TO PLAY THE NEXT WAYWARD SONS GAME AS THERE ARE MASSIVE SPOILERS IN THE Q&A.

Presentation Spoiler: I say 'um' too much.

There are also some nice photos on the organiser's flickr feed.

Now I'm freed up to work on other things, we've got the season of Lasertag LARP ahead and I seem to have managed to break/kill several of my 'tag weapons. I think I'll be fixing these this weekend.