New controller update for the weekend v1.1.8

Hello, a couple of things came up this week, these first two affect the controller only.  No need to update the firmware.

The first is the problem where the serial ports dialog box comes up empty.  Well, this was something that I’d been inconvenienced by plenty of times, but had never really looked into fixing, because I could get around it easy enough each time.   But I think I’ve made it safe now, and it should work in all cases.

The second thing is buttons for pen up / pen down.  Not really anything more to say about that:

The third thing is what’s in the download.  I’ve packaged the new versions in a zip as usual, but also included:

  • Precompiled binaries for the controller
  • Full source for the controller
  • All libraries required to compile from source (or run through Processing)
  • Source code for the firmware / polargraph server
  • Libraries required to compile firmware
So it’s a fair bit bigger (6MB), but should mean getting it running is a bit easier.
Get it from the downloads area.  Or the source on its own from the repository.


The last thing is an issue with microstepping on the polarshield devices.  I’m pretty sold on microstepping, it really does make things more quiet and neat and gives you all the notional resolution you could even need.  But there is a problem with it because if the machine stops drawing between full steps, then it’s suspended uncomfortably.  It gets pretty hot and pretty bothered.   So there _is_ a power timeout on the new polarshield firmware that lifts the pen and cuts the power if there’s been no activity after 10 minutes, in case it happens to end up stopped on a microstep.  But this itself presents issues, amongst them how to keep registration for long-running multilayer drawings.  You can’t be expected to be around for the end of a drawing to catch it in a 10 minute window.

So my solution to this is a pragmatic one, and that’s to use full steps to address the machine externally, but to use microsteps internally to get the smoothness that we like.  This means that your controller will send commands that will always get the machine to finish drawing on a full step, but internally, the machine will interpolate those steps with microsteps.  Anything that happens internally will benefit from that, with the slightly more coarse addressing being used externally.

The upshot of this is that setting up a polarshield requires two values – the steps per rev (400 as usual) and step multiplier (set to 8 because the polarshield uses 8x microstepping).  The adafruit shields don’t microstep nicely, so I wouldn’t recommend it on those.

This change only affects polarshield users, so don’t bother updating your firmware unless you are one of them.

2 thoughts on “New controller update for the weekend v1.1.8

  1. Just making sure I’m getting this:

    machine.motors.stepsPerRev=800.0 is the correct setting for my old uno/adafruit machine with .9° steppers. (400×2=800 – interleaved steps i guess?). In the hopefully near future when I’m using a polarshield, assuming the same motors, I should change the setting to 400, and the multiplier setting replaces the x2?

Comments are closed.