KRACARS v1.2 Copyright (c) 1997 Khalid Rafiq Release date 25 August 1997 Email kr@tardis.ed.ac.uk DESCRIPTION: ------------ KRACARS.EXE is an ACARS decoder for the PC which attempts to decode ACARS transmissions in real-time using a Sound Blaster Pro or Sound Blaster 16 (or compatible) soundcard. Although there is no warranty provided with KRACARS, I would welcome any comments, problem reports and other feedback you may have concerning this software. You can contact me by email kr@tardis.ed.ac.uk. REQUIREMENTS: ------------- 1. PC with at least 1Mbyte RAM, minimum CPU requirement unknown, 2. DOS, minimum version unknown, 3. SoundBlaster PRO or SoundBlaster 16 (or compatibles), 4. Radio receiver with audio cable for connection to soundcard, KRACARS will also work from within Windows 95 as a DOS application. LICENSE: -------- KRACARS is FREEWARE. This software may be freely copied and distributed providing that the program and accompanying files are not modified in any way without prior written permission of the author. Any charges made for distributing this software may not exceed that of the cost of the distribution media. You are granted a license to use this software providing you accept the disclaimer below. DISCLAIMER: ----------- Although this product has been tested by the author, he accepts no responsibility for any damages caused by the use or misuse of this software. This software is distributed 'as is' with no warranty expressed or implied. The author will not be responsible for any losses incurred, either directly or indirectly, by the use of this software. Use this software entirely at your own risk. If you do not agree to these terms then you must not use this software. INSTRUCTIONS: ------------- 1. Before using KRACARS it is recommended that you:- (a) scan KRACARS.EXE with a virus checker (b) backup your file systems 2. Make sure that the BLASTER environment variable is set to match the settings of your soundcard (Eg. BLASTER=A220 I5 D1). This program does not support the use of IRQs greater than 7. 3. Use the mixer utility provided with your soundcard to adjust the line-in level. It is recommended that you enable monitoring of the line-in audio signal (if your soundcard and mixer utility allow this). If you have a microphone connected to your soundcard, you may wish to either disconnect it or set the microphone level to zero. If your soundcard's line-in input has an AGC feature, this should probably be disabled too. 4. Connect your radio receiver to the soundcard line-in socket via a suitable audio lead and adjust the receiver volume. Note that you should leave the receiver SQUELCH control open. Tune your receiver to the ACARS transmission frequency in use in your area (I use the European Primary ACARS Frequency of 131.725 MHz AM). Some ACARS frequencies (in MHz AM) are:- 131.725 European Primary 131.525 European Secondary 131.550 USA, Australia, New Zealand 131.450 Japan 129.125 USA Secondary 130.025 USA Secondary 131.475 Canadian (Company) 5. Type KRACARS at the DOS prompt. You can optionally specify the following command line parameters: -d Use date derived filenames for the raw and log files (ie. YYYYMMDD.LOG and YYYYMMDD.RAW instead of KRACARS.LOG and KRACARS.RAW). -o Overwrite rather than append to the raw and log files (default is to append). -a Write a DACARS compatible log file (default is to use KRACARS own format). ? Display command line options summary. 6. If all is well, you will see a program banner displayed at the top of the screen. A rotating character with be seen at the bottom of the screen along with an S-METER displaying audio signal strength. If your CPU is too slow to process the sampled input in real time, the SLOW counter displayed at the bottom of the screen will increment. If your hard disk is too slow, then you will see this counter increment during logging. The TIME value at the bottom of the screen displays the processing time required to process a fixed number of input samples. The slower your CPU, the larger this value. This value will increase during logging to disk. If you see the SLOW counter increment, you are probably not going to get reliable decoding results. I am interested to hear from you if this happens on your PC. Please send me an email with a note of your CPU type and the approximate TIME value (displayed at the bottom of the screen). 7. Adjust the volume control of the receiver or the soundcard line-in mixer control (you will need to use trial and error) to the value which best suits your setup. The S-METER at the bottom of the screen can be used for this purpose. This meter indicates the audio signal strength being sampled at the input to the soundcard. I have found that an S-meter reading of around 10 when sampling receiver hiss (no RF signal and with SQUELCH open) provides ample signal for decoding ACARS transmissions. 8. Wait for ACARS transmissions to occur. Decoded transmissions will be displayed on the screen and logged to the files KRACARS.RAW and KRACARS.LOG (or YYYYMMDD.RAW and YYYYMMDD.LOG if -d was specified) in the current directory as described in the OPERATION section. 9. To quit KRACARS, press a key on the keyboard. KRACARS will perform an orderly shutdown sequence (which may take a few seconds) and return you to the DOS prompt. OPERATION: ---------- Once KRACARS is up and running, it will display all ACARS messages on the screen in raw format and will write these messages into the raw output file. Non-printables (ASCII 0 to 31 & 127) will be expanded as below: 0= 1= 2= 3= 4= 5= 6= 7= 8= 9= 10= 11= 12= 13= 14= 15= 16= 17= 18= 19= 20= 21= 22= 23= 24= 25= 26= 27= 28= 29= 30= 31= 127= Characters received with parity errors will be displayed in red while those received without error are displayed in white. Raw ACARS data is then checked to determine if the message data can be interpreted correctly. If so the message will be redisplayed with message headers otherwise a failure code will be displayed. The failure codes for the current software release are as follows: 1= Problem with message preamble * 2= Problem with mode, address, label and block id (if present) 3= [unimplemented failure code] 4= Parity error with marker when block id is present 5= Problem with location or presence of marker 6= Problem with sequence number or flight number 7= Parity error in message text 8= Problem with or marker An example of a raw and interpreted ACARS message is shown below: [23/06/1997 21:57:55] *U.C-GDSU4P0008AC0859Q119A124U2//E [23/06/1997 21:57] ACARS mode: U Aircraft reg: .C-GDSU Message label: 4P Block id: ? Msg. no: 0008 Flight id: AC0859 Message content:- Q119A124U2// The block id is shown as a question mark if this field was not present in the message. The message content field is not shown if this field was not present. The GOOD and BAD message counters are incremented appropriately for each message received. IMPROVEMENTS: ------------- Feel free to email me with improvements you would like to see in KRACARS. Note that I'm not promising anything here! 1. There is probably scope for further improving the signal detection algorithm which seems to be susceptable to noisy signals. I would be interested to hear from users who have made receive performance comparisons between KRACARS and some of the other commercial ACARS decoders. 2. KRACARS does not perform Block Sequence Checking on the received ACARS data (only parity checking is performed). This may be added to a later release. 3. The user interface is currently limited to 'press any key to exit'. 4. The addition of mixer controls would be a handy feature. Currently the user is required to quit KRACARS and invoke a soundcard mixer utility to adjust the soundcard's input level control. 5. KRACARS requires a soundcard which can support a sample rate of 21739 Hz. This is due to the method used to detect the 1200/2400Hz tones present in ACARS transmission. It should however be possible to use more advanced techniques (such as FFT) to extract the tones from the sampled signal, allowing the use of slower sample rates and Sound Blaster 1.5 & 2 (and compatible) soundcards. 6. Further code optimisations - although this seems to be not necessary. 7. More intelligent decoding of ACARS messages. Removing duplicated messages. On screen summary of aircraft registrations logged. RELEASE HISTORY: ---------------- v1.0b - 24 June 1997: Initial release of KRACARS v1.1b - 18 August 1997: Fixed DMA buffer allocation bug which caused unreliable operation and in some cases machine crashes. Added -d -o -a command line parameters. KRACARS will now append to RAW and LOG files by default (-o option overwrites). Added DACARS compatibility to file logging via -a option. Added date derived filenames feature for log files via the -d option. Reduced sample rate from 22050 to 21739 Hz to improve tone detection algorithm. Fixed bug which caused the block id field to be displayed incorrectly. Changed the way the signal level is reported on the status line. A digital display replaces the analogue level meter. Reduced the number of samples used to calculate the signal level by a factor of 16. This should reduce the amount of CPU usage required for KRACARS. Corrected bug which caused the message 'Error: Blaster variable is not set' to disappear before the user could see it. v1.2 - 25 August 1997: Improved signal detection algorithm significantly. The algorithm requires more CPU than before, but seems to give much better decoding performance. Added code to allow KRACARS to multi-task more efficiently when being used from Win95. ACKNOWLEDGEMENTS: ----------------- Development of KRACARS would not have been possible without the kind assistance of the following people (please send me an email if I've missed you out): Robert Evans Edward Flynn Bart Hoekstra Michael Hooker Frank Mackowick and off course all you testers out there! In addition KRACARS contains timer routines placed in the public domain by the following people: David Kirschbaum Dean Pentcheff Fred Smith -- Well folks, have fun experimenting and keep those emails coming in :) Regards, Khalid Rafiq.