Skip to content

octoprint.schema.config.serial#

SerialCapabilities #

Bases: BaseModel

autoreport_pos: bool = True class-attribute instance-attribute #

Whether to enable position autoreport in the firmware if its support is detected

autoreport_sdstatus: bool = True class-attribute instance-attribute #

Whether to enable SD printing autoreport in the firmware if its support is detected

autoreport_temp: bool = True class-attribute instance-attribute #

Whether to enable temperature autoreport in the firmware if its support is detected

busy_protocol: bool = True class-attribute instance-attribute #

Whether to shorten the communication timeout if the firmware seems to support the busy protocol

emergency_parser: bool = True class-attribute instance-attribute #

Whether to send emergency commands out of band if the firmware seems to support the emergency parser

extended_m20: bool = True class-attribute instance-attribute #

Whether to request extended M20 (file list) output from the firmware if its support is detected

lfn_write: bool = True class-attribute instance-attribute #

Whether to enable long filename support for SD card writes if the firmware reports support for it

SerialConfig #

Bases: BaseModel

additionalBaudrates: List[int] = [] class-attribute instance-attribute #

Use this to define additional baud rates to offer for connecting to serial ports. Must be a valid integer

additionalPorts: List[str] = [] class-attribute instance-attribute #

Use this to define additional patterns to consider for serial port listing. Must be a valid "glob" pattern

alwaysSendChecksum: bool = False class-attribute instance-attribute #

Specifies whether OctoPrint should send linenumber + checksum with every printer command. Needed for successful communication with Repetier firmware.

autoconnect: bool = False class-attribute instance-attribute #

Whether to try to automatically connect to the printer on startup or not

autorefresh: bool = True class-attribute instance-attribute #

Whether to automatically refresh the port list while no connection is established

autorefreshInterval: int = 1 class-attribute instance-attribute #

Interval in seconds at which to refresh the port list while no connection is established

baudrate: Optional[int] = None class-attribute instance-attribute #

The default baudrate to use to connect to the printer. If unset or set to 0, the baudrate will be auto-detected.

blockWhileDwelling: bool = False class-attribute instance-attribute #

Whether to block all sending to the printer while a G4 (dwell) command is active (true, repetier) or not (false).

blockedCommands: List[str] = ['M0', 'M1'] class-attribute instance-attribute #

Commands which should not be sent to the printer, e.g. because they are known to block serial communication until physical interaction with the printer as is the case on most firmwares with the default M0 and M1.

checksumRequiringCommands: List[str] = ['M110'] class-attribute instance-attribute #

Commands which need to always be send with a checksum.

disconnectOnErrors: bool = True class-attribute instance-attribute #

Whether to disconnect from the printer on errors or not.

enableShutdownActionCommand: bool = False class-attribute instance-attribute #

Whether to enable support for the shutdown action command, allowing the printer to shut down OctoPrint and the system it's running on.

encoding: str = 'ascii' class-attribute instance-attribute #

Encoding to use when talking to a machine. ascii limits access to characters 0-127, latin_1 enables access to the "extended" ascii characters 0-255. Other values can be used, see Python's standard encodings.

exclusive: bool = True class-attribute instance-attribute #

Whether to request the serial port exclusively or not

externalHeatupDetection: bool = True class-attribute instance-attribute #

