🤔 General Questions
YateBTS is an open-source GSM Base Transceiver Station (BTS) software that allows you to create your own GSM network. It's designed to run on Linux systems and can be used for research, testing, or creating private GSM networks.
Key features include:
- GSM 900/1800/1900 MHz support
- Voice calls and SMS
- GPRS/EDGE data services
- Web-based management interface
- Multiple SIM card support
⚠️ Legal Disclaimer
Operating a GSM BTS may be subject to local telecommunications regulations and licensing requirements. Always check with your local regulatory authority before deployment.
Legal considerations include:
- Spectrum Licensing: Check if you need a license for the frequency band
- Power Limits: Ensure you comply with power output regulations
- Privacy Laws: Consider data protection and privacy regulations
- Interference: Ensure your BTS doesn't interfere with licensed networks
This project is intended for educational and research purposes only.
The coverage area depends on several factors:
- Antenna: Type and gain of the antenna used
- Power Output: Transmit power setting (limited by regulations)
- Environment: Indoor vs outdoor, obstacles, interference
- Frequency Band: Different bands have different propagation characteristics
Typical coverage ranges:
- Indoor: 50-200 meters
- Outdoor (urban): 200-500 meters
- Outdoor (rural): 500-2000 meters
🔧 Hardware Questions
The BladeRF Mini A4 is our recommended SDR device because:
- Compact Size: Perfect for portable BTS applications
- Low Power: Minimal power consumption for battery operation
- Wide Frequency: Covers all GSM bands (900/1800/1900 MHz)
- Cost Effective: Best price-to-performance ratio
- USB 3.0: High-speed data transfer for real-time processing
- Good Support: Well-documented and actively maintained
Alternative devices like BladeRF x40 or x115 can also be used but are larger and more expensive.
Compatibility by model:
- Raspberry Pi 4 (8GB): ✅ Recommended - optimal performance
- Raspberry Pi 4 (4GB): ✅ Supported - minimum recommended
- Raspberry Pi 4 (2GB): ⚠️ Limited - may have performance issues
- Raspberry Pi 3B+: ⚠️ Legacy support only - not recommended
- Raspberry Pi Zero 2W: ❌ Not supported - insufficient resources
The 8GB model is recommended for optimal performance with multiple SIM cards and concurrent users.
While not strictly required, the GeeekPi DeskPi Lite case provides significant benefits:
- M.2 SSD Support: 2TB NVMe SSD for fast boot and storage
- Thermal Management: PWM fan keeps system cool under load
- Extra Ports: Additional USB and HDMI for peripherals
- Power Management: Integrated power button for clean shutdown
- Professional Appearance: Clean, compact design
You can use a standard case, but you'll miss out on the M.2 SSD performance boost and thermal management.
💻 Installation Questions
Installation time depends on your internet connection and system performance:
- Fast Internet (100+ Mbps): 15-20 minutes
- Medium Internet (25-100 Mbps): 20-30 minutes
- Slow Internet (<25 Mbps): 30-45 minutes
The automated installation script handles everything, including:
- System updates and dependencies
- YateBTS compilation and installation
- BladeRF driver setup
- Web interface configuration
- System service creation
If installation fails, try these steps:
# Check system requirements
free -h
df -h
lsb_release -a
# Update system first
sudo apt update && sudo apt upgrade -y
# Re-run installation with verbose output
./install/install.sh 2>&1 | tee install.log
# Check installation log for errors
cat install.log | grep -i error
Common issues and solutions:
- Insufficient memory: Close other applications, use swap
- Network issues: Check internet connection, try different DNS
- Permission errors: Ensure user has sudo access
- Disk space: Free up space, use M.2 SSD if available
Supported operating systems:
- Ubuntu 22.04 LTS: ✅ Recommended - fully tested
- Ubuntu 20.04 LTS: ✅ Supported - may need minor adjustments
- Debian 11/12: ⚠️ Partial support - manual configuration required
- Raspberry Pi OS: ❌ Not recommended - missing dependencies
- Other Linux: ⚠️ May work with manual configuration
The installation script is optimized for Ubuntu 22.04 LTS. Other distributions may require manual dependency installation.
⚙️ Configuration Questions
SIM card configuration involves several steps:
# Edit SIM configuration
sudo nano /etc/yate/sims.conf
# Add SIM card information
[sim1]
imsi=001010123456789
msisdn=1234567890
ki=your-ki-key-here
opc=your-opc-key-here
You'll need to extract the following from your SIM cards:
- IMSI: International Mobile Subscriber Identity
- MSISDN: Phone number
- KI: Authentication key (32 hex characters)
- OPC: Operator variant algorithm configuration field
Use tools like PySIM or SIM card readers to extract this information.
Concurrent user capacity depends on several factors:
- Raspberry Pi 4 (8GB): 10-20 concurrent users
- Raspberry Pi 4 (4GB): 5-10 concurrent users
- Raspberry Pi 4 (2GB): 2-5 concurrent users
Performance limitations:
- CPU: Single-threaded YateBTS processing
- Memory: Each user consumes ~200-400MB RAM
- Storage: M.2 SSD recommended for better I/O
- Network: Bandwidth limitations for data services
For higher capacity, consider using a more powerful x86 system.
To change the operating frequency:
# Edit YateBTS configuration
sudo nano /etc/yate/ybts.conf
# Find and modify the ARFCN setting
[GSM]
arfcn=975 # Change this value
# Common ARFCN values:
# GSM 900: 975 (example)
# GSM 1800: 512 (example)
# GSM 1900: 512 (example)
Important considerations:
- Legal Compliance: Ensure frequency is legal in your region
- Antenna Compatibility: Use antenna designed for the frequency
- Interference: Avoid licensed frequency bands
- Power Limits: Comply with local power regulations
🔧 Troubleshooting Questions
If your phone can't find the network, check these common issues:
- Frequency Mismatch: Ensure phone supports the configured frequency
- Antenna Connection: Check antenna is properly connected
- Power Settings: Verify transmit power is adequate
- Service Status: Check if YateBTS service is running
- BladeRF Detection: Ensure SDR device is recognized
# Check service status
sudo systemctl status yatebts
# Check BladeRF detection
bladeRF-cli --probe
# Check configuration
grep arfcn /etc/yate/ybts.conf
High temperature can cause performance issues and system instability:
# Check current temperature
vcgencmd measure_temp
# Enable PWM fan control
sudo systemctl start deskpi-fan-control
sudo systemctl enable deskpi-fan-control
# Optimize system performance
echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
Solutions:
- Enable Fan Control: Use GeeekPi case PWM fan
- Improve Ventilation: Ensure adequate airflow
- Reduce Load: Close unnecessary services
- Use M.2 SSD: Reduce I/O bottlenecks
If you can't access the web interface:
# Check Apache status
sudo systemctl status apache2
# Test local access
curl http://localhost/yatebts
# Check firewall
sudo ufw status
# Restart Apache
sudo systemctl restart apache2
Common solutions:
- Service Restart: Restart Apache service
- Firewall Rules: Allow HTTP traffic
- Port Conflicts: Check if port 80 is available
- Configuration Errors: Check Apache error logs
📚 Additional Resources
🔗 More Help
- Complete Troubleshooting Guide - Detailed solutions
- Security Guide - Hardening and best practices
- Hardware Specifications - Detailed hardware info
- GitHub Repository - Source code and issues
✅ Still Need Help?
If you can't find the answer to your question:
- Check the Troubleshooting Guide for detailed solutions
- Search our GitHub Issues for similar problems
- Create a new issue on GitHub with detailed information
- Include system logs and configuration details