Glenn's TTW Project

Glenn's TTW Project

by glenn.bogardus | updated April 25, 2016

Create a building set which facilitates building a conceptual understanding of machine code and programming microcontrollers.



In the beginning...

Before I started with this module, I had some thoughts bouncing around in my head.

I knew I wanted to build a kind of construction kit, which would have versatile and creative applications (As Mitch referred to it, "Wide Walls").

Early on I gravitated towards focusing on different types of joints and connectors, as well as using scaffolding pieces - essentially a kind of K'Nex. But added features would include telescoping scaffolds (to allow finer control over length, as well as piston-like movement), and scaffolds which contained conductive rails, so that electronic devices could be mounted through them. 

I've also been thinking a lot more about electronics design in general. I admit to being nearly a novice in this regard, but I got my first taste of micro-controller programming last semester in How to Make (Almost) Anything, and in addition to pursuing my own self-eductation, I wanted to think about how learning about programming in C could be made easier for kids.

For full disclosure, I am also in a class at the Harvard Graduate School of Education, T-581 Advanced Design Studio, where I am working on a group project to build a kind of electronics construction kit. I think in this project I am going to go in quite a different direction, by mixing in more construction-focused components as well as a way of "coding" the micro-controller (in my other class, we presume the code is available for download). But some of these ideas have been inspired by and conceived through conversations with this group, so I must acknowledge Anthony Landek, Daphne Baswanga, Matthew Joe, and Katherine Hashimoto for some creative input!  

April 5, 2016 at 8:35 AM
Comments (0)


Good news is, construction kits and programming for kids are perennially hot topics, and so there are lots of examples to draw from. I expect this list will be expanded with time, and I will include relevant examples, links, and my experience with them, to more fully document my sources of inspiration in this project. 

This being the first week, I am thinking expansively and trying to identify the domains I would like to focus on. As such I might be listing too much to be considered in the process, but keeping in mind the IDEO model, I think it's appropriate to be thinking generatively and expansively at this stage before honing in on a focal point. 


April 5, 2016 at 8:36 AM
Comments (1)
While not exactly what you're going for I through about MakeyMakey (http://www.makeymakey.com/). You mentioned that you want this to be about programming - MakeyMakey provides a super fun / simple physical interface that could make it easier for programs to interact with the real world in a fun / interesting way - removing the need to understand things like understanding capacitive touch sensors and letting you focus on what you then want to do with the input.
8 months ago

[Sidebar, is there a way to make captions for images?]

[Image 1: Grasshopper network I created, which generates the following designs in the next three images]

[Image 2-4: Variations on the design I input in grasshopper, changing the width of the hexagon tiles. These designs were generated by only changing one input parameter in the network, making them nearly effortless to create]

I'm taking another class at the Harvard Graduate School of Design which focuses on using Grasshopper, a "parametric" design tool which is an extension to the popular design software Rhino.

The interface is somewhat unique - rather than designing shapes and forms with explicit geometry (which nearly every design software, including Rhino, does), it allows you to define designs through a kind of programming. 

The grasshopper window looks like an open field, where you place down blocks which carry out functions. They might correspond to commands in Rhino (draw rectangle, extrude, construct line, etc), or they might be mathematical functions or ways of manipulating data. Every block has input and output node(s), and by linking them together, you programmatically lay out how you want the design to be made.

This involves a layer of abstraction and a strong conceptual understanding of the design software, but it allows for designs to be continuously modified and tinkered with. In the example above (which I created), I am experimenting with a kind of tiling design. The only parts I drew in Rhino were an arbitrary closed curve, and a point. The grasshopper network processes these inputs, and uses them to construct a hexagonal grid. The parameters can be modified, so the hexagons change size and position, and if the shape of the curve is modified or the point moved, it also changes the design on the fly. 


While this nodes/networking approach is used here for design software, I also think it could be used for a kind of programming relevant to micro-controllers. By constructing a network which integrates devices (inputs and outputs) as well as functionality of those devices, it might be possible to visually create a network which represents a working device, and then in the final step generate C code which properly programs the micro-controller. 


I certainly have more research to do, but in my preliminary search I stumbled across this blog post about a Kickstarter where someone is trying to create a visual programming format for Arduino. I definitely want to find more examples like this out there and see what I can learn from it. 


April 5, 2016 at 8:36 AM
Comments (0)

Little Bits Main Page

