AIUI, the client software lives on a laptop and uses USB to send files and actions to the Arduino. Where might I find detailed information (e.g., data structures) on the commands and responses?
Is this question about the Maslow4? If so all communication is done over WiFi and the files are uploaded to the machine over WiFi and stored locally on the machine on while cutting.
All of the protocols are standard web server stuff. @md8n is actually working on a major overhaul and clean up of that code right now
Thanks for the correction; I had been misled by a ChatGPT hallucination (:-/). I’m delighted to hear that I won’t need to deal with USB client/server and wiring hassles.
By way of context, I’m thinking about mounting a RasPi 5 on the sled and using it to control a couple of cameras and perhaps a laser or other effectors. As part of this, I’d want to listen in on comms between the client computer and the Arduino and/or query them for info. Finally, I’d want to be able to send commands and files to the Arduino.
So, I’d still like to find (and/or help create, if need be :-}) detailed information (e.g., data structures, protocols) on the commands and responses. For example, when you say that “All of the protocols are standard web server stuff.”, I assume that this means HTTP or perhaps HTTPS.
Where might I find information on the command and response formats, G-code variations in use, etc? Inquiring gnomes need to mine…
Rich Morin wrote:
Thanks for the correction; I had been misled by a ChatGPT hallucination (:-/). I’m delighted to hear that I won’t need to deal with USB client/server and wiring hassles.
By way of context, I’m thinking about mounting a RasPi 5 on the sled and using
it to control a couple of cameras and perhaps a laser or other effectors. As
part of this, I’d want to listen in on comms between the client computer and
the Arduino and/or query them for info. Finally, I’d want to be able to send
commands and files to the Arduino.
So, I’d still like to find (and/or help create, if need be :-}) detailed
information (e.g., data structures, protocols) on the commands and responses.
For example, when you say that “All of the protocols are standard web server
stuff.”, I assume that this means HTTP or perhaps HTTPS.
The maslow 4 does not use an arduino, and while cutting there is very little
communication. You upload the gcode to the ESP32 controller board and then you
use the web page to tell it to start.
In theory, it can continue and cut on it’s own without any communication with
the browser, so there would be nothing for you to monitor.
Where might I find information on the command and response formats, G-code variations in use, etc? Inquiring gnomes need to mine…
the fluidNC documentation.
David Lang
This is the place to look: http://wiki.fluidnc.com/
There’s actually already built in support for a camera on the same page that you control the machine from so what you are asking to do shouldn’t be too hard. I’d look at adding the camera feeds to the control page rather than adding the controls to the camera page, but either way it should be totally doable.
And @bar has merged that into the main branch, so coming soon.
There’s another related PR also coming soon that uses a lot of that code, for file handling related functionality. I’m just about to run it through some basic tests.
I’ve been looking around on the FluidNC and related pages (thanks for the pointer!). Here are some follow-up comments and questions…
-
I don’t see any entry for the Maslow 4 on FluidNC’s Existing Hardware page. Seems like this (or a mention in an existing entry) would make sense.
-
It appears that the Maslow 4 uses a fork of FluidNC; is this the case? Is the plan to upstream the changes so that a vanilla version will work?
-
Where can I find a copy of the FluidNC configuration file used by the Maslow 4(.1)? (There are quite a few variants of the ESP32; I’d like to know which one the M4 uses, etc.)
Rich Morin wrote:
I’ve been looking around on the FluidNC and related pages (thanks for the pointer!). Here are some follow-up comments and questions…
I don’t see any entry for the Maslow 4 on FluidNC’s Existing Hardware page. Seems like this (or a mention in an existing entry) would make sense.
It appears that the Maslow 4 uses a fork of FluidNC; is this the case? Is the plan to upstream the changes so that a vanilla version will work?
the maslow does use a fork, and the fork has diverged pretty badly (including
support for the esp32S3) we are talking on some other thread (not sure which one
offhand) about redoing the maslow custom work on a newer version of fluidnc and
other ways to make it easier to upstream stuff. Bar has submitted some things,
but they don’t seem to have been accepted.
- Where can I find a copy of the FluidNC configuration file used by the Maslow 4(.1)? (There are quite a few variants of the ESP32; I’d like to know which one the M4 uses, etc.)
see the source page Source — Maslow
David Lang
By searching around a bit after following your link, I found this file. Please confirm that it’s the one for the Maslow 4.1
Sorry @bar, before that I did another housekeeping PR - I realised I had a lot of general code clean up in this other file handling PR, and I felt it would be better putting it into its own PR
You’re prolly way ahead of me on this, but it might be worthwhile to run an automated set of diffs to find out the number of LOC in each file that differ between the mainline and Maslow versions of FluidNC. That could give you a way to scale the problem and perhaps come up with an easier WTDI.
If you want to get fancy, you could run two sets of diffs against the version that you forked from: one with the current mainline version, the other with the current Maslow version.
I also wonder whether there are any (e.g., AI-enabled) tools that could do some of the grunt work of reconciling the versions.
Rich Morin wrote:
By searching around a bit after following your link, I found this file. Please confirm that it’s the one for the Maslow 4.1
Yes, that is the config file
David Lang
Rich Morin wrote:
… the fork has diverged pretty badly …
[/quote]You’re prolly way ahead of me on this, but it might be worthwhile to run an automated set of diffs to find out the number of LOC in each file that differ between the mainline and Maslow versions of FluidNC. That could give you a way to scale the problem and perhaps come up with an easier WTDI…
I took a poke at this (thinking we could rebase our changes on top of the
current fluidNC) and found that there have been some pretty drastic structural
changes upstream since the fork happened.
As per the discussion in the other thread, it would probably be easier to
re-implement what’s needed (with an attempt to better integrate it in to fluidNC
from the beginning) than to update what we have.
David Lang
I’d like to take a look at the other thread. If it’s easy to locate, could you post a link to it here?
I think it’s towards the end of this thread
David Lang