Some time ago I got a bit nostalgic about a pen plotter from 80's called Alfigraf. It was produced in Czechoslovakia and based mainly on parts of a construction kit called Merkur (fun fact - first contact lenses were created using machine built from Merkur). Long story short, first I built the plotter using Merkur parts and then I decided to make a design for 3D printing so I could put the Merkur parts back to the box.
Short video with the plotter in action is here on youtube.
It turned out to be quite simple and compact design using only parts that are printable or they can be easily bought on ebay/aliexpress together with your local DIY shop for all the metal parts.
The steppers are NEMA17 (17HS2408) drived by TI DRV8825 and controlled by grbl running on ARM Cortex M3. The pen-up mechanism is using a 5V solenoid with a solenoid driver that is reducing its consumption by applying full voltage only for the pen hit and then dropping to 0.5V just to keep the pen up. I tried using a servo but somehow I had a better experience with a solenoid. Both solutions have their pros and cons...
As a Gcode controller I used STM32F3 based board that can be cheaply bought online and its dimensions fit nicely with the plotter design. Useful information about the board is here.
The Gcode controller firmware is a port of grbl made for this particular MCU. It's repository is here on github.
I used SolveSpace for designing as I don't know any other 3D modelling tool. I know that to some it may appear a bit cumbersome but I like its simplicity. I used version built from latest git repository and cannot guarantee that it's fully compatible with the prebuilt version available in their download section. So if anyone wants to play with my design or reuse it, the latest version of SolveSpace may be required.
The git repository with the model sources are here on github.
PUBLISHING IN PROGRESS...
Step-by-step pictures to give a basic idea on how to assemble the plotter. The names of parts are the same as for STL files.
The carriage with a pen lift mechanism. The 4mm metal rods are used as rails for the pen mount. They must fit perfectly in their sockets. It helped me to put them in a freezer for a while before puttng them in place. I will describe the solenoid and how it's controlled later in "Pen Lift Mechanism" section.
X axis, I forgot to check a seam postion on the right wall so I ended up with a nasty scratch on the top
The carriage now should move freely. Some little stiffness is ok as long as it's nothing the stepper would have problems to move with especially during beginning of the acceleration phase. What I noticed that sometimes it helps to rotate the shafts and find a position where the stiffness is as desired.
I had no problems with this fixing method. It may be harder to install than using screws but makes things easier spacewise.
The rod is 4mm in diameter. Here it's copper but anything that's hard enough and won't bend is ok.
you can get for for example here - https://www.aliexpress.com/item/3D-Printer-Aluminum-GT2-3mm-Bore-Timing-Idler-Pulley-with-Ball-Bearings-for-6mm-Timing-Belt/32817045858.html
Here the golden stripe on the printing surface is meant to cushion the pen movement as the pen goes down and also to create a better drawing surface for the pen. It's cut from a chocalate box, anything like this will do.
If the bearings are not fixed properly and move you can use something like a scotch tape to fill the gap.
The captive nut system used to fix the pen. It's a good idea to put something on the bolt tip so it doesn't carve into the pen.
For lifting a pen I used a solenoid. I did some tests also with a servo but I ended up using a solenoid for various reasons. Mainly I like the robustness of the solution using only DC voltage compared to PWM control. Also cheap servos tend to wear out quite quickly, which isn't really a problem given the price but in situations like printing bigger graphics/texts there can be hundreds of up-down pen movements and you never know when the moment that spoils your lengthy print comes. Then I experienced some problems with interference from the steppers causing issues with PWM control at higher speeds. If I had more time maybe I'd played more with it, because I'm also aware of benefits the servo solution has, mainly speed control of the down pen movement and no need for solenoid driver.
I bought this 3-6V solenoid that works fine, however, later I realized 12V version would be more convenient as I used 12V power supply to drive the stepper motor. Thus I had to use a voltage stabilizer to get 5V from 12V. I only had LM7805 which isn't the most efficient solution (a buck convertor would be a better option) but you know...it works.
Here is an online simulation of the circuit that nicely explains the circuit behaviour. For simplicity the solenoid is represented by its resistance only (R1 in the circuit below) and the simulation is missing the flyback diode D1. Except these details it's exactly the same circuit as in the circuit below.
||This is the actual solenoid described by its resistance only (I know...)
||47 Ω 2W
||This makes a voltage divider to drop the voltage on the solenoid after the leading voltage peak
||To set the base current of T2
||Together with C1 it makes an RC timing circuit to drive the T1 mosfet
||To limit the current through D2 when discharging C1 at the beginning of the off state
||Flyback diode to protect the circuit from the solenoid
||To discharge C1 when turnign off the solenoid by applying ground to the signal pin
||To drive the solenoid at its highest peak voltage
||To drive the solenoid at about 1/10th of its peak voltage after T1 closes
The values I used varies from the linked simulation, mainly to have different RC constant. It's mostly based on values I could find at home and are close to theoretical ones. One should experiment with the values for RC time constant or the voltage divider for the solenoid that depends on the actual solenoid you are going to use. It's a simple circuit so there should be no problems.
The solenoid driver switching sample that shows the voltage drop according to the RC time constant.
This diagram shows the output without the discharge circuit made with D2 and R5. It's here just to explain its importance. Without it the C1 wouldn't be fully discharged when doing fast consecutive solenoid switching, which would lead to insufficient solenoid voltage due to low voltage on the MOSFET gate.
Final connection on a universal PCB. The upper part is the 7805 voltage stabiliser.