CNC operational use case

I’m interested in other user’s use scenarios. I think there is a better way than the way I’m doing it:

  1. design in corel draw to make svg (plan to learn freecad for 3d)
  2. svg to gcode in estlcam (no complaints here)
  3. load file to cnc
    3a. go to garage and turn on cnc
    3b. go back to design computer and open octoprint to upload from design computer to cnc
    3c. go back to garage
  4. prepare tooling and zero system with lcd
  5. load octoprint on phone in garage and press go, but keep handy in case I need to cancel it.
  6. hang out and watch the cnc do its thing, but stay near skr power switch in case it needs to be stopped

So steps 3- 6 are of interest here to me. It seems so clumsy. Octoprint is merely the tool to start and stop the system automated cut, but does nothing else, Marlin also doesn’t stop very quickly once told to cancel, so the power switch has proven to be a more immediate option. The pi seems to be a wasted resource on this cnc. what other options are there?

How do you all do this? I think there must be a better way and I’d like to level up. Any suggestions or tips on improving my workflow would be appreciated.

I have a personal cloud that synchronizes my files to the CNC. I use Estlcam as PP as well, so I can easily just start the cut from the synchronized folder. Only drawback is that my controller needs to be connected to the controller via USB cable.

1 Like

You could use a shelly or some other home automation relay to turn your CNC on from inside the house eliminating 3a and 3b.

The zeroing can be added to your starting gcode so you start a print and it zeros, adding a pause at each step or the end if you want to.

1 Like

3,4,5 am bringing cheap amzn tablet with BT keyboard to the garage for zeroing, start, controlling job. Begrudgingly bringing files on SD card at the same time (due to combo of ESP3D and Marlin limitations).

  • Am not going back and forth between garage and dev laptop used for design.
  • Using Tablet to ESP3D, frees up your phone to do other stuff.
  • So much easier than LCD to zero and jog using tactile keyboard while your eye is focused on the bit and stock.

For my LR3 with Octopus v1.1, maybe it’ll end up with Octoprint/MainSail/Klipper given my overall positive experience with those for my MP3DP v4.

Remote power switch over WIFI mentioned by Dreyfus seems like a nice idea.

1 Like

A control LCD on the CNC would save some time. There’s just too much setup and tuning involved to go back and forth IMO. Not like a 3D printer where there’s basically no setup if materials already loaded.

The Marlin not stopping right away has something to do with instructions being buffered I think. Any new command has to wait in the queue. Not sure if there’s an emergency stop feature or not. Been awhile since I messed with Marlin.

1 Like

remote starting the cnc power supply would solve the walking. what other user interfaces are used for the cnc? Is CNCjs a good option for a marlin front end? would klipper be a better option for local control of the machine?

Due to a freak vacation accident, I just recommissioned a kindle fire tablet instead of a phone for garage use. Tablet to ESP3D… what does that interface look like? is there a way to try it before committing to it completely?

Looks like this, but with a keyboard as well, I created this video before key shortcut features were implemented.

so you are using the headless ESP3D server and a tablet… that looks like pronterface

Yeah, ESP3D Web UI is based on smoothieware. My LR3 still has a TFT LCD attached that was purchased before I started using ESP3D on a ESP module. Initially ESP-01 with my SKR 1.2 Pro, then a ESP32 with Octopus v1.1. I never touch the TFT LCD, but it’s nice to keep around to see Wifi status and Client IP messages.

You are right. The way V1 has configured Marlin, the M112 (emergency stop) must pass through the queue before it is processed. There is a “fix” for this problem. The is a feature in the firmware called an “Emergency Command Parser.” It is turned on in this section of configruation_adv.h:

 /**
 * Emergency Command Parser
 *
 * Add a low-level parser to intercept certain commands as they
 * enter the serial receive buffer, so they cannot be blocked.
 * Currently handles M108, M112, M410, M876
 * NOTE: Not yet implemented for all platforms.
 */
//#define EMERGENCY_PARSER

If you uncomment the define, recompile, and reflash the firmware, M112 will be processed immediately. In addition, M108 is processed immediately. M108 acts like pressing the button on the display, allowing you to continue from an M0 from a g-code sender. Without the emergency command parser, an M0 will hang a headless configuration.

1 Like

Stumbled across FREEZE_FEATURE

Instant freeze / unfreeze functionality Potentially useful for emergency stop that allows being resumed.

Anyone using this feature to instantly pause job that might be recoverable? As well as, or instead of Marlin’s emergency kill?

2 Likes

What is running on the esp32 and how is it connected? I have 3 of them and would like to get one going to try.

Are these some features we should ask to be put 8n v.516?

Compiled and uploaded ESP3D to a BTT ESP32 module designed/dimensioned for my Octopus v1.1.

Did this back when I was transitioning my LR3 to Octopus v1.1.

You could probably take any ESP32 Node MCU and wire up to a SKR 1.2 Pro, or Octopus with the right Dupont wire connections, they’re mostly just using UART/Serial to communicate which just needs a few pins, e.g. TX, RX, RTS (Request To Send) and maybe DTR (Data Terminal Ready), I’m not sure exactly. For SKR 1.2 Pro, connecting an ESP8266 based ESP-01S would be more straight forward.

1 Like

With the drift away from running jobs from the display, it is reasonable to consider enabling the emergency command parser in future V1 maintained Marlin releases. @vicious1, thoughts?

1 Like

I think I already have, it might still be in the nightlies though. If it is I will merge the PR of you want to do it. If not remind at the end of the week and I will do it then. Still traveling.