gdoor-org / gdoor

Wifi adapter and bus protocol documentation for the Gira TKS Door System
https://gdoor-org.github.io/
GNU General Public License v3.0
14 stars 4 forks source link

Audio Support #20

Open mrtnkhl opened 1 month ago

mrtnkhl commented 1 month ago

There is currently no audio support planned until reverse engineering and interfacing with the digital bus is fully working. Creating this Issue as a placeholder for possible future work and to inform others who might be looking for audio (and video) support.

Per @DaSchaef the audio (and video signals) are modulated onto the wire in an analog format. It is suggested but has not been verified through testing that connecting a headphone amplifier via a coupling capacitor to the bus would yield audio signals. Likewise, connecting a line-out to the bus could allow sending audio signals to the (door) station. It is important to understand that analogue audio (and video) signals are only present after the digital bus command has been sent to the respective station to transmit audio (or audio and video) on the wires that also transport the digital bus signals.

See https://gdoor-org.github.io/documentation/protocol.html "Request Audio", "Request Video" for more details on the respective bus messages.

Since is (unfortunately) no digital audio (or video) signal are present, a combination of an ADC and DAC, most likely connecting via I2S to the ESP32 is needed to convert the analog signals to the digital domain. Using an ADC, DAC and a Raspberry Pi could be an option as well but this would require too many resources and power.

Per @DaSchaef, on the ESP32 side, there is additional work needed, mostly in software, like working with the DMA engine, timing Wifi transmissions correctly, etc.. This work can be summarized in the categories of coupling, digitizing, processing and streaming to an endpoint, e.g. via SIP or RTSP. If one wanted to have bidirectional, parallel communication, with the other (door) station some analog circuit magic to prevent audio feedback loops would be needed as well.

mrtnkhl commented 1 month ago

https://github.com/sikorapatryk/sip-call

Some previous work has been done using an ESP32 with an ADC and DAC as a SIP client, so maybe this can be of use here.

mrtnkhl commented 1 month ago

https://github.com/vvigilante/comelit-simplebus1

Another similar project but for Comelit, including the analog circuits interfacing with the ESP32 internal ADC and DAC for audio:

image

mrtnkhl commented 1 month ago

See this thread for a similar discussion for a Comelit system: https://github.com/Elektroarzt/simplebus2-mqtt-bridge/issues/3

DaSchaef commented 2 weeks ago

I successfully received audio via my computer:

My voice was easily recorded on the computer. So I can confirm that bus audio is just plain simple analog "line audio".

I would not recommend this setup so far, as for a real usage more protection and also a bit of filtering is needed. In real world usage there would be multiple issues:

(both easily solvable)

After doing a lot of research:

My feeling is we should continue the audio and video route by just making plain simple adapters. Kind of "bus to cinch analog video" and "bus to cinch analog audio". These signals can be digitized with ~10€ USB Dongles and a Raspberry Pi, which itself can then act as VOIP phone, image sender or whatever is needed.

grafik

DaSchaef commented 2 weeks ago

I have no Gira equipment here to test video. (if someone finds a cheap used video outdoor station :wink: , indoor is not needed for tests, we know how to request it :sweat_smile: ) So my raspberry pi solution / hat would be a "blind try" regarding video.

mrtnkhl commented 2 weeks ago

@DaSchaef do any of the Comelit circuits posted above look useful? It seems like they have bus-coupled audio ADC/DAC working and code for it as well on the ESP32 platform?