WB Electronics
Back
Developers
Download

  
Infinity USB Unlimited SDK
August 24, 2016
(v2.53)
Complete archive including documentation and code-samples for the Infinity USB Unlimited.

Note: SDK version 2.53 requires firmware 1.05 or higher.

  
Infinity USB Smart SDK
August 24, 2016
(v1.02)
Complete archive including documentation and code-samples for the Infinity USB Smart.

  
WB-Loader AES
September 11, 2012
(v1.13)
Loader for ATMega8515+24C64 based smartcards, for secure external data storage.

Encrypts memory contents with a 256bit key.

See readme.txt in zip-file for documentation.

  
WB-Loader
May 23, 2006
(1.10)
Loaders for PIC and AVR based smartcards, for external eeprom access.

See readme.txt in zip-file for documentation.


Other resources
  Developer forum
For all WB Electronics products.
   
  iuutool
Linux library for Infinity USB Unlimited.
Developing 3rd party solutions
This page will give you, as a 3rd party software developer, a starting point for developing solutions with the Infinity line of Smartcard programmers.
After you have decided which programmer to base your solution on, we offer our support to get your project working, either by mail or preferably through the developer forum.
We would of course like to hear about any ongoing projects, and we're also willing to make hardware freely available for serious developers.


Basics
Developing software for smartcards requires a basic understanding of the underlying technology. All smartcards (except for memory only cards) contain a microcontroller that a host application can communicate with. Some processors are also programmable, which means that new software can be programmed into the code memory, and be executed by the microcontroller.
The way a smartcard communicates with a host application of course depends on the software running in the smartcard, but most smartcard communicates using a simple serial 9600 bps, 8E2 "master/slave" protocol, typically with a very simple hardware interface known as Phoenix or Smartmouse.
A command (one or more bytes) is sent to the smartcard, which then responds within a certain time.

Programming software into the smartcard CPU is different. OS cards uses the same protocol as mentioned above to "install" and execute a user program, while PIC and AVR based (GoldCards, Funcards, Atmega etc.) cards are programmed in a completely different way.

A good starting point for developing a smartcard application, is the loaders provided by WB Electronics, or SOSSE (Simple Operating System for Smartcard Education), at: http://www.mbsks.franken.de/sosse/. The loaders provided by WB Electronics (WBLoader, WBLoaderAES) are royalty-free when used in combination with any smartcard-reader from WB Electronics.

For further info on smartcard technology in general, take a look at the ISO7816 specification.


Choosing a card / programmer
If you wish to be able to communicate with an existing card, the Infinity USB Phoenix, Infinity USB Smart or Infinity USB Unlimited can be used. They all support the Phoenix/Smartmouse modes:

  • Infinity USB Phoenix contains a hardware serial port, and supports 3.58Mhz, 3.68Mhz and 6.00Mhz and both Phoenix and Smartmouse mode.
  • Infinity USB Smart supports 3.58Mhz, 3.68Mhz and 6.00Mhz and both Phoenix and Smartmouse mode. Since it uses a USB only connection, the serial port is created using a software VCP. A firmware module (InfSmartreader) is available for the Infinity USB Smart for supporting DreamBox, Linux and other Linux based-STBs and embedded systems. A DLL-based SDK is available for the Infinity USB Smart for Windows
  • Infinity USB Unlimited supports any frequency from 0,1MHz to over 100MHz, (limited in the SDK to 0,76MHz - 25MHz), and both Phoenix and Smartmouse mode. As with Infinity USB Smart, it uses a USB only connection and a VCP driver to create the serialport.
    Besides the VCP a DLL-based SDK is available.
