-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Arvinszhang edited this page Apr 14, 2019
·
52 revisions
Welcome to the 2D-Printer wiki!
This project is a realtime writing machine, which enable user to write information remotely. This design controls the movement of the pen on the x and y axes through two stepping motors and the up and down movement of the pen through a servo motor. This Wiki page details how to recreate the machine.

| component | Description | Quantity | Supplier |
|---|---|---|---|
| NEMA-17 | Stepper motor | 2 | onecall MC02060 |
| SG90 | Micro servo motor | 1 | eBay |
| Stepper motor coupler | Flexible shaft couplings 5mm to 8mm stepper motor coupler aluminium alloy joint connector | 2 | Amazon |
| Screw rod | 200mm 3D printer T8-2 8mm lead threaded screw rod linear rail bar shaft | 2 | Amazon |
| Brass nut | Dia 22mm Brass 8mm 4-Start Flange Nut for CNC 3D Printer Rod Lead Screw | 4 | Amazon |
| M8 hexagon nut | Toolcraft Hexagon Nuts DIN 934 Galvanised Steel 8 M8 | 4 | Rapid 51-3428 |
| Stainless steel solid rod | 250mm*5mm | 2 | |
| Type ①②③④ acrylic board | The corresponding size and quantity can be found in datasheet | 10 |
| component | Description | Quantity | Supplier |
|---|---|---|---|
| L293DNE | Quadruple high current half-H driver | 2 | onecall 1470423 |
| CTB0500/2 | 2 way 14 A low profile interlocking terminal block | 5 | Rapid 21-1540 |
| CTB0500/3 | 3 way 14A low profile interlocking terminal block | 1 | Rapid 21-1545 |
| M20-6102045 | 2.54mm pitch PC/104 40 connectors | 1 | Farnell 1569230 |
| 10ML100MEFC6.3X5 | Electrolytic Capacitor, Miniature, 100 µF, 10 V, ML Series, ± 20%, Radial Leaded, 6.3 mm | 1 | Farnell 8126160 |
| Servo Motor Control | Motor Driver Board Control | Stepper Motor Control | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|

This 83mm*75mm double sided PCB is manufactured at University of Glasgow. There has some difficulties in the soldering process. All the files required to recreate this PCB can be found in PCB design folder of this repository.
- In this design, different motor driving threads are triggered by the comparison result of current coordinates and previous coordinates. This method minimizes system latency. But each thread requires 40ms runtime. During this time, the comparison of the coordinates is still in progress, but the motor is not driven. This means that the effective coordinates sampling interval is 40ms. During this interval, the mouse moves too fast or too slow will cause the pattern on the screen to be different from the pattern on the paper.
- In the future improvement, there are two kinds of schemes to consider:
- limit the moving speed of the mouse or increase the driving voltage so that the mouse moving speed can match the stepper motor speed.
- Rewrite the code architecture. By storing the coordinates value to simulate the mouse move path. Then control the motor. This approach has a huge impact on real time and brings higher latency.
- limit the moving speed of the mouse or increase the driving voltage so that the mouse moving speed can match the stepper motor speed.
- This design uses 9V battery power supply, during actual operation, the battery voltage reduces very fast. The voltage drop has a great effect on the operation of the printer. In the subsequent designs, the addition of a voltage regulator module will be considered and the circuit should be improved to help the program dive the motor.
- The current structure of the pen holder cannot guarantee the writing quality. The writing quality is highly dependent on the level of desktop flatness. Future improvements in the holder structure is needed.
- In the future, bearings can be used to stabilize the screw rods to reduce the swing of the rods and make the operation of the motors more stable
- Wei Zhang - Hardware and software designer
- Honghao Wang - Researcher and film editor
- Huanyu Zhang - GitHub maintainer and material purchaser
