Wanhao Duplicator i3 Plus 3D Printers

Everything (almost) I know about the Wanhao Duplicator i3 Plus 3D printer and its clones.

Wanhao Duplicator i3 Plus 3D Printers

Note: This document is updated with information about other printers like the Wanhao Duplicator i3 Plus Mark II.

DISCLAIMERS

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.

Become a Sponsor of the ADVi3++ project

Patreon

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.

Introduction

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.

Models

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:

  • No difference means that the model has no hardware difference compared to the original Wanhao Duplicator i3 Plus. It does not take into account differences like a different power plug or a firmware with a different boot animation.
  • There are other printers made by Wanhao like the Wanhao Duplicator i3 Mini or the Wanhao Duplicator i3 but those are completely different printers.
  • There is also the case of the Wanhao Duplicator 9 (D9). In many aspects, it is similar to a Wanhao Duplicator i3 Plus. I may document it in a future update of this document.

Hardware

LCD Touch screens

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:

  • ARM MCU
  • 4.3 inches
  • resolution of 480 x 272 pixels
  • 65536 colors
  • Power voltage: 5V (typical)
  • Between 240 mA and 100 mA (backlight off)
  • Serial ports (8N1, 3.3V, TTL/CMOS):
    • 1 connector 10 pins FFC 1.0 mm
    • 1 connector 4 pins FFC 1.0 mm (only for DMT48270M043_05W)
  • 1 microSD slot
  • 1 buzzer
  • 1 RTC (real-time clock)

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).

Mainboards

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:

  • Atmel ATMEGA2560-16AU, a microcontroller
  • WCH CH340G, a cheap USB-to-Serial bridge
  • a USB Type B connector
  • TI LMV358, a Low-Voltage (Rail-to-Rail) Amplifiers
  • NXP 74HC4050D, a level shifter
  • a 10 pins serial connector FFC 1.0 mm (connected to the LCD Touch Screen)
  • a SD card slot
  • a 16 pins IDC connector connected to the Interface Board. It is 20 pins in the case of the Mark II
  • 4 3-wire JST XHP connector to connect X, Y, Z1 and Z2 motors
  • 3 2-wire JST XHP connector to connect the Y-min and Z-min end-stops and the heated bed thermistor
  • 1 3-wire unheaded JST XHP connector labeled Z-probe (not present on HE180021 and Mark II). See below
  • 1 4-wire JST XHP connector labeled UART (Mark II and HE180021 only)
  • 1 3-wire JST XHP connector to connect the power loss detection AC-DET (Mark II only)
  • 1 3-wire JST XHP connector to connect the power off device POWER-DET (HE180021 only)
  • 1 4-wire JST XHP connector with unknown function (Mark II and HE180021 only). The pins are labeled VCC, GND, Bottom and Control on the back side of the PCB
  • 1 3-wire unheaded connector labeled J3 (only for the HE180021). See below
  • 1 10-wire unheaded IDC connector labeled EXT. See below
  • 1 6-wire headed IDC connector without label. It is a ISP/SPI connector. See below

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)

Atmel ATMEGA2560

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

Z-probe connector

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.

Y-endstop, Z-endstop and Bed temperature connectors

Y-endstop

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 -

Z-endstop

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

Bed temperature

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.

SPI connector

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

EXT connector

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 -

J3 connector

Note: Only for HE180021

The pinout is the following:

Pin ATMEGA2560 Pin Arduino
1 5V -
2 6 / PE4 (OC3B/INT4) 2
3 GND -

Interface Board

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.

Wanhao Duplicator i3 Plus mainboard (5.1)

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

Wanhao Duplicator i3 Plus Mark II mainboard (5.4)

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.

Power Supply (PSU)

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.

Stepper Motors

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

Microstepping Drivers

The drivers (hidden by heatsinks) are Allegro Microsystems A4988ET. The datasheet is available on the web site of the constructor.

Fans

The are two fans. Both are 24 V DC brushless fans: AAA HZHZ 4010MS DC24V 0.10A:

  • One is always on (on the left side of the extruder)
  • One is controlled by the mainboard and used to cool down printed parts

WARNING: The orientation of the cable is switched.

Extruder

  • MK10 extruder.
  • 100k NTC 3950 HEX thermistor, JST XHP connector (Marlin Firmware TEMP SENSOR # 1)
  • 40W Heating core 24V

Heated bed

  • MK3
  • Aluminum Plate
  • 12 / 24 V (24 V for the Wanhao i3 Plus)
  • Max Temperature: 180 degree Celsius WARNING: This is unconfirmed
  • 100k NTC 3950 HEX thermistor, JST XHP connector

Automatic Bed Leveling

Proximity Sensor

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.

  • LJ12A3-4-Z/BY
  • Inductive type proximity switch with PNP Normally Open transistor switch. Output upon detection (PNP-NO Output)
  • Power: 6-36VDC
  • Output Current: 300mA
  • Detection Range: 4mm
  • Detected material: Iron/Steel alloys
  • Diameter: 12mm, Length: 64mm

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...

BLTouch

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).

Automatic shutdown

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.

Power Loss Recovery

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.

Software

LCD Touch Screen

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:

  • A firmware, made by DWIN Technologies.
  • A set of resources, made by the manufacturer of the 3D printer (Wanhao, Monoprice, Coccon) or yourself. This component is often called "LCD firmware" even if it is wrong.

LCD resources

The images have the following format:

  • BMP (Windows 3.x Bitmap)
  • 480 x 272
  • 24 bits per pixel (3 x 8 bits, no alpha)
  • Bottom-up bitmap

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

Designing screens

The DGUS SDK includes tools to help you design LCD screens:

Flashing

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.

Wanhao fork

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:

  • Hardware parameters specific to this printer
  • Support of the Chinese language (in this fork, it is assigned the identifier 10 which conflicts with the official Marlin sources)
  • Support of the so called Mini LCD
  • Support of a second serial line (for the LCD). MarlinBTSerial.h and MarlinBTSerial.cpp are apparently taken from this project: Marlin3Serial.
  • The project was edited and compiled with Visual Micro, an add on for Visual Studio to handle Arduino projects

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.

Alternative firmwares

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.