САМОДЕЛЬНЫЕ РАДИОУСТРОЙСТВА

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


 Самоделки для компьютера

:: ПЕРЕДЕЛКА МОДЕМА В 3G РОУТЕР ::


   Инструкция по самостоятельной переделке модема в 3G роутер. Самая распространённая проблема при покупке модема заключается в том, что нет такого модема, который бы не зависал через некоторое время. Задача заключается в следующем - сделать небольшой стабильный 3G роутер. И в этом нам помогут материалы с сайта Хабрахабр. Для работы нужно:

• Роутер DIR-320
• 3G модем
• Внешняя антенна


   Для начала эксперимента воспользуемся стационарным ПК с Linux. Настроив 3G соединение, посредством Huawei E173, запустить вызов команды ping + wget с интервалом раз в 10 минут. Соединение длилось около 4 часов, после чего модем перестал отвечать на PPP команды, AT при этом работали. Попробуем потушить USB порт:

1. Находим модем из списка всех USB устройств:

2. for f in `ls /sys/bus/usb/devices/*/product`; do echo -e "$f\t`cat $f`"; done

3. Выключаем порт на 5 секунд а потом включаем:

4. echo "suspend” | sudo tee /sys/bus/usb/devices/1-1/power/level

5. sleep 5

6. echo "on" | sudo tee /sys/bus/usb/devices/1-1/power/level

   В ходе эксперимента мы увидели, что все отлично перезагружается. И соединение может быть опять установлено. Повторим эксперимент с четырьмя прошивками для роутера: D-Link, Asus, OpenWRT или DD-WRT, но ни в одной из прошивок не оказалось возможности управления питанием USB. И после перезагрузки роутера модем оставался проинициализированным. Далее разберем роутер. Нужно сделать модернизацию платы и источника питания.

   Нужно построить дистрибутив на базе OpenWRT самостоятельно, при этом с минимумом предустановленных пакетов и сервисов, так как оперативная память роутера маленькая. Но для начала нужно выбрать целевой модем/оператора и внешней антенны.

   Наиболее подходящим является MTS. У них можно всю статистику и управление совершить из удобного WEB интерфейса. Попытаемся подключиться к этому модему. Он отображается как CD-ROM. Анализ dmesg показал, что CD-ROM монтируется как SCSI, и его нужно отключать именно как SCSI, никакие usb_modeswitch тут не работают. Первый же проход по папке с man’ами показал, что есть пакет sdparm. Далее приступаем к работе. 

Сборка OpenWRT

   Все шаги выполняются в консоли Linux. Обратите внимание, релиз Backfire выбран из-за того, что это последний релиз с ядром 2.4. Это очень важно, так как ядро 2.6 само по себе очень требовательно как к производительности процессора, так и к системным ресурсам.

• Скачиваем исходник OpenWRT:
• svn co svn://svn.openwrt.org/openwrt/branches/backfire openwrt-backfire
• Переходим в папку с исходником
• cd openwrt-backfire
• Обновляем все пакеты
• ./scripts/feeds update -a
• Добавляем из пакетов sdparm
• ./scripts/feeds install sdparm
• Открываем меню настройки
• make menuconfig
• Выбираем интересующую платформу
• Target System (Broadcom BCM947xx/953xx [2.4])
• Встраиваем интересующие нас пакеты (по умолчанию они не включены даже как модули)
• <*> sdparm........................ Read or modify SCSI or USB disk parameters
• <*> chat................................. Establish conversation with a modem
• <*> comgt............................... Option/Vodafone 3G/GPRS control tool
• <*> kmod-scsi-generic........................ Kernel support for SCSI generic
• <*> kmod-usb-core............................................ Support for USB
• <*> kmod-usb-ohci............................... Support for OHCI controllers
• <*> kmod-usb-serial..................... Support for USB-to-Serial converters
• <*> kmod-usb-storage..................................... USB Storage support
• <*> kmod-usb2................................... Support for USB2 controllers
• Все остальные пункты оставляем без изменения
• Выходим из меню конфигуратора с сохранением
• Собираем инструменты
• make tools/install -j`grep -c processor /proc/cpuinfo`
• make toolchain/install -j`grep -c processor /proc/cpuinfo`
• Открываем меню настройки ядра Linux
• make kernel_menuconfig
• Настраиваем MTD
• [*] Support 2-chip flash interleave
• Выходим из меню конфигуратора с сохранением
• Собираем OpenWRT
• make -j`grep -c processor /proc/cpuinfo`
• После того как прошивка собрана, её нужно прошить в устройство.

