Cubiko CNC
29/09/25 19:36 Filed in: CNC
SainSmart ran a recent Kickstarter for an enclosed desktop CNC machine, the Cubiko (https://www.sainsmart.com/products/cubiko). I acquired one of these to test as while I mostly do additive manufacturing with a 3D printer, there are times when traditional milling or subtractive manufacturing is a more appropriate choice.
Unfortunately the Mac support and event the IOS support is a little less than inspiring.
After a bit of a bus man's holiday there is hope (https://gitlab.com/maurice.castro/cubiko-cli) that we can drive the Cubiko over WiFi from a Mac.
Unfortunately the Mac support and event the IOS support is a little less than inspiring.
After a bit of a bus man's holiday there is hope (https://gitlab.com/maurice.castro/cubiko-cli) that we can drive the Cubiko over WiFi from a Mac.
Issues
The issue I ran into is while I can use the IOS apps to set the WiFi configuration only the M1 iPad app actually let me access the device. The iPhone App just refuses to present the connection.
Solution
After a bit of work with tcpdump and Wireshark on my local network it became clear that the device advertised itself on multicast on 224.0.0.251:1234. Having identified this I wrote a C program that allows the user to receive all the broadcast packets and dumps the unique JSON strings.
Introducing cubiko-cli (https://gitlab.com/maurice.castro/cubiko-cli)
Deliberately written in C - I know how to make this portable to a lot of systems without much assistance from the programming environments - this application provides:
cubiko-cli % sudo ./cubiko-cli find
{"ip":"10.100.0.243","port":"10086","name":"Gmt_Grbl_4E4D","uuid":"78:42:1C:22:4E:4D"}
Initially I thought that this would be the start of a much larger project to send instructions to the mill or virtualise the serial port.
However, I did just try it with UCS (https://winder.github.io/ugs_website/) and used the connection wizard to set up a TCP connection. I appear to have a working CNC device with no USB connection to my Mac.
Experimentation to continue.

Conclusion
While it is still early days I have released the code to find the device via GitHub (https://gitlab.com/maurice.castro/cubiko-cli) in the hopes that others will find it useful