# Upgrade the Raspberry Pi (hardware) in the controller?

**URL:** <https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987>\
**Category:** Controller (Buildbotics) Discussion\
**Created:** [December 14, 2023, 3:57pm UTC](https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987 "2023-12-14T15:57:22Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![quesohusker](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/quesohusker/32/28134_2.png) [@quesohusker](https://forum.onefinitycnc.com/u/quesohusker)\
**Post date:** [December 14, 2023, 3:57pm UTC](https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987/1 "2023-12-14T15:57:23Z")

</div>

Can the Raspberry PI in the controller be upgraded? I think it’s kind of underpowered.

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [December 14, 2023, 4:26pm UTC](https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987/2 "2023-12-14T16:26:28Z")

</div>

Hey quesohusker,

> [@quesohusker](#):
>
> Can the Raspberry PI in the controller be upgraded? I think it’s kind of underpowered.

this is true. [Buildbotics.com](http://Buildbotics.com) considered it as [capable enough for a CNC controller](https://forum.buildbotics.com/viewtopic.php?f=9&t=125&p=200#p200), but it is not capable enough to show the [camotics.org](http://camotics.org) 3D toolpath simulation, currently you see it only when you use the Onefinity User Interface from a (more graphics-capable) remote computer.

> [@Buildbotics upgrading to PI4](https://forum.onefinitycnc.com/t/buildbotics-upgrading-to-pi4/18726/2):
>
> the [Raspberry Pi 4](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) is for the first time is a major redesign. In comparison to the [Raspberry Pi 3](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/) and older, it mainly brings advantages to the **desktop** computer user, as the USB, Ethernet and all other peripheral chips are now connected more directly to the [CPU](https://en.wikipedia.org/wiki/Central_processing_unit) so are all much faster (Gigabit Ethernet, USB 3, etc.). The Pi 4 is able to run much better graphics standards, i.e. OpenGL-ES 3.0, Vulkan 1.0 and 4K resolution (over two mini-HDMI outputs). Also the CPU is a little more powerful type (ARM Cortex A72-based instead of A53 on older Raspberry Pis). Also you can now attach much more, more fast, and more recent [memory](https://en.wikipedia.org/wiki/Computer_data_storage#Primary_storage) (LPDDR4 instead of LPDDR2, and up to 8 GB), which makes it run faster. High amounts of [RAM](https://en.wikipedia.org/wiki/Random-access_memory) are necessary to run powerful desktop applications. Of course, it also consumes more power. If you want to know what is the main difference in internal redesign between the Pi \<=3 and the new Raspberry Pi 4, [see here](https://forum.onefinitycnc.com/t/how-long-will-original-controller-be-available/17882/22).
> 
> It is the first time that a Raspberry Pi is marketed as a [desktop computer](https://en.wikipedia.org/wiki/Desktop_computer) (while Raspberry Pi 3 and the others are offered as [single-board computers](https://en.wikipedia.org/wiki/Single-board_computer), mainly intended for _embedded use_ or as _experimental board_). You can even get a Pi 4 as [complete personal computer, built into a compact keyboard](https://www.raspberrypi.com/products/raspberry-pi-400-unit/) (or as [desktop kit to assemble it yourself](https://www.raspberrypi.com/products/raspberry-pi-4-desktop-kit/)).
> 
> But regarding its use in a small universal 4-axis CNC controller, …
> 
> > [… RPi 3’s seem to have more than enough compute power for our application.  
> > – Doug Coffland](https://forum.buildbotics.com/viewtopic.php?f=9&t=125&p=200#p200)
> 
> > [@How long will original controller be available](https://forum.onefinitycnc.com/t/how-long-will-original-controller-be-available/17882/22):
> >
> > By the way, the Obsolescence Statement of the [Raspberry Pi 3 Model B](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/) is it will remain in production until at least January 2026.

**So I would think, yes, there is a way to install a Raspberry Pi 4 in your Onefinity Controller if you observe a few things:**

> [@How long will original controller be available](https://forum.onefinitycnc.com/t/how-long-will-original-controller-be-available/17882/18):
>
> [one user reports](https://forum.buildbotics.com/viewtopic.php?f=6&t=295&p=923#p921) that he **was able to successfully build** the [Buildbotics-firmware sources](https://github.com/buildbotics/bbctrl-firmware) on the [Raspberry Pi 400](https://www.raspberrypi.com/products/raspberry-pi-400/) (Pi 4 based). So I would see no reason why it wouldn’t work with [Onefinity-firmware sources](https://github.com/OneFinityCNC/onefinity-firmware) too.

> [@1.2.1 Issues and future upgrade to 2.0](https://forum.onefinitycnc.com/t/1-2-1-issues-and-future-upgrade-to-2-0/18880/4):
>
> no need to exchange the Raspberry Pi, as explained above. But in case someone would want to, **the old back panel of Onefinity Controller won’t fit Pi 4 since connectors positions changed** ([see here](https://forum.onefinitycnc.com/t/how-long-will-original-controller-be-available/17882/18)) ([technical drawing](https://forum.onefinitycnc.com/t/2-0-alpha-test-build-1/17401/29)). Also you would need a Mini-HDMI to HDMI adapter.

- [Re: Raspberry Pi 4B – Buildbotics Forum](https://forum.buildbotics.com/viewtopic.php?f=9&t=125&p=200#p200)

As for the Onefinity Controller’s current operating system, a frozen and totally outdated Raspbian OS from 2017, updating this OS on the Onefinity SD card image brings many problems and will not work, as explained in the following below. So what would work instead, is take a recent [Raspberry Pi OS (64-bit)](https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit), flash it on a SD card, boot it, and **[build](https://en.wikipedia.org/wiki/Software_build)** (=compile and install) the Onefinity System from its [sources](https://github.com/OneFinityCNC/onefinity-firmware).

> [@1.2.1 Issues and future upgrade to 2.0](https://forum.onefinitycnc.com/t/1-2-1-issues-and-future-upgrade-to-2-0/18880/3):
>
> > [@1.2.1 Issues and future upgrade to 2.0](https://forum.onefinitycnc.com/t/1-2-1-issues-and-future-upgrade-to-2-0/18880/1):
> >
> > > [@Onefinity CNC Firmware 1.2.1 (2/8/23) (X-35/X-50 machines w/ Buildbotics Controller) (Outdated)](https://forum.onefinitycnc.com/t/onefinity-cnc-firmware-1-2-1-2-8-23-x-35-x-50-machines-w-buildbotics-controller-outdated/18655/1):
> > >
> > > The next firmware version of the software, 2.0 is a major software revision. What do we mean by ‘major’? Visually, and functionally, it will look and work very much the same as our current firmware (1.2). However, it’s underlying programing is moving to 64bit architecture, which means major, under the hood, work. What does moving to 64 bit mean? In simplified terms, it allows us to change from the current older raspberry pi 3b computer module that’s inside our controller today to the raspberry pi 4 computer module.
> > 
> > What does that mean for all of the current Buildbotics users? Are we stuck with 1.2.1 forever? Or will there be an upgrade path for us, either a new module to put in the controller, or a complete new box?
> 
> the [Raspberry Pi 3B](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/) that is inside the stock Onefinity Controller **already has a 64-bit-capable CPU.** The outdated Raspberry Pi OS from 2017 that runs on the Onefinity \<=1.2.xx SD card images is an image of the 32-bit architecture “[armhf](https://en.wikipedia.org/wiki/ARM_architecture_family#32-bit_architecture)” (_ARM hard float_), but switching to the 64-bit architecture “[arm64](https://en.wikipedia.org/wiki/ARM_architecture_family#64/32-bit_architecture)” will work out of the box since the Raspberry Pi 3B is in fact made for it.
> 
> You can check this by taking an empty SD card and writing the most recent [Raspberry Pi OS (64-bit)](https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit) to it and boot it on the Raspberry Pi 3B in your Onefinity Controller.
> 
> As Onefinity states:
> 
> > [@2.0 Alpha Test Build #0 (outdated)](https://forum.onefinitycnc.com/t/2-0-alpha-test-build-0-outdated/17401/1):
> >
> > This has a major rebuild that is 64 bit which will work with either RPI3 or RPI4.
> 
> So no need for an upgrade path, you will be able to simply install 2.x firmware with a 64-bit OS image when it left beta status on your old Onefinity Controller.

> [@X-50 UI and Controller issues](https://forum.onefinitycnc.com/t/x-50-ui-and-controller-issues/23571/2):
>
> You cannot update any of the packages of the ancient Raspbian Stretch installation from 2017 on the Onefinity SD card without making the CNC controller functions ceasing to work. This is because more or less every package of which you want to install a recent version relies on countless dependencies to other recent packages that you can only fulfill by a complete OS upgrade. But a OS upgrade is not possible. This is because the crucial bbserial.ko kernel module, that makes communication with the AVR mainboard with the stepper drivers possible, is not packed as a [.deb](https://en.wikipedia.org/wiki/Deb_(file_format)) package and not integrated in [Dynamic Kernel Module Support](https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support) (DKMS) so will not be re-compiled automatically on a kernel package upgrade, so on kernel module loading, this module will fail, turning your Onefinity Controller into a brick with an updated Raspberry PI OS running, but being no more a CNC controller. So updating chrome or any of the packages that could have old security issues, is not possible.

It should however possible to take an SD card and flash a new, up-to-date [Raspberry Pi OS (64-bit)](https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit) on it and to **[build](https://en.wikipedia.org/wiki/Software_build)** (=compile and install) the Onefinity System from the [sources](https://github.com/OneFinityCNC/onefinity-firmware), as mentioned above, where I mentioned that a user **built** the [buildbotics sources](https://github.com/buildbotics/bbctrl-firmware) on a recent Raspberry Pi 400 with a recent 64-bit Raspberry Pi OS system.

> [@What is the 1F future? We need to know](https://forum.onefinitycnc.com/t/what-is-the-1f-future-we-need-to-know/20293/11):
>
> For the project of creating and offering a new CNC machine, forking [buildbotics.com](http://buildbotics.com) was a good way to go, as it is [free and open software](https://en.wikipedia.org/wiki/Free_and_open-source_software) **and hardware** (see [onefinity-pcb](https://github.com/OneFinityCNC/onefinity-pcb) vs. [bbctrl-pcb](https://github.com/buildbotics/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](https://github.com/OneFinityCNC/onefinity-firmware)’ package is the only package on the [Raspberry Pi OS](https://en.wikipedia.org/wiki/Raspberry_Pi_OS) system inside the Onefinity Controller that **is not** packed as ‘[.deb](https://en.wikipedia.org/wiki/Deb_(file_format))’ package and therefore **cannot** simply be downgraded with ‘[apt-get](https://en.wikipedia.org/wiki/APT_(software)) 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](https://en.wikipedia.org/wiki/Raspberry_Pi_OS) installation (except if the SD card fails). Today, all [Unixoid Operating Systems](https://en.wikipedia.org/wiki/Unix-like) have smart [package management systems](https://en.wikipedia.org/wiki/Package_manager). 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](https://en.wikipedia.org/wiki/Debian)-derived systems like the Raspberry Pi OS, this is the [Advanced Package Tool (APT)](https://en.wikipedia.org/wiki/APT_(software)) system which deals with [deb](https://en.wikipedia.org/wiki/Deb_(file_format)) 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)](https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support) 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](https://github.com/OneFinityCNC/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](https://github.com/buildbotics/bbctrl-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 [[What’s new in Buildbotics 1.0.2]](https://forum.buildbotics.com/viewtopic.php?f=13&t=285), [[What’s new in Buildbotics 1.0.0]](https://forum.buildbotics.com/viewtopic.php?f=13&t=230). Unfortunately, Onefinity never backports any upstream improvements to its fork.

> [@Change to open source firmware](https://forum.onefinitycnc.com/t/change-to-open-source-firmware/23347/20):
>
> As you can see, it is linked to a kernel source under [dbrgn (Danilo Bargen) · GitHub](https://github.com/dbrgn) which is [dbrgn ( **Danilo Bargen** ) · GitHub](https://github.com/dbrgn) – is this necessary? I would not deliver a software that is “hardwired” this way.
> 
> What would be a progress would be an **updated, recent Raspberry Pi OS operating system on the Onefinity** , which would also mean the crucially important ‘bbserial’ module _freed from the “hardwiring” to some dbrgn’s ancient kernel source from 2018 shown above_, and the bbserial kernel module made from the updated, recent kernel source, and being compiled automatically everytime the kernel of the system is updated. DKMS does that (see [my post above](https://forum.onefinitycnc.com/t/change-to-open-source-firmware/23347/14)). E.g. like the ‘vboxdrv’ kernel module when you have virtualbox installed on your machine. You don’t have to care of it, because it is always recent and working and loaded, thanks to DKMS.
> 
> Having a recent operating system version on the Onefinity controller instead of a frozen 2018 version would also allow the CNC operator to install other useful software, and first of all avoid using old software with security issues.

---

<div class="post-metadata">

**Author:** ![quesohusker](https://sea2.discourse-cdn.com/flex022/user_avatar/forum.onefinitycnc.com/quesohusker/32/28134_2.png) [@quesohusker](https://forum.onefinitycnc.com/u/quesohusker)\
**Post date:** [December 16, 2023, 11:11am UTC](https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987/3 "2023-12-16T11:11:29Z")

</div>

Wow. Thanks. I’m pretty savvy, but even that seems beyond me. What it looks like is that the original BB controller is pretty much locked into what is there now, and that the future of Onefinity is the Elite series…updating the classic and pro line controllers probably isn’t worth it as I’m sure they will be phasing them out over the next several years.

---

<div class="post-metadata">

**Author:** ![Hermsen.BJ](https://avatars.discourse-cdn.com/v4/letter/h/779978/32.png) [@Hermsen.BJ](https://forum.onefinitycnc.com/u/Hermsen.BJ)\
**Post date:** [December 16, 2023, 11:29am UTC](https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987/4 "2023-12-16T11:29:20Z")

</div>

They are working a 2.0 codeline which include a rpi4 update as well.

---

<div class="post-metadata">

**Author:** ![349iq2345](https://avatars.discourse-cdn.com/v4/letter/3/bb73d2/32.png) [@349iq2345](https://forum.onefinitycnc.com/u/349iq2345)\
**Post date:** [December 16, 2023, 4:37pm UTC](https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987/5 "2023-12-16T16:37:10Z")

</div>

Hey quesohusker,

> [@quesohusker](#):
>
> Wow. Thanks. I’m pretty savvy, but even that seems beyond me.

Possibly, but someone that can build [onefinity-firmware](https://github.com/OneFinityCNC/onefinity-firmware) from the sources **can easily achieve it and mount a Raspberry Pi 4 into the Onefinity controller** (with modifying front plate to accomodate the swapped Ethernet and USB ports) on a recent [Raspberry Pi OS (64-bit)](https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit) SD card image.

> [@quesohusker](#):
>
> What it looks like is that the original BB controller is pretty much locked into what is there now, and that the future of Onefinity is the Elite series…updating the classic and pro line controllers probably isn’t worth it as I’m sure they will be phasing them out over the next several years.

I don’t think so. First, the buildbotics-derived Onefinity controller has an unbeatable price and it is a complete and capable 4-axis CNC controller.

Second, there is still the original [Buildbotics](http://Buildbotics.com/) Controller that is under development. It evolved a bit ([What’s new in Buildbotics 1.0.2](https://forum.buildbotics.com/viewtopic.php?f=13&t=285), [What’s new in Buildbotics 1.0.0](https://forum.buildbotics.com/viewtopic.php?f=13&t=230)) since Onefinity forked the system and it has now a [15-pin auxiliary I/O port](https://buildbotics.com/manual-v1-0-2/#15pinauxilliaryioport) which allows to use external stepper drivers and stepper motors, e.g. closed-loop steppers or servos. See [here for details](https://forum.onefinitycnc.com/t/what-features-would-you-like-to-see-in-2024/23761/38).

---

<div class="post-metadata">

**Author:** ![DizzyG](https://avatars.discourse-cdn.com/v4/letter/d/a87d85/32.png) [@DizzyG](https://forum.onefinitycnc.com/u/DizzyG)\
**Post date:** [February 13, 2024, 3:42pm UTC](https://forum.onefinitycnc.com/t/upgrade-the-raspberry-pi-hardware-in-the-controller/23987/6 "2024-02-13T15:42:06Z")

</div>

Prior to switching to the Masso controller, I ran my BB with a CM4 on a Pi3 adapter ([https://www.waveshare.com/wiki/CM4-to-Pi3-Adapter](https://www.waveshare.com/wiki/CM4-to-Pi3-Adapter)) and an external WiFi antenna for a long time with no problems at all.

Correction: You must use the 64 bit version, I cannot comment on using internal memory (it’s been a long time since I installed it and forgot it was the 32 bit version that gave problems)
