4.2.1. Introduction to Red Pitaya Software Development
1. Understanding Red Pitaya Software Architecture
Red Pitaya runs a complete Linux operating system (based on Debian) on its ARM Cortex-A9 processor. The software stack consists of:
Linux Kernel - Modified kernel with custom drivers for FPGA communication and peripherals
System Libraries - Standard Linux libraries plus Red Pitaya-specific APIs
Applications - Web-based applications, command-line tools, and background services
FPGA Interface - Drivers and APIs for communicating with the FPGA hardware
This architecture allows you to:
Develop standard Linux applications
Create custom APIs and drivers
Build web-based user interfaces
Integrate with existing Linux tools and frameworks
2. Development Approaches
Application Development
Develop applications that run on Red Pitaya using the provided APIs:
C++ API - Native performance, direct hardware access
Python API - Rapid prototyping, easier development
Web Applications - Browser-based user interfaces
Streaming Applications - High-speed data transfer to PC
Best for: Creating custom measurement tools, automation scripts, data acquisition applications
System Development
Modify or rebuild the Red Pitaya operating system and ecosystem:
Ecosystem Building - Compile the entire Red Pitaya OS from source
Debian Packages - Create installable software packages
Custom Images - Build modified OS images for deployment
Best for: Custom OS configurations, system integrations, production deployments
Configuration & Integration
Configure and extend Red Pitaya’s capabilities:
Network Configuration - Wi-Fi, Ethernet, custom network setups
Peripheral Integration - GPIO, SPI, I2C interfaces
Hardware Add-ons - TFT displays, custom hardware
Remote Deployment - Automated software updates and management
Best for: System administration, hardware integration, deployment automation
3. Development Workflow
Typical Application Development
Access Red Pitaya - Connect via SSH or serial console
Choose Your API - C++ for performance, Python for ease
Develop & Test - Write code, test on device
Deploy - Copy to Red Pitaya or build into package
Typical System Development
Set Up Build Environment - Clone repositories, install dependencies
Modify Components - Change ecosystem, applications, or kernel
Build - Compile the modified components
Test - Deploy to Red Pitaya and verify
Package - Create Debian packages or SD card images
4. Prerequisites
For Application Development:
Basic Linux command line knowledge
Programming experience (C, C++, or Python)
Understanding of signal processing concepts
SSH client for remote access
For System Development:
Advanced Linux knowledge
Experience with build systems (Make, CMake)
Understanding of Debian package management
Cross-compilation experience helpful
5. Getting Help
API Documentation - Refer to C++/Python API guides for function references
Examples - Study example code in the Applications & Features section
Known Issues - Check troubleshooting section for common problems
Community - Red Pitaya forum for community support
6. Next Steps
New to Red Pitaya? Start with Getting Started → Console Access
Building applications? Go to Application Development section
Modifying the OS? See System Development section
Configuring hardware? Check Configuration section