@@ -43,6 +43,13 @@ DCP keeps MCP's mental model (manifest + tool calls) but:
4343A reference Bridge translates ** DCP ↔ MCP** , so any MCP-compatible LLM works
4444out of the box. DCP is the last mile to physical hardware.
4545
46+ ![ Coverage of LLM-induced failure modes by each protocol's schema-level defenses] ( docs/paper/figures/hallucination.png )
47+
48+ * Why this matters in one chart: the protocol's schema decides how many
49+ hallucinated or adversarial calls are stopped before any byte reaches a
50+ device. DCP catches all six categories at the wire layer; the others
51+ catch what their existing schema happens to cover.*
52+
4653## Design principles
4754
48551 . ** Intent, not register.** ` set_brightness(50%) ` , not ` write_pwm(pin=5, duty=128) ` .
@@ -74,13 +81,19 @@ ESP32-WROOM-32 dev board** over CH340 USB-Serial at 115 200 baud:
7481- The pure DCP layer is approximately 14 KB over a baseline empty
7582 sketch (measurement script in ` docs/paper/figures/ ` )
7683
84+ ![ Memory footprint: DCP target vs IoT-MCP measured vs Direct MCP vs Matter] ( docs/paper/figures/footprint.png )
85+
86+ * DCP design target sits roughly 5× under IoT-MCP and 20× under Matter on
87+ the same class of MCU. Hatched bars are design targets, plain bars are
88+ measured / typical of the cited sources.*
89+
7790See [ docs/RATIONALE.md §7] ( docs/RATIONALE.md ) for what the hardware
7891validation does and does not prove.
7992
8093## Manifest
8194
8295``` yaml
83- dcp : 0.1
96+ dcp : 0.3
8497device :
8598 id : lamp-kitchen-01
8699 model : smart_lamp_v1
@@ -111,24 +124,25 @@ coordination.
111124
112125# # Wire format
113126
114- A single frame:
127+ 
115128
116- ` ` `
117- ┌────────┬────────┬────────┬─────────────┬───────┐
118- │ ver:u8 │ kind:u8│ seq:u16│ intent_id:u16│ cbor │
119- └────────┴────────┴────────┴─────────────┴───────┘
120- ` ` `
129+ A frame is a 6-byte fixed header + CBOR payload + an optional 16-byte
130+ truncated HMAC-SHA256. Header fields :
121131
122132| field | meaning |
123133|-------------|------------------------------------------------------------------|
124- | `ver` | 1 for v0.1 |
134+ | `ver` | 1 in v0.3 |
125135| `kind` | 0x01 call · 0x02 reply · 0x03 event · 0x04 error · 0x81 dry-run |
126136| `seq` | client-chosen, echoed in reply |
127137| `intent_id` | CRC-16/CCITT of intent name |
128138| `cbor` | CBOR map : params / return / event payload / error |
129139
130140Reply status codes : ` ok` , `denied`, `range`, `busy`, `unknown_intent`, `capability_required`.
131141
142+ A typical `set_brightness(50)` call is 19 bytes on the wire; the MCP
143+ JSON-RPC equivalent is approximately 180 bytes. The full normative spec
144+ lives at [SPEC.md](SPEC.md).
145+
132146# # Adding a feature
133147
134148See [docs/ADDING_FEATURES.md](docs/ADDING_FEATURES.md) for the full
@@ -215,13 +229,14 @@ Claude ─MCP─▶ dcp serve ─Bridge─▶ Loopback ─DCP wire─▶ Generic
215229For production use, replace ``GenericSimulator`` with a real transport
216230(UART / MQTT / BLE — coming next).
217231
218- # # What's *not* in v0.1 (intentional)
232+ # # What's *not* in v0.3 (intentional)
219233
220- - Multi-device transactions
234+ - Multi-device atomic transactions
221235- Firmware OTA
222- - Mesh routing
223- - LLM authentication (Bridge's problem)
224- - Capability token signing (stubbed — see `safety.py`)
236+ - Mesh routing (use Thread / Zigbee underneath if you need it)
237+ - LLM-side authentication (delegated to the MCP host's session model)
238+ - Native CAN FD frames (ESP32-S3 TWAI is classic CAN; v0.4 ESP32-P4
239+ port enables true CAN FD)
225240
226241# # License
227242
249264- [x] Conformance test suite (golden frames, language-neutral YAML)
250265- [x] Codegen `--stubs` : emits handler signatures + binding table
251266- [x] Quickstart video script ([docs/QUICKSTART_VIDEO.md](docs/QUICKSTART_VIDEO.md))
252- - [ ] Real-hardware UART validation (waiting on ESP32+CH340 board)
253- - [ ] Public launch under `device-context-protocol` GitHub org
267+ - [x] Real-hardware UART validation (ESP32-WROOM-32, 10/10 round-trips)
268+ - [x] Public repo at `device-context-protocol/dcp` (v0.3.0 released)
269+ - [x] PyPI release (`pip install pydcp`)
270+ - [ ] T-Panel S3 + CAN bus demo (firmware ready, awaiting hardware)
271+ - [ ] LLM-driven hallucination-rejection benchmark (planned for v0.4 paper)
272+ - [ ] ESP32-P4 port for native CAN FD
0 commit comments