dante reverse-engineering
« on: March 04, 2014, 05:54:34 PM »
With the ebb and flow (or initial flow, and precipitous ebb) of Dante discussion around here, I'm hoping that the growth in Dante implementation across commercial products might lend itself to some good old fashioned reverse engineering. Take, for example, the Dante-X card available for the Behringer X32. It's interchangeable with the USB interface, and on first blush (based on the pinout of the connector) looks to be doing little but routing the i2s to a Brooklyn II card via FPGA. It must be a fairly agnostic  interchange between USB and Dante, considering that the Dante docs state that their cards take in i2s streams. I'd love to tackle this one solo, but my assembly coding is pretty stale. Calling Andy Peters?
There's nothing like the right tool for the job.
And -usually- that's what I end up using...
..nothing like the right tool for the job!


Andy Peters

Re: dante reverse-engineering
« Reply #1 on: March 05, 2014, 01:18:29 PM »
With the ebb and flow (or initial flow, and precipitous ebb) of Dante discussion around here, I'm hoping that the growth in Dante implementation across commercial products might lend itself to some good old fashioned reverse engineering. Take, for example, the Dante-X card available for the Behringer X32. It's interchangeable with the USB interface, and on first blush (based on the pinout of the connector) looks to be doing little but routing the i2s to a Brooklyn II card via FPGA. It must be a fairly agnostic  interchange between USB and Dante, considering that the Dante docs state that their cards take in i2s streams. I'd love to tackle this one solo, but my assembly coding is pretty stale. Calling Andy Peters?

Assembly coding not required; this looks like a pure hardware sort of interface.

It might be that the Behringer interface provides either I2S or TDM data transmit and receive lines and the Dante card and the USB card just connect to those lines directly. The Dante card accepts both formats. I would bet that the USB card is based on one of the XMOS devices (likely just the XMOS reference design repackaged), which also talks directly to I2S.

Fifteen minutes with an oscilloscope oughta be revealing. I don't know anyone who has any of these consoles, and I'm not about to buy one. (If I was buying a compact digital mixing console, it'd be that little Soundcraft Si Performer 3.)

I don't know what you're trying to do. Do you want to expand I/O with external converters?

-a
« Last Edit: March 05, 2014, 01:21:40 PM by Andy Peters »
"On the Internet, nobody can hear you mix a band"

desun

Re: dante reverse-engineering
« Reply #2 on: March 06, 2014, 06:50:15 AM »
Something that has been on the backburner for me for a while has been to turn a Raspberry Pi into a dante interface-- you can get the software to use a standard PC/Mac into a dante node, so I don't see why this couldn't be ported to Linux. Might be easier to look at the software (not sure if something like WireShark would still be able to probe the ethernet port), I suspect it's not a particularly complicated protocol. Only thing with the software is that it doesn't ("can't") generate a clock, so you can't use it only its own, but i'm sure this could be worked round.

Be interested to see how you get on with the hardware side!

Re: dante reverse-engineering
« Reply #3 on: March 10, 2014, 11:14:34 AM »

I don't know what you're trying to do. Do you want to expand I/O with external converters?

-a
Frankly, it just strikes me as a more elegant and lower latency solution than the xmos USB approach. I'm interested in either applying this to the rkn80 project or maybe just rolling my own interface  from reference designs. The interchangeable usb/dante cards on the behringer just struck me as a good proof of concept, and stock photos give a pretty good hint at what's "under the hood" to make it go.
There's nothing like the right tool for the job.
And -usually- that's what I end up using...
..nothing like the right tool for the job!