S/PDIF input to USB, is ITTS in I2S?

I’ve been thinking a lot about how we’re going to dump tapes in the future.

I’ve had a Big Plan™ in my head about how to grab the PASC data simulteanously with the SYSINFO/AUXINFO but I keep not being able to find time to get it done.

But I just had a thought: It’s probably difficult to get all that information at the same time and synchronize it and put it into a file on an SD card or on the USB bus or whatever, but it’s probably not hard at all to simply get the PASC data from the I2S subband bus and forward it through a high speed serial port. After all, a cheap FTDI chip can transport up to 3 megabits per second over USB, and PASC is only 384kbps.

In fact, I already have a setup that can do that with a DCC175 (my Turkey Lab). I’m going to think about this for a little while…

===Jac

2 Likes

I have no idea what you just said, but I’m surely very very excited ! :clap: :+1:

2 Likes

Hi Max,
Thanks for the tip, I did not make this modification (yet). I need a Toslink in/output part to do this mod. Maybe it is present in one of my donor receivers, or in my donor DCC players.

Meanwhile I got myself a second hand Tascam DR-100 MKIII :stuck_out_tongue:
It has a TS/TRS jack 3.5 mm plug for digital input, but I could not find a high frequency (400kHz?) RCA to jack cable yet. I might make one myself and let you know how it works out.

Thanks again!

1 Like

I made the experience that it works as it should over short, reasonably good normal cables. How much did you pay for the Tascam?

Thanks for asking, Max.

It wasn’t cheap as it was only and rarely used as a backup for a singer/songwriter. He had two of the same Tascam’s :money_mouth_face:.
I paid $175 for the package including power adapter and some special cables for connecting. As I’m a reporter for a regional news magazine myself, I will use it for my assignments too. The Tascam’s quality in recoding is far above my expectations. Especially compared to my previous recorder.

1 Like

I understand that the Teensy 4.0 supports S/PDIF natively. I don’t know if (and how) it handles subchannel data (channel status and user data) but the ITTS information is sent via the user data, as you probably already know.

I hope whatever chip you want to use, you’ll be able to get it. There’s a massive shortage right now.
https://www.independent.co.uk/life-style/gadgets-and-tech/chip-shortage-2023-intel-ceo-b1832618.html

===Jac

Hi @Jac and possibly @HainjeDAF, I moved this post here where it belongs.

My understanding of ITTS is much more solid (ITTS (DCC text) reimplementation) than the extraction from S/PDIF.

The STM32F746NG can do it and it is called user data in the documentation.

The chip itself is sold out as you might have guessed @Jac, but the board I am using (STM32F769I-DISCO) is almost reasonably available and I bought mine in the end of 2019. It is perfect with a touchscreen, coaxial S/PDIF in and out, Ethernet, all the peripherals I could dream about apart from a built-in read-amplifier :sweat_smile:.

I am too incompetent to understand how to work with STM32 DMA or interrupts, though. If anyone with a working 1st or 2nd gen DCC recorder could help me with that, I would sent over my ITTS tape, my board and port ITTS.js to whatever target necessary.

The Teensy 4.0 and its underlying chip do not seem to support sub-channel data natively.

@Jac If I understood your latest hackaday post correctly, you can access it but do not have a way to properly push it to a PC? I could certainly waste my Glasgow FPGA board on it when it arrives, but this is far too overkill imo.

And in general I should stop procrastinating getting my pile of parts from three 2nd gen recorders and the one with a broken gear and missing parts to @Jorn for repair. Thank you for that in advance :hugs:!

1 Like

Yeah, it should take me maybe an evening to make subchannel extraction possible on my Propeller SPDIF decoder. Unfortunately the SPDIF decoder is still not as reliable as I’d like it. The timing is very critical as you might guess.

Once I program the subchannel extraction code, I can send the data to the PC and the PC can figure out what to make of it. The ISO standard for ITTS is very complicated but it should be easy to get started with simple things like extracting song names. I think that’s what the firmware in the recorders does.

===Jac

@Max, can you explaine on a more high level what you can do with it or what the goal is.

This is help full, for people that are not familiar with where your are comming from with your development.

Thanks

I am not sure which rock you slept under, but ITTS.js 0.0.1 is a real ITTS implementation limited to the parts used in the demo mode of the ITTS VIDEOBOX. It reads the ITTS from your dump in binary and applies the necessary formatting.

I can’t add features, if I don’t have access to more real ITTS packets from tapes, but I am confident that I will be easily able to extend it to everything used on the tapes as soon as I have access to real packets and a video from a real ITTS box from the same tape.

Details and further discussion here: ITTS (DCC text) reimplementation

