Skip to content

Commit af7ee32

Browse files
committed
🐉 Ender-3 AIO bugfix-2.1.x
1 parent a9ded7f commit af7ee32

22 files changed

+1646
-363
lines changed

.github/FUNDING.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
github: [thinkyhead]
2-
patreon: thinkyhead
3-
custom: ["https://www.thinkyhead.com/donate-to-marlin"]
1+
github: [thisiskeithb]
2+
ko_fi: thisiskeithb
3+
custom: ["https://www.paypal.me/thisiskeithb"]
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#
2+
# test-ender-aio-build.yml
3+
# Do test build to catch compile errors
4+
#
5+
6+
name: EnderAIO CI
7+
8+
on:
9+
pull_request:
10+
paths-ignore:
11+
- config/**
12+
- data/**
13+
- docs/**
14+
- '**/*.md'
15+
push:
16+
paths-ignore:
17+
- config/**
18+
- data/**
19+
- docs/**
20+
- '**/*.md'
21+
22+
jobs:
23+
test_builds:
24+
name: Test Build
25+
if: github.repository == 'thisiskeithb/EnderAIO'
26+
27+
runs-on: ubuntu-22.04
28+
29+
steps:
30+
- name: Check out the PR
31+
uses: actions/checkout@v4
32+
33+
- name: Select Python 3.x
34+
uses: actions/setup-python@v5
35+
with:
36+
python-version: '3.9'
37+
architecture: 'x64'
38+
39+
- name: Install PlatformIO
40+
run: |
41+
pip install -U platformio
42+
pio upgrade --dev
43+
pio pkg update --global
44+
45+
- name: Build Marlin
46+
run: pio run

Marlin/Configuration.h

Lines changed: 119 additions & 104 deletions
Large diffs are not rendered by default.

Marlin/Configuration_adv.h

Lines changed: 125 additions & 123 deletions
Large diffs are not rendered by default.

Marlin/Ender_AIO_Configuration.h

