Skip to content

Doku: FM Transceiver index.md vollständig überarbeitet (2m + 70cm; USB-Bridge erklärt)#14

Merged
peterus merged 3 commits into
mainfrom
docs/improve-index
May 13, 2026
Merged

Doku: FM Transceiver index.md vollständig überarbeitet (2m + 70cm; USB-Bridge erklärt)#14
peterus merged 3 commits into
mainfrom
docs/improve-index

Conversation

@peterus

@peterus peterus commented May 13, 2026

Copy link
Copy Markdown
Member

Summary

Vollwertige Überarbeitung der FM-Transceiver-Doku im selben Stil wie PowerBoard #6 / BusBoard #5 / CM4Carrier #4.

Wichtigste Änderungen:

  • Band-Variante korrigiert — Modul ist NICHT auf 2 m fixiert, sondern bestückbar für 2 m (SA818V + LFCN-160) ODER 70 cm (SA818U + LFCN-180+490). PCB ist Band-agnostisch.
  • Architektur klargestellt: CM4 kommuniziert ausschließlich via USB — STM32U575 ist Composite-Device (UAC2 + CDC ACM + DFU). I²C/UART/GPIO am Bus-Stecker sind NICHT genutzt.
  • STM32-Firmware-Rolle dokumentiert: UAC2 für Audio, CDC ACM für Kontrolle (PTT/Squelch/Frequenz), DFU für Firmware-Update (kein BOOT0-Eingriff nötig).
  • STM32↔SA818 GPIO-Mapping: PTT (GPIO1→PB2), PWR_DOWN (GPIO2→PB10), H/L (GPIO3→PB11), SQUELCH (GPIO4→PB1).
  • JP201 als 2-Lötpad-Brücke (NICHT Pin-Header) für EEPROM-Write-Protect dokumentiert.
  • EEPROM-Stand: vorgesehen für Modul-Konfig, aktuell noch leer.
  • Antenne: Board-Edge SMA.
  • SWD-Header (J201): Cortex-10-Pin-Belegung; Pin-1-Lage TBD verlinkt auf Issue #13.

Issue created

#13 — STM32 SWD-Header (J201): Pin-1-Lage im Silkscreen markieren

Test plan

  • 8× site.data.project.name, keine stray main- refs
  • kibot-check passes on PR
  • Post-merge debug-docs runs and gh-pages updates

Copilot AI review requested due to automatic review settings May 13, 2026 18:24
Adds:
- 1-sentence description front-matter (band-agnostic — 2 m or 70 cm)
- Übersicht clarifying USB-only CM4 communication via STM32U575
  Composite Device (UAC2 + CDC ACM + DFU)
- Mermaid block diagram of the signal flow STM32 ↔ SA818 ↔ antenna
- Band-variant table (SA818V + LFCN-160 for 2 m; SA818U + LFCN-180+490
  for 70 cm) with warning about chip/filter pairing
