Устранение неисправностей для вашего следующего проекта Bluetooth LE: Ubertooth и скандинавский nRF Sniffer
Узнайте, как использовать инструменты Ubertooth One и Nordic nRF sniffer для устранения вашего следующего проекта BLE.
Bluetooth LE - это пакет данных с низким энергопотреблением протокола Bluetooth. Он разработан, чтобы продукты работали от нескольких месяцев до нескольких лет на одной батарее. Поскольку затраты продолжают уменьшаться, инженеры все чаще используют функциональность Bluetooth в своих проектах. В этой статье представлены несколько вариантов устранения неполадок, когда ваш проект работает не так, как ожидалось.
Об этом проекте
При разработке нового продукта или поиске неисправностей в проекте инженеры часто нуждаются в доступе к дорогостоящему испытательному оборудованию. Большинство из них имеют доступ к осциллографу, но как только данные покидают антенну и становятся частью электромагнитного спектра, ее трудно проверить. Хотя никогда не будет замены для надлежащих инструментов, таких как анализаторы спектра, осциллографы и анализаторы протоколов, стоимость этих инструментов делает их недоступными для некоторых, особенно для малых предприятий. В этом проекте будут представлены инструменты, которые позволят вам проверить некоторые аспекты вашего трафика с решениями, доступными практически для всех.
Частотный спектр Bluetooth LE и источники помех (Mac и Linux)
Bluetooth Low Energy (BLE) использует 2, 4-гигагерцовый промышленно-научный-медицинский диапазон. Он был разработан после классического Bluetooth с целью использования как можно меньше энергии, чтобы радикально продлить срок службы батарей. BLE предпочитает короткие, прерывистые передачи с малым энергопотреблением по сравнению со сверхмощной, иногда непрерывной передачей Classic Bluetooth. Сигнал BLE с низким уровнем мощности может легко потеряться в море электромагнитных шумов.
BLE имеет 3 рекламных канала (37-39) и 37 каналов данных (0-36), каждый с интервалом 2 МГц. 802.11bgn использует одно и то же частотное пространство, разделенное на 14 перекрывающихся каналов на расстоянии 5 МГц друг от друга. Рекламные каналы Bluetooth LE вписываются в промежутки, создаваемые между каналами Wi-Fi 1, 6 и 11.
Image
На рисунке показаны каналы Wi-Fi 1, 6 и 11, установленные на каналах Bluetooth LE. Изображение предоставлено Digikey.com
Классический Bluetooth использует такое же частотное пространство с 32 рекламными каналами и 47 каналами на расстоянии 1 МГц (79 каналов). Другие источники возможных помех для проектов Bluetooth LE включают в себя другие передатчики ISM-диапазона (nRF24, Zigbee и т. Д.), Шум USB3.0, вызванный разъемами, кабелями и схемой, действующими как непреднамеренные излучатели (повышает уровень шума на 20 дБ в этом исследовании) и вездесущей микроволновой печи 2400 МГц - 2480 МГц, где плохое экранирование может позволить частичной части его магнетрона 1000 Вт создавать больше шума, чем наши крошечные передатчики могут когда-либо надеяться подняться выше.
Ubertooth One
Требуемые детали
Стоимость
Больше информации
Ubertooth One
$ 125
Домашняя страница продукта
Комплект беспроводной сети Raspberry Pi Zero
(Или компьютер под управлением Linux)
$ 28
Требуется компьютер под управлением Linux / Mac. Windows не будет работать.
Сетевой USB-концентратор Raspberry Pi Zero
(Или адаптер USB-A от женщины к микро-B)
$ 15
Любой работающий USB2.0 или выше концентратор должен работать.
Начало работы с Ubertooth One
Для этой статьи был приобретен Ubertooth One, by Great Scott Gadgets. Для этого устройства требуется операционная система Linux (OS) или Mac OS X. Это устройство можно отключить от операционной системы Live USB или Live CD. Авторы Ubertooth рекомендуют Kali или Pentoo и предоставляют инструкции по установке на странице Ubertooth GitHub.
Для загрузки требуется несколько часов и несколько минут для записи и создания компакт-диска или USB-накопителя. В этот момент у вас есть возможность установить дистрибутивы (которые обеспечат лучший пользовательский опыт) или оставить установку в памяти (Live) и потерять все изменения при каждом отключении питания.
Третий вариант существует для сохранения Kali, Kali, где изменения ОС и обновления сохраняются на USB-накопителе. Это позволяет вам обновлять программное обеспечение и сохранять файлы, которые будут сохраняться с одной перезагрузки до следующей.
Я решил использовать запасную Raspberry Pi Zero Wireless для создания без клавиатуры, без мыши установки для моего Ubertooth One, с которым я могу удаленно подключаться к своему рабочему столу и просматривать на маленьком экране возле моего компьютера. Таким образом, я могу иметь конечный продукт, который не берет на себя мой рабочий стол или ноутбук каждый раз, когда я его использую.
Информацию о том, как настроить беспроводную установку без клавиатуры, без установки мыши Pi Zero Wireless, см. В моем сообщении о создании радиоприемника с программным обеспечением RPi Zero и пройдите через Project 1, шаг 1 - шаг 5. Подключитесь к монитору с помощью HDMI, а затем установите Ubertooth в соответствии с Ubertooth wiki Руководство по сборке для ОС Debian (так как Raspbian основан на Debian). Вы можете подключиться к Pi, используя SSH-клиент, такой как PuTTY.
Команды Ubertooth
После прохождения сборки Ubertooth на Pi у вас теперь есть устройство, которое может перехватывать Bluetooth и Bluetooth LE-пакеты, а также функционировать как анализатор спектра. См. Руководство по началу работы с Ubertooth для получения дополнительной информации и объяснения различных команд.
Следующие команды доступны либо через программное обеспечение, включенное в дистрибутив по умолчанию, либо будут доступны после обновления программного обеспечения Ubertooth.
«hcitool»: инструмент интерфейса хост-контроллера, который предлагает множество опций для классических устройств Bluetooth и Bluetooth LE. Он устанавливается на компьютеры с Bluetooth-соединениями и будет работать независимо от того, установлено устройство Ubertooth или нет. В зависимости от конфигурации и пользовательских привилегий вам может потребоваться повысить привилегии пользователя, добавив «sudo» к этим командам (например, «sudo hcitool lescan»). Полный список команд можно просмотреть, набрав «hcitool --help» или «man hcitool». Однако вот некоторые из них, которые могут оказаться полезными:
«hcitool scan»: сканирование и отображение MAC-адреса и имени (если известно) классических устройств Bluetooth
«hcitool lescan»: S может s и отображает MAC-адрес и имя (если известно) устройств Bluetooth LE (Вот пример вывода: «24: 71: 89: D0; D7: 68 DATAEXCHANGER»)
«hcitool dev»: показывает MAC-адрес Bluetooth- дяд- льда, прикрепленный непосредственно к компьютеру
«hcitool con»: показывает активные соединения между локальным устройством Bluetooth и удаленным устройством Bluetooth
«hcitool cc»: C поддерживает соединение между локальным устройством Bluetooth и удаленным классическим устройством Bluetooth
«hcitool lecc»: C поддерживает соединение между локальным устройством Bluetooth и удаленным устройством Bluetooth L ow Eergy (пример ввода: «hcitool lecc 24: 71: 89: D0: D7: 68»; Пример вывода: «Ручка соединения 64")
«hcitool ledc»: D подключается с удаленного устройства Bluetooth L ow E nergy (пример ввода: «hcitool ledc 64»)
«ubertooth-specan»: использует Ubertooth для выполнения спецификаций alysis и вывода данных в stdout. Это необработанный список данных о силе сигнала, который сам по себе не очень полезен. Вы можете сохранить его в файл с опцией -d или отправить его в feedgnuplot (вам может потребоваться установить с помощью «sudo apt-get install gnuplot feedgnuplot -y»). Дополнительная информация о feedgnuplot доступна на cpan.org. Наиболее вероятным вариантом использования этой команды является то, что кто-то удаленно контролирует местоположение с помощью терминала только для текста и не имеет доступа к x-серверу. Это не команда, которая обычно используется, так как она весьма ограничена возможностями
« ubertooth-specan -d /home/pi/specandata.txt»: сохраняет данные в txt-файле для анализа другой программой позднее
"ubertooth-specan -g | feedgnuplot --stream 0.5 --set xrange (" 2402 ":" 2480 ") --set yrange (" - 100 ":" 0 ") - исходный 'немой 80, 40'": Использует ubertooth-specan -g для генерации двухколоночного списка данных и передает его в feedgnuplot. feedgnupilot затем смотрит на поток, обновляет график каждые 0, 5 секунды и отображает интересующую область (xrange, yrange). Данные отправляются на терминал как ASCII-искусство 80 колонок шириной и 40 строк.
ubertooth-specan-ui: использует Ubertooth для выполнения спектрального анализа и отображения результатов на графическом интерфейсе пользователя. Эта команда используется для отображения средней и максимальной мощности сигнала в полосе 2, 4 ГГц, а также подробной информации о конкретных точках интереса.
Image
Захват экрана ограниченного диапазона данных, переданных с помощью команды ubertooth - specan выше. Как вы можете видеть, он не имеет деталей и имеет ограниченную полезность
Image
Захват экрана спектра 2, 4 ГГц с использованием ubertooth - specan - ui. Эта команда обеспечивает гораздо более подробную информацию и используется для графического отображения уровня сигнала в диапазоне от 2400 МГц до 2480 МГц
ubertooth-util -a: Получает или задает уровень усилителя мощности (пример ввода: «ubertooth-util -a» получает текущий уровень, «ubertooth-util -a4» устанавливает уровень усилителя 4). Эта команда может использоваться для ограничения диапазона любых передач, отправляемых с устройства.
ubertooth-util -z: Получает или задает уровень шумоподавителя (пример ввода: «ubertooth - util -z-110»). Увеличивая уровень шумоподавителя, эту команду можно использовать для настройки диапазона приема устройства Ubertooth. Это полезно, если вы находитесь в среде с большим количеством трафика, который вас не интересует.
ubertooth-btle: Мониторинг и запись данных BTLE (Пример ввода: «ubertooth-btle -f -c packets.pcap»). Эта команда следует за соединениями и сохраняет данные в файл.pcap для проверки в такой программе, как Wireshark.
Все команды Ubertooth, установленные после сборки, включают в себя ubertooth-afh, ubertooth-btle, ubertooth-debug, ubertooth-dfu, ubertooth-dump, ubertooth-ego, ubertooth-follow, ubertooth-rx, ubertooth-scan, ubertooth-specan, ubertooth-specan -ui, ubertooth-tx, ubertooth-util.
Дополнительные команды linux по умолчанию: hciconfig, l2ping
Удобный наконечник! Для получения дополнительной информации о любом из этих инструментов вы можете добавить команду «человек» или добавить переключатель «--help». Например, «man l2ping» откроет персональную страницу, которая дает подробные инструкции о командах инструмента и примера с их объяснением. Команда «ubertooth-util --help» предоставит список ключей командной строки и краткое объяснение их использования.
Вы также можете использовать Ubertooth для захвата пакетов в Wireshark. Инструкции доступны на странице Gibbub Wiki.
В приведенном ниже примере Ubertooth используется для захвата пакетов и хранения их в файле.pcap для последующего анализа Wireshark.
Использование скандинавского nRF Sniffer (Windows)
Требуемые детали
Стоимость
Больше информации
Северный nRF51-Dongle
$ 52
краткое
Nordic nRF Sniffer - это небольшой USB-ключ, основанный на скандинавском nRF51. Он предназначен для работы с системами на базе Windows и позволяет отслеживать любой соседний трафик BTLE с использованием специфических утилит Nordic и Wireshark 1.12.
Image
Изображение Dongle от mbed.org
Монтаж
Загрузите и установите более старую версию Wireshark (1.12) на Wireshark.org. (Сниффер может отправлять информацию непосредственно в Wireshark 1.1xx, но, по-видимому, программное обеспечение никогда не обновлялось для Wireshark 2.x.)
Загрузите и установите nRFgo Studio.
Загрузите инструменты nRF dongle с веб-сайта Nordic. Следуйте инструкциям по установке, которые начинаются в разделе 1 руководства пользователя nRF.
Если вам это нужно, загрузите последний драйвер последовательного порта mBed, mbedWinSerial_16446.
См. Видео ниже от Nordic о nRF51 ключе:
Сначала подключите ключ и загрузите прошивку с помощью nRFgo Studio в соответствии с инструкциями в руководстве по установке.
Затем перейдите к папке, созданной путем распаковки инструментов, которые вы загрузили ранее, и перейдите к ble-sniffer_win_1.0.1 / Sniffer. Выполните файл с именем «Plugins.exe», чтобы загрузить привязки Wireshark. Затем выполните файл с именем «ble-sniffer_win_1.0.1_1111_sniffer.exe». Если все работает так, как должно, вы должны увидеть экран, похожий на следующий:
Image
Снимок экрана программы sniffer nRF BLE
Все соседние устройства BLE будут перечислены внизу в разделе «Доступные устройства». Используйте клавиши со стрелками клавиатуры или цифровую клавиатуру, чтобы выбрать устройство, которое вас интересует, и затем используйте ключ «w» для запуска Wireshark 1.12.
Image
Снимок экрана Wireshark 1.12, показывающий вид полученных пакетов
Вы можете остановить захват в любое время, щелкнув значок красного квадрата в верхнем левом углу программы Wireshark. Каждый пакет отображается как новая строка, и вы можете получить подробный обзор любого пакета, дважды щелкнув в любом месте строки.
Image
Снимок экрана Wireshark с подробным представлением пакетов
Wireshark делает анализ протоколов пакетов для вас, позволяя вам сосредоточиться на данных, представляющих для вас интерес, игнорируя постороннюю информацию.
Вывод
Пользовательские ключи Ubertooth One и nRF51 позволяют пользователям Mac, Linux и Windows перехватывать и анализировать пакеты BLE в своей любимой операционной системе. Каждый из них обеспечивает решающий пик при движении BLE в диапазоне ISM 2, 4 ГГц. Если вы создаете собственные проекты BLE или вам необходимо устранить неисправность существующего устройства, рассмотрите один или оба этих ключа для вашего личного инструментария.
Попробуйте этот проект сами! Получить спецификацию.