This thread is for extracting ITTS data (and audio) from S/PDIF (coaxial or optical does not really matter as converters do exist) as one part of an ITTS box replacement to make it usable somehow. If I don’t have any working 1st or 2nd gen DCC recorders, I can’t work on this part, as 3rd gen DCC recorders don’t output ITTS packets via S/PDIF. S/PDIF is only used for pure audio nowadays; that’s why extracting data from it is very uncommon.

Here you can find the other part that displays the so-called ITTS packets that each contain one line of characters including formatting (except for some even more crazy other logic that was likely never supported by anything): ITTS (DCC text) reimplementation

1 Like

I remember now that you put that online, sorry I forgot.

I don’t know JS (JavaScript?) so I have no idea how to use that page.

Also sorry: I have very little time to work on DCC lately. My space is limited and I don’t really have a bench or desk to do fun DCC stuff.

I’ll try to do some work on the Propeller SPDIF decoder soon but there are many other things that keep me busy and distract me.

===Jac

2 Likes

Everything is fine, as long as we don’t give up, we will eventually reach all doable goals.

It is JavaScript based, correct. As a user, you just press the buttons on ITTS.js 0.0.2 (pushed a minor update), they do the exact same thing as the ITTS boxes in demo mod If the black area did not show up in the 0.0.1 version for you, it was not your fault but a bug.

Dynamic loading of ITTS packets is not yet supported, I have a good idea how the mapping to the different button, overwriting just a single line and so on works but I want to wait for ITTS packets from tape to be sure.

I think it is too early to write a simplified technical guide, my source won’t help much either for many reasons. If you have any question on that IEC (not ISO) standard, I do think that I have a fairly solid variety of understanding of it now and could feel the pain that it caused which may be one reason for the lack of real implementations outside of the ITTS box for myself.

Please keep in mind for further discussion, this is supposed to be the hardware thread, here is the display/software part: ITTS (DCC text) reimplementation

1 Like

WOW, way above my knowledge level. Sorry.

I’m a beginner in microcontrollers.
The confusion of not adhering to C++ standards is what drove me away
from arduino.

I was never that much interested in Arduino for the same reason: Stupid things like you can’t use user types in function headers because the Arduino compiler generates an invisible header file with all function headers that it compiles before the rest of the source code, and of course then the user type doesn’t exist and you would get a vague error message.

But I think a lot of things have improved and functions with user types are now possible (not 100% sure).

And of course with VisualMicro it’s no longer necessary to use the Arduino editor: that’s basically a plugin for Visual Studio or Atmel Studio to program Arduino projects. I use Visual Studio for my work so that helps a lot.

===Jac

What I like about STM is that the latest IDE has a config generator that helps you correctly configure the micro.
This configurator is also available as a separate package.

And for the rest it is basically EclipseIDE for C++ development.

2 Likes

I’m also a beginner with it, I have some programming background but not enough.

Notes for anyone interested in joining me and/or future me.

https://www.st.com/resource/en/user_manual/dm00189702-description-of-stm32f7-hal-and-lowlayer-drivers-stmicroelectronics.pdf p. 971 ff.

ChannelStatusMask is how they call copying of the user data to the frame that can be accessed somehow.

This is the closest project as an example for S/PDIF initisalisation:

http://www.tjaekel.com/DiscoveryF7Audio/index.html

It should be doable for anyone with enough experience and or competence with STM32 or embedded C++ in general.

1 Like

@Max why don’t you post a request for lending a 1st or 2nd gen recorder in the Looking For segment. If my dcc300 was 100% i’d send it right over to you!

Good question!

I managed to get a 4th DCC300 with a missing headphone jack and likely a broken gear, but playing even digital tapes correctly for a few seconds before stopping.

I will get the pile to @Jorn who volunteered to build me one working one and sort through the rest of parts for the museum.

2 Likes

Hi Guys, Warning, I’m not a tech head. Way back in the day (circa 1992) I used to be hobby singer song writer. I bought a Marantz DD-82 and recorded all my music to digital. After many years of storage I dusted down the DD-82 and with the help of Ralph she, the DD-82, now sings as good as new. The Phillips tapes are 30 years old so I’d like to transfer everything to the PC and perhaps eventually to the “cloud”. I’d like to do that fully digital. That is digital from the DD-82 to the digital USB input on the PC (everything I’ve searched seems to always require conversion to analog and then into the PC - copyright paranoia?). Little point in recording everything in digital back then if I have to go to analog now. Following this DCC Museum Forum post it would seem I’m not alone and that all need do is plug in the optical output on the DD-82 to the optical input on a CM6206 (or similar) and then plug in a mini USB cable from the CM6206 to the USB input on the PC, download the drivers for Win 7 OS), boot up Audacity and I will be able to record digital on my PC with little if no signal loss because everything is still in digital when it gets there. Is my understanding correct and/or can anyone kindly suggest an inexpensive alternative? Thanking you in advance. Glenn