Проверка прошивки

   После прошивки и перезагрузки роутера подключите к нему модем и соедините роутер посредством Ethernet с вашим ПК. Настройте на интерфейсе вашего ПК IP адрес, выполнив команду:

ifconfig eth0 inet 192.168.1.2/24

   Потом подключитесь к роутеру по Telnet. Для этого из консоли выполните следующую команду:

telnet -l root 192.168.1.1

   Вход будет совершен автоматически без запроса пароля. Это в корне не верно. Чтобы исправить ситуацию, задайте пароль, выполнив команду в консоли:

passwd

   Выполните команду «exit», для выхода из telnet сессии. Выполните вход по ssh:

ssh root@192.168.1.1

   Далее, удостоверимся, что модем был распознан ядром, выполнив команду в консоли:

grep "^P\:.*22de.*6803" /proc/bus/usb/devices

   Результатом выполнения этой команды, будет строка с VID и PID модема. В противном случае, проверьте, что было сделано не по инструкции.

Модернизация аппаратного обеспечения роутера

   Для управления питанием USB порта нужна свободная ножка процессора. У этого роутера масса светодиодных индикаторов на передней панели и один из них можем приспособить под наши нужды. Выбираем пал на индикатор со значком принтера, так как он соответствует светодиоду USB на proc-fs (/proc/diag/led/usb).

   Управление питанием будет осуществлять дополнительная плата с минимально необходимым набором деталей. Вот её уменьшенная схема:

   Оба транзистора работают в качестве ключей. При подаче логической единицы на вход «CTRL», транзистор VT1 откроется и далее также откроется транзистор VT2 и питающее напряжение подастся на USB порт. Не обязательно использовать печатную плату, можно – монтажную.

   Вот так выглядит конечный вариант:

   Зелёными надписями отмечены одноименные порты на схемы. Резистор R4, припаян непосредственно к ножке светодиода.

   Пошаговая инструкция по модификации:

• Обесточьте роутер и разберите его

• Уберите не нужный R48 – этот резистор соединяет светодиод с ножкой процессора

• Удалите предохранитель F1 – этот предохранитель, должен обеспечить защиту в случае короткого замыкания на линиях питания USB.

• Надписями желтого цвета отмечены места подключения платы управления

• Удалите защитное покрытие с проводника, ведущего сигнал от процессора к резистору R48. К этому проводнику, должен быть подпаян порт «CTRL» платы управления

• Приклейте плату управления в наиболее удобное для вас место.

• Припаяйте резистор R4 непосредственно к аноду светодиода, как указанно на фотографии. Также обратите внимание на подключение соединительных проводов

• Закончите монтаж соединительных проводов

• Итоговый результат

• Соберите и включите роутер

Модернизация программного обеспечения роутера

   Подключитесь к роутеру по ssh, и все следующие шаги будут выполняться на нём.

Создание утилит для управления USB

   Перейдите в папку /etc/ppp. 

cd/etc/ppp


