SILICONE DREAM: Soft Shape Display Device

by jennihutson in Circuits > Raspberry Pi

12777 Views, 50 Favorites, 0 Comments

SILICONE DREAM: Soft Shape Display Device

verygood.JPG
Side_view.png
SILICONE DREAM: Horizontal Display
SILICONE DREAM: Vertical Display

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

  1. Raspberry Pi -- I used the Raspberry Pi 4B 2GB
  2. Raspberry Pi servo hat
  3. AC/DC adaptor to power servo motors
  4. 3D printer and filament -- I used this PETG Filament with both a Bambu and Prusa printer
  5. Servo motors of choice -- I used SunFounder 55g Servos
  6. Frame materials of choice -- I used 1" T-SLOT framing available on McMaster-Carr by the inch
  7. 4x: 30" long of T-Slotted Framing, Single Four Slot Rail, Silver, 1" High x 1" Wide, Solid
  8. 8x: 32" long of T-Slotted Framing, Single Four Slot Rail, Silver, 1" High x 1" Wide, Solid
  9. 4x: 11" long of T-Slotted Framing, Single Four Slot Rail, Silver, 1" High x 1" Wide, Solid
  10. T-SLOT fasteners for frame construction and overall assembly, example links provided:
  11. Corner brackets
  12. M5 Nuts and screws
  13. Top surface material -- I used Ecoflex 00-30 pourable silicone
  14. Silicone pour materials
  15. Kitchen scale to precisely measure A and B parts of silicone solution -- I used this relatively high capacity one
  16. Large bucket to mix in
  17. 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.
  18. Super glue which can bond plastic to plastic
  19. 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
  20. Raspberry Pi attachment screws and standoffs
  21. Jumper wires or electronic wire
  22. Electric drill
  23. 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

6_inch_shaftSTL.png
6_inch_shaft.png
shaft_holderSTL.png
shaft_holder.png
shaftsmoving.gif
  1. 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.
  2. 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.
  3. Print shaft file (6_INCH_SHAFT.stl) on 3D printer. Number of shafts should match number of servo motors.
  4. If using standard sized servos, print enough SHAFT_HOLDER.stl to match shaft number

Assemble Shafts

male_shaft_end.png
shaft_cap_topSTL.png
shaft_cap_femaleSTL.png
shaft_cap_attached.png

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.

  1. Print shaft caps (SHAFT_CAP.stl) for printed shafts
  2. 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

120_mm_gear.png

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.

  1. 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.
  2. Gears can also be modified to fit servo horns which come with servos in order to more securely attach to servos
  3. 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

standard_servo_holderSTL.png
standard_servo_holder_back_rowSTL.png
standard_servo_holder_assembly.png
standard_servo_assembly_back_row.png
standard_servo_holder_on_frame.png
micro_servo_and_shaft_holder.png
micro_servo_assembly.png
FAUULR5M24QO7R8.png

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

servo_holder_assembly.gif
micro_servo_assembly.gif

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

base_frame_drawing.png

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.

  1. 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.
  2. 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.
  3. 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.
  4. Evenly distribute remaining 32" T-SLOT pieces across lower square frame and attach using the same corner L brackets. See diagram for exact measurements.
  5. Set frame legs in protective feet if using.

Attach Shaft Holders

base_frame_with_shaft_holders.png
screwing_on_shaft_holder.gif

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.

Attach Servo Holders

servo_holder_assemblyvid.gif
servo_holders_on_base_assembly.png
FTNAFKRM21VRN0A.png
servos_attached_back_row.png

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

attachingraspiedit.gif
  1. 3D print RASPI_HOUSING.stl
  2. 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
  3. Put the screws into the corresponding holes in the printed Raspberry Pi housing and fasten with nuts

Attach Raspberry Pi Housing

attachinghousingedit.gif

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

mold_pieces.png
mold_pieces_perspective.png
FLKC358M23B79H9.png

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

mold_assembly_drawing.png

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

silicone_pour.png
silicone_peel.png

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

rolling_on_silicone.png
silicone_roll.png
silicone_on_2_sides.png
silicone_fully_attached.png
  1. 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".
  2. Drill 3-5 evenly spaced holes across the top of each aluminum piece which can fit an M5 screw
  3. Attach one aluminum piece to the top of the silicone surface:
  4. Poke small hole into the silicone aligning with the holes in the aluminum piece
  5. 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.
  6. Screw T-Nuts onto the screws to hold the silicone and aluminum together. Do not tighten fully,
  7. Repeat step 3 for the opposite end of the silicone
  8. 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
  9. 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.
  10. 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.
  11. Unroll the silicone so the other metal channel is resting on the opposite frame piece and repeat step 6.
  12. Attach remaining two aluminum pieces to the silicone with the same process -- poking holes, inserting screws, and dropping into place in the frame