Дубликатор ключей RW1990 перестал записывать заготовки или вы собираете устройство с нуля — в обоих случаях всё начинается с понимания схемы: считыватель работает по однопроводному протоколу 1-Wire, а вся логика сводится к чтению 64-битного кода ключа и его записи в перезаписываемую заготовку. Ниже разберём принципиальную схему, вариант сборки на Arduino и типовые ошибки, из-за которых копия не открывает домофон.

Заготовка RW1990 — это эмулятор классического ключа Dallas DS1990A: внутри корпуса формата iButton находится микросхема, способная принять и хранить произвольный код. Именно поэтому схема дубликатора одинакова и для чтения, и для записи — меняется только программная часть.

Принцип работы ключа RW1990 и протокола 1-Wire

Ключ подключается к считывателю всего двумя контактами: DATA (сигнальная линия) и GND (корпус). Питание микросхема получает паразитным способом — от той же линии данных через подтягивающий резистор. Когда ключ касается контактора, мастер шины отправляет импульс сброса, ключ отвечает импульсом присутствия, после чего передаёт свой 64-битный код.

Структура кода стандартна для семейства Dallas: первый байт — код семейства (для DS1990A это 0x01), затем шесть байт уникального номера и последний байт — контрольная сумма CRC8. Дубликатор должен корректно прочитать все восемь байт и записать их в заготовку, иначе домофон отвергнет копию.

Запись в RW1990 отличается от чтения оригинала: заготовка принимает команды записи, которые оригинальный DS1990A игнорирует. Существуют разные ревизии заготовок, и последовательность команд записи у них может отличаться — поэтому прошивки дубликаторов часто содержат несколько режимов записи.

💡

RW1990 — перезаписываемый аналог DS1990A: схема подключения двухпроводная (DATA + GND), вся сложность дубликатора заключается в программной реализации протокола 1-Wire и команд записи.

Из чего состоит схема дубликатора

Классическая схема дубликатора минималистична. Её ядро — микроконтроллер, к которому подключены контактор для ключей, кнопки управления и индикация. Никаких специализированных микросхем не требуется: протокол 1-Wire реализуется программно на любом доступном пине.

  • 🔧 Микроконтроллер — Arduino Nano/Uno, ATmega328P или даже ATtiny85 для компактной версии.
  • 🔌 Контактор (луза) — держатель для таблетки iButton, подключённый к пину данных и земле.
  • 🔘 Кнопки — как минимум «чтение» и «запись», в простых версиях одна кнопка с двумя режимами.
  • 💡 Индикация — светодиоды или OLED/LCD-дисплей для отображения кода и статуса записи.
  • 🔋 Питание — 5 В от USB, батареи «Крона» через стабилизатор или аккумулятор.

Единственный обязательный пассивный компонент — подтягивающий резистор между линией данных и плюсом питания. Типовое значение, используемое в схемах 1-Wire, — около 4,7 кОм; без него шина не сможет вернуться в высокий уровень, и обмен с ключом не состоится.

⚠️ Внимание: не подключайте линию данных к пину микроконтроллера без подтяжки и не подавайте на контактор напряжение выше 5 В. Превышение питания может вывести из строя как заготовку, так и порт контроллера.

Схема подключения на Arduino

Самый доступный вариант для повторения — дубликатор на Arduino Nano или Uno. Распиновка типовой схемы выглядит так:

ЭлементПин ArduinoНазначение
Контактор DATAD2 (или другой цифровой)Линия 1-Wire
Резистор 4,7 кОммежду D2 и 5VПодтяжка шины
Кнопка «чтение/запись»D3 (на GND)Смена режима
Светодиод статусаD13 через резисторИндикация записи
Корпус контактораGNDОбщий провод

Кнопки подключаются между пином и землёй с включённой внутренней подтяжкой INPUT_PULLUP — это избавляет от лишних резисторов. Если схема дополняется дисплеем OLED SSD1306, он подключается по шине I2C (пины A4/A5 на Nano).

Порядок работы устройства прост: приложили оригинальный ключ — контроллер считал код в память и показал его на дисплее или в мониторе порта. Приложили заготовку RW1990, нажали кнопку записи — контроллер передал команды записи и сохранённый код. Светодиод или сообщение на экране подтверждает результат.

☑️ Сборка дубликатора — чек-лист

Выполнено: 0 / 6

Программная часть: чтение и запись

Для чтения используется стандартная библиотека OneWire: функции сброса шины, отправки команды 0x33 (Read ROM) и приёма восьми байт кода. Проверка CRC8 по последнему байту позволяет отсеять ошибочные считывания — если контрольная сумма не сошлась, код считан неверно.

