Druid Firmware
Release status: Beta
Description | Dedicated Firmware that currently runs only on Flashforge CoreBoard (All revisions)
|
License | |
Author | |
Contributors | |
Based-on | |
Categories | |
CAD Models | |
External Link |
Druid firmware is a dedicated 3D printer firmware that currently runs only on Flashforge CoreBoard (all Revisions).
Printer that uses this controller:
Flashforge: Dreamer, Dreamer NX and Inventor. Dremel: 3D20. Powerspec: Ultra 3D. Monoprice: Inventor 1.
The firmware is currently in it's Beta testing phase.
A candidate for Version 1.0 will be released before may 2023.
Currently supported Gcodes:
"G" Codes
G0-G1 - Linear movements X Y Z E. G2-G3 - Arc movements. G2 clockwise / G3 counter-clockwise G4 - Dwell S<seconds> or P<milliseconds> if both set (then S will be used, P will be omitted). G5 - Cubic B-spline with XYZE destination and IJPQ offsets. G6 - Direct stepping moves. G10 - Retract. G11 - Recover. G20 - Set input units to inches. G21 - Set input units to millimeters. G27 - Park Nozzle. G28 - Home one or more axes. G90 - Use Absolute Coordinates. G91 - Use Relative Coordinates. G92 - Set current position to coordinates given
"M" Codes
M0,M1 - Unconditional stop - Wait for user interaction on LCD. M17 - Enable/Power all stepper motors. M18,M84 - Disable steppers until next move, or use S<seconds> to specify a timeout. S0 disables the timeout.
SD CARDS files
M20 - List currently monted SD Card. M21 - Mount SD card or internal microSD. Mount current:"M21", Mount SD CARD:"M21 S" or "M21 P0", Mount microSD:"M21 M" or "M21 P1" M22 - Release currently monted SD Card. M23 - Select SD file: M23 /path/file.gco M24 - Start/resume SD print. M25 - Pause SD print. M26 - Set SD position in bytes: "M26 S<bytes>" M27 - Report SD print status. OR, with 'S<seconds>' set the SD status auto-report interval. (Requires AUTO_REPORT_SD_STATUS) OR, with 'C' get the current filename. M28 - Start SD Write M29 - Stop SD Write M30 - Delete file from SD: "M30 /path/file.gco" M31 - Report time since last M109 or SD card start to print. M32 - Select file and start SD print: "M32 /path/file.gco M33 - Get longname M34 - SD CARDS file sorting DIS-ENA S0 S1 F-1 F0 F1 Folder Sorted before/with/after The files
SD CARDS - NAVIGATION 'DOS LIKE'
M40 - M40S : Select and list SD CARD ROOT. (Equivalent to DOS: c:) M40M : Select and list MicroSD ROOT. (Equivalent to DOS:: d:) M40U : go up one Dir towards ROOT. (Equivalent to DOS: cd..) M40D : List Current Directory. (Equivalent to DOS: dir) M44 <DIR_NAME> : Dive into Directory. (Equivalent to DOS: cd <DIR_NAME>
PRINT TIMER
M75 - Start the print job timer. M76 - Pause the print job timer. M77 - Stop the print job timer.
MISCELLANEOUS
M81 - Stop the Printer, Stop printing, Turn off all fans and heaters. M82 - Set Extruder(s) to Absolute (default). M83 - Set Extruder(s) to Relative. M85 - Set inactivity shutdown timer with parameter S<seconds>. 0=Disable (default). M92 - Set steps_per_mm for one or more axes. M100 - Write one byte to I2C device "M100 A<Address> R<Register> B<Byte>" M104_M109 - Set extruder target temperature. (M109 wait to reach target temp) M105 - Report current temperatures. M106 - Set print fan speed. M107 - Print fan off. M108 - Cancel the WAIT for target temp. from M109, M190 or M303 M110 - Set the current line number. (Used by host printing) M112 - Full Shutdown. M113 - Get or set the timeout interval for Host Keepalive "busy" messages. "M113 S<sec>" (0 to 63) sec. M114 - Report current position. M115 - Report capabilities. M117 - Display a message on the controller screen. M118 - Display a message in the host console. M119 - Report endstops status. M120 - Enable endstops detection. M121 - Disable endstops detection. M140_M190 - Set bed target temp. S<temp> (M190 wait to reach target temp) M141_M191 - Set heated chamber target temp. S<temp> (M191 wait to reach target temp) M145 - Set parameters for material preheat if not, any other parameters will be ignored. H<hotend temp> 80.0 - 500.0 W<stand_by temp> 80.0 - 500.0 B<bed temp> 40.0 - 125.0 E<enclosure temp> 40.0 - 80.0 C<cooling part fan speed> 0 - 255 F<back fan speed> 0 - 255 L<label 1> (Main label desc. ex: PLA, NYLON, ABS ... labels longer than 5 characters will be truncated) K<label 2> (Extra desc. ex: PLA-F, PA, ASA ... labels longer than 5 characters will be truncated) M147 - Set GUI Theme (Fonts, Button style and colors) M148 - Set Display temperature units. ( M148=report, M148 C / K / F ) M149 - Set Parser temperature units. ( M149=report, M149 C / K / F ) M150 - Set LED STRIP Color as R<red> U<green> B<blue> Values 0-255. Omitted parameters will be set to ZERO. M154 - Auto-report positions with interval of S<seconds>. 1-255, 0=disable. M155 - Auto-report temperatures with interval of S<seconds>. 1-255, 0=disable. M201 - Set max acceleration in units/s2 for print moves ex: M201 X1000 Y1000 M202 - Set max acceleration in units/s2 for travel moves ex: M202 X1000 Y1000 M203 - Set maximum feedrate: "M203 X<fr> Y<fr> Z<fr> E<fr>" in units/sec. M204 - Set default acceleration in units/sec2: P<printing> R<extruder_only> T<travel> M205 - Set Advanced Settings M206 - Set additional homing offset. (See also M428) M211 - Set/Report software endstops. "M211 S1" Enable, "M211 S0" Disable M217 - Set/get Filament swap parameters M218 - Set/get a tool offset: "M218 T<index> X<offset> Y<offset>". (Requires 2 or more extruders) M220 - Set Feedrate Percentage: "M220 S<percent>" "M220 B" to back up the Feedrate Percentage and "M220 R" to restore it. M221 - Set Flow Percentage: M221 S<percent>
LCD brightness & contrast
M250 - Set LCD contrast: "M250 C<contrast>" -100 to 100, 0=disabled / default M256 - Set LCD brightness: "M256 B<brightness>" -100 to 100, 0=disabled / default
SOUND
M298 - Mute/Unmute UI sound... Sound Disabled= "M298 S0" , Sound Enabled= "M298 S1" M300 - Play beep sound S<frequency Hz> P<duration ms>
PID
M301 - Set PID parameters P I and D. M302 - Set the minimum extrude temperature, to avoid cold extrusion. S<temperature>. M303 - PID autotune - sets the parameters needed to perform autotune, for a specific heater and temperature range. M304 - Set bed PID parameters P I and D. M306 - MPC settings and autotune TO REMOVE M309 - Set chamber PID parameters P I and D.
MISCELLANEOUS
M360 - Report Firmware configuration M400 - Finish all moves. M410 - Abort all planned moves. M412 - Enable / Disable Filament Runout Detection. M428 - Set the home_offset based on the current_position. Nearest edge applies.
NON VOLATILE SETTINGS STORAGE (EEPROM / FLASH)
M500 - Write parameters to permanent storage, in next flash subdivision. (Note 1) M501 - Read parameters from current flash subdivision. ( Automatically done at every boot ) M502 - Revert all parameters to the default "factory settings" without saving it to storage. M503 - List the current settings (in memory). M504 - List divergences between parameters in the permanent storage and in memory (ram) M505 - Erase Sector 11 (128K) and save current settings as first block M506 - Erase Sector 11 and save default settings (Complete board reset)
PASSWORD
M510 - Lock Printer M511 - Unlock Printer M512 - Set/Change/Remove Password
MISCELLANEOUS
M524 - Abort the current SD print job started with M24. M540 - Enable / Disable : SD card print abort on endstop hit. DIS:"M540 S0" EN:"M540 S1" M544 - GCODE PARSER OPTIONS S0/S1= DIS/ENA CASE INSENSITIVE M550 - Set/Get MACHINE NAME : M550 "NewName" (8 char max) M575 - Change the serial baud rate. (USB)
FILAMENT
M600 - Pause for filament change M603 - Configure filament change M701 - Load filament M702 - Unload filament
M900 - Get or Set Linear Advance K-factor
DATE & TIME
M905 - Set local time M905 S<HH:MM:SS> = ex.: M905 S00:23:12 M905 R = Reset the printer date+Time to Uptime - Get date & time M905 = Report actual time to host - Set local date M905 P<YYYY-MM-DD>
M928 - Start SD Logging M907 - Set motor current for specified axis.
FIRMWARE UPDATE & RESET
M990 - Reset the printer (restart the firmware) M995 - Touch screen calibration for TFT display <R> Reset calibration to default M996 - Select "firmware update" file from SD CARD M997 - Write the "firmware update" trigger. Instruct the bootloader to update firmware from microSD card at next reboot. M999 - Restart after being stopped by error
REGISTRATION
M6000 - REPORT PUID TO HOST... Puid: 084251D3F1A51542D3FDD4F0 (12 bytes,24 CHAR) M6001 - ENTER registration code :usage M6001 "D3FDD4FDD3FDD4FDD3FDD4FDD3FDD4FD" 16 bytes / 32 CHAR, between DOUBLE QUOTES. M6002 - Display information about Registration. M6004 - Write to file "PUID4REG.TXT" on external SD CARD. M6006 - Look for registration file on internal microSD. If present, process it.
BACKUP & FLASH
M9991 - Backup bootloader to SD (64k) 0x08000000 - 0x0800FFFF M9992 - Load a Backuped BOOTLOADER from SD and Flash it at 0x08000000. *** WARNING: wrong parameters may render your printer unusable. *** M9993 - Backup SETTINGS to SD-CARD (512 Bytes) M9994 - Backup PUID to SD-CARD (12 bytes or 24 HEX CHARACTERS)
"T" Codes
T0-T1 - Select an extruder(tool) by index: "T<n> F<units/min>"
Note 1. Because of the small size for parameter storage (512 bytes), a 128K flash memory sector is used as permanent storage. The sector can be partially written 256 times (512 bytes per backup) before requiring a complete sector wipe, to restart the same process again. (That was 1 write cycle). The flash memory minimum write cycles guaranteed for the STM32F407 MCU by ST Microelectronics are 10000, yielding a total of 2.56 million times, parameters can be saved.