Files
mayhem-firmware/firmware/application/external
Sarah Rose 5c2d1d3dfb Add MDC-1200 TX external app (#3083)
Implements MDC-1200 single and double-packet TX as a PPMA external app.

Features:
- Supports PTT ID, Emergency, Radio Check, Stun/Unstun, Call Alert,
  Selective Call (1 & 2), Status Request/Response, Remote Monitor, Message
- Auto-fills Arg byte on Op selection
- AFSK FSK modulation: 1800 Hz mark / 1200 Hz space, 1200 baud
- NRZI encoding with Golay FEC per MDC-1200 spec
- Tap-to-edit frequency via keypad
- Default TX gain of 30 dB
- Uses AFSK baseband (same as POCSAG/SAME TX)
- All buffers kept off the stack to avoid hard faults in ext app environment

* mdc_tx: address PR review feedback

- Move MDC helpers into ui::external_app::mdc_tx namespace (drop anonymous namespace)
- Use AFSK_TX_SAMPLERATE macro instead of hardcoded 1536000
- Add #include "modems.hpp" explicitly for AFSK_TX_SAMPLERATE
- Replace n*8/n*16 pixel positions with UI_POS_X/UI_POS_Y macros
- Fix field comments: 'hex bytes' -> 'decimal bytes (0-255)'
- Fix TransmitterView frequency_step: 1750000 -> 12500 (12.5kHz NFM step)
- Fix MDC preamble: replace leading 0x00 bytes with 0xAA
  after NRZI encoding stayed 0x00, terminating TX on the first word.
  0xAA bytes NRZI-encode to 0xFF (continuous 1800Hz mark tone), which
  is the standard MDC-1200 preamble and does not trigger the sentinel.
2026-03-16 19:28:07 +01:00
..
2025-10-28 08:10:09 +08:00
2025-10-28 08:10:09 +08:00
2026-02-19 14:33:01 +01:00
2026-02-19 14:33:01 +01:00
2026-02-19 14:33:01 +01:00
2026-02-20 22:09:55 +01:00
2026-03-12 22:05:42 +13:00
2025-12-14 11:26:21 +01:00
2026-02-06 09:48:20 +01:00
2026-02-19 14:33:01 +01:00
2025-10-28 08:10:09 +08:00
2026-01-30 17:18:13 +01:00
2026-02-04 14:01:29 +01:00
2026-01-30 17:18:13 +01:00
2026-02-23 21:37:03 +01:00
2026-02-19 14:33:01 +01:00
2026-02-16 14:34:55 +01:00
2026-02-16 14:34:55 +01:00
2026-03-05 19:49:17 +13:00
2026-02-24 11:23:41 +01:00
2026-01-10 15:10:23 +01:00
2026-01-10 21:25:41 +08:00
2026-02-19 14:33:01 +01:00
2026-02-06 17:20:14 +01:00
2026-02-19 14:33:01 +01:00