
Compiling & Uploading ADVi3++ Firmware
Back in 2019 I took the plunge & purchased a WDi3p Clone [Balco 3D Printer Touch] from a well known German superstore chain here in the UK, in itself the printer is a fantastic unit with some great features....
-
Large build size - 200mm x 200mm x 180mm
-
4.3"Touchscreen LCD
-
Heated bed for improved filament adhesion
-
Print directly from SD cards
-
0.1 - 0.4 mm layer resolution
-
Support for a wide range of filament
-
ETC. ETC
​
The robust sturdy design is great for anyone getting into the 3D Printing world.
​
So I assembled the 3D Printer with its well thought out instruction guide, levelled the gantry, Z rails, Y rails, bed & begun printing. After a few months of playing around with the printer & discovering different settings, quirks & faults; I found that other people out there have started to modify their printers for improved stability & quality of life ...... I got the bug.



LCD display tilt
Part cooling duct


LED mount
Gantry bracing
​More time passed & I decided it was time for some hardware upgrades, I'd seen people install a BLTouch smart 3.1 auto bed levelling sensor from Antclabs inc to their printers with nothing but good words to say about them.... so I decided to get one. The sensor arrived about a week later, a neat little unit for the price & what it claims to be able to do.

I went to plug the BLTouch smart in & this is where my problems began. I knew my printer was capable of a bed levelling sensor but had done little to no research in to what it was actually compatible with. I started fumbling around with the Expansion board on the printhead & looked at the mainboard underneath the printer... to find there was not an easy way to plug in the BLTouch smart.
​
So, stumbling back to the internet I found a couple posts that others have created showing where I can solder extra cables to the mainboard & connect the BLTouch smart, GREAT! Time to play..... Wrong. The unit may well be installed, but now I face the issue that the firmware wasn't aware of its existence or how to use it. Back to the internet I stumble, flicking through forum posts to discover that I needed a modified or custom firmware for the printer. Looking for a modified version of the Balco firmware lead to a dead end... It is a proprietary bit of software for this printer to which Balco will not release.
However, all was not lost. I stumbled across advi3++ by Sebastien Andrivet an alternative open-source firmware for Wanhao i3 Plus 3D printers & clones. It's based of of the latest revision of Marlin & adds features like the stepper motor tuning, bed levelling & thermal runaway protection. It has a great intuitive menu design & diagnostic set, most importantly it supports BLTouch Smart. GREAT!! Just what I needed, I signed up to Sebastian's patreon, joined the community forum & downloaded the precompiled firmware. I followed the fantastically in-depth manual on how to upload the firmware to my printer....... just to find it still does not have support for BLTouch Smart on a MK II v5.4 mainboard. I Give UP! Getting frustrated I put my printer on the shelf & left it gathering dust for over a year.
A year down the line [During the Covid Pandemic] I decided to pick up my printer & participate making facemask adapters & various Knick knacks to help support where I work. I log back into the forum to try again, this time around not rushing into things & asking a few questions to Sebastien & the community. Feeling fairly confident with the answers that I received, I decided to download the ADVi3++ source code & attempt to build my own custom version of ADVi3++ firmware including the BLTouch Smart pins. Several attempts & questions later I was successful & finally had my BLTouch Smart working.
The guide below should help anyone with a MK II v5.4 mainboard from start to finish with the following...
​
-
Where to download all required software needed for the build environment
-
How to set up the build environment ready for the firmware modification
-
Where to download & modify the ADVi3++ source code
-
How to compile & upload the modified firmware to your 3D Printer

So lets get down to it, here's how it was made, my thoughts & how to install it...
Select your firmware revision
Each revision below has a slightly different way of setting up
Version 4.x.x - 4.x.6
Marlin. 1.x.x
Versions - 5.x.x - 5.6.x
Marlin 2.x.x
Version 5.7.x
Marlin 2.x.x