Thursday, 16 March 2017

3d printed peristaltic pump

While playing about with some ideas recently we pondered just how powerful a pump had to be to raise a column of water a set height (using, say, aquarium tube of 4.7mm diameter to a height of about 400mm).

We wondered if it would be possible to submerge a pump into a liquid and use inductive chargers (like those often used in Adafruit products to wireless charge lipo batteries) to power the pump. So the liquid could be in a container with the pump in it, which you then place on a separate base. All the clever stuff goes on in the base, and we just use inductive power to turn the pump on and off. It's probably not possible. But this was one of those "learn as you do it" type projects.

For a start, we've already discounted an impeller type design - while you can run an impeller pump off a small hobby motor, they usually have to run at quite high voltage, and they consume quite a bit of current (around half an amp or more, which is way more than any wireless system would be able to provide).

At this stage, we're not even convinced that wireless is even feasible. But we did get to thinking that some kind of peristaltic pump, driven by a small, geared, low current stepper motor might be worth investigating. Plus we've a spanky new 3d printer just sitting there waiting to be given it's first "proper" job!

The first thing was to design our peristaltic pump; for this we used Inkscape (originally with a view to making the pump from layers of laser cut acrylic).


Then after importing the svg shapes into Blender and quite a bit of buggering about (extrude, then alt+A or something to convert a spline-based extrusion into a 3d geometry mesh, applying a few boolean operations and so on) we had some pretty impressive looking models.


There was something about removing duplicates and triangulating the shapes (edit mode, control something, control + N) that we forgot to document, but then the whole thing was ready to export as an STL file. A few clicks later and our models appeared in UP! Studio