If you wish to program software into the smartcard CPU, Infinity USB Phoenix, Infinity USB Smart or Infinity USB Unlimited can be used, but for different cards:
  • Infinity USB Phoenix programs most cards based on Atmel AVR or Microchip PIC based CPUs over USB, and programs OS cards thru the hardware serialport based Smartmouse/Phoenix interface.
  • Infinity USB Smart programs OS cards over USB thru the VCP based Smartmouse/Phoenix interface, it programs most cards based on Atmel AVR and supports I2C based cards like SLE-cards.
  • Infinity USB Unlimited programs most cards based on Atmel AVR or Microchip PIC based CPUs over USB, it programs OS cards thru the VCP or SDK based Smartmouse/Phoenix interface and supports I2C based cards like SLE-cards.
The smartcards will typically be preprogrammed in production with software (for instance WBLoader, WBLoaderAES or SOSSE) that communicates with the host application (PC). Being able to communicate with a smartcard thru the Smartmouse/Phoenix interface is therefore enough in most cases.

For most projects and especially those with bundled hardware, we would recommend using the Infinity USB Unlimited. It is very versatile, has its own SDK and for larger project we can supply the programmer in other colors or even with another casing.

Detailed information about each programmer can be found on the product matrix.


Getting started
After a programmer has been chosen for the project, it's time to choose the most suitable smartcard. For data storage applications, the most important factor is the amount of external EEprom available on the card.

WBLoader supports all Funcards (1-7), SilverCard, GreenCard, GreenCard2 and Goldcard. The loader has 2 simple commands for reading and writing blocks of data, but this is actually exactly what is needed in most applications.
The card can then be considered as "plain memory", and all datamanipulation, encrypting/decryption etc. should be done in the host application.

WBLoaderAES supports the ATmega8515 + 24C64 card. This loader also has 2 simple commands for reading and writing blocks of data. As well as a single command to set the 256bit AES encryption key. Encryption/decryption of the blocks of data is performed by the ATmega8515 with the WBLoaderAES.

If you need a more advanced OS, take a look at SOSSE (Simple Operating System for Smartcard Education): http://www.mbsks.franken.de/sosse/.


DreamBox, Linux and other Linux based-STBs
For embedded use on DreamBox and other Linux based STBs, it is recommended to use the Infinity USB Smart or the Infinity USB Unlimited. The Infinity USB Smart supports DreamBox, Linux and other Linux based-STBs through the firmware-module SmartVCP. The SmartVCP also allows for on-the-fly configuring of phoenix/smartmouse mode and frequency directly through the serial port. This interface is described in the Infinity USB Smart SDK. The Infinity USB Unlimited supports a VCP solution on Linux, using the iuu_phoenix module for Linux.

For typical desktop and office applications the Infinity USB Smart is recommended as its form factor makes it easy to operate with just one hand.

OEM projects
If you're working on a project but dont have the resources for making the smartcard integration, please contact us for consultancy services.


Infinity USB Unlimited
Software Development Kit
Includes 4 examples on how to use the SDK:

LED: A very simple LED example that shows how to change the LED, made in Visual C++ 6.0.

Terminal: A more advanced and useful example for experimenting with the smartcard communication, made in Visual Studio .NET (also C++).

Demo_SLE4428: Demonstrates using the I2C card SLE4428 / SLE5528.

Demo_SLE4442: Demonstrates using the I2C card SLE4442 / SLE5542.

Command line parameters
See this link for more info.
Infinity USB Smart
Software Development Kit
Includes examples on how to use the SDK:

WBLoaderAES: Demonstrates writing and reading encrypted data blocks using the WBLoaderAES and the SDK.

Demo_SLE4428: Demonstrates using the I2C card SLE4428 / SLE5528.

Demo_SLE4442: Demonstrates using the I2C card SLE4442 / SLE5542.

Command line parameters
See this link for more info.


Infinity USB Phoenix
Command line parameters
See this link for more info.

Linux based software
"nftytool" includes full source for programming a smartcard.
Downloadable from the download page.

Serial based Smartmouse/Phoenix
See this link for more info.


Infinity USB
Command line parameters
See this link for more info.

Linux based software
"nftytool" includes full source for programming a smartcard.
Downloadable from the download page.
Copyright ©2001-2024 WB Electronics - All rights reserved - Privacy policy