What is the 1F future? We need to know

Hey Randy,

For the project of creating and offering a new CNC machine, forking buildbotics.com was a good way to go, as it is free and open software and hardware (see onefinity-pcb vs. bbctrl-pcb for the open hardware). But Onefinity simply inherited some problems from upstream when they forked it. For example, just as the ‘buildbotics-firmware’, the ‘onefinity-firmware’ package is the only package on the Raspberry Pi OS system inside the Onefinity Controller that is not packed as ‘.deb’ package and therefore cannot simply be downgraded with ‘apt-get install onefinity-firmware=1.0.9’, which would have been very helpful when Onefinity abandoned and withdraw the 1.1x branch and told people they need to reflash the entire OS on the SD card.

Usually it is never necessary to overwrite (re-flash) a Raspberry Pi OS installation (except if the SD card fails). Today, all Unixoid Operating Systems have smart package management systems. Usually unixoid operating systems have an uptime of monthes, even years, and are updated while they run – including occasionally necessary downgrade of a package. On Debian-derived systems like the Raspberry Pi OS, this is the Advanced Package Tool (APT) system which deals with deb packages.

But it’s not trivial to pack a package as deb file, not only you have to learn debian policy, but you first also would need to integrate the bbserial kernel module into the Dynamic Kernel Module Support (DKMS) system so that it is automatically re-built on any kernel upgrade. Currently it is hardwired to an ancient kernel source and as soon you upgrade the kernel, the bbserial module ceases to work and the Onefinity System cannot access the AVR mainboard with the stepper drivers anymore. This is why you are stuck with a Raspbian operating system of 2017 with all the security issues that came up since then.

The good news is, onefinity-firmware is published under a free license, so if someone is willing to free bbserial from the hardcoding to an ancient kernel source, integrate it into the Debian’s DKMS, and finally pack ‘onefinity-firmware’ as a .deb package, that would be worth it to achieve that it becomes an interesting community project that attracts developers.

The same applies to buildbotics-firmware too by the way, and the question is, wouldn’t the community better contribute to buildbotics upstream, as this original version of the controller firmware (and hardware) would easily fit the Onefinity machine, but evolved a bit further [1], [2]. Unfortunately, Onefinity never backports any upstream improvements to its fork.

Disclaimer: I did not yet have a look to what Onefinity develops at the moment in the alpha and beta branches, due to lack of time.