Maslow started moving in 1 direction during cut

I had hoped to post my first successful project, but at the last moment, the cut failed.

While I was working on my first real cutting project, everything was going pretty well. I encountered some issues with dust catching fire, but I had my router running at speed 4 or 5. After reading some forum posts, I discovered that I should be running it at a much lower speed, like 1 or 2. Is that correct? My feed rate was 400mm/min.

I am using a regular vacuum cleaner with a cyclone separator as a dust collector. Maybe thatā€™s not strong enough?

However, those were not my major failures.

At one point, after cutting for almost an hour on and off, I started a new cut with a new G-code, and almost at the end of the first layer, the machine suddenly started moving in one direction. I couldnā€™t stop it via the web UI because I received an error stating that my connection was lost (maybe related?), so I unplugged the power.

After rebooting, I was able to move the Z-axis up and release the tension to remove the Maslow from the frame. I noticed some errors in my serial monitor logs about the YAML file being corrupt. However, because I refreshed my browser while trying to reconnect during the failure, I likely lost the logs with the actual error. On the next power cycle I had no more errors about the yaml.
Btw, maybe itā€™s a good idea to have the option to always log to the local storage of the browser?

Once the Maslow was off the frame, I retracted the belts, but the upper left one didnā€™t respond. After nearly 20 minutes of multiple power cycles, extending/retracting, releasing tensions, etc., I finally managed to fully retract the upper left belt. Now it extends/retracts normally again, like the other three.
I didnā€™t find the time to start a new cut. I hope to do so later this week, so Iā€™m not sure if everything is working again.

Any idea what happened here?

My log after the failure:

