PolargraphSD updates

Thank you to all the people who have terrified me by ordering PolargraphSD machines and  vitamin kits.  I have been gently buying up all the bits I still need, and have most things en route except for a critical component – motors.  Turns out the factory has a summer holiday and shuts down for a month!  So motors won’t be arriving until the end of the first week in September (a fortnight from now). Hopefully other stuff will be here by then, so most of the slow work will have been done and it won’t take long to assemble and test and pack.

I’m going to take a couple more orders before suspending – really a dozen or so is the most I’m comfortable owing folk, so there’ll be a pause while I figure out a smarter way of doing it.

Buying a Polarshield on its own

After talking with new forum member ITVirtuoso, I figured I should offer a polarshield-only pack.  This would be either 1) PCB plus components to solder yourself or 2) PCB with all essential components soldered.

This is a little trickier than it might otherwise be because it’s an SMT design (0805 sized components), and a lot of folk aren’t quite comfortable doing surface mount stuff.  But if I do only the SMT stuff, then it’s not quite complete enough to actually test.  So actually 1) could be very cheap, and 2) could be comparatively expensive, considering what you’re getting, which would be a board full of connectors and resistors (pretty much).  Don’t really know how much demand there’d be for either, so let me know if either appeal.  How much fear does SMT hold these days?

Full colour drawings

The same new user as above has just started with his machine, and has already got some very impressive results – jumping right in with a full colour, four-layer CMYK drawing that looks pretty great to me, go and have a look!

Polargraphs from Manchester Maker Faire on Wired blog

My two partners in crime Stuart Childs (he of the DRBO) and Matt Venn (he of the energy monitor and the two-wire pen-lift mechanism) have been evangelising with their own polargraph-compatible machines around and about this year, and were at the Manchester Mini Maker Faire last month to great effect.


Wired’s Geekmom covered it and has positive things to say.  Thanks to Stuart for pointing this out, and for both of them for being such enthusiastic supporters.

DRBO – A new drawbot kit

The best thing about being involved in a project like Polargraph, is that you meet like-minded people.  Stuart Childs is one of these people, and a good guy to know.  He is one of the guys behind FriiSpray (which is another art/tech crossover project), amongst other things.  He has put together a very neat new drawbot kit called the DRBO.  It comes complete with arduino uno and motorshield, motors and all the bits you need, and is made of fragrant lasercut mdf.  I got a kit of the hardware bits off him to try out.

As you see, it is adorable when small, but the most best thing about it is that the top bit, the drawing surface bit is pretty sacrificial, if you unbolt it, then you’ve got a good little unit that contains the motors, bobbins and microcontroller, and all you need is a couple of nails banged into a wall to hook the threads over, and you’ve got a machine as big as you want. The threads can just run down to the DRBO on the floor.  No messing about with long wires or some such.

Now, when I’ve tried such shenanigans in the past, it’s never been quite as straightforward as that, but in principle at least, this is very handy.  There’s a very good case for keeping the motors close to the drivers, and it’s so much neater if nothing else.

The build is easy and it’s an example of good design for lasercutting.  It’s all push-out and bolt-together, well-labelled, and there’s even a little circle of sandpaper stuck on to take off the burrs, and a couple of wrenches that have enough life in them to tighten up all the nuts and bolts that you might want more than finger-tight.  That’s a really nice touch.  My favourite bit is that there are counter-sunk bolts at certain points on the surface, and Stuart supplies these dinky little magnetic buttons to hold the paper on!  Brilliant!

The box for the microcontroller is big enough to fit an arduino mega in it, for those who mate megas with adafruit shields.

I did take other pics, but none of them are quite as good as the ones on the DRBO site.  It’s also dead cheap, considering this is basically a full arduino+stepper motors dev kit, PSU, microcontroller, motorshield, motors, servo, fitments, the lot.

Norwegian pixel

So this is the real star of v1.2: The norwegian pixel.

  1. Save your source image as a greyscale PBM or PGM file, and put it on the SD card. Note that GIMP saves PBM files as 2 colour dithered files, so you need to export as PGM to get it to work there.  Photoshop just saves in whatever format the image happens to be in, so make sure you convert to grayscale (not RGB or indexed) before saving.
  2. Put the SD card in the PolargraphSD and turn it on.
  3. Open the controller and drag a selection box where you want to draw your picture.  For one reason or another, you do need to have an image loaded before you’re allowed to drag a selection area.  I just noticed that.  But the image you load is nothing to do with what you’re drawing.
  4. On the roving tab, click set roving area.  This tells the machine where you want it to start.
  5. Click draw norwegian… and enter the filename of your image file.
    Click trace outline and the machine will quickly draw an outline of where the image will be.  The image will be scaled so that it is the width of the rove area, regardless of how tall that works as being.  So really the height of the rove area is irrelevant.
  6. Choose the amplitude (row width) and the wavelength, and hit submit to send the command off to the machine.
  7. Wait many hours.

