summaryrefslogtreecommitdiff
path: root/README.md
blob: 0b35b1ea0a360267066e22b4c09a2144897918fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# T-Modem-c1224

**Version:** **v1.0-prototype** · **AS-IS** · GPLv3 · non-profit

**T-Modem-c1224** is a classic Terminal-Modem **chip PHY** reference: TCM3105-class **chip 1200** or **chip 2400** via **which crystal is stuffed** (**Y1 4.4336** / **Y2 6.5536**), Raspberry Pi **Pico** as **USB KISS half-TNC** (HDLC + bitbang to chip TXD/RXD) plus display / **PTT** / sense. Host USB CDC = **KISS** (`0xC0`) + ASCII service. **One** firmware image · **no** softmodem · transparent Host↔Chip bit bridge **abandoned** · **no** baud switching. Firmware language: **C**

![T-Modem-c1224 board overview — major parts labeled](docs/figures/c1224-board-overview.png)

| Item | Rule |
|------|------|
| Power | **12 V** barrel → buck → **5 V** · **no USB power** (USB = flash + KISS + service) |
| Modem | Stuff **Y1 4.4336** (1200) or **Y2 6.5536** (2400) · **advise against ≥8 MHz** (incl. **8.8672** deferred) · **no XTAL mux IC** |
| Rate model | **One board = one rate = one crystal** · rebuild FW with `-DC1224_BITRATE=2400` for Y2 · rate ≠ runtime switch |
| FW | **One** UF2 · KISS half-TNC · INI = **all** display/status texts · fixed boot banner always · default **`quiet=1`** damps extra CDC |
| Sense | **CDT→GP8** Signal/RX · **RXD→GP7** Packet UI + HDLC RX |
| Stuffing | Stuff **only** the crystal for the intended rate · other footprint **DNI** · keep Pierce **C_Y1+C_Y2** |
| PTT | Auto on KISS TX · ASCII `PTT ON`/`OFF` · GP9 → OC · **LED_PTT** optional/spare |
| INI SAVE | Last **4 KiB** flash **blob** · **not** a filesystem |
| PCB | In `local/kicad/` until finished · single-XTAL policy (mux abandoned) · **~180×180** |
| BOM | Tracked: [`hardware/BOM.md`](hardware/BOM.md) · [`hardware/bom/BOM.csv`](hardware/bom/BOM.csv) |

## Build

- Firmware (C): [`firmware/c1224/`](firmware/c1224/) — **one** UF2 · build `c1224.uf2` · INI example [`share/c1224.ini.example`](share/c1224.ini.example)
- BOM (public): [`hardware/BOM.md`](hardware/BOM.md)

## Operate

**Standalone — no MAX25-Stack required.** USB CDC is a normal KISS half-TNC (`0xC0` on `/dev/ttyACM*`). **All terminals should work insofar as applicable** (serial ASCII service + KISS packet). MAX25 (`tmodem` / max25-terminal) is **optional**. HyBBX is not built into this product.

1. Power from **12 V** centre-positive barrel only.
2. USB host for flash / **KISS** / CDC service — expect **no** board power from VBUS.
3. Flash **`c1224.uf2`**; stuff **Y1** or **Y2** for the intended rate. Match `-DC1224_BITRATE`.
4. Open `/dev/ttyACM*` raw 8N1 → KISS (`0xC0` …) or ASCII `HELP`. Fixed boot banner always prints once.
5. Optional: max25d **`tmodem`** + `max25-terminal -d tmodem`, kissattach/kissutil, Dire Wolf serial. ASCII `STATUS`/`PTT`/`ID` when not mid-KISS frame.

Anyone-oriented steps: [`docs/USER-GUIDE.md`](docs/USER-GUIDE.md). Firmware detail: [`firmware/c1224/README.md`](firmware/c1224/README.md).

## Docs

| Doc | Role |
|-----|------|
| [`docs/USER-GUIDE.md`](docs/USER-GUIDE.md) | Anyone — assemble · flash · terminals · SAVE |
| [`docs/README.md`](docs/README.md) | Doc index + figures |
| [`docs/POWER.md`](docs/POWER.md) | 12 V · USB data-only |
| [`firmware/c1224/README.md`](firmware/c1224/README.md) | Build · CDC · pins |

**AS-IS** · GPLv3 · non-profit · standard reference only.
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com