I need to gain more experience with this kit (which I hear will happen this week!), but from my initial impressions Little Bits is a more literal electronics construction kit which facilitates circuit-building through easy-to-connect prefabricated electronics components. 

Major questions I have at this point to be answered:

* To what level is programming integrated into the devices? Is this just about making simple circuits with human-operated switches and inputs, or can finer levels of computer-control be achieved?

* How sophisticated are the components? Are each a single component, or is there a "black box" where there hidden layers of micro-controllers and components which allow the pieces to function?

April 5, 2016 at 8:36 AM
Comments (2)
We will bring in the Starter Kit and the Korg Synthesis kits tomorrow!
9 months ago
I feel that the best thing about little bits is the actual design of the parts. You'll see them, but they are magnets and so intuitively children can experiment based on attraction/repulsion of two pieces and then explore its function.
8 months ago


I've only had one interaction with Mindstorms, but I know that the programming aspect is handled by the large I/O block piece, where users use simple buttons to navigate menu options and change the output signals and input processing. 

I would like to play with this toy more, as well as explore some of the grander applications that can be done with it. Major questions at this point include: 

What are its limits?

What are common complaints about the interface?

Is there a graphical or computer/based way of programming it, or is everything handled on the "brick"?

What is the full range of output and input devices which can be attached to it, and the level of sophistication to which they can be programmed?

What are the specific skills that Mindstorms builds upon? Is it procedural thinking, or are there elements which encourage learners to think about programming in ways similar to micro-controller programming? How sophisticated is this understanding?

April 5, 2016 at 8:39 AM
Comments (3)
There is a great paper by Paulo Blikstein at Stanford that you should check out called, "Computationally Enhanced Toolkits for Children:Historical Review and a Framework for Future Design" that includes a number of great references / background for your project.
9 months ago
We have some Mindstorm kits in LLK if you want to test it out during office hours!
8 months ago

April 5, 2016 at 8:39 AM
Comments (1)
Interesting post- I'm also interested in the visual programming format- I think Scratch and friends have given us new design vocabularies (I'm forgetting the word from the reading- not affordances though.. ;) that also make it easier to do cross - toy/program and help with faster/easier adoption.
8 months ago

A major component of this toy is determining how kids will engage with coding the micro-controller. I would define this as the "ultimate" goal of the project, with the construction elements playing a complementary but subsidiary function.

April 5, 2016 at 9:06 AM
Comments (0)

April 5, 2016 at 9:06 AM
Comments (1)
Do you know about Cubelets? All the programming is on-board in the blocks (I don't think there's any visual programming environment, intentionally): https://www.modrobotics.com/cubelets/?utm_source=SiteNav&utm_medium=NavClick&utm_content=Cubelets&utm_campaign=Cubelets
8 months ago


April 5, 2016 at 9:06 AM
Comments (0)

April 5, 2016 at 9:06 AM
Comments (0)

April 5, 2016 at 9:34 AM
Comments (0)

Scratch's fame has made it the incumbent apotheosis of visual programming for kids, and I think there is a lot that can be learned from this. The intuitive "snap together" blocks as well as the continuously updating viewer, which allows users to see their program working (or not working) in real time allows for instantaneous feedback, which is one reason I think it's a very powerful learning tool. I think my final prototype might attempt to mix elements from Scratch into a Grasshopper-like network. 

Here's my current, very paltry, Scratch Profile

April 5, 2016 at 9:36 AM
Comments (0)

Suddenly, I'm interested in looking into another avenue - molding and casting.

Like with electronics, this is something I first (meaningfully) did in How to Make (Almost) Anything. Mostly this change in heart was inspired by a few random ideas I had, and the desire to make something a little more "hands on" for a final toy (which might make it more appealing and accessible to younger learners). 

I'm sure I'm not the first person to have this idea, so here begins my research.

April 19, 2016 at 9:37 PM
Comments (0)
April 19, 2016 at 10:13 PM
Comments (0)

Resin Casting: This is the kind of casting used by most hobbyists, due to its ease of setup and low equipment requirements. It usually involves mixing two materials (often liquid), which exothermically react and form a solid final product 

Common Thermosetting Resins: Polystyrene, Polyurethane, Epoxy, Acrylic, Silicone, Polyester

Non-resins: Concrete, Plaster, Glass

