Druid Firmware

From RepRap
Jump to: navigation, search
Crystal Clear action run.png
Druid Firmware

Release status: Beta

Druid Logo.png
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 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 
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.