o p e n . s o u r c e . h a r d w a r e¶
i d e a t i o n¶
During Machine Building Week in Fab Academy 2023 at Fab Lab Armenia, our team embarked on creating a CNC pen plotter named "Մեսրոպ Mesrop," inspired by Mesrop Mashtots, the inventor of the Armenian alphabet. The machine features a CoreXY mechanism, a design known for its precision and efficiency in moving along the X and Y axes. The project began with dismantling a Canon printing station to salvage components like stepper motors, bearings, and sensors, emphasizing sustainability and resourcefulness. These upcycled parts formed the foundation of our machine, blending innovation with environmental consciousness. Using the newly arrived CR30 3D printer, we produced essential components, including a long, movable axis that couldn’t be printed on standard 3D printers. The process involved iterative problem-solving and teamwork, from assembling aluminum profiles to integrating printed pulleys and bearings.
Adapting an Arduino CNC shield and modifying GRBL firmware allowed us to control the CoreXY movements of the pen plotter with precision. By replacing the Z-axis motor with a servo motor, we customized the machine for drawing tasks. The assembly tested our skills in mechanical design, electronics, and software configuration, resulting in a functional and versatile CNC. This experience not only enhanced our technical expertise but also highlighted the power of collaboration and sustainability in digital fabrication, leaving us with a deeper appreciation for the creative potential of upcycled resources.
For Fabricademy’s Open Source Hardware Week, we decided to hack our machine, improve its design, and add more functionality to work with textiles and flexible materials. The machine’s mechanism is based on CoreXY, which offers precision and speed, making it ideal for creative and intricate applications.
a b o u t . c o r e X Y¶
CoreXY is a motion control system designed for two-dimensional movement, often used in CNC machines and 3D printers. It relies on a unique belt-driven mechanism where two motors work together to control the X and Y axes. Instead of having a motor dedicated to each axis, CoreXY uses belts and pulleys to translate motor rotation into linear movement. This interconnected design enables precise control, with coordinated motor movements allowing for straight, diagonal, and curved paths.
What sets CoreXY apart is its efficiency and stability. Because the motors remain stationary, the moving components are lighter, reducing inertia and enabling faster and more accurate movements. This design also minimizes vibrations and wear, making it a reliable choice for projects that demand fine detail and consistent performance. Its simplicity, coupled with its high performance, has made CoreXY a popular choice in the maker community for applications ranging from 3D printing to fabric manipulation.
a s s e m b l y¶
All assemblies start with disassembly. The CNC "Mesrop" was a prototype, and we needed to modify many parts to improve it. We began by disassembling the machine to evaluate which components could be improved. We decided to redesign the stepper motor holders to make them easier to replace in case of design changes or motor upgrades. Additionally, we opted to add a belt system because the extruder for the new machine we are developing is heavier, and the tension provided by a cord was not sufficient to meet our needs.
p u l l e y s¶
To visually highlight the CoreXY system, we 3D-printed pulleys in distinct red and blue colors, making it easier to track the movement paths of the belts and understand the mechanics at a glance. These pulleys were designed for precision and durability, ensuring smooth operation under tension. Once printed, we mounted the pulleys onto high-quality ball bearings and secured them to the V-slot aluminum profiles using custom brackets.
The assembly process involved aligning the pulleys carefully to maintain proper belt tension and ensure seamless motion. The combination of the red and blue pulleys not only enhanced functionality but also added an aesthetic layer that emphasized the engineering behind the system.
t h i r d . a x i s¶
We decided to replace the 3D-printed third axis with a V-slot profile to better support the extruder, which is quite heavy. To make this adjustment, we measured the V-slot profile to 462mm and clamped it securely for cutting. For the first time, I used a grinder—an interesting and somewhat tricky experience! While cutting aluminum, the process was straightforward but noisy, requiring steady hands and patience. It reinforced the importance of wearing safety gear like goggles. The result was a clean cut, ready for assembly, and a newfound appreciation for working with metal profiles.
b e l t¶
Adjusting the belts in the CoreXY system is a critical step to ensure smooth and accurate motion. The belts must have consistent tension across their entire length to avoid issues like skipped steps, uneven movements, or backlash. Proper tensioning ensures that the X and Y axes work in harmony, maintaining the precision required for high-quality prints or cuts. We carefully tightened the belts using tensioning mechanisms integrated into the design, checking for tautness by hand and performing test movements to verify alignment and performance. Any imbalance could lead to mechanical strain or inaccuracies, so fine-tuning this aspect was essential for achieving reliable and efficient operation of the machine.
e x t r u d e r¶
To create the trolley and extruder holder for our machine, we designed and 3D-printed a custom part that included integrated gears for the extrusion mechanism. The design focused on durability and precision, ensuring it could support the weight of the extruder and operate smoothly under load. The extruder holder was carefully engineered to house a DC motor, which we mounted securely to drive the syringe-based extrusion system. The syringe itself fit snugly into the holder, with the mechanism designed to translate the motor’s rotational motion into precise linear movement for material dispensing.
More about the modeling and design process you can explore in Erika Mirzoyan's documentation.
Making this mechanism functional was no small feat. With the guidance and expertise of Mkhitar Evoyan, Fab Lab Armenia's Technical Support Instructor, we refined the design and optimized the assembly. Mkhitar helped us fine-tune the alignment of the gears, ensuring efficient torque transfer and smooth operation. He also supported us in programming the DC motor to respond to laser-based PWM control, transforming rotational force into the precise movements needed for consistent extrusion. The collaboration was instrumental in bringing this complex system to life, turning our prototype into a working extrusion mechanism.
p o w e r . u p . t h e . m o t o r s¶
CONNECTING GRBL TO ARDUINO AND CNC SHIELD
Our journey began with GRBL, an open-source firmware designed for CNC machines. GRBL transforms G-code instructions into motion commands for stepper motors and other hardware. To bring this functionality to life, we chose an Arduino Uno, a reliable and affordable microcontroller, paired with a CNC shield that accommodated stepper motor drivers and provided straightforward connections for the machine’s components.
Installing GRBL was our first major task. We downloaded the latest GRBL release from its GitHub repository and imported it into the Arduino IDE. The grblUpload.ino file served as the interface to flash the firmware onto the Arduino. After selecting the correct board and COM port in the IDE, we uploaded the code, successfully transforming the Arduino Uno into the control brain of our machine.
#include <grbl.h>
The CNC shield, mounted on top of the Arduino, played a vital role in connecting all hardware components. It hosted TMC2208 stepper motor drivers for our X and Y.
Enabling CoreXY functionality within GRBL was a key customization. This kinematic system uses two stepper motors in tandem to achieve precise movement along the X and Y axes. We edited the GRBL configuration file (config.h) to activate CoreXY support by uncommenting the following line:
#define COREXY
This adjustment ensured the firmware interpreted motion commands in a way compatible with our machine's mechanical design.
CALIBRATING AND OPERATING WITH UGS
Once the firmware was operational, we needed a tool to communicate with the machine. Universal G-Code Sender (UGS) provided a powerful interface for sending commands, fine-tuning parameters, and monitoring real-time operations. UGS allowed us to establish a connection with the Arduino via a USB cable, selecting the appropriate COM port and setting the baud rate to 115200.
The first step in UGS was to verify the communication by entering the command $$, which displayed the GRBL configuration settings. This was a critical step, as these parameters determined the behavior of the motors, such as their steps per millimeter, acceleration, and maximum speeds. Adjusting the steps per millimeter was essential for precise movement.
For example, if a 10 mm movement command resulted in the machine traveling only 9.8 mm, we recalculated the steps per millimeter using this formula:
New Steps = Current Steps × (Commanded Distance / Measured Distance)
The corrected value was then entered back into GRBL with a command $100=24.000 for the X-axis.
Through UGS, we also configured the homing sequence, a feature essential for establishing a consistent starting point. Limit switches at the ends of each axis ensured the machine could accurately detect its boundaries. The homing sequence was activated by setting $22=0, followed by additional settings to define the axes' maximum travel distances.
MOTION CONTROL AND EXTRUSION SYSTEM
The motion system of our machine relied on stepper motors controlled by TMC2208 drivers, known for their precision and ability to handle microstepping. This microstepping capability enabled smoother movements, crucial for the intricate operations required by CNC machining and bioprinting. Belts and pulleys transmitted the motors' torque, and we paid special attention to their tension to prevent slipping or inaccuracies.
For extrusion, we utilized a DC motor controlled by an IRFZ44N MOSFET. Instead of a traditional motor driver, we repurposed laser control code to manage the motor’s operation. The motor was responsible for pushing the syringe in our extrusion system, providing a flexible and effective way to handle material deposition. Using the PWM output from the Arduino, we controlled the speed of the motor, enabling us to adjust the extrusion rate dynamically.
The integration of the IRFZ44N MOSFET allowed precise switching, translating PWM signals into variable speeds for the motor. By adapting the laser control code, we successfully synchronized the extrusion rate with the machine’s movements. Extensive testing was essential to fine-tune this synchronization, ensuring that the syringe dispensed material consistently across various scenarios.
LightBurn software is typically used for laser cutting and engraving, but for our bioprinter, it plays a crucial role in controlling the machine’s precision movements and ensuring the accurate execution of G-code.
By leveraging its intuitive interface and powerful features, we were able to optimize the design and control processes for tasks like calibration and material deposition. While LightBurn isn't specifically designed for bioprinting, we adapted its functionality to ensure that the movements of the extruder, powered by the DC motor, matched the required print paths. This helped streamline the operation of our CoreXY bioprinter, allowing for precise control over material flow, layer alignment, and print quality.
b o m¶
BILL OF MATERIALS (BOM) - COREXY CNC/BIOPRINTER
e l e c t r o n i c s¶
ITEM | QUANTITY | DESCRIPTION | PRICE (USD) |
---|---|---|---|
ARDUINO UNO | 1 | MICROCONTROLLER BOARD FOR GRBL FIRMWARE | $10 - $20 |
CNC SHIELD | 1 | ARDUINO-COMPATIBLE SHIELD FOR STEPPER MOTOR DRIVERS | $5 - $10 |
TMC2208 STEPPER DRIVERS | 2 | STEPPER MOTOR DRIVERS FOR X, Y AXES | $10 - $15 (SET) |
IRFZ44N MOSFET | 1 | N-CHANNEL MOSFET FOR DC MOTOR CONTROL | $1 - $2 |
DC MOTOR | 1 | MOTOR FOR SYRINGE-BASED EXTRUSION SYSTEM | $5 - $10 |
POWER SUPPLY | 1 | 12V/24V POWER SUPPLY | $10 - $15 |
USB CABLE | 1 | STANDARD USB CABLE (TYPE A TO TYPE B) | $3 - $5 |
m e c h a n i c a l¶
ITEM | QUANTITY | DESCRIPTION | PRICE (USD) |
---|---|---|---|
STEPPER MOTORS | 2 | NEMA 17 STEPPER MOTORS FOR X AND Y AXES | $10 - $15 EACH |
GT2 TIMING BELTS | ~4 METERS | TIMING BELTS FOR COREXY MOTION SYSTEM | $5 - $10 |
BEARINGS | 16 | LINEAR BEARINGS FOR GUIDING MOTION | $0.5 EACH |
MOUNTING HARDWARE | VARIOUS | SCREWS, NUTS, BOLTS, AND BRACKETS | $5 |
e x t r u s i o n¶
ITEM | QUANTITY | DESCRIPTION | PRICE (USD) |
---|---|---|---|
SYRINGE | 1 | DISPOSABLE OR REUSABLE SYRINGE | $0.5 |
s o f t w a r e¶
ITEM | DESCRIPTION | PRICE (USD) |
---|---|---|
GRBL FIRMWARE | OPEN-SOURCE FIRMWARE FOR CNC CONTROL | FREE |
UNIVERSAL G-CODE SENDER (UGS) | SOFTWARE FOR SENDING G-CODE COMMANDS TO GRBL FIRMWARE | FREE |
LIGHTBURN | LAYOUT, EDITING, AND CONTROL SOFTWARE FOR THE LASER CUTTER | FREE TRIAL |
ARDUINO IDE | SOFTWARE FOR PROGRAMMING ARDUINO BOARDS | FREE |
t o o l s¶
ITEM | QUANTITY | DESCRIPTION | PRICE (USD) |
---|---|---|---|
MULTIMETER | 1 | FOR CHECKING CONNECTIONS AND ADJUSTING CURRENT | FREE |
SCREWDRIVERS | 1 SET | FOR ASSEMBLING COMPONENTS | FREE |
SOLDERING IRON | 1 | FOR CONNECTING WIRES AND COMPONENTS | FREE |
c o n s t r u c t i o n¶
ITEM | QUANTITY | DESCRIPTION | PRICE (USD) |
---|---|---|---|
FRAME (V-SLOT PROFILES) | ~4 METERS | 20x20MM V-SLOT ALUMINUM PROFILES | $10 |
PLA FILAMENT | 1 | 1KG PLA FILAMENT | $15 - $20 |
t o t a l¶
With the added V-slot profiles, 3D printed parts, and PLA filament, the total cost will likely range from $117.5 - $175.5. Prices vary depending on supplier and specific needs.
r e f i n i n g¶
After the hardware and software were fully integrated, we conducted a series of tests to ensure reliable operation. Linear movements, curves, and complex G-code patterns were executed to evaluate the machine's accuracy. UGS’s real-time feedback allowed us to identify and correct minor issues, such as belt misalignments or unexpected motor vibrations.
The final tuning focused on enhancing the machine's speed without compromising accuracy. By iteratively adjusting acceleration parameters, we struck a balance that provided efficient operation for both rapid prototyping and high-detail tasks. This phase underscored the importance of attention to detail, as even small adjustments significantly impacted the machine's performance.
c o n c l u s i o n¶
Building this CoreXY CNC/bioprinter has been more than just assembling parts; it has been a journey of exploration, creativity, and learning. By integrating open-source technologies with hands-on craftsmanship, we discovered how engineering becomes an art of problem-solving. Each component—from the precise CoreXY motion system, which we calibrated for tension and balance, to the adaptable extrusion mechanism designed with a DC motor and syringe—represents a step toward realizing complex ideas in tangible form.
The collaboration, experiments, and moments of trial and error revealed the true power of community-driven innovation. This machine is not just a tool; it’s a platform for possibility, a testament to how accessible technology can inspire solutions to challenges in fabrication, science, and beyond.