Skip to content
/ ecc508 Public

Library to communicate with the Microchip cryptoauthentication device

License

Notifications You must be signed in to change notification settings

helium/ecc508

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ecc508

Note: the ECC608A or ECC608B is compliant with HIP-19. The other chips in this family: ATSHA204A · ATECC108A · ATECC508A are not compliant with HIP-19.

An OTP library for communicating with the Microchip ATECC608A family of crypto-authentication devices.

Build

$ make

Use

You will need an ECC608A attached to an I2C bus on a board that has I2C enabled, and can run Erlang.

For our most common use we wire up an ECC608A to a Raspberry Pi configured for development and enable I2C using raspi-config.

Also install the Erlang development tools:

$ sudo apt update
$ sudo apt install erlang-nox erlang-dev i2c-tools

Once you've set up your Raspberry Pi and wired up the ECC608A you should be able to see it using i2cdetect

$ i2cdetect -y 1
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

This shows the ECC at address (hex) 60 on bus i2c-1.

For development purposes you can then clone this repository, and start an Erlang shell to communicate with the ecc:

$ git clone http://github.com/helium/ecc508
$ cd ecc508
$ ./rebar3 shell
$ {ok, Pid} = ecc508:start_link().

Then check out the data-sheet linked above and the functions in the eec508 module to see how to access the various functions of the ECC608.