-Kipling
Steggo is a project to explore the use of LEGO™ blocks as experimental apparatus. Rather more accurately, it is a sub-project providing components to the FPath Project which, in turn, is an open ended investigation of the Feynman Path to nanotechnology.
All my projects have silly code names and, in fact, I am uncomfortable working on one until I have given it a name. Originally, the project had a fairly simple objective which was to incorporate a stepper motor scavenged from an old DVD drive into a 2x10 LEGO brick. Well, it turns out that a tiny stepper and leadscrew imbedded in a LEGO brick was not going to be immediately useful for FPath and so that particular item never got finished - but, as you will see below - the concept was extended to an (ever increasing) number of useful devices.
The name "Steggo" derives from a simple portmanteau of "Stepper" and "LEGO". I thought it a better option than the alternative which was the combination of "LEGO" and "Stepper" which is, of course, "Leper". If you are not a native speaker of English you might wish to run "Leper" through Google Translate in order to understand why.
LEGO blocks are typically vastly underated by those not familiar with them. Yes, they are a childs toy - but, looking at it another way, you can see LEGO blocks are actually a precision engineered modular building system. The tolerances used in the production of the molds by the LEGO company are incredibly precise and the parts are designed fit together with a specified holding force over repeated sets and resets. The high quality ABS plastic is readily glueable, machineable and the blocks are easy to obtain in quantity. There is a vast range of parts in pretty much any size and color you might wish and there is a large online ecosystem of 3rd party suppliers who will sell you small quantities of any specific part for a relatively modest cost.
IMHO if you need to position small components with a reasonable holding force then you would be hard pressed to find a better substrate than LEGO.
Yes, I use the dreaded "Kragle". I simply do not see the need to be a purist. For me, the LEGO blocks are tools, a means to an end, and if they better serve my purposes when glued and machined then I absolutely will modify them as needed. Actually, I use Epoxy rather than cyanoacrylate cement ("Kragle") because the type of glue I use tends to be a bit rubbery while it cures and so it is easy to trim off the various bits of slop that squeezes out. The epoxy does not bond to the ABS as well as cyanoacrylate but is easily strong enough for my purposes. Sometimes it is best not to over-optimize.
The discussion below describes the various Steggo Modules which have been implemented so far. Click on any image to enlarge.
The FPath project uses an old RepRap Mendel 3D printer as an experimental platform. The bases are painted MDF boards designed to drop in place on top of the existing Mendel bed in order to provide a handy, removable, experimental platform. Various LEGO plates have been epoxied onto the bases in order to provide a mounting substrate for other Steggo modules. You can see the Deep Mounting Base in use on the Mendel platform in this picture in FPath Experiment 003.
The first image above shows the Flat Mounting Base. It consists of a cutout chunk of what is known as a "Large LEGO Baseplate" epoxied down to the MDF base. It is designed to be used to mount Steggo Modules immediately under the camera which is centered on the Mendel Bed.
The second image shows the Shallow Mounting Base. This is designed to mount Steggo modules slightly lower than the bed height in order to bring their active edges level with the top of the experimental area. The routed out depth of the recess is one LEGO unit. In other words, placing a standard LEGO plate underneath any Steggo Module will bring its bottom edge level with the experimental bed. Black LEGO plates surround the experimental bed and are permanently epoxied in place.
The Deep Mounting Base in the third image has a larger recess routed into it. This base was created for a specific FPath experiment and has a depth of four LEGO units in the center and five around the edges of the channel. As with the Shallow Mounting Base, the depth of the routed channel is carefully calculated to make any LEGO block or Steggo module position itself exactly level with the experimental bed if sufficient blocks are placed underneath it. Also note how the height and width of the channels are carefully measured to a precise integral number of LEGO units so the plates expoxied into the channels all fit exactly.
As mentioned in the previous discusson of the Mounting Base Steggo Modules, the FPath project uses an old RepRap Mendel 3D printer as an experimental platform. Such experiments necessitate the implementation of quite a bit of custom electronics and, of course, the associated rats nest of wiring running about. There is nothing more frustrating than spending an hour diagnosing a problem only to find out it was entirely due to a wire which had worked loose because the electronics were just rattling about in an unsecured way. Yet, since the experimental apparatus is always in considerable flux, you do not want to screw or glue everything down permanently. The solution is to use LEGO to mount the electronics!
Consequently, a cut out chunk of "Large LEGO Baseplate" was glued to the original Mendel electronics board and positioned at the front of the experimental platform (normally it is at the rear). As the above image shows, this board provides a simple and easy way of keeping the electronics mounted securely when needed - yet removable when circumstances change. Note the black 1x12 LEGO brick at the top right - it is just being used as a handy way to store spare 1x1 colored LEGO tiles used in various image recognition experiments.
You can see a video of the PCB Mounting Frame and PCB Board mounts at about the 2:58 point in this YouTube clip documenting the Walnut software.
It's all well and good to have a PCB Mounting Frame but to make it useful you need to be able to mount your PCB's on them somehow. This is simply done by screwing two LEGO bricks ("Brick 1 x 10 : Part 6111") to the underside of the PCB. Since I tend to make my own PCB's using the Line Grinder PCB Isolation Routing software it is pretty easy to set up the dimensions so that a simple screw through the mounting holes in the four corners will neatly hit the end studs of the two 1x10 bricks. Of course, the other separation distance of the mounting holes also has to be a standard LEGO spacing otherwise they will not mount on the frame. The PCB is mounted vertically as can be seen in the image in the PCB Mounting Frame section previously discussed above. This is done so that power and ethernet cables access the board from underneath. I find this to be both practical and visually a bit more appealing since the 10 stud length of the PCB Mounts is identical to the height of the PCB Mounting Frame. For purchased devices, such as the Beaglebone Black microcontroller, which do not line up well on LEGO blocks a small bit of blank perf board mounts the LEGO bricks and some standoffs secure the BBB to the perfboard. This is shown in the second image above. Also note the addition of a CZH-LABS Screw Terminal Block Breakout Board Module on top of the Beaglebone Black. No more shall my wires be dislodged in the middle of an experiment!
There is plenty of room on the PCB Mounting Frame and the Steggo style electronic modules can easily be moved about and replaced as needed. Note it is highly desirable to use "Right Angle PCB Screw Terminal Block Connectors" to connect the wires to the boards. When times comes to remove the board, the disconnection is simple. You can see these green connectors in the first image above.
As mentioned in the previous section, dealing with the cables and wires in a constantly changing experimental setup can be a problem. They can easily evolve into an unmaintainable rats nest. LEGO provides a pretty easy solution to chanelling small wires and holding them in place. In this particular Steggo Module, a "Technic, Brick 1 x 6 with Holes : Part 3894" has small slots milled in the bottom edge of the center and end holes. As can be seen in the first image above, wires can be easily placed into the holes via the slots and, once the part is mounted, they are restricted in movement. You can also see them in place guiding wires on a small PCB frame in the second image.
Of course, if you have wires you are going to need to connect them. Rather than twisting them together (very unsatisfactory) or soldering them (far too permanent) I obtained a few 4 way PCB spring terminal block connectors and glued them to a 2 x 2 LEGO Plate ("Plate 2 x 2 : Part 3022"). I just soldered the pins on the back so as to short each adjacent pair of pins together. This turns a PCB connector into a simple to use quick disconnect spring connector for small wires. Some red and black color coding drawn on the top in felt marker pen makes it obvious how it works. The presence of the LEGO plate makes it easily mountable anywhere it might be needed. You can see this in the second image where the connectors are mounted on top of the Steggo DC Motor modules and ride around with them.
Note: If you are doing this sort of thing it is highly recommended that stranded wire be used instead of single core wire. Stranded wire is much more resistant to fatigue cracking than solid core wire. It is also more much less "stiff" than solid core wire and its "floppy" behavior means it easily falls into place as you run it around the experimental apparatus. In addition, stranded wire is available in all sorts of multiples of color coded pairs so it is easy to run cable groups destined for the same device side by side since the wires are physically attached to each other along their lengths.
The implementation of a crude XY stage to prove out the software development in FPath Experiment 003 necessitated the creation of some DC Gear Motor Steggo Modules. As can be seen in the first image, a DC motor with 4mm diameter shaft is epoxied to a "Technic, Brick 1x2 with Hole : Part 3700" at the front and a "Plate 4x4 : Part 3031" at the top. The hole in the 1x2 Brick was carefully drilled to size and a 4mm threaded brass insert was press fitted into place. The thread in the embedded insert was carefully drilled out in order to provide a smooth running surface for the shaft. In effect, it acts as a brass bearing. The sides of the 4x4 Plate surrounding the motor have been left untouched by glue so that regular LEGO blocks can be fitted in place in order to mount the motor.
The center hole in two more of the 1x2 LEGO blocks were also drilled out and also received a 4mm threaded brass insert. Unlike the 1x2 face mounting block, the threads on these inserts were left intact. These blocks can then be wound onto the shaft to provide a carriage attachment point. Note that none of the threaded inserts were glued - they were all just press fit. This is very useful since two of the carriage blocks can then be used on the same shaft to provide a much larger stable mounting point if other LEGO blocks are mounted between them. Minor adjustments to the postion of the threaded inserts in their mounting holes permits exact fitting of a top LEGO block onto the two carriage blocks and things like thread pitch are not much of a consideration.
This is the original Steggo module and it is not finished. As you can see in the image, a couple of "Brick 2 x 10 : Part 3006" parts have been hollowed out and a salvaged stepper motor and lead screw has been positioned beside them. The idea is that the stepper motor and shaft are fully hidden inside the LEGO brick and a carefully machined "Brick 2 x 2 : Part 3003" is intended to be used as a carriage attached to the lead screw. You can see this black 2x2 brick in the image - it fits exactly in the channel machined out of the red LEGO blocks.
The intellectual property rights to all new and/or original ideas and technologies documented under the Steggo project and sub-projects are claimed in full by the author and are immediately released into the public domain under the terms of the MIT License. Any ideas, techniques, processes or methods of work documented in the Steggo project and sub-projects must be considered to be prior art and must be cited in any patent applications.
The contents of the Steggo project and sub-projects are provided "as is" without any warranty of any kind and without any claim to accuracy. Please be aware that the information provided may be out-of-date, incomplete, erroneous or simply unsuitable for your purposes. Any use you make of the information is entirely at your discretion and any consequences of that use are entirely your responsibility.