Plastic Injection Molding [​Engineer Guy]: First off, I love this video (and youtube channel). Injection molding is used for many plastics. While the injection aspect of it is probably overboard for this toy, many of the other details, such as ejector pins and runners/sprues could be part of an at-home kit. 

Sand Casting: I've witnessed this done in How to Make, and today-I-learned this is the most common way of making metal castings on Earth. Using packed sand to make a 2-part mold, hot metal is poured through spure-holes (made with wide dowels). This process is interesting because the mold material can be recycled - the consistency of the sand is that it stays packed. Can a material of similar properties be used making home casts, with different materials?

Compression Molding: Like using play doh molds - put in an amount of material, squeeze it into a mold (with exits for excess material), and then remove the compressed piece. In commercial settings, may use plastics and a heated plate mold. Cannot have undercuts (except on parting line)

April 19, 2016 at 10:17 PM
Comments (0)

Great Overview of terms/techniques I found (documentation from a student comes in handy after all)

Sprue: where liquid is injected into the mold, may leave behind a solid remainder which needs to be broken off (also called a sprue). The part which connects the sprue to the actual mold cavity is the gate, which is often smaller (so it cools fastest and can be broken off).

Ejector Pins: In injection molding, these pins are on the interior side of the casting and push the casting out when it has solidified enough to be removed from the mold.



April 19, 2016 at 10:25 PM
Comments (0)

Silicone Caulk + Dishsoap: Creates a pliable, flexible, silly-putty like material for impressing a cast. It's a catalytic resin, unlike Oomoo or expoxies, which as 50% A and 50% B mixtures. This is just one base material, Silicone Caulk

Oomoo Molds


April 19, 2016 at 11:27 PM
Comments (0)

April 20, 2016 at 9:01 AM
Comments (0)

These are some sketches for main components of the kit

Sheets, Beams, and Joints: These are the 3 integral pieces for making a box to cast the mold in. They are meant to be modular, and provide a secure seal for Oomoo and other viscous liquids.

The sheets are square, or long along one axis. The square sheets are better suited to 3D molds with depth, or creating a stacked, 2-part (or more) mold. The longer sheets are easier to use for 2D casting and many 1-part molds. 

The modular nature of the pieces is meant to enable a greater variety of mold shapes than normal cubic (reducing material waste), and also facilitate the complicated process of making multi-part molds. By making it easy to replicate the mold sizes, it is possible to create molds which closely interlock, making multi-part molds possible.

Spues, End Effector

