CSR-BC417

Речь пойдет о bluetooth девайсе построеном на CSR CSR-BC417-datasheet Выглядит модуль примерно так

HC-05

Пинауты различаются в зависимости от прошивки — для HC-05 это такой
HC-05-pinout

А для HC-06 такой
HC-06-pinout

Я сначала купил с HC-06, потом думаю что нужно покупать с HC-05. Кстати — возможна и самостоятельная перепрошивка модулей, и даже самостоятельное программирование чипа CSR.

Важными для подключения являются пять ног: RX TX GND VCC — компорт и питание, а также нога KEY — переход в режим AT-сомманд для программирования модуля. При подаче «1» на ногу KEY модуль переходит в режим AT-комманд. Пишем скетч. (берем из SoftwareSerial экзамплов) или коннектимся через USBTTL на скорости 9600. Важный момент — команды нужно вводить быстро, без переводов строк. Фактически их надо набрать в каком-то другом терминале и копировать целиком из буфера обмена. По крайней мере так получалось у меня с модулем HC-06. Обязательно, чтоб скорости в обоих терминалах были 9600, модуль чувствителен к таймингу. Начинать надо с отсылки AT — модуль должен вернуть OK (эта команда проходила на 9600 скорости модуля и любых скоростях ардуино терминала). Дальше — устанавливаем NAME и PIN.
Полный список команд можно посмотреть тут. Далее приводу лог обмена (добавил переводы строк для читабельности, которых на самом деле нет).

AT
OK
AT+VERSION
linvorV1.8
AT+NAMErobot
OKsetname
AT+PIN1234
OKsetPIN

Теперь — мы настроили устройство, самое время к нему подключиться. Для начала — ребутим его, не просто отключаем от питания, а соединяем ноги питания на 20 сек вместе!
После этого устройство становится обнаруживаемым — спариваемся с ним и получаем SSP-

bash-4.3# hcitool scan
Scanning ...
	98:D3:31:60:07:EB	robot
	BC:85:56:8A:93:C8	....
rfcomm connect /dev/rfcomm0 98:D3:31:60:07:EB	1  &
... blueman выкинет окошко - туда ввести 1234 
screen /dev/rfcomm0 9600
... все что будем тут перчатать - должно появляться на терминалке и наоборот...

Вторые сокеты при этом создать нельзя

bash-4.3# rfcomm connect /dev/rfcomm1 98:D3:31:60:07:EB 2
Can't connect RFCOMM socket: Connection refused

Пин совсем отключить нельзя, даже если секурность не требуется. Но можно настроить автоматический ввод пина,
для этого нужен bluez-simple-agent ему нужно скормить bt-addr и пин, говорят тоже можно сделать с bluetoothctl.

Питание: модуль нужно питать от 3.3В, но TX-RX толерантны к 5В, так что можно обойтись без согласователя уровней.

Хорошая обзорная статья про все такие модули.

Запись опубликована в рубрике pinout, radio. Добавьте в закладки постоянную ссылку.