- Steckverbinder table (J101 SMA, J201 SWD, J202 bus, JP201 solder-pad)
- Bus pinout J202 (FM slot's local view — mirrored vs BusBoard slot)
- SWD header pinout (J201) + TBD note linking to issue #13 for pin-1
  silkscreen marking
- STM32 ↔ SA818 signal mapping table (PTT GPIO1→PB2, PWR_DOWN GPIO2→
  PB10, H/L GPIO3→PB11, SQUELCH GPIO4→PB1)
- Firmware role section (UAC2 + CDC + DFU breakdown, all over USB)
- Components table extracted from netlist (SA818, STM32U575, TLV73333
  automotive LDO, USBLC6, CAT24C32 EEPROM, LMR51430 buck, LFCN
  filters, pin drivers)
- EEPROM section — note it's currently empty, intended for module
  config; JP201 solder-pad as write-protect bridge
- Versorgung table
- Bestückung notes incl. variant pairing + antenna safety warning
- Bringup checklist
- Cross-links to BusBoard, PowerBoard, CM4 Carrier, FW-RemoteStation

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR rewrites the FM Transceiver module documentation to describe band variants, USB-based CM4 communication, STM32 firmware roles, connector/power details, and bring-up steps.

Changes:

  • Replaces the brief module description with a full architecture overview and Mermaid block diagram.
  • Adds connector, SWD, GPIO, firmware, EEPROM, power, assembly, and bring-up documentation.
  • Clarifies intended 2 m / 70 cm variants and related module dependencies.
Comments suppressed due to low confidence (2)

doc/index.md:168

  • This power note is inaccurate: the bus +5V rail feeds the 3.3 V LDO input, and U204 (USBLC6-2SC6) is tied to +3V3, while the SA818 rail is the separate local buck output +5V_HF. Saying the bus +5V powers the USBLC6 obscures which rail users should probe and debug.
Hinweis: das Modul nutzt sowohl die +12V- *als auch* die +5V-Schiene vom Bus — die +5V vom Bus speist die USB-Interface-Schaltung (USBLC6), während die SA818-Versorgung lokal aus den +12V gezogen wird (saubere Trennung von Audio/Digital und HF/Switching-Noise).

doc/index.md:180

  • This bring-up check tells users to measure the bus connector +5V pin as the LMR51430 output, but the bus connector pins are on the bus +5V net; the buck output in the board files is the separate +5V_HF rail. This test could pass even if the local SA818 supply is not working.
1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread doc/index.md Outdated
Comment on lines +61 to +62
| **2 m / VHF** | `SA818V` | `LFCN-160` | 144 – 174 MHz |
| **70 cm / UHF** | `SA818U` | `LFCN-180` + `LFCN-490` | 400 – 480 MHz |
Comment thread doc/index.md Outdated
| Bezeichner | Typ | Funktion |
| ---------- | --- | -------- |
| **J101** | Board-Edge SMA | Antennenanschluss (50 Ω) |
| **J201** | 10-Pin 1.27 mm SWD (Cortex Debug) | STM32-Programming- und Debug-Header |
Comment thread doc/index.md Outdated
| ---------- | --- | -------- |
| **J101** | Board-Edge SMA | Antennenanschluss (50 Ω) |
| **J201** | 10-Pin 1.27 mm SWD (Cortex Debug) | STM32-Programming- und Debug-Header |
| **J202** | 20-Pin (Hirose PCN10-20P-2.54DSA) | Bus-Stecker zum [BusBoard](../HW-Module-BusBoard/) |
Comment thread doc/index.md Outdated
Comment on lines +112 to +117
| Funktion | STM32 GPIO-Label | SA818-Pin | Richtung |
| -------- | ---------------- | --------- | -------- |
| **PTT** (Push-to-Talk) | `GPIO1` | `PB2` | STM32 → SA818 |
| **POWER_DOWN** (Modul ein/aus) | `GPIO2` | `PB10` | STM32 → SA818 |
| **H_L_Power** (Sendeleistung high/low) | `GPIO3` | `PB11` | STM32 → SA818 |
| **SQUELCH** (Squelch-Open-Indikator) | `GPIO4` | `PB1` | SA818 → STM32 |
Comment thread doc/index.md Outdated

Zwischen SA818 und CM4 sitzt ein **STM32U575** Mikrocontroller. Er stellt sich am USB als **Composite Device** vor und sieht für das CM4-Linux aus wie:

- **UAC2** (USB Audio Class 2) — TX-Audio strömt vom CM4 als Audio-Sink in den STM32-DAC und von dort als analoges Signal zum SA818-Mic-Input. RX-Audio läuft umgekehrt: SA818-AF_OUT → STM32-ADC → über UAC2 als Audio-Source zurück an's CM4.
Comment thread doc/index.md Outdated
Nach Bestückung (mit Bus + CM4 verbunden):

1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen.
2. **STM32-Boot:** kurze Latenz nach Power-Up sollte am USB ein Composite Device erscheinen (`lsusb` am CM4). Drei Endpoints: UAC2 (Audio), CDC ACM (Serial), DFU.
Comment thread doc/index.md Outdated
| **CDC ACM** | Kontroll-Pfad | `/dev/ttyACM*` — ASCII-Kommandos für PTT, Squelch-Read, Frequenz, Power-Level. |
| **DFU** | Firmware-Update | `dfu-util` kann die STM32-FW über USB neu schreiben — **kein BOOT0-Pin-Eingriff nötig**, die laufende Firmware switcht über CDC-Kommando in den DFU-Mode. |

Audio läuft vollständig analog zwischen SA818 und STM32 (DAC/ADC im STM32) — keine Echtzeitkritik am CM4 nötig, Audio wird als USB-Audio-Stream behandelt.
peterus added 2 commits May 13, 2026 20:36
… LFCN-180 for 2m / LFCN-490 for 70cm

User correction:
- 2m needs LFCN-180 (not LFCN-160 as I had — LFCN-160 doesn't even exist)
- 70cm needs LFCN-490
- Only ONE filter footprint on the board (FL101, FV1206) — not two

The 'LFCN-160' value string I'd seen in the schematic only appears as a
stale Value-property on the SA818 lib_symbol entry (copy-paste leftover
in the symbol library), not on an actually-placed component. The real
placed filter (FL101) has Value 'LFCN-180/490' on the FV1206 footprint
and is alternately populated with LFCN-180 or LFCN-490 depending on band.
7 issues from Copilot's review on PR #14, all valid after schematic
+ PCB verification:

1. J201 (SWD-Header): 2.54 mm 2x5 horizontal pin header per PCB
   footprint Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Horizontal,
   NOT 1.27 mm ARM-Cortex-Debug. Need 2.54 mm SWD adapter or per-pin
   jumper wires.

2. J202 (Bus-Stecker): PRJ:PCN10C-20S-2.54DS per PCB — the female
   socket variant. Mates with the male PCN10-20P-2.54DSA pin header
   that's on the BusBoard. My doc had copy-pasted the BusBoard's
   male part number, which was wrong for the FM consumer side.

3. STM32 ↔ SA818 GPIO mapping: user's quick-quoted PB values were
   wrong. Verified against connector_cpu.kicad_sch — STM32U575CITx
   LQFP-48 pins 18-21 are PB0/PB1/PB2/PB10:
     PTT       GPIO1  ↔ STM32 PB2  (pin 20) ↔ SA818 ~PTT (pin 5)
     POWER_DN  GPIO2  ↔ STM32 PB1  (pin 19) ↔ SA818 ~PD  (pin 6)
     H_L_PWR   GPIO3  ↔ STM32 PB10 (pin 21) ↔ SA818 H/L  (pin 7)
     SQUELCH   GPIO4  ↔ STM32 PB0  (pin 18) ↔ SA818 ~SQ  (pin 1)

4. LFCN filters: already corrected in 4cdeb05 (Copilot reviewed an
   earlier commit). Single FL101 footprint, LFCN-180 for 2m or
   LFCN-490 for 70cm.

5. Wording: "Drei Endpoints" → "Drei USB-Interfaces"; UAC2 + CDC ACM
   each use multiple endpoints, DFU-Runtime usually has no dedicated
   data endpoint. Calling all three "Endpoints" was technically wrong.

6. Wording: "Echtzeitkritik" (literally "real-time criticism") →
   "Echtzeit-Anforderungen".

7. Spelling: "an's CM4" → "ans CM4" (correct German contraction).

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 5 comments.

Comments suppressed due to low confidence (3)

doc/index.md:182

  • The bring-up check points users at the Bus connector +5V pin but calls it the LMR51430 output. In the PCB netlist J202 a4/a5/b4/b5 are on the +5V bus rail, while the buck output is the separate +5V_HF net, so this step can pass even if the local buck powering the SA818 is not working.
1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen.

doc/index.md:119

  • The PR description lists a different STM32 GPIO mapping (GPIO2→PB10, GPIO3→PB11, GPIO4→PB1) than this table (GPIO2→PB1, GPIO3→PB10, GPIO4→PB0). The schematic/PCB netlist matches the table, so the PR description should be corrected to avoid reviewers/users relying on the wrong pins.
| **POWER_DOWN** (Modul ein/aus) | `GPIO2` | `PB1` (Pin 19) | `~PD` (Pin 6) | STM32 → SA818 |
| **H_L_Power** (Sendeleistung high/low) | `GPIO3` | `PB10` (Pin 21) | `H/L` (Pin 7) | STM32 → SA818 |
| **SQUELCH** (Squelch-Open-Indikator) | `GPIO4` | `PB0` (Pin 18) | `~SQ` (Pin 1) | SA818 → STM32 |

doc/index.md:61

  • The PR description says the 2 m variant uses LFCN-160, but this table and the schematic/PCB use LFCN-180/490 for FL101. Please align the PR description with the documented hardware variant so the filter choice is unambiguous.
| **2 m / VHF** | `SA818V` | `LFCN-180` | 144 – 174 MHz |

Comment thread doc/index.md
Comment on lines +59 to +62
| Variante | SA818-Chip | LPF-Bestückung (FL101) | Band |
| -------- | ---------- | ---------------------- | ---- |
| **2 m / VHF** | `SA818V` | `LFCN-180` | 144 – 174 MHz |
| **70 cm / UHF** | `SA818U` | `LFCN-490` | 400 – 480 MHz |
Comment thread doc/index.md
| **offen** (Default ab JLCPCB) | EEPROM beschreibbar — STM32 kann CAT24C32 lesen UND schreiben. |
| **gebrückt** (Lötzinn-Brücke) | EEPROM schreibgeschützt (CAT24C32 Pin 7 / WP = high). Nur Lesen möglich. |

In der Endmontage (Produktivbetrieb) ist es empfehlenswert die Brücke zu setzen, damit kein Firmware-Bug versehentlich Kalibrierdaten überschreibt.
Comment thread doc/index.md

## Firmware-Rolle (STM32U575)

Die STM32-Firmware (Quelle: [`FW-RemoteStation`](https://github.com/OE5XRX/FW-RemoteStation)) macht aus dem FM-Modul ein selbst beschreibendes USB-Gerät am CM4:
Comment thread doc/index.md
| **J101** | Board-Edge SMA | Antennenanschluss (50 Ω) |
| **J201** | 10-Pin 2.54 mm Stiftleiste 2×5 horizontal (right-angle) | STM32-Programming- und Debug-Header (SWD-Pin-Belegung) |
| **J202** | 20-Pin (Hirose **PCN10C-20S-2.54DS** — weibliche Buchse, paart mit dem PCN10-20P-Stift-Header auf dem BusBoard) | Bus-Stecker zum [BusBoard](../HW-Module-BusBoard/) |
| **JP201** | 2× Lötpad | EEPROM-Write-Protect-Brücke (siehe „EEPROM" unten) |
Comment thread doc/index.md

1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen.
2. **STM32-Boot:** kurze Latenz nach Power-Up sollte am USB ein Composite Device erscheinen (`lsusb -v` am CM4). Drei USB-Interfaces sind erwartet: UAC2 (Audio), CDC ACM (Serial), DFU-Runtime.
3. **Soundkarten-Check:** `aplay -L` / `arecord -L` am CM4 → die FM-Module-UAC2-Soundkarte muss in der Liste sein.
@peterus peterus merged commit 7a671f7 into main May 13, 2026
5 checks passed
@peterus peterus deleted the docs/improve-index branch May 13, 2026 19:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants