Twitter Follow Button

Monday, 25 February 2013

An introduction to the Rivet Trigger feature

The recently released build 54 of Rivet (which can be downloaded for free from here) allows the user to add , edit and delete Triggers from within the program. Previously users had to manually edit a XML file using a text editor which I realise isn't easy if you don't have any experience with that sort of thing. Since using Triggers is now within anyone's grasp I thought I would write a little step by step tutorial on how to use it.

 Firstly I had better explain what Triggers are. Rivet has a mode called FSK (Raw) which is intended for users who wish to investigate unknown or little known FSK modes. When selected and after the correct baud rate and shift have been set Rivet displays what the station is transmitting as binary. This is useful when you are initially investigating a mode but soon the amount of data becomes rather overwhelming. To make this mode more useful one of Rivet's users suggested a feature we decided to call a Trigger. Now a Trigger is nothing more than a binary sequence which Rivet stores in its memory and constantly compares with incoming raw FSK data. When the incoming data matches the binary sequence in the trigger then the program does something where the something depends on the type of trigger. So far there are three types of trigger ..


  • Start trigger. With this type of trigger Rivet displays nothing until it receives the sequence of data defined in the start trigger. At which point the program displays the name of the trigger that has been activated and then displays all incoming data.
  • End trigger. When Rivet matches the sequence of data in this type of trigger with the incoming data it displays the name of the trigger and then stops displaying incoming data.
  • Grab trigger. With this type of Trigger when Rivet matches the incoming data with the trigger sequence then it displays the name of the Trigger , the previous backward grab number of bits (a number defined by the user) which were transmitted before the trigger sequence and the forward grab  number of bits (which again has been defined by the user) which follow the trigger sequence. This type of trigger is very useful for packets of data where the synchronisation sequence is in the middle of the packet. 

 So that is what triggers are now let me show you how to use them. For this example we will have a look at a 75 baud 850 Hz shift synchronous FSK signal using KG-84 encryption most likely sent by the armed forces of a NATO member country. These can be found all over the HF bands but if you want to a recording to use with Rivet then one can be downloaded from here.

 To use it start up Rivet then select Raw (FSK) as the decoder mode ..


Next from the Options menu click on the Baudot & FSK Options item. Now select the options "75 Baud" and "850 Hz" as you can see below ..


(Ignore the Stop Bits section which doesn't apply here). Now if you were to load the KG-84 sound sample all you would see is a lot of a binary data. Now it is common knowledge that KG-84 crypto systems use the following binary sequence for synchronisation ..

1111101111001110101100001011100011011010010001001100101010000001

So what we shall do is make this sequence so it is a Rivet start trigger. To do this click on the Triggers menu followed by the "Add , Edit or Delete a Trigger" item. Once you do that then this dialog box will appear ..


Now click on the "Add a new Trigger" button at which point you will see another dialog box which you need to fill in to look like this ..


(you can cut and paste the binary value from this blog post rather than typing it in yourself). After that click on the OK button in this dialog box followed by the OK button in the Modify Triggers dialog box. Once you have done that the program will return to the main screen and automatically save the trigger to your hard disk.

 Next you need to enable the new Trigger. Click on the Triggers menu and you will see the name of your new trigger with a radio button next to it. Click on this to enable the trigger as you see below ..


 With that all done either tune into a KG-84 transmission or load the recording I mentioned earlier. When you do that you will see something like this ..


 You can see from the words "KG-84 Sync" in blue (this triggers name) that the trigger activated several times. The display shows the trigger sequence followed by the data transmitted afterwards. Now that's all well but the display is cluttered with the alternating bits that are transmitted between the messages. It would be better get rid of those. We can do this by setting the alternating sequence of bits ..

1010101010101010

as an end trigger. So when Rivet detects this sequence it stops displaying decoded data until another start trigger sequence is received. To add this trigger click on the Trigger menu then again on the "Add , Edit or Delete a Trigger" item , then on the "Add a New Trigger Button" and fill in the dialog box that appears in the following way ..


Click once again on both OK buttons and then enable the new trigger in the following way ..


Now if you try to decode a KG-84 recording or live transmission you will see something looking like this ..


Both types of triggers can be seen (in blue text) when activated and the KG-84 messages (or blocks of a message) are clearly defined. If you can't be bothered entering these triggers yourself then you can download an existing triggers file from here. Simply put it in the same folder as Rivet and then restart Rivet to use it.

OK that ends this first blog post. I hope to add more posts that act as tutorials on certain Rivet and DMRDecode features as time allows.

Ian