BOXOI - an Open Source Miniature 3D Zoetrope DIY Kit




Introduction: BOXOI - an Open Source Miniature 3D Zoetrope DIY Kit

Project Background: In 2015, I started a kickstarter project of a miniature 3D zoetrope DIY kit. The next year, I started the version 2 of said project by further simplifying the kit and reducing its manufacturing cost. Sadly, both crowdfunding failed, but this is how the 3D zoetrope looks.

*Zoetrope: a 19th-century optical toy consisting of a cylinder with a series of pictures on the inner surface that, when viewed through slits with the cylinder rotating, give an impression of continuous motion. ---Definitions from Oxford languages

The original idea was to make a low-cost 3D zoetrope for personal collection, that does not take much space at home, and does not collect dust easily. I made it into wooden puzzles to get rid of molding, painting, and assembly cost. Then I further simplify the assembly to make it a suitable science project for kids.

Purpose of this instructable: To make easy-to-biuild personal 3D zoetropes

For makers who want to build one for fun or for educational purposes, here you'll find files needed as well as source files for modification purposes. If you have better solutions to make it more maker friendly, please feel free to improve my design and share with others.

For professionals who shares my view to make it a suitable science project for kids or companies interested in making this a product, feel free to take and modify any materials that I provide here for commercial purposes.

For others who simply found this project interesting, please share this link with your friends.

Step 1: Step 1: Prepare the Wooden Puzzles

You can choose to either laser cut (and engrave) or 3d print the puzzles. Grooves/Slots in this design are 2.8mm in width, which is not too tight nor too loose for 3mm thick plywood sheets. I have not personally laser cut this one, and DXF files generated from Inkscape tend to be in wrong scales, so be sure to check scale before you cut.

For 3D printing, you'll need a printer that can handle at least 185mm x 185mm. The 5 stl files are set to be 2.6mm thick because plastic printouts are harder than plywood sheets and inner cavities tend to be printed smaller. It may be a good idea to print a few pieces for testing then make adjustments to the thickness accordingly before you proceed to print the whole kit. I divided parts into 6 plates, 2 x plate 5-2 are required.

For people who do not prefer to spend the efforts to build the PCBA, I added a BOXOI2-Lite at the end of this instructable. However, here is the catch, you'll need a good (maybe high-end) smartphone with a strobe light app as a substitute for the LEDs controlled by the PCBA. I personally tried this with my Nokia 3.1. Although the app is set to lit the LED for less than 1ms per (flash) cycle. My phone simply can't catch up. The result is a blurry animation.

Step 2: Step 2: Prepare the PCBA

I'm not good with circuit design and programming, the plan was to demonstrate, get funding, then hire someone to redesign the circuit, use cheaper parts (attiny85 may be an overkill for this project), and rewrite the code. My apologies if the schematic and code look ugly.

All parts used in my circuit except for si2302 are THT parts, I think it'll be more maker friendly and the parts are easier to get. I do think si2303 is very difficult to solder on a perfboard, but it's doable. They are needed to handle higher current for the TT motor and LEDs, they also cause less voltage drop. You may replace these with other compatible THT mosfets, but the ones I found are too big and kinda overkill.

You can export BOM from the Fritzing file for shopping purpose. I can't find TCRT5000 in Fritzing, so I use a phototransistor and an ir led to make footprint. Please ignore these two parts and find a TCRT5000 instead.

If you want to build this circuit on a perfboard (I tested it on a 5x7 cm board), be sure to measure the position for TCRT5000 before you start soldering. As shown in the photo above, there's little tolerance under the platform for such big PCB, and the TCRT5000 has to go through a square hole on the platform. An easier approach is to make a TCRT5000 breakout board.

After the PCBA is completed, run Arduino and upload the sketch with ICSP. If you have no clue what this means, check online for tutorials about "programming stand alone Attiny85 with Arduino using ICSP". You can also upload the sketch using a breadboard if you don't have an AVR programmer. In that case, use a 8 pin socket instead of soldering Attiny85 on your PCB will be a good idea.

Step 3: Step 3: Prepare Other Electric Parts, Nuts, and Bolts

  1. One TT motor (3~6V, reduction ratio 1:48; ) - BOXOI runs roughly about 12 fps frame rate. So we need this motor to run 2~3 rps. (120~180 rpm)
  2. One B type 15mm shaft potentiometer 100K ohm

  3. One cap for the potentiometer (optional)

  4. One 2 pins push button switch (red, m7)

  5. One battery box (AA*3)
  6. LED x2 (either build PCBA versions with LED module 01.fzz or buy the 1W LEDs with aluminum plates)
  7. m3 x25mm hex bolts and nuts x4 sets
  8. PP round spacer φ5x 6~7mm(L) x2 (or make 2 with a 3D printer using the round spacer.stl)
  9. Some double sided foam tape to attach battery box and PCBA to the platform
  10. One O-shape PET sticker (or replace this with some packaging tape)
  11. Some wires with connectors

