Hi Everyone - I’m building a ZenXY for my 85 year old mother and I’d love to see pictures and hear ideas about what any of you have done to simplify the “User Interface”. I have started to design a control panel so she won’t have to go into the FluidNC web interface or the WLED web interface.
My 80 year old mother uses a web browser to select from uploaded patterns. She sort of grasps how to add new ones, but getting her on sandify was a bridge too far, so I create new patterns periodically and upload them.
Actually, I do the same for a friend of mine whose wife isn’t the most technically literate…
Without knowing the first thing about the interface, is it possible to create a small collection of patterns and just have a “button” for each - or perhaps a few “playlists”?
The ones I have out there are Fluid based (Bart Dring’s pen/laser cintrollers) and I have not found a way to do this, but haven’t really looked lately. Ideally a couple of inputs could start a gcode file, maybe they would need pre-arranged names…
I’ve been pondering this a bit since you posted on Discord.
Can you clarify the thought behind your control panel? Are the larger circles buttons and the smaller ones LEDs?
On the FluidNC side, did you have any thoughts on how this might be implemented? What board are you using? There is a line where some things you can do via buttons directly into the board and other more advanced things requiring a separate microcontroller.
You can get pretty far with just buttons:
That allows up to 4 macros that could each run a different file.
I’m not certain but it might be possible to not even need controls for FluidNC. If that “next” functionality worked, you might be able to just create a startup macro to just have it run continuously without having to do anything. I’m not sure about that yet. Or just have a “next” button so it runs until it completes and doesn’t start the next one until you press the button.
I don’t know anything about the WLED side, but I’m wondering if you can trigger those from the FluidNC side via outputs:
Sorry, if I jumped too far into the implementation side too soon. It just ties in with some things I’ve been messing with.
@jeyeager Yes - The larger circles are buttons (Inputs) and the smaller buttons are LED’s (Outputs) - I have it auto start a playlist.gcode upon powerup or reset, and have the play (Draw) / pause buttons working. I’d love to figure out how do do the “Next” code - Have you ever done anything like that?
I don’t have a ZenXY and haven’t done this specifically but have messed with those gcode parameters and expressions quite a bit. I would be curious to see your playlist.gcode file. Conceptually, I think you would need a separate gcode file for each pattern. I think a next button would need to do a pause, soft reset (to cancel the job), then play the next file in the list. So, it probably needs to store a counter variable to increment, and use that to determine the gcode file to run.
I’m not certain this will work, but it might. I could try out a proof of concept.
I was trying to make it so it would kill the currently running one to start the next one, but that doesn’t work because you can’t kill a job and continue like that.
What is still probably possible (and is maybe what you were looking for anyway), is to have it run a job and stop when complete. Then click a next button when you want the next one to start.
This works. It will run the next pattern and stop.
I initialize it with this gcode. It initializes a variable for current count and max count and runs the first file. Note that my test files had the homing commands in the files themselves. You could get rid of that $SD/Run command so it doesn’t run anything until you run the “next” gcode. If you did that, you would probably want to initialize _zendFileCount to 0 instead of 1 so next runs the first file.