Skip to the content
PCBKitNew board
2 layers68.6 × 53.3 mmKVLShield, the printed circuit board in 3D

Quick test to see feasibility to downgrade the KFDTool GUI to .NET 4.0

Size
68.6 × 53.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
134
Nets
41
Pads
199
Tracks, vias
164, 11
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
12 Apr 2023
Updated
12 Apr 2023

Overview

KVLShield is an open-source printed circuit board by gatekeep, from the gatekeep/KFDToolSW_NET4.0 repository on GitHub, published under the MIT licence. It is a 2-layer board of 68.6 × 53.3 mm with 134 parts on 41 nets, routed with 164 tracks and 11 vias.

It is built around the MMBT3904LT1G. Its parts include 12 resistors, 11 connectors, 5 diodes, 4 switches and 2 transistors.

Main components

1

README

README.md

KFD-AVR

A fork of the amazing KFDTool software for an Arduino, plus schematics and board files for a shield.

Completed shields can be purchased from the online store

Note: You must use the build of the KFDTool software attached to this GitHub repo in order for your homebrew adapter to work. The stock KFDTool software will not find your Arduino.

Currently, the following boards have been tested and confirmed to work:

  • Arduino Uno (and clones)
  • Arduino Uno R3 (and clones)
  • Arduino Mega 2560 (and clones)

The following boards should work, however have not been tested:

  • Arduino Leonardo (and clones)
  • Arduino Pro Micro (and clones)
  • Arduino Nano (and clones)
  • Basically anything using an ATMega328p, 2560, 32u4, or 16u2

The following boards have been reported to work with minor modifications:

  • LGT8F328P - need to adjust frequency and remove all of the EEPROM references

Further testing and problem reporting by the community is encouraged to further improve compatibility with other devices.

Setup/Installation

Setup consists of three parts.

  1. Hardware Setup
  2. Firmware Flashing
  3. Software Setup

Hardware Setup

The hardware for the KFD-AVR fork is very simple. You can either purchase a KFDShield from the online store, or build your own circuit on a breadboard. The bare minimum you need to get going is this:

schematic

Where PIN3 is Arduino pin 3, PIN5 is Arduino pin 5, DATA is the radio data line, SNS, is the radio sense line, and GND is the radio ground line. VCC is 5 volts (make sure you are using a 5 volt tolerant board).

If you are using a shield, on the TRS connector, tip is data, ring is sense, and shield is ground.

Firmware Flashing

Head to the Releases page and download both the Firmware and Software zips from the latest version. Save the software for later. Unzip Firmware, and open the kfd-avr.ino file in the Arduino IDE, and select your board type and COM port from the Tools menu. If you are using a board that is not explicitly supported, or DIYing your own rather than using a shield, you should confirm that all options in the hal.h file are correct - namely, CPU speed and data/LED pins. Once you are done, hit upload.

Software Setup

The software distributed with the KFD-AVR release is "flat pack", meaning there is no installer supplied - all you need to do to run the software is unzip the Software zip and run the KFDToolGui.exe file. You may see an "Error - timeout while waiting for data" when first opening the software. This is completely normal, especially if you have many COM ports on your system. The warning will be suppressed in a future release. Select the COM port corresponding to your Arduino, and you should see information populate in the bottom bar of the screen indicating that the KFDTool software is connecting to your Arduino.

In order to validate that every part of the chain - hardware, firmware, and software - is working, go to the Utility - Adapter Self Test menu, and click "Detect MR". This will send a signal to your radio asking it to reply and confirm it is there. If you get a success message, congrats! You are ready to load keys.

Original Readme:

Open Source P25 Key Fill Device

Compliant with P25 standards (TIA-102.AACD-A)

Purchase Hardware: online store

Download Software: latest release

Release Notifications: subscribe

Demonstration: video

Software Manual: view

Security Considerations: view

Features

Key Fill Device (KFD)

The KFDtool software supports KFD features through the KFDtool hardware adapter (TWI/3WI/Three Wire Interface), as well as through a IP (UDP) connection (DLI/Data Link Independent interface).

Keys and groups of keys can be saved to an AES-256 encrypted key container file, which can then be selected and loaded into a target device in one operation.

