Click here to download the latest software
What is DeltaPRG?This program is a quick little utility I created that allows very flexbile programming of the GE/Ericsson Delta radio's from Windows using GE's serial RIB, the TQ-3330. I found GE's DOS program to be problematic on some computers and cumbersome to use when performing simple tasks.
Despite the fact that I took the time to design a RIB and software (found elsewhere on this website) that allows an easy interface to the PC's parallel port, this scheme would not work on computers running NT/2000/XP, and since that represents my primary desktop environment, I had some additional motivation.
NOTE: THIS WINDOWS SOFTWARE IS NOT COMPATIBLE WITH THE RIB THAT I DESIGNED. IT IS ONLY COMPATIBLE WITH THE TQ-3330. HOWEVER THIS PROGRAM CAN BE USED TO GENERATE RADIO DATA FILES THAT ARE COMPATIBLE WITH MY RIB AND ASSOCIATED DOS SOFTWARE.
Download the software to a temporary directory and unZip it with your favorite archive tool. Run the SETUP.EXE file as you would normally expect to do, and let the installer do its thing.
If you don't like the program, remove it from Window's control panel as you would any other undesired piece of software.
Yeah, but how the #%!@ do I use it?
Copy this channel to ALL othersA somewhat hidden feature is that you can click on the channel number shown on the left side of the screen to copy that channel's parameters to ALL the other channels.
Tx/Rx Frequency.Clearly this is the desired frequency for each channel. When you exit the data entry box, the field will be updated with the nearest actual frequency available.
PLL Ref.This allows you to manually select the PLL reference frequency bits. The appropriate selection will vary for each radio type and the default should be set correctly when you select a new radio type from the drop down box at the bottom of the screen. The PLL reference values in the drop down boxes are computed values and will change if you edit the Reference Frequency field.
Changing this selection will cause the Tx and Rx frequencies to be updated to show the nearest actual frequency available.
Tx/RX CG/DCGFirst, if you don't want to enable a tone on a given channel, then simply delete the digits within the box.
To enable a tone or code on a channel simply enter the desired Channel Guard tone frequency, or Digital Channel Guard code value. Entries which contain a decimal point are treated as CG tones, so if you only enter "100" in the field it will be treated as a Digital Channel Guard code rather than a tone frequency.
When CG tone values are entered, the actual value that the radio will use will replace the value you just entered in the entry field. Generally what you will see is that the actual tone values will vary by a few tenths of a Hertz. There is no difference in the actual values written to the radio between this software and any other programming software you may have used in the past. The only difference here is that this software shows you the "Actual" values rather than the nearest common value.
When DCG codes are entered, a search for a common code equivilant will be performed when you exit the data entry field. For example if you enter "057", the code equivilent "172" will replace what you just entered. If you are not familiar with how the 23 bit Golay encoded DCG code works, let's just say that there is more than one code that produces the same results for most of the valid codes. I chose to normalize the displayed values to the primary codes listed in GE's documentation.
If the entered code cannot be normalized to a different code, and is not among the list of common codes, then that code will be used directly. No checking is enforced on valid vs. invalid codes.
The rest of this discussion on DCG may bore some of you and interest others. You've been warned...
Normally the 3 octal digits used to represent the DCG code would require 9 bits of EEPROM memory to store. GE's firmware authors correctly recognized that 99% of the valid DCG codes can be represented using only 8 bits if a code equivilant is chosen that doesn't require the most significant bit of the most significant octet to be set to a "1".
If you plan on reading a radio with the GE or Niles software its important to note that the DCG code value displayed in those respective programs may display something different than what you'd expect to see including all zeros. Why? Well it has to do with how an alternate code is chosen. In GE's case 9 times out of 10 they chose the code with the lowest binary value, even if the primary code itself could have been correctly stored, but this doesn't always appear to be the case. After some experimentation with different codes, my best guess is that GE's software is using a lookup table, and that the relationship between what is displayed to the user and what is stored in the EEPROM was somewhat arbitrarily determined.
Because it yields a more flexible solution, my software uses an algorithmic approach rather than lookup tables, and because I wasn't able to come up with a 100% match between GE's somewhat arbitrary relationship, the result is that the radio will be programmed correctly, but other software may not lead you to that conclusion. If you program the radio using GE's software, my approach will always display the correct code regardless of which code variant GE chose to use.
Another important aspect to point out is that GE's programming software, depending on the band split, stores the DCG code using a code equivlant of the logically inverted DCG code. Note that this is not simply the octal code value inverted, but representative of the entire 23bit Golay encoded word being inverted. The Niles software does not appear to take this into account and thus will display numbers that don't make much sense to the end user. It logically follows that radio's programmed with the Niles software would result in non-obvious code values within the GE software (GE tends to display all zero's if it doesn't understand).
So, with flexibility in mind, I've provided the option to invert the Tx and Rx DCG codes. That option is selected at the bottom of the screen simply by checking or unchecking the listed options. Entries in the INI file control the default settings for these items based on the bandsplit of the radio.
As I said earlier, 99% of the valid DCG codes can be represented using only 8 bits. The only GE published code that is the exception is "731". However they did make provisions for other codes as well including "645" (Niles will display as "526") which many Motorola radios are capable of. Six other codes (446, 452, 454, 455, 462, and 523) are also available as codes that use the special mechanism GE uses to represent codes that would normally require 9 bits to properly represent.
STEIf this checkbox is checked, then the Squelch Tail Eliminator, is enabled for that channel.
CCTThis series of drop down boxes allows you to set the transmit timeout timer for each channel.
TX/RX W/X Y/Z
These checkbox's allow you to manually set the synthesizer range bits for SX series radios. At the present time there is no automatic setting of these bits, so you need to make sure you program these bits correctly yourself.
This drop down box allows you to select the desired radio model. Radio models are defined in the deltaprg.ini settings file which can be modified as desired.
This selection is saved to the registry.
This simply allows you to change the multiplication value realized after the VCO. Normal values range from 1-3.
Changing this value will cause the frequency data entered above to change.
IF Freq.This should be set to the IF frequency of the particular radio model. Value is in MHz.
Changing this value will cause the frequency data entered above to change.
Select either high or low side injection.
Changing the setting will update the frequency data entered above and can be used to show what the image frequency of a given channel would be.
This should be set to the reference oscillator value for the particular radio model. Value is in MHz.
Changing this value will update the frequency data entered above as well as showing the new PLL reference frequencies in the PLL Ref. drop down boxes.
Tx/Rx DCG InvertedAs mentioned in earlier, these check box selections simply select whether or not the Digital Channel Guard code should be stored as an inverted value. If the checkbox is checked, then the DCG code will be treated as an inverted code.
Read/Write Radio Buttons
Cause the radio to be read from or written to. A pop up box shows the various stages of communications with the Serial RIB.
File/OpenAllows the user to read stored EEPROM image files. Data is stored as ASCII hex nibbles in the same way that the Niles software stores its data.
No attempt is made to determine the appropriate Band setting so before opening a new file, the user should select the correct radio first.
File/SaveAllows the user to save the current EEPROM image.
This selection is saved to the registry.
Options/Clear memory on new band selectThis menu item can be toggled on and off and is saved to the registry. If selected, it will cause each new band split selection to blank the data on the form, and reset the reference divisor to the approriate default for that radio's bandsplit.
Options/ConfigurationThis simply opens up the Windows Notepad with the text based INI file associated with the program. When Notepad is exited, new settings values are re-read from the INI file.
I've commented the INI file as well as I think I needed to. If there are sections in the file that you don't understand, then you probably shouldn't make any changes in those areas. If you've got specific questions, please ask.
The one thing that you may need to edit is the serial Communications port setting. I've placed this at the top so that its easy to see. Simply set the CommPort parameter to the numeric value corresponding to the serial port the GE RIB is connected to.
Options/DebugIf selected, causes a debug.log file to be written with information about the operation of the software.
Open issues/TODO list...
- Add user option to "snap" CTCSS tones to commonly known values and hide the fact that the radio will be a few tenths of a Hertz (CPS) off.
- Presently the user must select W/X Y/Z synthesizer range bits manually, this should be automated.
- No printing mechanism is offered
- There is no enforcement of range limits for the frequency values entered by the user.
- The frequency display may indicate strange values on unprogrammed channels, depends on what software was last used to program the radio.
- The frequency display may show negative values under some circumstances particularly if the image frequency would be less than DC (so to speak).
- It will not slice bread, nor butter toast.
- Only 16 channels are supported, maybe I should add something to allow toggling between the two 16 channel banks...
- There is no built in help. Does it really need any?
- Bugs? Yeah probably. If you find something, let me know.
Version 1.0.13 - 5-December-2002 - First Public Release
Version 1.0.16 - 7-December-2002
Version 1.0.20 - 10-December-2002
- Cosmetic - Don't display frequency if channel was blanked using all ones.
- Cosmetic - Don't display CG/DCG information if Nibble 6&7 are zero and 0.0 is also zero.
- Cosmetic - Don't display DCG information if Nibble 6&7 are either all zeros or all ones.
- Corrected File Open/Save 'show all Delta file types' extension from *.D?? to *.D*
- Added parameter to INI file to allow a default file extension type per radio definition
- Added parameter's to INI file to allow selection of default DCG inversion for Tx and Rx on a per radio definition basis
- Added an additional radio type to differentiate between UHF SX splits to account for differences in default DCG inversion needs
- Removed TX/RX DCG inversion menu items and registery entries, added inversion check boxes at the bottom of the form for these items.
- Toggling Tx/RX DCG inversion values will now update the screen when toggled
- Removed code that was reading Mode B EEPROM. It is not needed right now, and some older radio's were not tolerant of back to back reads of both EEPROM banks.
- Clarify webpage discussion on DCG operation.
Version 1.0.21 - 09-August-2003
- Fixed bug in radio read function that caused a failed read to be reported if the record checksum was exactly zero.
- Added code to disable read/write buttons during read/write operations.
- Added item in option menu to allow user to select whether or not the channel data should be blanked when a new band split is selected.
- Added debug log function to aid with troubleshooting problems.
Version 1.1.22 - 08-June-2004
- All text within a data entry box is now selected when it receive's focus
- Addressed a boundry condition within the CG tone encoding routines. A combination of rounding errors, and the way that the tones were chosen led to less than optimal choices of some tones. Tone values will now be picked for the closest tone, which is not exactly how GE's software worked. Thus, you will notice some differences between the tone codes chosen between this software and GE's, which didn't always make the best choices.
- Changed code such that the reference divisor is only reset to the default value for a given band split when a new radio type is chosen when the "Clear Channel on New Band Select" option is in effect.
- Added form and program icons.
- Added reference table and UHF radio defintion for 10MHz reference oscillator.
- Replaced "Bad Radio ID" popup with more information regarding radio firmware and software revision
- Added old Delta-S EEPROM format support
- Added display label at bottom of screen to indicate current EEPROM format in use
- Added reference table for Delta-S, along with additional Delta-S (S CPU) radio definitions to the INI file.
If you find this software useful, how about making a donation to offset my costs?
Click the button below to make an online donation now!
Contact me with questions and comments