Multiboard streaming
Stream data from multiple Red Pitaya boards simultaneously to create multi-channel acquisition and generation systems.
Overview
To stream data from multiple Red Pitaya boards simultaneously, start the streaming application on each board. This can be done either
through the web interface or by loading the stream_app FPGA image and running the streaming-server command via SSH. Then either
download the desktop client application or the command line client to your
computer.
Both the desktop application and the command line client will detect all Red Pitaya boards on the same local network that are running the streaming application and allow for simultaneously starting and stopping the streaming process on all boards.
Key features
Automatic board detection: Clients automatically discover all boards on the local network
Synchronized control: Start and stop streaming on all boards simultaneously
Multi-channel acquisition: Combine channels from multiple boards (e.g., 2 boards = 4 channels, 4 boards = 8 channels)
Scalable system: Add more boards to increase channel count
Independent configuration: Each board can have different settings
Setup procedure
Step 1: Prepare Red Pitaya boards
For each Red Pitaya board in your system:
Connect to the same local network using a router or network switch
All boards and the computer running the client must be connected to the same router or switch
Direct Ethernet connection between boards and computer will not work - the application requires a router or switch for automatic board detection
Each board will receive an IP address from the router’s DHCP server
Ensure each board has a unique IP address
Load the streaming application:
Via web interface: Open the Streaming application
Via SSH: Run
overlay.sh stream_app && streaming-server
Verify the application is running (LED 2 on, LED 0 blinking)
Step 2: Configure each board
Configure the streaming parameters for each board individually:
Set ADC configuration (sampling rate, channels, resolution)
Set DAC configuration if needed
Configure Memory settings (block size, memory allocation)
Note
All boards should use the same sampling rate and resolution for synchronized multi-channel acquisition.
Step 3: Install streaming client
Download and install either:
Desktop client application - For GUI-based control
Command line client - For scripting and automation
The client will automatically discover all boards running the streaming application on the local network.
Note
Ensure all boards are connected to a router and that your computer’s firewall or antivirus software allows network communication for the client application (ports 18900-18903).
Step 4: Start streaming
Using desktop client:
Open the desktop application
All detected boards will appear in the board list
Select the boards you want to stream from
Click “Start All” to begin streaming from all selected boards simultaneously
Using command line client:
The command line client can detect and stream from multiple boards automatically. See the command line client documentation for specific commands.
Hardware synchronization
For applications requiring precise timing synchronization between boards, Red Pitaya offers two hardware synchronization solutions that ensure phase-aligned data acquisition across multiple boards:
X-channel system - Cost-effective daisy-chain synchronization using SATA or USB-C cables. Ideal for 2-3 boards at moderate to high sampling rates.
X-channel 2.0 (Click Shield) synchronisation - Professional clock distribution using dedicated LVDS buffers. Recommended for larger systems (4+ boards) and maximum sampling rates.
Both systems enable synchronized multi-board acquisition for applications such as beamforming, phase-sensitive measurements, and multi-channel signal processing.
For complete hardware synchronization setup, specifications, and comparison, see the Multiboard Synchronisation documentation.
Note
Hardware synchronization is not required for basic multiboard streaming. The streaming clients can detect and control multiple boards without hardware sync, but the data acquisition will not be phase-aligned between boards.
Network considerations
For optimal multiboard streaming performance:
Router configuration
Use a dedicated network switch or router (required):
Essential for board detection - Direct Ethernet connection will not work
All boards must be connected to the same router or switch for automatic discovery
Reduces network congestion
Provides stable connections
Enables full 1 Gbit speeds
Assign static IP addresses: Prevents IP conflicts and simplifies board identification
Quality of Service (QoS): If available, prioritize streaming traffic
Network bandwidth
Consider the total network bandwidth when streaming from multiple boards:
Where:
\(N_{boards}\) - Number of Red Pitaya boards
\(f_S\) - Sampling frequency
\(N_{channels}\) - Number of active channels per board
\(Bps\) - Bytes per sample (1 for 8-bit, 2 for 16-bit)
Example: 2 boards, 62.5 MS/s, 2 channels each, 16-bit:
This configuration exceeds both:
1 Gbit Ethernet capacity (~125 MB/s) - Network bottleneck
Per-board streaming limits (~62.5 MB/s per board) - See Data Streaming Limitations
In this case, you must reduce sampling rate or use fewer channels. For detailed per-board limitations and bandwidth calculations, see the Data Streaming Limitations documentation.
Performance optimization
To maximize multiboard streaming performance:
Reduce per-board data rate
Lower sampling rate: Use decimation when possible
Fewer channels: Disable unused channels
8-bit resolution: Use when 16-bit precision isn’t required
RAW format: Skip VOLTS conversion
Optimize network
Use Gigabit Ethernet: Ensure all network components support 1 Gbit or higher
Quality cables: Use Cat 5e or Cat 6 cables
Minimize hops: Connect boards directly to the same switch
Dedicated network: Isolate streaming traffic from other network activity
Stagger streaming start
If starting all boards simultaneously causes network congestion, consider staggering the start times by a few milliseconds. This can help distribute the initial burst of data packets.
Note
This requires customizing the streaming client.
Troubleshooting
Boards not detected
Problem: Client doesn’t see all boards
Solutions:
Check network topology - Boards must be connected through a router or switch. Direct Ethernet connection between computer and boards will not work
Verify all boards are on the same network subnet
Check firewall/antivirus settings - Ensure Python, C++ and the streaming client are allowed network access (ports 18900-18903)
If you see errors like:
Search: DONE Found boards:
or:
Host not found The client did not connect
Your firewall or antivirus may be blocking network communication. Whitelist Python, C++ and the streaming client application. The easiest way to resolve this is to run the program a few times, then check the firewall/antivirus logs to see if it blocked the application, and create an exception for it (look for “Network access troubleshooting”, “Resolve blocked communication”, etc. in your security software documentation).
Ensure streaming application is running on all boards (LED 2 on, LED 0 blinking)
Try pinging each board from your computer
Restart the streaming application on affected boards
Data loss
Problem: Packet loss or missing data from some boards
Solutions:
Reduce total network bandwidth (lower sampling rate, fewer channels)
Check network cable quality and connections
Use a higher-quality network switch
Increase block size for each board
Monitor network traffic to identify bottlenecks
Use cases
4-channel acquisition (2 boards)
Setup: 2× STEMlab 125-14 (2 channels each)
Result: 4-channel synchronized acquisition
Example: Quadrature signal analysis, 3-phase power monitoring
8-channel acquisition (4 boards)
Setup: 4× STEMlab 125-14 (2 channels each)
Result: 8-channel synchronized acquisition
Example: Multi-sensor arrays, acoustic beamforming
16-channel acquisition (4× 4-input boards)
Setup: 4× STEMlab 125-14 4-Input (4 channels each)
Result: 16-channel synchronized acquisition
Example: Large sensor arrays, multi-channel FFT analysis
Next steps
Set up hardware synchronization with X-channel system
Review Data Streaming Limitations for bandwidth calculations
Try the Desktop client application for easy multiboard control
Learn about Command line client for automated multiboard streaming