• Создайте usb-up.sh. Этот скрипт будет включать питание на USB порте
• $ cat usb-up.sh
• #!/bin/sh
• logger -t "USB PwrCtrl" "Turn-on USB power"
• echo 1 > /proc/diag/led/usb
• Создайте скрипт для перезагрузки USB порта
• $ cat resetusb.sh
• #!/bin/sh
• logger -t "USB PwrCtrl" "Turn-off USB power"
• echo 0 > /proc/diag/led/usb
• # Sleep in 3 sec is an optional, but may be useful for some modem types
• #sleep 3
• logger -t "USB PwrCtrl" "Turn-on USB power"
• echo 1 > /proc/diag/led/usb
• Создайте скрипт для проверки существования процесса pppd
• #!/bin/sh
• if ps | grep -q /usr/sbin/pppd; then
• logger -t "PPP watcher" "PPP alive"
• else
• logger -t "PPP watcher" "No PPP daemon"
• /etc/ppp/resetusb.sh
• fi
• Сделайте скрипты исполняемыми
• chmod a+x /etc/ppp/*.sh
• Добавим корректную обработку подключения модема к USB. Обратите внимание на то, что в OpenWRT, по умолчанию, нет udev, а вместо этого используется hotplug «демон»
• $ cat /etc/hotplug.d/usb/11-modem
• #!/bin/sh

• # Copyright (C) 2013 Sergey Shcherbakov <shchers@gmail.com>

• case "$ACTION" in
• add)
• (grep -q "^P\:.*22de.*6803" /proc/bus/usb/devices) && {
• logger -t "WM-D300" "Detected ZeroCD of WM-D300 modem"
• # Checking ZeroCD status
• while [ "$(sdparm -q --command=ready /dev/scsi/host0/bus0/target0/lun0/generic)" != "Ready" ]; do
• logger -t "WM-D300" "ZeroCD yet not ready"
• # Workaround for bug with multiple calls of scripts
• (/usr/bin/lsusb | grep -q 22de:6801) && {
• logger -t "WM-D300" "Seems that script called twice and device already initialized"
• return 0
• }
• sleep 2
• done

• logger -t "WM-D300" "ZeroCD ready and will be ejected"
• /usr/bin/sdparm --command=eject /dev/scsi/host0/bus0/target0/lun0/generic
• }

• (grep -q "^P\:.*22de.*6801" /proc/bus/usb/devices) && [ ! -c /dev/usb/tts/0 ] && {
• logger -t "WM-D300" "Updating USB Serial driver with D200/D300 vendor and product ID"
• rmmod usbserial && insmod usbserial vendor=0x22de product=0x6801
• }

• (grep -q "^P\:.*22de.*6801" /proc/bus/usb/devices) && [ -c /dev/usb/tts/2 ] && ! (ifconfig 3g-wan 1>/dev/null 2>/dev/null) && {
• logger -t "WM-D300" "All modem interfaces installed, turning on WAN"
• ifdown wan && ifup wan
• }
• ;;
• remove)
• ! (grep -q "^P\:.*22de.*6801" /proc/bus/usb/devices) && {
• logger -t "WM-D300" "Modem disconnected, turning off WAN interface"
• ifdown wan
• }
• ;;
• esac

Внесение изменений в существующие скрипты

• Запретите WAN интерфейс, заданный по умолчанию, выполнив команду
• sed -i 's/interface\ wan$/interface\ wan_dflt/' /etc/config/network
• Добавьте новый описатель WAN интерфейса с настройками для 3G
• $ cat /etc/config/network
• …
• config interface wan
• option ifname ppp0
• option device /dev/usb/tts/0
• option service evdo
• option proto 3g
• option username 'mobile'
• option password 'internet'
• option pppd_options 'noipdefault maxfail 3'
• option connect '/etc/ppp/usb-up.sh'
• option disconnect '/etc/ppp/resetusb.sh'
• option keepalive 20
• Для того чтобы добавить автоматическое включение USB порта при инициализации роутера, нужно модифицировать стандартный скрипт /etc/init.d/usb, добавив в конце функции start() вызов скрипта /etc/ppp/usb-up.sh
• $ cat /etc/init.d/usb
• …
• start() {
• ...
• # Turn-on power on USB
• /etc/ppp/usb-up.sh
• }
• …
• Дополнительно можно модифицировать, но необязательно, Chat скрипт (/etc/chatscripts/evdo.chat).
• ABORT BUSY
• ABORT 'NO CARRIER'
• ABORT ERROR
• ABORT 'NO DIAL TONE'
• ABORT 'NO DIALTONE'
• ABORT 'NO ANSWER'
• REPORT CONNECT
• TIMEOUT 10
• '' AT
• OK ATDT#777
• CONNECT ''
• Добавляем в Cron задачу, которая будет проверять наличие процесса pppd каждые пять минут. Для этого следует вызвать команду "crontab -e” и добавить следующую строку:
• */5 * * * * /etc/ppp/check.sh
• Разрешаем выполнение Cron и запускаем его
• /etc/init.d/cron enable && /etc/init.d/cron start

   Далее перезагрузить роутер и можете пользоваться с удовольствием. Без сбоя работал 40 дней, что гораздо больше, чем у обычных модемов. В зависимости от местоположения скорость достигала 350 Кбит/с. Полный вариант статьи находится тут.




