This Project is based on TI's 40-Pin Boosterpack for 3D Printer Control, a boosterpack that plugs into TI's MSP-EXP430F5529LP launchpad and is intended to be a low-cost solution for 3D printer control.
The new PCB is designed to be a more modular version of the TI's original board and it also adds supports for two more extruders. It incorporates six motor-driver modules based on the DRV8825. We went for a modular design because it meant less smd soldering and would make the drivers easy to replace.
Unlike a typical 3D printer's controller that only supports a single extruder, this boosterpack adds support for two more extruders; one for a different type of plastic (PLA) and the other for a conductive paste, enabling developers to print electronic circuits embedded in plastic.
The instructions are broken down into three main parts:
- Embedded Firmware (Energia)
- Software (Repetier-Host)
Step 1: Hardware Setup
The block diagram above shows how all things are connected on an abstract level.
The six DRV8825 driver modules are plugged into the 8-pin female headers. The 6-pin green connector on the left side is where the heater-bed, and the two extruders' heating elements are connected. while the green connector with 4-pins on bottom left corner is where the 12 volt power supply is connect. It has 4-pins because the top two pins supply the heater-bed (high current) and the bottom two pins provide power for the rest of the circuit.
Step 2: Tunning the Driver Module
The potentiometer on the driver module sets the voltage reference used to limit current driving the stepper motors. For the motors we used, a voltage reference (Vref) of 0.9v worked fine. Obviously if you're connecting two motors in parallel (z-axis in our case) the Vref would be doubled to around 1.8. It's important to tune this pot correctly, because not doing so will cause the motors not move properly or overheat.
Step 3: Embedded Firmware (Energia)
Energia, an open-source IDE which brings Arduino like programming to TI's launchpads, is used to compile the program (firmware) and upload it to the microcontroller. The firmware handles all the communication with a computer through UART and interprets the G-code.
Step 4: Changing the Serial Buffer Size (Energia)
Before flashing the microcontroller (Launchpad) with enrgia we need to modify the buffer size constant in Energia's source code (HardwareSerial.cpp).
Starting from the directory where Energia is downloaded, go to
and open the file HardwareSerial.cpp, locate SERIAL_BUFFER_SIZE and change its value to 128.
Step 5: Enegia Setup
Start off by connecting your lauchpad (MSP-EXP430F5529LP) to your computer, then open device manager to see what virtual com port it was assigned (the one with UART). It's COM3 in this case.
Then open up Energia and go to file > open and double click on the .ino file (the main firmware).
Next select tools > board > MSP-EXP430F5529LP and tools > serial > COM3
Click on the check-mark to verify the code compiles without any errors. Then finally upload to the board which should give out a "Done uploading" message.
Step 6: Repetier-Host Setup
Repetier-Host is computer software which is responsible of feeding the G-code to the launchpad/boosterpack and provides a user interface to the whole 3D printing process.
- First make sure the launchpad is connected to the computer and note the COM port.
- Open Repetier-host, click on Config > Printer Settings
- Under Connection tab, set all the fields as the picture above (set the COM to the appropriate number).
- Under Extruder tab, set the number of extruder to 2.
Step 7: Slic3r
Slic3r, is a software that works within Repetier-host that converts CAD files (.stl) into G-code that is then fed by Repetier-host to the printer. I has many user configurable options but to get things started off we'll go to Slicer tab from Repetier-host and click on configuration to Printer Settings tab and set the number of extruders to 2.
Now you should be able to import an .stl file, slice it, connect and print.
Check out our blogs
And please support our Kickstarter campaign