Polarshield v3.0

The new Polarshield v3.0 is a refreshed version of the core Polargraph hardware. It has been re-designed from scratch and snips out a few of the snaggles that the old machine had.

It allows integration of:

  • Espressif ESP-32 based microcontroller
  • 2x A3988 stepper drivers
  • LCD and touchscreen
  • SD card for stored command queues
  • Servo for a pen lift

So the only real difference is the controller, which is a fast, 32-bit, dual-core device, with a real-time operating system (RTOS), oodles of memory AND built in bluetooth and wifi features. There is a working Arduino-based toolchain for this ESP-32 device, but it also has the horsepower and memory to run micropython.

I’ve ported the standard polargraph_server_polarshield code to target this platform (in a branch – https://github.com/euphy/polargraph_server_polarshield/tree/esp32) and it works great … in principle. There’s a couple of bits don’t work yet, and I haven’t done any long drawings with it.

On the Polarshield itself, the hardware design is simplified because the ESP-32 is a 3.3v device and so are the stepper drivers, touchscreen and SD card, so there’s no need for level shifting. The LCDs are of a more modern and widely supported design too, so I expect to have fewer problems with them.

There are spare pins I’ve broken out for:

  • 2x motor shaft encoders for close-loop positioning
  • End stops for automatic calibration

I haven’t yet implemented any features around the encoders, endstops, wifi or bluetooth, and might never do that.

Why the change?

The Polarshield v2 has never been a reliable build. The straw that broke the camel’s back was earlier this year when I was building a batch and I ordered 20 boards, built them and only got six working Polargraph machines out of them. The LCD that it uses is growing to be somewhat esoteric in that configuration, and so it’s hard to debug. It uses a kind of simulated SPI which just isn’t reliable enough, or has too many odd interactions with other parts of the circuit.

The new 5v step-down power supply is an economic choice. I’m using a little off-the-shelf mini-assembly with a MP2307 and an inductor on it, rather than building the supply right onto the board itself. Amazingly, the little assembly is available to buy (ready-made) for less money than it costs me to buy a single MP2307 chip on it’s own.

The ESP-32 is a little cheaper than a good Arduino Mega-2560 clone. The current Arduino toolchain is a bit of a dog to set up, but dedicated developers has done an amazing job porting libraries to it. It’s dead fast and has a good small footprint. Mega-2560s are huge. Natively running at 3.3v is a bonus and performance with SPI-based touchscreens is phenomenal.

What’s next

This is a platform that could easily take us into PolargraphPro territory, with encoders and endstops to make for a safe and reliable continuous drawing experience. The MCU is powerful and the wireless features are very tempting.

However, I have no immediate plans to implement any new features and will focus on getting old ones ported and re-worked where necessary. I’ll probably take this opportunity to dump a few lesser-used features too.

Mailing list

If you want to be alerted when these reach stock, or you’re interested in email updates about the project, you can sign up to my mailing list and choose what kind of things you want to hear about:

Polargraph, back in action

Without much fanfare, I reopened for business last month! I had a waiting list, so gave those people first dibs before announcing it widely.

But the first dozen machines are delivered now, and I’ve just listed the next ten in the usual place:

http://polargraph.bigcartel.com/product/polargraph-sd-assembled-tested

In an embarrassing twist, I accepted the challenge of making some videos to show what the machine is, and how it goes together.

Oh, er, there’s more of my gurning fizzgog:

And just when you’d had enough … more:

Sorry about that.

Quality control is frustrating

The eagle-eyed among us may have noticed things happening in Polargraphland! I have listed some more machines for sale, and they’ll be shipping in the first half of April.

http://polargraph.bigcartel.com/product/polargraph-sd-assembled-tested

That’s good news! I’ve already mostly built most of a batch of 32 machines. One of the things I was pleased to get out the way quite early was printing the sprockets. I’d rebuilt my 3D printer since the last time I did it, so I had some tuning to do to get that perfect print. I didn’t want to do it because I hate the slow pain of trial and error.

Anyway, long story short, I got some settings that I was happy enough with and printed off around 80 sprockets – enough for this batch, plus some discards for quality control.

The holes in all these sprockets is 0.2mm too large.

Well, I didn’t adjust the settings quite enough, because the holes in the middle are about 0.2mm too large. They get printed in batches of 16, and about two out of every batch was ok – and those were the two I tested.

The rest of them were much too loose. It makes them a really easy push-fit onto the motor shaft … and I hoped they’d be good enough, but I was making a how-to video this week and running these new sprockets and got a real sinking feeling… They aren’t good enough. There’s enough play on the shaft that the hole will eventually round out, and it’s a case of when, rather than if, the sprocket loses it’s grip. Even a dab of glue doesn’t solve it.

So it’s time to go through all my partly-packed machines and lever the sprockets off, and also run the 3D printer for the next few days to print replacements.

On one hand, it’s great that I’ve found this out, and am in a position to fix it before I’ve sent any machines out. On the other hand, I wish I had listened to my gut feeling when I printed the first set and they were only just “OK”. I was just so pleased to have fully completed one of my tasks that I dreaded going back to it.

PolargraphSD cases solve the touchscreen static problem

It’s been obvious for a while that the touchscreen on the Polarshield is a bit unreliable. Every now and then, it is just unresponsive to touch, and it’s sometimes hard to coax it back into life.

(I believe this is a static electricity problem, to do with how the board is held when power is applied, the surface it is on, what kind of shoes I’m wearing, and probably the weather…)

I never have this problem while I’m using PolargraphSD machines in practice, because my machines always have a case.

PolargraphSD case parts

If you bought a Polarshield or a vitamin kit, and you’re having problems with your touch-screen, order one and it’ll probably fix it.

I’m selling these at more-or-less cost price.

There’s a new wiki page about it too, with some low quality photographs to guide the way!:

Save

News nobody is surprised by: Polargraph building on hiatus!

Things have changed for me in since 2012 when I first started making Polargraph machines. My day job has changed and takes a lot more of my mental energy now. I miss having time to develop new aspects of Polargraph, and to work on new projects. I spend more time now looking after myself, getting my piano practice in, or running complaining about sore legs.

When I finished the most recent batch of Polargraph machines in June, I was collecting interest, and suggesting “July probably” for the next batch. That turned into “maybe August”, then “could be September or October”, and now I’m going with “perhaps 2017”.

The scale of each batch has increased each time, and led to a build becoming a fairly intense, time consuming process that disrupted, rather than complemented my life. At the same time, I’ve streamlined it to get more done in less time, and that’s led to it becoming more mechanical. Pleasurable in a way, but numbing in another way.

I’ve been able to do other projects in between, like my circuit portrait screen prints, and a bit of research and development on Polargraph hardware features like endstops, and the odd enhancement to the software. I’ve dared to play Rocket League recently, the wastefulness of which would have had me collapsed in paroxysms of guilt this time last year.

So if you’re waiting for a machine, then you might have to wait a long time. That said, I have got a new batch of PCBs on their way, and having those in stock usually prompts some activity in that direction. On the other hand, I’ve also got a Sinclair Spectrum Issue One circuitboard to print, and a TB-303 to trace, and a Gameboy and a NES to strip and scan, so there’s competition for attention.

Last of the current batch!

So in April I decided to start making Polargraph machines in batches, optimising for throughput rather than flexibility. Previously they were made up one by one, in response to individual orders.

That batch was 20 machines, and I’ve just posted the last one today. I’ll do another in the future, so drop me a line if you’d like to be part of the next batch in July.

In the meantime, I’m going to do some more Circuit Portraits.

Build automation

To assemble a Polarshield, I need to cut these strips of pin headers into strips of 8 pins. I would usually count out 8 pins, then cut with a knife, then use that resulting piece as a gauge to cut the rest of the strip. It took attention.

Just this afternoon, I took (probably less than) five minutes to make a little cutting guide out of cardboard. Bingo: An onerous job that required me to concentrate AND count (!) became something that creates a much lower cognitive load.

DSC_0362[1]

14.5 seconds to cut a full strip before, and 8 seconds to cut the strip with the guide, so it’s much faster too.

This building process is full of lessons very like this:

  • Use the right tool for the job. Example – put a fresh scalpel blade in, remember how good life can feel.
  • Make helpers for fiddly tasks. Example – this cutting jig, which is nothing more than a slot cut in some card, and some arrows drawn on.

In summary: When you’re positive that you’re cutting the right tree down, then stop to sharpen the axe.

Why did I not do this earlier?

I have never formalised my workflow. It has always been more important to me that I retained my agility to be able to make changes to the design, so building jigs and bulk-buying pre-cut parts has seemed dangerous.

Recently, I’ve made a decision to be a bit more efficient with my time, to optimise for throughput rather than flexibility, so this has led to me working on a big batch of twenty Polarshields at once, rather than just making them up in response to orders as I used to.

DSC_0364[1]There are particular bits of the build process that are fiddly and error-prone, but tolerable when I’m building only one or two of these devices. Or rather, the cost and risk of developing a jig to help is disproportionate if it is only going to be used on one circuit-board.

When it comes to adding the same part twenty times, then suddenly the cost of the jig doesn’t seem too outrageous given the benefits. In fact it seems stupid not to build a jig.

The risk is something else, and by risk I mean that I could spend an afternoon modelling a 3d printable (or laser cuttable) set of templates in order to hold the part just so, and allow me to clamp the PCB on, and then get super-accurate, repeatable solder-joints. And it’s all wasted if I mis-measure one tiny thing, or get my part thickness slightly wrong.

I have made the assumption in the past that jigs would naturally have to be super functional and professional to be worth having, they’d have to tick multiple boxes of precision, speed of use and robustness.

DSC_0363[1]

But in this case, I just used cardboard. It won’t last forever, and it’ll degrade with use, but the cost is essentially zero, and it was designed using a pencil and a ruler, not hours in front of a 3D modelling tool. It’s the 80%, and past here, there’s diminishing returns.

More obvious lessons from Polargraph.

Polarshield v2.4 compared

I got a pile of boards back from the maker recently: Polarshield v2.4 (https://github.com/euphy/polarshield_hardware). Here it is alongside the 2.2 version (on the left)  to show the progress.

Polarshield v2.4 (compared to 2.2)

Not much right? There’s no revolution, indeed, but a couple of minor changes that makes it easier to build.

  1. More surface mount parts. The tactile switch in the top-left is now surface mount. SMT parts are just quicker to work with.
  2. Moved the microstepping jumper solder pads to the back of the board, and freed up a load of space.
  3. Squished four of the 1k resistors into another 4-row resistor network. This is the smallest part I’ve ever used, 2x1mm, you can barely see them on the picture. There’s one between the two motor driver sockets, and there’s another below the stack of LEDs on the top-left. This makes pick-and-place much faster. I’m not convinced the super-high density was a good idea though – it is far less tolerant of sloppy placing / solder paste application. We’ll see.
  4. Better designed for soldering with hot air, and iron. Some of the traces on the board were sometimes difficult to heat effectively, without also over-heating the component. The electrolytic capacitors were particularly problematic. I’ve routed the traces less efficiently in some cases, so that they have more copper that I can heat with the hot air pencil.
  5. LEDs are all orientated in the same direction. The old board has them pointing everywhere, so I was always spinning the board around. v2.4 has the anode to the right-hand side in every case. It’s to reduce the chance for placing errors.
  6. The holes for the DC power jack are placed off-centre, so the solder tabs are a friction fit. It makes the part self-aligning. Nice work sparkfun!

And the great thing is, it works, ha!

I’ve been taking some time off the Polargraph shop lately, because of work pressures and a couple of other things. It’s been really nice not to have to rush to the workshop every hour of the day to keep on top of things, and I’ve been able to do a little development here and there.

I think I’ll be back eventually, but maybe in a couple of weeks, and I might try a different manufacturing pattern.