3.6 KiB
3.6 KiB
Instantel MiniMate Plus — RS-232 Protocol RE
Session Summary: Chat Compacted 2026-03-01
Device: MiniMate Plus S/N BE18189
FW S338.17 / DSP 10.72
Capture: 38400 baud, COM4/COM5
Session 1 — Protocol Foundations & Write Command Discovery
2026-02-27
Frame Structure Confirmed
- DLE framing:
ACK (0x41)+DLE+STX (0x10 0x02)… payload … checksum …DLE+ETX (0x10 0x03) - DLE byte stuffing:
0x10in payload →0x10 0x10on wire - Checksum: 8-bit sum of de-stuffed payload bytes, mod 256
- Payload structure:
CMD | DLE | ADDR | FLAGS | SUB | OFFSET_HI | OFFSET_LO | data… - All BW→S3 requests use
CMD=0x02 - All responses use CMD matching the DLE prefix
- Response
SUB = 0xFF − Request SUB
Session Startup Sequence
Device boot prints ASCII “Operating System” before binary protocol mode.
Blastware init sequence:
- POLL (SUB 5B)
- Channel config (06)
- Serial (15)
- Full config (01)
- Event index (08)
- Event headers (1E)
- Waveform records (0C)
- Bulk stream (5A)
Write Commands Discovered
| SUB (Req) | SUB (Resp) | Function |
|---|---|---|
| 0x71 | 0x8E | Trigger config write |
| 0x72 | 0x8D | Trigger config page 2 |
| 0x73 | 0x8C | Unknown write |
| 0x74 | 0x8B | Unknown write |
| 0x82 | 0x7D | Unknown write (post config) |
| 0x83 | 0x7C | Unknown write (terminal) |
| 0x68 | 0x97 | Event index write? |
| 0x09 | 0xF6 | Unknown read |
| 0x1A | 0xE5 | Unknown multi-page read |
| 0x2E | 0xD1 | Unknown short read |
Session 2 — Trigger & Alarm Level Floats
2026-03-01 ~20:51
Key Findings
- Trigger & alarm levels are IEEE‑754 single‑precision big‑endian floats
- Trigger level change verified (0.5 → 0.2 in/s)
- Alarm level verified (1.0 → 2.0 in/s)
- Unit strings embedded inline (
"psi","in./s") 0x082Aruled out as trigger candidate
SUB 71 Float Offsets
| Offset | Field | Value | Encoding |
|---|---|---|---|
| d[32..35] | MicL trigger | 0.0450 psi | IEEE754 BE |
| d[38..41] | MicL low thresh | 0.0100 psi | IEEE754 BE |
| d[46..49] | MicL alarm | 0.0210 psi | IEEE754 BE |
| d[42..44] | Units | psi\0 | ASCII |
Session 3 — Multi‑Parameter Capture
2026-03-01 ~20:53
| Parameter | Change | Result |
|---|---|---|
| Alarm level | 2.0 in/s | Confirmed |
| Trigger level | 0.6 in/s | Confirmed |
| Record time | 3s | Confirmed |
| Sentinels | FF FF FF FF | Write boundaries confirmed |
Session 4 — .set File Decode
2026-03-01 ~20:55
.set Format
- Binary per‑channel structs
- Backlight field at +0x0C
- MicL units confirmed as psi
- Record time offset confirmed
Unknown uint16 fields:
- +0x0A = 80
- +0x0E = 40
- +0x10 = 21
Backlight / Power Saving Tests
Changes tested:
- Backlight 15 → 30
- Power save 2 → 5
- Mic dB toggle
Result:
- SUB 71 frames identical
- No new writes after sentinels
- Device confirmed to support settings → offsets unknown
Current State — Pending Capture
Next capture targets:
- Backlight = 250 → search
0xFA - Power saving = 10 → search
0x0A - Possible encodings:
- uint16 BE
- uint32 BE
- Little‑endian variants
Open Questions
| Question | Priority | Status |
|---|---|---|
| Timestamp byte 3 | MEDIUM | Open |
| Serial response trailing bytes | MEDIUM | Open |
| Channel ID mapping | MEDIUM | Open |
| Write config coverage | MEDIUM | Partial |
| Backlight offsets | HIGH | Active |
| MicL units | LOW | Resolved |
| SUB 24/25 vs 5A | LOW | Open |
| 0x07E7 config field | LOW | Open |
All findings reverse‑engineered from RS‑232 captures. No vendor docs used.