2026-05-26 15:25:42 +02:00
2026-05-20 17:56:48 +02:00
2026-05-22 16:33:47 +02:00
2026-05-20 13:59:06 +02:00
2026-05-22 16:33:47 +02:00
2026-05-22 16:33:47 +02:00
2026-05-26 15:25:42 +02:00
2026-05-26 15:25:42 +02:00
2026-05-20 18:18:38 +02:00
2026-05-22 16:53:06 +02:00
2026-05-26 15:25:42 +02:00
2026-05-20 18:18:53 +02:00

Amateurfunk-Anki

Download the German amateur-radio exam question catalog from the Bundesnetzagentur and turn it into Anki decks.

Quick start

make           # fetch + build (default)
make fetch     # download + extract the catalog only → data/
make anki      # rebuild .apkg files from data/ → anki/
make test      # run both test suites
make clean     # remove data/ and anki/

Output: five .apkg files under anki/. Betriebliche and Vorschriften get one deck each (shared across all license classes); Technische is split per class into three decks (N / E / A) following the catalog's class field. A class-A candidate who wants every Technische question imports all three Technische decks. Re-importing a newer build preserves your review history.

Exam sections

The BNetzA exam has three parts (Prüfungsteile): two shared across all license classes plus the technical part, which is split per license tier. The question ID's first letter encodes which part it belongs to:

Non-technical (one deck each, taken by every candidate):

Section ID prefix Questions
Betriebliche Kenntnisse B* 172
Kenntnisse von Vorschriften V* 204

Technical (one deck per license class):

Class Section name ID prefix Questions
N Technische Kenntnisse (N) N* 195
E Technische Kenntnisse (E) E* 463
A Technische Kenntnisse (A) A* 716

Counts are from the current edition (3. Auflage, März 2024; ~1750 questions total). The license tiers are cumulative for the exam: a class-E candidate is responsible for N* + E* + B* + V*; a class-A candidate is responsible for everything. Filter inside Anki by deck, by the klasse-N|E|A tag, or by the Number field prefix.

Exam question source

The catalog is published by the Bundesnetzagentur (BNetzA), the German federal regulator for telecommunications. Current edition: 3. Auflage, März 2024 (issued 2024-03-20, ~1750 questions across license classes N, E, A).

BNetzA replaces the file in place across editions, so the URL is stable; the fetcher detects updates via the HTTP Last-Modified header.

See also

  • 50ohm.de — community-maintained explanations, worked examples, and study material for the same exam. Pairs well with these decks for the why behind each question.
  • DARC — Deutscher Amateur-Radio-Club, the German national IARU member-society. Publishes the German band plan, regulatory liaison material, and a large body of technical and operating guidance referenced throughout the amateur-radio community.

Requirements

Python 3.11+, standard library only. No third-party dependencies.

Explanations

⚠ Important: AI-generated content. Every explanation shipped with these decks is written by an AI agent following the contract in EXPLANATIONS.md. AI agents make mistakes — they misread formulas, misquote law text, and confidently cite wrong sources. Do not treat any explanation as the ultimate source of truth. If something looks off, or if an explanation contradicts your existing understanding, verify against the primary source listed in the card (or against the catalog itself, the AFuV/AFuG on gesetze-im-internet.de, or the resources under See also). The official answer is always the one from the BNetzA catalog — the explanation is just a study aid, not an authority. Cards with a small low confidence badge are explicitly flagged as provisional and should be double-checked before you rely on them.

The back of each card optionally carries a terse English explanation of why the right answer is right. Explanations are not part of the BNetzA catalog — they're authored separately (by humans or AI agents) into explanations.json at the repo root. The build is non-blocking on this: questions without an entry just show no explanation block. Entries with confidence < 7 render a small "low confidence" badge so learners know the reasoning is provisional.

EXPLANATIONS.md is the editorial contract: schema, sourcing guidance, confidence scale, and the workflows an AI agent should follow when asked to add or improve entries.

More

  • CLAUDE.md — project orientation, pipeline overview.
  • DESIGN.md — source-discovery notes, JSON schema, per-stage design contracts.
  • EXPLANATIONS.md — schema + workflows for the explanations database.

License

The downloader and builder code is in this repo. The exam questions themselves are published by the Bundesnetzagentur under DL-DE→BY-2.0; attribution is preserved in every generated artifact (README.txt inside data/<edition>/, attribution field in the per-edition manifest).

S
Description
No description provided
Readme 2.3 MiB
Languages
Python 99.8%
Makefile 0.2%