Whether to enable external heatup detection (to detect heatup triggered e.g. through the printer's LCD panel or while printing from SD) or not. Causes issues with Repetier's "first ok then response" approach to communication, so disable for printers running Repetier firmware.

firmwareDetection: bool = True class-attribute instance-attribute #

Whether to attempt to auto detect the firmware of the printer and adjust settings accordingly (true) or not and rely on manual configuration (false).

helloCommand: str = 'M110 N0' class-attribute instance-attribute #

Command to send in order to initiate a handshake with the printer.

identicalResendsCountdown: int = 7 class-attribute instance-attribute #

If ignoreIdenticalResends is true, how many consecutive identical resends to ignore.

ignoreErrorsFromFirmware: bool = False class-attribute instance-attribute #

Whether to completely ignore errors from the firmware or not.

ignoreIdenticalResends: bool = False class-attribute instance-attribute #

Whether to ignore identical resends from the printer (true, repetier) or not (false).

ignoredCommands: List[str] = [] class-attribute instance-attribute #

Commands which should not be sent to the printer and just silently ignored. An example of when you may wish to use this could be useful if you wish to manually change a filament on M600, by using that as a Pausing command.

log: bool = False class-attribute instance-attribute #

Whether to log whole communication to serial.log (warning: might decrease performance)

logResends: bool = True class-attribute instance-attribute #

Whether to log resends to octoprint.log or not. Invaluable debug tool without performance impact, leave on if possible please.

longRunningCommands: List[str] = ['G4', 'G28', 'G29', 'G30', 'G32', 'M400', 'M226', 'M600'] class-attribute instance-attribute #

Commands which are known to take a long time to be acknowledged by the firmware, e.g. homing, dwelling, auto leveling etc.

lowLatency: bool = False class-attribute instance-attribute #

Whether to request low latency mode on the serial port or not

maxWritePasses: int = 5 class-attribute instance-attribute #

Maximum number of write attempts to serial during which nothing can be written before the communication with the printer is considered dead and OctoPrint will disconnect with an error

pausingCommands: List[str] = ['M0', 'M1', 'M25'] class-attribute instance-attribute #

Commands which should cause OctoPrint to pause any ongoing prints.

port: Optional[str] = None class-attribute instance-attribute #

The default port to use to connect to the printer. If unset or set to AUTO, the port will be auto-detected.

repetierTargetTemp: bool = False class-attribute instance-attribute #

Whether the printer sends repetier style target temperatures in the format TargetExtr0:<temperature> instead of attaching that information to the regular M105 responses.

resendRatioThreshold: int = 10 class-attribute instance-attribute #

Percentage of resend requests among all sent lines that should be considered critical.

sdAlwaysAvailable: bool = False class-attribute instance-attribute #

Whether to always assume that an SD card is present in the printer. Needed by some firmwares which don't report the SD card status properly.

sdRelativePath: bool = False class-attribute instance-attribute #

Specifies whether firmware expects relative paths for selecting SD files.

sendChecksumWithUnknownCommands: bool = False class-attribute instance-attribute #

Specifies whether OctoPrint should also send linenumber + checksum with commands that are not detected as valid GCODE (as in, they do not match the regular expression ^\s*([GM]\d+|T)).

supportFAsCommand: bool = False class-attribute instance-attribute #

Whether to support F on its own as a valid GCODE command (true) or not (false).

supportResendsWithoutOk: AlwaysDetectNeverEnum = AlwaysDetectNeverEnum.detect class-attribute instance-attribute #

Whether to support resends without follow-up ok or not.

timeout: SerialTimeoutConfig = SerialTimeoutConfig() class-attribute instance-attribute #

Timeouts used for the serial connection to the printer, you might want to adjust these if you are experiencing connection problems

triggerOkForM29: bool = True class-attribute instance-attribute #

Whether to automatically trigger an ok for M29 (a lot of versions of this command are buggy and the response skips on the ok).

unknownCommandsNeedAck: bool = False class-attribute instance-attribute #

Specifies whether OctoPrint should also use up acknowledgments (ok) for commands that are not detected as valid GCODE (as in, they do not match the regular expression ^\s*([GM]\d+|T)).

waitForStartOnConnect: bool = False class-attribute instance-attribute #

Whether OctoPrint should wait for the start response from the printer before trying to send commands during connect.

waitToLoadSdFileList: bool = True class-attribute instance-attribute #

Specifies whether OctoPrint should wait to load the SD card file list until the first firmware capability report is processed.

SerialMaxTimeouts #

Bases: BaseModel

idle: int = 2 class-attribute instance-attribute #

Max. timeouts when the printer is idle

long: int = 5 class-attribute instance-attribute #

Max. timeouts when a long running command is active

printing: int = 5 class-attribute instance-attribute #

Max. timeouts when the printer is printing

SerialTimeoutConfig #

Bases: BaseModel

communication: float = 30.0 class-attribute instance-attribute #

Timeout during serial communication, in seconds

communicationBusy: float = 3.0 class-attribute instance-attribute #

Timeout during serial communication when busy protocol support is detected, in seconds

connection: float = 10.0 class-attribute instance-attribute #

Timeout for waiting to establish a connection with the selected port, in seconds

sdStatus: float = 1.0 class-attribute instance-attribute #

Timeout after which to query the SD status while SD printing

temperature: float = 5.0 class-attribute instance-attribute #

Timeout after which to query temperature when no target is set

temperatureTargetSet: float = 2.0 class-attribute instance-attribute #

Timeout after which to query temperature when a target is set