Skip to content

πŸš€ Add Conversate real-time rendering example (partial β†’ final ASR behavior, firmware v2.0.7.12)#5

Open
yasuy0shi wants to merge 1 commit into
i-soxi:mainfrom
yasuy0shi:yasuy0shi/add-conversate
Open

πŸš€ Add Conversate real-time rendering example (partial β†’ final ASR behavior, firmware v2.0.7.12)#5
yasuy0shi wants to merge 1 commit into
i-soxi:mainfrom
yasuy0shi:yasuy0shi/add-conversate

Conversation

@yasuy0shi

Copy link
Copy Markdown

Overview

This PR introduces a new example:

examples/conversate/

It demonstrates real-time incremental text rendering on Even G2 using the proprietary Conversate service (0x0B20).

Unlike teleprompter, this path is optimized for ASR-style streaming updates:

  • Partial β†’ Final rendering
  • Rolling line buffer behavior
  • Low-latency incremental redraw

πŸ”¬ Observed Behavior (Firmware v2.0.7.12)

Tested on:

  • Even G2 (R unit)
  • Firmware: v2.0.7.12 (Feb 2026)

Confirmed behavior:

Service: 0x0B20
Text field: fixed 30-byte UTF-8
CRC: CRC16-CCITT-FALSE
flag=0x00 β†’ partial update
flag=0x01 β†’ finalize line
Rolling buffer size: 2 lines
update_id must increment

Behavior may vary across firmware versions.


πŸ§ͺ Reproduction

cd examples/conversate
pip install -r requirements.txt

# Single sentence
python conversate.py "Hello from Conversate!"

# ASR-style demo
python conversate.py --demo

# Line buffer test
python conversate.py --line-test 3 --delay 0.8

Expected result (v2.0.7.12):

Only the last two finalized lines remain visible.

🧠 Spec Proposal

This PR intentionally separates:

  • Observed Behavior (empirical, firmware-specific)
  • Spec Proposal (community baseline for discussion)

This keeps the contribution conservative and safe for merge while enabling future protocol formalization.


πŸ“¦ Why This Is Useful

This enables:

  • Real-time ASR streaming integration
  • Subtitle-style rendering
  • Incremental transcription systems
  • Cross-firmware reverse-engineering validation

⚠️ Notes

  • No existing examples were modified
  • teleprompter remains untouched
  • Implementation avoids device-specific hardcoded magic values

Contributions and verification from other firmware versions are welcome.

@leovigna

leovigna commented Mar 1, 2026

Copy link
Copy Markdown

Hey @yasuy0shi wanna chat? I created a Discord server to build an open sdk for G2. https://discord.gg/Ts9kkCCY

@maciejklimek

Copy link
Copy Markdown

Hey @leovigna, the Discord invite link seems to have expired β€” would love to join! I have G2 glasses and I'm building an agent system (voice + BLE) where G2 would be the display layer. Very interested in contributing to an open SDK, especially around the Conversate service for real-time text streaming. Could you share a fresh invite link?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants