Radiotech modding labs
И так поехали. Включаем ! Опа первая радость, на экране горит 03 ну вот часикам понадобилась скорая помощь =) сами просят =) Ну уже хорошо думаю.

Корпус часов на 3+ замусолен, гряноват, стекло также потертое.При попытке сохранить набранное время в память сбрасывает в 00.00 и хаотично моргает по всем сегментам.
Советская промышленность выпускала эти часы и с синими фронт панелями.
Т.е. были серо-черные модели часов и бело-синие.
План ремонта: (как говаривает мой начальникус поставьте в план пжалста) гы =)
И так раскуриваем план:
1.Правильное питание — основа здоровья ( проверка б.п. замена старых электролитов,пропай,проверка транзюка и.т.д)
2. Проверка микросхемы КР1016ВИ1 и замена кварца.
3. Далее по ходу,что сдохло то и меняем =)
Для начала качаем схему и инструкцию по настройке, ибо без них никак.
Схема часов Электроника 7-21-01

Инструкция по настройке и установке времени на часах э лектроника 7-21-01
Кнопок потыкать есть много ,посему чтоб не запутаться читаем инструкцию
НАЧАЛО РАБОТЫ
1. Включить шнур в сеть. Появится произвольная информация.
2. Нажать кнопку ПРГ и, удерживая ее, нажать на С (сброс). На индикаторе табло произойдет обнуление показателей часов и минут. Возникнут символы ВС и ПРГ – часы готовы к работе.
РЕЖИМ ТЕКУЩЕГО ВРЕМЕНИ
1. Нажать кнопку * (предустановка). Индикаторное табло засветится с пониженной яркостью (установка разрешена).
2. Установить день недели, нажав на одну из кнопок (от 0 до 6). Появятся символы от ВС до СБ.
3. Установить десятки часов (от 0 до 2)
4. Установить значение единиц (от 0 до 9)
5. Установить десятки минут (от 0 до 5)
6. Установить единицы минут (от 0 до 9)
7. Нажать на ↑ стрелку (записать в память).
8. В момент 00 секунд нажать на кнопку ТВ Произойдет запуск, и на табло начнут мигать разделительные точки.
КОРРЕКЦИЯ ТЕКУЩЕГО ВРЕМЕНИ
1. За минуту до начала сигнала точного времени нажать на С (обнулить показания)
2. Набрать значение текущего времени.
3. В момент шестого сигнала (00 секунд) нажать на ТВ.
РЕЖИМ БУДИЛЬНИКА
1. Нажать ПРГ
2. Нажать С (обнуление)
3. Нажать * (предустановка)
4. Нажать на 7 (будильник)
5. Установить значение времени будильника
6. Нажать на ↑ стрелку (записать в память).
7. Нажать на кнопку ТВ.
ОТКЛЮЧЕНИЕ БУДИЛЬНИКА
Нажать кнопку СИГНАЛ
ВЫЗОВ СИГНАЛА
1. Нажать ПРГ
2. Нажать ТВ
НАСТРОЙКА БУДИЛЬНИКА ПО ДНЯМ НЕДЕЛИ.
Будильник может работать по дням недели.
1. Нажать ПРГ
2. Нажать С (обнуление)
3. Нажать * (предустановка)
4. Нажать на 7 (будильник)
5. Нажать С (перейдет в режим установки дней недели)
6. Установить значение времени будильника
7. Нажать на ↑ стрелку (записать в память).
8. Нажать на кнопку ТВ.
РЕМОНТ
После проведения плановых работ оказалось, что и микросхема КР1016ВИ1 тоже сдохла .Симптомы — в память ничего не пишет еденицы часов вообще не горят.(предхоз поковырял ее жестоко не горели даже часы минут см.фото)

