diff --git a/python/coral-cloudiot/coral/cloudiot/ecc608.py b/python/coral-cloudiot/coral/cloudiot/ecc608.py
index 9346428..33cdfab 100644
--- a/python/coral-cloudiot/coral/cloudiot/ecc608.py
+++ b/python/coral-cloudiot/coral/cloudiot/ecc608.py
@@ -50,11 +50,11 @@
     return public_key_pem
 
 
-def _ecc608_check_address(address):
+def _ecc608_check_address(bus, address):
     cfg = cfg_ateccx08a_i2c_default()
     # Cryptolib uses 8-bit address.
     cfg.cfg.atcai2c.slave_address = address << 1
-    cfg.cfg.atcai2c.bus = 1  # ARM I2C
+    cfg.cfg.atcai2c.bus = bus  # ARM I2C
     cfg.devtype = 3  # ECC608
     status = atcab_init(cfg)
     if status == 0:
@@ -65,10 +65,12 @@
 def ecc608_find_chip():
     """Returns the I2C address of the crypto chip or None if chip is not installed."""
 
-    for addr in (0x30, 0x60, 0x62):
-        if _ecc608_check_address(addr):
-            logger.info('Found crypto chip at 0x%x', addr)
-            return addr
+    # Bus and address can change for Pi/Dev Board as well as if using enviro.
+    for bus in (0, 1):
+        for addr in (0x30, 0x60, 0x62):
+            if _ecc608_check_address(addr):
+                logger.info('Found crypto chip at 0x%x', addr)
+                return addr
     logger.warning('No crypto detected, using SW.')
     return None
 
