0
0
mirror of https://github.com/Doodle3D/doodle3d-firmware.git synced 2024-11-05 14:13:22 +01:00
doodle3d-firmware/src/conf_defaults.lua

193 lines
5.0 KiB
Lua
Raw Normal View History

--[[--
TODO: finish documentation
This file contains all valid configuration keys, their default values and optional constraints.
The table names are used as configuration key names, where underscores ('_') may be used to denote semi-categories.
The settings interface replaces periods ('.') by underscores so for instance 'network.ap.address' will
be translated to 'network_ap_address'. Multi-word names should be notated as camelCase.
Valid fields for the tables are:
- default: the default value (used when the key is not set in UCI config)
- type: used for basic type checking, one of bool, int, float or string
- description: A descriptive text usable by API clients
- min, max, regex: optional constraints (min and max constrain value for numbers, or length for strings)
NOTE that the all-caps definitions will be changed into configuration keys, or moved to a different location
]]--
local printer = require('util.printer')
local M = {}
2013-07-17 17:43:33 +02:00
--NOTE: pcall protects from invocation exceptions, which is what we need except
--during debugging. This flag replaces them with a normal call so we can inspect stack traces.
M.DEBUG_PCALLS = false
--This enables debugging of the REST API from the command-line, specify the path and optionally the request method as follows: 'p=/mod/func rq=POST'
M.DEBUG_API = true
--REST responses will contain 'module' and 'function' keys describing what was requested
M.API_INCLUDE_ENDPOINT_INFO = false
M.API_BASE_URL_PATH = 'doodle3d.com' -- includes any base path if necessary (e.g. 'localhost/~user')
M.network_ap_ssid = {
2013-07-17 17:43:33 +02:00
default = 'd3d-ap-%%MAC_ADDR_TAIL%%',
type = 'string',
description = 'Access Point mode SSID',
min = 1,
max = 32
}
M.network_ap_address = {
2013-07-17 17:43:33 +02:00
default = '192.168.10.1',
type = 'string',
description = 'Access Point mode IP address',
regex = '%d+\.%d+\.%d+\.%d+'
}
M.network_ap_netmask = {
2013-07-17 17:43:33 +02:00
default = '255.255.255.0',
type = 'string',
description = 'Access Point mode netmask',
regex = '%d+\.%d+\.%d+\.%d+'
}
2013-08-28 14:29:13 +02:00
M.printer_type = {
default = 'ultimaker',
type = 'string',
description = '',
isValid = function(value)
local printers = printer.supportedPrinters()
return printers[value] ~= nil
end
2013-08-28 14:29:13 +02:00
}
M.printer_baudrate = {
default = '115200',
type = 'int',
2013-08-28 14:29:13 +02:00
description = '',
isValid = function(value)
local baudrates = printer.supportedBaudRates()
return baudrates[tostring(value)] ~= nil
end
}
2013-08-28 14:29:13 +02:00
M.printer_temperature = {
default = 230,
type = 'int',
2013-08-28 14:29:13 +02:00
description = '3D printer temperature',
min = 0
}
M.printer_layerHeight = {
default = 0.2,
type = 'float',
description = '',
min = 0.0
}
M.printer_wallThickness = {
default = 0.5,
type = 'float',
description = '',
min = 0.0
}
M.printer_speed = {
default = 70,
type = 'int',
description = '',
min = 0
}
M.printer_travelSpeed = {
default = 200,
type = 'int',
description = '',
min = 0
}
M.printer_filamentThickness = {
default = 2.89,
type = 'float',
description = '',
min = 0.0
}
M.printer_useSubLayers = {
default = true,
type = 'bool',
description = 'Continuously move platform while printing instead of once per layer'
}
M.printer_firstLayerSlow = {
default = true,
type = 'bool',
description = 'Print the first layer slowly to get a more stable start'
}
M.printer_autoWarmUp = {
default = true,
type = 'bool',
description = '',
}
2013-08-02 14:00:23 +02:00
M.printer_retraction_enabled = {
default = true,
type = 'bool',
description = ''
}
M.printer_retraction_speed = {
default = 50,
type = 'int',
description = '',
min = 0
}
M.printer_retraction_minDistance = {
default = 5,
type = 'int',
description = '',
min = 0
}
M.printer_retraction_amount = {
default = 3,
type = 'int',
description = '',
min = 0
}
M.printer_autoWarmUpCommand = {
2013-08-28 14:29:13 +02:00
default = 'M104 S180',
type = 'string',
description = ''
}
M.printer_startgcode = {
default = ';Generated with Doodle3D\nG21 ;metric values\nG91 ;relative positioning\nM107 ;start with the fan off\nG28 X0 Y0 ;move X/Y to min endstops\nG28 Z0 ;move Z to min endstops\nG1 Z15 F9000 ;move the platform down 15mm\nG92 E0 ;zero the extruded length\nG1 F200 E10 ;extrude 10mm of feed stock\nG92 E0 ;zero the extruded length again\nG92 X-100 Y-100 E0 ;zero the extruded length again and make center the start position\nG1 F9000\nG90 ;absolute positioning\nM117 Printing Doodle... ;display message (20 characters to clear whole screen)',
type = 'string',
description = ''
}
M.printer_endgcode = {
default = 'M107 ;fan off\nG91 ;relative positioning\nG1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 X-20 Y-20 F9000 ;move Z up a bit and retract filament even more\nG28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way\nM84 ;disable axes / steppers\nG90 ;absolute positioning\nM117 Done ;display message (20 characters to clear whole screen)',
type = 'string',
description = ''
}
2013-08-28 14:29:13 +02:00
M.doodle3d_objectHeight = {
default = 20,
type = 'int',
description = 'Maximum height that will be printed',
min = 0
}
M.doodle3d_simplify_minDistance = {
default = 3,
type = 'int',
description = '',
min = 0
}
return M