Note: This document is updated with information about other printers like the Wanhao Duplicator i3 Plus Mark II.
I am not affiliated, associated, authorized, endorsed by, or in any way officially connected with Wanhao, or any of its subsidiaries or its affiliates.
USE THESE INFORMATION AT YOUR OWN RISK. I am not responsible for any damage done to your printer or LCD when using these information. I hope you find them useful, I try to make them as accurate as possible but they may contain mistakes.
I have created ADVi3++, an alternative, better and open source firmware for Wanhao i3 Plus printers and clones. Thanks to supporters of this project on Patreon, I am able to continue the development of this firmware and write articles such as this article. More information about ADVi3++ on GitHub: https://github.com/andrivet/ADVi3pp. More information about supporting the project on Patreon: https://www.patreon.com/andrivet.
The Wanhao Duplicator i3 Plus 3D printer (and all its derivatives) is manufactured by Wanhao, a Chinese company in the town of Jinhua. It is sold by several resellers like Ultimate 3D Printing Store in the US, 3D Prima in Europe, but also Amazon, Aldi in Australia, etc.
Like several 3D printers, it is a derivative on the Reprap Prusa i3 but with several differences including a LCD touch screen.
In this document, I will try to describe everything I know about this 3D printer, regarding hardware and software. Do not expect a review or guides to do this or that. This document is about technical details, deep details.
There are today many different models with or without significant differences. I have open an issue on GitHub to reference all the different models and get input from the community: https://github.com/andrivet/ADVi3pp/issues/188. As far as I know, here are an exhaustive list of models derived from the Wanhao Duplicator i3 Plus:
Name | Model # | Motherboard | Country | Hardware differences |
---|---|---|---|---|
Wanhao Duplicator i3 Plus | Bi3Plus | 5.1 | CN | Original printer |
Monoprice Maker Select Plus | 15711 | 5.1 | US | No difference |
Monoprice Maker Select Plus "Euro" | 21871 | 5.1 | DE | No difference |
Monoprice Maker Select Plus "UK" | 24165 | 5.1 | UK | No difference |
Aldi Cocoon Create Touch | HE161192 | 5.1 | AU | No difference |
Aldi Balco 3D Touchscreen | ? | 5.1 | UK | No USB plug |
Microcenter PowerSpec WanHao Duplicator I3 PLUS | 422204 | 5.1 | USA | No difference |
Aldi Balco 3D Printer | HE180021 | 5.2C | UK | Between original and Mark II |
Wanhao Duplicator i3 Plus Mark II | wanhao.i3.plus.Mk2 | 5.4 | CN | ABL, magnetic bed, power-loss recovery |
Notes:
The LCD panel is manufactured by AMP Display Inc. and uses Mini DGUS (DWIN Graphic User System) developed by DWIN Technologies.
There are currently (at least) two different models of LCD panel:
DMT48270M043_05WT
DMT48270M043_02WT
The LCD panel has the following characteristics and components:
DMT48270M043_05W
)There are differences between the two LCD panels. In particular:
Panel | Graph channels | Serial ports |
---|---|---|
DMT48270M043_05WT | 4 | 2 |
DMT48270M043_02WT | 2 | 1 |
For complete characteristics, look at the datasheets. On the board, it is possible to read the name of some chips:
The name of other chips has been intentionally erased, probably to protect the Intellectual Property.
One of the serial connectors (with 10 pins) is used to communicate with the Wanhao i3 Plus main board (below the DMT48270M043_05WT):
The connectors are different between the two model of LCD panels, but the pinout is the same:
Pin # | Description | Pin # | Description | |
---|---|---|---|---|
1 | GND | 6 | RXD | |
2 | GND | 7 | not used | |
3 | GND | 8 | +5V | |
4 | not used | 9 | +5V | |
5 | TXD | 10 | +5V |
The cable is a standard 1.0 mm pitch flat flexible (FFC) jumper cable (type B / type 2 - contacts are on opposite sides at each end of the cable).
Contrary to previous versions of Wanhao i3 printers (that were using a Melzi board), the Wanhao i3 Plus has a custom mainboard. The version is different between models:
Name | Model # | Motherboard |
---|---|---|
Wanhao Duplicator i3 Plus | Bi3Plus | 5.1 |
Monoprice Maker Select Plus | 15711 | 5.1 |
Monoprice Maker Select Plus "Euro" | 21871 | 5.1 |
Monoprice Maker Select Plus "UK" | 24165 | 5.1 |
Aldi Cocoon Create Touch | HE161192 | 5.1 |
Aldi Balco 3D Touchscreen | ? | 5.1 |
Microcenter PowerSpec WanHao Duplicator I3 PLUS | 422204 | 5.1 |
Aldi Balco 3D Printer | HE180021 | 5.2C |
Wanhao Duplicator i3 Plus Mark II | wanhao.i3.plus.Mk2 | 5.4 |
Wanhao Duplicator i3 Plus mainboard (5.1)
Wanhao Duplicator i3 Plus Mark II mainboard (5.4)
Aldi Balco 3D Printer HE180021 (5.2C)
The mainboard runs an Atmel ATMEGA2560-16AU microcontroller. It is thus the equivalent of an Arduino Mega 2560 clone.
Some of the components of the motherboard are the following:
Wanhao Duplicator i3 Plus mainboard (5.1)
Wanhao Duplicator i3 Plus Mark II mainboard (5.4)
Wanhao Duplicator i3 Plus Mark II mainboard (5.4) Back side
Aldi Balco 3D Printer HE180021 (5.2C)
The following table describes how the Atlmel MEGA2560 microcontroller is used and the corresponding definitions in the Marlin firmware for the different mainboards:
Arduino Pin | MEGA2560 | Description | Marlin | Mainboards |
---|---|---|---|---|
0 | PE0 / RXD0 | RX serial port 0 (USB) | All | |
1 | PE1 / TXD0 | TX serial port 0 (USB) | All | |
2 | PE4 / INT4 | J3 pin 2 | 5.2C | |
Y Stepper Motor / Enable Pin | Y_ENABLE_PIN | 5.4 | ||
3 | PE5 / PWM3 | Heated bed Pin | HEATER_BED_PIN | All |
4 | PG5 / PWM4 | Heater Pin | HEATER_0_PIN | All |
5 | PE3 / PWM5 | PWM Fan | FAN_PIN | All |
6 | PH3 / OC4A | Z endstop | Z_STOP_PIN | 5.2C, 5.4 |
7 | PH4 / OC4B | |||
8 | PH5 / OC4C | |||
9 | PH6 / OC2B | |||
10 | PB4 / OC2A | |||
11 | PB5 / OC1A | |||
12 | PB6 / OC1B | |||
13 | PB7 / OC0A | Onboard LED | LED_PIN | All |
14 | PJ1 / TXD3 | TX serial port 3 | ||
15 | PJ0 / RXD3 | RX serial port 3 | ||
16 | PH1 / TXD2 | TX serial port 2 (LCD panel) | ||
17 | PH0 / RXD2 | RX serial port 2 (LCD panel) | ||
18 | PD3 / TXD1 | TX serial port 1 | ||
19 | PD2 / RXDI | RX serial port 1 | ||
20 | PD1 / SDA | |||
21 | PD0 / SCL | |||
22 | PA0 / AD0 | |||
23 | PA1 / AD1 | Z endstop | Z_STOP_PIN | 5.1 |
24 | PA2 / AD2 | Y endstop | Y_STOP_PIN | All |
25 | PA3 / AD3 | Z probe connector (not used) | 5.1 | |
26 | PA4 / AD4 | |||
27 | PA5 / AD5 | |||
28 | PA6 / AD6 | |||
29 | PA7 / AD7 | |||
30 | PC7 / A15 | |||
31 | PC6 / A14 | |||
32 | PC5 / A13 | EXT connector Pin #7 | All | |
33 | PC4 / A12 | EXT connector Pin #8 | All | |
34 | PC3 / A11 | EXT connector Pin #5 | All | |
35 | PC2 / A10 | EXT connector Pin #6 | All | |
36 | PC1 / A9 | EXT connector Pin #3 | All | |
37 | PC0 / A8 | EXT connector Pin #4 | All | |
38 | PD7 / TO | |||
39 | PG2 / ALE | |||
40 | PG1 / !RD | EXT connector Pin #1 | All | |
41 | PG0 / WR | |||
42 | PL7 | |||
43 | PL6 | |||
44 | PL5 / OC5C | |||
45 | PL4 / OC5B | |||
46 | PL3 / OC5A | |||
47 | PL2 / T5 | |||
48 | PL1 / ICP5 | |||
49 | PL0 / ICP4 | |||
50 | PB3 / MISO | SPI connector Pin #6 | All | |
51 | PB2 / MOSI | SPI connector Pin #2 | All | |
52 | PB1 / SCK | SPI connector Pin #5 | All | |
53 | PB0 / SS | SD card SS (Select Signal) | SDSS | All |
54 / A0 | PF0 / ADC0 | X endstop | X_STOP_PIN | All |
55 / A1 | PF1 / ADV1 | Heater temperature | TEMP_0_PIN | All |
56 / A2 | PF2 / ADC2 | EXT connector Pin #2 | All | |
57 / A3 | PF3 / ADC3 | E Stepper Motor / Enable Pin | E0_ENABLE_PIN | All |
58 / A4 | PF4 / ADC4 | E Stepper Motor / Step Pin | E0_STEP_PIN | All |
59 / A5 | PF5 / ADC5 | E Stepper Motor / Direction Pin | E0_DIR_PIN | All |
60 / A6 | PF6 / ADC6 | X Stepper Motor / Enable Pin | X_ENABLE_PIN | All |
61 / A7 | PF7 / ADC7 | X Stepper Motor / Step Pin | X_STEP_PIN | All |
62 / A8 | PK0 / ADC8 | X Stepper Motor / Direction Pin | X_DIR_PIN | All |
63 / A9 | PK1 / ADC9 | Y Stepper Motor / Enable Pin | Y_ENABLE_PIN | 5.1 |
64 / A10 | PK2 / ADC10 | Y Stepper Motor / Step Pin | Y_STEP_PIN | All |
65 / A11 | PK3 / ADC11 | Y Stepper Motor / Direction Pin | Y_DIR_PIN | All |
66 / A12 | PK4 / ADC12 | Z Stepper Motor / Enable Pin | Z_ENABLE_PIN | All |
67 / A13 | PK5 / ADC13 | Z Stepper Motor / Step Pin | Z_STEP_PIN | All |
68 / A14 | PK6 / ADC14 | Bed temperature | TEMP_BED_PIN | All |
69 / A15 | PK7 / ADC15 | Z Stepper Motor / Direction Pin | Z_DIR_PIN | All |
RESET | RESET | SPI connector Pin #4 | All |
Note: not present on HE180021 and Mark II
Pin | ATMEGA2560 Pin | Arduino |
---|---|---|
1 | 24V or 5V | - |
2 | 75 / PA3 (AD3) | 25 |
3 | GND | - |
Pin #1 (24V or 5V) is selected by one of the two jumpers near it: 24V if there is a jumper in the second position (default), 5V if there is a jumper in the first position.
For Mainboard 5.1:
Pin | ATMEGA2560 Pin | Arduino |
---|---|---|
1 | GND | - |
2 | 76 / PA2 (AD2) | 24 |
3 | Not used |
For Mainboard 5.2C and 5.4:
Pin | ATMEGA2560 Pin | Arduino |
---|---|---|
1 | 76 / PA2 (AD2) | 24 |
2 | GND | - |
For Mainboard 5.1:
Pin | ATMEGA2560 Pin | Arduino |
---|---|---|
1 | GND | - |
2 | 77 / PA1 (AD1) | 23 |
3 | Not used |
For Mainboard 5.2C:
Pin | ATMEGA2560 Pin | Arduino |
---|---|---|
1 | 15 / PH3 (OC4A) | 6 |
2 | GND | - |
For Mainboard 5.4:
The Z-endstop is not present on Mark II
Pin | ATMEGA2560 Pin | Arduino |
---|---|---|
1 | GND | - |
2 | 83 / PK6 (ADC14) | A14 |
Note: GND is on pin 1, contrary to endstops where it is on pin 2.
Serial Peripheral Interface (SPI) is a synchronous serial data protocol used by microcontrollers for communicating with one or more peripheral devices quickly over short distances. The pinout is the following:
Pin | ATMEGA2560 Pin | Arduino | Pin | ATMEGA2560 Pin | Arduino | Pin | ATMEGA2560 Pin | Arduino | ||
---|---|---|---|---|---|---|---|---|---|---|
5 | 30 / !RESET | RESET | 3 | 20 / PB1 (SCK) | 52 | 1 | 22 / PB3 (MISO) | 50 | ||
6 | GND | - | 4 | 21 / PB2 (MOSI) | 51 | 2 | VCC |
Note: The EXT connector pinout is the same for all models, including Mark II and HE180021
The pinout is the following:
Pin | ATMEGA2560 Pin | Arduino | Pin | ATMEGA2560 Pin | Arduino | |
---|---|---|---|---|---|---|
1 | 52 / PG1 (!RD) | 40 | 6 | 55 / PC2 (A10) | 35 | |
2 | 95 / PF2 (ADC2) | A2/56 | 7 | 58 / PC5 (A13) | 32 | |
3 | 54 / PC1 (A9) | 36 | 8 | 57 / PC4 (A12) | 33 | |
4 | 53 / PC0 (A8) | 37 | 9 | GND | - | |
5 | 56 / PC3 (A11) | 34 | 10 | VCC | - |
Note: Only for HE180021
The pinout is the following:
Pin | ATMEGA2560 Pin | Arduino |
---|---|---|
1 | 5V | - |
2 | 6 / PE4 (OC3B/INT4) | 2 |
3 | GND | - |
This board is in the back of the printer and is connected to the mainboard by a 16 or 20 (Mark II) pins IDC connector.
The pinout of the 16 pins IDC connector is the following:
Pin | Connected to | Pin | Connected to | |
---|---|---|---|---|
1-4 | Heater - | 5-8 | Heater + | |
9,11,13,15 | E-motor | |||
10 | PWM Fan - | 12 | Temp + | |
14 | X-min + | 16 | GND |
The pinout of the 20 pins IDC connector is the following (take this with caution):
Pin | Connected to | Pin | Connected to | |
---|---|---|---|---|
1-4 | Heater - | 5-8 | Heater + (24V) | |
9,10,11,12 | E-motor | |||
13 | PWM Fan - | 14 | GND | |
15 | Temp | 16 | GND | |
17 | X-min | 18 | VCC | |
19 | BL-SIG | 20 | Z-min |
Note: I guess that BL-SIG
and VCC
are there to be able to support a BLTouch sensor. There is apparently a special Interface board with a connector for BLTouch.
It is a MEAN WELL LRS-200-24, 24V 8.8A, 115 Vac or 230 Vac.
Be careful, the input voltage (115 or 230 V) is selected by a switch, it is not automatic.
WANRING: Your motors can differ slightly.
Axis | Motor | Current |
---|---|---|
X | C17HD40102-01N | 1.02 A |
Y | C17HD40102-01N | 1.02 A |
Z | C17HD6039-06N | 0.39 A |
E | C17HD40102-01N | 1.02 A |
The drivers (hidden by heatsinks) are Allegro Microsystems A4988ET. The datasheet is available on the web site of the constructor.
The are two fans. Both are 24 V DC brushless fans: AAA HZHZ 4010MS DC24V 0.10A:
WARNING: The orientation of the cable is switched.
The Wanhao Duplicator i3 Plus Mark II has an inductive proximity sensor for automatic bed leveling. Depending of when the printer was manufactured, the sensor is either blue or orange.
Note: This orange vs blue tip is confusing. I tought the LJ12A3-4-Z/BY has an orange tip and the LJ12A3-4-Z/BX has a blue tip but I see pictures of LJ12A3-4-Z/BY with a blue tip and also the contrary...
It is possible to upgrade the Wanhao Duplicator i3 Plus printers (non Mark II) with a BLTouch using an alternative firmware: ADVi3++ (I am the creator of this firmware).
The Aldi Balco 3D Printer HE180021 (5.2C) is able to shut itself down after a period of inactivity (10 minutes). This performed using an additional device.
The Mark II printer is able to recover from power loss using this device:
For the moment, I have very few information on this subject.
The LCD Touch Screen is build around an ARM kernel and simplifies the development of user interfaces: the different screens are defined by a set of files (images, fonts, etc) stored in the flash memory of the panel and they can be customized using a graphical editor (part of DGUS SDK).
The LCD panel has thus two distinct software components:
The images have the following format:
The last point is very important. The LCD (i.e. DGUS) is not able to handle other formats like top-down bitmaps. To convert images to the right format, you can use ImageMagick convert
:
convert 180.bmp -resize 480x272 BMP3:180.bmp
To convert all images:
for f in *.bmp; do convert "$f" -resize 480x272 BMP3:"$f"; done
The DGUS SDK includes tools to help you design LCD screens:
LCD resources can be flashed by inserting a microSD card into the slot of the screen.
IMPORTANT: You have to use a microSD card with a maximum capacity of 8GiB. If you use a microSD card with a greater capacity, the results are unreliable (sometimes it flashes, sometimes not). This is a limitation of the LCD display itself.
The microSD card has to be formatted with the following parameters: FAT32, 4096 bytes per cluster (i.e. 8 sectors). To format under Linux (and macOS with the dosfstools
Homebrew package):
mkfs.fat -F 32 -n SD -s 8 -v /dev/disk2
Of course, replace /dev/disk2
with the right value.
To format under Windows (Command Prompt):
format G: /FS:FAT32 /V:LCD /A:4096
Of course, replace G:
with the right volume letter.
Based on the Marlin GitHub history and the sources published by Wanhao (for version 2.1.8), the Wanhao i3 Plus fork is based on the commit ac74f45
(February 9, 2014) in the Marlin history and the fork for the MakerLab Maker. After this point, the sources have diverged and were never merged back into the Marlin history.
The following files are changed (changes in comments are ignored):
Configuration.h
Configuration_adv.h
DOGMbitmaps.h
dogm_font_data_marlin.h
dogm_lcd_implementation.h
Marlin.h
MarlinBTSerial.h
MarlinBTSerial.cpp
Marlin_main.cpp
pins.h
ultralcd.cpp
ultralcd.h
The changes are the following:
10
which conflicts with the official Marlin sources)MarlinBTSerial.h
and MarlinBTSerial.cpp
are apparently taken from this project: Marlin3Serial.Most of the changes (such as for the second serial line or the Mini LCD) have nothing to do with the Wanhao i3 Plus, but deal with MakerLab Maker printer.
There are alternative firmwares for these printers ("alternative": not made by Wanhao) such as:
ADVi3++ from myself: up to date with the latest stable version of Marlin (1.1.9 + fixes), add BLTouch support, etc.
i3plus+ from Leo Lüker (Silverquark): a modified version of the Marlin 1.1.2 firmware for the WANHAO Duplicator i3 Plus 3d printer. Important: No more actively developed.
i3extra from Nemcsik Péter: a modified version of the Marlin 1.1.0-RC8 firmware and updated LCD resources. Important: this project is no more maintained.