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 in may 2023.
Druid firmware and Repetier Server are fully compatible.
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). 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 microSD. 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
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, M191 or Cancel PID Autotune 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 starting 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
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. 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" (12 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>"
SD CARDS - NAVIGATION
From Repetier Server console, with special "DOS-LIKE" commands. EASIER and FASTER than using a lot of gcodes with no signification... Those commands are intercepted before going to the Gcode PARSER and are only available when the printer is not printing.
S: Select external SD CARD and list the ROOT dir M: Select internal MicroSD and list the ROOT dir CD.. Go up one level towards ROOT DIR List all files in current directory, not only Gcode. ( YYYY-MM-DD HH:MM AM <DIR> or FILESIZE LONGFILENAME ) DIR ext List only the files matching the ext provided extension. Ex. gcode , gco "Dir gco" CD dir Enter Directory MKDIR dir Create a new folder in current directory (NO PATH ALLOWED) DEL filename Delete the FILENAME in current directory (NO PATH ALLOWED) RMDIR dir Remove a directory in current directory (NO PATH ALLOWED) COPY source destination S:/path/path/filename M:/path/path/ ex: S:/SYS/ddd/this.gcode M:/old_files/ RENAME oldname newname RENAME A FILE OR A DIRECTORY in the current directory (NO PATH ALLOWED) INFO filename.gco Display informatons about any gcode files. ( layer height / layer count / filament needed / Est. print time ) PRINT filename.gco Start to print the selected gcode file.
<<image>>
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.
With DRUID firmware, you no longer have to worry about saving your newly modified settings. The firmware save them in a temp. file as you make them. At every Boot, it loads the settings from the FLASH memory block, and also read the temp file and apply the previuosly modified settings to the RAM, seamlessly. then, verify if the size of the temp. file is above user-defined limit, and write all setings to the next 512 byte block in the flash, and delete te temp. file.
Druid Firmware also innovate with a QUADRIPLE firmware boot selection!!! The user can choose in the GUI, what firmware to use at next boot, up to 4 different can be placed in the folder "FIRMWARE" on the external SD CARD. Ex. Dremel original / Druid 1.0 / Druid 1.2 / Marlin 2.01 ... it keeps track of their settings and restore them when needed.
Druid Firmware is now fully compatible with Repetier Server, and has been added in their setting menu. All the parameters will be automatically detected... We have worked with Repetier Lead programmer to made all the needed changes in both applications (Druid firmware and Repetier Server) and we will continue to improve the possibilities...