Serial Messages
[MSG:INFO: Channel auto report interval set to 50 ms]
[GC:G0 G54 G17 G21 G90 G94 M5 M9 T0 F0 S0]
[MSG:INFO: FluidNC v0.74 (Maslow-Main-dddcbc15-dirty)]
[MSG:INFO: Compiled with ESP32 SDK:v4.4.4]
[MSG:INFO: Local filesystem type is littlefs]
[MSG:ERR: Skipping configuration file due to panic]
[MSG:INFO: Using default configuration]
[MSG:INFO: Axes: using defaults]
[MSG:INFO: Machine Default (Test Drive)]
[MSG:INFO: Board None]
[MSG:INFO: Stepping:Timed Pulse:4us Dsbl Delay:0us Dir Delay:0us Idle Delay:255ms]
[MSG:INFO: Axis count 3]
[MSG:INFO: Axis X (-1000.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Y (-1000.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Axis Z (-1000.000,0.000)]
[MSG:INFO:   Motor0]
[MSG:INFO: Kinematic system: Cartesian]
[MSG:INFO: Using spindle NoSpindle]
[MSG:INFO: Connecting to STA SSID:marzsman]
[MSG:INFO: Connecting.]
[MSG:INFO: Connecting..]
[MSG:INFO: Connected - IP is 192.168.2.13]
[MSG:INFO: WiFi on]
[MSG:INFO: Start mDNS with hostname:http://maslow.local/]
[MSG:INFO: SSDP Started]
[MSG:INFO: HTTP started on port 80]
[MSG:INFO: Telnet started on port 23]
[MSG:ERR: sdmmc_card_init failed code 0x0x102]
[GC:G0 G54 G17 G21 G90 G94 M5 M9 T0 F0 S0]
error:152 - Configuration is invalid. Maslow.yaml file may be corrupt. Try restarting
[MSG:INFO: Caution: Unlocked]
error:152 - Configuration is invalid. Maslow.yaml file may be corrupt. Try restarting
error:152 - Configuration is invalid. Maslow.yaml file may be corrupt. Try restarting

A picture of the failure

1 Like

Connection loss is known to cause this issue.

This can be mitigated by connecting to the Maslowā€™s network instead of using your own, but it can still happen.

1 Like

also if you can, when you get disconnected, you can capture the serial output in that popup that shows you disconnected. sometimes this has more info on what happened. This is possibly the 15mm error there are other threads in troubleshooting, etc are trying to track down.

1 Like

With the potential issues relating to connection maybe try USB direct connection?

1 Like

My understanding from @bar is that usb connection doesnā€™t/canā€™t use the WebUI so you need a separate g-code sender (likely app?). I havenā€™t confirmed myself, but need to look into it.

1 Like

Bar mentioned universal G-code sender and @ronlawrence3 was experimenting on getting openbuilds control software tested as well. Just seems like testing M4 over USB and with other control software may lead to potential insights on current issues. When I get running in a month I will head down that pathā€¦

1 Like

Iā€™ll try doing this later in the week. Going to calibrate Maslow#3 then need to put mine back together and Iā€™ll have a spare to connect to. Looks like:

Works on Mac so Iā€™ll be able to try it out easier.

1 Like

I was in panic mode a that moment :sweat_smile:
The moment I hit refresh on my browser I knew I should have copied the serial message first.

1 Like

The universal G-code sender looks interesting. So, with this app, I can directly connect with USB and control the Maslow4?

I see they also have an ARM build. I was already thinking of installing a Raspberry Pi with a screen close to my frame, instead of walking around with my laptop.

Does anyone have experience with it?

I just found the forum post of @ronlawrence3 about the M4 without wifi. Iā€™m going to read that one first.

1 Like

I know that feeling well! :joy:

I have not got any further with this, but I may try it again at some point. The laptop I was using for it died and I donā€™t have an actual computer out in the shop so Iā€™m on an old tablet out there at the moment. Iā€™ve been looking in my electronics scrap bin, and I may be able to get together a pi or an older pc to try it with. I think UGS will work on a pi. not sure about openbuilds controlā€¦

1 Like

Maarten wrote:

The universal G-code sender looks interesting. So, with this app, I can directly connect with USB and control the Maslow4?

at one point you could, but that wasnā€™t tested for a long time and we think that
the heartbeat messages may have broken this.

David Lang

1 Like

So with the latest versions of the firmware we are not sending heartbeat as an info message, and instead are relying on the fluidnc ā€œpingā€ messages on the websocket for this, so if that was causing things it may be ok now.

From power on, you will however, either have to use the maslow ui to get to the point of being able to run gcode (retract/extend/apply) or run these gcode commands from whatever you are using manually or via macros in whatever software. You certainly will need to have a calibrated machine to even attempt it as calibration calculations are all in the UI.

1 Like

For a calibrated machine, using gcode sender or any grbl control over usb, does the Maslow firmware support triggering M4 specific commands (extend or retract) via gcode commands?

1 Like

Ron Lawrence wrote:

So with the latest versions of the firmware we are not sending heartbeat as an info message, and instead are relying on the fluidnc ā€œpingā€ messages on the websocket for this, so if that was causing things it may be ok now.

good to know.

From power on, you will however, either have to use the maslow ui to get to
the point of being able to run gcode (retract/extend/apply) or run these gcode
commands from whatever you are using manually or via macros in whatever
software. You certainly will need to have a calibrated machine to even
attempt it as calibration calculations are all in the UI.

or have some other method of determining the frame size, the manual
ā€˜calibrationā€™ calculation from the onshape doc I created for example.

David Lang

1 Like

gazinux wrote:

For a calibrated machine, using gcode sender or any grbl control over usb,
does the Maslow firmware support triggering M4 specific commands (extend or
retract) via gcode commands?

Yes, because that is what the UI is doing.

However, there isnā€™t good documentation (other than reading the code) about what
these are and how to use them.

David Lang

@dlang @ronlawrence3

From the setup dialog I find these in the code:
Notes:

$ALLā€™,ā€˜Retract Allā€™
$EXTā€™,ā€˜Extend Allā€™
$TKSLKā€™,ā€˜Apply Tensionā€™
$CMPā€™,ā€˜Release Tensionā€™ (AKA COMPLY)
$CALā€™,ā€˜Calibrateā€™
$TESTā€™,ā€˜Testā€™

Either of you know if those are $ commands I can send directly?

So far in my life Iā€™ve sent one $ command to a MakerMade M2 last week, but Iā€™m assuming because these are defined in ProcessSettings.cpp as user commands, it should be possible to send from terminal or with macros, etc. function makeusercommands() includes these in Maslow specific section. Finally found the string to search for that showed up in Fluid code base as well are WebUI

Iā€™ll have a spare Maslow to experiment with tomorrow and will update.

1 Like

Derek Graham wrote:

From the setup dialog I find these in the code:
Notes:

$ALLā€™,ā€˜Retract Allā€™
$EXTā€™,ā€˜Extend Allā€™
$TKSLKā€™,ā€˜Apply Tensionā€™
$CMPā€™,ā€˜Release Tensionā€™ (AKA COMPLY)

release tension and comply should not be the same thing, release tension should
only allow a limited amount of movement, comply would feed out until it stop
moveing

$CALā€™,ā€˜Calibrateā€™
$TESTā€™,ā€˜Testā€™

thanks for this, note that calibrate may take the measurements, but does not do
the calculations

Either of you know if those are $ commands I can send directly?

you can switch from the maslow tab to the fluidnc tab (the first tab IIRC) and
enterthe commands in there.

David Lang

1 Like

Here is the file in firmware that defines all the user commands:

2 Likes

Nice. So how would, say, EXT be called from gcode. $EXT, MEXT?

1 Like

all the ā€œUserCommandā€ are $ prefix. so $EXT. Check out the fluidnc wiki for a bunch more $ commandsā€¦

1 Like