The motor is a 12V 100 RPM geared DC motor(often called johnson motors)

The 3D printed parts can be printed entirely in PLA. I printed some parts in ABS to use up material that was lying around. 

The tray attaches to the shaft through a small part which is intentionally made a separate part to allow for adjustment. This attaches to the side panel through two M4x20 screws and nuts. 

The body is attached to the top and base through eight(four on each side) M4x12 countersunk crews that fit into corresponding heat set inserts fixed into the body. 

The bearings are press fit into the shaft. If they are a bit loose, one can adjust the tolerances or glue the outer ring into the housing carefully(avoiding glue spilling into the inner ring of balls. 

The main axel that supports the two piece tray is attached to the pillow block bearings by tightening the set screws on the pillow block that grip onto the shaft. The trays attach to the axel through two M4 x 40 screws and nuts. M4x 35 screws  would be a better option but I didn't have any. 

The side panels are fixed to the tray using hot glue. I did not have time for an elegant solution. Maybe version two would have a better design. I am also a firm believer in the idea (first revealed to me in a dream) that almost every thing that is broken can be fixed with hot glue(except the climate or interpersonal relationships). 

The tray surface is a bit smooth. At some point I am going to print a textured TPU sheet to go on top but for now a piece of rubber sheet or foam works just fine.