ADVi3++ is a fork of the Marlin Firmware for the Wanhao Duplicator i3 Plus (and its clones: Monoprice Maker Select Plus, Coccon Create). It includes both Marlin itself and customizations of the LCD screens.
The objectives with this custom version (when compared with Wanhao stock firmwares) are the following:
- Based on the latest version of Marlin available (currently: 1.1.6)
- As few modifications of the Marlin code as possible. The goal is to be able to port ADVi3++ to new versions of Marlin with only a few effort.
- Fully open source code. Unfortunately, even if it is required by the GPL, Wanhao has not released the source code of their latest Marlin-based firmwares.
- Object-oriented code with as few hard-coded values as possible. For example, instead of constructing a frame by hand, use instances of classes that know how to construct themselves.
- Documented code, logging and error handling (without using exceptions as they are not supported).
- Full colors and nice LCD screens including temperature graphs.
- Icons and pictures recreated from scratch.
- About screen with the various versions (LCD, Mainboard, ...) and integrity check.
- Etc.
There are two parts to flash:
- The mainboard (Marlin) firmware
- The LCD resources
There are several ways to flash the mainboard firmware. The first step is to download the firmware from the Releases page on GitHub:
- if net yet done, download Cura. I recommend either Cura for Wanhao (if you directly connect the printer to your computer with a USB cable) or Ultimaker Cura 3 (if, for example, you are using OctoPrint to print)
- Start Cura
- In the top menu, under Settings → Printer, select Manage Printers
- Select your printer or Add your printer if it is not already done
- Select Upgrade Firmware and then Upload custom Firmware
- Select the downloaded file
ADVi3pp-Mainboard-x.x.x.hex
and click on Open
You need advdude
and the development build of the Firmware Updater plugin.
To install advdude
on a Raspberry Pi:
- Connect to the Raspberry (for example through SSH) and enter the command:
sudo apt update; sudo apt install avrdude
To install the development build of the Firmware Updater plugin
- Open a navigator and connect to OctoPrint
- Login and click on the wrench icon in the toolbar
- Select Plugin Manager → Get More...
- Under from URL enter
https://github.com/OctoPrint/OctoPrint-FirmwareUpdater/archive/devel.zip
and click on Install - Restart OctoPrint
To flash the firmware:
- When OctoPrint in rebooted and the UI reloaded, click on the wrench icon in the toolbar
- Under Plugins, choose Firmware Updater
- Click on the wrench icon, and after Path to advdude, enter
/usr/bin/avrdude
and click Save - Be sure your USB port appears after Serial Port
- After ... from file, click on Browse and select the firmware you have downloaded such as
ADVi3pp-Mainboard-x.x.x.hex
- Click on Flash from File
- The flashing process may take around 30 seconds
- When it is finished, a message appears saying "Flashing successful". Click on Save
- Reconnect the printer
Note: The LCD resources are hosted on their own GitHub project: ADVi3pp-LCD.
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.
You have two possibilities to flash:
- Download the LCD resources: ADVi3pp-LCD-x.x.x.zip
- Unzip the file somewhere
- Copy manually all the files and folders in the uncompressed zip file to the root of a microSD card. 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.
- Download the microSD card image: ADVi3pp-LCD-x.x.x.img.zip
- Unzip the
.img.zip
file and use eitherdd
(Linux, macOS) or Etcher (Windows, Linux, macOS). For example withdd
:
unzip ADVi3pp-LCD-1.0.0.img.zip
sudo dd if=ADVi3pp-LCD-1.0.0.img of=/dev/disk2 bs=64K
Of course, replace /dev/disk2
with the right value.
If you prefer graphical applications, Etcher is a great multi-platform tool.
- Disconnect the printer from power
- Remove the two screws located on the front and loose the two M3 screws on the top
- Remove the front panel carefully (don't break the flat cable)
- If you are lucky, you can insert the microSD card on the left of the panel (this is the case on the Monoprice clone)
- Otherwise, remove the four M3 screws and remove the cover
- Insert the microSD card in the slot
- Turn on the printer (either by connecting it to power or by connecting the USB slot to the computer)
- The screen turns blue and then every image will appear one by one
- After around 2 or 3 minutes, the screen turns black
- Turn off the printer and remove the microSD card
- Re-assemle the front panel, do not forget the two M3 screws on the top
- Turn the printer on. You know have the new version of the LCD images
This custom firmware has the following features:
- Boot animation with colors and the Marlin logo
- Colored screens
- About screen with versions of the different components (Mainboard and LCD ADVi3++ versions, LCD firmware version, Marlin version) and integrity check
- SD card and printing menu
- Temperature graphs accessible from several screens by pressing the temperature numbers
- Load and Unload filament
- Preheat bed and hotend with 3 sets of values
- Move head, extrude, unextrude
- Statistics
- PID automatic tuning
- Bed leveling (4 points)
- Factory Reset with warning
ADVi3++ is split into two sister projects:
- ADVi3pp-Mainboard: this project, a fork of Marlin firmware
- ADVi3pp-LCD: the LCD resources
The LCD panel is manufactured by AMP Display Inc. and uses DGUS (DWIN Graphic User System) developed by DWIN Technologies. The reference of the LCD panel is DMT48270M043_05W
and you can find its datasheet under "Resources" below.
It is build around the proprietary K600+ 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 LDC 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.
WARNING: Do not make the confusion between the actual LCD firmware (made by DWIN Technologies) and the LCD resources for the customization of the display (next paragraph).
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 righr 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
Note: In the past, it was possible to download these resources directory from the dwin.com.cn website. It is no more the case (you get plenty of errors) so I copy them into this repository.
- DMT48270M043_05W Datasheet
- DWIN DGUS Display Development Guide version 4.0 - 2014
- DGUS SDK User Guide 5.1
- DGUS SDK 5.1 Setup - Windows only
There are some other projects (I am aware of) on a similar topic:
-
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 (that's why I created ADVi3++).
-
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.
-
Wanhao-I3-Plus by James Armstrong: Sources of version 2.18 of Mainboard firmware and LCD resources.
-
Wanhao-I3-Plus by WANHAO 3D PRINTER: Official sources of version 2.1.803 of Mainboard firmware and LCD resources.
-
Original Wanhao i3 Plus Firmware version 3.0 As far as I know, Wanhao has not yet released the source of version 3.0 (even if it is required under GPL). I have ask them when they plan to release the sources. I am waiting...
Thank you to Leo Lüker (Silverquark) for his i3plus+ project. I take many ideas from his code. But the project is not very active (still in Beta) and I do not like the screen (personal taste) so I have created the ADVi3++ fork (technically, it is a fork of Marlin, not of i3plus+).
Thank to Marlin for their great work.
- Copyright © 2017 Sebastien Andrivet [https://github.com/andrivet/advi3pp-Marlin]
- Copyright © 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
- Based on Sprinter and grbl.
- Copyright © 2011 Camiel Gubbels / Erik van der Zalm
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.