You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AnHardt a129078927 Add an emergency-command parser to MarlinSerial (supporting M108)
Add an emergency-command parser to MarlinSerial's RX interrupt.

The parser tries to find and execute M108,M112,M410 before the commands disappear in the RX-buffer.

To avoid false positives for M117, comments and commands followed by filenames (M23, M28, M30, M32, M33) are filtered.

This enables Marlin to receive and react on the Emergency command at all times - regardless of whether the buffers are full or not. It remains to convince hosts to send the commands. To inform the hosts about the new feature a new entry in the M115-report was made. "`EMERGENCY_CODES:M112,M108,M410;`".

The parser is fast. It only ever needs two switch decisions and one assignment of the new state for every character.

One problem remains. If the host has sent an incomplete line before sending an emergency command the emergency command could be omitted when the parser is in `state_IGNORE`.
In that case the host should send "\ncommand\n"

Also introduces M108 to break the waiting for the heaters in M109, M190 and M303.

Rename `cancel_heatup` to `wait_for_heatup` to better see the purpose.
9 years ago
..
DUAL Fix spelling in a config comment 9 years ago
Configuration.h Fix spelling in a config comment 9 years ago
Configuration_adv.h Add an emergency-command parser to MarlinSerial (supporting M108) 9 years ago
README.md Moves Felix's dual configuration to a folder 9 years ago

README.md

Felix 2.0/3.0 Configuration for Marlin Firmware

Bringing silky smooth prints to Felix.

Build HOWTO

cd Marlin/Marlin
cp example_configurations/Felix/Configuration_adv.h .

The next step depends on your setup:

Single Extruder Configuration

cp example_configurations/Felix/Configuration.h .

Dual Extruder Configuration

cp example_configurations/Felix/DUAL/Configuration.h Configuration.h

Compile Firmware

  • Start the Arduino IDE.
  • Select Tools -> Board -> Arduino Mega 2560
  • Select the correct serial port in Tools -> Serial Port (usually /dev/ttyUSB0)
  • Open Marlin.pde or .ino
  • Click the Verify/Compile button

Flash Firmware

Connected directly via USB

  • Click the Upload button. If all goes well the firmware is uploading

Remote update

Find the latest Arduino build:

ls -altr /tmp/
drwxr-xr-x 5 chrono users 12288 Mar 3 21:41 build6072035599686630843.tmp

Copy the firmware to your printer host:

scp /tmp/build6072035599686630843.tmp/Marlin.cpp.hex a.b.c.d:/tmp/

Connect to your printer host via ssh, stop Octoprint or any other service that may block your USB device and make sure you have avrdude installed, then run:

avrdude -C/etc/avrdude.conf -v -v -v -patmega2560 -cwiring -P/dev/ttyUSB0 \
-b115200 -D -Uflash:w:/tmp/Marlin.cpp.hex:i

Acknowledgements

Mashed together and tested on https://apollo.open-resource.org/mission:resources:picoprint based on collaborative teamwork of @andrewsil1 and @thinkyhead.