Engineering Design using Children’s Toys

Physical reverse engineering often involves 3D scanners and other similar technologies to capture the shape and form of the original object and may require equipment not available to the typical student or young engineer. In this short post, I’ll briefly outline the workflow of designing an ergonomic trackball prototype using approximately $4 worth of toys and no special equipment.


A significant portion of my working time is spent in front of a computer, operating a computer. So it makes sense that the input devices I use should minimise strain on my body and the risks of RSI, and one of the ‘non-standard’ pieces of equipment I favour is a trackball rather than a ‘traditional’ mouse.  You can Google up the benefits of a trackball (or a vertical mouse) over a typical mouse, but there is another problem many of us will face – commercial products are typically designed around the ‘average person’, and more often than not, you are not all that average.

Ergonomics for me, myself, and I

Well I fall in the ‘more often than not bucket’ and definitely am not your average human.  I have relatively small hands and ‘ergonomic’ trackballs/mice available on the market simply do not quite fit my hands perfectly, and hence my desire to begin a quest to build my own.

Getting the shape of my hand…

Enter the toy!  Playfoam!

Playfoam! With sparkles to make it more fabulous!

The concept of Playfoam is similar to that of play dough where the material is pliable and can be kneaded or formed into shapes for the young inquisitive mind.  However, Playfoam has significant advantages over play dough for this application in that Playfoam is :

  1. Doesn’t leave a mess everywhere.  Even though the pellets are sticky to themselves, there is no residue left over on your hands or anything else you use to shape it.
  2. Is much softer and pliable!  This is the primary benefit in that it doesn’t require the same amount of force you need to form play dough, but rather it just forms into shape.
  3. Has a natural resultant ‘texture’ that makes getting it into computer format much easier… see later….
  4. Reusable and won’t dry out.

Getting the shape I wanted was simply a matter of grabbing a bunch of the stuff (2 blister packs worth) and making it feel right in my hand as if I was holding and using my ideal trackball.  I borrowed a ball from a ‘Logitech Trackman Marble’ to use as a guide on where the ball would be if it was an actual trackball.  Sometimes, I had to rearrange some excess material from places of the model to back fill some visible gaps or to stuff into crevices where my hand needed additional support.

Trackball in Playfoam, can you see the glitter sparkling?

Getting the shape into a computer…

‘Scanning’ the shape into the compute is a rather straight forward exercise.  I used photogrammetry as I first experimented with many years ago with Autodesk Catch but software moves on and as Photofly morphed into Catch, Catch has been morphed into Autodesk ReMake.  The process however is still the same, you take a series of photos angled around the model and load into the program to calculate a 3D model.  I didn’t bother with a dedicated camera at all, and simply used the ‘Pro’ mode on my Android phone and used a fixed manual focus for all photos per my experience from ~6 years ago.

Input photos, note the variety of angles in the photos.

In total, I took 37 photos as pictured above.  Another tip is to remember to take photos from a variety of angles, enough to capture the shape of the object and definitely photos from low angles.  Photogrammetry struggles with smooth shiny surfaces as it is difficult to match two points in separate photos together if there are no unique features, this is where the texture of the Playfoam balls help get an easy result.

Resultant ReMake Model

ReMake only works locally if you have a Nvidia graphics card, but there’s always the ‘cloud’ option which is what I used.  The model came back in 15-30 minutes after uploading and was good in all areas except the smooth ball which turned out like an alien blob.  The model was still bumpy and weird, but good enough!

One thing I forgot to do but should be a lesson learnt, is to put a small ruler or something of known dimensions in the view to be able to scale your model.  I made do with the ball which I knew to be 40mm, but it would have been nice to scale off something flat (ReMake lets you measure off two points anywhere within the model).

Getting the weird shape into something usable…

ReMake has the lovely and awesome feature of being able to export into a variety of formats, and conveniently within the Autodesk family of free for hobbyist tools is Fusion 360 (I swear this isn’t an Autodesk ad…).

