Polargraph at the Edinburgh Science Festival

So I’ve finally been able to step away from the new installation that I’ve been building to be presented as part of the Edinburgh Science Festival, in the Grand Gallery in the National Museum of Scotland. It’s pretty swish.

Polargraph at Edinburgh Science Festival

A little PC inside uses a webcam to detect faces in the crowd, and the faces that stay still are snapped, cropped, converted to line art and then drawn out on one of the two drawing machines either side.

The machines themselves are a new prototype breed of Polargraph, with Teensy 3s at their hearts, and Easy Drivers doing the moving. The guts of them are laid out as on an dissection table.

Polargraph at Edinburgh Science Festival

The drive chain consists of a stepper motor and an optical encoder, coupled by the beaded cord. The encoder keeps track of the true position of the cord, and so these machines are wonderfully robust. They can hop and skip, get pulled around and abused and they do not lose position.

PolargraphPro transmission

Small magnets sewn onto the cord, and reed switches above the encoder wheel make self-homing trivial.

PolargraphPro homing mechanism

The pen lift is half a lolly stick, hot-glued onto a servo motor, blu-tacked onto the gondola.

Polargraph at Edinburgh Science Festival

The controller is a Python Flask web app, publishing its interface as a web page. It is very simple at the moment, but is pretty extensible. Part of the app is a core class that encapsulates the communications, queueing and commands. Writing this in Python rather than Processing / Java has been a resoundingly positive experience (less so actually installing Python and it’s libraries on Windows – but you win some, you lose some).

IMG_20140405_160452105_HDR_c

The firmware is a stripped-back version of the standard Polargraph firmware, using a couple of nice Teensy features – namely the IntervalTimer library to deal with serial concurrent serial comms.

The Making It exhibition runs from the 5th to the 20th of April, in the Grand Gallery of the National Museum of Scotland. It is presented by the Edinburgh International Science Festival. You should go and see it!

IMG_20140409_084402602_c

 

Polargraph Pro Preview

Hello, I’m getting excited about the new Polargraph installation that’s been eating up all my time recently. IMG_20140327_160058025_HDR This is part an exhibition called Making It, itself a feature of the Edinburgh International Science Festival, and it’ll be running in the Grand Hall of the National Museum of Scotland, here in Edinburgh, for most of next month (April 2014).

IMG_20140330_112312329_HDR

I’m just putting some finishing touches to the machine and the control software.

There’ll be more of an update when it’s up and running.

Mystery of the Gappy Drawings- new controller version

I have uploaded v1.7.1 of the controller here on github. I know it’s in the wrong place, but I couldn’t figure out restructuring the projects quite yet.

So, polargraph innovator Kongorilla pointed out that he was getting gaps in his pixel shaded drawings, some 8 months ago. I was baffled, but agreed that , forsooth, they were gaps. Like him, I’d seem them, but never seemed to be able to replicate them. Like a ninja, they seemed to melt into the night, leaving me with a haunted feeling.

a40k5-IMG_20140309_19193207622

Well, thanks to his work, including the sample drawing patch above, and encouraged by code sleuthing from Nosetinker (and literally no contribution from me), a solution has been found!

While the value for grid size is displayed as integers, internally it is handled as a float. In the example above, the grid size was displayed as 41, but was actually 41.5, internally. When the positions of each pixel were calculated, and rounded to the nearest integer, 41.5 became 41. The next pixel along was put at 41.5+41.5: that is 83, and there’s no rounding there, but that means that there is 42 steps between them instead of 41.

So one pixel is 0.5 steps too high, and the next pixel is 0.5 steps too low. Simple! I had thought it would be something more tricky than that – thanks to Nosetinker and Kongorilla for shining a light on this – sorry it took me the better part of a year to get around to doing anything about it.

Note – I don’t have a machine right here to test it with, so it still might be something afoot. There are no updates to the firmware, but it is included in the zip.

(Note the first version of this, 1.7 wasn’t right, hence the extra .1)

Pre-order PolargraphSD v1.8

I’ve just made a listing for the PolargraphSD v1.8, over at the Polargraph Shop.

