VHS Data storage

Random thought.

Could it be possible to connect an aduino to the magnetic head of a a vhs tape player to read/write digital data? I know it would be slow but quite interesting inventing something like 'VHSFS' to store files. :smiley:

I used to back up harddrives, 5M, back in my Apple 2 days.
The thing that will be hardest to overcome is your common or garden variety VHS deck is pretty sloppy timing wise.
The horizontal lock on ananlog TV is pretty tolerant of these variations, but the Corvus harddrive backup unit had real problems coping.
We ended up having to buy studio or broadcast quality decks for our customers.

When Sony first released the F1 PCM recorder that was a companion unit to their first model of CD player, you had to use a particular model of VCR.
It was all interconected by incredibly expensive 100 way cables.

Each line of video is 63.5 uS, followed by an 8 uS horizontal sync pulse.
There are 2 fields of 312.5 lines, at the end of each field is an 11uS verticle sync pulse.
Then a 22 uS vertical retrace period.

If you only stored say, 100 bytes/line, which would give you about 3k bytes/field.
With a 15625kHz line rate, @100 byte/line, you'd have to clock data out @1562.5kHz.
Straight up it would need a Mega, just for the buffer.

At the end of the day it seems like a lot of hassle just for the intelectual exercise!

You could go really retro and build an audio cassette interface!
It would be a lot less hassle and you could use it for other things, like a laser data link or go nuts and communicate between two Arduinos with tin cans connected by taught string.
Which I have done! It was pretty funny!

@Tim Sullivan, the standard VHS has a "helical scan" where the head is on a mechanical drum spinning at an angle to the tape. The spinning drum has to be synchronized to the video scan, on in your case to the Arduino. Fine tuning the synchronization of this mechanical drum is what the VHS "tracking" control does.

As @cyberteque points out that an analog cassette tape with its stationary head would be much less complicated. There are also VHS recorders that have non-spinning heads, they cannot record video, but in a 911 center a recorder is used that has 10 or 20 channel stationary head to record audio phone calls and voice radio calls on regular VHS cassettes. They can fit 20 audio lines x 24 hours on one cassette. If you want to record data on a VHS cassette it would be much easier to start with one of these rather than a regular VCR.

They are amazingly expensive new, but now that call centers are changing over to digital recording on hard disk, I bet these VHS tape units show up cheap on surplus and even free if you look in the right dumpster.

A 20 track VHS unit from a call center could record 16 parallel bits, plus a data clock and 3 error correction bits. Recording 16 bit data at 2kHz would give a capacity of about 345 GBytes per cassette.

Is this mountain worth climbing? Its a lot easier than conquering the regular VCR recorder, but alas price of disk and solid state memory continues to plummet, so success here would practically be worth just a tee shirt and bragging rights.

Ok so vhs video sounds too complicated.

But audio cassette could be possible. Would it be as simple as
-writing a starting byte to indicate a new file
-digitalWriting for a certain amount of time for each. - what type of encoding would be used? Would manchester encoding work or would the timing of each cycle bit be too unreliable based on the speed of the tape?

Im not really sure how the magnetic head works of a audio tape player if if it is simple as using the digital i/o pins to make a 0 or a 1 :-/

Hi Tim,

Like @cyberteque said, it is definitely possible. If you are old enough to remember the days of TRS80, a lot of programs were stored on tape. The basic principal is similar DTMF (similar to how your phone works). Basically, 0's and 1's are modulated with different carrier frequencies and they are then later decoded on the receiver side.

This is a very old technology and is not always reliable. I remember that sometimes I would need to adjust the volume setting a few times before the program could be read back by my TRS80.

Yep this is definitely viable for Arduino. You are right about the normal audio tape heads cant practically read or write a "1" or "0" directly. But the cassette deck takes care of all the details when recording audio. So make data into audio.

Back when the earth was cooling, small microcomputers began to scamper about beneath the feet of the big mainframe dinosaurs. A floppy disk drive cost over $1000 and we could only dream of someday owning a hard disk with 0.0001 GB capacity. We used a standards called "Kansas City" or "Tarbell" see Kansas City standard - Wikipedia

Something like this would still be the easiest way to use magnetic tape today.

Funny this came up. Today I was at Goodwill and bought a small tape recorder for $4. My intent was to take it apart for the motors, headphone jack, and other fun parts. (The AA batteries have a decent charge on them even.)

I didn't give it serious thought, but I wondered what would be involved in re-creating a C64-era data-casette drive.

I have a doo-hicky that plugs into a pc parallel port and saves data to a VHS recorder. It holds ~ 120MB dos formatted on a SP tape

I have no real idea how it works but it appears that its storing it in a appropriate video grid of 1/0 bits as black or white, with aduio noise (checksum?)

I bought it for < 20 bucks in the late 90's new and failed at the swap meet, point is its not impossible (its just a video barcode, though reading it would be near impossible without, and a real SOB with some external hardware)

If you want to go the audio cassete way, the best method is bi-phase data encoding, which is what the "Kansas City" standard was all about.
Basically the clock and data are combined into a single serial stream.
This makes it a lot more tolerant to things like tape stretching and the effects of "wow and flutter".

I'll have to dig out my old note from "back in the day".
This is the second time where I've talked about biphase encoding/decoding.
For low bandwith comms or data storage it's a really easy, reliable technique.

@Osgeld some folks accuse me of being a pinata of useless knowledge, but I confess never have heard anything like what you describe. 120MB is trivial now, but certainly was worthy back when VHS was new. Any idea how does it operate?

lol new, problem was I bought it when DVD was new, as new for 20 bucks, I imagine its just a grid of white / black pixels on RS170 and some sync magic, I have never taken it seriously though as at that time it was nothing to get cd rom's and tape backup systems that held much more on the same port at higher speeds

I also have a couple of magnetic disk cart systems that held 2x as much and were 10x as fast of the same age and interface, a cd rom that doubles as a discman hooked up to my 386 laptop, and a 600DPI 24 bit color scanner, at best it was a poor man's novelty, not something of real interest other than saying I have a doo-hicky

VCR tape back up doesn't use black & white pixels, it works by writing PCM encoded data.
When you are thinking video streams in terms of data, think a 7Mbit/second data pipe.
You can do the same thing with a video sender.
Plus with an A/V sender you also get 1 or 2 - 9600 baud data channels as well.
Just remember to keep signal levels @ 1V peak to peak.