Raspberry Pi by Pi Foundation
Firmware
Turn a Raspberry Pi into an EZ-B V4 server for EZ-Builder: open-source Python, camera support, EZ-Builder connection, hardware precautions.
Turn a Raspberry Pi into an EZ-B to control Pi Camera, GPIO and UART from ARC over LAN/WiFi; supports bi‑directional UART servos.
A Raspberry Pi is a small, affordable computer that can be used as the “brain” of your robot when running Synthiam ARC or when running an EZB Server (which lets ARC connect to the Pi over the network).
There are two common ways to use a Raspberry Pi with ARC:
Option A (Recommended): Run ARC on Windows 11 installed on the Raspberry Pi
Install Windows 11 on a Raspberry Pi 4 (or newer), install ARC, and then use a dedicated robot I/O controller (an “EZB”) such as an Arduino, ESP32, or an EZ-Robot controller for servos and sensors.
Option B: Use the Raspberry Pi as an EZB Server
In this setup, ARC runs on another computer and connects to the Pi over WiFi/Ethernet. The Pi hosts an EZB Server firmware. If you choose this route, select one of the firmware options shown at the top of this page (for example, DJ’s EZBPi or PTP’s Blueberry).
Raspberry Pi onboard I/O is generally not ideal for robotics motion control. Many robots need features like stable servo timing, hardware PWM, ADC (analog inputs), and multiple UART/serial ports. For most robots, you will get a much better experience by using the Pi to run ARC (or to run your robot “brain”) and using an external controller (Arduino/ESP32/EZ-Robot) for the I/O.
Install ARC on Raspberry Pi with Windows 11 (recommended)
You can run ARC directly on a Raspberry Pi by installing Windows 11 for ARM. This is recommended if you want the Pi to be the robot’s main computer (running the ARC project locally).
- Raspberry Pi 4 or newer (Pi 4 is the oldest model that runs Windows properly)
- 8GB RAM minimum (more is better if available)
- External SSD strongly recommended (Windows + ARC on microSD is usually very slow)
While Windows 11 can boot from a microSD card, robot builds are much more enjoyable when booting from a fast drive (SSD or fast USB 3.x flash drive). Slow storage can cause long boot times, laggy UI, and delayed responses.
When running ARC on Windows 11 (on the Pi), connect an external I/O controller (EZB) via USB or WiFi:
- Arduino (common choice for sensors/servos)
- ESP32 (WiFi + I/O, good for distributed robot parts)
- EZ-Robot controller (purpose-built robotics controller)
If you want to boot from a fast USB thumb drive, these models have worked well:
- Samsung 128GB USB 3.1 Flash Drive BAR Plus (MUF-128BE3)
- SanDisk 128GB Extreme PRO USB 3.x Solid State Flash Drive (SDCZ880-128G-G46)
Windows-on-Pi instructions can change over time, so it’s okay to follow the video below and also search for newer guides if something is different on your setup.
- Windows build downloader: https://uup.rg-adguard.net
- Performance/robot setup guide: Tips To Making a Robot
It’s possible to install Windows 11 on a Raspberry Pi without using a separate PC. You can prepare the Windows installer directly from the Pi while it’s running a Debian-based OS (like Raspberry Pi OS) using WoR Flasher by Botspot.
The method shown in the video can install Windows 11 to:
- microSD card (works, but usually slow)
- USB drive (fast USB recommended)
- USB-to-SSD (recommended for the best experience)
- WoR Flasher GitHub: https://github.com/Botspot/wor-flasher
- Install from a PC (alternative guide): https://youtu.be/UYSytYtyqCk
- Raspberry Pi 4 or newer: https://amzn.to/3qBNZCQ
- Optional Raspberry Pi 400 or newer: https://amzn.to/3duZEOi
- Pi CPU cooler (recommended if running heavy workloads): https://amzn.to/3hpmVT0
- 240GB SSD: https://amzn.to/3hpEIti
- SSD to USB adapter: https://amzn.to/3jydp2G
- Optional microSD card: https://amzn.to/3hodXWa
- USB drive: https://amzn.to/364qLvK
Installation Tips & Performance for SBCs
If you are using a Raspberry Pi or any other single-board computer (SBC) in a robot, setup details matter a lot (power, cooling, storage speed, and remote access). Our Support guide includes helpful steps such as freeing storage space, improving performance, powering an SBC reliably, and running “headless” (no monitor/keyboard) using Remote Desktop tools.
View the instructions here: /Support/Tips to Make a Robot/Overview
- Windows 11: Raspberry Pi 4 or newer is recommended.
- EZB Servers: can be run on older Raspberry Pi models, but onboard I/O is still limited for many robotics needs.

@Legion:
Can you unzip the file ConsoleApp1.zip and run the command:
Note: No need the root privileges e.g. sudo
Please post the output.
=== AddressList ==== Af=[InterNetwork] Addr=[192.168.1.178] === Send Udp Message ==== Send Udp message=[EZ-B||Testing||192.168.1.178||23]
@DJ: It seems is a bug in the udp code:
please change your code:
to this code:
@Legion:
Download this fix EZBPi_fixed.zip do backup copy of the existent EZBPI.exe and then override with the new file. then run:
Let me know if it works.
IT WORKED!!!!
Oh ty ty ty so much!
I’ll get amin to update next week. Thanks guys!!
Hi, I'm having the same problem as above on my RasPi3B when trying to run EZBPi.exe. I've followed all the above checks and the code update but I'm still getting the same response:
pi@raspberrypi:~ $ sudo mono /home/pi/EZBPi/EZBPi.exe Raspberry EZBPi Version: 2019.3.29.0 Verbose logging is: False Serial port is: /dev/serial0 EZB: TCP Started on port 23 EZ-B Server started on TCP Port: 23 Camera: TCP Started on port 24 Camera Server started on TCP Port: 24 Press ESC to quit Broadcast error. The broadcast service has stopped. Here is why: System.Net.Sockets.SocketException (0x80004005): Access denied at System.Net.Sockets.UdpClient.Connect (System.String hostname, System.Int32 port) [0x001b0] in :0 at System.Net.Sockets.UdpClient..ctor (System.String hostname, System.Int32 port) [0x00044] in :0 at EZBPi.Broadcaster.doSendUDP (System.String str) [0x00001] in <0d7091e22ba140df8312a9ba44fa579a>:0 at EZBPi.Broadcaster._timer_Elapsed (System.Object sender, System.Timers.ElapsedEventArgs e) [0x00050] in <0d7091e22ba140df8312a9ba44fa579a>:0
I also have a Pi ZeroW and a Pi 2B on the network and get the same response. Pi Zero and 3 both running Buster, Pi 2 running Stretch.
I've also tried all the other usual fixes, like disabling firewall etc.
I'm getting a similar response when trying to connect ARC 2019.05.08.00 from my PC (Win10) to the Pi:
Attempting connection on 192.168.1.183 Connection Failed: System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it 192.168.1.183:23 at System.Net.Sockets.Socket.InternalEndConnect(IAsyncResult asyncResult) at System.Net.Sockets.Socket.EndConnect(IAsyncResult asyncResult) at System.Net.Sockets.TcpClient.EndConnect(IAsyncResult asyncResult) at EZ_B.EZB.Connect(String hostname, Int32 baudRate) Disconnected
I don't have anything else running that might be causing any conflict and I can connect to all my Pi's remotely from my phone using RasPi Check and RaspController.
Regards, CRW
Did you use the exe fix PTP gave?