Commit graph

5 commits

Author SHA1 Message Date
Marcus Kida
682a729e5c tools: add screenshot.sh screen-grabber wrapper
One-command screenshot helper around gd-77_screen_grabber.py: auto-detects the
radio's serial port (cu.usbmodem* on macOS, ttyACM* on Linux) and creates a
self-contained Python venv with pyserial + pillow on first run. Saves to
screenshots/ (gitignored, along with the venv). Documented in TOOLS.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 13:08:12 +02:00
Marcus Kida
35ba6e9975 docs: add MkDocs Material documentation website
Renders the root markdown (manual, tools, changelog) into a static, searchable
HTML site with client-side (lunr.js) search and a dark/light theme. Built in
Docker via website/build-docs.sh (no host installs). Public URL is set at build
time with SITE_URL=... (default is a neutral placeholder; the site works at any
URL since site_url only affects the sitemap/canonical links). Generated output
(website/_build/) is gitignored.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 13:29:29 +02:00
Marcus Kida
0d8a293199 Dockerize build fixes: GCC 14 toolchain, clean build, flash helper
Bring the headless Docker build closer to the official OpenGD77 build and
add a flashing helper.

docker/Dockerfile
  - Replace Ubuntu's stock gcc-arm-none-eabi (GCC 10.3.1) with the Arm GNU
    Toolchain 14.2.rel1 (GCC 14). The official firmware is built with GCC 14
    (gnu-tools-for-stm32 14.3); GCC 10 produced a firmware that hard-faults on
    the DMR path. Guard the image build to fail if the compiler is not GCC 14.
  - git config --system safe.directory '*' so the build stamps a real GitID
    instead of #UNKNOWN.

docker/build.sh
  - rm -rf build before compiling. obj/ lives on the host mount and was being
    reused across toolchain changes, silently relinking stale .o files (an
    earlier rebuild produced a byte-identical GCC-10 image because of this).

docker/firmware.mk
  - Add -DNDEBUG to exactly mirror the STM32CubeIDE "MDUV380_FW" release config
    (which defines both NDEBUG and DEBUG).

flash.sh
  - Helper to flash via opengd77_stm32_firmware_loader.py with model, secondary
    language (auto-builds the .gla files) and the DMR codec donor.

.gitignore
  - Ignore generated *.gla files and the host-side languages_builder binary.

Note: the GCC 14 rebuild did NOT resolve the DMR-receive hang; that fault is in
the firmware source revision (this tree is a snapshot; the known-good build is
commit ebd7100, not present here) and is out of scope of these build changes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 10:29:48 +02:00
Marcus Kida
6714da6e00 Dockerize build 2026-07-06 08:48:59 +02:00
Marcus Kida
01467e5913 Initial Commit 2026-07-06 08:45:33 +02:00