ZYMKEY 3i - NEW Cloudless Binding
Zymkey 3i offers a more streamlined binding process that does not require any connection to Zymbit cloud services.
Standard Zymkey 3i are shipped to you in 'Developer Mode' and they can easily moved from one Pi to another.
After your development is complete a Zymkey 3i can be permanently bound to a specific Pi (Production Mode) See later for details. This is a one time process that cannot be reversed. We recommend that you keep your Zymkey 3i in Developer Mode until you are satisfied your development is complete, or close to.
BEFORE INSTALLING ZYMKEY
Configure the I2C Bus:
- Log in to your pi and run
- select Interfacing Options -> I2C -> Enable? (selectYes)
- Arrow Right to Finish
- Power down your Raspberry Pi
Connectors on Zymkey I2C
Install Zymkey I2C Hardware
This is a crucial step to get right. Be sure to follow the images below to ensure the first 10 GPIO pins are correctly aligned with the Zymkey header. Note: the coin cell battery should be facing up.
Fit the i2c Zymkey with battery facing upwards. Be sure your i2c Zymkey is properly aligned with the first 10 GPIO pins and that pressed firmly down onto the header. If missaligned, this could cause damage to the Zymkey and/or your Raspberry Pi. Your Zymkey should fit relatively snug and maintain tight interference fit around the pins.
Zymkey occupies 10 pins on the GPIO header. It can also be used with Pi Plate devices attached, or other i2c devices attached. See options later for correct address range and use of IO pins.
Option: Using Zymkey with another Pi Plate fitted.
Power On, Confirm Operation
Finally, power up the pi and you will see a blue led blinking consistently. If you see sporadic blinking, this is an error message and you should check your connections.
Software Package Installation & API
For a bare raspbian system, first login to your pi.
Note: Your Zymkey will require a number of packages to be installed from the Raspberry Pi and Zymbit apt repositories. The following setup script will be installing a number of files and software packages on your system:
- Zymbit .service files located in the /etc/systemd/system directory
Download and install the necessary Zymbit services onto your Pi.
curl -G https://s3-us-west-1.amazonaws.com/zymkey-sw-repo/install_zk_sw.sh | sudo bash
(grab a cup of coffee because this will take between 4 and 20 minutes).
Developer Mode (temporary binding)
Once the software installation has finished, reboot your pi. After the reboot has completed, the pi will perform an operation that will temporarily bind the Zymkey to your pi. Once the Zymkey is bound to the pi, the Zymkey's blue LED should blink once every 3 seconds to indicate that the binding is complete. At this point, the binding is temporary and the Zymkey can be moved to another pi and the binding process repeated.
Production Mode (permanent binding)
! Caution: this binding is permanent and cannot be reversed, making it impossible to move your Zymkey ID to another Pi.
When you have completed all your development work and you are ready to deploy into the field you should permanently bind your Zymkey to a 'specific' Pi. This will lock your Zymkey into Product Mode. You will require a locking dongle to perform this function.
To make the binding permanent, power down the pi and physically install the Zymkey locking dongle to the OEM connector. After the pi is rebooted, the blue LED should blink rapidly 3 times every 3 seconds which indicates that the binding is permanent. The locking dongle can now be removed.
Making Your Own Locking Dongle
If your Zymkey did not ship with a locking dongle, you can easily make your own from a new connector or an old microUSB cable. A simple wire link is require between pins 3 and 4.
Q: Why does the LED continue to blink rapidly? It never blinks with the described pattern of once or three times every three seconds.
A: Check the following:
Make sure that you have enabled i2c support using raspi-config as detailed in the instructions.
If i2c support has been enabled and the Zymkey LED is still rapidly blinking, check proper physical installation of the Zymkey as detailed in this "Getting Started" guide.
Check that the Raspberry Pi power is sufficient. The red LED on most Raspberry Pi models indicates if the Pi is being powered adequately. If it is not lit at all or flashes intermittently, try a different power supply or a different USB cable.
In addition to 3.3V and 5V power and ground, Zymkey uses header pins 3 and 5 for i2c communications and pin 7 as an interrupt signal to the Pi. Pin 7 should preferably be dedicated exclusively to Zymkey. Other devices may share the i2c bus with Zymkey, but there may still be address conflicts. By default, Zymkey uses slave address 0x30. If the address conflict cannot be resolved on the other i2c devices, there is a way of changing the i2c address on the Zymkey via the command line on the Pi (coming soon!). Using this application, the Zymkey address can be changed anywhere in the ranges of 0x30-0x37 or 0x60-0x67.
if the directory at /var/lib/zymbit or any of the files and/or subdirectories are corrupted or deleted, the Zymkey will fail to work. IMPORTANT: if this happens when the Zymkey is locked (i.e. Production Mode), the Zymkey can never be used again.
Q: The LED blinks rapidly when booting, but eventually turns off. It doesn't blink once or three times every 3 seconds as described.
A: This issue could be caused by the same issues described in the first question (Why does the LED continue to blink rapidly?). Additionally, this can be caused if a locked (Production Mode) Zymkey is moved to another Pi.
Please read the Zymkey community pages for documentation on:
The quickest way to get started is to see the various methods at work by running these scripts: