Introduction
First and foremost - THIS SYSTEM IS NO WHERE DONE YET - but... even so there is a lot there and what is there pretty much works ok. Yes there are bugs and oddities I've not ironed out yet but they don't stop it working, well not on my machines anyway.I think there are still some people out there who like to try out new things. I'm hoping so anyway. If you want to run a radio built from Erlang, Java, Jython and C then give it a go. Part of the reason for putting this up is to gauge if there is any interest because that will influence how things go from here. It's mightily different developing something for oneself and developing for other people to use. The latter is several times more effort so if there is little interest I save that extra effort, worth the investment of dipping my toes in the water I think.
Please read in entirety before starting and make sure you understand the process.
Installation
I have tried to make things as straight forward as possible. I wanted to see if a distributed, multi-language system could ever be a one-click install. Well, it's not quite one-click but it's not far off.Environment
Radio Support
Realistically this is SDR1000. The system is built to support any radio and I have the start of various other profiles for other radio configurations, but guess what, it's not finished yet. If you don't have an SDR1000 you can still run it up but it won't be much fun. A small caveat here, my SDR1000 is an original 3 board stack with no RFE, PA etc. The transmit path is not enabled yet anyway but I am using the latest HW control software which should support RFE and USB (I have not tested USB and can't test RFE). You will have to edit a file to use these but it's straight forward.Operating System Support
This release is Windows only. I have not done the porting work to Linux yet. I have tested the install on XP Pro (under a VMWare virtual machine) and under Vista (real machine, being half of my dual boot system). It works absolutely fine under XP but there are some audio artefacts on Vista (not dropouts, the CPU was running a 4%) but a kind of background crackling noise. I don't know what was causing this (driver issues no doubt) and don't really care at the moment.Pre-Requisites
I've really tried to keep this to an absolute minimum. The rest comes with the install.- Erlang - Go to http://www.erlang.org/download.html and choose R11B-5 Windows binary. This is quick install and should pose no problem on XP or Vista. Once installed please manually add the path of the 'install_directory\bin' to your path environment variable as the install does not do this and I didn't want to have to go search for it myself. To check erlang out go to a DOS prompt and type 'erl', you should get an erlang session.
- Java - Unfortunately this needs 1.5 (or 5.0 depending on what you read). This can be obtained from http://java.sun.com/javase/downloads/index_jdk5.jsp. You want the JRE 1.5 (currently update 14). This restriction will go away when more stuff moves from Jython to Java. At the moment I am using JNumeric (a port of the Python Numeric package) which is a little old and needs an earlier version of Jython which in turn needs an earlier version of Java. This is only a problem if you already have 6.0. The two live happily beside one another. I have both but remember to set the JAVA_HOME environment variable to the right one.
Download and Installation
Download the installation package from here.| Version 0.1 - Alpha | Erlink-SR |
It's a single zipped executable. Double-click the installer, it's a quick install.
I've tried to keep it clean. Files are ONLY placed in the erlinksr directory. Please accept the default installation directory, I have not got everthing pathed to allow it to move around yet. There is one exception. If you leave checked to install PortTalk it will put the driver into your system/driver directory. If you already have PowerSDR then you should already have this driver. In addition to installing the driver it also makes the necessary registry changes.
I do add some entries to the PATH and CLASSPATH environment variables. Again you can turn this off but things won't work if you do.
Assuming you just accepted all the defaults you should have an ErlinkSR icon on your desktop.
Configuration and Sound Support
There is practically no configuration. I haven't got that stuff done yet. This poses a bit of an issue with things that depend on your environment. For example sound cards. Right now things are pretty tied down. It will auto search for most common and recommended cards and interfaces. I have used various built in sound systems, cards and external units. This is the line from the erling-instr process:typedef enum _type{GENERIC, DELTA_ASIO, AUDIGY_2_ASIO, ASIO4ALL, DELTA_44, SANTA_CRUZ, FIREBOX, EDIROL, AUDIGY, SIGMA, CSB}TYPE;
If yours is there, chances are it will work.
If you have an RFE or use the USB rather than a parallel interface then you neeed to edit a file.
Edit UiModel.py which should be in scripts\ui. Look for this:
#===============================================================================
# Temporary hardware initialisation data
# Don't want to spend effort here as persistence is changing
# rfe pa usb lpt_addr
uim_d_hw = [0, 0, 0, 0x378]
HW_RFE = 0
HW_PA = 1
HW_USB = 2
HW_ADDR = 3
Just change the appropriate 0 to a 1 for RFE or USB. If you use a parallel port change the address to suit, although I think most systems have LPT0 at 0x378. Don't change the PA setting.
Finally I have had some issues with machine names in Erlang. It seems Erlang is case sensitive with these names but it does not seem possible to get the name from the OS with the correct case, it always comes back uppercase. At the moment I am converting it to lowercase. If your machine name is all lowercase it should work fine. If not you need to edit a file. I edit this for you in the install but get it wrong with mixed case. The file in in the /ebin directory 'erlinksr.app'. Simply replace all occurances of your machine name in lowercase with the correct uppercase or mixedcase name.
Running the Application
The application icon points to a batch file, and there are several batch files and configuration files involved in the startup. Remember this is not a GUI application that runs everything in it's process like PowerSDR. You will see a cmd window which shows the progress of the startup. The information shown is invaluable in diagnosing problems. The various processes are started and will report starting correctly or timeout. A timeout usually means there is a problem but not necessarily. The last process to start is the UI and then if that reports starting correctly the GUI should pop up. Press the radio node in the tree to get the main panel and then press the start button. If all is ok there should by those usual radio sounds, if not, then most likely sound card configuration failed. In the command window the erlink-instr and erlink-outstr processes report the ID of the sound interface they connected. If you see any '-1' values here they failed to get an interface.Good luck - email me if you get any issues.