* Wires with connectors are to be solders to item 1,2,4,5,6.

Step 4: Step 4: Build a Blank Play Disk

If the disk is 3D printed or laser cut without engraving, a piece of dark duct tape will do the trick.The dark stripe doesn't have to be as wide as shown, about 1cm will do.

Step 5: Step 5: Make the Ponies

  1. Find yourself 3 parts with the same number, and 2 M-shaped puzzles
  2. All markings point forward (All numbers are closer to the tail)
  3. The markings on the leg parts are on the outside
  4. Finish all 6 ponies

Step 6: Step 6: Finish the Playdisk

Arrange all ponies on the disk in counter-clockwise order as shown above.

Step 7: Step 7: Build the Platform 1/4

Assemble the platform with m3 nuts, bolts, and the spacers.

Step 8: Step 8:Build the Platform 2/4

Add the push button, potentiometer, and cap for the potentiometer.

Secure the motor with m3 hex nuts and bolts

Step 9: Step 9: Build the Platform 3/4

Use some double-sided foam tape to attach battery box and PCBA to the platform. Make sure TCRT5000 sensor goes through the rectangle hole on the platform.

Step 10: Step 10: Build the Platform 4/4

Attach the o-shaped PET sticker on top of the platform. This is used to reduce friction. You can replace it with Scotch tape as shown in the photo.

Step 11: Step 11: Build the LED Stands

Step 12: Step 12: Connect Parts to PCBA 1/2

Connect push button to pwrsw, no polarity on this one.

Connect potentiometer to pot. Make sure to connect the middle wire to the middle of the connector. Don't worry about the polarity at this stage. When your machine is completed and running, if you turn the knob to make ponies run faster, but they run slower instead, reverse the connection will fix it.

Step 13: Step 13: Connect Parts to PCBA 2/2

Connect battery box to BATT, make sure red wire goes to the connector marked +, and black wire goes to -.

Connect LED modules to LED1/LED2, same as above.

Connect the motor to MOTOR (the motor should turn clockwise if you observe from the top of platform, reverse this connection if it goes counter-clockwisely.)

Step 14: Step 14: Put Play Disk on Top of the Platform

Put Play disk on Top of the Platform and your BOXOI2 is finished.

  1. Hit the button, the disk will start to spin at full speed;
  2. If stalled, or no play disk attached, system will shut down in a few seconds;
  3. LEDs will start to flash when the disk is tuned to the right speed in a few seconds;
  4. Dim the lights, and ponies will be animated;
  5. Turn the knob to the right to make ponies run faster;
  6. Press the button for a second and release if you want to force stop the system;
  7. If not force stopped, ponies will run for 40 secs, then spurt for 5 secs and stop.

Step 15: Appendix 1: Some Other Files and Links

Can't call it BOXOI without a box, BOX_V7 is the Inkscape file for my box design, you can change pictures and make your own design. With this box, the 3D zoetrope animations can be observed without dimming ambient light and it helps to keep your 3D zoetrope clean from dusts.

The F3Z file is an archived Autodesk Fusion 360 project file. I rebuilt a whole 3D model of BOXOI so that I can make more detailed assembly instructions. The model for 3D printout plates is also included.

You can try to make different play disks like the videos below. Instructions and files links are in the youtube video descriptions. So, go build one and share your videos.

Step 16: Appendix 2: BOXOI2-Lite for People Who Want to Skip the PCBA Building Part

For people who does not want to go through collecting parts and making PCBA, or teachers who just want to show school kids the science behind animations, a smartphone with a strobe light app can be a good substitute for the PCBA & LED stands. There's however a catch, a cheaper phone may not be able to handle a clean 1ms-on strobe light. Mine doesn't and gives a quite blurry animation.

Be the First to Share


    • Space Contest

      Space Contest
    • Tinkercad Student Design Contest

      Tinkercad Student Design Contest
    • Audio Challenge

      Audio Challenge



    Question 4 months ago on Step 2

    Do you have the schematic ? Because
    I don't know what resistor to use and all the other value (component) ? I would love to build this


    Reply 3 months ago

    Sorry for my late reply. (I don't regularly check my instructables, so...) If you go download the program "Fritzing" and open the fzz file that I provided, you'd be able to read the schematic, export the bill of material (that indicates parts on each spot), and even export gerber files to make PCBs online.
    You can check the following page to get Fritzing for free.


    Reply 23 days ago

    Do you mind post up the schematic below ? Because I'm try to see what's the value for each component. Please, because I been having problem with fritzing site.


    Answer 3 months ago

    I cant open the LED module 1 file


    Question 1 year ago

    It would probably help if you started by telling us what a Zeliotrope is ?


    Answer 1 year ago

    Right, I'll check if that's any easy and clear explanation about this term and try to add it in the start. Thanks mate.


    1 year ago

    This is an awesome project - thank you for sharing! :D


    Reply 1 year ago

    Your comment just made my day. Thanks mate! : )