team-orangeBlue/kaikey

Custom firmware for copykey cloners

★ 0Forks 0CGitHub ↗Compare

README

kaikey

Custom firmware for copykey cloners

The firmware aims to produce what is effectively a successor to iKey's Megakey - an emulator for PACS keys with a screen + storage for an unlimited amount of credentials.

WARNING

This is a very badly done sketch. This repository does not have proper licensing and some useful files. It probably won't compile as-is.

The repository does NOT use CubeMX, CubeIDE or any ST tools. It was made with VScode + matching extension.

There is a zip file which has a more or less "functional"-ish copy. It may compile easier.

Present issues

  • There is no known way to properly drive the LF coil to simulate a tag. Software-driven emulation produces very bad spikes (see lfread-004.pm3) in the wave. DMA does not seem to work properly.
  • X100 devices may be unable to emulate 13.56MHz tags, effectively disabling a fair share of the user base from accessing half of the project's potential functionality
  • Display driver is not really as good as I would like it to be
  • Basically no emulator functionality is present

Help out! If you can (re-)implement logic for the LF coil to make it functional, open a pull request. A functional read from the copykey X5 using factory firmware is in lfread_x5_0000000002.pm3.

Supported hardware

  • Keyboard - fully functional
  • LCD - functional but slow
  • LEDs - fully functional
  • USB port - functional but unideal

Unsupported hardware

  • LF coil - no proper way to drive it
  • FM17580 NFC driver - not yet examined
  • battery measurement - not yet examined

Compile

Somehow feed this repo to Visual Studio Code with STM32Cube extensions, compile with cube-cmake for release, upload resulting binary to device via SWD.

Upload to device

The CopyKey board has 5 pins exposed on its back near the battery compartment - they are (from top to bottom): NRST, SWD-CLK, SWD-IO, unknown, GND (Vss). Any SWD probe can be used to connect to the pins and upload the resulting ELF into the device with something like OpenOCD.

Contributors

team-orangeBlue

Issues