Fusion 360 mesh import

Importing into Fusion 360 is as trivial as ‘Insert Mesh’ and I had a rough 3D model within 15 minutes that ‘almost’ matched the shape of the imported mesh.  The trick here in this process is to either make the solid being worked with translucent (50% opacity for example) or the imported mesh to be translucent.  This lets you see how close you are with your featured 3D model with your target shape.  The picture above shows the imported mesh after being imported in ‘low quality’ and a grey solid modelled using simple features.  I dislike sculpting even for this application, and you can see in the feature tree above I had only used so far one extrude, one revolve, and two each of fillets and chamfers for this model (the other revolve is the ball, which technically isn’t part of the what I need).

A couple of extra views, mesh hidden and added ‘pinky pad’

Validating the shape…

This is where I go ‘oopsies’ and realised that part of my workflow does include the use of special equipment, an Up! Box 3D printer… again not an ad, but tell the guy Madox sent ya 😉

I suppose I could argue the prototype design was complete prior to this step, but having something you can put in your hand to validate is very very nice.  Having the physical print (with yet a different donor trackball) to try with my hand made me go ‘meh…this isn’t right…’, that huge mismatch with the mesh should have told me something!

Wait… I used special equipment 😛

I quickly remodelled the casing and printed it again…yet I still didn’t see the obvious ‘ITS NOT MATCHING THE MESH MATE!’ glaring at me in the screenshot below.

Mistake #2…
Render of mistake #2, looks disturbingly like an existing commercial product….
Print and hand trial of mistake #2, nope, the thumb position really felt off.

Third time lucky… and on-screen validation

While printing doesn’t cost much, printing two ‘not quite right’ casings was annoying me.  Yes that is the point of having a 3D printer, to make mistakes more quickly, but it doesn’t mean I have to like making them.

Then it occurred to me that I could check rough positioning of button placements etc on the screen!  A donor 40 mm Kensington trackball was borrowed to calibrate the on-screen display of the CAD model, and I simply placed my hand on the screen to get a rough appreciation that I’ve finally got the buttons in the right place.

Checking it before printing! On the screen!
Final fitting…Its alive!!! … or at least it fits.

The final fitting confirms the form, shape and placement of the buttons.  Yay… now I just have to wait for the electronics to arrive in the mail and onto the next step.  Less 3D printing time, uploading and cloud processing time, the actual design effort took roughly an hour and demonstrates how easily a simple child’s toy can be used in an engineering context.

Final pre-electronics tweaking render

Once I get the electronics, there will probably be more tweaking to be done to the model to fit the items inside but I consider the physical form to be ‘almost complete’ for now.  The observative amongst you would have noticed the new ‘wing’ in the final render where my little finger is… let’s just say I’m prone to scope creeping my projects… *cough it might be provision for a 3D gesture controller*

If there is interest, I’ll write up on the electronics design too…

Tiertime Up Box 3D Printer – Short Review

Opening excuse

One of my new year resolutions was to post more here, but with a new child, sick kids, computer continually eating my homework, dying phones eating my home work, it hasn’t really worked out.  Well that’s my excuses out of the way…


I’ve been a happy Up Plus! 3D printer user for several years, convincing probably around 20+ people I know to get one.  However with the concern of particle emissions from 3D printers and a new-born child in 2013, I decided to err on the paranoid side and off-loaded my printer to someone else.

The relapse

Though an engineer always has an itch to scratch wanting to make gadgets and stuff so… unashamedly (or slightly ashamed) I got myself another 3D printer (and a Thermomix… but that’s another story).

Up Box in Packaging
Up Box in Packaging

The Tiertime Up Box 3D Printer arrived just over the new year break for me to get my grubby little hands on it.  The size of the ‘box’ it came in could have easily accommodated 4 small children and I hit my first hurdle as soon as I tried opening the box, it needs two adults to unpack…