Поставил панельку под микросхему. И без издевательств поставил микру.
Поставил новую микру КР1016ВИ1 1992 года. Она идет с сквозными овальными отверстиями (чтоб лучше охлаждалась, старая была без отверстий. За одно и кварц 32.768 поменял на более свежий.
На текущий момент: 2 сутки работы часов — полет нормальный. Будильник работает в разных режимах в том числе и по неделям. Настройки выставленного времени пишутся в память микры.
Восстанавливаем старые часы «Электроника-7»
Началась эта история так. Во время работы на объекте, разместившимся в здании бывшего завода (кажется, металлоконструкций) с длинным названием (и, конечно же, имени очередного великого лидера партии) я увидел в куче хлама, предназначавшейся на выброс, одну вещь. Каковая вещь ударила по мне страшным приступом ностальгии, ибо точно такая же висела в холле СКБ (с не менее длинным и многосложным названием, чем вышеупомянутый завод), где работала когда-то моя мама, и где прошло немало времени из моего детства. Встречайте — часы «Электроника 7-06».

Конечно же, я не мог устоять от соблазна восстановить (а может быть, и доработать?) их. Кому интересен процесс, а равно и конечный результат — прошу под кат (осторожно, некоторое количество схем и фото!).
1. Немного теории
Схема часов свободно доступна в интернете. Элементной базой является 176 серия микросхем. Индикаторы — газоразрядные типа ИВ-26. Ниже представлен оригинал схемы.

Рис. 1. Оригинальная схема, часть 1

Рис. 2. Оригинальная схема, часть 2
2. Начнем-с
Часы были извлечены из кучи мусора, отвезены домой и препарированы. После очистки от мусора, накопившегося внутри, моим глазам предстало вот что.





Включаем. В принципе, всё работает. Но: индикаторы выгорели. Достать такие же ИВ-26 уже негде. Гугл дает множество ссылок, повествующих нам, как заменить эти ИВ-26 на светодиоды, а то и на готовые семисегментные сборки. Да только вот же незадача — это выглядит уже совсем не так… осовремененно и оттого попсово выглядит, я бы сказал. Поэтому моя задача номер один: восстановить индикаторы на светодиодах, максимально сохранив при этом внешний вид.
3. Табло
При взгляде на расчески из проводов, ведущие к табло, а также на схемы этих табло с сумматорами на диодах, мне становится несколько неуютно. Сложновато в наладке, запросто можно провода перепутать. Да и слабоваты выходы 176-й серии, чтобы напрямую светодиодами управлять. Плюс хотелось бы иметь возможность регулировки яркости индикации, желательно по сценарию тоже — ночью высокая яркость не совсем уместна дома. Стабильность опорного генератора на 25-тилетней давности компонентах мне тоже никто не гарантирует. Прикинув так и этак, я решил видоизменить схему полностью.
Каждый индикатор — светодиодная матрица 7 х 11, так выходит по количеству точек на оригинальных ИВ-26. Управляет ей хорошо всем известная ATtiny2313. Она же хранит в себе образы символов для отображения, таблицу знакогенератора, говоря иначе. Даже без всяких оптимизаций по 11 байт на символ в нее сотня символов точно влезет — значит, потенциально можно не только цифры писать на табло. И таких матриц у меня будет 4. А что отображать, они пусть получают по UART. Ну а собственно что будет считать время и отправлять по этому интерфейсу данные для табло — это позже. Я подумаю об этом позже (с). Зато к каждой матрице подходит всего 3 провода — GND, +5V и Data. Я посчитал, что однонаправленной линии передачи для данной задачи вполне достаточно.
Индикация динамическая, для выбора строк используется узел на регистрах 74HC595, а для выбора столбца — дешифратор 74HC238. Конструкция AVR + 74HC595 хорошо описана и интереса не представляет. К сожалению, SPI у tiny2313 какой-то порезанный, поэтому загрузка данных в регистры выполняется программно. Плюс к тому при попытке использовать SPI возникли проблемы с разводкой платы, поэтому я отказался от этой идеи. Дешифратор подключен через транзисторную сборку ULN2003 для увеличения мощности.
Изначально я планировал использовать для регулировки яркости светодиодов дополнительный транзистор, управляемый посредством аппаратного ШИМа на таймере T0, но возникла проблема: ШИМ, накладываясь на динамическую индикацию (их частоты, конечно, не совпадали), порождал неприятное мерцание светодиодов. Поэтому ШИМ программный, а реализован он с помощью дешифратора выбора столбца. Как видно, индикатор-то имеет 7 столбцов, а выходов у дешифратора 8, и последний выход не подключен. Выбирая его, мы гасим всю матрицу.
Ток светодиодов ограничен сопротивлениями. Исходя из документации на примененные LED-5213-PGC-6cd, на них падает 3 — 3,5В при токе 20 мА, примем в среднем 3,2В. Плюс еще 1В падения на ULN2003. Итого (5 — 3,2 — 1) / 0,02 = 40 Ом. Я взял на 39 Ом.
Переключателями SA1 задается адрес платы. Такой подход позволяет сделать все 4 платы одинаковыми.
К сожалению, металлизацию отверстий в домашних условиях я пока не осилил. Поэтому плата однослойная и количество перемычек на ней может ужаснуть, хоть и сводилось к минимуму всему усилиями.
Принципиальная схема приведена ниже.
Рис. 3. Принципиальная схема индикатора

А вот фото платы на одном из этапов изготовления (только что нанесен и проявлен фоторезист).
Протокол обмена очень простой:
Первый байт всегда FF, это заголовок пакета.
Второй байт — адрес платы.
Третий байт — данные для отображения, код символа согласно ASCII.
Четвертый — желаемая яркость в диапазоне 00 — FE.
В конце — младшие 8 бит от суммы всех байт пакета, проверка целостности. Если сумма равна FF, заменяем на FE. Пример пакета:
FF 01 32 80 B2 — вывести символ «2» на плате с адресом 1, яркость — половина от максимума.
В процессе написания кода мне также пришла идея сделать так, что плата индикации в момент старта до получения первых данных отображает свой адрес. Оказалось удобно при отладке.
4. Блок питания
Родной блок содержит в себе трансформатор с двумя обмотками: одна выдает 22В, которые применялись для питания анодов индикаторов, и 3,8В для питания их накалов. Конденсаторы, конечно, свою емкость потеряли, к тому же нам потребуются +5В. Значит, схему придется пересмотреть. Кроме того, предусматривается возможность питать логику от 6 батареек по 1,5В, чтобы не сбивалось время при обесточивании. Батарейки — это как-то несерьезно, требуют регулярной замены, так что я переделал этот узел на работу со стандартным аккумулятором 6В, 4.5 А*ч.
Однако ж, 22 * 1,41 = 31В. Нда, обычной 7805 тут не обойдешься, разве что мы хотим прикрутить сюда еще и функцию комнатного обогревателя. Непродолжительный гуглинг, и на помощь приходит LM2576-5.0 — интегральный импульсный стабилизатор с выходным током до 3А, которая даже нашлась в местном магазине радиодеталей.
Поиск, где бы мне спереть безвозмездно позаимствовать схему зарядного устройства с целью уменьшения количества созданных велосипедов, привел меня сюда (вообще, сайт посвящен именно велосипедам, что в контексте фразы несколько улыбает). Однако, схемка-то на линейных стабилизаторах… впрочем, существует версия вышеупомянутой LM2576 с перестраиваемым выходным напряжением. Фактически, нужно сваять источник с ограничением вида «выходное напряжение примерно 6 — 14В (с подстройкой, чтобы можно было и на 12В аккумулятор подцепить), выходной ток не выше 0,5А (тоже с подстройкой)». После некоторых раздумий получилось нечто такое.
Рис. 4. Схема источника питания
Переключение режима «зарядка / работа от аккумулятора» производится обычным механическим реле с обмоткой на 220В, подключенной параллельно первичной обмотке силового трансформатора. Несколько наивно, но, как ни парадоксально, вполне работает.
5. Сердце системы
Вот и настало то самое «позже», в котором я обещал себе подумать о том, что же будет собственно время считать, и управлять индикаторами. А еще лучше, если оно еще и синхронизировать его будет с мировым. По NTP, например. Или DAYTIME. Благо, что Wi-Fi в доме имеется. И самое главное, да. Чуть не забыл. В этих часах таки остался один родной элемент индикации, который такой трогательный, что я счел кощунственным его менять. Ибо воссоздать такое же не смогу, да и рабочий он вполне. Мигающая секундная точка на индикаторе ИВ-4! Вот еще ей надо мигать.
Я долго ковырял форумы на предмет сопряжения AVR и Wi-Fi, смотрел, как это делали на Arduino… но цена меня удручает. И тут мой взгляд упал на купленную с целью изучения с последующим созданием торрентокачалки «малинку», лежащую на полке…
Нет, ну это даже не пушкой по воробьям. Это просто удар главного калибра Звезды Смерти с целью уничтожения злых бактерий под ободком унитаза. А с другой стороны — не всё ли равно, где эта торрентокачалка будет стоять? Места под USB-HDD в корпусе часов более чем достаточно. Кроме того, мой опыт работы с *nix-системами пока не очень значителен — отличный повод расширить кругозор. Примерно эти мысли пролетели у меня в голове, и судьба малинки была решена. Ну пусть тогда еще уличную температуру показывает, что-ли… раз уж такими мощностями разжился. Да и знакогенератор табло теперь позволяет плюсы-минусы рисовать.
Как прикрутить к rPi часы реального времени, а также как ее вообще включить, провести начальную настройку, установить туда торрент-клиент — сказано много раз до меня. Впрочем, некоторое количество ссылок, показавшихся мне полезными, я все же приведу ниже.
Уличную температуру я беру с Рамблера. Выбор обусловлен предпочтениями моей второй половинки.
Итак, поэтапно все действия с «малинкой»:
Вот тут читаем, как подружить ее с Wi-Fi-адаптером TP-Link TL-WN725N.
А вот тут — как установить VNC-сервер, может пригодиться.
Здесь доходчиво расписано, как поднять Samba.
А вот тут, как работать со встроенным UART.
Вот такой скрипт синхронизирует время с мировым с помощью NTP.
timesync.sh
#!/bin/bash sudo service ntp stop sleep 5 sudo ntpdate time.nist.gov time.windows.com sleep 5 sudo service ntp start
Этот скрипт читает с Рамблера погоду, складывая принятые данные в файл
getweather.sh
##!/bin/bash URL="http://api.rambler.ru/weather/informer?content_type=xml" FILENAME=/home/pi/clock/weather.dat WEATHER=$(curl $ | grep -o -E "()[\+\-]?[0-9]()" | grep -o -E "[\+\-]?[0-9]") if [ -z $ ] then echo "Get weather failed!" else echo -ne " " > $ echo -ne $(printf "%+03d" $) >> $ fi
Основной скрипт, передает данные через UART для отображения:
send.sh
#!/bin/bash DATAPATH=/home/pi/clock/weather.dat declare -i LOW_BRIGHT=5 declare -i HIGH_BRIGHT=100 send_data () < DATA=$1 LEN=$stty -F /dev/ttyAMA0 cs8 -cstopb raw speed 19200 > /dev/null for((i=0; i) if [ "$CHAR" = "0" ] then CHAR=32 fi HOUR=$(date | cut -c 12-13) if (("$HOUR" > "20")) || (("$HOUR" < "7")) then BRIGHTNESS=$(printf "%d" $LOW_BRIGHT) else BRIGHTNESS=$(printf "%d" $HIGH_BRIGHT) fi CHECKSUM=$((($ADDRESS+$CHAR+$BRIGHTNESS-1)%256)) if [ "$CHECKSUM" = "255" ] then CHECKSUM=254 fi ADDRESS=$(printf "%o" $ADDRESS) CHAR=$(printf "%o" $CHAR) BRIGHTNESS=$(printf "%o" $BRIGHTNESS) CHECKSUM=$(printf "%o" $CHECKSUM) MESSAGE="\0377\0$ADDRESS\0$CHAR\0$BRIGHTNESS\0$CHECKSUM" echo -ne "$MESSAGE$MESSAGE" >/dev/ttyAMA0 done > if [ "$1" = "time" ] then HOUR=$(date | cut -c 12-13) MINUTE=$(date | cut -c 15-16) TIME="$$" send_data $TIME exit 0 fi if [ "$1" = "weather" ] then WEATHER=$(cat $) if [ -z $ ] then echo "No weather info found" exit 0 fi send_data "$WEATHER" exit 0 fi if [ "$1" = "startup" ] then send_data "HELO" sleep 5 send_data "HABR" sleep 5 send_data " " exit 0 fi echo "Usage: send.sh time | weather | startup" exit 0
И — да. Точкой секундной мигаем.
blink.sh
#!/bin/bash sudo echo "25" > /sys/class/gpio/export sudo echo "out" > /sys/class/gpio/gpio25/direction while true do echo "1" > /sys/class/gpio/gpio25/value sleep 0.5 echo "0" > /sys/class/gpio/gpio25/value sleep 0.5 done
Теперь добавим все это хозяйство в cron:
# m h dom mon dow command 0/15 * * * * /home/pi/clock/timesync.sh 0/15 * * * * /home/pi/clock/getweather.sh * * * * * sleep 00; /home/pi/clock/send.sh time * * * * * sleep 10; /home/pi/clock/send.sh weather * * * * * sleep 15; /home/pi/clock/send.sh time * * * * * sleep 25; /home/pi/clock/send.sh weather * * * * * sleep 30; /home/pi/clock/send.sh time * * * * * sleep 40; /home/pi/clock/send.sh weather * * * * * sleep 45; /home/pi/clock/send.sh time * * * * * sleep 55; /home/pi/clock/send.sh weather
И… и всё. Вешаем на стену, наслаждаемся, ностальгируем. Фото процесса (кликабельно), а также традиционное приветствие жителям Хабра можно увидеть ниже.
Внимание! Автору статьи при рождении вырезали художественное чувство, как будущему инженеру не нужное. Ценителям незаваленных горизонтов, композиции кадра и всякого прочего баланса белого просьба на этом месте прекратить чтение и перейти сразу к комментариям, во избежание получения серьезных душевных травм.

Крепление плат индикации на шасси. Рядом лежит плата блока питания.

Красим проржавевшие задние крышки.

Первое включение в собранном виде. Платы отображают свои адреса.

Все элементы установлены на шасси.

Покрупнее, та же стадия.

Упаковываем в корпус.
И — логическое завершение!

Время.

Температура за бортом.

Все схемы, печатные платы и прошивки можно взять здесь.
- часы для гиков
- электроника-7
- AVR
- raspberry pi
- оверинжениринг
- месье знает толк
Инструкции к часам
Выкладываем инструкции к выпускаемым нами электронным часам (также подойдут на аналогичные часы «Электроника», «Камертон», «Интеграл» прошлых лет):
- Инструкция к часам ЧН-01
- Инструкция к часам ЧН-03
- Инструкция к часам 50Д
- Инструкция к часам ЧН-52
- Инструкция к часам ЧН-53
- Инструкция к часам ЧН-54, 54Д
- Инструкция к часам ЧН-55, 55Д
- Инструкция к часам 65М
- Инструкция к часам 77А
Обратите внимание, что данные файлы носят справочный характер и могут быть изменены с течением времени. Если Вы хотите уточнить какой-то принципиальный для Вас момент по характеристикам или функциональности часов перед покупкой — пожалуйста, напишите нам.
Инструкции к часам: 1 комментарий
Инструкция к часам ЧН-55, 55Д: Таймер
Вход в режим >>секундомера нажатием К3 в основном режиме 3 раза.
Настольные часы. Электроника 7-21-01. Инструкция.

- Нажать ПРГ
- Нажать С (обнуление)
- Нажать * (предустановка)
- Нажать на 7 (будильник)
- Нажать С (перейдет в режим установки дней недели)
- Установить значение времени будильника
- Нажать на ↑ стрелку (записать в память).
- Нажать на кнопку ТВ.