The price of it is likely to be the same as the last round, but if you want to pre-order at a decent discount, you can put a 25% deposit down to hold your place in the queue as well as make cash flow a little more predictable. It’s a kind of micro kickstarter. I hope to have this ready for shipping in May, but it’s more likely to be June.

I hope to enlist an extra pair of hands to help me assemble this time around, and am having this semi-formal fund-raising period so that I can buy a few critical parts in a full-sized batch (ie 50), rather than buy them piecemeal over the run of the batch. That ended awkwardly last time, with delays and malfunctions a-go-go.

Edinburgh Science Festival Project

I’ve been asked to make an installation as part of the Edinburgh Science Festival in April, so that’s the project that’s eating up my time at the moment, and the reason for the halt to PolargraphSD manufacturing.

This thing is going to be great though: Two large portrait machines, continuously drawing faces from a kinect / webcam on rolls of paper.

I’m using a Teensy rather than an Arduino for this project, EasyDrivers and optical encoders to close the loop and keep track of position. This will make for a more robust, semi-automatic machine. I hope to have endstops too, and a good presentable gondola that can take a range of fat pens.

I also hope to be taking one of my machines along to the Mini Maker Faire that closes the festival at the end of April.

 

PolargraphSD firmware update for SD card problems

SD cards are tricky beasts. I have spent the last few days trying to get better reliability out of my polargraph machines. I found a bunch of new SD cards that just wouldn’t initialise. Then I tidied up the software init routines, and some sprang into life! Hurray!

There is a new PolargraphSD firmware available in the github repo, and I’ve also rebundled it into a zip using the new releases feature in Github:

Polargraph v1.7.25

The design of the Polarshield, and the interaction between it, the arduino underneath and the SD card reader on top, the USB port and the power supply is clearly dysfunctional. Some combinations are trickier than others, it isn’t at all clear to me why.

The takeaway is hopefully that a couple of SD cards that previously did not work, now do. Please have a go with this, and let me know.

Pause for thought. And breath.

I’ve got half a dozen Polarshield PCBs left, but I’ve marked them as “sold out” in the shop.

I’m tired. I’ve had a few technical set-backs recently, that would be merely irritating if I was only make two machines a month like this time last year, but it immediately escalates into a full car-crash when I’m making a dozen a month – there’s just no room for mistakes, all the stakes are higher, and things move faster, sell out faster, need more careful management and delays cause more people at a time to be annoyed.

Not a bad problem to have? Well that’s true, poor me, boo hoo, there are worse problems, and I genuinely thank all my customers profusely, and everyone who has joined in on the forum and by email – actually by far the best bit of the project.

But I’m going to work to get this last problem sorted out (accursed SD cards and power management, I do bite my thumb at thee), and then pause my sales and manufacturing department (that’s what I’m calling my hands this week) for a bit to review the project as a whole.

I have an installation to work on in February, which will hopefully be presented as part of the Edinburgh Science Festival in April, and should be jolly exciting, and result in some neat new pieces of tech and software – encoders and a proper library at last! Right now I would not be at all disappointed if that was the last Polargraph machine to roll off the production line – the last of the V8 Interceptors, as it were.

However, let’s be realistic, I suspect the lure of the humming motors, the clattering of beaded cord and the pleasure of visiting my favourite post office lady will soon bring me back in, and … with upgrades.

External power input on Polarshield

Polarshields have always had a space for an external power input. This is so that you can have a high voltage supply to drive the motors, while letting your arduino, and all the logic chips run on a standard 5v, or USB supply.

External power jack on polarshield

I got this idea of running two power supplies from the Adafruit motorshield. In their case, the reason was that when the motors started sucking down the power, the voltage supplied to the arduino would drop below 5v for long enough to cause a reset.

I’ve never had that exact problem, but I don’t like running an arduino on a high voltage, when there’s also a high current (like when running motors). The voltage regulators get hot, and while they are within tolerances, it’s not right, and always makes me worry when I put my fingers on them.

