
From Beginner to Waveform Developer
R4W Development Team
(Aida, Joe Mooney, Claude
Code)
December 2025
11 hands-on workshops covering SDR fundamentals to advanced topics.
| Duration | Topics |
|---|---|
| Total | ~11 hours |
| Beginner | 4 workshops |
| Intermediate | 4 workshops |
| Advanced | 3 workshops |
┌─────────────────────┐
│ 01: Installation │
└──────────┬──────────┘
│
┌──────────▼──────────┐
│ 02: I/Q Basics │
└──────────┬──────────┘
│
┌────────────┼────────────┐
│ │ │
┌───▼───┐ ┌─────▼─────┐ ┌───▼───┐
│03: OOK│ │04: FSK/PSK│ │07:Chan│
└───┬───┘ └─────┬─────┘ └───┬───┘
│ │ │
└─────┬──────┘ │
│ │
┌────▼────┐ │
│ 05: QAM │◄─────────────┘
└────┬────┘
│
┌────▼───────┐
│06: Spread │
│ Spectrum │
└────┬───────┘
│
┌────▼────────────┐
│08: Build Your │
│ Own Waveform │
└────┬────────────┘
│
┌─────┴─────┐
│ │
┌───▼────┐ ┌────▼────┐
│09:Explr│ │10:RT/FPG│
└────────┘ └────┬────┘
│
┌────▼────┐
│11:RT Sch│
└─────────┘
Duration: 30 minutes
| Topic | Content |
|---|---|
| Installation | Rust, cargo, dependencies |
| First Run | Build and run explorer |
| CLI Basics | Commands, help, examples |
| Project Tour | Directory structure |
Duration: 45 minutes
| Topic | Content |
|---|---|
| Complex Numbers | Real + imaginary |
| I/Q Samples | In-phase, quadrature |
| Time Domain | Waveform visualization |
| Sampling | Nyquist, aliasing |
Learn the foundation of all SDR!
Duration: 45 minutes
| Modulation | Description |
|---|---|
| CW | Continuous wave (carrier only) |
| OOK | On-Off Keying |
| ASK | Amplitude Shift Keying |
Simplest forms of digital modulation.
Duration: 60 minutes
| Modulation | Bits/Symbol | Description |
|---|---|---|
| FSK | 1 | Frequency shift |
| GFSK | 1 | Gaussian filtered FSK |
| BPSK | 1 | Binary phase shift |
| QPSK | 2 | Quadrature PSK |
| 8PSK | 3 | 8-point PSK |
Frequency vs phase modulation trade-offs.
Duration: 60 minutes
| QAM Order | Bits/Symbol | Use Case |
|---|---|---|
| 4-QAM | 2 | Same as QPSK |
| 16-QAM | 4 | WiFi, LTE |
| 64-QAM | 6 | High-rate WiFi |
| 256-QAM | 8 | Cable modems |
Combines amplitude and phase modulation.
Visual representation of symbol positions:
Q (Imaginary)
│
● │ ● 16-QAM:
│ 16 points
───────┼─────── 4 bits/symbol
│
● │ ●
│
I (Real)
Duration: 75 minutes
| Technique | Description |
|---|---|
| DSSS | Direct Sequence - spreading code |
| FHSS | Frequency Hopping - channel hopping |
| CSS | Chirp Spread Spectrum (LoRa) |
Trade bandwidth for noise immunity.
Chirp Spread Spectrum modulation:
| Parameter | Values |
|---|---|
| Spreading Factor | SF5-SF12 |
| Bandwidth | 125/250/500 kHz |
| Chips/Symbol | 2^SF |
| Range | Up to 15 km |
Symbol = cyclic shift of base chirp.
Duration: 60 minutes
| Effect | Description |
|---|---|
| AWGN | Additive White Gaussian Noise |
| Fading | Signal strength variation |
| Multipath | Reflections, delays |
| Doppler | Frequency shift from motion |
Simulate real-world conditions.
| SNR (dB) | BPSK BER | QPSK BER |
|---|---|---|
| 0 | 0.08 | 0.08 |
| 5 | 0.006 | 0.006 |
| 10 | 4e-6 | 4e-6 |
| 15 | 3e-12 | 3e-12 |
Higher SNR = lower bit errors.
Duration: 90 minutes
| Step | Task |
|---|---|
| 1 | Implement Waveform trait |
| 2 | Write modulate() |
| 3 | Write demodulate() |
| 4 | Define constellation |
| 5 | Add unit tests |
| 6 | Register in factory |
Build your own waveform!
Duration: 60 minutes
Every GUI feature explained:
| Panel | Features |
|---|---|
| Overview | Waveform intro, SDR concepts |
| Waveform Lab | Parameter tweaking |
| Streaming | Real-time visualization |
| Code Explorer | Implementation details |
| Performance | Benchmarks, metrics |
Duration: 75 minutes
| Topic | Content |
|---|---|
| Real-Time Concepts | Latency, jitter, deadlines |
| RT Primitives | Lock-free buffers, memory locking |
| FPGA Overview | IP cores, Zynq integration |
| Acceleration | FFT, FIR, chirp in hardware |
Prepare for production systems.
Duration: 90 minutes
| Topic | Content |
|---|---|
| TickScheduler | Virtual time simulation |
| RealTimeScheduler | Wall-clock events |
| State Machine | TX/RX coordination |
| FHSS Implementation | Frequency hopping |
| TDMA Implementation | Time slot management |
Each workshop includes:
| Section | Purpose |
|---|---|
| Objectives | What you’ll learn |
| Background | Theory and concepts |
| Hands-On | Code exercises |
| Explorer | GUI experiments |
| Challenges | Advanced exercises |
| Key Takeaways | Summary points |
| Requirement | Details |
|---|---|
| Rust | rustup installed |
| Git | Clone repository |
| Build tools | C compiler, pkg-config |
| Programming | Basic experience |
| Math | Complex numbers helpful |
Each workshop has:
| File | Content |
|---|---|
XX-topic.md |
Full workshop content |
| Code examples | In crates/r4w-core |
| Explorer tabs | Visual experiments |
| Exercises | Hands-on practice |
Location: workshops/
| Level | Workshops | Skills |
|---|---|---|
| Beginner | 01-03 | Basics, simple modulation |
| Intermediate | 04-07 | PSK, QAM, spread spectrum |
| Advanced | 08-11 | Implementation, RT, FPGA |
From Workshop 04 (BPSK):
Each workshop includes optional challenges:
| Workshop | Challenge |
|---|---|
| 03 | Add pulse shaping to OOK |
| 05 | Implement Gray coding |
| 06 | Build PN sequence generator |
| 08 | Create Manchester encoding |
| 11 | Implement CSMA/CA |
| Resource | Location |
|---|---|
| GitHub Issues | github.com/joemooney/r4w/issues |
| Documentation | cargo doc --open |
| CLAUDE.md | Project guidance |
| OVERVIEW.md | Architecture reference |
| Metric | Value |
|---|---|
| Workshops | 11 |
| Total Duration | ~11 hours |
| Topics | CW to FPGA |
| Waveforms Covered | 20+ |
| Hands-On Exercises | 50+ |
From zero to waveform developer!
R4W - Workshop Series
github.com/joemooney/r4w
Start: workshops/01-getting-started.md