The past two days I have a brain-worm / project idea of building a 3D printer via a wall-mounted 6DOF parallel robot driven by 8 linear drives (i.e. the typical z-axis spindles) mounted in parallel on the wall.

+ That would make the robot over-determined and should avoid any singularities but add extra stiffness
+ Should be able to retract very near the wall when not in use
+ Uses mostly the same building blocks 8 times instead of different mounting methods per axis
+ Able to print in arbitrary 3D paths
- Slicers will not support this out-of-the-box
- I heard there is a thing called "inverse kinematics" and allegedly I need to understand that, OTOH I feel it should be simple to intersect the strut-length induced spheres with the linear drives and that should answer all practical questions.
- Doing this as my first ever CAD project seems a bit overambitious, speaking from the outside perspective.
- I have never built a 3D printer before
- I have never built a robot before
- I have never driven a stepper motor before

Any input/suggestions welcome.

Usable workspace is a lot smaller than I imagined, maybe there are better ways to put those linear drives?

In any case, shoutout to the authors of WeBots, awesome software.

Repository (much undocumented): https://gitli.stratum0.org/Drahflow/parallelprinter

Drahflow / ParallelPrinter · GitLab

GitLab Community Edition

GitLab
So, I ordered a Nema23 stepper, somehow imagining it to be a smidgen bigger than the "normal" steppers. Turns out it's actually 1.2kg and looks extremely eager to turn just about anything.
tfw I assemble the first axle for real and realize the back-wall is pretty much EUR-pallet sized (leaving just 5cm on each side to add the necessary stabilization to keep the print-bed at 90 degree angle).
Turns out it is a bunch harder to get a 1.2m wall stable relative to a horizontal surface, than I anticipated. But after some iterations, I can now pull with my full weight and it'll not perceptibly move.

After carefully tracing the 4 cable colors from the board to the stepper motor, I finally crimped a nice dupont connector. For the JST-XH socket. After having found them most incompatible, I finally crimped a nice JST-XH connector. Turns out I'm not actually that good in carefully tracing 4 colors.

BUT ANYWAY, I now have a working stepper connected and it's looks as if I knew what I was doing.

The endpoint laser beam is extremely finely adjustable (which is good because I need to aim at a 2x2mm sensor over ~1m) in two axes. Less fortunately however is the fact that one of the two axes is the laser diode's optical one.

Just because C doesn't have coroutines doesn't mean I won't use them. (And the machine can now drive to a defined home position.)

https://gitli.stratum0.org/Drahflow/parallelprinter/-/blob/main/firmware/src/homing.c?ref_type=heads#L51

firmware/src/homing.c · main · Drahflow / ParallelPrinter · GitLab

GitLab Community Edition

GitLab
@drahflow nice :) reminds me of when I hacked on FreeRTOS in my university days :)