This guide is how I got my Voxelab Aquila 3D printer working properly with a BLTouch auto bed leveler and remote power on/off via Octoprint using a Solid State Relay.
Installing the BLTouch bed leveler is an exercise for the reader. Configuring it is however part of this guide.
Thanks to alexqzd, as the software and much of the documentation came from him.
There you can fetch alternate printer and display firmware images. The ones listed below are just the ones I use for my own printer.
- Flashing the printer firmware
- Flashing the display firmware
- Configure OctoPrint
- Display progress while printing from Octoprint
- Setting Z-Axis
- Setting Z-Axis quick guide
- Auto level the bed - Bed Visualizer
- Auto level the bed - Display panel
- Setting up Cura slicer
- Using the saved bed mesh
- Print vertical display bracket
- Print accessories
- Setting up UI power toggle
- Disable the Pi from powering the printer
- Configure iPhone app
- PETG Cura configuration
- On Windows, format the SDcard FAT32 4096 Byte
- Create a
firmware
directory in the root of the SD card - Download the image file
- Place the downloaded firmware binary into the
firmware
directory on the SD card - Put the SD card in the printer, and reboot the printer
- The screen should go red indicating the flash was successful
- Remove the SD card and reboot the printer
- On Windows, format the SDcard FAT32 4096 Byte (the
firmware
directory must be removed) - Download the display firmware
zip file. Extract it, and place the entire
DWIN_SET
directory and contents onto the root of the SD card - Remove the back of the display, insert the SD card, plug the display back in and reboot the printer
- The screen will go blue for a few seconds, then red, indicating the process is complete
- Remove the SD card, and reboot the printer
-
Flash an SD card using the Rasperry Pi Imager with the OctoPi firmware
-
Configure the Pi
-
Configure the default printer settings (all settings not shown are default)
-
General
- Name: Aquila
- Model: Voxelab Aquila
-
Print bed & build volume:
- Form factor: Rectangular
- Origin: Lower left
- Heated bed: True
- Width(X): 220mm
- Depth(Y): 220mm
- Height(Z): 250mm
-
Add the following GCode scripts:
-
Before print jobs start:
;Jyers gcode M75 ;Start Print Job on Display M117 <F>{{ event.name }} ;Send Filename to Display
-
After print job completes
G91 ;Relative positioning G1 E-2 F2700 ;Retract filament a bit G1 E-2 Z0.2 F2400 ;Retract filament more and raise Z G1 X5 Y5 F3000 ;Wipe out G1 Z10 ;Raise Z more G90 ;Absolute positioning ;disable all heaters M104 S0 ; hotend M140 S0 ; bed ;disable fan M106 S0 ; disable all steppers ;M84 X Y E ; (all except Z) M84 ; (all) ;Jyers gcode M77 ;Stop Print Job on Display
-
After print job is cancelled:
G91 ;Relative positioning G1 E-2 F2700 ;Retract filament a bit G1 E-2 Z0.2 F2400 ;Retract filament more and raise Z G1 X5 Y5 F3000 ;Wipe out G1 Z10 ;Raise Z more G90 ;Absolute positioning ;disable all heaters M104 S0 ; hotend M140 S0 ; bed ;disable fan M106 S0 ; disable all steppers ;M84 X Y E ; (all except Z) M84 ; (all) ;Jyers code M77 ;Stop Print Job on Display
-
After print job is paused
;Jyers code M76 ;Pause Print Job on Display
-
Before print job is resumed
;Jyers code M75 ;Start Print Job on Display
-
-
To have the UI display the progress when printing from Octoprint, within octoprint,
install the M73 Progress
plugin.
The following information was taken and slightly adapted from this website.
Home the hot end
G28
Reset Z0-Offset
M851 Z0
Store settings to EEPROM
M500
Set active parameters
M501
Display active parameters
M503
Home the hot end and show the Z-Axis
G28
Move the nozzle to true 0 offset
G1 F60 Z0
Disable soft end stops (so the hot end can go below zero)
M211 S0
Using the 'Control' feature in Octoprint, move the print head down to the table until a piece of paper can barely move under it.
Take note of what the Z axis says on the display. Mine was 2.57
. Add a
fraction to add for the paper, so mine would then be 2.58
.
Set the Z-Axis (note we've converted the number from the last step to be negative)
M851 Z -2.58
Enable soft end stops
M211 51
Save settings to EEPROM
M500
Set active parameters
M501
Display current settings
M503
Home the hot end
G28
Move the hot end to true zero offset to see results
G1 F60 Z0
First half script:
G28
M851 Z0
M500
M501
M503
G28
G1 F60 Z0
M211 S0
Using the 'Control' feature in Octoprint, move the print head down to the table until a piece of paper can barely move under it.
Take note of what the Z axis says on the display. Mine was 2.57
. Add a
fraction to add for the paper, so mine would then be 2.58
.
Second half script:
M851 Z -2.58
M211 51
M500
M501
M503
G28
G1 F60 Z0
On the display, go to Level
, Create new mesh
. When complete, save it to
EEPROM.
Your ideal tolerance range when viewing the mesh is less than 0.1
.
Be certain to read the using the saved bed mesh section a bit later in this document, or the saved mesh won't be used!
Install the Bed Visualizer
plugin.
Go to the plugin's settings. Each section below is for the various configuration tabs.
Paste the following GCODE into 'Collection tab', 'GCODE Commands' window:
M140 S60 ; starting by heating the bed for nominal mesh accuracy
M117 Homing all axes ; send message to printer display
G28 ; home all axes
M420 S0 ; Turning off bed leveling while probing, if firmware is set
; to restore after G28
M117 Heating the bed ; send message to printer display
M190 S60 ; waiting until the bed is fully warmed up
M300 S1000 P500 ; chirp to indicate bed mesh levels is initializing
M117 Creating the bed mesh levels ; send message to printer display
M155 S30 ; reduce temperature reporting rate to reduce output pollution
@BEDLEVELVISUALIZER ; tell the plugin to watch for reported mesh
G29 T ; run bilinear probing
M155 S3 ; reset temperature reporting
M140 S0 ; cooling down the bed
M500 ; store mesh in EEPROM
Enable or disable 'Save Mesh'.
Enable or disable 'Webcam while processing'.
Leave all other settings default.
You can view your mesh data in the Data
tab.
This will allow you to use Cura to slice, and send jobs directly to the printer through Octoprint.
Download and install Ultimaker Cura
Install the OctoPrint Connection plug-in from the Cura Marketplace.
Install the Auto-Orientation plugin.
Configure the printer:
- Name: Voxelab Aquila
- X (Width): 220mm
- Y (Depth): 220mm
- Z (Height): 250mm
- Heated bed: Y
- G-code flavor: Marlin
- Leave everything else default
Then simply click 'Print with OctoPrint' when you have a job loaded.
In the Manage Printer section of Cura settings, add the following line directly
beneath the G28
line in your printer's "Start G-Code":
M420 S1 ; Use saved bed mesh
The vertical display bracket files can be found here.
That project was downloaded from here.
All accessory STL files can be found here.
- Pi3 under chassis mount
- Y-Axis camera mount
- Filament guide
- Solid State Relay rail mount
Connect a relay to the Ground connection of the Pi, and GPIO (BCM) pin 21.
Install the PSU Control
plugin into OctoPi, and configure as follows:
GPIO Device
/dev/gpiochip0
Switching
- Switching method:
GPIO
- On/off GPIO pin:
21
(use invert depending on your relay) - Enable switching with GCode commands:
Yes
- On G-Code command:
M80
- Off G-Code command:
M81
- Turn off on unrecoverable error:
Yes
Sensing:
Sensing method: Internal
Cut a small piece of electrical tape, and place it over the 5v pin of the USB cable that connects to the Pi.
In OctoPrint, install the OctoPod
notifications.
In OctoPrint, install the Obico for OctoPrint
plugin.
Proceed through the Obico configuration.
Install the OctoPod
plugin from the App Store.
Go to Settings
.
Click Printers
.
Click the +
icon to add a new printer.
Use the The Spaghetti Detective
option.
Proceed through the steps.
Once done, you will be asked to authorize using a QR Code. In OctoPrint settings,
go to Printer
, Application Keys
and generate a new App Key. This will result
in a QR Code being displayed in the UI that you then capture with your phone.
- Settings
- Printers
- Manage Printers
- Materials
- Select 'Generic PETG'
- Click the 'hamburger' in the top-right corner
- Click 'Duplicate'
- Rename to "Custom PETG"
- Print Settings
- Set "Default printing temperature" to
225
- Set "Retraction Distance" to
7mm
- Set "Retraction Speed" to
55mm/s
- Click the 'hamburger'
- Click 'Activate'