The focus was ‘Volunteer Week’ so for Adelaide they featured the Digital Hub, including the Innovation lab where I volunteer with the 3D printers.
Look for the handsome man in the bottom left hand corner, miming pressing a button on the replicator while desperately straining to get his head into shot:
I’m designing and making my own custom LEGO pieces.
This blog post is a work-in-progress, so it will be updated and changed as the project continues.
THE BRIEF.
I want to design and manufacture some custom LEGO pieces because I like:
LEGO;
Designing things;
Actually following a design project through from start-to-finish, because designing things is quite an involved process, and involves lots of research, sketching, prototyping and mistake-making;
I have a goal of working for LEGO, so a project like this shows what I’m capable of;
I’ve seen a gap in the market for some new LEGO elements that would allow the building of an omni-wheel, but would not be a specialised part, and could still be incorporated into the overall LEGO system;
RESEARCH.
Mindstorms Robot
A Holonomic Wheel (or omni-wheel) is a wheel that allows movement forward and backward like a normal wheel, but also allows movement left and right. It is ideal for manoeuvring in a tight environment (like a forklift in a warehouse) because a vehicle with holonomic wheels can turn on the spot and can change direction without having to ‘turn’.
Here is as a LEGO holonomic robot I’ve made, based on a Killough Platform, using LEGO Mindstorms 2.0:
Please note: Mindstorms RCX is from 2001 and I had the software running on Windows ME. I’m now on Windows 7 and I can’t program the controller. I’ve got a LEGO remote control that can run the motors individually but it doesn’t work any more so I can only show limited movement. Trust me it works well (see someone else’s video below) and when I can locate a working remote I’ll update with a better video.
One- it works but it is a really rough ride. Any gaps or breaks in the circumference of the wheels rotation creates a ‘bump’. This problem can be fixed by filling the gaps in the circumference of the wheel rotation by adding more ‘little wheels’, but this adds complexity, more moving parts, more slop, more things to break. Plus it looks a little stupid because you have to use tiny tiny wheels or cogs, turning the wheels more into ‘Mecanum’ style wheels (see below):
The more LEGO parts that are used, the more slop and vibrations are introduced into the motion. If the wheels are used to make a robot, this will reduce turning accuracy and slow the robot down, and greatly increase the chance of breaking down. In order to get LEGO omni-wheels, you end up with large complicated assemblies like these:
Two- there are no official LEGO holonomic wheels. There are lots of third party wheels available but they are small-run or custom made, not mass manufactured like a LEGO piece would be, so as a result they are very expensive as well. For example:
$38.67 for a set of 4 on Shapeways is a pretty good price, but the owner has noted “Sadly, the casters only worked when Shapeways offered the rubberized material.”:
LEGO Education North America online shop sells third party LEGO compatible wheels. The wheels they sell are Pitsco / Tetrix omni-wheels. The small print on their website states: “LEGO Education North America is a joint venture between Pitsco, Inc. and the educational division of the LEGO Group.” so they are sort-of official, http://www.legoeducation.us/eng/product/tetrix_omni_wheels/2237 3” (75mm) $24.95 each, 4” (100mm) $29.95 each
Omni-wheels are used often in robotic competitions, but most LEGO robotic competitions don’t allow non-LEGO pieces, don’t allow modified LEGO pieces, or don’t allow omni-wheels at all. Getting an official LEGO omni-wheel element would be fantastic :
Modification of any original parts, for example, RCX Intelligent Brick, NXT Intelligent Brick, motors, sensors, etc. is not allowed. Violation of this rule will result in disqualification.”
“3.5.2 For the GEN II League the following applies:
Robots are to be constructed using strictly LEGO brand pieces, motors and sensors only.
LEGO pieces can not be modified in any way.
No other building materials can be used, including glue, tape, screws etc.
Omni directional wheels are not permitted”
LEGO Design Language and Modularity
To me the 3rd party wheels don’t follow any sort of LEGO dimensions or design language- they work well and appear to be widely used but in my opinion they look out of place. You can only use them for one thing, which isn’t what LEGO is about.*
So I wanted to design some LEGO holonomic wheels that can be used with regular LEGO pieces; they can be taken apart and used for other things. This means using as many standard LEGO pieces as possible, and any new pieces should be able to fit int the existing LEGO system.
.
Mecanum Wheels
I looked at Mecanum wheels (http://en.wikipedia.org/wiki/Mecanum_wheel) but they are complicated and would need to be over-engineered to be stronger than the usual LEGO standard, and possibly not be able to be made out of injection moulded ABS plastic if there was a size limitation, so I’d end up with an expensive LEGO piece that could only do one thing. Also Mecanum wheels require four wheels to function as a holonomic platform, whereas most other omni-wheels only need three wheels. They look great though:
Here are some of the ideas I started sketching with:
I ended up with a triangular assembly of 3 pairs of ’mini-wheels’, whose combined outer surface makes up the circumference of the larger main wheel. The larger wheel works as normal, the 3 pairs of wheels allow the sideways movement.
.
DIMENSIONS AND TOLERANCES.
LEGO dimensions are pretty important to get right, because of the high tolerances of LEGO. LEGO claim a stud has a tolerance of 20 microns/ 0.02mm (http://aboutus.lego.com/en-us/lego-group/company-profile/). I’ve measured LEGO with a set of callipers to get an idea of the dimensions, but there is no way I can get that precision. This is one reason why LEGO is expensive, it is very very well made.
“The actual dimension (rather than the ratios) can be determined by carefully measuring a properly constructed “wall” of bricks. Vertical dimensions are prone to error caused by sloppy stacking, but long horizontal walls constructed from two or more layers of overlapping bricks are not prone to such error. A wall of this type built from Technic beams made in the late 1990’s shows that the stud pitch distance is 7.986 millimeters, plus or minus 2 microns, when the parts are at 25 degrees centigrade (77 degrees Farenheit).
It is also worthwhile to note that LEGO bricks are always made a little smaller than this dimension would suggest. For example, the length of a 2×4 brick is a little less than 4 times 7.986 millimeters. The length is diminished slightly so that there will be a small gap when bricks are stacked next to each other. This gap allows for dust, marred surfaces and other imperfections. If the gap were not there the bricks would tend to push each other apart and the overall construction would be less strong.”
And the dimensions are:
Brick height 9.582 mm
Plate height 3.194 mm
Stud pitch 7.985 mm
.
CAD.
My design intent was to have the standard LEGO dimensions drive the main wheel size, and so in turn determine the individual ‘mini-wheels’ size. Lots of SolidWorks modelling now to get the geometry right. The ‘mini-wheels’ on the outer of the main wheel allow the sideways movement, so they need to be able to rotate about their own axis, while having a profile that is the circumference of the main wheels rotation:
The part sizes need to balance; a bigger mini-wheel will better cover the circumference of the main wheel, but bigger mini-wheels mean there is less space to attach the wheel on the spoke arm. If the mini-wheel gets too large, it won’t fit in the space allocated:
The early concept for the ‘mini-wheels’ to be on a fork like a bicycle wheel showed it wouldn’t work- not enough space available to keep the whole assembly at a reasonable size, plus the ‘circumference gaps’ got quite large, making for a bumpy ride.
I went for an alternative concept - each ‘mini-wheel’ split by the fork. More of the main wheels circumference was covered by the ‘mini-wheels’ creating a smoother ride. It meant for a new LEGO piece to be designed, a six-armed technic beam:
Orientation
The only issue I have with this is that LEGO is mostly a ‘square’ orientation, the studs are spaced in rows at right angles to their columns, so a six-armed pattern isn’t compatible with the majority of LEGO bricks (placing a regular 4 by 2 stud brick on top won’t work as the pieces can’t fit together). Some compromises were made so the middle is ‘square’. I figure this is an acceptable feature because LEGO does have lots of pieces that aren’t ‘square’:
Three sub-assemblies, each offset so at all times the wheel circumference is in contact with the ground, made up of one six-armed technic beam and 3 pairs of ‘mini-wheels’:
The six arms are required to allow the arms to be stiffened by use of technic pins and liftarms:
.
PROTOTYPES.
Now some prototypes. Prototyping and making is essential to design because it is showing that the ideas work. It’s easy to sketch or CAD something up that looks like it works, and photo-realistic rendering can make anything look real, but an actual real model in your hand tells you so much more about the object. Design is about working out the mistakes before the user does.
3D Prints – Hex Arms version 1
Here are some initial 3D prints of the six-arm technic beam:
The rough surface is due to the 3D printers I am using, a result of the support material that needs to be removed manually.
Making a model using 3D printing can be very seductive. The idea of turning your pretty CAD render into a real thing, exactly as it appears on your screen, just by pressing a button named ‘print’ sounds great. As you can see this doesn’t always happen. This one got a little messed up on one edge, plus you can see the ‘stepping’ of the filament layers and general inconsistencies (like flattened holes) that are a result of the 3D printers I used.
The arms on the white version (ABS plastic on an Up!3D printer) proved too long, so a second version was printed (red PLA plastic on a Makerbot Replicator):
Again you can see the resolution issues. Partly because I built this version upside down as I figured the internal dimensions would be harder to modify post printing- it’s easier to remove material from an external stud , than from an internal tube (the LEGO connection system is referred to as “stud and tube”). The studs look a bit messy:
The tubes on the underside are a lot more accurate:
You can still see the resolution issues involved with this sort of 3D printing, but nothing that can’t be fixed with a knife, file and a Dremel:
Good news is that it is more or less the 3D printed parts fit with the LEGO parts. Some filing and trimming has been required. I’m pretty happy with the results, especially with the limitations of the printers I’ve used. It has given me a real appreciation of the quality and tolerances of LEGO.
The technic pins and lift arms help quite a bit in removing some of the tolerance issues, as well as securing and stiffening up the part:
3D Prints – Mini Wheels version 1
Now for the mini-wheels. All follow the basic shape and dimensions; a cone that is a chord of the circumference of the main wheel:
I’ve been experimenting with various tread patterns:
An ‘internal’ tread (cut into the shape) is better than an ‘external’ tread (protrudes from the shape) as the ride will be better and there is less to wear down, which would affect the circumference dimensions of the main wheel. This is the design I like the best, except the 3D print didn’t create the support material (my error), so you can see where the extruded plastic wasn’t supported and drooped down and made a mess:This tread design is based on this LEGO piece tyre tread (Wheel with Split Axle hole, with Light Gray Tire 30 x 10.5 Offset Tread (3482 / 2346) http://www.bricklink.com/catalogItemPic.asp?P=3482c04):
It should look more like this (a rendered image of the CAD file):
Here is the 3D printed assembly so far, attached to real LEGO. The next version will have the six-armed technic beams the same size as the red version, and a completed wheel will be made up of three assemblies so the whole circumference of the main wheel will be unbroken:
3D Prints – Mini Wheels version 2
Some more wheel re-design. The original wheels (in the photos above) are too large, they butt right up to the reinforcing liftarms, so I made them a little smaller.
The tread on the design I liked was also too deep. I intend to cast the wheels in rubber/ silicon and 2mm deep tread might not work. Plus it didn’t print very well, the deep tread meant the extruded plastic drooped. This is the revised tread pattern that I’ll stick with:
I also realised that the axle slot was too small- the LEGO axles would not fit in. This is a tolerance issue, both with the callipers I’m using to measure the existing LEGO pieces, and how dimensionally accurately the 3D printers can make the parts. I needed to make sure the axle fitted in snugly, but was easy to remove. This is a trial-and error-process. A number of wheels were made where I experimented with the width of the axle slot. The last one was good:
All the remaining wheels needed some Dremel work to file out the internal dimensions of the axle slot. A bit messy but ended up working well
This is the wheel sub-assembly so far:
Here is how it works:
RE-INVENTING THE WHEEL – PART 1.
After leaving the project to work on other things, I had a think and came back to it a few days later. One of my aims was to use as many standard LEGO pieces as possible, so maybe I could use some existing LEGO pieces instead of the six-armed technic brick. I experimented with the tri-blades (see above) which would work, but there would be very little lateral strength as the technic bricks couldn’t be reinforced with pins and liftarms, so the wheel would probably fall apart under load:
So I bought some from www.bricklink.com (the excellent online LEGO spare part marketplace) and tried to make the the equivalent of my wheel using existing LEGO parts. The good news is that my dimensions on my custom pieces are pretty true to the equivalent LEGO piece, the bad news is the size of the ‘Water Wheel’ isn’t quite big enough for what I want. Same problems as the tri-blades, they have no room for the pins and liftarms, and I’d also need technic bricks that are 1 x 5 long with four holes, which LEGO do not make, so I’ll keep going with the six-arms.
.
PROTOTYPES – SHAPEWAYS.
The above prototypes have shown me my design intent works, but I need much better quality prototypes than what I have available, so I have used http://www.shapeways.com/ (online 3D printing bureau) to get higher resolution parts made. You create your part in CAD, upload it to them, choose the material you want it made from, they make it and send it to you.
I’m using their “strong and flexible” material, which is laser sintered then polished post print. Laser sintering (http://en.wikipedia.org/wiki/Selective_laser_sintering) cuts a CAD model into layers and uses a laser to melt the material particles together according to the shape of each layer, so a piece is built up layer by layer. According to the Shapeways MSDS it is “Fine Polyamide PA 2200 (Polylaurinlactam (polyamide 12))” with a grain size of 56 µm, so the part detail will be much improved compared to the 3D printing I’ve been doing. PA 2200 is a Nylon (sometimes called Nylon 12) which is food and medical safe.
The Shapeways prints are of a much higher resolution than the Makerbot and Up! prints, but they are more expensive (not really expensive but not free at the public library) and took about 2 weeks to arrive. So far they seem just a little bit not as strong as the ABS and PLA; instead of having to file the parts to fit with actual LEGO with a Dremel (see below), I managed to push in a LEGO axle by hand. They look fantastic however:
.
RE-INVENTING THE WHEEL – PART 2.
The Shapeways parts are much better detailed and more dimensionally accurate, so better show how well my part connects with existing LEGO, and has highlighted some issues:
the technic brick holes and axle slots need to be a tiny bit bigger, the technic brick holes need to allow the axles to spin freely and the axle slots need to be able to hold the axles while letting them to be put in and removed by hand without too much effort;
the bottom of the hex arm brick (the “tube”) connects well to a regular LEGO brick, but the top of the hex arm (the “studs”) are too small and do not connect at all to a regular LEGO brick;
I have sent an experimental batch to Shapeways to check what are the best dimensions for overall fit. LEGO has tolerances in the microns (0.001mm) and my callipers only go to 0.1mm, so I’ve had to experiment with a few pieces with different dimensions:
I’ve made 5 different versions of the above technic brick, all with different sizes of axel slot, technic hole and stud width, and I’ve sent these to be printed at Shapeways, so I can test what are the best ‘real world’ dimensions to use, and then go ahead with those. It will also allow me to see what the different material colours look like:
The text on the parts is to remind me what the respective dimensions are. They are 0.8mm high and extend into the piece by 0.2mm, so it will be interesting to see what that resolution looks like on a real part.
Shapeways Results
Pretty good. Apart from the matt finish and the texture when you pick them up, they almost could pass for actual LEGO.
The pieces did show some of the tolerance issues with this 3D printing. The purple piece had a 0.05mm larger diameter hole than the black piece, but the axle moved more freely in the black piece. That said all the technic holes allowed the axles to move smoothly, there was no ‘notching’ or ‘stepping’ that occurred previiously when trying to get axles to spin in the blue hex arms. None of the text was legible, it was there but so small and couldn’t be made out.
The results are for best compatibility with actual LEGO, I will make the axle slots 2.00mm wide in an overall diameter of 5.00mm, the technic holes 5.00mm in diametre, and the top studs 4.9mm in diametre.
.
RE-INVENTING THE WHEEL – PART 3.
The wheel chord size is still bothering me. The current design calls for 3 hex arms, each with 3 pairs of wheels. Each assembly requires 18 wheels, and for a vector-style robot, at least 3 full assemblies are required; in total 9 hex arms and 54 wheels. Also with the wheel chord size as it is, there is only about 3mm clearance between the end of the hex arm and the ground:
Wheel Size and LEGO Units
The wheel diameter is effectively 4 LEGO ‘units’ in length (one LEGO unit being the distance from the middle of one stud to the middle of the adjacent stud). If the wheel diameter is increased to 5 LEGO ‘units’, there will be greater ground clearance and only 2 hex arms would be required per wheel assembly, as a standard technic 4 x 1 brick could be used instead of the middle hex arm. A vector robot of 3 full assemblies would only require 6 hex arms and 36 wheels:
Hex Arm and Beam Length
The 5 LEGO unit wheel version highlighted some more issues. In order to work the liftarms that provide reinforcement would need to be 3 holes long, which at the moment LEGO don’t make:
Making the wheels larger in order to increase ground clearance also creates another clearance issue, as the clearances between the wheels and the liftarms are tiny. I don’t think in the real world with flex and slop and loose fitting parts it would work, as the wheel would rub against the liftarm.
One way to increase clearance between the wheels and the ground and other parts is to increase the size of the hex arms. The hex arm span is 11 LEGO units/ studs. Beams and bricks are usually (but not always) an even number of units long:
Making a 12 unit long Hex arm allows slightly more ground clearance, and allows better integration with the most common LEGO sizes:
###Now I have a few more options to explore regarding wheel size, 2 or 3 hex arms etc###
Failed 3D Prints
The joys of prototyping. In trying to get a clean base I printed without a support raft, so unfortunately the model moved a few minutes into the print and the whole thing was stuffed:
on the same day a new mini-wheel design failed as well:
Moulds for Casting
The mini-wheels are to be made from rubber, and mount onto a standard LEGO rim, in this case 3482:
So I have to adjust the part so it can take a rim rather than an axle, which is straightforward:
and making a mould is pretty straightforward as well. Enclose the wheel in a box, boolean operation to remove the wheel shape for the box, split the box in half, then add some guiding notches to align the two halves:
I experimented with the shape to see if it would work, unfortunately the 3D printers I’m using at the library aren’t accurate enough for this sort of model, and removing the support material was a pain:
I’ll need to print a very high quality mould to see if this will work. More expensive set-up costs but casting each piece should be a lot cheaper than individually printing each wheel:
######## show minor modifications to the hex arms, to allow better connection to real LEGO #####
.
###3 sets of finished wheels on working robot, show robot working, video####
###wheel over existing axle, mould and rubber###
OFFICIAL LEGO CUSTOM ELEMENTS.
Ultimately my goal is get these pieces made and sold, preferably as official LEGO elements. LEGO do have some options for members of the public to get custom LEGO sets and parts made.
In the past LEGO have brought fan sets to production. “LEGO Factory” and “LEGO Design By Me” allowed customers to design their own sets using the LEGO Digital Designer http://ldd.lego.com/en-us/download/ and some of these were converted into production sets:
These services are no longer available however, the current options are:
LEGO Cuusoo is a fan voting site for new LEGO sets. If a submitted idea gets 10,000 votes, it then is reviewed by LEGO and if successful it gets put into production, with the submitter earning a royalty of 1% of the total net sales of the product.
They have a few items in production as a result of the process:
“You will receive credit and compensation for your original ideas. We recognize three types of ideas, as follows:
Original Model Ideas. You will receive 1% of net sales if your LEGO CUUSOO Project is chosen and the LEGO Group commercializes it as a LEGO set.
Original Part Ideas. You will receive a one-time flat fee as remuneration for a part idea that is produced, to be determined by the LEGO Group.
Original Model Ideas based on Licensed IP. You will receive 1% of net sales if the model you submitted is based on third-party intellectual property (e.g. Star Wars™) and is your original work.”
“Models should not depend on new LEGO element molds.
While we love considering new elements, if a model depends on a new element, there are more potential factors on which it can fail review. All new LEGO elements go through a very strict design and review process before they are accepted into the LEGO system. An existing element in a new color is OK, but a new element in one set isn’t likely.”
“Customized figurine configuration. First, I sketched some ideas for clothing and hairstyle while watching the movie, and tried to reproduce them for a LEGO Minifigure. The hairstyle in particular is entirely handmade and cannot be reproduced. I used a magnifying glass while creating the parts so that they would appear just like those in the film.”
So LEGO Cuusoo is a future option if I want to take this project further.
.
Rebrick
LEGO Rebrick http://rebrick.lego.com/ is similar to LEGO Cuusoo but not focused on production, rather sharing models that LEGO fans have made:
“ReBrick is a social bookmarking platform where adult users can share, organize and discuss user-created LEGO content.The content on ReBrick is not LEGO sets you can buy in a shop, but creations made by teenage and adult builders, who use their creativity to build their own models called MOCs (My Own Creation).”
This does also mean some brick customisation, mostly done virtually:
“The MinuteBot Base is a thick, robust base plate that can be used for construction of robotics based on LEGO Mindstorms. MinuteBot Base extends a LEGO beam into a rectangular plate with 21 x 30 holes. The dimensions and holes are a perfect fit with LEGO products.”
The interesting thing about this project is the disclaimer:
“Legal stuff: The MinuteBot Base and other MinuteBot products are not endorsed by or officially connected to The LEGO Company. LEGO and Mindstorms are trademarks of The LEGO Company.
That said: We have checked with the LEGO people – the company is based in our home country of Denmark – and they have no problems with us creating this project. They are really cool people.”
..
.
.
*the more specialised a LEGO part is, the less LEGO-like it is. If it can only do one thing, it is hard to adapt it into something else. Almost as bad as mixing some knock-off fakego** or worse with the real stuff, and nothing fits right and the plastic looks cheap and you cut yourself on the poor quality flashing and you are history’s greatest monster
My daughter Eva (age 6) drew a picture of a Unicorn, and I decided to make a model of it, using 3D printing. This is “Gigi” the Unicorn:
A quick bit of Photoshoppery to turn the mobile phone image into a line drawing. Tip number one – a good scan makes less work to tidy it up:
Photoshoppery part 2:
Photoshoppery part 3:
Import the cleaned-up line drawing into SolidWorks, and use the spline drawing tool to follow the imported line-drawing. This is a simple extruded shape without too much time spent on making it a real ‘Unicorn’ shape, because a) my daughter didn’t draw a three dimensional object, so I can’t really follow her intent, and b) I didn’t want to spend a month killing myself with surfaces.
SolidWorks extrusion:
Same process more-or-less for the other Unicorn features. A bit of mucking around to make it stand up on level ground (adjusting the tail) and the sweep-helix horn wouldn’t work, so I made it a lot simpler. The final step was to scale the model so it’s approximately 60mm tall.
Then make an STL file of the model (hard move this, ‘Save As…STL’), so it can import into the 3D printer software:
Import the STL file into the UP! 3D printer software, which is pretty straightforward to set up:
The software tells you how much ABS the model will use, and how long it will take. It also tells you how many layers will make up the print, because the Unicorn is on it’s side, it is only 27 layers.
Here is it being printed. You’ll notice that here is one being printed well, alongside one that lifted off the build platform so I had to throw it away half done, and the resulting extruded plastic mess that is going nowhere. Various issues led me to make four prints in the end:
The finished Unicorn, compared with the STL to-print image:
The poor half-done one that lifted off the build platform, that unfortunately had to be sent to the plastic Findus lasagne factory:
Two good prints, left showing the model as it comes off the machine with support material, right with support material removed (with pliers and swearing):
Completed GiGi the Unicorn, approximately 60mm high. You can see the resolution of the extruded plastic, but this is more a factor of fine details on a small part:
Here’s a video of the 3D printer in action:
and finally, here is Eva (on my lap) describing to her Mum what we were doing:
So far lots of Thingiverse toys and tchotchkes have been made. I decided to do something a bit more useful and make a replacement curtain rail mount that had broken.
I modelled up the broken mount, using SolidWorks and a pair of callipers to measure it:
Save the SolidWorks file as an .stl file and upload into the Up! printer. The Up! software is pretty easy and straightforward to use:
It takes about 45 minutes to print this little thing, and it weighs about 7grams. You can see how each layer of ABS plastic is squeezed out of the nozzle, as the part is built up:
The Up! printer makes it own support material, but it from ABS, so it’s a sort-of lattice that can be torn off the part like velcro. Because this part has undercuts and overhangs, it was a bit of a pain to remove, but with pliers and a small screwdriver blade, it all came off. Here are the two 3D printed parts before the support material has been removed, alongside the original part:
And here are the parts with the support material removed. You can see the resolution of the printed parts, each deposited layer of ABS is a fraction of a millimetre thick:
There is a tiny amount of shrinkage with the ABS plastic as it cools, which needs to be taken into account when modelling and printing a 3D part, but with a part this small it is negligible. I removed the old broken mounts, screwed in the new mounts, then re-hung the curtain: hooray!! it works!!
Here’s a copy of the stl file so you can print it yourself if you like (rename the extension from .xls to .stl after downloading):