Change to open source firmware

Hey Derek, Neel @justneel,

but what would be the reason that it did not work? If you look at the schematics, you can find the only very few differences (buildbotics/bbctrl-pcb vs. onefinitycnc-pcb). Of course the Onefinity Controller is a software and a hardware fork of the Buildbotics.com Controller. Both firmware and schematics, and the pcb too, you can clearly see where it comes from and find the differences. Obviously firmware it is based on Buildbotics 0.4.14.

Did you use the

So regarding bbctrl-firmware, besides unpacking the files onto the Raspberry Pi OS system (“Stretch” of 2018 image) (https://buildbotics.com/upload/2018-05-15-raspbian-stretch-bbctrl.img.xz) that you put on a SD card in the Raspberry Pi 3B, the setup process includes uploading the AVR firmware to the AVR and to the ATTiny that measures the current on the AVR Mainboard. The Raspberry Pi 3B is the same in both hardwares.

Did you remember what the setup log said, specifically when it comes to uploading the AVR and ATTiny firmware?

I checked it, this recent ‘arm64’ image of course boots on the Onefinity Controller with its Raspberry Pi 3B. I did that when one buildbotics forum user reported that he was able to successfully build the Buildbotics-firmware sources on the Raspberry Pi 400 (Pi 4 based). I did not yet try to build ‘bbctrl-firmware’ on the Onefinity’s Raspberry Pi 3B though, but thought of trying it, since like Neel @justneel, I would prefer to contribute to the upstream project and would avoid to buy a separate controller.

I doubt you could brick it permanently as long as you are able upload the AVR firmware to the AVR and to the ATTiny.

The latter is how the CNC Controller part works, by the bbserial.ko kernel module (See also Deep dive: Hacking the 8-bit AVR – By Joseph Coffland).

What is missing on the Onefinity fork, is the small LCD on the box. It is on the same sda/sdc bus with two wires. So I would remove the code that drives it.


Buildbotics Controller (front)

EDIT: onefinity-firmware/src/avr/src/lcd.c and lcd.h exist and seem not to do any harm, although Onefinity lacks the LCD on the box.

Meanwell 36 V power supply is internal on the Onefinity, external on the Buildbotics. One difference on the pcb is that Load1, Load2, Probe and Laser are additionally made available as Molex sockets on the Onefinity Controller, while on Buildbotics you only get them via the 25-pin I/O port. A good thing on the recent Buildbotics version is the 15-pin Auxiliary Port that allows connection of external stepper drivers so you can use other things like closed-loop steppers or servos. However that is just a port, not a circuit change.


Buildbotics CNC Controller (back)


Onefinity CNC Controller (back)

3 Likes