Met een BLtouch V3.1 Auto Leveling Sensor kun je automatisch bed-leveling uitvoeren. Je hoeft je dan dus niet meer druk te maken of je nozzle op de juiste print hoogte print. Een heel gemak en geruststelling. Om de BL-Touch V3.1 te kunnen gebruiken op een Big Tree SKR Mini E3 V1.2 bord met Marlin software met jouw X,Y ‘Nozzle to Probe’ offsets zul je deze zelf moeten compileren. In deze blog leg ik uit welke stappen je hiervoor allemaal moet volgen.
Installeren BL-Touch
Je bevestigt de BL-Touch met een afstandshouder aan je print-kop. Voor het aansluiten op de Big Tree SKR mini E3 V1.2 zag ik dat er een foutje zat in de aansluiting. Kijk je nl. naar het schema van dit bord dan zie je voor SERVOS (waarop je de 3-polig connector van je BL-Touch V3.1 aansluit):
GND +5V PA1
Kijk je echter naar de kabel die bij de BL-Touch wordt meegeleverd dan zie je:
Rood (VCC) – Blauw (GND) – Geel (SIG).
Dit betekent dus dat VCC en GND omgewisseld zijn en je dus Rood en Blauw op je connector van de BL-Touch V3.1 die naar je bord gaat moet omwisselen. Na deze aanpassing kun je de 3-polige stekker van BL-Touch V3.1 in de SERVOS poort en de 2-polige stekker in de PROBE poort van je Big Tree SKR Mini e3 bord stoppen.
Downloaden Source-Code Marlin
De Marlin software kun je rechtstreeks vanaf hier downloaden. Ikzelf prefereer echter om gebruik te maken van GIT zodat je gemakkelijker je source-files kunt updaten. Naast de Marlin software moet je ook de voorbeeld configuratie files downloaden die de juiste instellingen voor diverse borden bevat.
git clone https://github.com/MarlinFirmware/Marlin/ git clone https://github.com/MarlinFirmware/Configurations.git
Je zult met bovenstaande commando’s zien dat er 2 directories zijn aangemaakt: ‘Configurations’ en ‘Marlin’.
De ‘bugfix-2.0.x’ branch van bovenstaande GIT repositories bevat altijd de allerlaatste fixes van bugs. Je kunt naar deze branch switchen met het volgende commando (doe dit voor beide directories):
git checkout bugfix-2.0.x
Aangezien ik nu het Big Tree SKR Mini E3 V1.2 moederbord gebruik voor de Creality Ender 3 Pro moet je alle files van de directory ‘/Configurations/config/examples/Creality/Ender-3 Pro/BigTreeTech/SKR Mini E3 1.2/’ copiëren naar de directory ‘/Marlin/Marlin/’.
Open file ‘/Marlin/Marlin/Configuration.h’ in een editor en verander de volgende zaken:
- Enable BLTOUCH
- Pas BL-Touch offsets voor nozzle aan
- Enable Z_SAFE_HOMING
- Stel ‘Grid Points per Dimension’ in
Bug in Marlin Code voor Bigtree SKR Mini e3
Er blijkt een bug te zitten in de huidige 2.0.5.x source-code van Marlin m.b.t. de Bigtree SKR Mini e3 bord. Zie ook deze thread. Pas het volgende nog aan in de file ‘/Marlin/Marlin/src/pins/stm32f1/pins_BTT_SKR_MINI_E3.h’
Compileer en Build Software
Installeer Microsoft Visual Studio en start deze op. Installeer vervolgens de ‘PlatformIO’ plugin volgens deze instructies.
Kies nu in Microsoft Visual Studio ‘Open Project’ (/Marlin/platformio.ini). Hierna moet je de ‘platformio.ini’ file editten. Verander de regel met ‘env_default’ naar STM32F103RC_btt_512K.
Je kunt nu de firmware bouwen door CTRL+ALT+B te drukken. Je vind de uiteindelijke ‘firmware.bin’ file in de ‘/Marlin/.pio/build/STM32F103RC_btt_512K’ directory. Zie deze link als je problemen hebt met het compileren.
Flash Firmware
Zet nu de ‘firmware.bin’ file op je SD card en stop deze in te printer voordat je deze aanzet. De printer zal nu bij het opstarten de firmware uploaden en de file renamen naar ‘firmware.cur’.
Na een update van je Marlin software moet je (naast het wissen van je EEPROM in menu) alle settings van je printer weer op de ‘factory default’ zetten door het GCODE commando ‘M502’ (= reset) te sturen gevolgd door ‘M500′ (= store). Voor het versturen van GCODE commando’s gebruik ik nu het Terminal scherm van OctoPrint.
Verander verder in Ultimaker Cura aan je start G-CODE (Preferences > Configure Cura > Printers > Machine Settings) dat deze voortaan gebruik maakt van Auto Bed-Leveling.
Verander
G28
in
G28 ; Home G29 ; Auto bed-level (BL-Touch)
Eénmalig afstellen bed-leveling
Verhit je bed op de temperatuur waar je normaal op print en voer de volgende stappen éénmalig uit:
- Verwarm je bed voor
- Kies ‘Motion > Autohome’
- Kies ‘Move Axis > Move Z’ en beweeg nozzle naar printbed totdat je papier onder Nozzle nog net kunt bewegen. Indien je geen negatieve waarde kunt bereiken dan moet je ‘Soft Endstops’ uitzetten met GCODE commando ‘M211 S0’. Als je de Nozzle hebt afsteld moet je deze waarde opschrijven (A)
- Ga naar ‘Configuration > Probe Z Offset’ en schrijf deze waarde op (B)
- Tel A + B op en voer deze waarde in als nieuwe Z Offset (eventueel nog 0.1 aftrekken voor dikte van je papier)
- Zet voor de zekerheid ‘Soft Endstops weer aan met GCODE commando ‘M211 S1’
- Sla nu de instellingen op bij ‘Configuration > Store Settings’
Conclusie
Het installeren van de BL-Touch V3.1 is me niet meegevallen. Naast een fout schema ben ik wel even bezig geweest om de bug in de Marlin Software te vinden. Verder is nergens echt goede duidelijk informatie te vinden hoe je het precies moet aansluiten en instellen. Indien het eenmaal werkt dan is een BL-Touch V3.1 sensor ideaal. Je hoeft na het éénmalig instellen je nooit meer druk te maken of je bed-leveling goed staat ingesteld.
Bij toeval kwam ik net op tijd deze blog tegen. Zo scheelde het mij een stuk troubleshooting met de fout uit het schema, en de bug in Marlin. Heel erg bedankt! De Unified Bed Leveling lijkt goed te werken op mijn Ender.
Bedankt voor de terugkoppeling Marco. Was inderdaad even uitzoekwerk om het zo aan de praat te krijgen, maar werkt nu perfect!
Hallo Henri,
Zit er nog een wezenlijk verschil tussen jouw mainboard en mijn Creality 3D silent mainboard v4.2.7 ?
Dat durf ik niet te zeggen Frans. Ik heb geen idee.
Na discussie met een collega die een ander kaartje heeft gebruikt hevige twijfel, Laat ik de oude z-stop erin of haal ik hem eruit? Kan het kwaad of stoort het niet?
Ik heb zowel de oude Z-Stop als de BL-Touch aangesloten. De oude Z-Stop is eigenlijk niet nodig en zal hij nooit bereiken, maar kan geen kwaad 😉 .
Help nu wat?
Compiling .pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\eeprom_bl24cxx.cpp.o
Marlin\src\HAL\STM32F1\HAL.cpp:33:10: fatal error: STM32ADC.h: No such file or directory
******************************************************************
* Looking for STM32ADC.h dependency? Check our library registry!
*
* CLI > platformio lib search “header:STM32ADC.h”
* Web > https://platformio.org/lib/search?query=header:STM32ADC.h
*
******************************************************************
#include <STM32ADC.h>
^~~~~~~~~~~~
compilation terminated.
Compiling .pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\eeprom_flash.cpp.o
*** [.pio\build\STM32F103RC_btt_512K\src\src\HAL\STM32F1\HAL.cpp.o] Error 1
In file included from d:\marlin-2.0.x\marlin\src\inc\marlinconfig.h:49:0,
from Marlin\src\HAL\STM32F1\HAL_SPI.cpp:32:
d:\marlin-2.0.x\marlin\src\inc\SanityCheck.h:2434:23: error: ‘X_SLAVE_ADDRESS’ was not declared in this scope
INVALID_TMC_ADDRESS(X);
Zie hier hoe dit op te lossen.
Ja ik snapte wel dat ik waarschijnlijk een verkeerde reference naar een verkeerde build had en dat ie daarom een verkeerde library aanspreekt voor zover deze noob iets snapt van de foutmelding. Ik snap ook dat ik dit juist moet zetten maar jouw antwoord geeft mij een vb met een andere kaart en lichtjes andere libraries, de verkeerde library kan hij in de .ini niet vinden, dus ik snap ook niet waar hij die dan aanroept noch weet ik welke library dan wel de juiste is. Hoe had jij dan wel de juiste libaries, ik heb jouw links gebruikt, heb ook een ender 3 Pro en heb je instructies tot op de letter gevolgd, de fout zit dus bij Marlin of BigTreetech, heb de vraag daar al gesteld, maar heb je niet gewoon een download van jouw firmware dan? Snap niet dat ze die niet gewoon meegeven?
Ik heb de zojuist de code nogmaals gecompileerd voor je met de allerlaatste Marlin source-code. Hier kun je de binary vinden. Hopelijk werkt deze bij jou. Zoals gezegd is dit voor de Big Tree SKR Mini E3 V1.2 moederbord met BL-Touch.
Dankjewel klopt precies met wat ik heb, ik zal je morgen iets laten weten
Het schijnt te werken, nu moet ik bij het afstellen idd de softstops uitschakelen met g-commando’s enig idee hoe je dat doet zonder octoprint?
Zie mijn verhaal in de blog:
“Verander verder in Ultimaker Cura aan je start G-CODE (Preferences > Configure Cura > Printers > Machine Settings) dat deze voortaan gebruik maakt van Auto Bed-Leveling”
PS: de firmware die ik voor jou heb gecompileerd heeft de volgende BL-Touch Offsets: { -42, -5, 0 }
Ik vreesde er al voor, maar als je printer nog niet via Wifi bereikbaar is en je wilt niet telkens van kamer naar kamer lopen met je SD kaartje zal ik toch een iets makkelijker oplossing zoeken. misschien kan ik mijn raspberry tablet omvormen tot een octopi. Ik zal eens rondkijkenr
Het werkt, eindelijk het werkt, Wat een geklooi maar het werkt, Wreed bedankt jong. Heb mijn raspberry tablet dan toch maar omgevormd tot octoprint omdat al de rest niet werkte maar ik denk dat ik hem ook zo ga houden.
Fijn dat deze blog je heeft geholpen en bedankt voor de terugkoppeling.
Ik wil nog even melden na lange tijd had ik besloten om mijn ender 3 Pro te voorzien van een Swiss Micro direct drive met Full Metal Hot end, hiervoor moest ik 2 dingetjes wijzigen in de software maar dus ook al deze settings opnieuw instellen en corrigeren naar de huidige toestand, Ik heb 27 sites en tig problemen tegengekomen maar jouw uitleg heeft nog het meeste geholpen, echt top uitleg👍👍
leuk denk ik maar moet het nog lezen.
flsun cube printer 1.4 motherboard flsun software
ik hoop dat ik het hier mee red alvast bedankt goeie site trouwens toppie
Ik heb de bl touch V3.1 gekocht voor mijn ender 5 pro. Heb uit marlin git hub de bugfix 2.1 gehaald samen met de config. want creality firmware werkte totaal niet.
Heb visual code geinstalleerd.
Maar kom er niet echt uit. Ben wat dit betreft ook echt een leek.
Is er iemand met een step by step. Die toevallig een bl touch V3.1 heeft. Samen met een ender 5 pro. V4.2.2 motherboard en GPU STM32F103RET6.