I bought some Polypipe GFC100 Gap Filling Cement to stick some poorly fitting PVC pipe fittings together. I tested some on PLA printed parts and it makes a very strong bond.
I used it to stick these two parts together: -
It is a part to allow me to mount a vent that would normally go through a ceiling, on the surface of the ceiling. I am building a ventilation system for my garage workshop.
I made it from two separate parts to allow me to print it without support and a giving a smooth pipe so that I can clamp a flexible aluminium pipe over it and make a good seal.
The automated blind I described in my last post has been reliable, operating every day since. The curtain puller design I also mentioned proved not to be reliable due to the cord piling up on the pulleys randomly, causing its tension to be variable. I redesigned it to use T5 timing belt that I had left over from my early use in 3D printers. I didn't have enough belt to span the windows twice, so I made up the rest with the original cord.
So there is a pulley for the cord at the idler end and a printed T5 pulley for the belt. I couldn't get enough tension to stop the belt slipping over the pulley teeth, so I printed a semicircular guard to press it against the pulley and prevent it skipping.
This design worked reliably for more than a year, but then the spare bedroom curtain's printed parts broke. This is the smaller of the two curtains that I automated, but they are thicker and heavier material than the lounge. These are the PLA parts that failed.
In hindsight, the pocket to hold the bearing left very little material in the middle of the clamp. Possibly the wooden pole swelled a bit in damp weather and broke it, or maybe I just tightened it too much. Once the clamp broke, I think it had the knock on effect of breaking the belt guard. I think that would be strong enough if the clamp had held.
A fix would have been to make the clamp wider and thicker, but then I would have needed to replace the shaft and beef up the other half of the clamp to match. But since the screws into the case would then be further apart, I would need to reprint the case and then strip the whole device down and rebuild it.
To avoid rebuilding the unit, I started thinking about stronger materials to keep the clamp the same size. I think I could have milled one out of aluminium, but as I haven't done that before it would have involved a lot of work. It also has features on both sides, so it would be two operations, one possibly on a lathe.
Then I remembered that PCBway also do 3D printed metal parts. I uploaded the STL of the part to see how much it would be. In aluminium, it would have been about \$28, which seemed good value, so then I tried stainless steel and that was only about \$2 more, \$30.73, so I went with that. I am sure aluminium would have been strong enough, but it might tarnish. Stainless shouldn't tarnish and is over the top strength wise, but it makes more sense to 3D print it because, unlike aluminium, it is notoriously hard to machine.
The STL has polyholes, a hanging hole and a teardrop_plus cutout for improved FDM printing, but it doesn't matter if these artefacts end up in the SLM print. I could have changed the model, but life is too short.
My understanding of the SLM process (Selective Laser Melting) is that a layer of fine metal powder is laid down, and then a laser melts the areas that are part of the model and the bed drops and the next layer of powder is laid down and melted. It results in a fully dense part, unlike laser sintering.
The total cost was \$59.06 with shipping and bank charges, but PCBway have said they will reimburse me for writing this blog article. It would be more economical to order more parts and share the shipping cost.
The build time at PCBway is 9 to 10 days, so twice as long as PCBs, but I think the actual process is probably faster as there are a lot more steps to making a PCB. I assume they just have much more capacity for PCBs.
I placed the order on Sunday 29th of June. The part was shipped on 7th of July, and it arrived here in the UK on the 10th of July. They actually sent two, so like PCBs, they seem to do one extra in case there is a reject. There was a slight difference is quality between the two though. This is the best one:
The other one has some strange artifacts that look like z seams you get with FDM. I have no idea how they occur with SLM. Here they are under a cheap microscope:
Odd, but they wouldn't affect its function in this case. I will use it on the lounge curtain if that ever breaks.
Here is the other one fitted to the guest bedroom curtains.
I reprinted the belt guard in "silver" PLA to somewhat match it.
Before fitting it, I made some measurements to compare the accuracy with my PLA original.
NetFabb
PLA
Error
316L
Error
Width
20.33
mm
20.29
mm
-0.04
mm
20.24
mm
-0.09
mm
Length
43.65
mm
43.83
mm
0.18
mm
43.52
mm
-0.13
mm
Height
20.75
mm
20.67
mm
-0.08
mm
20.68
mm
-0.07
mm
Bearing Socket
16.08
16.12
mm
0.04
mm
16.11
mm
0.03
mm
Volume
7.79
cm3
Weight
6.785
g
57.28
g
Density
0.87
g/cm3
7.35
g/cm3
The NetFabb column is the STL dimensions as reported in NetFabb Studio. The PLA column is my FDM part printed on a Mendel90 and the 316L column is the stainless steel part. 316L is the grade of stainless steel. Both measured with Mitutoyo callipers. The accuracy seems broadly similar.
The density values are the weight divided by the volume of the STL. 316L is reported to have a density of 8g/cm3, but as the part is a little smaller in each dimension it is probably not far from that.
The parts are grey, presumably because the outside faces have the same granularity as the metal power before it was melted. I lapped two of the faces on 240 grit emery paper, and they then look metallic, but there are still a few low spots that would need a lot more sanding to remove.
So I think parts could be sanded and polished to make them food safe, for example.
All in all, a great fix for my design problem that didn't need much effort from me. I will definitely use this service again if I need a complex part that needs to be super strong or corrosion resistant. It would be great for use outside, for example.
We have a roller blind behind plantation shutters in our bedroom to block out the light. To get a better light seal I mounted it back to front, close to the frame of the shutters. That means the ball chain chord that raises and lowers it is a bit awkward to use as it partly behind the blind.
Some blinds are geared, so that the pulling force required is less, but ours isn't. It is six foot long and I also added some steel balls to the tube that runs along the bottom to make it hang straighter. Therefore it needs quite a strong pull to raise it, so I always had a plan in the back of my mind to automate it and in August I finally started working on a design.
I have a random collection of gearmotors, so I pulled out one that seemed about the right speed and torque and printed a pulley to mesh with the ball chain and fit the shaft.
Short Heatfit inserts that I bought from Stefan at CNC Kitchen are great for printed gears and pulleys.
A quick test with a battery showed it easily had enough torque to raise the blind, taking only about 200mA at 12V, but the ball chain likes to jump out of the pulley. It would need an impractical amount of tension on the chain to keep it in, pretty obvious really given the shape of the pulley teeth.
My solution was to trap the chain between two such pulleys and use the second to drive a threaded shaft with a nut that slides along it and triggers limit switches. The up limit switch is adjustable on a slide mount to fine tune the opened stopping position. The down switch is fixed but I can adjust the idler pulley on the shaft to adjust that limit first.
My original plan was to use 6mm studding in 6mm bearings but I found that it was a very loose fit, so I use 8mm studding and turned shoulders on each end to fit the bearings with my CNC lathe. I used a collet in the spindle nose to avoid marring the thread.
I tested this with a two way / two pole toggle switch to set the motor direction and the limit switches wired in series with diodes to bypass them, so that the motor can only back away from either switch once triggered. I mounted it to the wall with a printed bracket and was able to test the mechanism worked mechanically and seemed reliable.
For the electronics I decided to use an ESP8266 module running Tasmota firmware and control it from my Home Assistant server that runs on a Raspberry Pi MK4. In Home Assistant the blind just looks like two switches, open and close. I set up automations to open it at 8 AM and close it at sunset. Tasmota is configured with two interlocked relay outputs with timeouts and two buttons for manual operation.
To drive the motor I had an L6203 full bridge driver chip lying around from RepRap days but I can't even remember where it came from. It's rated to 3A, so overkill in this application but I haven't had any use for it in about 14 years, so I thought I might as well use it up. The only problem was its package is a Multiwatt11 that doesn't have its pins on a 0.1" grid. I found I could fit it on a perfboard at 45° but it was looking like the electronics were going to be embarrassingly large compared to the mechanism.
Around the time I was thinking about this a member of the marketing department of PCBWay coincidentally left a message on my blog offering free PCBs in return for a review, so I decided to take them up on their offer and use a PCB to make the electronics much smaller than I could make it on perfboard.
It is about 10 years since I last designed a PCB. For one off projects I normally just scribble a schematic on paper and then use perfboard, or for mains projects I use Veroboard and remove all the unused tracks to get enough creepage clearance. It is a lot quicker than designing a PCB with CAD and getting it manufactured and shipped but most of that is waiting time. So PCBs are worth while for more complex projects or ones like this where I might need more than one.
I downloaded the latest version of KiCad, which was more than 1GB! It must have changed a lot since I last used it but seemed fairly easy to use.
It is powered by a separate 12V power supply, so the cable to the window is just figure of 8 flex and it actually fitted through a gap under the shutter's frame. A tiny buck regulator from AliExpress provides 3.3V for the ESP-12F module.
The limit switches cut the inputs to the H-bridge, so it doesn't rely on the firmware to not crash the blind. In fact, the Tasmota firmware just turns the outputs on for a fixed time that is just a bit longer than it takes to open the blind, about 30 seconds.
I thought it would be a good idea for the state of the blind to be discoverable remotely, so I used the normally open contact of the limit switches to pull two spare ports low. This was a mistake however because the GPIO2 port is connected to the blue LED on the ESP12-F module and is defined as an output, at least during start up. As these connections actually allow the firmware to crash the blind I decided to not connect them and two pin connectors could be used.
The buttons allow manual control of the blind. Pressing once starts the blind moving in the specified direction and pressing again stops it, so you can manually position the blind anywhere on its travel.
The programming connector is only needed once to load the Tasmota firmware because it can be updated over the air after that. So I don't solder it to the board and in fact there isn't room for it in the case.
The PCB design is an odd mix of through hole and surface mount because those are the parts that I had to hand.
Because I wasn't paying for it I used four layers to simplify the routing. The inner layers are ground and 12V.
I also went for a routed outline because space was so limited that I needed a cut-out in the corner to miss the limit switch. I also only had space for one screw hole, so I printed rails in the case to hold the left side and the front right corner, so rounded corners make it easier to slide into place.
This is how tight the packaging got:
I modelled the board in OpenSCAD because the 3D model from KiCad didn't have the switch positions at the correct height from the board. I could only import it as an STL file whereas with an OpenSCAD model I can query the hole and component positions.
I extracted the component placement data from the footprint positions file that KiCad produced using a python script. This needs a lot more work to make it general though because through hole PCB footprints have the origin on pin one, whereas NopSCADlib has the origin in the centre.
I did all this modelling and the case design while the boards were being manufactured by PCBWay.
I uploaded the design to PCBWay on the 12th of September and impressively they were dispatched on the 15th. The quoted build time was 4-5 days. I really liked the way the website shows you which stage they are at in the process as they progress. Four layers involve extra steps.
Clicking on the "View Details" links shows videos explaining each process step.
I also ordered a solder paste stencil for the surface mount parts and this was made as the last step. I expected it to be made in parallel but it didn't add much to the time as it seems to a be fast process.
The package was picked up in Shenzhen by FedEx on the 16th and delivered in the UK on the 20th, so only 8 days from order to delivery. The minimum order was five PCBs but I actually received six. I think probably they make an extra one in case one fails the quality checks but if they all pass they send you it. I vaguely remember that used to happen sometimes when we ordered prototype PCBs at work.
The PCBs are great quality. All the features are well aligned and the outline was very accurate as it fitted my 3D printed case perfectly.
The solder stencil worked well. I forgot that the apertures might need to be smaller than the pads, depending on the stencil thickness, to get the correct amount of solder paste. I just used the default file exported from KiCad and it seemed to give the correct amount of solder.
Here it is populated:
I chose a white solder mask to match the white PLA I used to print the case in case any of it was visible but that wasn't really necessary, green would have been fine.
I used a T-962 reflow oven to solder the surface mount components. It was the first time I had used it since buying it from Elektor a year ago, so I had to apply the upgrades detailed here:
This was replacing the masking tape with Kapton tape, adding a cold junction sensor for the thermocouples and replacing the firmware with an open source version.
I used leaded Chip Quik solder paste on the default oven profile for leaded solder and it worked great without any calibration. I mainly use leaded solder at home because it gives better results. In this case it has the advantage of not reflowing the internal parts of the ESP-12F module, which I assume uses lead free solder.
Here is the finished unit installed. I used white PLA, so hopefully it wont melt in the summer sun.
Flushed with success of this project, my wife wanted me to automate some curtains to keep the house warmer in winter. It was a race against time to get it working before our last holiday.
The gearmotor I used (Nidec GMAG 404 327) was nice because the motor has a transorb mounted on the armature to stop the back EMF from the coils causing sparks, which generate wide band RF interference. I looked it up and found out it now costs £162.36 from RS components, so I looked for a cheaper alternative for the curtains.
I found this DF-ROBOT FIT0492-A from PiHut for £11.40:
It was a challenge to make a gear_motor class in NopSCADlib that can draw both but I manged to do it, with a lot of parameters.
So it is possible to make the blind controller with the cheaper motor, although making the design handle both motors was also tricky because the clash avoiding constraints are different for each motor because their shapes are so different.
I designed a curtain puller around this new motor.
It clamps around the curtain pole, which has a hole drilled through it for the shaft. A length of picture cord goes from one bobbin, around the idler pulley clamped to the other end of the pole and back again to the other bobbin. The curtain rings at the open ends of the curtains are each attached to the forward or return cord so that they move in opposite directions.
The motor shaft has a printed spur gear to drive the threaded rod which activates the limit switches. It also acts as a coupler for an extension shaft to drive the bobbins.
It nearly worked but I ran out of time to finish it before going on holiday. I couldn't get enough grip with the 3mm grub screws because the heads would strip first. I need to replace them with M4 to get more grip. Hopefully it will work then, with perhaps some guides to stop the cords tangling.
I built 12V power supplies using some potted modules cased in a short piece of aluminium box section for fire safety.
To turn the module into a PSU you need to add a mains filter, a transorb and fuse to the AC end and a couple of filter capacitors to the DC end.
In summary, I populated three of the PCBs and they all worked first time. The PCBs were only \$25.97 for 5 pieces in 4-5 days, if I had been paying for them. The solder mask was \$10 in 1-2 days. FedEx shipping \$22.89.
Now that I have got my reflow oven set up I will make more use of PCBs and SMT parts. PCBWay make it very quick and easy to get good quality PCBs for a good price. They also offer PCB assembly, CNC machining, sheet metal fabrication, 3D printing and injection moulding but I haven't explored those. Hopefully I can do my own 3D printing!