Supported Manual Rekeying Features (TIA-102.AACD-A)

  • 2.3.1 Keyload
  • 2.3.2 Key Erase
  • 2.3.3 Erase All Keys
  • 2.3.4 View Key Info
  • 2.3.5 View Individual RSI
  • 2.3.6 Load Individual RSI
  • 2.3.7 View KMF RSI
  • 2.3.8 Load KMF RSI
  • 2.3.9 View MNP
  • 2.3.10 Load MNP
  • 2.3.11 View Keyset Info
  • 2.3.12 Activate Keyset

Motorola refers to the P25 standard 3 wire interface (3WI) keyload protocol as ASTRO 25 mode or CKR mode.

The legacy Motorola proprietary keyloading formats SECURENET and ASN (Advanced SECURENET) are NOT supported by KFDtool. PID mode is also used to refer to ASN mode.

Key validators/generators are available for the following algorithms:

  • AES-256 (Algorithm ID 0x84)
  • DES-OFB (Algorithm ID 0x81)
  • DES-XL (Algorithm ID 0x9F)
  • ADP/RC4 (Algorithm ID 0xAA)

Mobile Radio (MR) Emulator

The KFDtool software only supports MR Emulator features through the KFDtool hardware adapter (TWI/3WI/Three Wire Interface) at this time.

This mode allows another keyloader to be connected to the KFDtool, and the keys retrieved.

Supported Manual Rekeying Features (TIA-102.AACD-A)

  • 2.3.1 Keyload

Radio Compatibility

Any statements of compatibility do not imply endorsement by the vendor. Testing has not been performed by the vendor themselves.

A detailed list of compatible radios and adapters is available here.

Radios that are compatible with Motorola KVL3000/KVL3000+/KVL4000/KVL5000 keyloaders in ASTRO 25 mode should be compatible with KFDtool.

Keyloading cables made for other radios with MX (Motorola KVL) connectors can be modified by soldering an AC101 or AC102 Hirose pigtail in parallel with the MX connector according to these instructions.

Operations encapsulated with encryption (commonly referred to as FIPS mode) are not supported at this time for either the KFD or MR emulation modes.

Hardware

Assembled and tested KFDtool hardware is available from me directly. I can ship internationally. Please visit the online store to place an order.

Proceeds from hardware sales enables me to further develop the software.

Part NumberDescription
KFD100Single Hirose port USB key fill device (includes 1 m / 3 ft USB A to USB B cable)
AC1006 pin male plug Hirose to 6 pin male plug Hirose cable (0.5 m / 1.5 ft)
AC1016 pin male plug Hirose pigtail for custom cables (0.5 m / 1.5 ft)
AC1026 pin female jack Hirose pigtail for custom cables (0.5 m / 1.5 ft)
AC103Motorola R2670 compatible adapter (0.15 m / 6 in)
AC104Kenwood KPG-115 compatible adapter (0.15 m / 6 in)
AC1054 way female jack passive Hirose splitter
AC106Kenwood KPG-93 compatible adapter (0.15 m / 6 in)
AC107Motorola XTS4000 compatible adapter (0.15 m / 6 in)
AC108Aeroflex/IFR 2975 compatible adapter (0.15 m / 6 in)
AC109Harris XG-100P/XL-150P/XL-185P/XL-200P compatible adapter

OS Compatibility

  • KFDtool software supports 32-bit and 64-bit Windows 7, Windows 8.1, and Windows 10

  • The .NET Framework 4.7.2 or later compatible must be installed

  • The use of a virtual machine with USB passthrough is NOT supported at this time

    • Changing the USB controller from USB 2.0 mode to USB 3.0 mode has been reported to resolve the issue
    • Do not attempt to update the adapter firmware or initialize an adapter using USB passthrough

Documentation

Contributors

License / Legal

KFDtool software, firmware, and hardware is distributed under the MIT License (see LICENSE.txt).

KFDtool is a trademark of Florida Computer and Networking, Inc.

All product names, trademarks, registered trademarks, logos, and brands are property of their respective owners. All company, product, and service names used are for identification purposes only. Use of these names, trademarks, logos, and brands does not imply endorsement.

Note about hardware:

I request that no one else manufactures identical or compatible units and sells them to others while I am still doing so - I have put quite a bit of my own money into developing this hardware. I am totally fine with someone making a unit for themselves or a couple of extras to give to their friends, just that they don't charge for them. Proceeds from hardware sales enables me to further develop the software.

Included open-source components:

Software (see doc/SW_LICENSE.txt):

Firmware (see doc/FW_LICENSE.txt):

  • Texas Instruments - BSD 3 Clause License

Parts

