Compare commits

..

16 Commits

8 changed files with 58 additions and 37 deletions

View File

@@ -634,7 +634,8 @@
// Above this temperature the heater will be switched off. // Above this temperature the heater will be switched off.
// This can protect components from overheating, but NOT from shorts and failures. // This can protect components from overheating, but NOT from shorts and failures.
// (Use MINTEMP for thermistor short/failure protection.) // (Use MINTEMP for thermistor short/failure protection.)
#define HEATER_0_MAXTEMP 275 // TODO: Change HEATER_0_MAXTEMP to 300 after Sprite Pro extruder upgrade
#define HEATER_0_MAXTEMP 275 // MBO
#define HEATER_1_MAXTEMP 275 #define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275 #define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275 #define HEATER_3_MAXTEMP 275
@@ -834,8 +835,8 @@
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature #define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
// is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max. // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
//#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) #define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of flash) // MBO
#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) #define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of flash) // MBO
#endif #endif
// @section safety // @section safety
@@ -855,7 +856,8 @@
* Note: For Bowden Extruders make this large enough to allow load/unload. * Note: For Bowden Extruders make this large enough to allow load/unload.
*/ */
#define PREVENT_LENGTHY_EXTRUDE #define PREVENT_LENGTHY_EXTRUDE
#define EXTRUDE_MAXLENGTH 600 // TODO: To be decrease with Sprite Pro?
#define EXTRUDE_MAXLENGTH 600 // MBO
//=========================================================================== //===========================================================================
//======================== Thermal Runaway Protection ======================= //======================== Thermal Runaway Protection =======================
@@ -1170,7 +1172,7 @@
//#define ENDSTOP_NOISE_THRESHOLD 2 //#define ENDSTOP_NOISE_THRESHOLD 2
// Check for stuck or disconnected endstops during homing moves. // Check for stuck or disconnected endstops during homing moves.
//#define DETECT_BROKEN_ENDSTOP #define DETECT_BROKEN_ENDSTOP // MBO: enable
//============================================================================= //=============================================================================
//============================== Movement Settings ============================ //============================== Movement Settings ============================
@@ -1197,6 +1199,7 @@
* Override with M92 * Override with M92
* X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]] * X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
*/ */
// TODO: change e-step (93) to fit Sprite Pro extruder => https://www.youtube.com/watch?v=lH-RrjtiC8M
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 } #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 93 }
/** /**
@@ -1244,7 +1247,7 @@
* When changing speed and direction, if the difference is less than the * When changing speed and direction, if the difference is less than the
* value set here, it may happen instantaneously. * value set here, it may happen instantaneously.
*/ */
#define CLASSIC_JERK //#define CLASSIC_JERK
#if ENABLED(CLASSIC_JERK) #if ENABLED(CLASSIC_JERK)
#define DEFAULT_XJERK 10.0 #define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0 #define DEFAULT_YJERK 10.0
@@ -1298,15 +1301,19 @@
// See https://marlinfw.org/docs/configuration/probes.html // See https://marlinfw.org/docs/configuration/probes.html
// //
//
// MBO: BLTouch 5 pins connector tutorial : https://www.youtube.com/watch?v=qK5ThhZEKw0
//
/** /**
* Enable this option for a probe connected to the Z-MIN pin. * Enable this option for a probe connected to the Z-MIN pin.
* The probe replaces the Z-MIN endstop and is used for Z homing. * The probe replaces the Z-MIN endstop and is used for Z homing.
* (Automatically enables USE_PROBE_FOR_Z_HOMING.) * (Automatically enables USE_PROBE_FOR_Z_HOMING.)
*/ */
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN //#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN // MBO: disable
// Force the use of the probe for Z-axis homing // Force the use of the probe for Z-axis homing
//#define USE_PROBE_FOR_Z_HOMING #define USE_PROBE_FOR_Z_HOMING // MBO: enable
/** /**
* Z_MIN_PROBE_PIN * Z_MIN_PROBE_PIN
@@ -1321,7 +1328,7 @@
* - Normally-closed (NC) also connect to GND. * - Normally-closed (NC) also connect to GND.
* - Normally-open (NO) also connect to 5V. * - Normally-open (NO) also connect to 5V.
*/ */
//#define Z_MIN_PROBE_PIN -1 #define Z_MIN_PROBE_PIN PC14 // MBO: SKR Mini E3 v2
/** /**
* Probe Type * Probe Type
@@ -1515,12 +1522,14 @@
// PROBE_OFFSET with original extruder fans // PROBE_OFFSET with original extruder fans
//#define NOZZLE_TO_PROBE_OFFSET { -44, -14, -2.725 } //#define NOZZLE_TO_PROBE_OFFSET { -44, -14, -2.725 }
// PROBE_OFFSET with SATSANA fangs extruder fans // PROBE_OFFSET with SATSANA fangs extruder fans
#define NOZZLE_TO_PROBE_OFFSET { -51, -12, 0 } // TODO: To be change after Sprite Pro upgrade
#define NOZZLE_TO_PROBE_OFFSET { -51, -12, 0 } // MBO
// Most probes should stay away from the edges of the bed, but // Most probes should stay away from the edges of the bed, but
// with NOZZLE_AS_PROBE this can be negative for a wider probing area. // with NOZZLE_AS_PROBE this can be negative for a wider probing area.
#define PROBING_MARGIN 15 #define PROBING_MARGIN 10 // MBO: change from 15 to 10
// X and Y axis travel speed (mm/min) between probes // X and Y axis travel speed (mm/min) between probes
#define XY_PROBE_FEEDRATE (133*60) #define XY_PROBE_FEEDRATE (133*60)
@@ -1633,8 +1642,8 @@
// Require minimum nozzle and/or bed temperature for probing // Require minimum nozzle and/or bed temperature for probing
//#define PREHEAT_BEFORE_PROBING //#define PREHEAT_BEFORE_PROBING
#if ENABLED(PREHEAT_BEFORE_PROBING) #if ENABLED(PREHEAT_BEFORE_PROBING)
#define PROBING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time #define PROBING_NOZZLE_TEMP 150 // (°C) Only applies to E0 at this time // MBO: change from 120 to 150
#define PROBING_BED_TEMP 50 #define PROBING_BED_TEMP 60 // MBO: change from 50 to 60
#endif #endif
// For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1 // For Inverting Stepper Enable Pins (Active Low) use 0, Non Inverting (Active High) use 1
@@ -1872,7 +1881,8 @@
// After a runout is detected, continue printing this length of filament // After a runout is detected, continue printing this length of filament
// before executing the runout script. Useful for a sensor at the end of // before executing the runout script. Useful for a sensor at the end of
// a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead. // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
#define FILAMENT_RUNOUT_DISTANCE_MM 8 // TODO: to be changed after Sprite Pro and new filament sensor installation
#define FILAMENT_RUNOUT_DISTANCE_MM 8 // MBO
#ifdef FILAMENT_RUNOUT_DISTANCE_MM #ifdef FILAMENT_RUNOUT_DISTANCE_MM
// Enable this option to use an encoder disc that toggles the runout pin // Enable this option to use an encoder disc that toggles the runout pin
@@ -1943,10 +1953,10 @@
/** /**
* Auto-leveling needs preheating * Auto-leveling needs preheating
*/ */
#define PREHEAT_BEFORE_LEVELING #define PREHEAT_BEFORE_LEVELING // MBO
#if ENABLED(PREHEAT_BEFORE_LEVELING) #if ENABLED(PREHEAT_BEFORE_LEVELING)
#define LEVELING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time #define LEVELING_NOZZLE_TEMP 120 // (°C) Only applies to E0 at this time
#define LEVELING_BED_TEMP 50 #define LEVELING_BED_TEMP 60 //
#endif #endif
/** /**
@@ -2150,7 +2160,7 @@
#define HOMING_FEEDRATE_MM_M { (20*60), (20*60), (4*60) } #define HOMING_FEEDRATE_MM_M { (20*60), (20*60), (4*60) }
// Validate that endstops are triggered on homing moves // Validate that endstops are triggered on homing moves
#define VALIDATE_HOMING_ENDSTOPS #define VALIDATE_HOMING_ENDSTOPS // MBO: enable
// @section calibrate // @section calibrate
@@ -2416,7 +2426,7 @@
* *
* View the current statistics with M78. * View the current statistics with M78.
*/ */
//#define PRINTCOUNTER #define PRINTCOUNTER // MBO: enable
#if ENABLED(PRINTCOUNTER) #if ENABLED(PRINTCOUNTER)
#define PRINTCOUNTER_SAVE_INTERVAL 60 // (minutes) EEPROM save interval during print. A value of 0 will save stats at end of print. #define PRINTCOUNTER_SAVE_INTERVAL 60 // (minutes) EEPROM save interval during print. A value of 0 will save stats at end of print.
#endif #endif
@@ -3354,17 +3364,17 @@
#endif #endif
// Support for Adafruit NeoPixel LED driver // Support for Adafruit NeoPixel LED driver
#define NEOPIXEL_LED #define NEOPIXEL_LED // MBO: enable
#if ENABLED(NEOPIXEL_LED) #if ENABLED(NEOPIXEL_LED)
#define NEOPIXEL_TYPE NEO_GRB // NEO_GRBW, NEO_RGBW, NEO_GRB, NEO_RBG, etc. #define NEOPIXEL_TYPE NEO_GRB // NEO_GRBW, NEO_RGBW, NEO_GRB, NEO_RBG, etc.
// See https://github.com/adafruit/Adafruit_NeoPixel/blob/master/Adafruit_NeoPixel.h // See https://github.com/adafruit/Adafruit_NeoPixel/blob/master/Adafruit_NeoPixel.h
#define NEOPIXEL_PIN PA8 // LED driving pin #define NEOPIXEL_PIN PA8 // MBO: LED driving pin for BBT SKR E3 Mini v2.0
//#define NEOPIXEL2_TYPE NEOPIXEL_TYPE //#define NEOPIXEL2_TYPE NEOPIXEL_TYPE
//#define NEOPIXEL2_PIN 5 //#define NEOPIXEL2_PIN 5
#define NEOPIXEL_PIXELS 17 // Number of LEDs in the strip. (Longest strip when NEOPIXEL2_SEPARATE is disabled.) #define NEOPIXEL_PIXELS 17 // Number of LEDs in the strip. (Longest strip when NEOPIXEL2_SEPARATE is disabled.) // MBO: 17
#define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once. //#define NEOPIXEL_IS_SEQUENTIAL // Sequential display for temperature change - LED by LED. Disable to change all LEDs at once.
#define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) #define NEOPIXEL_BRIGHTNESS 127 // Initial brightness (0-255) // MBO: 127
#define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup #define NEOPIXEL_STARTUP_TEST // Cycle through colors at startup // MBO: enable
// Support for second Adafruit NeoPixel LED driver controlled with M150 S1 ... // Support for second Adafruit NeoPixel LED driver controlled with M150 S1 ...
//#define NEOPIXEL2_SEPARATE //#define NEOPIXEL2_SEPARATE

