BLTouch Wanhao MK2

Hi All,

We here at PAH Have just purchased 5 WDi3 with [MK2 Boards] & BLTough v3 for our EBME Workshop, a potential to purchase a further 15 if all goes well with firmware modification.

We are not happy with the stock firmware & have decided to move over to the ADV i3++, reading through the community we have noticed there could have been several issues to steer us away, We know without modification to the firmware we can’t get the BLTouch v3 working [We have modified].

We have managed to get the firmware modified in such a way that the printer now recognises it has a BLTouch v3 & it responds as it should with the leveling ok, we have also created a custom board to hook everything up neatly & have confirmed all is working physically. The issue we are facing is the offset, we would like to preconfigure the firmware with [Indianagio Front mount offset] but are unable to get the unit to keep the settings. during auto leveling it seams the firmware does not acknowledge the offset and the BLTouch v3 overshoots the bed. below are the list of modifications to the firmware we have done to get us this far, if possible we would like some help with the final stretch. any help would be much appreciated.

Platform.io
added to [default_envs = [i3plus-mark2-bltouch, i3plus-mark2-bltouch3]

[env:i3plus-mark2-bltouch]
platform = ${common.platform}
board = ${common.board}
framework = ${common.framework}
build_flags = ${common.build_flags} -D ADVi3PP_MARK2 -D ADVi3PP_BLTOUCH
board_build.f_cpu = ${common.board_build.f_cpu}
monitor_speed = ${common.monitor_speed}

[env:i3plus-mark2-bltouch3]
platform = ${common.platform}
board = ${common.board}
framework = ${common.framework}
build_flags = ${common.build_flags} -D ADVi3PP_MARK2 -D ADVi3PP_BLTOUCH3
board_build.f_cpu = ${common.board_build.f_cpu}
monitor_speed = ${common.monitor_speed}

pins_I3_PLUS_MARK2.h
Lines 38 to 48

#ifdef ADVi3PP_BLTOUCH
#define X_STOP_PIN 54 // PF0 / A0
#define Y_STOP_PIN 24 // PA2 / AD2
#define Z_STOP_PIN 6 // PH3 / PWM6
#define SERVO0_PIN 7 // PG1 / !RD
#else
#define X_STOP_PIN 54 // PF0 / A0
#define Y_STOP_PIN 24 // PA2 / AD2
#define Z_STOP_PIN 6 // PH3 / PCINT8
#define Z_MIN_PROBE_PIN 6 // PH3 / PCINT8
#endif

Configuration.h
Lines 774 to 778

#ifdef ADVi3PP_MARK2
#define ADVi3PP_BLTOUCH
#define BLTOUCH
#define BLTOUCH_V3
#endif

advi3pp_handlers.cpp
Line 84, 89, 105

auto Indianagio = F(“Indianagio”);
{mark2, teaching_tech_side, Indianagio};
{ +150, -4270 } // Custom

IMG_6769

Yes, BLTouch is only supported for Mark I since Mark II has already a bed leveling sensor. I do not plan to change this as there is very few requests to support BLTouch with Mark II.

Sorry, but I do not have the time right now to look at your modifications. Maybe later, but after the release of version 5.

1 Like

Thank you for the rapid reply @andrivet, we completely understand a busy schedules. We have recently discovered if we manually input the offset the firmware accepts. We shall tinker with the firmware to see if we can solve the issue. Please correct us if we’re wrong, once we have 1 machine setup & functioning correctly we should be able to export the eprom with [let’s say repeater] & import to the other machines to effectively duplicate ?. Will version 5.0 of ADVi3++ support 32bit boards or just remain on the 8 bit?.

From what we can see of this firmware build …! FANTASTIC !

Probably, but I have not tested this.

Version 5 will support the same printers than previous versions.