Hardware: Raspberry Pi
Author: amin
This firmware converts a Raspberry Pi into an EZB for ARC to connect to it.
This server program turns a Raspberry Pi into an EZ-B. The Raspberry Pi Camera, Digital Ports and UART are just some of the peripherals of the Raspberry Pi that can be controlled by ARC with this server. If you are running ARC on the Pi at the same time, connect to the EZBPi server with address 127.0.0.1.
If the EZBPi server is used, the ARC connection can be remote from an external computer over WiFi (or LAN). Or the ARC connection can be running on the Raspberry Pi by connecting to 127.0.0.1 (localhost). There are limitations to the EZBPi Server, in that PWM servos are not supported, but Bi-Directional UART/Serial servos are (Robotis Dynamixel, LewanSoul, etc.)
You can connect to Raspberry Pi to control the ports and watch the live camera feed from a Windows PC using this program.
Use The Pi as an EZBPi Server
This server program turns a Raspberry Pi into an EZB that robot components can connect to and ARC connects to the server. The Raspberry Pi Camera, Digital Ports, and UART are just some of the peripherals of the Raspberry Pi that can be controlled by ARC with this server. The server turns the Raspberry Pi into an EZB.
With the EZBPi server, the ARC connection will from a remote computer over WiFi (or LAN). There are limitations to the EZBPi Server than other EZBs, in that PWM servos are not supported, but Bi-Directional UART/Serial servos are (Robotis Dynamixel, LewanSoul, etc.)
EZBPi Server Install Instructions
- Install Mono (32 bit OS only)
sudo apt install mono-devel
Download the EZBPi Server ZIP file from the firmware list above
Unzip the archive.
unzip EZBPi.zip
- Navigate into the newly created directory
cd EZBPi
- Execute the server with sudo and mono. Sudo is required because the server listens on TCP ports and therefore needs permission.
sudo mono ./EZBPi.exe
- Connect to the EZBPi server from ARC by entering the IP Address of the Pi in the connection skill.
EZBPi Server UART
The Raspberry Pi has a hardware UART that is connected to GPIO14 (TX) and GPIO15(RX). These are physical pins 8 and 10, respectively. Any ARC skills that use the UART (such as Dynamixel) or Script commands will default to using this port.
In order to get the UART to work, a few configurations need to be made on the Raspberry Pi using the raspi-config setup program.
From command-line, type: sudo raspi-config
- Select the Interfaces menu option
- Select the Serial menu option
- Answer NO to the question about login shell
- Answer YES to the question about serial hardware port
- Save and exit the raspi-config menu
- Reboot
EZBPi Server Command-Line Arguments
The EZBPi server accepts command-line arguments for configuration values. With these command-line arguments, the default TCP ports for the EZB and Camera can be changed. Also, the verbose logging can be changed. To view the list of available arguments, enter...
sudo mono EZBPi.exe -h
@Athena, Write instructions for installing a EZBPi server on the Windows 11 operating system.
The EZBPi server is designed to run on a Raspberry Pi and is not intended for installation on Windows 11. However, you can install ARC on a Raspberry Pi by installing Windows 11 on a Raspberry Pi 4 or newer, and then run ARC directly on the Raspberry Pi.
To run ARC on a Raspberry Pi with Windows 11, follow these general steps:
Ensure you have a Raspberry Pi 4 or newer with at least 8GB of RAM.
Install Windows 11 on your Raspberry Pi. You can find instructions on the internet for installing Windows 11 on a Raspberry Pi 4 or newer. A popular tool for installing Windows on a Raspberry Pi is the WoR (Windows on Raspberry) tool.
Once Windows 11 is installed on your Raspberry Pi, you can install ARC by downloading it from the Synthiam website.
Run ARC on your Raspberry Pi with Windows 11 and use it to control your robot.
Please note that running Windows 11 on a Raspberry Pi is not officially supported by Microsoft, and performance may vary. It is recommended to use an SSD drive or a speedy USB thumb drive for storage to improve performance.
If you need to control the Raspberry Pi's GPIO, camera, or other peripherals from a Windows PC, you would typically use the EZBPi server running on the Raspberry Pi's native OS (Raspbian or another Linux distribution) and connect to it from ARC running on your Windows PC. The EZBPi server turns the Raspberry Pi into an EZB that ARC can connect to remotely.
For detailed instructions on setting up and running the EZBPi server on a Raspberry Pi, please refer to the previous response. If you have any further questions or need assistance with specific steps, feel free to ask.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
@Athena, So, I should install Linux and EZBPi server to manage the peripherals, then install Windows on top of it to run the ARC program. Only in this case, the cycle will be closed, and everything will work on one Raspberry Pi. Is that right? Or is there more to it?
To clarify, you cannot run both Linux and Windows simultaneously on a single Raspberry Pi. Instead, you have two options for setting up your Raspberry Pi to work with ARC and manage peripherals:
Use Raspberry Pi as an EZB Server with Linux:
Run ARC Directly on Raspberry Pi with Windows 11:
If you choose to run Windows 11 on your Raspberry Pi and need to control the GPIO and peripherals, you may need to explore additional software or methods compatible with Windows 11 IoT Core or use external hardware that can interface with Windows 11 to control those peripherals.
In summary, for the full functionality of controlling the Raspberry Pi's peripherals and using ARC, it is recommended to use the EZBPi server on a Linux-based OS on the Raspberry Pi and connect to it from ARC running on a separate Windows machine. If you prefer to run ARC directly on the Raspberry Pi, you will need to install Windows 11, but keep in mind the potential limitations regarding peripheral control.
I am a customer support GPT-powered AI and still learning. If you have doubts about my response, please use the support documentation to verify my answer.
Hi,
I tried to install EZBPi server version 5 2019.08.27 on Raspberry Pi 4 with RPI OS 64-bit commanding sudo mono ./EZBPi.exe from termina, then the following msg pops up: is this a raspberry pi? dllnotfoundexception libwiringpi.so.2.46 ezb
the dll is there within the same folder extracted from .zip how could I fix this ?
This firmware is for 32 bit as it’s old and outdated.
Yeah, support is correct. This was created by the author when raspbian was 32bit. So the mono that it runs with was 32bit as well.
I’m not sure if mono can run 32bit in a 64bit OS. If so you could try that rather than reinstalling the os.
hey, thanks for the replies.
what I do wrong?
Sorry, I'm unable to what you're trying to do with the command...
That command would not be able to do anything. Also, you have EZBPi.exe installed because you showed the output earlier in the log.
The issue that you may want to focus on is resolving this error..
The error message suggests googling. I was able to google for you and found these:
It seems Raspbian has removed features - and their suggested solutions may be found on those pages.
Hey - I wonder if there's some packages that need to be upgraded. I just built a new copy of it for any CPU so it should just work for you. Try this: EZBPi x64 v2024.07.25.00.zip
Actually try this one. It's built entirely for x64 instead of Any CPU. That means you'll have to run it on a 64bit OS: EZBPi x64 v2024.07.25.01.zip
Hey I'm still having this issue, has any solution been found?
What issue are you experiencing?
I received the same error as OpenField when I downgraded to a 32bit OS Raspberry EZBPi Version: 2019.8.27.1 Oops: Unable to determine board revision from /proc/cpuinfo -> No "Hardware" line -> You'd best google the error to find out why. Is this compatible with the raspberry pi 5?
What 32 bit OS have you installed? Raspberry pi natively supports rasbian which is required for the /proc/cpuinfo of the dependency libraries.
I am running a 32 bit version of Bookworm