Ready-made sprue molds would allow easy positioning and creation of spues and gates for filling the mold. The End Effector (which I'm not nuts about in this prototype) serves the purpose of positioning the sprues in 3D space stably. I'd like to find a way which is simpler than the current end-effector, which involves moving parts.


Registers help keep molds which are greater than 1-part aligned. They could either be separate, dowel-like pieces (which are simplest, but might pose a challenge for positioning), or they can be embedded into plates of the mold. These plate registers would be half of the eventual register shape, and users would need to flip their mold between castings.

Ejector Plate

A novel idea - I wanted to see if ejector pins (from injection molding) could be somehow integrated into a resin-casting method, to make extraction easier. I was thinking it would be best accomplished by a large plate, embedded in a normal mold sheet, with a spring-loaded button on the other side. Pushing the button extends the plate and pushes on the mold, and when released in springs back to the sealed position. 

Additional Components Needed

  • 90 bend 4-way joint

April 20, 2016 at 9:12 AM
Comments (0)

The design of the pieces allows regular and irregular shaped boxes to be made. This can more optimally utilize the casting materials available, while also allowing molds to be expanded, as well as disassembled when casting is complete with minimal damage to the mold. 


April 20, 2016 at 9:40 AM
Comments (0)

More ideas, which currently lack sketches/blueprints

Packaging: a medium sized regtangular box, meant to double as a workspace (interior casting space is rigid, washable). Stores all necessary ingredients, has space for extra storage (molds, castings, etc)

Corner Release Mechanism: The joining of the corner joints, the beams, and the plates is going to require a lot of testing and thinking through. The process of making an expandable, sealed mold is the true design challenge of this toy. One alternate idea on the table would be to use a tapered bar for inserting into the corner joints. Removing this bar removes nearly all the tension on the walls, allowing dissassembly. When building the mold, the tapered design would allow pushing the mold until it was "tight", and sealed.

Tightening: Making the mold box is a two part problem - assembly, and sealing. Currently I'm hoping the design will be sealed enough to contain the viscous Oomoo. If it needs to be tighter, each brace could have a peg or stirrup, which could attach to elastic bands which pull the seals shut tighter with minimal obstruction

Tile: Many molds will not require 2 or multi-part molds, and can be done in 1 open-faced mold. The object could either be suspended in the top of the liquid by the end effector, or it can be secured to a base in the bottom. This may require hot-glue (especially for objects buoyant in Oomoo). In order to create a reusable base-plate which also weights the objects, perhaps dense ceramic tiles can be included. They can serve as a glue base, and can tolerate scraping and repeated washing 


April 20, 2016 at 9:49 AM
Comments (0)

In How to Make (Almost) Anything, this was the casting I made. This method is useful for comparison, but must be heavily adapted in order to satisfy an at-home setup without CNC machinery. 

First, I used terrain data from Google Maps, centered over my childhood home in Vermont. Then I used the CNC mill to machine a wax-block with the positive of the terrain. Then I poured an Oomoo negative, and then a final Hydrostone positive.

April 20, 2016 at 9:56 AM
Comments (0)

This initial attempt (modeled in Rhino 5) is not functional, but sought to explore the type of joints that might be possible. The cubic piece is a 6-way corner joint (2x, 2y, 2z), while the longer strut is a 4-way edge joint, and the last piece is a panel. In theory, these could be joined, but the pieces aren't actually possible to create, and there are some overlap issues.

April 25, 2016 at 12:57 PM
Comments (0)

A more functional model, based on the version 1 idea of having 3 components...

  • 6-way corner joint
  • 4-way edge joint
  • Side panels

Unlike the last model, this one is actually geometrically feasible and possible to construct. But I'm still not satisfied. For one, it looks pretty bulky. the edge joints in particular are large columns which dominate the frame of the model. It seems like this would be sturdy against leaks.

One other issue is I have not yet thought about how to join differently sized panels, such as a 1x1 and a 2x2. Still, it's a start.


April 25, 2016 at 1:05 PM
Comments (0)

In the last round, I tried making a snap-together model. I think this version could be successfully made, but it had some problems.

  • The attempts to make 6-way and 4-way joints made the design bulky. 
  • The snap together design is simple, but may not hold the pieces together with enough tension to prevent leaks.
  • Geometry was pretty complex, and many points were sheet-thin, which might weaken the design. 

In this new attempt, I want to do a couple things.

  • ​Find a way to simplify the 6-way and 4-way joints. 
    • This may involve creating bracket like pieces mounted INSIDE the mold, can be 90 degrees and possibly 45 or other increments. 
  • Provide a means to tighten the joints
    • this could be accomplished with a bolt and nut approach, where continual tightening will bring the plates together. 
    • Need to find a way to seal the threads, they cannot get oomoo on them.

April 25, 2016 at 1:12 PM
Comments (0)

After a few more hours, this is what I've come up with. It's still not perfect, but I think it's going in the right direction. Instead of having edge-joints, there are only corner joints (3-way, and 2-way), along with nuts and bolts, which allow the corners to be tightened and can block holes which are not being used. 

Design ideas

  • The corner joints are intended into the surface. This will make the seal tighter while also doing a better job to hold the joint in place.
  • Inside parts of each component are smooth, to prevent oomoo from sticking into cracks and crevices.

Current problems I anticipate

  • Changing all of the nuts will be tedious. Even on this simple open-faced box, there are 32.
  • The cubic shape of the joints may not really allow the walls to be pulled in tightly by the bolts. If they are even a little too big, they will force a gap to remain, rather than the opposite

Ideas for Improvement

  • Redesign the joints to be brackets (L-shaped, etc) rather than cubic, so they take up less space and may remain more flexible. 
  • Alternatively, make the cubes a little on the small side, so there will be no risk of a loose fit.
  • Find a better way to seal unused holes
  • Find a better mechanism for holding the bolts in place than a nut - ideally something which can be secured in about 1 second.
  • Others?

April 25, 2016 at 3:27 PM
Comments (1)
Wow this is neat and looks like it's coming along really well.

Is the idea that someone suspends a toy in the box and fills around it to create a negative of their part?

On a different but somewhat related note, I created a mold out of LEGO for How to Make Almost Anything many years ago and found it to be a pretty easy process: http://buildinprogress.media.mit.edu/projects/33/steps

Could kids reuse pieces they already have to make their molds?
8 months ago