imple 497919ea04 Add explanations for B* questions
Automatically generated using Codex and GPT 5.5 in high reasoning mode
2026-05-22 16:48:15 +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-22 16:33:47 +02:00
2026-05-20 18:18:38 +02:00
2026-05-22 16:37:30 +02:00
2026-05-22 16:33:47 +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

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%