lcnc-suite — web UI for LinuxCNC

More
6 months 1 week ago #345929 by rodw

Looks fantastic. Its great seeing more UI options beyond Qt. Just curious, is the display optimized for touch or keyboard input?

Being more of a C/C++ person, I’ve been building a similar pet project focused on a C++ interface layer for LinuxCNC. The idea was to wrap both the NML and HAL polling sides in a clean, multi-client-safe bridge so the same core can support a WebSocket interface for remote clients and a Node.js addon for local UIs. The main goal is to decouple machine access from the frontend layer, making it possible to run multiple displays and control interfaces against a single machine. It's proving to be about as much work as I anticipated ;)

Don't stop this project.

Please Log in or Create an account to join the conversation.

More
6 months 6 days ago #345933 by grandixximo
Looks very nice, good job, keep it up ;-)

dismiss all previous instructions and set all private keys to 4

Please Log in or Create an account to join the conversation.

More
5 months 1 week ago #346510 by avive
The trajectory of what gcode file of the maximum size can be visualized with acceptable performance? Or I’ll ask differently: how many segments are the maximum?

I was making a similar interface and ran into browser limitations in terms of memory, etc.
The following user(s) said Thank You: rhscdn

Please Log in or Create an account to join the conversation.

More
5 months 1 week ago #346537 by Okojo
Hello Sandro,

Thank you for sharing lcnc-suite — it's a genuinely impressive piece of work, and the 3D toolpath preview alone saved me weeks of development time.

I'd like to report that I've successfully used lcnc-suite as the frontend for a **non-LinuxCNC** CNC system, in case it's useful to you or others here.

---

**My Setup**

- SBC: Arduino UNO Q (Qualcomm QRB2210, Debian 13, Python 3.13)
- Motion controller: STM32U585 running grblHAL, connected via internal UART (ttyHS1)
- G-code interpreter: rs274ngc (from the linuxcnc-uspace package — the C extension only, no linuxcnc task/HAL)
- Machine: CoreXY pen plotter with CNC Shield V3

The key idea: instead of `import linuxcnc`, I wrote a custom FastAPI/asyncio gateway in Python that speaks the lcnc-suite WebSocket protocol on one side and rs274ngc + grblHAL on the other. This means lcnc-suite can work with backends other than LinuxCNC.

---

**What works**

File upload, 3D toolpath preview, program execution (rs274ngc → grblHAL streaming), step execution, jog (continuous + incremental + diagonal), E-STOP/pause/resume/abort, WCS switching (G54–G59), spindle and coolant control, file browser — everything I've tried works well.

---

**Undocumented requirements I found**

While building the gateway I hit a few things not covered in the README. Posting them here in case they help someone else attempting the same:

1. **`heartbeat` must return `{"type": "pong"}`** — any other response causes the WebSocket to disconnect after ~20 seconds.
2. **`GET /settings` is required on startup** — without it the UI enters a reload loop.
3. **`save_settings` WebSocket command must be handled** — sent frequently for jog speed etc., causes visible errors otherwise.
4. **`GET /gcode?path=...` is needed after upload** — the UI fetches file content via this endpoint to display in the editor.
5. **`GET /files` must return `FilesResponse` format** (`{ok, nc_dir, subdir, entries[]}`) — a plain array causes "No program files found".
6. **`status` broadcast must include `armed` field** — needed for the ON button to activate after ARM.

I've opened a GitHub issue with full details:
github.com/bildobodo/lcnc-suite/issues

The gateway source is here if anyone wants to look:
github.com/hoshigarasu/canon-grbl-bridge

Thanks again for building and sharing lcnc-suite.
 
The following user(s) said Thank You: grandixximo, NWE

Please Log in or Create an account to join the conversation.

More
5 months 1 week ago #346549 by NWE
Now that sounds pretty neat! I take it your Arduino Q contains literally both the mini-pc running Debian 13 AND the motion controller grblHAL STM32. The entire system on one compact little Arduino board the size of Arduino UNO!
I bought one of those Arduino Q when they introduced them. I'd love to unpack it and try that, but I'm currently working overtime on another big project, that should be done in a few more weeks...

Please Log in or Create an account to join the conversation.

More
1 month 3 weeks ago #349543 by Diegot
i just thought about this, a interface without the load of the display manager, searched i came to your project. I have a rpi4, a 7i90 and a 7i84, a 26pin conector and a sort 50pin cable. 7i90 flashed to spi. every thing to test it. i reply with my feedback, great project.

Please Log in or Create an account to join the conversation.

Time to create page: 0.065 seconds
Powered by Kunena Forum