= The Plan =
== M Codes ==
Unless I learn something new about the M108+ codes used by Enrique, I think this is the list of M Codes that will need to be implemented in EMC/new firmware:
M100 - Set extruder speed to P
Will instruct the Firmware to maintain a given feedstock mm/min. (NOTE: this is different from the meaning here: [
reprap.org])
Firmware will have to know motor RPM and mm/rotation.
M101 - Turn extruder on, forward
M102 - Turn extruder on, reverse
M103 - Turn extruder off
M104 - Set extruder temp to P
M106 - Fan on
M107 - Fan off
(I'd like to get some consensus and standardization around the various M-Codes. How do we accomplish that?)
== Arduino Firmware ==
Steal a lot of stuff from the existing firmware. Build serial communications protocol to talk with the host applications.
== HAL Driver ==
In addition, a user-space HAL driver will be developed that will provide the following to EMC:
- Current Actual Extruder Feed Rate
- Current Actual Extruder Temperature
- Various Faults (I think these can be "wired" to the e-stop in EMC.)
(Since this will need to access the same serial port the M-Apps write to I think this stage will require that the M-Apps and the driver both speak through some sort of daemon that will own the serial port.)
== Control Panel ==
A pyvcp (Python Virtual Control Panel) which will display the outputs from the Driver. This can be nicely integrated into Axis.
Arduino / EMC integration already done: [
axis.unpy.net]