Argh it needs 2 people
Argh it needs 2 people

What’s inside the box…

Inside the box is a very professional set of packaging, protecting the contents.  Like the previous Up! printers, there is almost no assembly involved and everything is almost good to go out of the box.

Well that's nicely packed
Well that’s nicely packed

Behind all the styrofoam are contents similar to the original Up Plus and Up Mini.  The photo below shows all the contents laid out on top of the printer.  From a tools perspective, the very handy side cutters are still there with the very sharp spatula/scrapper thing.  For safety, protective eye-wear is provided being a nice touch to protect your eyes from flying plastic when you’re removing support.  The heavy gloves are no longer provided, but honestly I’ve never really  used them.

The Up Box, Box Contents
The Up Box, Box Contents

An USB cable is provided to connect to the computer as well as power cords and the power supply.  Whereas the previous Up Plus and Up Mini printers used heavy duty Hewlett Packard laptop power suppliers, the Up Box appears to come with a branded power supply.  Looking at the output (24V × 9.16A = 220W!!!), it probably is a case of out-growing the available off-the-shelf supplies.

Up Box Power Supply
Up Box Power Supply

The Up Box comes with a roll of filament so you can rock and start printing ASAP.  I’m not sure who in their marketing department thought ‘Fila’ was a good idea, it sounds too much like the shoe brand and just confuses people I think.  The Up ‘Fila’ment I’ve always found to be superior to most others you can buy, and the Up printers are tuned to work particularly well with it so I’ve gone ahead and bought 10 rolls…

The filament size has been downgraded from 700g to 500g, an odd choice considering the larger print area/volume of the Up Box.  What were they thinking?

The 'Fila'... errr
The ‘Fila’… errr

What’s in the Box within the box…

Everything inside is almost ready to go with nothing to assemble.  There are however a whole bunch of cable ties, used to prevent the platform from rattling during transport, that needs to be snipped off.  Luckily these are professionally labelled ‘Remove Me – Please remove me.  I am shipping clip’.  OK the last bit reads a bit funny, but you have to admit its kind of nice.

Secured for transport
Secured for transport

The internal build of the printer is nice a clean, with a two tone scheme (black and orange) consistent throughout.  In the photo above, you can see the HEPA filter on the left.  Below you will notice even the cable assemblies are professional labelled and branded giving the printer just a little bit more of the up-market feel (er…excuse the pun, definitely not intended).

Branded cables...Oooo pretty...
Branded cables…Oooo pretty…

The printer also comes with 4 print plates, 3 perforated much like those PCB type ones provided on the Up Plus and Mini as well as 1 smooth bed one presumably for PLA usage.  The additional plates are handy and allows you to swap them out and continue printing without downtime.  The plates I received unfortunately weren’t very consistent and a couple of them was very warped, putting them through a couple of print/heat cycles relieved the issue but clipping them on the first time proved tricky.

The underside of the lid conveniently has a quick start guide with instructions on use which I thought was a nice touch.

Handy instruction sheet
Handy instruction sheet

The side of the printer contains a fancy spool holder with magnetic clip, it does look pretty I have to admit.

Filament goes here...
Filament goes here…

Unfortunately, the only thing going for it is ‘pretty’ as the filament spool size is truly underwhelming at 500g.  I am not looking forward to swapping filaments in-between large prints, but for those who do multiple small prints this shouldn’t be an issue.

Undersized filament spool
Undersized filament spool

The top right of the box holds 3 multi-function buttons depending on how long you press them.  Functions available include pre-heat, re-print last job, withdraw and extrude filament, pause/resume/stop, and my favorite lights on.  The Up Mini 2 appears to contain a LCD screen, but to me that’s feature bloat, three buttons seems to do everything I think I’ll need.

Control buttons
Control buttons

