Getting Started: ZYMKEY4i with RASPBERRY PI

See Zymbit’s Documentation Site for the most recent Getting Started documentation.

Probably best to just leave “jessie” where “stretch” was until they upgrade the software to support Openssl. Many packages rely on Openssl, and I’ve had nothing but issues trying to work around this.

I cannot install Jessie on my PI at all, which is what I’d love to do at this point.


When running the script over a previous install, the create_zk_crypt_vol symlink fails to get recreated because it already exists. Can you implement a check in the script to delete and recreate it?

:~ $ curl -G https:// s3.amazonaws. com/zk-sw-repo/ | sudo bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1716 100 1716 0 0 6286 0 --:–:-- --:–:-- --:–:-- 6308
Installing prerequisites…Searching for pip
Best match: pip 9.0.1
Processing pip-9.0.1-py2.7.egg
pip 9.0.1 is already the active version in easy-install.pth
Installing pip script to /usr/local/bin
Installing pip2.7 script to /usr/local/bin
Installing pip2 script to /usr/local/bin
Using /usr/local/lib/python2.7/dist-packages/pip-9.0.1-py2.7.egg
Processing dependencies for pip
Finished processing dependencies for pip
Requirement already satisfied: inotify in /usr/local/lib/python2.7/dist-packages
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.
Requirement already satisfied: pycurl in /usr/lib/python2.7/dist-packages
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.
Requirement already satisfied: progress in /usr/local/lib/python2.7/dist-packages
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.
Requirement already satisfied: python-gnupg in /usr/local/lib/python2.7/dist-packages
You are using pip version 9.0.1, however version 9.0.3 is available.
You should consider upgrading via the ‘pip install --upgrade pip’ command.
Importing Zymbit Packages gpg key… done.
Installing /etc/apt/sources.list.d/zymbit.list…done…Updating now.
Installing Zymkey Packages…ln: failed to create symbolic link ‘/usr/local/bin/create_zk_crypt_vol’: File exists
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 11491 100 11491 0 0 37781 0 --:–:-- --:–:-- --:–:-- 37799
Rebooting now…

trying to install the i4 on RPi 3 stretch 9.4, after the installation is finished I reboot the system and the module’s LED turns off and I get the following error -
[FAILED] Failed to start Restore System Clock from Zymkey.
See ‘systemctl status zkbootrtc.service’ for details.

Does this happen on each reboot? How’s your power supply? Make sure that you have a power supply that is capable of putting out at least 2.5A.

Check out
Power Quality - How it Impacts Software & System Reliability

In Developer mode, are there any steps I can take to test that my Zymkey is doing what i expect it to do before moving it to production mode?

1 Like

Before you move to production mode we recommend you develop your applicaition, using the Zymbit API functions as needed.

For example, if you planning on encrypting your file system using LUKS then build that first, before you lock into production mode.

If your Zymkey is working in developer mode, it will work in production mode.

Thanks Phil. I have performed the “encrypt using LUKS” and seem to have that working. I am noticing issues booting after a power cycle however. Sometimes it will take me 3 or more power cycles to get my Pi to boot up. Once it does boot, everything seems fine. Is this something you have seen/heard of before or is my issue unrelated to the Zymkey?

There is a high probability your issue is related to power supply quality: Zymkey monitors the power rails and if they don’t come up cleanly (after a power cycle) then it will remain locked. If you have other items plugged into your pi (USB devices, display, or GPIO attached devices), these can put additional stress on the power supply at power up.

Suggested paths forward :

  1. read this, and be sure to look for the power thunderbolt which is a sure sign of an overloaded power supply. Power Quality - How it Impacts Software & System Reliability
  2. try rebooting without power cycling.
  3. increase the capacity of your power supply.


I have specific needs and would like to made an iso with a raspbian distrib and many libraries already installed. I would like to proceed to an offline setup of all the zymkey libraries and just launch a last script to proceed to the zymkey module setup.

How could I do that? I can find all theese informations on your aws repository:


Should I download all of this and setup the .deb one by one? What is the last step to do to setup the zymkey module after having setup the libraries needed?

Thx by advance :grin:

Hi! any answer? thx :wink:

hi :frowning:
i have same problem…i go to production mode by Manual Cut-2-Lock and my raspberry do not start!!!

Hi this is my 2 deployment with raspberry pi raspbian Jessie (Linux pi 4.9.35+ #1014 Fri Jun 30 14:34:49 BST 2017 armv6l GNU/Linux).
After I issue the command “curl -G | sudo bash” and manually reboots still the zymkey not binding. blue led blinks fast not slow as i blink in 3 seconds.
Then I tried “sudo apt-get update” and at the last part this echo came out…
“W: GPG error: jessie InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY CD71D52EB867632F”

Please help …thanks

Now I re-install with raspbian stretch and did the same procedure and it did not bind on the first reboot and finally after the 3rd reboot the blue led start blinking slowly. So I started to do LUKS procedure with “curl -G | sudo bash”.
But it said sda is not there. So I checked and the external 64GB sd card is installed on sdb / sdb1. so I issued the command “curl -G | sudo bash -s – -x /dev/sdb” and process went well and rebooted after 1.5 hours.
After rebooting blue led still blinking fast seems not bound. And do a sudo service zkifc stop and start and started to blink slow.
Then I reboot without the zymkey and reboots. It supposed not to boot is that correct?
Then I reboot the RPI with the zymkey but this time without the external sd card that the luks process temporarily put the root folder and then it does not boot as mentioned the sda or sdb not accessible. then when plugged the sd card while boot process is on going it continued to boot up until the rpi login?

I re-download the stretch and re-installed to sd card and tried again.
It is know working fine. Not sure what happen there. But all download and raspbian installation went well. If you got any idea what happen I will be happy to know.
But right now it zymkey binding and LUKs are working well.


I have big troubles, now:

  • I am working on a pi 0, with stretch distrib
  • one of my zymkey seems to be break, it flash like this: 5 blink quite slow, and a lot of speed blinks, and again 5 slow, etc.
  • on the same raspberry, same power source, another zymkey works perfectly well; each has their proper cell coin

I am becoming crazy right now. The same problem happened few month ago so I have another zymkey breaks… Maybe I made a mistake but for the price I hope I can have an answer about this.

Why can I do?? How can I check if the device is really “ok”? Is there a procedure to erase it?

By the way, you still didn’t answer to me about an offline enrolment procedure (above): should I unpackage all the .deb one by one.

I was fan of your product but now I am becoming more and more mistrustful and don’t want to try things by my own to do not break a new devices…

Thx for the (quick I hope) answer.

Hi ,
Here are some suggestions for help us try and debug your issues:

  • Can you confirm that the ‘problem zymkey’ is not locked (tab cut).
  • If not locked, you can check if the device is working by getting accellerometer data. Read the data and tap the device, you should be able to read force and direction attributes.
  • There is no ‘erase’ on the device. If not locked, it will bind to each new host it sees.
  • If you have a third zymkey spare, then perhaps you can test that too, so at least narrow down the potential problem (to a specific zymkey, or something is the system).