SILICONE DREAM: Soft Shape Display Device
by jennihutson in Circuits > Raspberry Pi
12777 Views, 50 Favorites, 0 Comments
SILICONE DREAM: Soft Shape Display Device
This Instructable documents the physical build process for the first iteration of SILICONE DREAM: a soft shape display device. SILICONE DREAM is a 2.5D shape display which uses 16 vertical pins powered by 16 servo motors to actuate a soft silicone sheet to display data in real time. SILICONE DREAM utilizes a silicone top layer over a grid of actuator controlled shafts in order to interpolate between data values without added design complexity. The device is powered by a Raspberry Pi, and custom applications can be written in order to translate realtime data to the movement of the device. Please refer to the GitHub page for the SILICONE DREAM library for software instructions: https://github.com/sonofahutmaker/softshapedisplay/tree/main.
This set of instructions documents the first build of SILICONE DREAM, but the logic is designed to be agnostic to design--these instructions can be a jumping off point to imagine different shape displays that use different materials and at different scales. Instructions and print files are available for both standard and micro-sized servo motors in this document. Standard size is recommended.
SILICONE DREAM functions as a kinetic sculptural object which can be positioned either horizontally or vertically and has been designed for live collaboration with performing artists and as a self-contained system for generating changing 3D shapes. Because the SILICONE DREAM system is modular, it can easily expand to incorporate other forms of media such as screen-based visuals and generative audio. SILICONE DREAM is controlled by an embedded system with custom software, and contributes a generalizable system for future shape display design for both artistic and scientific use cases.
Supplies
- Raspberry Pi -- I used the Raspberry Pi 4B 2GB
- Raspberry Pi servo hat
- AC/DC adaptor to power servo motors
- 3D printer and filament -- I used this PETG Filament with both a Bambu and Prusa printer
- Servo motors of choice -- I used SunFounder 55g Servos
- Frame materials of choice -- I used 1" T-SLOT framing available on McMaster-Carr by the inch
- 4x: 30" long of T-Slotted Framing, Single Four Slot Rail, Silver, 1" High x 1" Wide, Solid
- 8x: 32" long of T-Slotted Framing, Single Four Slot Rail, Silver, 1" High x 1" Wide, Solid
- 4x: 11" long of T-Slotted Framing, Single Four Slot Rail, Silver, 1" High x 1" Wide, Solid
- T-SLOT fasteners for frame construction and overall assembly, example links provided:
- Corner brackets
- M5 Nuts and screws
- Top surface material -- I used Ecoflex 00-30 pourable silicone
- Silicone pour materials
- Kitchen scale to precisely measure A and B parts of silicone solution -- I used this relatively high capacity one
- Large bucket to mix in
- Optional Monster Clay to fill rough or imperfect mold areas. If you opt for different clay make sure it will not affect silicone as it cures.
- Super glue which can bond plastic to plastic
- Aluminum frame pieces to attach silicone surface to frame: I used Multipurpose 6061 Aluminum 90 Degree Angle with Round Edge, 1/16" Thickness, 1" outside height in 3' long from McMaster-Carr, which I manually cut to size
- Raspberry Pi attachment screws and standoffs
- Jumper wires or electronic wire
- Electric drill
- Optional zip ties and electric tape
Build files: Find all build files including STL files for 3D printing and Fusion 360 design files here: https://github.com/sonofahutmaker/softshapedisplay/tree/main/build_files. Some have also been linked in individual steps, but all larger files are only in this folder.
Print Shafts
- Decide on total length desired for shafts: this represents the total height difference your shape display will be able to render + shaft holder height. 6_INCH_SHAFT Fusion and STL files provided allow for 6" of total extension with the matching shaft holder in SHAFT_HOLDER.STL.
- Modify 6_INCH_SHAFT file if needed to match desired height. I recommend cutting off or extending length rather than scaling to reduce changes needed to other design files.
- Print shaft file (6_INCH_SHAFT.stl) on 3D printer. Number of shafts should match number of servo motors.
- If using standard sized servos, print enough SHAFT_HOLDER.stl to match shaft number
Assemble Shafts
The shafts are designed to attach to silicone surface with corresponding SHAFT_CAP.stl pieces. If you are opting for a different surface design, consider how shaft caps may need to be redesigned to allow shafts to move the surface up and down.
- Print shaft caps (SHAFT_CAP.stl) for printed shafts
- Attach caps to shafts using superglue, press fitting the corresponding pieces together. The round male end of the shaft fits into the round female slot in the shaft cap piece.
Downloads
Print Gears
If utilizing standard servos (recommended) rather than continuous rotation servos, gear size must correspond to shaft length. 120_MM_GEAR.stl corresponds to 6" shafts and with servos with 180 degree rotation range.
- Adjust gear size, if needed. For instance, if your servos only have 90 degree rotation range, gear design will need to be twice as large to move a shaft the same distance as gears designed for 180 degree servos. The converse is also true. Consider the overall impact your changes will have on the design, including on servo holder design and resulting greater or lesser torque required to move the shafts as servo motor distance increases or decreases to the shaft it is moving.
- Gears can also be modified to fit servo horns which come with servos in order to more securely attach to servos
- Print gears for each servo motor
If utilizing continuous rotation servos, gear size does not greatly affect total shaft extension. 20_MM_GEAR.stl can be used for micro continuous rotation servos.
Print Servo Holders
If using standard sized servos, 3D print STANDARD_SERVO_HOLDER.stl and STANDARD_SERVO_HOLDER_BACK_ROW.stl as needed to fit overall frame spacing. In the original design, 12/16 servos utilized the standard servo holders and 4/16 used the back row holders to fit the spacing from top bars to the edge of the frame.
Servo holder design should be modified to fit your specific frame design, and may need to be adjusted slightly to fit different standard servos than the ones linked in the materials section.
If using micro servos, 3D print MICRO_SERVO_AND_SHAFT_HOLDER.stl for all servos. Adjustments may need to be made to properly fit different micro servos.
Assemble Servos Into Holders
Fasten servos into printed servo holders using included screws and spaces that come with the servos. Pay attention to orientation so gears properly align with shafts.
Attach gears to servos. If you have modified the gears to incorporate included servo horns, super glue horns into place. Screw through middle of gear into servo gear with included short screw. Add superglue and optionally use longer screws for more secure hold.
(Optional) Print Protective Feet for Frame
In order to protect the surface you work on from being scratched by the T-SLOT legs of the frame, print 4 copies of FOOT_CAP.stl (for 1" T-SLOT). I printed these out of TPU for a softer material, but PETG or PLA can also work.
Assemble Frame
Assemble T-SLOT frame base. Measurements can be seen in the diagram attached to this step and referred to in Fusion file MOTOR_FRAME_ASSEMBLY.f3z. For the original build, follow these steps. Note that if changing scale, you may need to obtain T-SLOT or alternative material in different sizes. T-SLOT comes in variable sizes so the design should scale easily.
- Use corner brackets to attach 11" T-SLOT pieces to longer T-SLOT pieces, forming a square. The longer pieces (32") should be across from each other with the shorter pieces sandwiched in between. The top of the 11" pieces should be flush with the top of the square formed by the longer pieces.
- 3 inches from the bottom of the T-SLOT square, further along the 11" T-SLOT piece, attach a second T-SLOT square of 32" and 30" pieces in the same manner.
- Stand frame up on the 11" legs so that the first assembled square is at the top of the frame and the second assembled square is below it.
- Evenly distribute remaining 32" T-SLOT pieces across lower square frame and attach using the same corner L brackets. See diagram for exact measurements.
- Set frame legs in protective feet if using.
Downloads
Attach Shaft Holders
Using M5 slot nuts, 10mm screws, and one washer, attach shaft holders to cross bars of frame. Insert the screw into the washer, then insert screw through the printed shaft holder front holes to connect with a nut lodged inside the T-SLOT bar. The washer should rest inside the indentation in the printed shaft holders.
Refer to attached diagram for measurements of original attachment points. These should be attached wherever you want a "pixel" (moving shaft) of the shape display to be located, typically evenly spaced across the surface of the shape display.
If you find that it is in the way, the top square of the frame can be removed to make this process easier, and these pieces easily reattached later onto the frame using the same corner braces. Alternatively, you can loosen the corner braces attaching the top square to the legs and slide this part of the frame down onto the cross beams for easier reach. Later, it can be re-slid to correct position and refastened.
Do not yet insert shafts, as the frame will need to be turned over at a later step.
Downloads
Attach Servo Holders
This step is necessary if you are using standard sized servos.
Your servo holders should already be assembled with servos inside and gears attached.
Right next to shaft holders (to the left, if facing front side of shaft holders) attach servo holders in the same manner using screws, washers, and nuts. Directly underneath the left wing of the shaft holder, the servo holder will screw into the underside of the T-SLOT bar. The other side of the servo holder screws into the T-SLOT bar directly across from it. The back row of holders, which do not face another crossbar, screw into the side of the frame.
You may test alignment by temporarily inserting shafts into the shaft holders. The shafts should mesh with the gears on attached to the servos so that the gear can move the shaft.
Raspberry Pi Housing
- 3D print RASPI_HOUSING.stl
- Attach servo hat to the top of the Raspberry Pi using spacers with screws, with screws from the spacers poking out at the bottom of Raspberry Pi
- Put the screws into the corresponding holes in the printed Raspberry Pi housing and fasten with nuts
Attach Raspberry Pi Housing
Remove any loose parts on the frame -- i.e. shafts -- and turn the frame over so that the underside of the cross bars is exposed. The servo holders should now be standing straight up in the air.
In the center of the frame, in between servo holders, screw in the Raspberry Pi housing to the T-SLOT cross bars. If you have repositioned your servo holders and shafts, Raspberry Pi housing may need to be resized.
Route Servo Wires to Raspberry Pi
Route wires from servos to servo hat on the Raspberry Pi, referring to the manufacturer's guide. Depending on positioning, you will need to extend the cables either with jumper cables or by soldering to longer electronic wires. You can route the wires in the T-SLOT itself and along servo holder arms, attaching using zip ties or electric tape.
For neatness, the cables can be affixed using zip ties to the prongs which protrude from the printed Raspberry Pi housing.
Plug in the AC/DC adaptor to the servo hat to power the servos, and the Raspberry Pi to its own power source. If not headlessly connecting to the Raspberry Pi, connect a monitor, keyboard, and mouse to the Raspberry Pi for testing.
Test Your Application
Now is a great time to test your application with the servos. Turn the frame back over and insert shafts into shaft holders so that they mesh with gears.
Refer to sample applications and documentation available on GitHub to ensure that your logic is working with the physical pieces as expected. I recommend testing each servo one by one with the top and bottom of your data range, to see if your shafts extend all the way up and all the way down as expected.
Print Silicone Mold Pieces
The top surface of the shape display may be a good opportunity for customization, and materials could be swapped to switch from a silicone surface to other soft materials, like fabric. This may be helpful for prototyping as well. However, the following instructions explain how to make the original silicone surface.
Print all pieces in the 30INCH_TOP_MOLD_FOR_PRINT pieces. These 16 pieces compose the entirety of the 30" mold, broken up into pieces designed to be printable on a Bambu printer. They are labeled by their x,y coordinates for assembly, i.e. 0_0.stl goes in the top left corner and 3_3.stl in the bottom right.
30INCH_TOP_MOLD_WITH_LIP.f3z contains a model of the final silicone which results from the mold and the mold itself, broken into pieces. Here you may resize or recut pieces to fit your specific printer.
Note that the mold is large and will require considerable print time to print the entire thing, you may want to start this process earlier in the project to be able to print during printer downtime. If your printer has a smaller bed size, you may need to break up pieces further.
Print shaft heads for the mold: 16 copies of MOLD_CAP.stl. These provide a space for the shaft heads to attach to the silicone when assembled onto the frame. Note this is not the same file as for shaft caps. MOLD_CAP is smaller, to allow for a tight fit of the silicone to the shafts when assembled.
Make Silicone Mold Watertight
I would recommend doing a smaller scale silicone test before pouring the final surface, as it requires about 10lbs of silicone.
First ensure the mold is watertight. Glue mold pieces together with superglue and clamp together while it sets. See diagram for where to place printed pieces to form a square.
Let dry for the required amount of time. On the bottom side, tape seams with packing tape for safety. If you notice gaps in the seams on the top side of the mold, after glueing you can fill them by smoothing Monster Clay into the gaps. The surface of the mold does not need to be completely perfect beyond being watertight, as the surface of the mold will correspond to the bottom side of the silicone.
Test seal by pouring water into the mold to see if it holds.
Glue shaft heads (MOLD_CAP.stl) to mold. Just like shaft assembly, use super glue and press fit into the connector points evenly spaced in the mold (in the large hexagon spaces).
Pour Silicone
The final mold requires 10.4lb of Ecoflex 00-30 silicone. Measure and mix parts A and B in equal parts in a large bucket according to package instructions. Carefully pour into the mold, trying for a level pour without spilling. Leave to set according to package instructions.
Unmold by simply peeling the cured silicone off
Attach Silicone to Frame
- If needed, cut 4 aluminum L channel pieces to fit the sides of the frame. I cut 3ft pieces using a hand saw at 45 degree angles to 32".
- Drill 3-5 evenly spaced holes across the top of each aluminum piece which can fit an M5 screw
- Attach one aluminum piece to the top of the silicone surface:
- Poke small hole into the silicone aligning with the holes in the aluminum piece
- Put a screw through the aluminum and silicone -- make sure the screw is long enough to go through aluminum and silicone, and still long enough for a nut to screw on under the lip of T-SLOT. I found 10-12mm was necessary.
- Screw T-Nuts onto the screws to hold the silicone and aluminum together. Do not tighten fully,
- Repeat step 3 for the opposite end of the silicone
- Now the silicone can be rolled up with one aluminum piece in the middle and transported to the frame. Do this and set one end on the frame
- Insert the T-Nuts into T-SLOT from above, then tighten by hand so they catch against the inside of the T-SLOT channels. If some are more difficult to catch, you can remove these nuts and instead insert sliding nuts into the T-SLOT channels and line up the screws so they can be screwed in.
- Unroll the silicone. As you go, insert the shaft heads into the slots in the silicone designed for them. The silicone can stretch over the shaft heads and then hold them firmly.
- Unroll the silicone so the other metal channel is resting on the opposite frame piece and repeat step 6.
- Attach remaining two aluminum pieces to the silicone with the same process -- poking holes, inserting screws, and dropping into place in the frame