Commit graph

12 commits

Author SHA1 Message Date
Marcus Kida
e145a1188d Channels: on-radio add/delete from the Channel quick menu
Add two codeplug primitives - codeplugAllChannelsIndexSetUnused() (frees a
channel slot: clears the in-use bitmap bit, persists the header, fixes counts)
and codeplugZoneRemoveChannelFromZoneAndSave() (removes a channel from a zone's
list) - and wire two new Channel quick-menu items:

- 'new channel': allocates the first free slot, writes a blank 145.500 FM
  channel, adds it to the current zone, reloads the zone and opens Channel
  Details to edit it.
- 'Delete Channel': confirmation, then scrubs the channel from every real zone
  before freeing the slot. Guards against deleting the last channel and honours
  the read-only/APRS lock.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 11:11:48 +02:00
Marcus Kida
7c10a92475 Release script: mark pre-1.0.0 releases as pre-release
Flag any release with major version 0 as a Forgejo pre-release on create, and
PATCH the flag on re-runs so it stays correct. Existing v0.1.0/v0.2.0/v0.3.0
releases were updated to pre-release too.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 16:34:06 +02:00
Marcus Kida
dd1cc0ccdf Release 0.3.0: fix Screen Dim label voice-prompt crash
The menu label 'Screen Dim' is a raw literal, and the shared menu code voices
labels through voicePromptsAppendLanguageString(), which derives the prompt
index from the pointer's offset within the language table and crashed on a
foreign pointer (v0.2.0 fixed only the value, not the label). That helper now
ignores pointers outside the language table.

Bump version to 0.3.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 16:29:21 +02:00
Marcus Kida
1c59622a77 Release 0.2.0: fix Display Options crash with voice prompts on
Screen Dim passed a plain literal ('100%'/'50%'/...) to
voicePromptsAppendLanguageString(), which derives the prompt index from the
string's offset within the language table; a foreign pointer produced a garbage
index and crashed (only with voice on). Route the value through
voicePromptsAppendString() instead. Also move the 3-bit dim level's high bit off
legacy option bit 2 to bit 29 and clamp the level against the option arrays.

Bump version to 0.2.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 15:41:59 +02:00
Marcus Kida
734b861917 7-segment frequency: inactive segments off, fix MHz colour, +1px RX/TX gap
- Inactive segments now render in the background colour (off) instead of dimmed.
- The 7-seg renderer left the foreground on the last segment drawn (now the
  background colour), which hid MHz; re-apply the frequency theme colour before
  drawing MHz so it reappears and matches the digits.
- Move the TX frequency line down 1px for a little more RX/TX separation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 15:30:23 +02:00
Marcus Kida
7f5f3ab06f Screen dimming: add a 15% idle-dim level
Add SCREEN_DIM_15 (Off / 100 / 50 / 30 / 15). The value now needs 3 bits, so
repurpose the spare BIT_UNUSED_2 as BIT_SCREEN_DIM_2; existing codeplugs (bit 2
clear) keep their level, no reset.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 08:16:04 +02:00
Marcus Kida
e50993b98f README differences + flashing sections; universal release script
- README: add 'What's different from OpenGD77' (incl. the new SK2 mute) and a
  dedicated 'Flashing' section (DFU steps, per-model flash.sh, donor note).
- scripts/forgejo-release.sh: build/attach a single platform or all, reuse an
  existing release, replace same-named assets, and warn if freetrxVersion.h
  doesn't match the tag.
- TOOLS.md: document the platform build argument.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 08:11:43 +02:00
Marcus Kida
c842068896 Build: parameterize by platform, add DM-1701 (RT-84) target
./build-firmware.sh DM1701 builds OpenDM1701.bin with PLATFORM_RT84_DM1701 +
PLATFORM_VARIANT_DM1701 (vs PLATFORM_MDUV380). Same firmware source, same GCC 14
toolchain and codec placement. Not officially tested on DM-1701 hardware yet.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 20:02:12 +02:00
Marcus Kida
facf5f6a6d Add FreeTRX version and show it in Firmware Info (v0.1.0)
- New freetrxVersion.h with semver (MAJOR/MINOR/PATCH + string), currently 0.1.0.
- Firmware Info top line now shows "FreeTRX v0.1.0"; the git commit ID line is
  unchanged. The version is also announced via voice prompt.
- CHANGELOG: promote the accumulated changes to a 0.1.0 section.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 18:34:10 +02:00
Marcus Kida
e5755be061 FreeTRX: on-screen rename, credits, and README supported-radios note
- Splash screen and Firmware Info name now show "FreeTRX".
- Firmware-info credits: "Marcus DK1DA", a separator, and a thank-you to the
  original OpenGD77 authors.
- README documents that this iteration is developed/tested only on the TYT
  MD-UV380 and Retevis RT-3S, with a contact for testing other supported radios.
- CHANGELOG updated.

Hardware/tooling identifiers (build filename, MD-UV380 model IDs, hotspot
version string) intentionally left unchanged to avoid breaking flashing and
Pi-Star/MMDVM compatibility.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 18:11:22 +02:00
Marcus Kida
577a5d7f96 Rebrand to FreeTRX: new README, LICENSE.md, keep OpenGD77 README
- Rename the project to FreeTRX (fork of OpenGD77).
- New README.md documenting the fork and its upstream source
  (OpenGD77 R20260131 / OpenGD77_MDUV380_DM1701_20260130).
- Preserve the original project README as README.OpenGD77.md.
- Add LICENSE.md reproducing the inherited OpenGD77 license (modified
  BSD 3-Clause + non-commercial clause). The license is NOT GPL-compatible and
  cannot be relicensed; all original copyrights are retained.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 17:56:49 +02:00
Marcus Kida
078d3fa665 Add CHANGELOG.md tracking changes in this fork
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 17:47:29 +02:00