Monday, August 26, 2013

converting pronto codes to cde files for the Nirvis Slink-e

Hello all.. been a long time. :)

Background

Theres a bit of vintage gear that I use that takes some work to get anything out of. Its called a Nirvis Slink-e. No longer made, as the original maker got bought out by M$ years ago. It was the only piece of hardware able to do some nifty things with minidisc (what I usually use it for) and home automation (what most people used it for).

Nicely the original maker has left their website up for reference here:
You'll note the extremely basic HTML on the page. Kinda adds to the vintage feel I guess. :\
http://www.nirvis.com/

Problem is, the format of the files this thing used on a computer were always a bit of witchcraft to me. I got one to work a little once through experimentation, but never reliably. Why? I didn't take the time to learn the format and actually know what I was doing. Well I finally did it right.






This project is about understanding infrared remote signals, and how to convert them between a few standard formats. The most commonly available format as given on Remotecentral.com are known as Pronto codes. Pronto being a brand of programmable touchscreen remotes released by Philips, before they pretty much completely gave up on home electronics and automation.

There are information pages there on understanding the pronto file format I read many times. It never seemed to help that much since the general format is explained pretty well, but how to take that and move it into the cde file I was wanting to work with for the slink-e was never explained. So there I sat with a bit of understanding, but few working files.

This weekend I decided to take it the rest of the way and provide help to those that wanted it. ..and I succeeded.

Here Ill provide an example code for a technics sa-ax7 receiver taken from remote central in pronto, and exactly how its represented in my cde file to successfully send out a working code through the slink-e. My hope is that with this note and the standard tutorial below you will be able to convert your own codes.
http://www.remotecentral.com/features/irdisp1.htm

What can be done with all this information? Well, once understood you can send infrared remote codes out from a computer, through the slink-e, and control any electronics you want. I've wanted to do this for ages, since the remote to my receiver died, and replacing it is in the range of $50. That is far too much to be paying on an amp I've had since forever. Yet it requires a remote control to use some functions, like setting up the surround sound. I've been stuck, until now.

The code


If you cut and paste into a cde file from between the separation lines you should have 1 working command. Read the comments (words after the pound signs) to understand the meaning, or where the numbers come from.

In the case of that big old pronto code, just put the # signs at the start of a line to make it work as a comment. I wont bother trying to format it better with all the changes that can happen during posting.
--------------------------------------------------------------
desc=technics saax7 and cd eur646496
type=ir
carrier=40000
sleep=-300000
zero=400 -400
one=400 -1200
start=3200 -1600
stop=400 -50000
repeat=1

#first 2 sets of 12 numbers indicate the device in this
#case a technics saax7 receiver or a slmc7 cd player
#2nd 2 mark the command, other tutorials break that
#down further but this works for id.

##an example pronto code for the saax7-vcr1
#0000 0070 0000 0064 0080 0040 0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 #0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 #0010 0010 0010 0010 0010 0030 0010 0010 0010 0030 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 #0010 0010 0010 0010 0010 0010 0010 0030 0010 0030 0010 0030 0010 0030 0010 0010 0010 0010 0010 0030 0010 0010 #0010 0030 0010 0030 0010 0030 0010 0030 0010 0030 0010 0010 0010 0010 0010 0ab3 0080 0040 0010 0010 0010 0030 #0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 #0010 0030 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0030 0010 0010 0010 0030 #0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0010 0030 0010 0030 #0010 0030 0010 0030 0010 0010 0010 0010 0010 0030 0010 0010 0010 0030 0010 0030 0010 0030 0010 0030 0010 0030 #0010 0010 0010 0010 0010 09ec
##when breaking this down note the repeats and the sections as such
#0000 0070 - learned code, carrier frequency
#0000 0064 - one time burst lenght (none), length of information
#section (64 bits)
#above goes into the header along with the stop start codes, though
#they are taken in multiples of each other
#the 400 comes from 1/frequency in ms.
#0080 indicates 8 400ms pulses or 3200
#0040 indicates 4 400 ms pulses or 1600
#
#
#in this case the info section has a repeat so it includes
#24 bits * 2, plus 16 for the additional start stop codes
#0080 0040 - start code (8 bites)
#take all the 0010 0010, and 0010 0030 codes and interpret them
#as 0 and 1 respectively
#0010 0ab3 - end code, indicates the end of copy 1 (8 bits)
#0080 0040 - start code (8 bits)
#0010... copy2 section
#0010 09ec - final end code (8 bits finally makes 64 when
#added to info sections and other 8 bit sets)
#note how the end codes differ. In IR 10% difference can be
#seen as noise. So these could be made the same.
#white space appears to be ignored in slinke files
#numbers divided below as I found the number sequence..
#remember binary is written
#'backwards' here so least sig bit is to the left.

010000000000 010000000101 000000000111 100101111100:saax7-vcr1
--------------------------------------------------------------

No comments:

Post a Comment