View File

@@ -1032,23 +1032,25 @@
// //
// Add the G35 command to read bed corners to help adjust screws. Requires a bed probe. // Add the G35 command to read bed corners to help adjust screws. Requires a bed probe.
// //
#define ASSISTED_TRAMMING #define ASSISTED_TRAMMING // MBO: enable
#if ENABLED(ASSISTED_TRAMMING) #if ENABLED(ASSISTED_TRAMMING)
// Define from 3 to 9 points to probe. // Define from 3 to 9 points to probe.
//#define TRAMMING_POINT_XY { { 35, 30 }, { 205, 30 }, { 205, 205 }, { 35, 205 } } //#define TRAMMING_POINT_XY { { 35, 30 }, { 205, 30 }, { 205, 205 }, { 35, 205 } }
#define TRAMMING_POINT_XY { { 35, 30 }, { 180, 30 }, { 180, 200 }, { 35, 200 } } //#define TRAMMING_POINT_XY { { 35, 200 }, { 35, 30 }, { 180, 30 }, { 180, 200 } }
// TODO: Change after Sprite Pro upgrade
#define TRAMMING_POINT_XY { { 27, 205 }, { 25, 35 }, { 184, 30 }, { 184, 205 } } // MBO
// Define position names for probe points. // Define position names for probe points.
#define TRAMMING_POINT_NAME_1 "Front-Left" #define TRAMMING_POINT_NAME_1 "Back-Left"
#define TRAMMING_POINT_NAME_2 "Front-Right" #define TRAMMING_POINT_NAME_2 "Front-Left"
#define TRAMMING_POINT_NAME_3 "Back-Right" #define TRAMMING_POINT_NAME_3 "Front-Right"
#define TRAMMING_POINT_NAME_4 "Back-Left" #define TRAMMING_POINT_NAME_4 "Back-Right"
#define RESTORE_LEVELING_AFTER_G35 // Enable to restore leveling setup after operation #define RESTORE_LEVELING_AFTER_G35 // Enable to restore leveling setup after operation
//#define REPORT_TRAMMING_MM // Report Z deviation (mm) for each point relative to the first #define REPORT_TRAMMING_MM // Report Z deviation (mm) for each point relative to the first // MBO: enable
#define ASSISTED_TRAMMING_WIZARD // Add a Tramming Wizard to the LCD menu #define ASSISTED_TRAMMING_WIZARD // Add a Tramming Wizard to the LCD menu // MBO: enable
//#define ASSISTED_TRAMMING_WAIT_POSITION { X_CENTER, Y_CENTER, 30 } // Move the nozzle out of the way for adjustment //#define ASSISTED_TRAMMING_WAIT_POSITION { X_CENTER, Y_CENTER, 30 } // Move the nozzle out of the way for adjustment
@@ -1098,7 +1100,7 @@
#endif #endif
//#define SHAPING_MIN_FREQ 20 // By default the minimum of the shaping frequencies. Override to affect SRAM usage. //#define SHAPING_MIN_FREQ 20 // By default the minimum of the shaping frequencies. Override to affect SRAM usage.
//#define SHAPING_MAX_STEPRATE 10000 // By default the maximum total step rate of the shaped axes. Override to affect SRAM usage. //#define SHAPING_MAX_STEPRATE 10000 // By default the maximum total step rate of the shaped axes. Override to affect SRAM usage.
//#define SHAPING_MENU // Add a menu to the LCD to set shaping parameters. #define SHAPING_MENU // Add a menu to the LCD to set shaping parameters.
#endif #endif
// @section motion // @section motion
@@ -2657,7 +2659,8 @@
// This short retract is done immediately, before parking the nozzle. // This short retract is done immediately, before parking the nozzle.
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 50 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 50 // (mm/s) Unload filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_UNLOAD_LENGTH 400 // (mm) The length of filament for a complete unload. // TODO: Change FILAMENT_CHANGE_UNLOAD_LENGTH after Sprite Pro upgrade
#define FILAMENT_CHANGE_UNLOAD_LENGTH 400 // (mm) The length of filament for a complete unload. // MBO
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
// Set to 0 for manual unloading. // Set to 0 for manual unloading.
@@ -2666,7 +2669,8 @@
// 0 to disable start loading and skip to fast load only // 0 to disable start loading and skip to fast load only
#define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 60 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 60 // (mm/s) Load filament feedrate. This can be pretty fast.
#define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate.
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 400 // (mm) Load length of filament, from extruder gear to nozzle. // TODO: Change FILAMENT_CHANGE_FAST_LOAD_LENGTH after Sprite Pro upgrade
#define FILAMENT_CHANGE_FAST_LOAD_LENGTH 400 // (mm) Load length of filament, from extruder gear to nozzle. // MBO
// For Bowden, the full length of the tube and nozzle. // For Bowden, the full length of the tube and nozzle.
// For direct drive, the full length of the nozzle. // For direct drive, the full length of the nozzle.
//#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted.