Lines changed: 327 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,327 @@
1+
#pragma once
2+
3+
/**
4+
* Ender_AIO_Configuration.h
5+
*
6+
* This file includes basic settings like:
7+
*
8+
* - Getting Started with Ender AIO Firmware
9+
* - Custom Printer Name
10+
* - Motherboard
11+
* - Dual-Z Upgrade
12+
* - Extruder
13+
* - Filament Runout
14+
* - Probes
15+
* - Bed Leveling
16+
* - Hotend & Thermal / PID Settings
17+
* - LCD / TFT / Controller
18+
* - Input Shaping
19+
* - Sheet Profile Menu
20+
*/
21+
#define CONFIGURATION_H_VERSION 02010300
22+
#define ENDER_AIO_VERSION 20241019
23+
24+
//===========================================================================
25+
//================= Getting Started with Ender AIO Firmware =================
26+
//===========================================================================
27+
28+
/**
29+
* If you find this project helpful, please consider donating:
30+
*
31+
* Keith Bennett, Marlin tester/config builder: https://github.com/sponsors/thisiskeithb
32+
* https://ko-fi.com/thisiskeithb
33+
* Thank you and Happy Printing!
34+
*/
35+
36+
//===========================================================================
37+
//=========================== Custom Printer Name ===========================
38+
//===========================================================================
39+
40+
// Uncomment to set a custom printer name.
41+
//#define ENDER_AIO_CUSTOM_PRINTER_NAME "Ender-3"
42+
43+
//===========================================================================
44+
//=============================== Motherboard ===============================
45+
//===========================================================================
46+
47+
/**
48+
* Motherboard
49+
*
50+
* - SKR Mini E3 V3.0 (STM32G0B0RE/STM32G0B1RE)
51+
* - SKR Mini E3 V3.0.1 (STM32F401RC)
52+
* - SKR Mini E3 V2.0 (STM32F103RC/STM32F103RE)
53+
* - SKR Mini E3 V1.2 (STM32F103RC)
54+
* - SKR E3 Turbo (LPC1769)
55+
* - SKR V3.0 (STM32H743VI/STM32H723VG)
56+
* - SKR V3.0 EZ (STM32H743VI/STM32H723VG)
57+
*
58+
* More board support coming soon!
59+
*/
60+
#define ENDER_AIO_MOTHERBOARD_BTT_SKR_MINI_E3_V3_0
61+
//#define ENDER_AIO_MOTHERBOARD_BTT_SKR_MINI_E3_V3_0_1
62+
//#define ENDER_AIO_MOTHERBOARD_BTT_SKR_MINI_E3_V2_0
63+
//#define ENDER_AIO_MOTHERBOARD_BTT_SKR_MINI_E3_V1_2
64+
//#define ENDER_AIO_MOTHERBOARD_BTT_SKR_E3_TURBO
65+
//#define ENDER_AIO_MOTHERBOARD_BTT_SKR_V3_0
66+
//#define ENDER_AIO_MOTHERBOARD_BTT_SKR_V3_0_EZ
67+
68+
//===========================================================================
69+
//============================= Dual-Z Upgrade ==============================
70+
//===========================================================================
71+
72+
/**
73+
* Creality Ender-3 Dual Z Kit https://www.amazon.com/dp/B09N8QQDSP
74+
*
75+
* Note: If your motherboard supports five drivers, all five driver slots must be populated.
76+
*/
77+
//#define ENDER_AIO_DUAL_Z_KIT
78+
79+
//===========================================================================
80+
//================================ Extruder =================================
81+
//===========================================================================
82+
83+
/**
84+
* Extruder
85+
*
86+
* - Stock Ender-3 Extruder https://www.amazon.com/dp/B07WHYBVJ5
87+
* - WINSINN Dual Gear Extruder https://www.amazon.com/dp/B08D9CNHVN
88+
* - Genuine Bondtech BMG Extruder https://www.bondtech.se/product/bmg-extruder/
89+
* - Trianglelab DDB 2.0 Extruder https://www.amazon.com/dp/B08KP189KN
90+
*/
91+
#define ENDER_AIO_EXTRUDER_STOCK
92+
//#define ENDER_AIO_EXTRUDER_WINSINN_DUAL_GEAR
93+
//#define ENDER_AIO_EXTRUDER_BONDTECH_BMG
94+
//#define ENDER_AIO_EXTRUDER_TL_DDB_V2
95+
96+
// BMG/DDB with LDO 0.9° Slim Power motor on E
97+
#if ANY(ENDER_AIO_EXTRUDER_BONDTECH_BMG, ENDER_AIO_EXTRUDER_TL_DDB_V2)
98+
//#define ENDER_AIO_EXTRUDER_MOTOR_LDO_0_9_SLIM_POWER
99+
#endif
100+
101+
// Custom E-Steps
102+
//#define ENDER_AIO_CUSTOM_E_STEPS 93
103+
104+
// Invert the E stepper direction. Enable if extruder goes the wrong way.
105+
//#define ENDER_AIO_INVERT_E_DIR
106+
107+
//===========================================================================
108+
//============================= Filament Runout =============================
109+
//===========================================================================
110+
111+
/**
112+
* Filament Runout
113+
*
114+
* Basic NC-style filament runout support is available (but disabled) by default.
115+
*
116+
* Uncomment for BigTreeTech Smart Filament Sensor V2: https://github.com/bigtreetech/smart-filament-detection-module/tree/master/V2.0
117+
*/
118+
//#define ENDER_AIO_BTT_SMART_FILAMENT_SENSOR_V2
119+
120+
//===========================================================================
121+
//================================= Probes ==================================
122+
//===========================================================================
123+
124+
/**
125+
* Probe Options
126+
*
127+
* To simplify homing, Z endstop must be removed and the probe will be used for Z homing.
128+
*/
129+
130+
/**
131+
* BLTouch
132+
*
133+
* If your BLTouch did not come with a metal bracket, dude-in-a-box's "stiffer, with cutouts" BLTouch mount is recommended: https://www.thingiverse.com/thing:4390903
134+
*
135+
* Note: Offsets can also be customized via LCD under Configuration > Advanced Settings > Probe Offsets.
136+
*/
137+
//#define ENDER_AIO_BLTOUCH
138+
#if ENABLED(ENDER_AIO_BLTOUCH)
139+
#define ENDER_AIO_BLTOUCH_MOUNT_CREALITY_METAL // Metal bracket from Creality. Uses { -40, -9, 0 } probe offsets
140+
//#define ENDER_AIO_BLTOUCH_MOUNT_DUDE_IN_A_BOX // Uses { -43, -10, 0 } probe offsets
141+
//#define ENDER_AIO_BLTOUCH_MOUNT_CUSTOM { -40, -9, -0.0 } // Custom probe offsets { X, Y, Z }. Z should be a negative value
142+
#endif
143+
144+
/**
145+
* BIQU MicroProbe
146+
*
147+
* Note: Offsets can also be customized via LCD under Configuration > Advanced Settings > Probe Offsets.
148+
*/
149+
//#define ENDER_AIO_MICROPROBE
150+
#if ENABLED(ENDER_AIO_MICROPROBE)
151+
//#define ENDER_AIO_MICROPROBE_V1 // V2 is assumed by default. Uncomment if using V1
152+
153+
// Bracket Options
154+
#define ENDER_AIO_MICROPROBE_MOUNT_METAL // Metal Bracket from BIQU. Uses { -41.825, -5.198, 0 } probe offsets
155+
//#define ENDER_AIO_MICROPROBE_MOUNT_CUSTOM { -41.825, -5.198, -0.0 } // Custom probe offsets { X, Y, Z }. Z should be a negative value
156+
#endif
157+
158+
/**
159+
* Probe Connection
160+
*
161+
* Connect probe to ZPROBE (5-pin) or SERVO (3-pin) + ZPROBE (2-pin) by default.
162+
* Uncomment if connecting probe to SERVO + Z MIN/Z STOP instead.
163+
*/
164+
//#define ENDER_AIO_PROBE_CONNECTED_TO_Z_MIN_PORT
165+
166+
//===========================================================================
167+
//============================== Bed Leveling ===============================
168+
//===========================================================================
169+
170+
/**
171+
* Bed Leveling Type
172+
*
173+
* - Mesh Bed Leveling (default unless a probe option is enabled above)
174+
* - Bilinear
175+
* - Unified Bed Leveling
176+
*/
177+
#if ANY(ENDER_AIO_BLTOUCH, ENDER_AIO_MICROPROBE)
178+
#define ENDER_AIO_AUTO_BED_LEVELING_BILINEAR
179+
//#define ENDER_AIO_AUTO_BED_LEVELING_UBL
180+
#endif
181+
182+
//===========================================================================
183+
//===================== Hotend & Thermal / PID Settings =====================
184+
//===========================================================================
185+
186+
/**
187+
* Phaetus Dragonfly Hotend
188+
*
189+
* HT-NTC100K cartridge thermistor is recommended: https://www.amazon.com/gp/product/B09WDR1M5Q
190+
*/
191+
//#define ENDER_AIO_PHAETUS_DRAGONFLY_290C // 290°C maximum temperature (305°C - 15°C overshoot)
192+
193+
/**
194+
* Custom PID Settings
195+
*
196+
* Stock Ender-3 hotend and bed PID settings are enabled by default.
197+
*
198+
* If needed, uncomment ENDER_AIO_CUSTOM_HOTEND_PID and/or ENDER_AIO_CUSTOM_BED_PID to customize PID settings.
199+
*/
200+
//#define ENDER_AIO_CUSTOM_HOTEND_PID
201+
#if ENABLED(ENDER_AIO_CUSTOM_HOTEND_PID)
202+
#define ENDER_AIO_DEFAULT_Kp 21.73
203+
#define ENDER_AIO_DEFAULT_Ki 1.54
204+
#define ENDER_AIO_DEFAULT_Kd 76.55
205+
// Find your own by running "M303 E0 C8 S210" via serial to PID autotune the hotend at 210°C for 8 cycles.
206+
#endif
207+
208+
//#define ENDER_AIO_CUSTOM_BED_PID
209+
#if ENABLED(ENDER_AIO_CUSTOM_BED_PID)
210+
#define ENDER_AIO_DEFAULT_bedKp 47.93
211+
#define ENDER_AIO_DEFAULT_bedKi 7.94
212+
#define ENDER_AIO_DEFAULT_bedKd 192.91
213+
// Find your own by running "M303 E-1 C8 S65" via serial to PID autotune the bed at 65°C for 8 cycles.
214+
#endif
215+
216+
/**
217+
* Model Predictive Control for Hotend
218+
*
219+
* Stock Ender-3 hotend with 40W heater cartridge is configured by default.
220+
*
221+
* Note: Replaces PID for the hotend
222+
*/
223+
//#define ENDER_AIO_HOTEND_MPCTEMP
224+
225+
// If needed, uncomment ENDER_AIO_CUSTOM_HOTEND_MPCTEMP to customize MPCTEMP settings.
226+
// Use M306 T to autotune the model. See https://marlinfw.org/docs/gcode/M306.html for full details.
227+
//#define ENDER_AIO_CUSTOM_HOTEND_MPCTEMP
228+
#if ALL(ENDER_AIO_HOTEND_MPCTEMP, ENDER_AIO_CUSTOM_HOTEND_MPCTEMP)
229+
#define ENDER_AIO_CUSTOM_MPC_HEATER_POWER { 40.0f } // (W) Heat cartridge power.
230+
#define ENDER_AIO_CUSTOM_MPC_BLOCK_HEAT_CAPACITY { 10.46f } // (J/K) Heat block heat capacity. Use M306 T to autotune the model.
231+
#define ENDER_AIO_CUSTOM_MPC_SENSOR_RESPONSIVENESS { 0.7801f } // (K/s per ∆K) Rate of change of sensor temperature from heat block.
232+
#define ENDER_AIO_CUSTOM_MPC_AMBIENT_XFER_COEFF { 0.0564f } // (W/K) Heat transfer coefficients from heat block to room air with fan off.
233+
#define ENDER_AIO_CUSTOM_MPC_AMBIENT_XFER_COEFF_FAN255 { 0.1264f } // (W/K) Heat transfer coefficients from heat block to room air with fan on full.
234+
235+
// Filament Heat Capacity (joules/kelvin/mm)
236+
// Set with M306 H<value> in your filament or start G-code.
237+
#define ENDER_AIO_CUSTOM_FILAMENT_HEAT_CAPACITY_PERMM { 5.6e-3f } // PLA = 5.6e-3f (0.0056) J/K/mm
238+
// PETG = 3.6e-3f (0.0036) J/K/mm
239+
// ABS = 5.15e-3f (0.00515) J/K/mm
240+
// Nylon = 5.22e-3f (0.00522) J/K/mm
241+
#endif
242+
243+
//===========================================================================
244+
//========================= LCD / TFT / Controller ==========================
245+
//===========================================================================
246+
247+
/**
248+
* LCD / TFT / Controller
249+
*
250+
* - Stock Creality Ender-3 Screen
251+
* - BigTreeTech TFT35 E3 Dual Mode TFT
252+
*/
253+
#define ENDER_AIO_DISPLAY_STOCK
254+
//#define ENDER_AIO_DISPLAY_BTT_TFT35_E3_TFT
255+
#if ENABLED(ENDER_AIO_DISPLAY_BTT_TFT35_E3_TFT)
256+
#define ENDER_AIO_USES_BOTH_EXP_CABLES // Disable if only using one 10-pin EXP cable. SD card connection will be set to the motherboard instead of TFT.
257+
#endif
258+
259+
/**
260+
* LCD LANGUAGE
261+
*
262+
* Select the language to display on the LCD. These languages are available:
263+
*
264+
* en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hr, hu, it,
265+
* jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, sv, tr, uk, vi, zh_CN, zh_TW
266+
*
267+
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek (Greece)', 'el_CY':'Greek (Cyprus)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)' }
268+
*/
269+
#define ENDER_AIO_LCD_LANGUAGE en
270+
271+
/**
272+
* Boot & Status Screens
273+
*
274+
* Disabled by default to save flash space.
275+
*/
276+
//#define ENDER_AIO_SHOW_CUSTOM_BOOTSCREEN // Show the Ender dragon bootscreen on startup.
277+
//#define ENDER_AIO_STATUS_SCREEN_IMAGE // Show the "Ender-3" text in upper-left corner of status screen.
278+
279+
//===========================================================================
280+
//============================== Input Shaping ==============================
281+
//===========================================================================
282+
283+
/**
284+
* Input Shaping -- EXPERIMENTAL
285+
*
286+
* Zero Vibration (ZV) Input Shaping for X and/or Y movements.
287+
*
288+
* See https://github.com/MarlinFirmware/Marlin/pull/24797 for configuration & full details.
289+
*
290+
* Tune with M593 D<factor> F<frequency>:
291+
*
292+
* D<factor> Set the zeta/damping factor. If axes (X, Y, etc.) are not specified, set for all axes.
293+
* F<frequency> Set the frequency. If axes (X, Y, etc.) are not specified, set for all axes.
294+
* X<1> Set the given parameters only for the X axis.
295+
* Y<1> Set the given parameters only for the Y axis.
296+
*/
297+
//#define ENDER_AIO_INPUT_SHAPING
298+
#if ENABLED(ENDER_AIO_INPUT_SHAPING)
299+
#define ENDER_AIO_SHAPING_FREQ_X 40 // (Hz) The default dominant resonant frequency on the X axis.
300+
#define ENDER_AIO_SHAPING_FREQ_Y 40 // (Hz) The default dominant resonant frequency on the Y axis.
301+
#define ENDER_AIO_SHAPING_ZETA_X 0.15 // Damping ratio of the X axis (range: 0.0 = no damping to 1.0 = critical damping).
302+
#define ENDER_AIO_SHAPING_ZETA_Y 0.15 // Damping ratio of the Y axis (range: 0.0 = no damping to 1.0 = critical damping).
303+
//#define ENDER_AIO_SHAPING_MIN_FREQ 20.0 // By default the minimum of the shaping frequencies. Override to affect SRAM usage.
304+
//#define ENDER_AIO_SHAPING_MAX_STEPRATE 10000 // By default the maximum total step rate of the shaped axes. Override to affect SRAM usage.
305+
#endif
306+
307+
//===========================================================================
308+
//=========================== Sheet Profile Menu ============================
309+
//===========================================================================
310+
311+
/**
312+
* Sheet Profiles Menu
313+
*
314+
* Automatically adjust Z Probe Offset with M851 based on selected Sheet Profile.
315+
* Up to 10 sheet profiles are supported without changes.
316+
*/
317+
//#define ENDER_AIO_SHEET_PROFILES_MENU
318+
#if ENABLED(ENDER_AIO_SHEET_PROFILES_MENU)
319+
#define ENDER_AIO_SHEET_1_DESC "Smooth" // Short description of Sheet
320+
#define ENDER_AIO_SHEET_1_OFFSET -0.000 // Sheet offset. This should be a negative value.
321+
322+
#define ENDER_AIO_SHEET_2_DESC "Textured"
323+
#define ENDER_AIO_SHEET_2_OFFSET -0.000
324+
325+
//#define ENDER_AIO_SHEET_3_DESC "Satin"
326+
//#define ENDER_AIO_SHEET_3_OFFSET -0.000
327+
#endif

0 commit comments

Comments
 (0)