Дубликатор ключей 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 | Назначение |
|---|---|---|
| Контактор DATA | D2 (или другой цифровой) | Линия 1-Wire |
| Резистор 4,7 кОм | между D2 и 5V | Подтяжка шины |
| Кнопка «чтение/запись» | D3 (на GND) | Смена режима |
| Светодиод статуса | D13 через резистор | Индикация записи |
| Корпус контактора | GND | Общий провод |
Кнопки подключаются между пином и землёй с включённой внутренней подтяжкой INPUT_PULLUP — это избавляет от лишних резисторов. Если схема дополняется дисплеем OLED SSD1306, он подключается по шине I2C (пины A4/A5 на Nano).
Порядок работы устройства прост: приложили оригинальный ключ — контроллер считал код в память и показал его на дисплее или в мониторе порта. Приложили заготовку RW1990, нажали кнопку записи — контроллер передал команды записи и сохранённый код. Светодиод или сообщение на экране подтверждает результат.
☑️ Сборка дубликатора — чек-лист
Программная часть: чтение и запись
Для чтения используется стандартная библиотека 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, должен побайтно совпадать с кодом оригинала, включая байт 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 МГц, это принципиально другие устройства.