SpringProx Legacy Protocol

Early SpringCard devices in the SpringProx family used to communicate with their host over a serial line, using a proprietary protocol.

Some of the devices in the SpringCore family do implement a subset of this protocol, which helps the implementers do a seamless migration.

Disclaimer

SpringCard does not recommend using the Legacy Protocol with the SpringCore devices. This protocol will eventually be dropped-out in the future.

The SpringCore devices has strong differences with the SpringProx devices which leads to different behavior, different timings, and the availability of a limited subset of the protocol only. Paragraph Differences with the original SpringProx devices below lists the most obvious differences, but this list is not exhaustive.

Reference manual

The documentation of the Legacy Protocol is to be found in PMDE501-DD : SpringProx couplers Developer's Guide.

Configuring the SpringCore device for the Legacy Protocol

Set the Profile configuration register to 01 "CDC (serial emulation), SpringProx Legacy mode only".

If you intend to operate the device through its serial line, set bit 7 "Disable USB" in the USB options configuration register. Otherwise the device will not boot until connected to a USB host.

Differences with the original SpringProx devices

Warning: This list is not exhaustive. Existing applications shall be carefully validated again other the SpringCore device.

Features missing from the SpringCore implementation

  • All commands that gives a direct access to the Micore interface (Read RC Register AB, Write RC Register AB ..) are not supported and have no equivalent.
  • All commands that gives access to the non-volatile memory (Read Configuration Register 58 0E, Write Configuration Register 58 0D).
  • All commands that gives access to the User interface (Set LEDs 58 1E, Set Buzzer 58 1C) or to the devices GPIOs (Set USER 58 1F .., Get USER 58 1F, Get MODE 58 1D) are not supported.
  • LPCD (low power card detection) is not implemented in any SpringCore device.
  • The Mifare Classic cards are not supported by the SpringCore device over the Legacy protocol.
  • The ICODE1 labels are not supported by any SpringCore device.

Features partially available

  • The device's capabilities field (command 50) are fixed to 01006303 (console, dual buffers, binary protocol, ASCII protocol, 115200bps capable, ISO 15693, ISO 14443). The USB interface is not announced in the capabilities field even if it is present, neither the non-volatile memory.
  • The Select RF protocol command (58 0C ..) supports only ISO protocols (ISO/IEC 14443 A and B, ISO/IEC 15693). The application shall use the Find command (60) to look for a card or tag over any other protocol.
  • Only 2 baudrates are supported: 38400bps (default) and 115200bps.

Features implemented differently

  • All Control commands (58 ..) are redirected to the CONTROL class in the Direct protocol. The list of commands and the return codes are therefore different.
  • The Product ID is fixed to "K518" for devices without USB and without network, "H518" for devices with USB and without network, and to "E518" for devices with network.
  • The firmware version exposed by SpringProx API functions (command 4F) is a constant value: "2.99, build 255". This is of course not the actual version of the SpringCore firmware, but the SpringProx API needs this value to run correctly.

Differences in performances and behaviour

  • Even if the SpringCore devices are intrinsically faster than the SpringProx devices, the added overhead of running the Legacy protocol on top of the other logical protocols increases the overall transaction time in most situations.
  • The SpringCore devices feature an internal timer to monitor host activity. To prevent wasting energy, the device will shut down the RF field if the host does not send any command after 3 seconds, where in the same situation a SpringProx device would keep the RF field active forever.