The Up Box has a limit switch on its front door to pause printing whenever it is opened.  I think it is intended as a safety feature, but the feature is not included on the top lid presumably assuming kids aren’t that tall.  The picture below shows the Box with the front door open and the ABS build plate installed, I really appreciate the professional appearance of the whole set-up.

The Box...
The Box…


The Up Box prints slightly quieter than the Up Plus, probably due to its construction.  There is no noticeable improvement on the quality of the prints to its predecessor, but they were pretty damn good already.  Probably the one true reason to upgrade to the Up Box if you’ve already have an Up Plus would be for the significantly larger print volume and the ability to print bigger parts without warping.

One nice improvement over the Up Mini is that the front window is now much more transparent and with the LED lighting within lets you see the print rather well.  The photo below was taken through the front window, it is still rather reflective but you can see everything going on inside well and removes that ‘has my print screwed up’ angst that I had when I was trying to use the Up Mini.

Printing in action
Printing in action

A word of warning though, the bed auto-leveling and height adjustment should be verified!  Do not rely on it!  Or pre-heat your bed before doing the adjustments.  I had a series of bad prints initially but sorted it out after manual adjustments, the variation to the initial auto adjustment values and my own manual adjustment values were very far off.  It has been smooth printing every since.

Some random prints I’ve done

With reference to my opening excuse, I haven’t had much time to do much 3D printing (in fact I wrote that excuse a week ago, I’ve been sick since!), so I’ve only got a couple of examples of what I’ve printed with the Box.  The support pulls off nicely and all is good 🙂

Random DIN Rail Mount Print :)
Random DIN Rail Mount Print 🙂
Huey House
Huey House

Should you buy it? (Short Answer)

Short answer – Yes, but you should use this link – Up Box 3D Printer.

Should you buy it? (Longer Answers)

Yes – Professionals, hobbyists and business use

Yes if you need to print functional items and don’t want the hassle of tuning/tweaking/fault finding or any of the myriad of problems associated with cheap 3D printers and 3D printer kits.  The higher price is well worth the time and frustration saved if you’re planning on using it for personal projects, and definitely worth the investment if you’re buying it from a company perspective (plus its an expense, its a deduction!).

Maybe – Schools, parents

If you’re a school or educational institution, you may get more bang for your buck with the Up Mini or the upcoming Up Mini 2.  Having more printers per student outweighs the large print volume the Up Box brings in my opinion.

If you’re a parent thinking the HEPA filter will let you print in piece, then chalk it down as a maybe.  There are so many holes and crevices I’m not sure the HEPA filter does much.  You should consider getting a carbon activated filter unit to remove the smell and definitely print in a separate well ventilated room away from your children.  I am not an expert but I consider 3D printer emissions in the same category as smoke, i.e. increases SIDS risks.  Can’t be certain but caution is good.

No – People learning on building or on a tight budget

If you’re a hobbyist/student and building the printer is part of the learning experience.  Personally, I think many of the kits out there will set you for disappointment.  Do some research and don’t simply go for the cheapest.

The almost $3000 price tag may place it out of reach for many people.  Instead of buying a cheap 3D printer kit, I suggest to you to look into services such as Shapeways.  They offer an excellent service and for several prints a year, they’re cheaper than owning a 3D printer.

The people who sell the Tiertime Up printers in Australia also have a 3D printing service locally, I think it is but I’ve not tried it out yet…


Carambola 2 Images




Yippee, I finally received a batch of Carambola2s in the mail today.  I had a couple that were ready for me to pick up a couple of weeks ago but didn’t get it until Saturday…

So similar to the TL-WR703N I’ve prepared a standard image with most of the hacker stuff baked in for people to try out with a limited repository (not as comprehensive as the TL-WR703N one and definitely not compared to the 8devices/OpenWrt ones) compiled and available online.

I’ve also build the Image Builder again for people to remix and make their own images without doing the full OpenWrt build.