134
QtyValueFootprintReferences
100SolderWire-0.5sqmm_1x01_D0.9mm_OD2.1mmConnector_Wire:SolderWire-0.5sqmm_1x01_D0.9mm_OD2.1mm , , , , , , , , , , , , , , , +84
510KResistor_SMD:R_0603_1608MetricR1, R4, R10, R11, R12
4CONN_01X01Socket_Arduino_Uno:Arduino_1pinP5, P6, P7, P8
3470Resistor_SMD:R_0603_1608MetricR7, R8, R9
21KResistor_SMD:R_0603_1608MetricR3, R6
2220Resistor_SMD:R_0603_1608MetricR2, R5
2D_ZenerDiode_SMD:D_SOD-323FD1, D2
2MMBT3904LT1GPackage_TO_SOT_SMD:SOT-23Q1, Q2
1ACTLED_SMD:LED_0603_1608MetricD4
1AnalogSocket_Arduino_Uno:Socket_Strip_Arduino_1x06P2
1DigitalSocket_Arduino_Uno:Socket_Strip_Arduino_1x08P4
1DigitalSocket_Arduino_Uno:Socket_Strip_Arduino_1x10P3
1DownButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW3
1EnterButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW4
1MR_BlockConnector_Phoenix_MC:PhoenixContact_MC_1,5_3-G-3.5_1x03_P3.50mm_HorizontalJ1
1MR_JackConnector_Audio:Jack_3.5mm_PJ320D_HorizontalJ3
1OLEDConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ2
1PWRLED_SMD:LED_0603_1608MetricD3
1PowerSocket_Arduino_Uno:Socket_Strip_Arduino_1x08P1
1SNSLED_SMD:LED_0603_1608MetricD5
1SW_PushButton_Switch_SMD:SW_Push_1P1T_NO_6x6mm_H9.5mmSW1
1UpButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW2

Questions

How big is the KVLShield PCB?

It measures 68.6 × 53.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the KVLShield use?

134 parts, built around the MMBT3904LT1G. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the KVLShield KiCad files?

From the gatekeep/KFDToolSW_NET4.0 repository on GitHub, at the commit this page was made from: the board is hw/KFDShield/KVLShield.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the KVLShield design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers200.4 × 251.2 mmHypjolin, the printed circuit board in 3D

    Hypjolin

    triglav-modular/Hypjolin

    Cross-modulating ultra-chaos generator

    340 parts45Unlicense
  • 8 layers227.5 × 104 mmCom express-7-baseboard, the printed circuit board in 3D

    Com express-7-baseboard

    antmicro/com-express-7-baseboard

    This project contains open hardware design files for a baseboard supporting COM Express 7 modules. The board breaks-out major communications and peripheral interfaces provided by the standard.

    815 parts12Apache-2.0
  • 6 layers36 × 124 mmOpenDual Reader, the printed circuit board in 3D

    OpenDual Reader

    nuerolynx/embedded-systems-lab

    Arduino UNO R4 WiFi and ESP32 prototypes for access control, automation, displays, monitoring, and Bluetooth audio.

    74 parts4
  • 2 layers65 × 56 mmIGrillRPiSSRCtl rev sE, the printed circuit board in 3D

    IGrillRPiSSRCtl rev sE

    kins-dev/igrill-smoker

    Using the iGrill as a control unit for a DIY smoker

    65 parts3
  • 2 layers45.7 × 46.1 mmSoundboxesp32, the printed circuit board in 3D

    Soundboxesp32

    zarlicho/Qris-soundbox-esp32

    QRIS Soundbox adalah sistem notifikasi pembayaran realtime yang dikembangkan untuk menerima dan memproses notifikasi pembayaran QRIS melalui protokol MQTT.

    43 parts3
  • 4 layers110 × 90 mmURC, the printed circuit board in 3D

    URC

    spikonado/URC

    Universal Robot Controller

    180 parts2CERN-OHL-W-2.0
  • 4 layers86 × 145 mmCopper layers, the printed circuit board in 3D

    Copper layers

    JCastel358/Eltec406mca

    code for industrial automation process

    206 parts1
  • 2 layers150 × 60 mmGPSDOMonitor, the printed circuit board in 3D

    GPSDOMonitor

    sergeyvfx/GPSDOMonitor

    A tiny module which is connecting to a databus of GPSDO modules with the goal to visualize when the PLL is locked, GPS time is stabilized and things like this.

    49 parts1MIT