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

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

Yes, it is the cheapest option I was able to find.

My device looks like this, I was able to record prerecorded DCC digitally to my PC into Audacity:

I am not sure if the Windows Sound Mixer does a minor change or if it is bit-perfect, it seems perfect.

If you are still into recording anything, @Henrie is enjoying his Tascam DR-100 MKIII very much. It is certainly not cheap, but can record S/PDIF and many other sources directly to an SD card. It is very easy to use and very high quality for the analog sources and 100% perfect for S/PDIF.

Thanks very much for your response Max. Just to clarify you’re actually using a VAlinks Sound Card, 6 Channel External Sound Card USB 2.0 (which has the C-Media cm6206 chip installed)? On Amazon they appear to have several brands. The VAlinks unit is exactly the same as yours in the picture. If it’s the one that works on your DCC player then I’ll give it a try.

I don’t think the brand matters, it’s just a cheap Chinese thing.

No worries Max

Thanks

Since we’ve gone way off the original topic, I’m going to lock this thread. Please start a new thread if you have further questions.

Thanks!

===Jac