The following have been tried and seem to work :

  • Python
  • Python-libusb1
  • Pyserial
  • Python HTTP Server
  • USB Serial (ACM)
  • WiFi, Eth0, Eth1, Buttons

Don’t expect anything not to work, but it was worth noting 🙂

Someone really should donate me a 3G modem to test with…

May Day Uploads – TL-WR703N, TL-WR720N & TL-MR3020 images + Secret Sauce

Uploaded a bunch of images for the TL-WR703N, TL-WR720N & TL-MR3020 on May 1st.

Based on OpenWRT r36503, it has the new 3.8.10 kernel as well as the new LuCi theme.  Due to the slowly expanding size of the kernel and the packages, I had to drop 3G out from the ‘standard’ image and made a separate ‘3G’ image.  All images are very barely tested though so that’s why I’m not updating into the main project page.

The benefit of these images is that this time I’ve included the image builder as well as helper scripts that should give people an idea on how to quickly roll their own images and still have access to a set of online packages.

Lots of comments asking me how I compile USBIP and make it work with the outdated Windows client, so I’ve included all the extra files I use on-top of the OpenWRT source in a package.  Yup I was too lazy to set up a github or similar for it 😛  It basically is 3 packages and a couple of modified source files…

All files located here :-

TP-Link TL-WR720N Test Images (OpenWRT)

I’ve uploaded two test images based on OpenWRT r35905 (Linux 3.8.2) for the TL-WR720N here :-

Both Ethernet and WiFi appear to work as well as the mode switch.  Both images are similar to the WR703N images but with less things (mjpg-streamer ser2net dropped).  I had to cut down as it appears the newer kernel is significantly larger [either that or I did something wrong].

I will upload the repository and packages tomorrow if I don’t find a better way to squeeze more goodies in.

How to install OpenWRT on a TL-WR703N that came with DD-WRT


I have only done this procedure once and sharing because of the lack of information on the web on how to do this.

Some of the sellers of the TL-WR703N are shipping the routers with DD-WRT pre-installed – some with a Chinese interface, some with an English interface.

Regardless, you need telnet or SSH access to the router as upgrading via the web interface will not work.

Step 1 :

Get the OpenWRT image onto the router.