The machines I sell are protected by the case, and I was overjoyed when I got a new batch of Freaduino Mega2560s through to use in them, because they are the only arduino compatible boards I have seen to use a high-current, switching voltage regulator rather than the hot’n’cheap linear regs used everywhere else (including the genuine Arduino). These little chips are efficient and stay cool under lots of current.

However, when you buy a Polarshield on it’s own, or in a vitamin kit, you can plug it into any old board. Because they are exposed, it is so much more obvious that something is getting hot. Again, it isn’t dangerous with the motors I use in the vitamin kits, and at low voltages, but if you want to use bigger motors or run at higher voltages, it will not do. The heat makes it clear that there is no headroom.

 

So the solution is to separate the two power circuits by removing the small blue jumper on the polarshield (just beside the power jack), and plugging your motor power supply into the polarshield power jack. The arduino should have it’s own power supply.

Historically, I’ve not soldered the external power jack in, but I have a bag of them and if anybody wants one, I’ll post one over. From now, all polarshields will include this jack, soldered in – unless you drop me a line to say otherwise.

Who will rid me of this troublesome SD card reader

Happy New Years Polargraphers!

So I got a recent report from a soul who was impeded by an SD card not reading in his new PolargraphSD machine… And these are cards that I’d supplied along with the kit mind, so you’d expect them to work right?

Well, I did too. I could replicate his issue perfectly – New 4GB Kingston SDHC card (from this giant batch I’d patted myself on the back for getting such a good price on, and so many!…), that shows up during the Polargraph boot sequence as having no usable partition. Oh. Yet try the same card in an older machine kit and it shows up fine. Huh. What’s that, ah the touchscreen (which incorporates the SD reader, and I buy as a discrete unit) is now v1.3 rather than v1.2. Hm. I hadn’t noticed that.

Yet the 4GB cards work fine in everything else I put them in, they read and write and format fine on a computer. So that’s a problem. Luckily for me (and the next couple of orders) I _do_ have some spare 2Gb cards that work fine, so it’ll not slow delivery, and of course I’ll be sending a replacement out to anybody who has got one of these 4Gb cards late in December. That was obviously a goof.

Furthermore, the 4GB card works ok when powered over USB, but not if a higher-voltage supply is connected as well (or instead of). It’s a power supply or signal level issue.

In software, this kind of regression testing is second nature, in hardware, I suppose it should be an even higher priority because the stakes are even higher. In software, unit tests can be rattled out in an afternoon, and can be messed up a hundred times with only a time penalty. In hardware mistakes are expensive, and making up test jigs is another venue for mistakes to occur in.

None of that is an excuse, it’s just a convenient explanation that I’d give to the pointy-haired boss (which in this case .. is myself …  that’s frightening). It sounds comically like the same excuses I’d give to bosses in bygone times about why it wasn’t worth doing unit testing in software, ha. Embarrassing.

The devil here, if we must have one, is in the detail lost during the commoditisation, homogenisation of resources and products – On paper, v1.2 and v1.3 of the reader are identical, and the SD cards also are identical. No reason to think they wouldn’t work together.

So, the takeaway is that if you ordered a PolargraphSD and got an SD card that isn’t working in it, and I haven’t already been in touch with you, drop me a line, or buy a replacement 2GB SD card and bill me!

The reason I’m dwelling on these issues of delays and problems so much, is not [just] because I’m a masochist, it’s because I think it might be useful for other folks who are venturing down this same kind of path as I am. Not helpful directly, but I admit I always found the war stories inspiring.

Happy Holidays

So the building that my workshop is in closes down over the holidays, from now until the 2nd of January, and like Bagpuss, when the studio goes to sleep, the Polargraph Company goes to sleep too. Of course I NEVER sleep, and will hopefully get a bit of time to finish the polargraph processing library over Christmas and New Year. That and Battlefield 4.

P1030522_p

There’s a couple of new professional developments that might bear some fruit next year too, including a project with the Science Festival to make a big, show-and-tellable version. I’m hoping that will be a springboard to get auto-homing working properly, and do a bit more work on large scale machines.

Thanks to all the folks who have supported me this year, I hope you think it’s been worth it.

See you all in 2014!