Coder Social home page Coder Social logo

sniperxnl / advi3pp-marlin Goto Github PK

View Code? Open in Web Editor NEW

This project forked from andrivet/advi3pp

0.0 1.0 0.0 44.79 MB

ADVi3++: a Custom Firmware for Wanhao i3 Plus Printers based on Marlin 1.1.6

License: GNU General Public License v3.0

C++ 50.84% C 45.03% Makefile 0.50% Arduino 0.09% Objective-C 2.27% Shell 0.47% CMake 0.19% Batchfile 0.03% OpenSCAD 0.21% Python 0.36%

advi3pp-marlin's Introduction

ADVi3++ a Custom Marlin Firmware for Wanhao i3 Plus Printers

boot

Introduction

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.

Objectives

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.

How to flash

There are two parts to flash:

  • The mainboard (Marlin) firmware
  • The LCD resources

Part 1 - Flash the mainboard firmware

There are several ways to flash the mainboard firmware. The first step is to download the firmware from the Releases page on GitHub:

ADVi3pp-Mainboard-x.x.x.hex

Option 1 - Flash using Cura

  • 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 SettingsPrinter, 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

Option 2 - Flash using OctoPrint

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 ManagerGet More...
  • Under from URL enter https://github.com/OctoPrint/OctoPrint-FirmwareUpdater/archive/devel.zip and click on Install
  • Restart OctoPrint

To flash the firmware:

firmwareupdater

  • 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

Part 2 - Flash the LCD resources

Note: The LCD resources are hosted on their own GitHub project: ADVi3pp-LCD.

Step 1 - Prepare a microSD card

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:

Option 1 - Manual copy
  • 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.

Option 2 - SD image
  • Download the microSD card image: ADVi3pp-LCD-x.x.x.img.zip
  • Unzip the .img.zip file and use either dd (Linux, macOS) or Etcher (Windows, Linux, macOS). For example with dd:
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.

Step 2 - Install the new version

  • Disconnect the printer from power
  • Remove the two screws located on the front and loose the two M3 screws on the top

front-panel-screws

  • 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

lcd-board-microsd

  • 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

Features

screens

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

Sister project

ADVi3++ is split into two sister projects:

  • ADVi3pp-Mainboard: this project, a fork of Marlin firmware
  • ADVi3pp-LCD: the LCD resources

Wanhao Duplicator i3 Plus

LCD display

lcd-board

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.

LCD firmware

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

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

Resources

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.

Other projects

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

Thanks

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

License

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

advi3pp-marlin's People

Contributors

thinkyhead avatar erikzalm avatar anhardt avatar daid avatar boelle avatar jbrazio avatar wackerbarth avatar bkubicek avatar bob-the-kuhn avatar roxy-3d avatar bgort avatar alexborro avatar wurstnase avatar croadfeldt avatar nothinman avatar epatel avatar stv0g avatar consulitas avatar stb3 avatar whosawhatsis avatar magokimbra avatar scuba82 avatar buildrob avatar kaibob2 avatar lvd-ac avatar jcrocholl avatar chron0 avatar blubbfish avatar maikstohn avatar ixce avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.