root@DD-WRT:/tmp# wget
Connecting to (
openwrt-ar71xx-gener 100% |*******************************| 3840k 0:00:00 ETA

Other methods can be found here :-

Step 2 :

The TRICK is that the partition names are different between OpenWRT and DD-WRT.  Whereas all OpenWRT instructions will tell you to write to the ‘firmware‘ partition, this does not exist on DD-WRT and you have to use the ‘linux‘ partition instead.  Use the ‘mtd’ command as per the example below to write the OpenWRT image onto the router.  Note the ‘-r’ argument will reboot the router as soon as the flash is complete.  (As usual, do not power off or disconnect during the flashing!).

root@DD-WRT:/tmp# mtd -r write openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin linux
Unlocking linux ...
Writing from openwrt-ar71xx-generic-tl-wr703n-v1-squashfs-factory.bin to linux ... [e]
Connection closed by foreign host.

TL-WR703N Example Project 4 : Webcam Streaming

Connecting a webcam and using the router to stream video around the place should be one of the easiest things to do. A bit too easy in that I neglected to provide simple instructions on how to set it up.

mjpg-streamer and the necessary drivers are included in the standard images I provide on the TP-Link TL-WR703N project page.

Preliminary steps :-

  1. Get a router, load it with the standard image.
  2. Set-up wireless or any other networking changes.  See an example here.
  3. Plug in the camera

Now there are two ways to get mjpg-streamer to auto-start, there is an easy way and an elegant way.

  • Easy way : Just add the command to the auto start script using LuCi…
  • Elegant way : Edit the configuration files /etc/init.d/mjpg-streamer and /etc/config/mjpg-streamer

I prefer the easy way you are less likely to screw it up.  First we should check that the camera works well with mjpg-streamer…

  1. Telnet/SSH into the router
  2. Run the following command :

    mjpg_streamer -i “./ -n -r VGA -f 6 -d /dev/video0” -o “./ -p 8080 -n”

    This command uses VGA (640×480) resolution “-r VGA” at 6 frames per second “-f 6”.

  3. If that doesn’t work and an error appears, it most likely means your camera doesn’t support JPEG images.  If so, try the following command instead :

    mjpg_streamer -i “./ -n -q 60 -r QVGA -f 6 -d /dev/video0” -o “./ -p 8080 -n”

    This command forces mjpg-streamer to convert into raw into JPEG at (-q) quality 60, at resolution (-r) QVGA, this can be “160×120” for example.  The frame rate is specified by the -f (6).  This method is MUUUUUUUUCH more CPU intensive and you might have to tweak the resolution and frame rate down.

  4. Using a device connected to the router, use a web browser (e.g. Chrome) to connect to the following to get a live view:

    You can also get a single snapshot at:

  5. If you need to play around with the commands, use CTRL-C to kill mjpg-streamer and try again.  Avoid high resolutions (e.g. 1920×1080) as that will just crash the router.  I used 640×480 at 25 frames per second relatively happily on a JPEG enabled camera (e.g. Logitech/Microsoft ones, not the cheap no brand ones).
  6. Once you have a workable set-up, copy the command you have and put it into the local start-up.  Append the command line with an ampersand “&” so it runs in the background.  e.g.

    mjpg_streamer -i “./ -n -r VGA -f 6 -d /dev/video0” -o “./ -p 8080 -n” &

    Hint – In Luci, select the Systems tab, then select Startup, scroll down to the Local Startup section and add your command to the box and press save and apply.

Enjoy? 🙂

Project sneak peek and procrastination

This is a project sneak peek at the LED lamp I am making.  This post is really an excuse to post some random pics and videos, and a way for me to procrastinate and not actually finish the darn thing.

My eyes! My not look at LED array with remaining eye...
My eyes! My eyes…do not look at LED array with remaining eye…

The project is a LED lamp that will be mounted on the wall.  It comprises of 24 LED Strips of 30 LEDs each of which has an integrated WS2811 controller chip that enables individual addressing and 24bit RGB colour.  The strips are driven by a Teensy 3.0, which then subsequently interfaces with a controller board that will do most of the processing.  I hope to have it run games (e.g. Tetris) as well as turn on automatically at night, display the time and temperature and do some other random stuff.

Below is a video testing the display with Tetris…I haven’t drawn the border etc…and the pixels look fugly because it isn’t finished 🙂

The test setup is so crude, I just used scrap washi paper and dumped it directly on-top of the LED array.

Test set-up with scrap washi paper and power supply
Test set-up with scrap washi paper and power supply

I’m still debating on what I should use as a controller for the games.  Waiting on a “DDR mat” from eBay to arrive so I could test that, but I would appreciate any novel ideas people can suggest!

Some more pics after the break 🙂

Continue reading “Project sneak peek and procrastination”

TL-WR703N Example Project 3 : Wireless 3D printing (or 2D printing or just simply wireless USB)

So it has taken me over three months of procrastination of building a USBIP image that will let me connect to my 3D printer wirelessly to actually writing up a tutorial to share it with the world.  This tutorial provides the basics of setting up a fresh TP-Link TL-WR703N image to wirelessly connect a Windows machine to a USB device attached to the router.  I am using primarily using this to connect to my pp3dp Up! printer (only reason this is for Windows…), but I have also tested this method on a USB Logitech webcam and a USB flash disk.

Again, a disclosure is that I am an affiliate to 3D printing systems and that if you’re interested in buying an Up! Plus or Up! Mini and you’re in Australia/New Zealand you should do it via this link 😛

Continue reading “TL-WR703N Example Project 3 : Wireless 3D printing (or 2D printing or just simply wireless USB)”