System Integration¶
This week I focused on creating a digital twin of my final project to have a better overview of the assembly, cable routing and system integration in general.
I think I came up with some pretty neat ideas, so let’s dive right in.
The enclosure¶
The enclosure for my project is designed to be completely 3D printed.
Of course you are going to need some fasteners to assemble everything but those fasteners don’t require any further hardware to screw into.
Usually you should try to avoid screwing directly into printed plastics because everytime you do, the hole slightly deforms leaving you with an instable connection.
The most common way to prevent this is to use heat-set inserts out of brass, that are molten into a part’s hole with the help of a soldering iron.
I however chose to take a different route, because not only do these inserts take up more space, but you also have to plan for a way to get your soldering iron into the right position.
My approach was directly inspired by Thomas Sanladerer’s video on the topic.
In his video he shows that the real problem is screwing directly into an undersized hole.
The screw faces so much resistance because it has to chew through more material than its threads can handle and thus pushes the hole further apart.
Thomas’ solution is surprisingly simple: start with a slightly oversized hole and add three small logs for the thread to bite into.
The hole doesn’t deform so drastically anymore and thus should live a whole lot longer while still being easily printable without any supports.
Of course if you plan on taking apart and reassembling your projects over and over again, the heat-set inserts are definitely the smarter choice but for my project, I chose to go with this technique.
For all of the M3 and M2 holes I went with something like this:
The holes are all oversized by 0.2mm in diameter and feature a circular pattern of arcs.
For M3 the arcs have a radius of 0.8mm and the points touching the circle are 1mm apart.
These values are flipped for the M2 holes.
So far I can highly recommend this technique, but I’ll let you know if something fails.
Now, back to the actual topic: the enclosure.
It started out as an octagonal tube that I hollowed out and left a 2mm thick wall.
After cutting it in half I added a printable hinge that works by inserting a piece of filament instead of fasteners.
It is important to note that you should definitely use a type of filament that doesn’t get brittle over time. I chose PETG but Nylon should work as well.
On the opposite side of the hinge, the case is locked via three M3x10mm screws.
The top shell features cutouts for the display and encoder as well as mounting holes for the main PCB, which is held in place by four M3x6mm screws.
Along the sides of the top shell there are small bumps with cutouts to route the ribbon and USB cable.
Both are secured with printed clips and M3x6mm screws.
The bottom shell is where the real magic happens.
With more clips and shrouds fastened by M3x6mm screws, both cables continue to be routed.
The USB cable is guided out of the case through a large hole at the bottom.
It needs to be this large to be able to fit the USB-A side through.
The shroud should prevent it from flopping around too much.
Once the mainboard is programmed, this cable pretty much only serves as a power cable, so it needs to be plugged into a printer’s free USB port or a power supply.
Routing the ribbon cable and holding the IDC connectors in place proved to be quite the challenge.
The connectors need to be stable enough in their place to receive the 2x2 pin header of the sensor modules.
At first I tried holding them in place with a printed bracket that is screwed onto the bottom shell but fastening it at an angle was too much of a pain, so I redesigned it to be pushed in and snapped into place.
As mentioned, the three sensor modules are pushed onto the 2x2 pin headers and then secured in place with M3x10mm screws.
If you were wondering why I am rotating the modules aaround the filament’s axis, it is to measure the filament’s diameter from different angles and later determine the roundness that way.
The entire final assembly Fusion file is linked in the Download section at the bottom of this page.
The sensor modules¶
Just like the case/shell/enclosure, however you want to call it, the sensor modules are entirely 3D printable. (Besides the obvious PCB and fasteners)
It consists of three major components, the PCB mount, the tensioner and the case mount.
Let’s start with the PCB mount.
Can you guess what it does? That’s right, it goes in the square hole… wait, wrong meme.
It actually holds on to the sensor PCB with the help of four M2x6mm screws.
At the top it features a rounded cutout for an idler wheel that is fastened with an M3x10mm screw.
To the sides of that idler, you can find two holes where the filament is later guided through.
Another feature at the top are these chamfered slots that the tensioner slides in.
Turning it around, you can see a cutout for the UPDI programming pins, as well as an indentation where a sticker, labelling said pins, is going to sit.
Next let’s talk about the tensioner, a mechanism that took me quite a lot of iterations to get right.
Essentially, a second idler wheel is sandwiched between two 3D printed springs and fastened with an M3x10mm screw.
The moving end, that slides in the chamfered slots of the PCB mount, features a mount for a 4mm x 2mm cylindrical neodymium magnet that is moved closer to or further away from the PCB’s hall effect sensor depending on how thick the filament pushing on the idler is.
The stationary end is fastened to the case mount with an M3x16mm screw.
Speaking of the case mount, besides connecting to the PCB mount with two M3x10mm screws and holding on to the tensioner while leaving some gaps for fasteners and everything else to move, it does exactly what the title says.
Two additional M3x10mm screws mount the whole module to the bottom shell.
If you want to take a closer look at just the sensor module instead of the whole assembly, feel free to grab it from the Download section down below.
I think that’s enough for now, stay hydrated and see you next time!