turbovectorz wrote:Hi ALL!
As a hobby, I like making homebrew scanners. I was wondering if you can do a raw L2 data dump from an R8000 or IFR 3920(nice!). If so, are there L3 messages can you extract from that?
TVZ
Yes, the 39XX will dump the data as an XML stream, with both the raw symbol level data, and the parsed-out protocol data - here's an example:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE P25_log_data SYSTEM "p25_log.dtd">
<P25_log_data>
<TSBK timestamp="00000000" direction="rx" timeslot="0" type="osp" phys_channel="1">80 00 22 33 44 55 66 77 88 99 97 AC </TSBK>
<Trunking_message timestamp="00000000" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="0" mfid="0"/>
<GRP_V_CH_GRANT priority="2" Reserved="0" full_duplex="1" emergency="0" protected_flag="0" packet_mode="0">
<Service_options/>
<Channel id="3" number="836"/>
<Group_address>5566</Group_address>
<Source_address>778899</Source_address>
</GRP_V_CH_GRANT>
</Trunking_message>
<TSBK timestamp="00000001" direction="rx" timeslot="0" type="osp" phys_channel="1">81 00 22 33 44 55 66 77 88 99 F8 E9 </TSBK>
<Trunking_message timestamp="00000001" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="1" mfid="0"/>
</Trunking_message>
<TSBK timestamp="00000002" direction="rx" timeslot="0" type="osp" phys_channel="1">82 00 33 44 55 66 77 88 99 11 91 CE </TSBK>
<Trunking_message timestamp="00000002" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="2" mfid="0"/>
<GRP_V_CH_GRANT_UPDT>
<Channel id="3" number="836"/>
<Group_address>5566</Group_address>
<Channel id="7" number="1928"/>
<Group_address>9911</Group_address>
</GRP_V_CH_GRANT_UPDT>
</Trunking_message>
<TSBK timestamp="00000003" direction="rx" timeslot="0" type="osp" phys_channel="1">83 00 44 55 66 77 88 99 11 22 E2 13 </TSBK>
<Trunking_message timestamp="00000003" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="3" mfid="0"/>
<GRP_V_CH_GRANT_UPDT_EXP priority="4" Reserved="0" full_duplex="0" emergency="0" protected_flag="1" packet_mode="0">
<Service_options/>
<Reserved>55 </Reserved>
<Channel id="6" number="1655"/>
<Channel id="8" number="2201"/>
<Group_address>1122</Group_address>
</GRP_V_CH_GRANT_UPDT_EXP>
</Trunking_message>
<TSBK timestamp="00000004" direction="rx" timeslot="0" type="osp" phys_channel="1">84 00 55 66 77 88 99 11 22 33 AD 34 </TSBK>
<Trunking_message timestamp="00000004" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="4" mfid="0"/>
<UU_V_CH_GRANT>
<Channel id="5" number="1382"/>
<Target_address>778899</Target_address>
<Source_address>112233</Source_address>
</UU_V_CH_GRANT>
</Trunking_message>
<TSBK timestamp="00000005" direction="rx" timeslot="0" type="osp" phys_channel="1">85 00 66 77 88 99 11 22 33 44 C3 4A </TSBK>
<Trunking_message timestamp="00000005" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="5" mfid="0"/>
<UU_ANS_REQ priority="6" Reserved="0" full_duplex="1" emergency="0" protected_flag="1" packet_mode="0">
<Service_options/>
<Reserved>77 </Reserved>
<Target_address>889911</Target_address>
<Source_ID>223344</Source_ID>
</UU_ANS_REQ>
</Trunking_message>
<TSBK timestamp="00000006" direction="rx" timeslot="0" type="osp" phys_channel="1">86 00 77 88 99 11 22 33 44 55 82 F2 </TSBK>
<Trunking_message timestamp="00000006" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="6" mfid="0"/>
<UU_V_CH_GRANT_UPDT>
<Channel id="7" number="1928"/>
<Target_address>991122</Target_address>
<Source_address>334455</Source_address>
</UU_V_CH_GRANT_UPDT>
</Trunking_message>
<TSBK timestamp="00000007" direction="rx" timeslot="0" type="osp" phys_channel="1">87 00 88 99 11 22 33 44 55 66 CB 45 </TSBK>
<Trunking_message timestamp="00000007" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="7" mfid="0"/>
</Trunking_message>
<TSBK timestamp="00000008" direction="rx" timeslot="0" type="osp" phys_channel="1">88 00 99 11 22 33 44 55 66 77 A5 7D </TSBK>
<Trunking_message timestamp="00000008" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="8" mfid="0"/>
<TELE_INT_CH_GRANT priority="1" Reserved="1" full_duplex="0" emergency="1" protected_flag="0" packet_mode="1">
<Service_options/>
<Channel id="1" number="290"/>
<Call_Timer>3344</Call_Timer>
<Source_address>556677</Source_address>
</TELE_INT_CH_GRANT>
</Trunking_message>
<TSBK timestamp="00000009" direction="rx" timeslot="0" type="osp" phys_channel="1">89 00 22 33 44 55 66 77 88 99 B2 A2 </TSBK>
<Trunking_message timestamp="00000009" direction="rx" timeslot="0" type="osp" phys_channel="1">
<P25_TSBK_header last_block="1" protected_flag="0" opcode="9" mfid="0"/>
<TELE_INT_CH_GRANT_UPDT priority="2" Reserved="0" full_duplex="1" emergency="0" protected_flag="0" packet_mode="0">
<Service_options/>
<Channel id="3" number="836"/>
<Call_Timer>5566</Call_Timer>
<Source_address>778899</Source_address>
</TELE_INT_CH_GRANT_UPDT>
</Trunking_message>
And so on and so on. In P25 base radio (repeater) simulation you see both the outbound data we are generating and the inbound data we are receiving from the UUT, on both the control channel and the traffic channel. For radio simulator, you can see "what the radio saw" - the control channel data when the radio simulator in idle, the traffic channel data when active. In monitor mode, you can monitor multiple channels at once (within the IF limits of the instrument).