26 KiB
Sony PT2 Camera Control Protocol Working Summary
This is a working model for restoring the Sony RCP-TX7 style PT2 camera control link. It is based on bench captures and manuals gathered in this repo, not on an official Sony protocol specification.
Scope
- Target device: Sony RCP-TX7 camera control panel from the 1990s.
- Likely protocol family: Sony PT2-era camera/RCP control.
- Evidence: newer Sony RCP manuals describe a
PT2/PT7mode switch, andPT2is documented for the same camera line that the TX7 controls. - Current goal: identify enough of the host/CCU side protocol to restore useful panel operation.
Electrical Layer
Confirmed wiring and levels:
| RCP 10-pin pin | Cable color | Current identification |
|---|---|---|
| 1 | red | spare/unknown |
| 2 | black | VBS/composite video |
| 3 | green | VBS/composite video ground |
| 4 | orange | serial data RCP -> CCU/camera |
| 5 | blue | serial/data ground |
| 6 | grey | serial/data ground |
| 7 | purple | serial data CCU/camera -> RCP |
| 8 | white/purple | spare/unknown |
| 9 | brown | ground/DC return |
| 10 | brown-white | +12 V power |
Observed idle measurements:
- Pin 4 relative to pin 9: about
-9 V. - Pin 7 relative to pin 9: about
+0.037 Vuntil driven by the adapter. - This strongly indicates true RS-232 signaling, not TTL UART.
Bench adapter setup:
- Adapter RS-232
RXDto RCP pin 4. - Adapter RS-232
TXDto RCP pin 7. - Adapter
GNDto RCP pin 9. - Serial settings used throughout:
38400 8N1.
Frame Shape
Most useful traffic is six bytes:
prefix1 prefix2 command state value checksum
Current checksum hypothesis:
checksum = 0x5A XOR prefix1 XOR prefix2 XOR command XOR state XOR value
Examples:
| Frame | Meaning in current model |
|---|---|
00 00 00 00 80 DA |
RCP heartbeat/status while not active |
00 00 07 80 00 DD |
RCP CAM POWER event |
00 00 15 80 00 CF |
CALL high/on state |
00 00 15 00 00 4F |
CALL low/off state |
07 80 45 20 D0 68 |
RCP response to host-sent CALL high/low pair |
07 80 45 30 D0 78 |
sibling CALL-response-family frame, seen once |
The RCP-origin non-heartbeat responses discovered so far usually begin with
07 80. Host frames tested so far usually use 00 00.
Baseline RCP Behavior
With power and no valid host session, the RCP repeatedly sends:
00 00 00 00 80 DA
Only a few front-panel actions have produced unique frames while disconnected:
| Control | RCP-origin frame |
|---|---|
| CAM POWER | 00 00 07 80 00 DD |
| CALL high/on | 00 00 15 80 00 CF |
| CALL low/off | 00 00 15 00 00 4F |
Most other controls have not yet emitted unique frames in the disconnected or
CONNECT NOT ACT state.
Display State
Many checksum-valid and even some invalid host-side frames make the RCP display
CONNECT NOT ACT.
Known interpretation:
CONNECT NOT ACTmeans the panel sees activity that looks connection-related.- It does not mean the panel is active.
- It does not prove checksum validity.
- It can remain on screen while serial behavior changes underneath.
Unknown:
- The host sequence that changes the panel from
CONNECT NOT ACTto an active control state.
Discovery / Status Query Surface
The strongest discovery/status pattern is:
Host primer: 00 00 00 00 80 DA
Host query: 00 00 XX 00 80 checksum
RCP reply: 07 80 ... ... ... checksum
Selected confirmed examples:
| Host sequence | RCP response |
|---|---|
00 -> B0 |
07 80 6C 40 30 C1 |
00 -> B2 |
07 80 36 10 0C F7 |
00 -> B3 |
07 80 36 10 2C D7 |
00 -> B4 |
07 80 6D 40 30 C0 |
00 -> B5 |
07 80 6D 20 D8 48 |
Other A/B/C region queries also return structured responses. The response set looks like a readable status/capability surface, not random noise.
Important latch behavior:
- Many discovery/status responses are one-shot after power-up.
- Repeating the same query without a power cycle often returns only heartbeat.
- Re-sending the primer does not always clear this state.
- Broad unlatch sweeps after
B5andA0did not find a reset/unlatch command.
Working interpretation:
- The host/CCU probably performs a discovery or capability read early in the session.
- The panel then enters a state where repeated discovery reads are suppressed.
- A missing session-advance or keepalive step probably follows.
CALL Event Path
This is the most reproducible event-response path found so far.
The host can send the same frames the RCP uses for CALL state:
CALL high: 00 00 15 80 00 CF
CALL low: 00 00 15 00 00 4F
If the host sends CALL high then CALL low with a small inter-frame gap, the RCP responds:
07 80 45 20 D0 68
Confirmed details:
- The physical CALL button is not required.
- Cold no-button startup injection works with both 50 ms and 80 ms gaps.
- CALL high alone does not trigger the response.
- CALL low alone does not trigger the response.
- Sending high and low back-to-back is less reliable than adding a gap.
Known sibling response:
07 80 45 30 D0 78
This was observed once during timing tests. It shares the 07 80 45 response
family, but the exact state meaning is unknown.
What does not work:
- Answering
07 80 45 20 D0 68with00 00 45 00 80 9F,00 00 45 20 D0 EF, or exact echo did not change the serial state. - Triggering the CALL
0x45path and then sending00 -> B5did not produce the knownB5discovery response. - The CALL path is real and useful for probing, but is not currently the activation handshake.
Heartbeat / Cadence Behavior
Plain host heartbeat traffic has turned out to matter, but not in the simple "session OK" way we first hoped.
Confirmed behavior:
- Repeating
00 00 00 00 80 DAcan keep the panel out ofCONNECT NOT ACTwhile the traffic continues. - When that traffic stops, the panel typically falls into
CONNECT NOT ACTafter a short timeout. - Once the panel is already in
CONNECT NOT ACT, resuming heartbeat alone does not immediately make it active again. - Keeping heartbeat running does not by itself make one-shot reads like
00 -> A0or00 -> B0reusable.
Heartbeat-only or heartbeat-heavy runs can also provoke transient structured responses:
07 80 40 40 30 ED07 80 40 60 30 CD07 80 C0 40 30 6D
Best current interpretation:
- Some host traffic satisfies a "host present" or link-alive condition.
- That is still separate from whatever camera/session information makes the panel truly active.
- The
0x40/0xC0heartbeat-family responses look cadence- or context-sensitive rather than like a genericACK.
Known Response Families
These are the response frames that are stable enough to treat as known working observations. "Meaning" here is still an engineering interpretation, not a confirmed Sony definition.
| Frame / family | Trigger | Confidence | Best current meaning |
|---|---|---|---|
07 80 68 40 30 C5 |
00 -> A0 |
high | readable query/status block, not a generic ACK |
07 80 6C 40 30 C1 |
00 -> B0 |
high | readable query/status block, not a generic ACK |
07 80 6D 20 D8 48 |
00 -> B5 |
high | readable discovery/status block |
07 80 45 20 D0 68 |
synthetic CALL high/low pair | high | CALL event-path response |
07 80 45 30 D0 78 |
CALL timing test, seen once | low | sibling CALL-response-family frame |
07 80 50 40 30 FD |
00 -> 40 |
medium-high | explicit readable/query family outside the main B/A/C map |
07 80 40 40 30 ED |
some heartbeat-only cadence runs | medium | transient heartbeat/context response family |
07 80 40 60 30 CD |
some heartbeat-only cadence runs | low-medium | transient heartbeat/context response family |
07 80 C0 40 30 6D |
some heartbeat-only cadence runs | medium | transient heartbeat/context response family |
07 80 E8 40 30 45 |
context-sensitive A0 path in some runs |
medium | variant readable/query family, likely selector- or timing-sensitive |
07 80 FA 50 26 51 |
host-shaped mirror of 07 80 E8 40 30 45, seen once |
low-medium | new structured response family on the E8 branch; follow-up echo did not advance state |
07 C0 7A 50 A6 11 |
exact echo of 07 80 E8 40 30 45, seen once |
low | new structured response family on the E8 branch; not yet repeated |
07 80 7A 50 26 D1 |
host-shaped E8 branch, reproduced across HE8-HE11 group 1 |
medium-high | reproducible downstream response family in the E8 / FA / 7A branch |
07 80 7A 28 D3 5C |
host-shaped E9 neighbor, group 1 |
low-medium | nearby distinct 7A-family response; suggests an E8/E9 selector neighborhood |
07 80 7B 50 26 D0 |
host-shaped EC neighbor, group 1 |
low-medium | new sibling family suggesting the Ex region is a selector-like strip |
07 C0 2F 95 09 2E |
exact echo of 07 80 7B 50 26 D0, group 1 |
low-medium | possible second-stage family on the EC -> 7B branch |
07 80 FB 50 26 50 |
EC branch during later 2F follow-up tests, group 1 |
low-medium | sibling downstream family on the EC branch; reinforces selector/family behavior |
Current caution:
- No response family is yet confirmed as a true session-advance
ACKorOKframe. - The
68/6C/6Dfamilies behave more like readable blocks than simple acknowledgements. - The
45family behaves like an event response, not a generic accept. - The
40/C0family currently looks state- or cadence-sensitive. - Exact and host-shaped echoes of the
40/C0/50heartbeat-adjacent families did not advance the session. - The first echo experiments that produced genuinely new structured output were
on the
E8branch, not the40/C0branch. - Directly echoing or host-mirroring
07 80 FA 50 26 51did not produce a clean second-stage response; both follow-up tests instead repeated the07 80 7A 50 26 D1branch after the host-shapedE8step and then went back to heartbeat. - Directly echoing or host-mirroring
07 80 7A 50 26 D1also did not advance the exchange; the active trigger still appears to be the host-shaped00 00 E8 40 30 C2step. - Nearby host-shaped neighbors are mixed rather than uniform:
E9produced a distinct7A-family response, whileE7andEAsteered back toward known heartbeat-family transients. - The
E9sibling behaves likeE8structurally: exact and host-shaped handling of07 80 7A 28 D3 5Cdid not advance the exchange, so the active control point still appears to be theExselector step rather than the downstream7Areply. - Extending outward reinforced the selector-strip model:
E6andEBfall into the07 80 40 40 30 EDtransient family, whileECopens a new07 80 7B 50 26 D0sibling response. ECis now the first branch where the exact downstream echo looks more meaningful than the host-shaped mirror: exact07 80 7B 50 26 D0produced07 C0 2F 95 09 2E, while host-shaped00 00 7B 50 26 57did not.- Follow-up
2Fmirror tests did not extend that into a stable chained exchange; instead, theECselector response itself drifted into the sibling family07 80 FB 50 26 50. - Additional
ECtiming/context tests suggest the leadingA0is part of the branch context: withA0present,ECtends toward07 80 7B 50 26 D0; withoutA0,ECfell back to07 80 C0 40 30 6D. - Exact and host-shaped handling of
07 80 FB 50 26 50did not yield a stable next-stage response. - Follow-up context tests suggest
A0matters beyondEC: withoutA0, bothE8andE9fell back to07 80 40 40 30 EDinstead of opening their known7Abranches. - At the same time,
A0is not sufficient to make every branch deterministic: a laterA0 -> E9control repeat returned heartbeat only. - A broader non-
A0context ladder showed thatA0is not the only opener:90openedE8,E9, andEC;AFopenedE9andEC, and shiftedE8into the sibling07 80 FA 50 26 51family; bare heartbeat openedE8andE9but notEC. - Downstream-behavior follow-ups suggest opener choice changes the selector
result more than the reply ladder:
90 -> E8yielded sibling07 80 7A 58 26 D9,90 -> ECyielded sibling07 80 FB 50 26 50, but the downstream exact echoes still collapsed to heartbeat. - Even when we answered the actually observed
90-shifted family directly, the branch still collapsed to heartbeat instead of advancing to a stable next stage. - A larger state/value ladder strongly suggests the hidden rule lives in those
payload bytes too:
with fixed command bytes, changing opener or selector
state/valuefields systematically shifted the returned families and payloads, especially on theE8,E9, andECbranches. - An off-grid pair ladder weakened the strict "only known legal pairs work"
model: mixed combinations like
00 30,20 30, and40 D0still produced structured sibling responses, so the payload bytes now look more like a small parameter space than a tiny whitelist of accepted pair tokens.
What We Know
- The link is RS-232-like, not TTL.
- The baud rate is
38400 8N1. - The six-byte frame shape and XOR checksum hypothesis explain observed frames.
- The RCP sends heartbeat continuously when not active.
- The RCP can parse host traffic and produce structured, checksum-valid responses.
- The B/A/C command regions expose the cleanest currently mapped one-shot readable response blocks.
- Commands outside B/A/C have also been tested; most were heartbeat-only,
CONNECT NOT ACTparser-visible, CALL-path related, or context-sensitive rather than part of the stable mapped response table. - The CALL event path can be synthesized by the host without pressing the physical button.
- The panel can remain visibly at
CONNECT NOT ACTwhile still responding in protocol-specific ways. - Heartbeat maintenance can hold the panel out of
CONNECT NOT ACT, but that still does not create a fully active session. - The heartbeat-induced
0x40/0xC0families are real, but they usually act more like transient state/context responses than like camera-data streaming. - The most promising new echo-derived lead is now the
E8/7A/FAresponse branch. E8is not completely isolated: nearbyE9can also open a7A-family response, but with different payload bytes.- The emerging pattern is that
E8andE9may be sibling selector-like host entries into related status/response families, whileE7andEAbias back toward heartbeat-family transients. - The wider
Exregion now looks like a mixed selector surface: some values collapse into heartbeat-family transients, while others open related7A/7Bdownstream families. - The
EC -> 7Bpath is currently the strongest sign that some downstream exact echoes may matter, even though most earlier7A-family echoes did not. - Overall, the evidence is getting stronger for selector-like host entries that open related response families, but weaker for a fully reproducible multi-turn "conversation" state.
- There appears to be a small family of context openers rather than a single
magic gate byte;
ECis stricter thanE8/E9, and heartbeat alone was not enough to open it. - At the moment, opener bytes look more like family/page selectors than like things that enable a stable multi-turn conversation after the first response.
- The protocol surface now looks parameterized rather than flat:
command bytes pick broad regions, and
state/valuebytes appear to choose page, subtype, or class within those regions. - Sustained "camera-info-like" fan-out streams have now also been tested: repeated discovery carousels, selector carousels, direct host-shaped family feeds, hybrid select-then-feed streams, and heartbeat-family base-status feeds.
- None of those sustained streams visibly activated the panel or cleared the broader inactive state.
- Two of those host-fed fan-out branches still produced new structured
responses:
host
00 00 7A 50 26 56produced07 80 2F 95 C9 AE, and host00 00 40 40 30 6Aproduced07 80 D0 50 26 7B. - Those are best treated as meaningful one-shot host-stimulated branches, not yet as proof of a stable live camera-info or session stream.
- Follow-up HE30 tests strengthened that further:
these do not look like isolated one-off branches, but like two small
parameterized family surfaces:
- host
7A ...-> RCP2F ... - host
40/50 ...-> RCP50 .../D4 ...
- host
- Examples observed so far include:
7A 50 26->2F 95 C97A 58 26->2F 65 F27A 50 3A->2F 95 5240 40 30->50 78 26or50 50 2650 40 30->D4 50 2640 60 30->50 58 26
- Exact and host-shaped answers to these second-stage families still did not
produce a stable next turn, and cold-start direct tests fell back toward
40/C0transient families instead. - HE32 then tested the strongest remaining startup/handshake orders: discovery-first, stacked openers, beacon-first then page, and set-once-then-maintain models.
- None of those woke the panel, but they did expose additional startup-shaped
families:
A0 -> 90andAF -> 90->07 80 64 40 30 C9- repeated
90->07 80 64 40 30 C9or07 80 E4 40 30 49 A0 -> AF->07 80 0D 04 AB 7F- repeated
AF->07 80 0D 04 EB 3F
- That makes
90andAFlook increasingly like startup beacons or mode/class selectors, but still not sufficient to activate the panel or make later page feeds become live. - HE33 followed that clue directly by maintaining the startup-family classes
themselves instead of switching immediately to
E8/ECpage traffic. - That still did not wake the panel.
- The
90side remained the cleaner startup surface:- repeated
90orA0 -> 90reliably opened07 80 64 40 30 C9 - host maintenance of
64 40 30then fell back to heartbeat-compatible traffic
- repeated
- The
AFside remained sloppier:A0 -> AFcleanly opened07 80 0D 04 AB 7F- repeated
AFsometimes preferredABrather than the earlierEBfamily - host maintenance of
0D 04 ABor0D 04 EBstill did not create a live maintained session class
- Interleaving heartbeat beside these startup-family maintenance frames also did not help.
- The first DIP-switch single-bit sweep then showed that board configuration
also affects the startup-family layer:
- one setting (
S3-1) shifted theA0 -> 90branch from64 40 30toE4 40 30 - another (
S2-3) suppressed the90branch in the first pass - another (
S2-1) appeared to disturb theAFbranch and briefly changed the LCD behavior
- one setting (
- So the startup-beacon families are not only protocol-state-sensitive, but also likely DIP/personality-sensitive.
- A later broad direct sweep using host
state/value = 20 D0added one more important clue:- command
0x01produced a new0x40-family response:07 80 40 24 DD 64 - and the panel reportedly stayed out of
CONNECT NOT ACTlonger during that sustained sweep than in the simpler baseline sweeps
- command
- The baseline broad direct sweep at
state/value = 00 80was also real and rich, not flat:- the completed
0x00-0xFFpass logged112anomalies - so the special thing about
20 D0is not merely that it produced responses, but that it shifted both the0x40family and the timeout-like LCD behavior
- the completed
- That suggests
20 D0may be a more session-like or status-like host payload pair than00 80, even though it still does not by itself wake the panel. - A later targeted follow-up refined that further:
cmd=0x01 @ 20 D0repeatedly opened07 80 40 24 DD 64cmd=0x01 @ 00 80repeatedly opened07 80 40 20 D8 65cmd=0x03 @ 20 D0also opened a second distinct family:07 80 20 12 97 78- in both repeated-
cmd=0x01tests, the panel reportedly stayed out ofCONNECT NOT ACTuntil the script ended
- So the clearest difference between
20 D0and00 80is currently the family selected by repeatedcmd=0x01, while the timeout-holding effect may be a broader property of sustained repeatedcmd=0x01traffic. - A broader HE35 follow-up then showed that the early
0x00-0x03command region under20 D0is itself structured:0x00->07 80 40 48 3A EF0x01->07 80 40 24 DD 640x02->07 80 20 12 87 680x03->07 80 20 12 97 78
- All of those still looked one-shot on the serial side, but the user reported
the LCD stayed in the same clear/non-
CONNECT NOT ACTstate while the repeat scripts were active. - That makes the low
0x00-0x03 @ 20 D0area look less like a single magic wake frame and more like a small session-presence/status surface. - A broader HE36 pass strengthened that further:
- the active pattern extends at least through
0x1D @ 20 D0 - and it is mostly the odd commands that answer
- examples:
0x05->07 80 41 24 DD 650x09->07 80 42 24 DD 660x0D->07 80 43 24 DD 670x11->07 80 44 24 DD 600x15->07 80 45 24 DD 610x19->07 80 46 24 DD 620x1D->07 80 47 24 DD 63- interleaved siblings also appear in
0x10 0x09 D7 ..and0x20 0x12 .. ..families
- the active pattern extends at least through
- So
20 D0now looks like a broader low-command maintained surface, not just a four-command curiosity. - A later ordered-cycle test pass (
HE37) did not show strong evidence that one exact ascending page order wakes the panel. - What it did suggest instead:
- broad low-band scans are a bit fragile
- narrower active subsets hold the panel clearer more reliably
- both the
0x40-leaning subset and the0x20/0x10-leaning subset can act like maintained background traffic
- So the current "1990s Sony" model is less "one magic page order" and more:
- startup/beacon pages
- then a small recurring maintained scan set
- then additional camera-state detail pages we still have not identified
- A later no-pause HE38 pass broadened the same idea:
0x21 @ 20 D0->07 80 48 24 DD 6C0x41-0x43 @ 20 D0->07 80 50 24 DD 74- while the baseline control in the same
0x20-0x3Fregion stayed on the older20 D8style (07 80 4A 20 D8 6F)
- That suggests
20 D0is not just shifting one command or one small pocket; it may be selecting a broader.. 24 DD ..maintained-background surface across multiple command bands. - The paused HE38 runs strengthened that structure further:
0x20-0x3F @ 20 D0maps cleanly through48/49/4A/.../4F 24 DD0x20-0x3F @ 00 80maps the same area through4A/4B/4C/.../4F 20 D80x20-0x3F @ 40 30maps it again through48/49/4A/.../4F 28 D3
- So the best current model is a parallel set of response surfaces selected in part by the host payload pair, with the remaining question being which surface behaves like the true maintained background layer for an active panel.
- A tighter HE39 pass on the
0x50-band showed:0x41 @ 20 D0->07 80 50 24 DD 740x45 @ 20 D0->07 80 51 24 DD 750x49 @ 20 D0->07 80 52 24 DD 76- all of those can keep the panel in the clear / semi-awake state while the script is active
- but serially they still behave as one-shot branch openings followed by heartbeat-compatible maintenance, not as a richer multi-turn wake sequence
- So the
0x50-band currently looks like another valid maintained-background surface inside the broader20 D0class, not yet a uniquely privileged "real wake" surface.
What We Do Not Know
- The complete PT2 session startup handshake.
- The frame or cadence that moves the RCP into an active state.
- The meaning of most response fields.
- Whether
07 80is always the RCP-origin response prefix. - Whether host frames always use
00 00, or if other prefixes are needed for active mode. - How camera/CCU identity, camera model, or capability negotiation is encoded.
- Whether the one-shot discovery latch is intentional protocol behavior or a side effect of an incomplete session.
- Whether the documented
VBS (X) IN/VBS (G) INinputs carry required status/reference signals needed for full operation.
Manual Implications For The Live Session
The operating manuals add a few important clues that line up well with the bench work so far:
- The RCP is described as capable of high-precision and high-speed control. That fits the observed serial behavior better as a structured parameter/status channel than as a tiny button-only protocol.
- The RCP can be connected:
- through a
CCU-TX7/TX7PandCA-TX7/TX7P - or directly to a
DXC-D30/D30PviaCA-537/537Por aVCR
- through a
- The manuals explicitly say the LCD can display:
- filter value / filter position
- lens extender status
- camera self-diagnosis results
What that implies for the protocol model:
- the panel almost certainly expects a richer upstream status stream than just heartbeat or simple ACKs
- some of that upstream information must encode camera state, not merely panel
presence:
- optical filter position
- lens extender status
- active values / readouts
- self-diagnosis data when requested
- this makes the observed one-shot
A0/B0/B5-style readable blocks and the selector-family pages (E8/E9/EC) feel more like status/query surfaces than the complete live session
Current best read:
- the "missing wake condition" may not be one magic handshake frame
- it may instead be the absence of a sustained, camera-originated information stream that would normally feed the LCD, indicators, and value displays once the session is established
Restoration Strategy
Near-term practical strategy:
- Treat PT2 as the target personality.
- Keep using RS-232 at
38400 8N1. - Use
00 -> Bx/Ax/Cxstyle queries to map readable status blocks. - Use the cold CALL high/low pair as a known host stimulus to verify the RCP is still parsing traffic.
- Search for the missing session-advance or keepalive command after discovery, not inside the CALL path.
- If possible, capture a working PT2 CCU/RCP exchange; that would collapse a lot of the search space.
Most promising unknown:
- A host-side session cadence or identity/status frame after discovery that
makes
CONNECT NOT ACTbecome active.