Запись в RW1990 выполняется специальной последовательностью команд, которая зависит от ревизии заготовки. В открытых прошивках дубликаторов обычно реализовано несколько алгоритмов записи, переключаемых в коде или автоматически. Если заготовка не записывается одним способом, пробуют другой — это нормальная практика, а не признак неисправности.

Фрагмент логики чтения кода выглядит примерно так:

if (ow.search(addr)) {

if (OneWire::crc8(addr, 7) != addr[7]) {

// CRC не сошлась — чтение неверное

} else {

// addr[0..7] — корректный код ключа

}

}

Почему заготовка может не записываться

Наиболее частые причины — плохой контакт в лузе (окислы, слабый прижим), несовпадение алгоритма записи с ревизией RW1990, слабая подтяжка шины при длинных проводах и нестабильное питание от разряженной батареи. Проверяйте контакт и питание в первую очередь.

Типичные ошибки при сборке схемы

Больше всего проблем доставляет не схема, а монтаж. Пропущенный подтягивающий резистор — причина номер один: без него шина «висит», и ключ не определяется вообще. Вторая по частоте ошибка — перепутанные контакты лузы, когда DATA и GND меняются местами.

  • ⚡ Длинные провода до контактора (более 10–15 см) ухудшают форму импульсов 1-Wire — делайте соединения короткими.
  • 🔋 Питание от почти разряженной «Кроны» приводит к сбоям записи: чтение работает, а запись обрывается на середине.
  • 🧲 Окисленные контакты лузы дают нестабильное чтение — почистите их ластиком или спиртом.
  • 💾 Использование не той ревизии алгоритма записи — заготовка молчит, хотя схема исправна.
⚠️ Внимание: не пытайтесь записывать заготовку, приложенную к контактору неплотно или «на весу». Прерывание обмена в момент записи может перевести часть заготовок в нестабильное состояние, и код в них сохранится искажённым.
📊 На чём вы собираете или используете дубликатор RW1990?
Arduino Nano/Uno
Готовый купленный дубликатор
ATtiny/компактная самоделка
Только планирую собрать

Проверка готовой копии

После записи не полагайтесь на сообщение «успешно» — выполните контрольное чтение заготовки тем же дубликатором. Код, считанный с RW1990, должен побайтно совпадать с кодом оригинала, включая байт CRC. Любое расхождение означает, что копия не сработает.

Финальная проверка — на самом домофоне. Приложите копию к считывателю: замок должен сработать так же, как от оригинала. Если домофон не реагирует, но коды совпадают, возможная причина — домофон фильтрует ключи по коду семейства или заготовка записана с нарушением таймингов. В таком случае попробуйте другую заготовку или другой алгоритм записи.

💡

Держите под рукой две-три заготовки RW1990 разных партий: они могут отличаться ревизией, и если одна не записывается вашей прошивкой, другая часто записывается без проблем.

Ограничения и безопасность

Дубликатор работает только с ключами формата Dallas (DS1990A и совместимые заготовки). Ключи других систем — EM-Marin, Mifare, «Цифрал» с резисторным принципом — требуют совершенно иных считывателей и схем, универсального устройства «на всё» не существует.

Помните и о правовой стороне: изготавливайте копии только собственных ключей или по поручению их владельцев. Копирование ключей от чужих подъездов без согласия владельца может повлечь ответственность.

💡

Схема дубликатора RW1990 предельно проста: микроконтроллер, резистор 4,7 кОм, контактор и кнопка. Все сложности — в прошивке: корректных таймингах 1-Wire и правильном алгоритме записи под конкретную ревизию заготовки.

Часто задаваемые вопросы

Чем RW1990 отличается от оригинального DS1990A?

DS1990A — ключ с прошитым на заводе неизменяемым кодом. RW1990 — перезаписываемая заготовка, которая принимает команды записи и может хранить любой код, копируя поведение оригинала при чтении.

Можно ли собрать дубликатор без Arduino?

Да, схемы существуют на ATtiny85, PIC и даже на базе готовых китайских модулей. Arduino удобна для первой сборки тем, что прошивка заливается без программатора, а код легко отладить через монитор порта.

Почему дубликатор читает ключ, но не записывает заготовку?

Чаще всего дело в несовпадении алгоритма записи с ревизией заготовки, слабом контакте в лузе или просадке питания в момент записи. Проверьте питание, зачистите контакты и попробуйте другой режим записи в прошивке.

Как проверить, что копия записалась правильно?

Считайте заготовку тем же дубликатором и сравните все восемь байт с кодом оригинала, включая CRC. Затем проверьте копию на реальном домофоне — только это даёт окончательный ответ.

Записывает ли дубликатор ключи EM-Marin или Mifare?

Нет. Схема на 1-Wire работает только с ключами формата Dallas. Для EM-Marin нужен RFID-считыватель 125 кГц, для Mifare — модуль 13,56 МГц, это принципиально другие устройства.