Skip to content
Browse files

Update for production version

Reconfigured hardware directory to reflect production version hardware
  • Loading branch information...
MarkAShaw authored and fhunleth committed Mar 29, 2019
1 parent 51c7b42 commit 628d3889060de032b40f22da151e01a999d406f1
@@ -9,7 +9,7 @@ used for authenticating devices with NervesHub and other cloud services. At a
high level, it is simple HSM that protects one private key by requiring all
operations on that key to occur inside chip. The project provides access to the
chip from Elixir and makes configuration decisions to make working with the
device easier. It has the following features:
device easier. It has the following features:

1. Provision blank ATECC508A/608A devices - this includes private key generation
2. Storage for serial number and one-time calibration data (useful if primary
@@ -1,34 +1,22 @@
# Hardware

The NervesKey is a provisioned ATECC508A or ATECC608A. Both chips are
relatively inexpensive additions to devices that attach to an I2C bus. This
directory contains circuit board designs to add an ATECC508A/608A to Raspberry
The NervesKey is a tiny circuit board with an ATECC608A cryptographic chip from Microchip Technology. The chip is a relatively inexpensive addition to embedded computing platforms that include an I2C bus. The NervesKey is primarily intended to offer a non-disruptive adaptation for the Raspberry Pi, but can also be used in other development applications.

## 5-pin bottom solder-able module
![NervesKey Assembled](pictures/NK_Assembled.jpg "Assembled NervesKey Boards")

![NervesKey bottom](proto4/nerves_key_bottom.jpg "NervesKey bottom mount")
**Figure 1** Assembled NervesKey Boards

The `proto4` directory is a hand solder-able module that can be mounted
underneath the Raspberry Pi or connected "upside down" to the top.
This directory contains hardware documentation for the production NervesKey board. Historical versions from earlier development efforts are removed to avoid confusion, but in general those will operate the same way. Some historical versions might contain the ATECC508A chip instead, but the NervesKey software is agnostic
to this difference.

The production NervesKey board contains the tiny 'UDFN' version of the part [ATECC608A-MAHDA]( and a 0.1uF 0402 size capacitor. These boards are not easy assembled by a user, so they are professionally manufactured in high quantity for the Nerves project and offered for sale in low quantity by Nerves contributor [Troodon Software, LLC](

* [PCB from OSHPark](
* [0.1 uF 0603 capacitor](
## Primary Application - Bottom Side Solder Attach To Raspberry Pi

See the [proto4](proto4) directory for Eagle files.
The easiest way to outfit a Raspberry Pi with a NervesKey is to solder it to the 'hat' expansion header on the bottom of the board as shown below. This will connect the appropriate signals and keep the board out of the way of other uses of the hat header. The NervesKey board is made relatively thin to support this application.

## NervesKey shim
![NervesKey Application](pictures/NK_RPi_Bottom_Mount.jpg "NervesKey Bottom Mount")

![NervesKey shim](shim/nerves_key_shim1.png) ![NervesKey shim](shim/nerves_key_shim2.png)
**Figure 2** Primary NervesKey Application

We're working on a "shim" version that slides onto the Raspberry Pi's GPIO
header and can fit in between the Pi and a hat. No soldering required and it
is very small. For a permanent connection, it can be soldered down like the
version above.

* [Schematics](shim/MCM18001_NERVESKEY_X1_SCH_181214.PDF)

See the [shim](shim) directory for files.
See the [schematic](TSW19001_NERVESKEY_X1_SCH.PDF) for additional hardware details, notes, and examples.
Binary file not shown.
Binary file not shown.
Binary file not shown.

This file was deleted.

Oops, something went wrong.
Oops, something went wrong.

0 comments on commit 628d388

Please sign in to comment.
You can’t perform that action at this time.