Добрый день! Как-то надоело платить по 150 рублей за копию ключа от домофона и решил собрать простой, бюджетный дубликатор iButton на Arduino. Цены на подобные готовые устройства «кусаются», хотя и функционал у них шире, копируют практически всё, включая беспроводные ключи. Мне достаточно простого копирования ключа iButton а-ля «кнопка». Интересно? Прошу под «cut»!
Итак, приступим! Для начала «техзадание», что должно уметь это устройство:
1) Читать содержимое ключа, интересно же что там зашито.
2) Копировать ключи, как это ни странно звучит :)
3) Прошивать «универсальный» ключ. Под словом «универсальный» будем понимать какой-либо свой ключ, который будет записываться по-умолчанию.
Мозгами будет Arduino Nano v3 неоднократно рассмотренная на этом ресурсе.
Корпусом для этого устройства будет служить неисправный «однобаночный повербанк», так же неоднократно обозримый и тут, и там. Из внутренностей «повербанка» останется только печатная плата с гнёздами USB и MicroUSB. Через MicroUSB будем питать устройство от 5В, так же может быть запитано от порта Mini-USB Arduino. Через USB подключим считыватель iButton. Всё остальные электронные компоненты выпаяны из платы «повербанка». Кнопка для дубликатора куплена в оффлайне, ничего особенного в ней нет, обычная, без фиксации. В корпусе проделаны отверстия для порта Mini-USB расположенного на плате Arduino и над кнопкой «Reset».
Считыватель iButton, взят от какого-то неведомого устройства, ничего особенного в нём нет, просто контактная площадка. К считывателю припаян USB штекер. Так как разъём используется не по назначению и чтобы ничего не «сжечь» при подключении считывателя к порту ПК, ноутбука или зарядного устройства, для подключения используются провода зелёного «Data+» и белого «Data-» цвета.
Дополнительное фото
Дубликатор со считывателем и ключами:
Светодиоды для индикации процесса прошивки на корпус не стал выводить, корпус белый и хорошо просвечивается, всё видно.
Схема подключения:
Резистор R2 поставил 1кОм, в интернетах пишут что надо 2,2 кОм.
Вовка одобряет...
Программное обеспечение. Для компиляции необходима библиотека OneWire взять её можно тут.
Скетч от 04.09.2016, добавлена функция восстановления ключей с неправильным family code
#include <OneWire.h>
#define pin 11
OneWire ibutton (pin); // Пин D11 для подлючения iButton (Data)
byte addr[8];
byte ReadID[8] = { 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F }; // "Универсальный" ключ. Прошивается последовательность 01:FF:FF:FF:FF:FF:FF:2F
const int buttonPin = 6;
const int ledPin = 13;
int buttonState = 0;
int writeflag = 0;
int readflag = 0;
int val = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(115200);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
readflag = 1;
writeflag = 1;
digitalWrite(ledPin, HIGH);
val++;
if (val > 6) val = 6;
Serial.print(val);
delay(500);
}
else {
val = 0;
}
if (!ibutton.search (addr)) {
ibutton.reset_search();
delay(50);
if (val <= 5) return;
val = 0;
}
digitalWrite(ledPin, HIGH);
delay(50);
for (byte x = 0; x < 8; x++) {
Serial.print(addr[x], HEX);
if (readflag == 0) {
ReadID[x] = (addr[x]);
}
Serial.print(":");
}
byte crc; // Проверка контрольной суммы
crc = ibutton.crc8(addr, 7);
Serial.print("CRC: ");
Serial.println(crc, HEX);
digitalWrite(ledPin, LOW);
if ((writeflag == 1) or (Serial.read() == 'w')) {
ibutton.skip(); ibutton.reset(); ibutton.write(0x33);
Serial.print(" ID before write:");
for (byte x = 0; x < 8; x++) {
Serial.print(' ');
Serial.print(ibutton.read(), HEX);
}
// send reset
ibutton.skip();
ibutton.reset();
// send 0xD1
ibutton.write(0xD1);
// send logical 0
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
Serial.print('\n');
Serial.print(" Writing iButton ID:\n ");
byte newID[8] = { (ReadID[0]), (ReadID[1]), (ReadID[2]), (ReadID[3]), (ReadID[4]), (ReadID[5]), (ReadID[6]), (ReadID[7]) };
ibutton.skip();
ibutton.reset();
ibutton.write(0xD5);
for (byte x = 0; x < 8; x++) {
writeByte(newID[x]);
Serial.print('*');
}
Serial.print('\n');
ibutton.reset();
// send 0xD1
ibutton.write(0xD1);
//send logical 1
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
writeflag = 0;
readflag = 0;
digitalWrite(ledPin, LOW);
}
}
int writeByte(byte data) {
int data_bit;
for (data_bit = 0; data_bit < 8; data_bit++) {
if (data & 1) {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
} else {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
}
data = data >> 1;
}
return 0;
}
Как это работает:
Для вывода содержимого ключа подключаем дубликатор через порт Mini-USB к компьютеру. Устанавливаем драйвер устройства.
В диспетчере устройств появится COM-порт с каким-либо номером, в моём случае 4.
Скрин
Запускаем программу Putty, выбираем тип соединения «Serial» прописываем номер COM порта, в моём случае 4, и скорость 115200.
Скрин
Нажимаем кнопку «Open» и прикладываем ключ к считывателю.
Скрин
Для копирования прикладываем ключ к считывателю. Светодиод на корпусе Arduino подключенный к пину D13 начинает мигать, это говорит о том, что код ключа считался в память дубликатора. Нажимаем «зелёную» кнопку записи, светодиод начинает светиться постоянно. Прикладываем ключ который хотим записать, светодиод тухнет и примерно через 1 секунду начинает мигать, это значит что ключ записан.
Для записи «универсального» ключа включаем дубликатор и не прикладывая к считывателю ключа нажимаем «зелёную» кнопку записи, светодиод начинает светиться постоянно. Прикладываем ключ который хотим записать, светодиод тухнет и примерно через 1 секунду начинает мигать, это значит что ключ записан.
Важно! При записи «универсального» ключа, например такого 01:FF:FF:FF:FF:FF:FF:2F, нужно правильно указать контрольную сумму ключа, в данном случае 2F это и есть контрольная сумма, рассчитывается по особому алгоритму, который описывать не вижу смысла. Ключ можно записать с кривой контрольной суммой, и скорее всего считываться устройствами (домофонами, панелями) он будет, но устройства будут его игнорировать.
Например нам нужно прошить ключ 01:12:34:56:AB:CD:EF:XX. Первый байт, передаваемый из памяти ключа, является кодом типа устройства — family code, всегда 01. После него идёт гарантированно уникальный серийный номер (6 байт) 12:34:56:AB:CD:EF. Последний байт XX несёт информацию Cyclic Redundancy Check (CRC), что означает проверочный циклический избыточный код. CRC специальным образом вычисляется от первых семи байт.
Для вычисления контрольной суммы вместо XX записываем любое шестнадцатеричное число, например AA. Получаем ключ следующего вида 01:12:34:56:AB:CD:EF:AA. Заменяем в скетче строку
снова прошиваем ключ и смотрим что там, а там теперь ключ с правильной CRC.
Коды ключей тут.
UPD. Очень важно! Если первый байт, family code, будет 00, например 00:12:34:56:AB:CD:EF:AA, то после прошивки ключ «умрёт», читаться он уже этим программатором, а возможно и другими, не будет. Выявлено опытным путём, спасибо товарищу belik1982'у. Подробнее тут.
UPD. В скетч от 04.09.2016 добавлена функция восстановления ключей с неправильным family code, для этого необходимо приложить ключ к считывателю и удерживать кнопку в течение 6 секунд. После этого в ключ будет записан «универсальный» ключ. Спасибо за помощь товарищу krassalex'у. Подробнее тут.
Лирическое отступление
Сейчас с домофонами устанавливают всякие фильтры для проверки подлинности ключей. Самый подлый который мне попался, установлен у родителей в подъезде. Например в болванку зашит ключ 01:12:34:56:AB:CD:EF:E0, контрольная сумма верная и фильтр домофона пытается изменить один из 6 байт ключа, так как ключ перезаписываемый, то фильтру это удаётся. Теперь в болванке уже ключ 01:12:34:16:AB:CD:EF:E0 с естественно неверной контрольной суммой E0. Так как контрольная сумма неверная, то домофон игнорирует эту последовательность при считывании. Этот домофон загубил все перезаписываемые ключи, пока я разбирался в чём дело и почему «сами по себе» меняются данные в ключах. В итоге дубликат к этому домофону сделать не удалось, пришлось идти в обслуживающую организацию и заказывать ключик за 100 рублей. :)
В итоге получаем полезную в хозяйстве штуку за смешные деньги, «болванки» для записи продают тут, хотя у нас в оффлайне можно найти по 30 рублей за штуку, у копировальщиков на рынке по 100 — 150 рублей :). UPD. О том какие типы ключей можно записать этим дубликатором читаем тут. Спасибо за помощь товарищу biverov'у. UPD. Если ключ не пишется следуем совету товарища andrey2596.
Планирую купить+201Добавить в избранноеОбзор понравился+95
+184
Болванки rw1990 не финализируются. Если взять другие ключи с финализацией, то домофон не сможет отличить его от неперезаписываемого ключа DS1990A и, скорее всего, откроет дверь. Но функция финализации не предусмотрена в этом дубликаторе. Для фнализации нужно подать 9В после определённой последовательности данных при записи. Довольно сложно это реализовать. Тут-то смысл в том, что дёшево, быстро, для большинства устройств подойдёт.
Домофон, предположительно Vizit, без опознавательных знаков, точнее они все затёрты.
Номер ключа считывается, но затем что-то идет не так — при кратковременном замыкании D6 и +5 красный светодиод загорается на 1 секунду, а не светится постоянно. Так и должно быть?
Второй iButton не работает. Мог я его испортить во время попыток записи? Возможно он пока в кармане валялся пришел в негодность
Я кратковременным соединением провода идущего от +5 к контакту d6 включаю. Резистор соединен с проводом идущим к d6 контактной линией на брэдборде. Туда же кратковременно подключаю провод от +5
На фотографии плохо видно, но они подключены к линии 15 брэдборда. Я проверял. Там ноги резистора идут вверх и они слишком светлые на снимке.
К сожалению, я не знаю как определить тип болванки, но на днях мне принесут еще несколько — поэксперементирую с ними.
Достал еще 4 бывших в употреблении болванки. Три читаются, но не пишутся, а одна даже не читается. Итого у меня 6 болванок не записалось. Какова вероятность, что все не того типа либо финализированы?
Странно, что красный светодиод после короткого замыкания контактов d6 и +5 зажигается только на секунду. Я не успеваю приложить к контактам второй ключ. Я где-то накосячил?
Из изменений в схеме:
1. Не поставил кнопку, а дотрагиваюсь джампером до контакта.
2. Поставил не 1K, а 2K резистор
3. Питание от USB только на miniUSB Arduino Nano
Я обломался. Пробовал на двух компах. С Win7 и Win10 и с тремя кабелями. Устанавливал софт, вручную пытался обновлять драйвер, скачивал драйвер, переустанавливал софт, пытался бросить (reset нажать, подключить кабель, reset отпустить) и всё-равно пишет «Другие устройства USB2.0_Serial»
Заказывать другой Arduino Nano?
Перевел Win10 в тестовый режим и поставил драйвер CH340. Заработало. Библиотеку загрузил. Ваш скетч загрузил. Сейчас попробую копировать iButton. Спасибо!
Вопрос на засыпку — вы ключи от квартиры столь же часто копируете/теряете? )))
Это намёк на то, что полезность устройства весьма ммм… сомнительна чтоли… Впрочем, правильный кот вполне вполне оправдывает автора (про стремление к рукоблудию я уж не говорю — оно похвально по умолчанию! ))).
Не часто, но иногда обслуживающая организация делает ревизию ключей, ставит домофон на «обучение» на недельку, и все те кто не пользовался ключами в эту неделю попасть к себе в дом не могут. На вопрос: «Почему не работает?» отвечают: «Сломался ключ, покупайте новый!», хотя ключи прекрасно читаются, это бизнес :). А так как у нас есть резервные связки ключей, для родственников и гостей, которыми мы не пользуемся месяцами, то эти ключи перестают работать :(. Именно по этой причине запилил этот дубликатор.
код есть! всегда. просто надо начать выносить мозг этим клоунам
.
не кто не имеет права ограничивать вход в подъезд
.
если чтото не нравится пускай их человек сидит у двери 24\7 и открывает по первому требованию
Домофон — общая собственность жильцов.
Они могут (общим решением) делать с ним всё, что хотят: снять, поставить, выключить, включить, сменить обслуживающую организацию, программировать самостоятельно, и т. д.
Подсказать, что нужно делать?
Обратиться с письменным требованием-претензией в УК. Договор с обслуживающей организацией наверняка заключала она. Как обычно, лучше «коллективно» (распечатайте N заявлений, попросите соседей их подписать, отправьте их отдельными ценными письмами (чтобы была опись) ценностью 1 рубль).
Это может быть долгий путь.
Быстрый и неофициальный — наладить личные отношения с инженером, обслуживающим домофон.
Более неофициальный — прописать самому. Если подойдёт один из «стандартных» — даже вскрывать ничего не надо…
А вообще, я не адвокат. :) Я думаю, это не то место, где нужно это обсуждать.
Более неофициальный — прописать самому. Если подойдёт один из «стандартных»
не подойдет, потому что для входа в режим программирования нужен индвидуальный код домофона, который написан внутри блока электроники. Который не находится в вызывной панели и его нужно еще найти.
С жалобами понятно, на жалобу будет дан официальный ответ, что работа кодов непредусмотрена (хоть мы и знаем, что это не так). Всё.
А дальше только в суд, а это минимум на пол года тягомотина.
P.S.
многие банально не знают про наличии Кодов доступа, по мимо ключей.
а эти «клоуны» намерено скрывают такую возможность работы системы
(всем хочется побольше поиметь с жильцов помимо абонентской платы, это просто бизнес нечего личного )
Дело было в прошлом году: приятель написал заявление в домофонную конторку и ему дали код. А вот когда его отец поступил точно так-же -отказали. Только через суд удалось добиться предоставления кода. Основной аргумент домофонщиков -нарушение уровня безопасности…
То есть когда народ тупо кирпичом дверь подпирает -это безопасно, а если я дал код знакомому -это ужас-ужас…
Я, как житель, категорически против кодов домофонов, т.к. «копирование кода» никак не ограничено. Сегодня по коду ходит родственник жильцов квартиры напротив, завтра код узнал ещё кто-то, послезавтра его знают все наркоманы и любители погрызть семечки в тепле.
Только ключи (таблетки или карты), только по количеству официально проживающих.
Только ключи (таблетки или карты), только по количеству официально проживающих.
которые копируются на раз два.и от которых по сути нет толку кто хочет тот и ходит…
да и вообще если надо звони в любую квартиру и говори почта… откроют в 9 из 10 квартир
.
обще-подъездный домофон по сути не более чем закрывалка двери от сквозняка и ВСЁ
.
хотя некоторые верят что домофон их спасёт от кражы или гопоты
P.S.
да и вообще если угодно можешь домофонщиков хоть каждую неделю заставить менять код…
они не плохие $$ за воздух получают (абонентской платой с дома)
хотя большинство таких нытиков боятся права качать, дальше чем в интернете
P.S.S.
я лично против когда кто-то там решил что он имеет права ограничить доступ. да ещё за это требует $, при этом не неся не какой ответственности материальной
которые копируются на раз два.и от которых по сути нет толку кто хочет тот и ходит…
Чтобы скопировать — нужно иметь оригинал и потратить 150 рублей. Это хоть какой-то барьер от желающих поссать в подъезде, в отличие от кода, нацарапанного на двери.
Но с тезисом «домофонная компания гребёт бабло из воздуха» согласен, умножил сумму из квитанции на число квартир в подъезде, за год сумма превышает стоимость домофона.
А если соскочить с обслуживания — кто-то должен будет взвалить на себя работу по замене ключей, вызове ремонтников в случае поломки домофона и сбору денег на этот ремонт. И скандалам с теми кто деньги не сдаёт — им ведь вход в подъезд не запретишь, а переговорным устройством пользоваться им м.б. и не надо.
Или не станет ждать и пойдёт в ссать в другой подъезд.
Да и жители бывают разные, некоторые таких «просачивающихся» принципиально не пускают, «открывай своим ключом или звони к кому пришёл». Особенно если это пьяный бомж или группа быдлодетей с «ягуаром» и семечками.
Коды меняются.
Для своего домофона я нашел алгоритм без мастер-ключей- требуется подтверждающее нажатие на кнопку из квартиры для смены.
п.с. ежемесячная плата раньше даже покрывала стоимость домофона (основного блока)
Встречались такие. Залез в домофон, вытащил из панельки eeprom-ку и вычитал содержимое. Для визитов есть софт, который показывает по дампу все пароли, ну и ключи
В памяти домофона скажем триста ячеек, квартир в доме 40. Настройщики вбивают эти сорок ключей и не удосуживаются обнулить остальные 260. А они то по умолчанию забиты единицами/нулями/эфками.
Гнать взашей эту шарашкину контору. У нас тоже одно время обслуживала подобная хитрожопая фирма. То ключи резко переставали у всех работать, то домофон неделями был выключен. Потом заключили договор на обслуживание с другой организацией и уже шестой год никаких проблем.
С тех пор ни разу ключи не меняли, хотя сам домофон был год назад заменён на новый.
И вроде бы ключи они бесплатно в офисе раздают, по предъявлению паспорта.
Хм…
У меня компания обслуживающая домофон, новый (вместо утерянного) ключ вообще бесплатно выдала, единственное — пришлось ждать приезда специалиста пару дней, а когда я попросил несколько про запас, тогда пришлось заплатить, но символически, по 50р. за ключ…
Спасибо за обзор и скетч, как раз такой копировщик понадобился оперативно, пока для RECTO контроллеры идут.Полезная штука, дополните только, что для записи скетча необходимо еще библиотеку OneWire подключить. Ну и где ее скачать, не все об этом знают.
Однозначно плюс.
Интересно, я вчера искал эту библиотеку у себя на компе и не нашел, решил что она подтягивается из репозатория. В одном из файлов нашел только ссылку на загрузку этой библиотеки. На всякий случай добавил ссылку в обзоре.
Да, подключать нужно. Установил себе SSD, и естественно все документы и прочие пользовательские данные перенёс на другой раздел. А эта библиотека была установлена в папку документы/arduino/library, которая естественно переехала на другой раздел. Искал не там, и естественно не нашел. В общем «тупанул» :)
Попробую в «двух словах» объяснить. Есть ключи которые можно перезаписывать, например rw1990. Есть ключи которые программируются на заводе и не могут быть перепрограммированы никаким образом, например DS1990A. Как перезаписать ключ с помощью дубликатора:
1. Собрать дубликатор.
2. Приложить исходный ключ к считывателю.
3. Нажать кнопку.
4. Приложить ключ который хотим перепрограммировать.
Всё.
Сначала обрадовался, что наконец для таблеток дубликатор, а почитал и опечален. Из всех составляющих нет главного — считывателя. ТС от какого-то прибора использовал, вот только у другой публики, таких неведомых приборов не водится. Где можно приобресть эту штуку, или как она называется?
Вы прикалываетесь? Считыватель это всего лишь 2 провода, нет считывателя возьмите гнездо от батарейки с материнской платы, нет гнзда — прижимайте 2 провода пальцами :) Купите вконце концов на али или ебее 200р стоит.
А вы считаете что все гении в электронике? Очевидные для вас вещи, не всегда понятны малопонимающим в этой области. Теперь, канешна, стыдно, что сам не догадался. Но в любом случае, спасибо, что не заминусили.
Если человек не разбирался с ключами, да еще и в электронике плавает, то может пропустить инфу даже если она выделена жирным красным цветом большого размера.
Потом когда дойдет, сидит и плюется, да вот… оно все так просто :( :)
Наверное, повторюсь не в первый (и даже не в десятый) раз, но, вижу, некоторым это всё же не известно: «традиция» в том, чтобы фотографировать купленный товар на фоне домашних питомцев как доказательство факта его приобретения. А не просто «котофото» и прочая «милота». :) В Вашем случае вряд ли возникнут сомнения в том, что Вы товар действительно покупали, а не взяли фото в Сети. :)
Коты в конце обзора — это уже просто традиция.
Не могу припомнить случая, когда у автора требовали фотографий, подтверждающих факт покупки.
Фото из сети в 99% случаев легко вычисляются.
Отличная статья, спасибо за скеч, фото и разжёвывание всех моментов.
Буду делать себе такой же.
ЗЫ плюсануть не могу, кармы не хватат, поэтому от меня +1 за кадром
Спасибо за обзор. + Вот может кому будет интересно. Дубликатор на почти все случаи жизни. Правда не на ардуино (посложнее в исполнении), но тоже ничего страшного. Сам собирал (сначала на макетке, потом ЛУТом) всё с первого раза завелось.
А есть и на ардуино. Его я не пробовал, но люди пишут, что работает.
Такой просится собрать на на тиньке в маленьком корпусе и батарейкой литиевой на 3В.
Чтобы размер был с обычный домофонный ключ. А то такую хреновину как то не очень в кармане носить.
А в этом можно до кучи собрать бутфорсер с экранчиком, пароли на цифровых замках перебирать, как в голливудсктх фильмах.
А зачем стоять у домофона двое суток?
и при количестве битности 6 байт, вам прийдется ждать гораздо больше чем 10К вариантов у Эппла :)), годиков так на 1000+
Хочу добавить, что существуют несколько систем домофонов, с разными протоколами. Хотя все они будут иметь внешне одинаковый домофонный ключ iButton (металлическая таблетка ключа). Это протоколы Metakom, Cyfral и собственно Dallas (о котором речь в статье)). Статья подходит только тем, у кого домофон работает по протоколу Dallas. Есть заготовки под конкретный протокол, так и универсальные, которые можно запрограммировать под любую систему.
P.S. С iButton работал еще в 90х :). Например с логгерами температуры (DS1921H) и управление ими с КПК Palm :). Собственный аппаратно-программные разработки.
Но с поправками, сегодня проверил цифрал, метаком, визит. Приняли «универсальный» ключик, как родной. Дело в том, что все (99 ,9 %) устройства понимают ключи Даллас, если конечно не отключили инженеры обслуживающей организации, и если там вшит нужный ключик, то дверь откроется. Например, есть у меня оригинальный ключ от Визита, домофон по этому ключу в подъезд пускает, обозреваемый дубликатор прочитать этот ключ не может, НО «универсальный» ключ прошитый этим дубликатором домофон принимает и открывает дверь. Фраза
Статья подходит только тем, у кого домофон работает по протоколу Dallas.
означает, что подходит для большинства устройств. Другое дело если в домофоне установлен фильтр. Но его выявить тоже можно, например как тот, который меняет ключ. Если приложить неперезаписываемый «левый» ключ, домофон начинает «визжать» Error. Если приложить перезаписываемый, тупо молчит, ничего не происходит, как будто нет ключа. И это понятно, ключ перезаписан, crc не совпадает, ошибка чтения = отсутствие ключа.
Ну да конечно, 01 в конце стоять не может, прочтите обзор, там всё написано.
Первый байт, передаваемый из памяти ключа, является кодом типа устройства — family code, всегда 01.
и теперь посмотрите на Ваш ключик:
E1 00 36 5A 11 40 BE 01 – код универсального ключа в формате Даллас, для устаревших моделей домофонов марки Vizit.
Так что если вы хотите прошить этот ключ этим дубликатором, нужно байты записать в обратном порядке, начиная с 01:be:40:11:5a:36:00:e1.
Разные программаторы по разному выводят ключ, одни начиная с 01, другие с CRC. Интернеты вам в помощь.
Купил Arduino nano v3, подключил на комп по USB — горит POW и мигает L, а в трее вылезло сообщение «Одно из подключенных к этому компьютеру USB-устройств работает неправильно, и Windows не удаётся опознать его». Попробовал подключить на другом компе — тоже самое.
Мне брак попался или я что-то сделал неправильно?
Подскажите пожалуйста. Собрал сей девайс. Прикупил 10 болванок перезаписуемых. Все работает отлично, но в процессе тестирования, по дурочке в строке адреса универсального ключа изменил первый байт с 01 на 00 и попытался прошить болванку. После записи болванка умерла (точне 2шт умерло) После записи она не читается и не перезаписывается. Это всё — трупы?
Ключи не умирают! Другой скетч их видит (правда он не может ничего записать, только читает).
Нашел крайне костыльный способ решени проблемы. Для «лечения» подобного ключа необходимо закомментировать return в приведенном куске кода:
void loop(){
if (!ibutton.search (addr)){//read attached ibutton and asign value to buffer
ibutton.reset_search();
delay(200);
return;
}
Запустить скетч(с заранее указанным «правильным» family code), прижать таблетку к контактам, отправляем в монитор порта «w».
И происходит маленькое чудо! Ключ успешно пишется. Можно убирать коммент, ключ снова определяется в штатном режиме.
Заготовки ТМ08 и ТМ08v2, RW1990, КС-4ТМ это полные аналоги, чип ключа используется один и тот же, различия могут быть в держателе (ручке), TM08v2 проходят предпродажную проверку на запись.
Ясно!
Как приедет ардуино (пара недель, надеюсь), буду пробовать, начну тогда с RW1990, но постараюсь попробовать и ТМ08v2.
Т.к. цель, кроме познавательной, еще и показать место компании, которая обслуживает домофон, которая наотрез не говорит коды, заставляя всех делать ключи по 150р. Возможно так же придется попробовать болванки ТМ08Vi-2 (уверяют, что они не фильтруются новыми Vizit, а у меня, похоже, как раз такой).
Пользуясь случаем, хочу выразить большой респект за данный дубликатор :). И если всё получится, с меня отчет по совместимости с ТМ08v2 и ТМ08Vi-2.
Ну вот, за 2 недели дошла из Китая плата с Ардуино. Соорудил по-быстрому схему и опробовал запись в 3 версии меток: RW1990, TM08v2 и TM-08 VZT F.
ТМ08Vi-2 пока опробовать не получилось из-за их отсутствия.
Ключи данным скетчем успешно записались во все 3 типа меток! Т.е. опробованные ТМ совместимы по методу записи с RW1990 и никаких проблем не возникло. Аллилуйя, ура, занавес :).
Домофон все 3 ключа скушал, правда это еще не целевой домофон, более простой вариант. Испытания на совместимость с новым Визитом еще впереди.
up. Для отчетности. Резистор R2 использовал номиналом 2.7К.
А жаль, т.к. на них возлагал определенные надежды. Остальные целевой домофон отфильтровал, использованный код скомпроментировал и похоже занес в свой ЧС. Думал продолжить эксперимент как раз с ТМ08Vi-2, но пока не купил.
я заказал еще пару болванок ТМ08Vi, мож их этот скетч увидит
а разница между vi и vi2 как пишут только «улучшенной стабильностью при считывания ключа панелью. „
Купил на рынке две болванки без надписей, пробовал записать универсальные ключи. Не пишутся или записывается что то случайное. путем экспериментов был установлен подтягивающий резистор на 200 ом и только после этого ключи записались.
не знаю. на них нет надписей.
Вчера записал на две разные ключи, один подошел. сегодня хотел на другой тоже такой ключ записать а он не пишется(остается прежний).
Очень понравилась статья. Заказал ключи, но оказалось, что родной ключ cyfral, модель домофона на определил, но скорее всего метаком. Облазил все статьи, но простого рецепта чтения ключей нет, да и с записью как повезет (самому писать было лень, лучше часы доделаю). Универсальные ключи домофон не принимает, почтальон со связкой ходит. Уже думал покупать оригинальный ключ cyfral, но приложил болванку и домофон пикнул на ключ (на ключи с FF в начале домофон не реагирует). Вызвал фирму и за копейки привязал одну болванку со случайным номером (в режиме программирования болванка с FF тоже не определилась). Ну а дальше все просто. Привет Брянску и заводу кремний с его k1233kt1.
блин, спросонья что ли не увидел… спасибо, но все равно не помогло, ключи оказались не перезаписываемые, заказал болванок RW1990. скетч с описанием сохранил, понравился своей простотой подключения к ключу.
Контактные ключи. Официальное название Touch memory (сокр. TM) или iButton. Бытовое название: «таблетки».
Dallas. В большинстве случаев под TM подразумевается ключ семейства Dallas (например, DS1990A). С этими ключами работает множество устройств: Vizit, Eltis, Z-5R, С2000-2 и др.
Cyfral. Эти домофоны работают только с ключами DC2000А и Цифрал-КП1.
Metakom. Под эти домофоны разработаны ключи К1233КТ2. Эти ключи годятся и для многих других контроллеров.
Почему у меня не записываются ключи? Есть целая горсть ключей, но ни один не пишется. Только считываются, а после «записи» код не меняется. Это как раз тот случай с неперезаписываемыми ключами?
Добрый день!
Собрал все по схеме, только резисторов подходящих не было, поставил 1.6 кОм и вместо 10кОм поставил 2 по 5.1кОм. Код считывается, но не перезаписывает, болванки 1990А-F5, может изза этого?
И еще вопрос: что за сноска GND и +5v? случайно не нужно подавать еще питания?
Собрал все по схеме, только резисторов подходящих не было, поставил 1.6 кОм и вместо 10кОм поставил 2 по 5.1кОм.
Это норма.
Код считывается, но не перезаписывает, болванки 1990А-F5, может изза этого?
Тыщу раз уже расписано выше: ключи DS1990A-F5, TM1990A-F5 — не перезаписываемые, то есть их один раз программируют на заводе и всё, код внутри ключа зашивается один раз и на всегда.
Проверенные на запись ключи: RW1990, TM08v2 и TM-08 VZT F.
И еще вопрос: что за сноска GND и +5v? случайно не нужно подавать еще питания?
Спасибо!!!
Очень пригодилось. Работа очень понравилась.
Andrey_n303 августа 2016, 10:53
0
Ребят подскажите, у меня скетч не компилируется.
Arduino: 1.6.10 (Windows 7), Плата:«Arduino Nano, ATmega328»
C:\Users\Андрей\Documents\Arduino\sketch_aug03a\sketch_aug03a.ino: In function 'void loop()':
sketch_aug03a:74: error: 'writeByte' was not declared in this scope
exit status 1
'writeByte' was not declared in this scope
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
ОтветитьСообщить
avatar
Andrey_n303 августа 2016, 11:20
0
Вопрос решен, установил иде 1.6.9 все скомпилировалось.
ОтветитьСообщить
avatar
kvolk13 сентября 2016, 11:20
0
Проблема в русских буквах в имени пользователя — может кому-нибудь пригодится.
собрал схему буквально вчера. Еще не успел приобрести и опробовать болванки другого типа.
На днях думаю найду, тогда отпишусь.
А пока на счет ключа TM08v2…
Скетч на принудительное чтение показал ключ типа 00-00-00-00-00-00.
Это означает что ключ не считан? Или это ключ такой и есть?
Похоже, но это не так. Такое поведение замечено на всех ключах которые есть в семье, а это 4 шт. И при этом они продолжают работать с домофоном (КС-ДОМОФОН)
При попытке их восстановить таким способом, нечего не происходит.
Программатор сообщает о том, что код успешно записан и сразу же выполняет его чтение на что в ответ и получает ( 0 0 0 0 0 0 0 0 )
После всех этих манипуляций он все еще успешно продолжает работать с домофоном.
Приобрел сегодня ключи двух типов, rw1990A и tm08v2.
Так вот, rw1990A без проблем читается и пишется, а вот с болванкой tm08v2 проблема остается, потому пока вообще ее отложил в сторону.
Сходил в сервис, там уже на более продвинутом дубликаторе с моего «домашнего» ключа tm08v2 считали дамп и залили на болванку rw1990a.
Этот дамп я уже смог прочитать схемой на arduino, только вот этот ключ дверь не открывает)
Доброго дня. У меня получается так, что болванки RW1990 пишутся только с резистором 330-390Ohm, с большим номиналом только читаются. И 2 безызвестные болванки читаются и пишутся с указанными автором номиналами. Спасибо вам за проделанную работу.
Подскажите, можно ли прописать 2 кода в один ключ? Если не трудно, объясните как или дайте ссылку на скетч. Заранее спасибо.
Я тоже грешил на напряжение — питание от усб компьютера идет 4.71В, но я подключал адаптер выдающий 5.02В — тоже самое. А ведь на магазинных программаторах как-то прописывают 2 кода — у моего товарища недавно поставили вторую дверь и тоже с домофоном — и ключ эту дверь не открывает — так он дал свой старый ключ установщикам — теперь его ключ открывает обе двери. Или они просто считали его код ключа и добавили в память нового домофона просто?
Здравствуйте! Собрал данное устройство только на Arduino Uno (номиналы резисторов 1к и 10к). Как reader работает идеально, а как writer может записать считанный код верно, а может записать код левый, у которого даже CRC не правильный. Может кто подскажет возможную проблему. Тут прочитал, «что болванки RW1990 пишутся только с резистором 330-390Ohm», так может номинал уменьшить?
Записывается всегда разный код. Откуда он берется, не понятно. Но, что пишет (записываемый код в PuTTY показывается), то и записывается. Значит, номинал резистора не причем. Жаль, что не дает вставить скриншот. От болванок тоже зависимости не нашел, на любой может и нормально запись пройти и криво.
Придётся заказать.
Кстати, в сети попадалась информация, что существуют разные версии болванок rw1990 («Новый код для RW1990 записывается инверсно. Как обычно передача начинается с family code, младшим байтом вперед, но биты в каждом байте инвертированы. Больше отличий в протоколах нет»). Ещё где-то попадалось, что эти болванки при записи чувствительны к помехам. Может дело в этом, попробую укоротить провода.
Получилось!
С теми же самыми болванками попробовал еще поэкспериментировать. Более короткие провода сделал, потом начал экспериментировать с сопротивлением R2. В итоге с 500 Ом и какой-то магией получилось с n-ной попытки.
Похоже, действительно помехи. Либо ардуина…
Разбирался со всем этим, по ошибке запорол 4 ключа, зашил не полный код. Грубо говоря выглядело следующим образом
byte newID[8] = {0x00, 0x00, 0x00, 0x00, 0x00 };
Возможно теперь как-либо восстановить ключ? Прикладывая его снова, он не читается, будто его нет!
UPD. В скетч от 04.09.2016 добавлена функция восстановления ключей с неправильным family code, для этого необходимо приложить ключ к считывателю и удерживать кнопку в течение 6 секунд. После этого в ключ будет записан «универсальный» ключ
Комрады, у меня следующее предложение, а реально ли добавить проверку того, что в ключ записан действительно тот код, который мы считали? И после записи нам бы сигнализировал светодиод. К примеру у меня были проблемы с некоторыми ключами, когда запись происходила не с первого раза.
Доброе утро.
Не получается у меня всё никак вывести на дисплей считываемую информацию. Скетч работает без дисплея, а как ввожу в скетч для вывода на дисплей, программа ругается на ошибку в скетче и так далее:
Отличный обзор.
Наконец дошли руки тоже сделать такой дубликатор.
С резистором 2,2 КОм ключ также не записывался как у Tosha.
Но поставил на 390 Ом — ключ записался, домофон открыл.
Болванки RW1990 с Алиэкспресс, система — Windows XP SP3, среда — Arduino IDE 1.0.6.
(Т.к. под ХР в более поздних версиях программы не компилируются скечи.
Возможно нужно доустанавливать какие-то файлы).
Пробовал пока на 2-х ключах. Пока записывает нормально.
На одном форуме писали, что записывали на резисторе 220 Ом.
Или 240 Ом.
Или, вот тоже, похоже, в каком-то серьезном исследовании используют резистор на 200 Ом.
"...RW1990.2 стабильно записывается при номинале подтягивающего резистора 200 Ом".
Правда там RW1990.2 и дубликаторы не на Ардуине (Microchip PIC16F88 и второй на ATMEGA16).
у меня один ключ записался с номиналом резистора около 300 Ом, а другие два ключа записались только при уменьшении номинала резистора до 170 Ом. Я поставил переменный резистор 1,5 кОм и при записи ключей подбираю для каждого ключа номинал резистора при котором данный ключ пишется.
Всё собрал — работает!
Интересуюсь именно программой.
Для копирования ключа можно приложить исходный ключ, его номер считается в архив [addr], ключ убираю, кратковременно нажимаю кнопку, загорается светодиод и программа ждёт пока не будет приложена болванка. Как только болванка приложена — в неё записывается новый ID из исходного ключа.
Вопрос в следующем: почему останавливается loop() и на какой строке?
Вижу, что автор бывает тут и надеюсь на ответ, спасибо!
Разобрался, цикл loop() не останавливается.
Пока не приложен ключ, условие «if (!ibutton.search (addr))» выполняется и код продолжается до строки «if (val <= 5) return», после чего происходит возврат к началу loop(). Т.о. кроме опроса состояния кнопки и нового поиска устройства на OneWire ничего не происходит.
Подскажите, пожалуйста, где можно прочитать про команды «ibutton.write(0xD1);» и «ibutton.write(0xD5);» — понятно, что это часть алгоритма записи на RW1990, но хотелось бы почитать подробнее. С ходу не нашел информации про эти коды. Везде только «0x33» и «0х0F».
Пришло время разобрать протокол записи на болванки rw1990. Команда считывания 8-байтного кода у них идентична с ключами dallas.
Запись на rw1990 происходит так:
1) Посылаем импульс reset, и ожидаем presence импульс;
2) Отправляем команду 0xD1, тем самым разрешаем запись;
3) Тайм-слот, посылаем логический «0»;
4) Посылаем импульс reset и ожидаем presence импульс;
5) Отправляем команду записи, 0xD5;
6) Посылаем 8-байтный код(все биты инвертированы), передача отличается от протокола oneWire;
7) Посылаем импульс reset и ожидаем presence импульс;
8) Отправляем команду 0xD1, тем самым запрещаем запись;
9) Тайм-слот, посылаем логический «1».
Если судить по той статье, диаграммам и коду, то логическая «1» — это посылка низкого сигнала, задержка 6us, высокий сигнал. Логический «0» — то же самое, только задержка уже 60us. Причем не важно, посылаем ли мы их после команды 0xD1 или посылаем бит данных.
А вот в скетче в этой статье после посылки команды 0xD1 все делается правильно, а в функции writeByte задержка 60us используется при посылке бита 1, а не 0.
Ошибка?
А дело оказалось в том, что болванки RW1990 бывают двух видов: так называемые RW1990.1 и RW1990.2.
В RW1990.1 данные записываются инверсно!
Так что скетч рассчитан именно на них.
для себя я вообще не ставил светодиод на 13 пин. не вижу в нем смысла. выложил ту схему которая есть в сети. если человеку надо ограничить яркость светодиода то тогда согласен что нужно установить резистор.
Докупил дубликатор для RFID ключей на 125 кГц. Доработал данный дубликатор. Добавил в него дубликатор на arduino nano 3 для копирования контактных ключей. Для питания arduino nano 3 использовал преобразователь с 0,9 в до 5 в.Удалил с платки выходной разъем USB. Укоротил платку, чтобы вошла в корпус. В качестве контактора для ключей использовал держатель для батарейки Cr2032 со старой материнской платы от компьютера. Кнопку взял из сломанного поттера (чайника). Все детали разместил внутри дубликатора. Подключил внешний светодиод через 1 ком на выход D13 arduino. Взял синий. Его хорошо видно через стекло дубликатора. Получился универсальный дубликатор. Питание подается сразу на оба дубликатора. Работают независимо друг от друга. Через разъем мини USB можно подключать к компу без включения внутреннего питания. Посмотреть что прописано в контактных ключах.
Не спорю — красивее. Но делалось из того что есть под рукой, а заказывать в Китае и ждать 1-1,5 месяца как-то не хотелось. Можно было заказать контактор для ключа сразу со светодиодом. Я показал саму идею совмещения программаторов. Видно, что Arduino nano 3 спокойно входит внутрь. Есть доступ к разъему мини USB. Есть место для преобразователя с 3 в до 5 в для питания Arduino от двух батареек. А исполнение каждый делает исходя из своих возможностей.
А, ну тогда нормально, сбило с толку что на фото выше светодиод горит при не нажатой кнопке, ну и желательно диаметром 16 мм брать, 12 мм маловата если пальцы толстые, и кнопка без выступа.
На 5V. Чаще всего в кнопке стоит просто светодиод на 3V, а к кнопке прилагается дополнительный резистор. Он включается последовательно со светодиодом снаружи кнопки.В зависимости от рабочего напряжения, сопротивление этого резистора будет разным. При выборе кнопки указывать 5V. На фото выше виден этот резистор в пакетике с кнопкой. Если в наборе есть резистор, то его обязательно припаять последовательно с выводом светодиода. Бывают кнопки у которых этот резистор уже установлен внутри. Некоторые брали кнопку на 12V, включали без резистора напрямую к 12V. Светодиод сразу сгорал. Будьте внимательны с этим. У выводов светодиода есть обозначение + и -. Минус соединяем с общим проводом. Плюс через сопротивление подключаем к выводу 13 pin.
Интересная идея, решил сделать также, но появился такой вопрос. Если поставить повышайку после выключателя, то её выход постоянно подключен к ардуино, тогда при подключении ардуино к компу на выход повышайки идёт 5в, не сгорит ли она? Повышайка у меня такая, нашёл в закромах, 0.9-5в до 5в. И какая повышайка установлена у вас, и как подключена? не нашёл такую на али.
Не сгорит. Схема повышайки сделана так, выходной диод на ней стоит между выходным плюсом и остальной схемой. Я меня стоит такая, как на картинке. Их много вариантов и с разъемами и без. Схема выхода у всех одинаковая. У меня вход повышайки подключен после выключателя, чтобы постоянно не садить батарейку. Выход напрямую к питанию ардуино. При подключению к компьютеру повышайку не задействую. Питание на ардуино идет по USB, а повышайка развязана от этого питания своим выходным диодом. Все работает отлично.
Как не странно, я на днях сделал почти также ;-), с нижнего торца было какое то отверстие, расточил его всего на пару мм, повышайку поставил под плату.
Так у вас разъем микро USB, а у меня мини USB. У вас считыватель со встроенным светодиодом. У меня кнопка со светодиодом. Она выше. Пришлось сдвигать ардуино вбок, чтобы кнопка вошла по глубине. А так получился универсальный копировщик ключей от двух мизинчиковых батареек. Тоже все работает отлично. Отверстие внизу и на верхней крышке для выхода звука от пищалки. Надеюсь светодиод в считывателе подключили через ограничительное сопротивление.
Светодиод из считывателя вытащил, так как он всё равно при копировании закрыватся ключём и его невидно. Поставил над зелёной кнопкой. подключил согласно схеме через 330 ом. А отверстия на лиц.панели остались видимо от старых версий дубликатора, которые работали на кроне и пищалка была пьезо типа наших зп. Там внутри даже остались полукруглые бортики вокруг этих щелей под уствновку зп. Которые пришлось сломать чтоб поставить считыватель.
Светодиоды должны включаться с использованием ограничивающего ток через него резистора.Резистор должен быть расчитан на требуемый уровень тока по закону Ома. Для многих светодиодов рабочий ток составляет около 20 мА, при меньшем токе свет будет тусклее. При большем токе светодиод сразу или быстрее выйдетиз строя. При расчете тока учитывают напряжение на светодиоде.У Arduino рабочее напряжение выхода 5 в, максимальный выходной ток 40 мА.
Ключи DS 1990 не перезаписываемые. Они программируются при производстве только один раз. Нужны ключи RW1990. DS можно только считать и с него сделать копию на RW.
Подскажите пожалуйста, TM08 Vi-2 поддерживают финализацию и вроде как протокол записи совместим, а как, собственно, делается финализация? Я понимаю, что этой прошивкой никак, я готов сам изменить скетч и схему — в этом разбираюсь. Просто никак не могу найти в интернете документации с протоколами на все эти болванки, не понимаю как выпускают не задокументированные чипы и как потом делают дубликаторы для них, если нет информации о протоколе.
Привет, народ!
Суну и я свой пятак. Собрал макетку для Уны, добавил пищалку. Скетч доработал — использовал другие пинЫ, для компактности макетки. «Причесал» вывод на экран, чтобы строки не сползали.
Мой вариант скетча (не получается убрать в спойлер, извиняюсь)):
//Чтобы прописать в ключ номер из массива ReadID[8], после запуска (до-ми-соль) сразу нажать коротко кнопку на шильде (загорится зелёный диод на ардуине) и после этого приложить ключ - прошьётся.
//Чтобы сделать копию какого-то ключа, надо после запуска (до-ми-соль) считать оригинал, нажать коротко кнопку на шильде (загорится зелёный диод на ардуине) и после этого приложить ключ - прошьётся.
//Чтобы прошить в ключ FF..FF, надо после запуска (до-ми-соль) нажать кнопку на шильде (загорится зелёный диод на ардуине) и держать её более 3-х сек (досчитает до 6) и после этого приложить ключ - прошьётся.
#include <OneWire.h>
#define pin 8
OneWire ibutton (pin); // Пин для подлючения iButton (Data)
byte addr[8];
//byte ReadID[8] = {0x01, 0xBE, 0x40, 0x11, 0x5A, 0x36, 0x00, 0xE1}; //– код универсального ключа, для Vizit
//byte ReadID[8] = {0x01, 0xBE, 0x40, 0x11, 0x5A, 0x56, 0x00, 0xBB}; //- проверен работает
//byte ReadID[8] = {0x01, 0xBE, 0x40, 0x11, 0x00, 0x00, 0x00, 0x77}; //- проверен работает
//byte ReadID[8] = {0x01, 0xBE, 0x40, 0x11, 0x0A, 0x00, 0x00, 0x1D}; //- проверен работает Визит иногда КЕЙМАНЫ
byte ReadID[8] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x90, 0x19, 0xFF}; //???-Отлично работает на старых домофонах
//byte ReadID[8] = {0x01, 0x6F, 0x2E, 0x88, 0x8A, 0x00, 0x00, 0x4D}; //???-Открывать что-то должен
//byte ReadID[8] = {0x01, 0x53, 0xD4, 0xFE, 0x00, 0x00, 0x7E, 0x88}; //???-Cyfral, Metakom
//byte ReadID[8] = {0x01, 0x53, 0xD4, 0xFE, 0x00, 0x00, 0x00, 0x6F}; //???-домофоны Визит (Vizit) - до 99%
//byte ReadID[8] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D}; //???-домофоны Cyfral CCD-20 - до 70%
//byte ReadID[8] = {0x01, 0x00, 0xBE, 0x11, 0xAA, 0x00, 0x00, 0xFB}; //???-домофоны Кейман (KEYMAN)
//byte ReadID[8] = {0x01, 0x76, 0xB8, 0x2E, 0x0F, 0x00, 0x00, 0x5C}; //???-домофоны Форвард
//byte ReadID[8] = {0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F }; // "Универсальный"
//byte ReadID[8] = {0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x9B}; //- проверен Визит, Метакомы, КОНДОР - выходит в сервис!!!
//byte ReadID[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x14}; //???-Открываает 98% Метаком и некоторые Цифрал
const int buttonPin = 9;
const int ledPin = 13;
const int speakerPin = 12;
int buttonState = 0;
int writeflag = 0;
int readflag = 0;
int val = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(speakerPin, OUTPUT);
Serial.begin(115200);
tone(speakerPin,3*261);
delay(150);
tone(speakerPin,3*329);
delay(150);
tone(speakerPin,3*392);
delay(250);
noTone(speakerPin);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
readflag = 1;
writeflag = 1;
digitalWrite(ledPin, HIGH);
tone(speakerPin,3*392);
val++;
if (val > 6) val = 6;
Serial.println(val);
delay(500);
noTone(speakerPin);
}
else {
val = 0;
}
if (!ibutton.search (addr)) {
ibutton.reset_search();
delay(50);
if (val <= 5) return;
val = 0;
Serial.println();
}
digitalWrite(ledPin, HIGH);
delay(50);
for (byte x = 0; x < 8; x++) {
Serial.print(addr[x], HEX);
if (readflag == 0) {
ReadID[x] = (addr[x]);
}
Serial.print(":");
}
byte crc; // Проверка контрольной суммы
crc = ibutton.crc8(addr, 7);
Serial.print(" CRC:");
Serial.println(crc, HEX);
digitalWrite(ledPin, LOW);
tone(speakerPin,4*392);
delay(100);
noTone(speakerPin);
if ((writeflag == 1) or (Serial.read() == 'w')) {
ibutton.skip(); ibutton.reset(); ibutton.write(0x33);
Serial.println();
Serial.println(" ID before write:");
for (byte x = 0; x < 8; x++) {
Serial.print(ibutton.read(), HEX);
Serial.print(':');
}
Serial.println();
// send reset
ibutton.skip();
ibutton.reset();
// send 0xD1
ibutton.write(0xD1);
// send logical 0
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
Serial.println();
Serial.println(" Writing iButton ID:");
byte newID[8] = { (ReadID[0]), (ReadID[1]), (ReadID[2]), (ReadID[3]), (ReadID[4]), (ReadID[5]), (ReadID[6]), (ReadID[7]) };
ibutton.skip();
ibutton.reset();
ibutton.write(0xD5);
for (byte x = 0; x < 8; x++) {
writeByte(newID[x]);
Serial.print(newID[x], HEX);
Serial.print(':');
}
Serial.println();
Serial.println();
ibutton.reset();
// send 0xD1
ibutton.write(0xD1);
//send logical 1
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
writeflag = 0;
readflag = 0;
digitalWrite(ledPin, LOW);
}
}
int writeByte(byte data) {
int data_bit;
for (data_bit = 0; data_bit < 8; data_bit++) {
if (data & 1) {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
} else {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
}
data = data >> 1;
}
return 0;
}
На Алишке закупился болванками по ~40 руб\шт. Прошил их «вездеходными» номерами (см. в начале скетча) и пошёл проверять в своём подъезде. Там стоит Визит. Подошли первые пять кодов. Скачал инструкцию от домофона и эти ключи стёр из него все по одному. Профит: вот уже 2 недели НИКАКОЙ рекламы в ящиках!!! А почту и квитанции приносят.
Вставлю свои пять копеек. Собрал устройство, заказал RW 1990 по ссылке от автора. Читает, но не шьёт. Поставил подстроечный R2 — всё равно не шьёт при любом значении. Попробовал с другим ключом — шьёт, и без проблем. Купил ключи в Чипе и Дипе — тоже шьёт. ( кстати, там два из пятнадцати изначально убитые были, но прекрасно восстановились).
Так что скорее всего мне китайцы Read Only прислали. Пытаюсь с ними поругаться, но скорее всего бесполезно — говорят, что устройство самодельное, оттого возможно и не работает. Попробуйте, говорят, на другом проверить. Кстати, судя по почте, на которую они просили видео работы прислать, это Banggood.
Вот уже больше года назад собрал такой дубликатор,
и каждый раз не перестаю убеждаться, насколько это нужная вещь.
Но нужно открыть один домофон, и ни один универсальный ключ не подходит.
Кодами с клавиатуры не открывается.
Коды для ключей, которые по поиску на первой странице яндекса не подходят.
(Это 0x01, 0xBE, 0x40, 0x11, 0x5A, 0x56, 0x00, 0xBB и другие).
Возможно может кто-нибудь подскажет еще универсальные коды?
Или другие коды с клавиатуры?
Т.к. почтальоны заходят, и вряд ли они делали специальный ключ именно для этого домофона.
Домофон обычный визит типа такого.
сделал все как автор но после прошивки включаю монитор порта и прислоняю ключ rw1990 и у меня в одну строчку бесконечно пишет вот такую ерунду,
⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮Y⸮⸮⸮⸮⸮i⸮⸮Y⸮M⸮mzY⸮⸮y⸮Y⸮x⸮jY⸮y⸮x⸮⸮⸮⸮y⸮k⸮⸮⸮x⸮Y⸮x⸮⸮⸮⸮⸮mk⸮Y⸮zY⸮Y⸮k1⸮zY⸮Kqk⸮⸮⸮⸮M⸮⸮⸮k1⸮zy⸮⸮mK1⸮mY⸮K1zY⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮Y⸮k⸮⸮mYQYQ⸮⸮K1⸮y⸮zY⸮⸮Mx⸮Kqy⸮⸮⸮k⸮x⸮K1KqY⸮MY⸮M⸮⸮⸮z⸮k⸮⸮y⸮⸮Mk⸮⸮⸮⸮⸮ɗM⸮Mk⸮⸮⸮⸮zy⸮⸮⸮⸮⸮m⸮MK1y⸮MOq⸮y⸮k⸮⸮⸮⸮⸮⸮⸮Y⸮k⸮y⸮YQk1⸮⸮MY⸮⸮q⸮⸮Y⸮⸮YٕMK1zY⸮x⸮Y⸮MK1Y⸮Y⸮Z⸮Y⸮x⸮⸮⸮⸮Z⸮⸮⸮⸮qzY⸮⸮MKqY⸮⸮mK1Oq⸮y⸮Y⸮x⸮⸮MY⸮⸮⸮zY⸮x⸮Y⸮k⸮Y⸮k⸮zY⸮KqzY⸮k⸮zY⸮K1x⸮zY⸮⸮Mk]⸮⸮y⸮k⸮OqK1x⸮Y⸮⸮y⸮Y⸮z
пробовал менять резисторы не помогает, что может быть не так?
Купил arduino nano (micro usb)брал тут
В корпус стал как родной и пилить не чего не надо)))
я к тому что если делать в корпусе от Powerbank то это идеальное решение
Он собран на ATMEGA168P
Здравствуйте, купил в Леруа 5 ключей. Написано ts-1990a f-5, в интернете дельного по ним ничего не нашел. Не прошиваются. Может кто знает, что-то неправильно, или они для этого не годятся?
Домофон, предположительно Vizit, без опознавательных знаков, точнее они все затёрты.
Номер ключа считывается, но затем что-то идет не так — при кратковременном замыкании D6 и +5 красный светодиод загорается на 1 секунду, а не светится постоянно. Так и должно быть?
Второй iButton не работает. Мог я его испортить во время попыток записи? Возможно он пока в кармане валялся пришел в негодность
Болванка точно RW1990?
На фотографии плохо видно, но они подключены к линии 15 брэдборда. Я проверял. Там ноги резистора идут вверх и они слишком светлые на снимке.
К сожалению, я не знаю как определить тип болванки, но на днях мне принесут еще несколько — поэксперементирую с ними.
Из изменений в схеме:
1. Не поставил кнопку, а дотрагиваюсь джампером до контакта.
2. Поставил не 1K, а 2K резистор
3. Питание от USB только на miniUSB Arduino Nano
Использовал скетч второй редакции. Изменений не производил.
Заказывать другой Arduino Nano?
Это намёк на то, что полезность устройства весьма ммм… сомнительна чтоли… Впрочем, правильный кот вполне вполне оправдывает автора (про стремление к рукоблудию я уж не говорю — оно похвально по умолчанию! ))).
он есть практически на всех домофонах
.
и его дай гостят\родственикам
.
не кто не имеет права ограничивать вход в подъезд
.
если чтото не нравится пускай их человек сидит у двери 24\7 и открывает по первому требованию
не каждый пойдёт в суд из-за кода…
Они могут (общим решением) делать с ним всё, что хотят: снять, поставить, выключить, включить, сменить обслуживающую организацию, программировать самостоятельно, и т. д.
Подсказать, что нужно делать?
Кроме того, для добросовестного использования общего имущества не всегда требуется общее согласие.
Подскажите, как цивилизованно решить вопрос с кодом не прибегая к общему собранию.
Это может быть долгий путь.
Быстрый и неофициальный — наладить личные отношения с инженером, обслуживающим домофон.
Более неофициальный — прописать самому. Если подойдёт один из «стандартных» — даже вскрывать ничего не надо…
А вообще, я не адвокат. :) Я думаю, это не то место, где нужно это обсуждать.
С жалобами понятно, на жалобу будет дан официальный ответ, что работа кодов непредусмотрена (хоть мы и знаем, что это не так). Всё.
А дальше только в суд, а это минимум на пол года тягомотина.
P.S.
многие банально не знают про наличии Кодов доступа, по мимо ключей.
а эти «клоуны» намерено скрывают такую возможность работы системы
(всем хочется побольше поиметь с жильцов помимо абонентской платы, это просто бизнес нечего личного )
То есть когда народ тупо кирпичом дверь подпирает -это безопасно, а если я дал код знакомому -это ужас-ужас…
Только ключи (таблетки или карты), только по количеству официально проживающих.
да и вообще если надо звони в любую квартиру и говори почта… откроют в 9 из 10 квартир
.
обще-подъездный домофон по сути не более чем закрывалка двери от сквозняка и ВСЁ
.
хотя некоторые верят что домофон их спасёт от кражы или гопоты
P.S.
да и вообще если угодно можешь домофонщиков хоть каждую неделю заставить менять код…
они не плохие $$ за воздух получают (абонентской платой с дома)
хотя большинство таких нытиков боятся права качать, дальше чем в интернете
P.S.S.
я лично против когда кто-то там решил что он имеет права ограничить доступ. да ещё за это требует $, при этом не неся не какой ответственности материальной
Но с тезисом «домофонная компания гребёт бабло из воздуха» согласен, умножил сумму из квитанции на число квартир в подъезде, за год сумма превышает стоимость домофона.
А если соскочить с обслуживания — кто-то должен будет взвалить на себя работу по замене ключей, вызове ремонтников в случае поломки домофона и сбору денег на этот ремонт. И скандалам с теми кто деньги не сдаёт — им ведь вход в подъезд не запретишь, а переговорным устройством пользоваться им м.б. и не надо.
Если кому нужно пройти в подъезд тупо постоит полчаса возле подъезда.
войдет вслед за входящим или выходящим.
Да и жители бывают разные, некоторые таких «просачивающихся» принципиально не пускают, «открывай своим ключом или звони к кому пришёл». Особенно если это пьяный бомж или группа быдлодетей с «ягуаром» и семечками.
Для своего домофона я нашел алгоритм без мастер-ключей- требуется подтверждающее нажатие на кнопку из квартиры для смены.
п.с. ежемесячная плата раньше даже покрывала стоимость домофона (основного блока)
С тех пор ни разу ключи не меняли, хотя сам домофон был год назад заменён на новый.
И вроде бы ключи они бесплатно в офисе раздают, по предъявлению паспорта.
У меня компания обслуживающая домофон, новый (вместо утерянного) ключ вообще бесплатно выдала, единственное — пришлось ждать приезда специалиста пару дней, а когда я попросил несколько про запас, тогда пришлось заплатить, но символически, по 50р. за ключ…
А вот халявный курьер — это приятно.
arduino.ru
Давно хотел позаморачиваться с ардуиной :)
Однозначно плюс.
1. Собрать дубликатор.
2. Приложить исходный ключ к считывателю.
3. Нажать кнопку.
4. Приложить ключ который хотим перепрограммировать.
Всё.
Потом когда дойдет, сидит и плюется, да вот… оно все так просто :( :)
P.S. опередили выше:)
https://aliexpress.com/item/item/TM-probe-DS9092-Copper-probe-iButton-probe-reader-without-LED/32366773037.html
обычный
Наверное, повторюсь не в первый (и даже не в десятый) раз, но, вижу, некоторым это всё же не известно: «традиция» в том, чтобы фотографировать купленный товар на фоне домашних питомцев как доказательство факта его приобретения. А не просто «котофото» и прочая «милота». :) В Вашем случае вряд ли возникнут сомнения в том, что Вы товар действительно покупали, а не взяли фото в Сети. :)
Не могу припомнить случая, когда у автора требовали фотографий, подтверждающих факт покупки.
Фото из сети в 99% случаев легко вычисляются.
с перламутровыми пуговицамидля RFID токенов?Ведь контактной площадкой не обойдешься
Этот на 125 КГц.
Само собой разумеется!
Буду делать себе такой же.
ЗЫ плюсануть не могу, кармы не хватат, поэтому от меня +1 за кадром
Вот может кому будет интересно. Дубликатор на почти все случаи жизни. Правда не на ардуино (посложнее в исполнении), но тоже ничего страшного. Сам собирал (сначала на макетке, потом ЛУТом) всё с первого раза завелось.
А есть и на ардуино. Его я не пробовал, но люди пишут, что работает.
Чтобы размер был с обычный домофонный ключ. А то такую хреновину как то не очень в кармане носить.
А в этом можно до кучи собрать бутфорсер с экранчиком, пароли на цифровых замках перебирать, как в голливудсктх фильмах.
и при количестве битности 6 байт, вам прийдется ждать гораздо больше чем 10К вариантов у Эппла :)), годиков так на 1000+
P.S. С iButton работал еще в 90х :). Например с логгерами температуры (DS1921H) и управление ими с КПК Palm :). Собственный аппаратно-программные разработки.
если не трудно, проверьте еще вот этот ключ 00:36:5A:11:40:BE код семейства 01. crc какой должен быть?
Так что если вы хотите прошить этот ключ этим дубликатором, нужно байты записать в обратном порядке, начиная с 01:be:40:11:5a:36:00:e1.
Разные программаторы по разному выводят ключ, одни начиная с 01, другие с CRC. Интернеты вам в помощь.
Arduino: 1.6.10 (Windows 7), Плата:«Arduino Nano, ATmega328»
C:\Users\Андрей\Documents\Arduino\sketch_aug03a\sketch_aug03a.ino: In function 'void loop()':
sketch_aug03a:74: error: 'writeByte' was not declared in this scope
exit status 1
'writeByte' was not declared in this scope
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
Мне брак попался или я что-то сделал неправильно?
Нашел крайне костыльный способ решени проблемы. Для «лечения» подобного ключа необходимо закомментировать return в приведенном куске кода:
Запустить скетч(с заранее указанным «правильным» family code), прижать таблетку к контактам, отправляем в монитор порта «w».
И происходит маленькое чудо! Ключ успешно пишется. Можно убирать коммент, ключ снова определяется в штатном режиме.
dl.dropboxusercontent.com/u/40958483/key.ino
А болванки TM08v2 должны поддерживаться этим дубликатором?
Как приедет ардуино (пара недель, надеюсь), буду пробовать, начну тогда с RW1990, но постараюсь попробовать и ТМ08v2.
Т.к. цель, кроме познавательной, еще и показать место компании, которая обслуживает домофон, которая наотрез не говорит коды, заставляя всех делать ключи по 150р. Возможно так же придется попробовать болванки ТМ08Vi-2 (уверяют, что они не фильтруются новыми Vizit, а у меня, похоже, как раз такой).
Пользуясь случаем, хочу выразить большой респект за данный дубликатор :). И если всё получится, с меня отчет по совместимости с ТМ08v2 и ТМ08Vi-2.
ТМ08Vi-2 пока опробовать не получилось из-за их отсутствия.
Ключи данным скетчем успешно записались во все 3 типа меток! Т.е. опробованные ТМ совместимы по методу записи с RW1990 и никаких проблем не возникло. Аллилуйя, ура, занавес :).
Домофон все 3 ключа скушал, правда это еще не целевой домофон, более простой вариант. Испытания на совместимость с новым Визитом еще впереди.
up. Для отчетности. Резистор R2 использовал номиналом 2.7К.
а разница между vi и vi2 как пишут только «улучшенной стабильностью при считывания ключа панелью. „
Может быть так получится.
Записывать не пробовал, заготовки еще нет.
Вчера записал на две разные ключи, один подошел. сегодня хотел на другой тоже такой ключ записать а он не пишется(остается прежний).
сам пользуюсь другим, попроще
подключение
Для чтения ключа подключите как на картинке и смотрите монитор порта
Для прошивки кода ввести w в мониторе порта, подключить как на картинке
//0x2F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01
//0x9B, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01
//0x14, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
//0x71, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x01
//0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01
//0x49, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01
//визит
//0x01, 0xBE, 0x40, 0x11, 0x5A, 0x36, 0x00, 0xE1 //My OK
//0xE1, 0x00, 0x36, 0x5A, 0x11, 0x40, 0xBE, 0x01
//0x1D, 0x00, 0x00, 0x0A, 0x11, 0x40, 0xBE, 0x01
//0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F //My OK
У тя тут коды, которые не ок, записаны задом наперёд, поэтому и не ок
//метаком, цифрал
//0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F
//0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x9B
//0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x14
//0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x4C, 0x71
//0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3D
//0x01, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x49
//визит
//0x01, 0xBE, 0x40, 0x11, 0x5A, 0x36, 0x00, 0xE1 //My OK
//0x01, 0xBE, 0x40, 0x11, 0x5A, 0x36, 0x00, 0xE1
//0x01, 0xBE, 040, 0x11, 0x0A, 0x00, 0x00, 0x1D
//0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F //My OK
вот так над
а этот код скорей всего убьёт ключ (сам я не записывал его)
//0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x14
простите, а где указать какой код я хочу прошить?
Собрал все по схеме, только резисторов подходящих не было, поставил 1.6 кОм и вместо 10кОм поставил 2 по 5.1кОм. Код считывается, но не перезаписывает, болванки 1990А-F5, может изза этого?
И еще вопрос: что за сноска GND и +5v? случайно не нужно подавать еще питания?
Тыщу раз уже расписано выше: ключи DS1990A-F5, TM1990A-F5 — не перезаписываемые, то есть их один раз программируют на заводе и всё, код внутри ключа зашивается один раз и на всегда.
Проверенные на запись ключи: RW1990, TM08v2 и TM-08 VZT F.
Нет.
Очень пригодилось. Работа очень понравилась.
Andrey_n303 августа 2016, 10:53
0
Ребят подскажите, у меня скетч не компилируется.
Arduino: 1.6.10 (Windows 7), Плата:«Arduino Nano, ATmega328»
C:\Users\Андрей\Documents\Arduino\sketch_aug03a\sketch_aug03a.ino: In function 'void loop()':
sketch_aug03a:74: error: 'writeByte' was not declared in this scope
exit status 1
'writeByte' was not declared in this scope
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
«Показать подробный вывод во время компиляции»
ОтветитьСообщить
avatar
Andrey_n303 августа 2016, 11:20
0
Вопрос решен, установил иде 1.6.9 все скомпилировалось.
ОтветитьСообщить
avatar
kvolk13 сентября 2016, 11:20
0
Проблема в русских буквах в имени пользователя — может кому-нибудь пригодится.
Болванку еще не успел затестить.
Кто что может подсказать? У кого читает?
На днях думаю найду, тогда отпишусь.
А пока на счет ключа TM08v2…
Скетч на принудительное чтение показал ключ типа 00-00-00-00-00-00.
Это означает что ключ не считан? Или это ключ такой и есть?
При попытке их восстановить таким способом, нечего не происходит.
Программатор сообщает о том, что код успешно записан и сразу же выполняет его чтение на что в ответ и получает ( 0 0 0 0 0 0 0 0 )
После всех этих манипуляций он все еще успешно продолжает работать с домофоном.
img.mysku-st.ru/uploads/images/06/09/28/2017/01/07/a9ea3c.png
mysku.club/blog/aliexpress/42027.html#comment1659981
Так вот, rw1990A без проблем читается и пишется, а вот с болванкой tm08v2 проблема остается, потому пока вообще ее отложил в сторону.
Сходил в сервис, там уже на более продвинутом дубликаторе с моего «домашнего» ключа tm08v2 считали дамп и залили на болванку rw1990a.
Этот дамп я уже смог прочитать схемой на arduino, только вот этот ключ дверь не открывает)
Ключ читается так 00:00:00:00:00:00
У кого tm01a оаботает с данной схемой?
Подскажите, можно ли прописать 2 кода в один ключ? Если не трудно, объясните как или дайте ссылку на скетч. Заранее спасибо.
2 кода в один ключ нельзя, 1код = 1 ключ.
Именно это они и сделали.
Пробуйте, может быть это отбраковка?
Болванка rw1990. Пытаюсь копировать ключ:
На али из обзора проверенные, можно брать?
Кстати, в сети попадалась информация, что существуют разные версии болванок rw1990 («Новый код для RW1990 записывается инверсно. Как обычно передача начинается с family code, младшим байтом вперед, но биты в каждом байте инвертированы. Больше отличий в протоколах нет»). Ещё где-то попадалось, что эти болванки при записи чувствительны к помехам. Может дело в этом, попробую укоротить провода.
С теми же самыми болванками попробовал еще поэкспериментировать. Более короткие провода сделал, потом начал экспериментировать с сопротивлением R2. В итоге с 500 Ом и какой-то магией получилось с n-ной попытки.
Похоже, действительно помехи. Либо ардуина…
byte newID[8] = {0x00, 0x00, 0x00, 0x00, 0x00 };
Возможно теперь как-либо восстановить ключ? Прикладывая его снова, он не читается, будто его нет!
Прошивал с помощью первого скетча.
Не получается у меня всё никак вывести на дисплей считываемую информацию. Скетч работает без дисплея, а как ввожу в скетч для вывода на дисплей, программа ругается на ошибку в скетче и так далее:
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
Serial.begin(115200);
}
Помогите пожалуйста, уже запутался. Заранее благодарю.
Ключи rw1990 пишутся и читаются на ура.
Не получается прочитать код с ключей cyfral. В чем может быть дело?
Наконец дошли руки тоже сделать такой дубликатор.
С резистором 2,2 КОм ключ также не записывался как у Tosha.
Но поставил на 390 Ом — ключ записался, домофон открыл.
Болванки RW1990 с Алиэкспресс, система — Windows XP SP3, среда — Arduino IDE 1.0.6.
(Т.к. под ХР в более поздних версиях программы не компилируются скечи.
Возможно нужно доустанавливать какие-то файлы).
ЗЫ. Спасибо, добавлю в обзор.
На одном форуме писали, что записывали на резисторе 220 Ом.
Или 240 Ом.
Или, вот тоже, похоже, в каком-то серьезном исследовании используют резистор на 200 Ом.
"...RW1990.2 стабильно записывается при номинале подтягивающего резистора 200 Ом".
Правда там RW1990.2 и дубликаторы не на Ардуине (Microchip PIC16F88 и второй на ATMEGA16).
Всё собрал — работает!
Интересуюсь именно программой.
Для копирования ключа можно приложить исходный ключ, его номер считается в архив [addr], ключ убираю, кратковременно нажимаю кнопку, загорается светодиод и программа ждёт пока не будет приложена болванка. Как только болванка приложена — в неё записывается новый ID из исходного ключа.
Вопрос в следующем: почему останавливается loop() и на какой строке?
Вижу, что автор бывает тут и надеюсь на ответ, спасибо!
Пока не приложен ключ, условие «if (!ibutton.search (addr))» выполняется и код продолжается до строки «if (val <= 5) return», после чего происходит возврат к началу loop(). Т.о. кроме опроса состояния кнопки и нового поиска устройства на OneWire ничего не происходит.
Подскажите, пожалуйста, где можно прочитать про команды «ibutton.write(0xD1);» и «ibutton.write(0xD5);» — понятно, что это часть алгоритма записи на RW1990, но хотелось бы почитать подробнее. С ходу не нашел информации про эти коды. Везде только «0x33» и «0х0F».
Видел эту статью, но когда читал, ещё так глубоко не копал и пропустил информацию мимо.
Сегодня нашел анализ протокола записи RW-1990 неким студентом, прочитать можно тут.
А вот в скетче в этой статье после посылки команды 0xD1 все делается правильно, а в функции writeByte задержка 60us используется при посылке бита 1, а не 0.
Ошибка?
В RW1990.1 данные записываются инверсно!
Так что скетч рассчитан именно на них.
открылись как с родного. спасибо. удачи вам
Такую?
Есть 1 оригинальный ключ DS1990a
Есть болванки DS1993 +F5
Возможно ли сделать копию оригинального ключа?
Просто прямо сейчас имеются DS1993. Жалко что нельзя их использовать.
Суну и я свой пятак. Собрал макетку для Уны, добавил пищалку. Скетч доработал — использовал другие пинЫ, для компактности макетки. «Причесал» вывод на экран, чтобы строки не сползали.
Мой вариант скетча (не получается убрать в спойлер, извиняюсь)):
На Алишке закупился болванками по ~40 руб\шт. Прошил их «вездеходными» номерами (см. в начале скетча) и пошёл проверять в своём подъезде. Там стоит Визит. Подошли первые пять кодов. Скачал инструкцию от домофона и эти ключи стёр из него все по одному. Профит: вот уже 2 недели НИКАКОЙ рекламы в ящиках!!! А почту и квитанции приносят.
Спасибо ТС и всем участвовавшим!
А какой Дисплей? Вы о чём? Всё через терминал выводится.
Про «муть» читайте в начале коммента, а не только картинки смотрите.
Так что скорее всего мне китайцы Read Only прислали. Пытаюсь с ними поругаться, но скорее всего бесполезно — говорят, что устройство самодельное, оттого возможно и не работает. Попробуйте, говорят, на другом проверить. Кстати, судя по почте, на которую они просили видео работы прислать, это Banggood.
и каждый раз не перестаю убеждаться, насколько это нужная вещь.
Но нужно открыть один домофон, и ни один универсальный ключ не подходит.
Кодами с клавиатуры не открывается.
Коды для ключей, которые по поиску на первой странице яндекса не подходят.
(Это 0x01, 0xBE, 0x40, 0x11, 0x5A, 0x56, 0x00, 0xBB и другие).
Возможно может кто-нибудь подскажет еще универсальные коды?
Или другие коды с клавиатуры?
Т.к. почтальоны заходят, и вряд ли они делали специальный ключ именно для этого домофона.
Домофон обычный визит типа такого.
⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮Y⸮⸮⸮⸮⸮i⸮⸮Y⸮M⸮mzY⸮⸮y⸮Y⸮x⸮jY⸮y⸮x⸮⸮⸮⸮y⸮k⸮⸮⸮x⸮Y⸮x⸮⸮⸮⸮⸮mk⸮Y⸮zY⸮Y⸮k1⸮zY⸮Kqk⸮⸮⸮⸮M⸮⸮⸮k1⸮zy⸮⸮mK1⸮mY⸮K1zY⸮⸮⸮⸮⸮⸮⸮⸮⸮⸮Y⸮k⸮⸮mYQYQ⸮⸮K1⸮y⸮zY⸮⸮Mx⸮Kqy⸮⸮⸮k⸮x⸮K1KqY⸮MY⸮M⸮⸮⸮z⸮k⸮⸮y⸮⸮Mk⸮⸮⸮⸮⸮ɗM⸮Mk⸮⸮⸮⸮zy⸮⸮⸮⸮⸮m⸮MK1y⸮MOq⸮y⸮k⸮⸮⸮⸮⸮⸮⸮Y⸮k⸮y⸮YQk1⸮⸮MY⸮⸮q⸮⸮Y⸮⸮YٕMK1zY⸮x⸮Y⸮MK1Y⸮Y⸮Z⸮Y⸮x⸮⸮⸮⸮Z⸮⸮⸮⸮qzY⸮⸮MKqY⸮⸮mK1Oq⸮y⸮Y⸮x⸮⸮MY⸮⸮⸮zY⸮x⸮Y⸮k⸮Y⸮k⸮zY⸮KqzY⸮k⸮zY⸮K1x⸮zY⸮⸮Mk]⸮⸮y⸮k⸮OqK1x⸮Y⸮⸮y⸮Y⸮z
пробовал менять резисторы не помогает, что может быть не так?
В обзоре это написано:
В корпус стал как родной и пилить не чего не надо)))
я к тому что если делать в корпусе от Powerbank то это идеальное решение
Он собран на ATMEGA168P