Поделитесь полезными схемами



ЭЛЕКТРОННЫЙ ЗАМОК ДЛЯ ВХОДНОЙ ДВЕРИ

   Электронные дверные замки для дома. Развитие высоких технологий уже прочно и надежно вошло в нашу жизнь, и захватила все ее сферы. Разработки в этой сфере проявляются в полную силу в окружающем мире, ведь в нашем мире практически невозможно встретить человека который бы не пользовался мобильными телефонами, компьютерами и другой оргтехникой.


ПРОСТОЕ САМОДЕЛЬНОЕ ЗАРЯДНОЕ ДЛЯ АВТО

   Качественное зарядное устройство для авто аккумулятора, на рынке можно приобрести за 50$, а сегодня расскажу самый простой способ изготовления такого зарядного устройства с минимальными расходами денежных средств, оно простое и изготовить сможет даже начинающий радиолюбитель.


ПРОСТАЯ СИГНАЛИЗАЦИЯ ДЛЯ КВАРТИРЫ

    Сигнализация для квартиры своими руками - автономное питание и герконовый контактный датчик проникновения. Устройство, описанное в статье, предназначено для звуковой сигнализации о проникновении в квартиру через входную дверь.


РЕГУЛЯТОР МОЩНОСТИ НА МИКРОКОНТРОЛЛЕРЕ

   Схема ступенчатого регулятора температуры электрокамина, с применением микроконтроллера PIC16F628.


ИНДИКАТОР БЛОКА ПИТАНИЯ С ЗАЩИТОЙ

   Этот полезный индикатор пульсаций стабилизатора  напряжения также может служить индикатором предаварийной работы ИП.





КАК СДЕЛАТЬ МАТРИЦУ ИЗ СВЕТОДИОДОВ

   Несложная LED матрица 8х8 элементов, которая может показывать бегущую строку управляемую Ардуино.


ПРОСТЕЙШИЙ ЭЛЕКТРОДВИГАТЕЛЬ

   Пальчиковая батарейка, круглый магнит и проволока - вот и всё, что нужно для электромоторчика.


ПРОСТОЕ РАДИО НА ОДНОМ ТРАНЗИСТОРЕ

   Самое простое FM радиоприёмное устройство на полевом транзисторе MPF102 - принципиальная схема.


ПРИБОР ДЛЯ КОНТРОЛЯ РАДИАЦИИ НА МИКРОКОНТРОЛЛЕРЕ

   Принципиальная схема микроконтроллерного дозиметра с LCD, на базе счётчика Гейгера СБМ-20 и PIC16F684.


СХЕМА ДОЗИМЕТРА НА СБМ-20

   Измеритель уровня радиации на микроконтроллере PIC18F2550 - схема и конструкция.


АНТИМОСКИТНАЯ ЛАМПА ПРОТИВ КОМАРОВ

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


СХЕМА АУДИО КОМПРЕССОРА

   Небольшая самодельная приставка для выравнивания минимальных и максимальных уровней сигнала звука.


СХЕМА ДЛЯ МИГАНИЯ СВЕТОДИОДОВ

   Самая простая мигалка для 2-х светодиодов - по научному симметричный мультивибратор.


ЭЛЕКТРОННЫЙ ПРЕДОХРАНИТЕЛЬ НА ПОЛЕВОМ ТРАНЗИСТОРЕ

     Приставка электронный предохранитель на полевом транзисторе, для защиты цепей постоянного тока до 5 А.


УСТРОЙСТВО ЗАЩИТЫ ДЛЯ ЛЮБОГО БЛОКА ПИТАНИЯ

   Защита от короткого замыкания для практически любого источника питания - принципиальная схема отдельного подключаемого модуля.

Радиолюбительский портал по самодельным устройствам и электронным самоделкам, собранными своими руками