Skip to content

octoprint.schema.config.serial#

SerialCapabilities #

Bases: BaseModel

autoreport_temp: bool = True class-attribute #

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

busy_protocol: bool = True class-attribute #

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

SerialConfig #

Bases: BaseModel

additionalBaudrates: List[int] = [] class-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 #

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

alwaysSendChecksum: bool = False class-attribute #

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

autoconnect: bool = False class-attribute #

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

baudrate: Optional[int] = None class-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 #

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 #

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 #

Commands which need to always be send with a checksum.

disconnectOnErrors: bool = True class-attribute #

Whether to disconnect from the printer on errors or not.

enableShutdownActionCommand: bool = False class-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 #

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 #

Whether to request the serial port exclusively or not

externalHeatupDetection: bool = True class-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 #

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 #

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

identicalResendsCountdown: int = 7 class-attribute #

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

ignoreErrorsFromFirmware: bool = False class-attribute #

Whether to completely ignore errors from the firmware or not.

ignoreIdenticalResends: bool = False class-attribute #

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

ignoredCommands: List[str] = [] class-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 #

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

logResends: bool = True class-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 #

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 #

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

maxWritePasses: int = 5 class-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 #

Commands which should cause OctoPrint to pause any ongoing prints.

port: Optional[str] = None class-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 #

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 #

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

sdAlwaysAvailable: bool = False class-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 #

Specifies whether firmware expects relative paths for selecting SD files.

sendChecksumWithUnknownCommands: bool = False class-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 #

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

supportResendsWithoutOk: AlwaysDetectNeverEnum = 'detect' class-attribute #

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

timeout: SerialTimeoutConfig = SerialTimeoutConfig() class-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 #

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 #

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 #

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

SerialMaxTimeouts #

Bases: BaseModel

idle: int = 2 class-attribute #

Max. timeouts when the printer is idle

long: int = 5 class-attribute #

Max. timeouts when a long running command is active

printing: int = 5 class-attribute #

Max. timeouts when the printer is printing

SerialTimeoutConfig #

Bases: BaseModel

communication: float = 30.0 class-attribute #

Timeout during serial communication, in seconds

communicationBusy: float = 3.0 class-attribute #

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

connection: float = 10.0 class-attribute #

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

sdStatus: float = 1.0 class-attribute #

Timeout after which to query the SD status while SD printing

temperature: float = 5.0 class-attribute #

Timeout after which to query temperature when no target is set

temperatureTargetSet: float = 2.0 class-attribute #

Timeout after which to query temperature when a target is set

Back to top