I haven’t done an awful lot of testing of this, but the initial results are beautiful.  

HOWEVER, I have noticed one issue – there are regularly spaced breaks in each row, some more obvious than others.  This is because of the way the beaded cord slips on the sprockets, and it’s a problem I actually expected to see before now.  The issue is that the beaded cord is not manufactured to very close tolerances, so the sprockets are rarely a perfect size.  It means that each beads-worth of rotation, there’s a little slip while the beads pull taut into the teeth.

There isn’t really a solution as far as I can see, as long as there’s even a mismatch between the circumference of the sprocket and the length of a piece of cord with the same number of beads, there’ll always be a little period where it falls forward.

Note that I think it’s only a problem for machines with beaded cords – if you use reels of thread and smooth bobbins, you’ll be fine.

–EDIT I goofed a bit with the various firmwares, and half the stuff didn’t work. I’m a bit puzzled how I didn’t notice, but there you go. Anyway, I’ve fixed a bunch of stuff, so if you had problems with the newest stuff, give it another shot.

Polargraph v1.2: Vector sprites guide.

Two exciting new features for PolargraphSD.  Both of them rely on the new roving area facility.   This is essentially nothing more than a way of specifying a drawing “live” area, and telling the machine.  Previously the machine has had very little concept of state, and (more-or-less) just did what it’s told.  Now, by setting a rove area, we can tell it to limit its behaviour to just that area.

Both of these features are very GOOD ones.

How to rove.

Most of the roving functions are hidden away on the roving tab, but it shares buttons with input.  Define a area on-screen by dragging a selection area, or selecting the frame.  Now just press send roving area and a new command is sent off that sets this in the machine’s live memory.  This area is volatile, so if you reset, you’ll need to resend.

Vector sprites.

A vector sprite is nothing more than a small vector design, but instead of existing in the coordinates system of the machine, it has its own coordinates system.  So when I have made up a font with each letter being one sprite, each letter has 0,0 at the bottom-left point.  Capital letters are 1.0 high, and around 0.4 wide.  What unit these values are measurements of is irrelevant, because the machine can now scale them to any size, and  draw them anywhere, and rotate them to the four cardinal native polargraph directions.

Vector sprites will be able to be lots of things in the future, but the first application is writing text.

  1. Choose your rove area by selecting an area and clicking send roving area.
  2. Choose whereabouts in the rove area you want the text to start by clicking start text at point and clicking somewhere in your rove area.  The gondola will move to that point on the machine and wait.
  3. Click render writing to bring up the writing dialog:
    Type in your text or load it from a text file using the button. For now, it can only draw in a south-east direction.
  4. Notice that there’s a file prefix here.  This tells the machine to find the sprite font files on the SD card in a subdirectory called sprite, and that the files themselves will be prefixed with let (for letter).
  5. Hit generate commands and see that each character has been converted to a new command:
    The C39 commands tells the machine to draw a sprite from a file on the SD card, at the current machine position, and scaled 80x.

In this case, these are letter form files, and there’s loads of them which is why they get their own directory on the card.  And because this is being done in the context of writing, then the machine knows that if it finds itself outside the rove are, then it knows how to work out where to start the new line.

The grid size sets the text row height, and the pixel scaling controls how big the actual letter forms are scaled within those rows.

In practice, this has the ring of Jack Torrance to it, which is nervously apt.  It’s possible to read fragments, but because each line is longer than the last, and because of the curve and the distortion, it’s almost impossible to figure out how the lines follow on from one another, and very easy to lose track.  Quite disorientating to try.

For this to work you need to copy the sprites folder onto your SD card.

Get the new code, controller and things from the repo

Polargraph 1.2 Controller source code

Polargraph server for polarshield source code

Or in the binaries bundle.  I put the mac and the pc version in together – let me know if there’s any problems with doing it this way.

The other new feature is actually more significant, but a bit more simple:

Norwegian pixel FTW.  I’ll write some more about that tomorrow, because it’s bedtime now.