View File

@@ -8,6 +8,7 @@
6. [Printer calibration](#printer-calibration) 6. [Printer calibration](#printer-calibration)
7. [3D printed custom parts & mods](#3d-printed-custom-parts--mods) 7. [3D printed custom parts & mods](#3d-printed-custom-parts--mods)
8. [Klipper custom firmware](#klipper-custom-firmware) 8. [Klipper custom firmware](#klipper-custom-firmware)
8. [BBT SKR mini E3 v2 pinout](#btt-skr-mini-e3-v2-pinout)
# Octoprint backup archive # Octoprint backup archive
@@ -229,13 +230,16 @@ After firware update, proceed with the different calibrations in the above order
| Item | 3D files | Final result | | Item | 3D files | Final result |
|-------|-----------|--------------| |-------|-----------|--------------|
| [BTT SKR E3 mini mainboard](https://www.aliexpress.com/item/4001050145015.html) | n/a | ![show off](images/mods/btt-skr-e3-mini-v2.jpg) | | [BTT SKR E3 mini mainboard](https://www.aliexpress.com/item/4001050145015.html) - [pinout](#btt-skr-mini-e3-v2-pinout) | n/a | ![show off](images/mods/btt-skr-e3-mini-v2.jpg) |
| [BLTouch](https://www.aliexpress.com/item/32777786433.html) for Automatic Bed Leveling (ABL) | n/a | ![show off](images/mods/bltouch.jpg) | | [BLTouch](https://www.aliexpress.com/item/32777786433.html) for Automatic Bed Leveling (ABL) | n/a | ![show off](images/mods/bltouch.jpg) |
| _Raspberry Pi 4 / Octoprint case_ ([tutorial to enable power switch/LED](https://web.archive.org/web/20250101204129/https://embeddedcomputing.com/technology/open-source/development-kits/raspberry-pi-power-up-and-shutdown-with-a-physical-button)) | [Printable](https://www.printables.com/model/1008828-creality-ender-3-station-lcd-raspberry-pi-4) | ![show off](images/mods/octoprint-case.jpg) | | _Raspberry Pi 4 / Octoprint case_ ([tutorial to enable power switch/LED](https://web.archive.org/web/20250101204129/https://embeddedcomputing.com/technology/open-source/development-kits/raspberry-pi-power-up-and-shutdown-with-a-physical-button)) | [Printable](https://www.printables.com/model/1008828-creality-ender-3-station-lcd-raspberry-pi-4) | ![show off](images/mods/octoprint-case.jpg) |
| _Ender 3 PSU Support Bracket_ | [Thingiverse](https://www.thingiverse.com/thing:3444134) | ![show off](images/mods/psu-support-bracket.jpg)| | _Ender 3 PSU Support Bracket_ | [Thingiverse](https://www.thingiverse.com/thing:3444134) | ![show off](images/mods/psu-support-bracket.jpg)|
| Filament runout sensor | n/a | ![show off](images/mods/filament-runout.jpg) | | Filament runout sensor | n/a | ![show off](images/mods/filament-runout.jpg) |
| Filament Guide | [Thingiverse](https://www.thingiverse.com/thing:6930315) | ![show off](images/mods/filament-guide.jpg) | | Filament Guide | [Thingiverse](https://www.thingiverse.com/thing:6930315) | ![show off](images/mods/filament-guide.jpg) |
| Gantry led holder | n/a | ![show off](images/mods/gantry-led-holder.jpg) | | Gantry led holder | n/a | ![show off](images/mods/gantry-led-holder.jpg) |
| Filament runout sensor | n/a | ![show off](images/mods/filament-runout.jpg) |
| Filament Guide | [Thingiverse](https://www.thingiverse.com/thing:6930315) | ![show off](images/mods/filament-guide.jpg) |
| Gantry led holder | n/a | ![show off](images/mods/gantry-led-holder.jpg) |
| Aukey LM1 WebCam holder | [Thingiverse](https://www.thingiverse.com/thing:4683831) | ![show off](images/mods/aukey-LM1-webcam-holder.jpg) | | Aukey LM1 WebCam holder | [Thingiverse](https://www.thingiverse.com/thing:4683831) | ![show off](images/mods/aukey-LM1-webcam-holder.jpg) |
| PSU exhaust fan silencer | [Printable](https://www.printables.com/model/84197-60mm-exhaust-fan-silencer-flowmaster-psu-ender3nep/comments#preview.file.GpvjC) | ![show off](images/mods/psu-exhaust-fan-silencer.jpg) | | PSU exhaust fan silencer | [Printable](https://www.printables.com/model/84197-60mm-exhaust-fan-silencer-flowmaster-psu-ender3nep/comments#preview.file.GpvjC) | ![show off](images/mods/psu-exhaust-fan-silencer.jpg) |
| Tool holder | [Local](local-stl/Tools_Holder_v3.stl) | ![show off](images/mods/tool-holder.jpg) | | Tool holder | [Local](local-stl/Tools_Holder_v3.stl) | ![show off](images/mods/tool-holder.jpg) |
@@ -397,4 +401,7 @@ SUBSYSTEM=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="614e", ACTION=="ad
Finally, re-load the udev rules: Finally, re-load the udev rules:
``` ```
sudo udevadm control --reload-rules sudo udevadm control --reload-rules
# BTT SKR mini E3 v2 pinout
![BBT SKR mini E3 v2 pinout](images/BTT-SKR-mini-E3-v20-pinout.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB