A new version of the electronics with dual extruder support is available (click on the link): easy electronics
Aim of this project is to make an electronics which gives the beginner a kit consisting of all electronic parts he needs to build a printer plus some spare parts which often die during the initial experiments with the printer. The board should have some comfort for easy stand alone printing. As a result ist has 4 stepper driver on board for X- Y- Z-axis & Extruder, heater outputs for the nozzle and the printing bed, USB communication, SD Card interface and a comfortable user interface with LCD & clickwheel. Important for beginners, the board runs from 12V..24V. It has a built in reverse polarity protection. Even if the user is not familiar with the new hardware it often happens that a wrong power connection can kill the whole electronics, the reverse polarity protection prevents damage.
- Reverse polarity protection
- 12V to 24V operating voltage
- Processor ATmega1284p runs at 20MHz
- Graphic LCD 128x64 pixel
- Click encoder wheel
- 4 Stepper channels (X-Axis, Y-Axis, Z-Axis(2 connectors for 2 motors), Extruder)
- 3 Endstop inputs
- Fan output (5V or 12V/24V depends on power supply)
All in one Solution
The board batch consists of more than the control electronic. Also on it are 6 stepper drivers (Pololu compatible) and 4 opto endstops. So the beginner has all the electronic parts he needs plus two spare stepper drivers and one spare endstop.
Well documented wiring on the backside of the PCB (click on the picture to enlarge)
The user interface is the same as known from the Ultipanel (at Thingiverse). It uses a click wheel encoder to navigate through the menus. Compared to the original Ultipanel it has more flexibility because of the dot matrix display. The pictures give some impression on it.
Some impressions of the housing.
STL Files: Housing for STB Board
The Firmware for the board is fully integrated in EricZalm's Marlin.
The only thing to do is to download it from the GitHub repository (https://github.com/ErikZalm/Marlin) and select the STB Hardware in the Configuration.h
Install Arduino Environment V023
Copy Marlin -> arduino-0023\Marlin
Copy Marlin\ArduinoAddons\Arduino_0.xx\Sanguino -> arduino-0023\hardware\Sanguino
Copy Marlin\ArduinoAddons\Arduino_0.xx\libraries\u8glib -> arduino-0023\libraries\u8glib
Copy Marlin\ArduinoAddons\Arduino_0.xx\hardware\tools\avr\etc -> arduino-0023\hardware\tools\avr\etc
If you use 1.05 then use this to copy in C:\Program Files\Arduino\hardware New Sanguino Software (works on Arduino IDE 1.0.4 or above) Now added support for ATMEGA644P, ATMEGA1284P, ATMEGA16A, ATMEGA32A
Run arduino environment
Select Board: Tools/Board -> Sanguino W/ ATmega1284p 20mhz
Change the following lines in Configuration.h (Line numbers may vary a bit)
Change line 50 to
#define MOTHERBOARD 64
uncomment line 311, 312, 315 to
The AVR CPU is running at 20% higher speed compared to standard 16MHz Sanguino boards, we have to reduce the SPI speed from FULL to HALF otherwise we get communication errors from the SD-card.
Change line 146 in cardreader.cpp (Line numbers may vary a bit)
Change line 178 in Sd2Card.h (Line numbers may vary a bit)
bool init(uint8_t sckRateID = SPI_HALF_SPEED,
Upload the firmware to the board
Connect the USB cable to the board, select the corresponding COM-port in the arduino environment
File/Upload to IO-Board
When the message "Binary sketch size: ..." appears, press within 1 second the RESET button on the Board.
After the upload has finished the board is ready for use.
Hardware Setup / Cabling
1 - Hotend 2 - Heatbed 3 - 12..24V permanent output (12..24V, GND) direct connected to power supply voltage 4 - Hotend Thermistor 5 - Heatbed Thermistor 6 - Stepper Motor X-Axis (2B 2A 1A 1B) 7 - 5V permanent output (5V, GND)max. 100mA 8 - Stepper Motor Y-Axis (2B 2A 1A 1B) 9 - Switchable fan output (+, GND) 10 - Stepper Motor Z-Axis (2B 2A 1A 1B) 11 - Stepper Motor Z-Axis (2B 2A 1A 1B) 12 - Stepper Motor Extruder (2B 2A 1A 1B) 13 - Endstop X (out, +5V, GND) 14 - Endstop Y (out, +5V, GND) 15 - Endstop Z (out, +5V, GND)
These Endstops are NON IVERTING this means the output will be >4.5V when the Endstop is hit and <0.3V when it is open. To test the Endstops put something between the black lightbarrier. The LED will light up, when the Endstop was triggered.
Setting the fan voltage for the hotend cooling fan
The hotend fan can be operated with 2 different voltages. A solder jumper selects between the regulated 5V voltage and the board supply voltage (12 or 24V) coming from the screw terminals.
On the picture the selector selects 12..24V.
Tips and Tricks
How to test the Extruder motor
To check the extruder motor with cold hotend send M302, this allows cold extrudes. Make sure that no Filament is in the Extruder.
Calibrate Hotend & Heatbed
Hotend calibration at 230°C : M303 S230
Heatbed calibration at 90°C: M303 E-1 C8 S90
Write down Kp Ki and Kd values. Put them into the sourcecode Configuration.h at line 130.. (Hotend) and 170.. (Heatbed). Make sure, that #define PIDTEMPBED in line 157 and #define PIDTEMP in line 119 is uncommented.
|Task||OK||not yet OK||possible problems & solutions|
|Hotend||Hotend/Bed temperature differs more than 5°C from the desired value e.g. room temperature|
|Bed||Check if the thermistor type selected in the firmware fits to your hardware. Check wiring & connectors.|
|Hotend||Check wiring & connectors.|
|Hotend fan control||Fan can be started with M106 S255 (fan operating at max. speed)|
|X-Axis||In case they move to the wrong direction, change "#define INVERT_X_DIR" in the firmware|
|Extruder||Use M302 (allow cold extrudes) to enable the stepper even with cold hotend. Do this only without filament inside the extruder|
|X-Axis||Push switch to check the endstop. While pushing use M119 to output the status to the serial port.|
|Y-Axis||Check optoelectronic endstops by sticking a pice of (black) paper between the lightbarrier.|
|Z-Axis||you might need to change the "..._ENDSTOPS_INVERTING = false" to true ore vice versa|
|Movement (calibrate lenght)|
|X-Axis||Use the following formula to calibrate the movement of axis. First start with the firmware defaults.|
|Y-Axis||Desired value (LENGTH) 10.0cm, steps per unit in firmware (STEPS) 40.00, actual movement (ACTM) 9.5cm|
|Z-Axis||new value = STEPS/(LENGHT*ACTM). In this example the steps per unit must be reduced to 38|
Files (will be published soon)
- PCB gerber data