SCM
FAQ and troubleshooting for the Secure Compute Module, including Rev B hardware and firmware changes.
Before contacting Zymbit with troubleshooting related questions, please read through the following troubleshooting checklist.
install_zk_sw.sh), apt upgrade does not move you to Driver Package 2.x; see Installing the Zymbit Driver Package.If your issue is not related to any of the above list, check the common issues and FAQ below, then the FAQ for your product. If you still do not see a solution to your problem, reach out on our Community Forum. Thank you!
On Driver Package 2.x, Zymbit packages update with the rest of your system:
sudo apt update
sudo apt upgrade
A device set up with the legacy install_zk_sw.sh script is on Driver Package 1.x, and apt upgrade will not move it to 2.x. To migrate, follow Installing the Zymbit Driver Package. Devices on Ubuntu 22.04, Debian 11, or a 32-bit OS cannot run 2.x; see Driver Package 1.x. Production ZYMKEY5 units identify as zymkey5, which Driver Package 1.x does not recognize, so they require Driver Package 2.x.
For current and previous package versions, see the Driver Package 2.x release notes.
This applies only to devices on Driver Package 1.x, which use the legacy zk-sw-repo repository. On Driver Package 2.x, the signing key is installed by the zymbit-repo package.
The Zymbit GPG key expired and was renewed on September 30, 2024. New installations should not have any problems. apt-get update may complain that the GPG key has expired. To update your local key, do the following:
curl -L https://zk-sw-repo.s3.amazonaws.com/apt-zymkey-pubkey.gpg | sudo gpg --dearmor --yes -o /usr/share/keyrings/zymbit.gpg
For those of you that are on older installations, make sure the signed-by option is included in the /etc/apt/sources.list.d/zymbit.list,
This parameter - [signed-by=/usr/share/keyrings/zymbit.gpg]
The following will check and fix for you,
sudo sed -i 's/^deb https/deb [signed-by=\/usr\/share\/keyrings\/zymbit.gpg] https/' /etc/apt/sources.list.d/zymbit.list
On Driver Package 2.x, apt install zkifc sets the wake pin for you, so you do not need to set it by hand.
On Driver Package 1.x, the installation script sets it for new installations. If you installed Driver Package 1.x and then upgraded the kernel to 6.6 or later, please note the following.
Raspberry PI OS Bookworm updated the kernel to version 6.6.y in March 2024. The kernel no longer overrides an upstream kernel decision to force the base number of the main GPIO controller to be global GPIO 0. If the WAKE_PIN number is not set, the ZYMKEY will not bind. You will see 5 flashes per second continuously.For RPI4, RPI5, and CM4 platforms, you will need to set the WAKE_PIN in the following manner:
Determine the numbering for GPIO4 by examining /sys/kernel/debug/gpio for the number associated with GPIO4, then set an environment variable in the Zymbit environment variable file:
sudo su
wake_pin=`grep GPIO4 /sys/kernel/debug/gpio | sed -r 's/[^0-9]*([0-9]*).*/\1/'`
echo "wake_pin=$wake_pin" # sanity check value is set
echo "ZK_GPIO_WAKE_PIN=$wake_pin" > /var/lib/zymbit/zkenv.conf
systemctl restart zkifc
As of Dec 2025, the numbering is: RPI4=516 RPI5 (1.0)=575 RPI5 (1.1)=573 CM4=516 CM5=573
We have seen some issues with the scaling cpu governor on the raspberry pi interfere with the i2c bus. This sometimes causes the zymkey to be put into a odd state or return failures from operations that get optimized out by the governor. The raspberry pi sets the scaling governor to be “ondemand” by default. We recommend switching this mode to “performance” to get the best out of the zymkey. Details:
When encrypting your rootfs, we highly recommend turning off unattended-upgrades prior to the encryption process. In some cases primarily with Ubuntu, during an update/upgrade after encryption, the update-initramfs process may fail and leave the system unable to boot.
To mitigate this issue, remove the service unattended-upgrades:
Check /etc/apt/apt.conf.d/20auto-upgrades. Make sure the following lines are set to 0,
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
Stop and remove the unattended-upgrade service:
sudo systemctl stop unattended-upgrades
sudo systemctl disable unattended-upgrades
sudo apt-get remove --purge -y unattended-upgrades
Driver Package 2.x supports 64-bit ARM only. On a 32-bit OS, install Driver Package 1.x and apply the following. Production ZYMKEY5, HSM60, and SEN-505 units require Driver Package 2.x, so they cannot be used on a 32-bit OS. If you have a 32-bit requirement, contact Zymbit support at support@zymbit.com; case-by-case support may be available.
As of March 2023, Raspberry PI OS 32-bit images install the 64-bit kernel along with the 32-bit root filesystem. This does not allow our installation script to work. In order to properly install on an 32-bit system, edit /boot/config.txt and add the following line to the bottom of the file, then reboot.
arm_64bit=0
A: See the Product Comparison Matrix for the differences between ZYMKEY4, ZYMKEY5, HSM4, HSM6, and HSM60. Please reach out with any further questions.
See Power Quality for more information.

A: See:
ZYMKEY4 and HSM4: NIST P-256 and secp256r1
SCM, HSM6, ZYMKEY5, and HSM60: NIST P-256, secp256r1, secp256k1, X25519, ED25519
All Products: Only EC curves are supported. No RSA support is provided in hardware. RSA support is provided via hardware lock/unlock of PKCS11 store on host.
A: We have no plans to release an Arduino shield version. While we love Arduinos and use them all the time, they generally don’t have enough resources to handle cryptographic operations at this level.
A: Zymbit does not officially support the BeagleBoard platform at this time.
Questions specific to one product are in that product’s FAQ, listed below. Past release notes are in Release notes.
FAQ and troubleshooting for the Secure Compute Module, including Rev B hardware and firmware changes.
FAQ and troubleshooting for the SCM Motherboard D35.
ZYMKEY4 FAQ & Troubleshooting
HSM4 FAQ & Troubleshooting
HSM6 FAQ & Troubleshooting
Past Zymbit Driver Package and Bootware release notes, from October 2023 to July 2026.