After the first export, the design appeared tiny. So we exported again from Blender, this time setting the scale setting in the export dialogue to 1000 (Blender's default units are metres but despite our shapes being described as 0.005 for 5mm for example, we still had to multiply up by 1000 to get them to the right size).


We're still learning how 3d printing works but it was still a bit of a surprise (and a  bit disappointing) to see our raft curling off the bed so early on in the first print. Stopping the print and trying again only caused the nozzle to block (which took about an hour to sort out in the end). So for the second print,  we left all the doors on the printer closed and set it running. As long as the printer was pulling filament off the spool, we were happy to leave it printing "blindly".


The final print was satisfyingly stinky when the UP! Mini beeped to tell us it had finished. The raft stayed stuck to the bed but there was still a tiny amount of warping in the print. The workshop was pretty cold (the UP! Studio said the nozzle started at 12deg C when we first booted the software up) so maybe that was it. Even so, the parts fitted together perfectly snugly.


We drew the shaft hole exactly 3mm high and 5mm wide as per the dimension drawing for the 28BYJ-48 stepper motor. The triangular part of our pump pushed over the shaft with a bit of force- it was a very snug fit; some might say perfectly scaled!

We connected up our stepper motor to a ULN2803A transistor array and threw together some simple code to make it power the coils in the correct sequence to get the motor to turn. We wrapped some 6mm aquarium pipe around the outside of the wheels and set the stepper motor spinning.


While everything appears to run fine, the 3d print holds up and it all looks good in principle, as soon as we added the (admittedly fairly stiff pipe) to the pump, it stalled the motor! Even at 12v, our little stepper just didn't have the grunt to squash the wheels against the sides of the tube. And that's without there being any fluid in the system!

So it looks like we're either going to have to use a bigger/better/stronger motor or softer/squashier tube before this goes anywhere near a bucket of water...


Saturday, 11 March 2017

Testing our UP! Mini printer calibration

This afternoon we set the UP! Mini 3d printer up in its final home, in the bungalow workshop. While the workshop isn't exactly finished, having loads of computers, tools, electronics equipment and boxes of wires hanging around the house has been getting pretty tiresome of late.

So I set up the "big computer" in the bungalow and gave the 3d printer a quick go to check it still worked ok after being joggled around. Thankfully - and as Steve insists is common with UP! printers - it just worked!

great expanses of long empty shelves - won't stay empty for long!

After calibrating our laser cutter a few days ago (and finding it wasn't cutting exactly to size without a bit of tweaking) we figured it best to see how accurately the Up! Mini was printing.


Without messing about creating a 3d model and slicing it up, I just added a simple cube in the Up! Studio software and scaled it to as close to 14mm as I could get (it ended up around 14.02mm). 10 minutes later and a little white cube was ready.


Along one side and the height of cube appeared to be within a reasonable tolerance


Our printer has a resolution of 0.2mm so even at 14.14mm we're still pretty happy that the print is within our margin of error.


Measuring the height of the cube (across the banding) showed it to also be within reasonable margin of error.


At first this reading caused a little concern, as it's less than the 14mm required. But it's also within 0.17mm of the required distance - less than the height of a single layer. So it's pretty good. After all, the variation between designed and measured values were 0.17mm, 0.06mm and 0.12mm

If we'd had that degree of accuracy from our initial laser cut testing, we'd have been more than happy! So until we print something that's completely way out of whack, it look like the UP! Mini 3d printer is producing decent prints - almost straight out of the box.


Friday, 10 March 2017

UP! Mini 3d printer

So this arrived a few days ago.


Steve has an UP! 3d printer and can't recommend it enough. We were looking for an introduction to 3d printing, but couldn't really justify throwing a grand at what would effectively be a fancy toy just to play about with.

But when five UP! Mini printers appeared on eBay for less than two hundred quid each, we figured it was time to dive in and see what this 3d printing thing is that all the cool kids are banging on about.

The printer had come from a "printer farm" (apparently) and had been maintained by a "professional". Quite what this means, we're still unsure. We were warned that the printer head might need purging and that there was no support offered. Having seen a few of the BuildBrighton lot battle for months with their 3d printers, this made us a little nervous - but Steve was insistent that out of all the 3d printers out there, UP! was a pretty pain-free entry to the 3d printing world.

So we installed the software and booted the thing up.
After hitting extrude out came a greyish streak of goo. It turns out the printer was printing with black ABS before we got it. Having pushed some white into it, the grey goo lasted about a minute before slowly turning a chewing-gum white. At least we'd loaded and managed to extrude the filament!

The UP! software makes setting up the printer pretty easy. Click "initialise" and the print head/bed goes to their home positions (thanks to a number of limit switches). Click "maintain" and you can check the bed levelling.

This involves moving the head to one of nine different points. As per the instructions, we used a folded piece of paper as a feeler gauge and moved the bed until it was just gripping the paper. Then loaded a model and hit print.


This, apparently, is the first layer raft. But after printing this much, the printer sort of gave up. Actually, that's not really fair - the printer carried on regardless, it's just that nothing came out of the nozzle! It turns out we'd managed to bung the nozzle up on the first go!


Luckily the printer came with an attachment for removing the nozzle.


Unfortunately, it didn't fit!
It turns out that our printer is using a V3 nozzle, not a V2. Ours is 8mm o/d and has an internal thread. They're far less common than the original V2 type nozzle that just about every other 3d printer uses!


With the printer up to temperature, we carefully argued about who was going to be responsible for breaking the machine before we'd even managed to get a first print off it. Rock paper scissors settled it. I lost.

The nozzle actually came off pretty cleanly - the outside was covered in black gunk and inside a white blob of ABS blocked the nozzle hole completely. It took about an hour of soaking in acetone, picking at with a pin and pulling the ABS with some super-fine tweezers and drilling with a 0.3mm bit (broke two of the buggers in the process) to get the nozzle completely clear.


With the nozzle cleared, and midnight fast approaching, we decided to give it one quick print before calling it a day, whatever the outcome. I grabbed a little dragon off Thingiverse and loaded into the UP! Studio software. Before printing, Nick insisted we should recalibrate the bed. Steve suggested that we might have crashed the bed into the nozzle (which could be the cause of the blockage).

So this time, we set the nozzle height so that it gripped the paper, then backed it off by 0.1mm on all nine points across the bed. Then I insisted that we leave all the doors closed (on the UP! Mini) and let the printer get on with its thing, instead of us crowding around it to see how it's getting on...


About half-way through the print, we couldn't resist lifting the lid and taking a peek inside. Something wasn't right.


We'd set the fill to 65% yet our model was hollow inside. And there was lots of "stringing". We had a nice solid raft, and the ABS was flowing freely but something just didn't ring true.

Nick asked why the dragon on screen was pink and red. It turns out that the model we'd downloaded had all it's normals facing the wrong way! As easy as clicking "fix" in UP! Studio and the onscreen dragon turned blue.


So we hit print, closed the printer up and left it to do it's thing. The print time went up from 6 minutes to about 19 minutes. About half-way through we peeked inside again, just to make sure everything looked as it should - things were a lot more promising this time!

At the end of the print, the UP! Mini beeped loudly and we took our first 3d model off the print bed.


Ta-da! Success!
A little 3d printed dragon.

The UP! Mini has been surprisingly simple to set up and get working. Having seen quite a few of the BuildBrighton lot fighting with their Prusa homebrew models, spewing reams and reams of spaghetti and spending hours trying to get the bed level, getting the model to stick, blocking and unblocking the nozzle, only for a slightly wonky, half-recognisable shape to appear, the UP! Mini was amazingly easy to use.

As Steve likes to remind other 3d printer users, with his UP! printer, he loads a model, hits print and out it comes - no messing about with calibration and bed sticking problems every time; his printer may have been expensive compared to some home-made/kit versions, but it "just works".

Hopefully our UP! Mini will perform as well as these early tests suggest it should!

Wednesday, 8 March 2017

Legoland Berlin

Last weekend a few of us went and had a weekend in Berlin. We didn't have time to visit all the different hackspaces/makerspaces there (at last count, about ten in just the one city!) but did end up near Legoland.

Unlike the UK counterpart, it's not a massive theme park with rides and a sprawling outdoor park (it's built in the middle of a city for a start!) but is still quite impressive and worth a visit - particularly if one of your party happens to be a five-year-old boy who has just had a birthday.


In the (underground) entrance are some very impressive city-scapes, including a recreation of the Berlin City circa 1989, complete with working underground railway system.



The whole set-up is rather impressive.
And - unlike the cliched stereotype of a typical German - it's not devoid of humour; there's even a graffitti-covered wall which - at the press of a button - falls over to the cheers of the crowds.


Moments later a tiny David Hasselhoff belts out "Looking for Freedom" atop a Lego crane, complete with twinkling LEDs. The whole thing is fantastically tongue-in-cheek - not exactly the kind of thing we've been taught to expect from our German friends!


Of course the science and engineering section held our interest far longer than the Ninja Go and Batman franchised areas; servo-driven animations, flashing LEDs and loads of real-life moments in history captured in miniature made this a trip to remember!

Tuesday, 7 March 2017

ExpressPCB acquires RobotRoom Copper Connection

This morning, David from RobotRoom sent us an email so full of exciting news, upbeat and happy smiles all around, you could almost hear Katrina and the Waves singing "Walking on Sunshine".


ExpressPCB has acquired Copper Connection.
We put our head(s) in our collective hands.

ExpressPCB - as a few of us have insisted over the years - is, far and away, the quickest and easiest software for producing quality PCBs. It's simple, quick to learn, has no fancy plugins, but the schematic and PCB layout applications integrate so nicely together that it's almost a joy to be able to lay down a circuit board from a schematic in next to no time.

The one area that ExpressPCB was lacking was output (or exporting). ExpressPCB is free software provided by a PCB manufacturing company. They don't make it easy for you to produce your own designs or to send files generated by their software to other manufacturers. And why would they - after all they've provided the software for free, it's not unreasonable that they tie the user into using them to produce the boards!

For homebrew boards, you can print your design from ExpressPCB onto toner transfer paper and make them yourself at home - the company obviously has no problem with that (it's only fair that you get to produce a prototype board before committing to a production run). Which is fine for hobbyists using through-hole components (as many hobbyists do, as they transfer designs from a breadboard to a PCB).

When designing for surface mount boards, however, things get a bit trickier. If our design was entirely SMT, we'd "print" the board to a PDF (using CutePDF) then open the pdf in inkscape, mirror, then print (so after toner-transferring the design, it would appear the "correct way around" on the copper). An alternative approach is to design a library of components that are all mirrored (with pin one at the top right instead of the top left) and we've also done this successfully in the past. But it's also all to easy to print and etch an entire SMT board only to realise - too late - that the entire design needs flipping to be useable!


One of the really nice features of RobotRoom's Copper Connection is the print facility to produce printouts either for inspection/proof (the design is printed the correct way around) or for transfer etching (the design is automatically mirrored so that it appears the right way around after doing the toner transfer process).

As mentioned, it's not an insurmountable problem to export and flip your designs from ExpressPCB if you don't have Copper Connection (or if, as we suspect might happen in the future, the print option disappears in upcoming versions of the software).

But the absolute best thing about Copper Connection - and it's whole selling point for users of ExpressPCB (and probably the first thing to go now that ExpressPCB has acquired RobotRoom) is the Gerber/Excellon export.

Without Copper Connection we'd have had to pay hundreds of pounds for "professional level" licences for Eagle or DipTrace to producer Gerber files in order to get our PCBs manufactured by factories in China. Unlike some, we've never had a problem with any of the gerber files produced by Copper Connection - our PCBs have been a doddle to create (thanks to the excellent ExpressPCB software) and a two-click process to turn into Gerbers (thanks to Robot Room's Copper Connection).

It stands to reason that export to Gerber will either be the first thing to go from Copper Connection, else maybe a "pro level" licence to cover the cost of producing the software (after all ExpressPCB aren't going to want to give software away for free that lets you take your designs to any old manufacturer).

Of course David from RobotRoom is excited that his produce has been acquired by ExpressPCB. Of course ExpressPCB are happy to have taken out a "competitor" to their software. But we can't help but feel that it'll mean the end of our cheapskate way of producing PCBs - both home-etched and pro manufactured - without quite a bit of messing about (or, worse still, learning Eagle!)

Monday, 6 March 2017

Learning with Udemy

A while back I enrolled on a "learn Blender" course through Udemy. I think there was a voucher to get the course for about £15 instead of the list price of nearly two hundred. It was actually a really useful course (and got me well on the road to using Blender from absolutely zero).

On a recent trip to Berlin, I discovered the Udemy app and downloaded a couple of other courses; the flights (there and back again) went by in a wink, and by the end of the trip, I was a Blender expert! (ok, that last bit's not quite true, but I did at least understand what a UV map was).

The "Learn Hand Painted Texturing" course was written by a guy using Maya and Photoshop. But the same lessons could easily be followed along using Blender and Paint Shop Pro.


And this particular course was a great purchase at just a tenner.
While I've not quite mastered painting to the same quality as the tutor, Udemy has meant I've gone from complete noob to being able to produce half-decent looking models in a very short time! There's still a fair way to go - but a combined total of about thirty quid for three or four tutorials (the first one was first on offer for about eight quid) has been the best buy of the year so far, hands down.

Wednesday, 1 March 2017

NewlyDraw Inkscape and DXF files

Our LS3020 laser cutter came with NewlyDraw - it's a capable "driver" for the laser cutter, but compared to newer software, it's looking pretty dated now. A lot of people junked it straight after getting their own laser cutters, but we stuck with it. And there are probably a few of these re-badged K40 machines knocking around on the second-hand market, with new owners looking for guidance on how to get the most out of NewlyDraw, so here goes.

Firstly, NewlyDraw accepts DXF files. It can create multiple "layers" (and colour code them) but given that the laser power is controlled by the hardware (a dial on the outside of the machine) rather than software, different layers aren't really much use.

Imported DXF files don't retain any colour information. Lots of laser cutter drivers allow you to cut shapes in a specific order by drawing different shapes in different colours. Not so with NewlyDraw! It does, however, allow you to change the cutting order; it's just a bit fiddly.

When clicking on the cut order button, every line and shape is displayed with a number alongside it. Simply click the numbers in the order that you want the shapes to cut (so when you click the first number, it changes to 1 and all subsequent values change; click the next shape and it's number changes to 2 and the rest of the unassigned shapes update their cutting order index numbers).



(in this image you can see that the outline is the first shape to get cut, then all the cutouts inside - obviously we want the outer shape to be cut last)


This is fine if there are only a few simple shapes. But if you import a complex dxf file, you could be clicking multiple hundreds of times. That gets really tiresome, really quickly. And, even worse than that, if you mis-click and hit the wrong number (or hit a blank space which exists the cut order routine) there's no way to go back other than start over right back at the start!

At first it seems like there's no logical sequence to the cut order when you import a DXF file. There are options in the software to "optimise cutting path" but they don't really do anything - the cut order takes precedence, effectively rendering the optimise option useless.

But we did a bit of fiddling about and found this:
In Inkscrape, we draw our cutlines using multiple colours. Shapes we want to cut out first (the inner circles of axles for example) we draw in red. Outline shapes we want to cut last, we draw in black (you can use any combination of colours and any number of "groups" of colours).

Using the Find function in Inkscape, we select all objects of the same group. With all shapes of the same colour highlighted, we choose Object - Send to Bottom (hit the End key on the keyboard).



It seems that NewlyDraw uses the "height order" of the shapes to determine the cut order - objects drawn "lower down" get cut out first. We then select all our black lines (objects to be cut last) and choose Object - Send to Top (hit the Home key on the keyboard). Now save the file as DXF and import into NewlyDraw


The cut order follows the "transpose height" of the object as they have been drawn in Inkscape. By grouping objects as they are drawn (rather than after the DXF has been imported into NewlyDraw) we can save hours of time, rather than manually setting the cut order in NewlyDraw.


EDIT: a few people have commented that you can get the same effect by selecting groups of objects, cutting them then pasting-in-place to put them back in exactly the same location; the difference being that the "placement order" of the objects is changed - and when saving as DXF, objects drawn first appear first in the dxf list of entities; something that can also affect the cut order when the dxf is imported into NarlyDraw.