Fewer Screws, Better User Experience

A project log for Stack-chan - JavaScript driven super-kawaii robot

An easy-to-build and companion robot for everyone

Shinya IshikawaShinya Ishikawa 11/02/2021 at 17:500 Comments

I was recently impressed by the work of a finalist in "Redefine Robotics". The robot "Tardygrade" is made up of mostly interlocking parts that fit together like a puzzle, and uses very few screws. Stack-chan, on the other hand, uses up to 24 screws in total. I wondered if I could make this a little easier for young hackers who are starting to develop robots.

Such screws...

One part of Stack-chan's exterior that requires a particularly large amount of screwing is the fixing of the servo motors. This was based on the way that humanoid robot kits on the market are fastened, but I figured that for a small body like Stack-chan to have pan-tilt movement, it would not need such a strong fastening. So instead of using screws to fix the servomotor, I decided to use a structure where the servomotor itself is fixed by snapping it into the frame.

The following is the bracket that I improved after more than a dozen attempts.

To make the servo motor snap into place, the claw part of the bracket is shaped like a seat with curved corners, like the Fritz Hansen Seven Chair. This structure makes it possible to open the claw and insert the servo motor without breaking the bracket, even when using a rigid filament such as PLA. This means that the four screw tightening per motor is reduced to zero.

*Note that when printing with FDM, the stacking direction should be perpendicular to the curve.


I have also improved the fixing of the servo horn and shell. The last version used three or more screws, but by adding a hole on the shell side that meshes with the horn's protrusion, it can now be fixed with a single screw.

Now let's compare the old (left) and new (right) Stack-chan.

Through these improvements, I finally able reduced the number of screws tightened from 24 to a minimum of 6!

I included a number of other minor modifications in this version, such as eliminating the gap between the M5Stack and the shell, and making the hole for the Grove connector on the top of the body opt-in (which can be cut out later with nippers). One of the improvements that developers will love is the Lego-compatible holes on the side of the body, as many modules in the M5Stack series use Lego Technic-compatible pins. This hole will also help to fix the official sensor unit. And of course, the Lego bricks!

You can view the STL and STEP data in the GitHub branch, which I will be merging into the main branch soon!