---
title: Reading iButton keys
slug: zero/ibutton/read
description: Detailed instructions on how to read, save, edit, and emulate keys using your Flipper Zero, as well as troubleshooting common problems
image: https://archbee-image-uploads.s3.amazonaws.com/3StCFqarJkJQZV-7N79yY/CQdmgXY5DE6GwF0QAjdqW_readingibuttonkeysprev02.png
docTags: 
createdAt: 2023-08-10T12:45:51.426Z
---

![](https://api.archbee.com/api/optimize/3GUDYkC5JgUWgo6RW8piO-bLQmvodKHC_977LM0Riu--20241025-124101.png)

Flipper Zero enables you to conveniently read, save, and emulate iButton access control keys with Dallas, Cyfral, and Metakom protocols. Additionally, you can modify the unique IDs (UIDs) of saved keys.

This page provides detailed instructions on how to read, save, edit, and emulate keys using your Flipper Zero, as well as troubleshooting common problems.

:::Iframe{iframeHeight="0" code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;    To learn more about iButton keys and Flipper Zero’s hardware implementation, see <a href=&#x22;https://docs.flipper.net/zero/ibutton&#x22; onclick=&#x22;next.router.push('https://docs.flipper.net/zero/ibutton')&#x22;><u>iButton</u></a>.&#xA;</div>"}

:::

***

# How to read iButton keys

Flipper Zero can read the following types of iButton keys and their respective data:

- **Dallas DS1990:** only the UID (the key has no memory)
- **Dallas DS1992:** the UID and data in memory
- **Dallas DS1996:** the UID and data in memory
- **Dallas DS1971:** the UID and data in memory
- **Dallas, unsupported keys:** only the UID
- **Metakom:** only the UID (the key has no memory)
- **Cyfral:** only the UID (the key has no memory)



To read and save an iButton key’s data with your Flipper Zero, do the following:

::::WorkflowBlock
:::WorkflowBlockItem
Go to **Main Menu** **-> iButton -> Read**.
:::

:::WorkflowBlockItem
Connect the key to the **data** and **ground** pins, as shown below.

![](https://api.archbee.com/api/optimize/3GUDYkC5JgUWgo6RW8piO-fG-F2Y09x4EHsOjGTylOW-20241025-124131.png)
:::

:::WorkflowBlockItem
Once the reading is finished, view the key’s data.

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/czEIeCtoj7MCK43HYg5OT_flipper-zero-ibutton-key-read-screen.jpg)
:::

:::WorkflowBlockItem
To save the key, go to **More** **->** **Save**.
:::

:::WorkflowBlockItem
Name the key, then press **Save**.
:::
::::

Now that you have saved the key, you can emulate, rename, delete, edit, and write it to a blank or a key of the same type.

## If reading failed

- The iButton key might not have touched the pins correctly. -> Make sure you connect the key as shown above.

- The iButton key might use an unsupported protocol.

- The iButton key might be damaged.

- If you got a **CRC error** while reading a Dallas key. -> Read the key again and try emulating it. If the emulation isn’t successful, the error can’t be fixed. To learn more, see the [CRC reading error](https://docs.flipper.net/zero/ibutton/read#r-y31) section below.

***

# Editing saved iButton keys

You can edit the UID of the saved key by doing the following:

::::WorkflowBlock
:::WorkflowBlockItem
Go to **Main Menu -> iButton -> Saved**.
:::

:::WorkflowBlockItem
Select the key you want to edit and select **Edit**.
:::

:::WorkflowBlockItem
Enter the required value in hex.

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/sfGsfAUW-hdPi8qWYUr5__monosnap-miro-2023-08-11-19-36-54.jpg)
:::

:::WorkflowBlockItem
Press **Save**, then enter a new name of the key and press **Save** again.
:::
::::

You can also create a virtual iButton key using the [Add Manually](https://docs.flipper.net/zero/ibutton/add-manually) function.

***

# Emulating saved iButton keys

When you have a key saved on your Flipper Zero, you can emulate it by following these steps:

:::::WorkflowBlock
:::WorkflowBlockItem
Go to **Main Menu** **-> iButton -> Saved**.
:::

:::WorkflowBlockItem
Select the key you want to emulate.
:::

::::WorkflowBlockItem
Place your Flipper Zero against the iButton reader, making sure the **data** and **ground** pins touch it as shown below.

![](https://api.archbee.com/api/optimize/3GUDYkC5JgUWgo6RW8piO-flzTb0FY1WPy607o24jMF-20241025-124211.png)

:::Iframe{iframeHeight="0" code="<div class=&#x22;info flipper-callout&#x22;>&#xA;    <div class=&#x22;callout-header&#x22;></div>&#xA;Sometimes, the iButton reader’s design may affect the connection with Flipper Zero's pins, resulting in the key not being read. In this case, align the edge pin (data) with the center of the reader and the middle pin (ground) with the rim of the reader, exactly as shown above.</div>"}

:::
::::
:::::

## If emulation failed

- The Flipper Zero pins might not touch the reader correctly. -> Make sure you connect Flipper Zero pins to the reader as shown above.

- The middle pin (ground) can’t reach the reader’s rim. -> You can use wires to emulate the iButton key. Transfer data to the reader with two wires inserted into Flipper Zero’s GPIO pins:
  - GPIO pin 17 (data)
  - GPIO pin 8, 11, or 18 (ground)



![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/gSNsZ-ycXN-P84DlS0F-W_flipper-zero-gpio-pins-ibutton-key-emulation.jpg "Use can also emulate iButton keys with the help of wires. ")

- The reader is protected against emulation. -> Flipper Zero can’t bypass it.

- If you added the key manually or edited it, you might have entered an incorrect key UID.

***

# CRC reading error

Dallas keys have a UID key structure that contains 8 bytes, including the family code byte and Cyclic Redundancy Check (CRC) byte. The CRC byte helps ensure data integrity by detecting errors that may have occurred during data transfer or storage.

::Image[]{src="https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/G_lXv4f7aNZgNF0acTzVP_dallas-ibutton-key-uid-structure-flipper-zero.jpg" size="82" width="1410" height="436" position="center" caption="Dallas key’s UID includes family code, CRC, and serial number" alt="The Dallas key’s UID includes a family code, CRC, and serial number." showCaption="true"}

Whenever you read an iButton key, Flipper Zero checks the CRC byte for correctness by recalculating it. If the captured CRC byte doesn’t match the calculated one, a CRC error occurs, indicating that the UID is corrupted.&#x20;

![](https://api.archbee.com/api/optimize/3StCFqarJkJQZV-7N79yY/bh66EAhwqiVyJ8Q2Y_mD0_flipper-zero-ibutton-crc-error.jpg "Flipper Zero will display the expected correct CRC byte")

