I started working on my CNC build some more. Since the last controller draft would have taken too long to build and would have been a huge and messy project, I have decided to go for another way, the DDCSV1.1:
I bought this CNC controller directly from China (via AliExpress) for under 200€. It runs Linux and has an FPGA that handles the motor stepping. A big step up from the grbl and Arduino based approach with an i386 based control PC I was initially going for.
Unfortunately, the controller has some issues (mostly translation issues), but other users reported problems in various parts.
When buying the controller I thought I could fix some of the issues with a custom made firmware upgrade that I would build upon an existing update, but no, there were no update files to be found as the manufacturer seems to have gone out of business.
Luckily, there are people who have gotten hold of the firmware and sent me a copy. So I went ahead and analysed it.
By checking the boot logs I was able to see that the firmware upgrading progress is really straight forward, as there are no checksums, no certificates nor any other protection. The controller simply copies everything from a folder called
install, located in the root directory of a connected USB stick to an always read-write mounted and easily through the file manager accessible partition on the NAND. Unfortunately, you can actually accidentally delete files using said file manager without any confirmation by pressing the MODE button. There went my Chinese language file! But I was fortunately sent a replacement file by another owner of the controller which I am quite thankful for. The update does also repair, add and replace all files, so bricking the controller is only possible if you delete the linuxrc file in the / directory of the file manager. This is, you guessed it, very easy. Just press MODE...
Back to the firmware and translation. Luckily most of the strings are contained in two plain text files. One for the Chinese and one for the English translation. Editing the file is rather trivial. It takes a few instants to understand the meaning of the operators but it becomes clear quite fast.
I have completed most of the translations already, but I still need help understanding some of the strings and translating them. It would also be greatly appreciated checking the translations for errors and suggesting better ones. The current state can be found and commented on here.
As some strings are hard coded into the single, unstripped, X11(?)-based GUI application, I took an hex-editor and edited the strings inside the actual file.
Here we go. This is how the parameter menu currently looks like with most of the translation work done:
Check back for more controller madness soon :)