Как перепрошить MLT-BT05, на базе CC2541 в HM-10

Модуль MLT-BT05 Bluetooth Low Energy (BLE) - клон HM-10Поскольку большинство модулей Bluetooth на базе CC2541 приобретаются в интернет-магазине AliExpress, эти модули часто не являются оригинальными HM-10. В лучшем случае — это хорошая копия, которая принципиально не отличается от оригинала. Но в большинстве случаев эти модули полностью отличаются программным обеспечением, несмотря на то, что аппаратное обеспечение идентично. Одним из таких модулей Bluetooth является MLT-BT05.

Часто из-за программного обеспечения эти модули работают не так, как от них ожидают:

  • они имеют урезанный функционал;
  • AT-команды ограничены, а существующие не всегда работают должным образом;
  • но самой большой проблемой, из-за которой написана эта статья, является невозможность подключения со смартфонов Android или iOS.

В этой статье будет описано то, как перепрошить модули на базе CC2541 (MLT-BT05, HM-10, CC41-A, MLT-BT05, AT-09 и т.п.) для последующего беспроблемного использования.

Аппаратные средства

Как правило, вы должны купить «CC отладчик» от TI для прошивки CC2541 чипов, но также можно использовать Arduino в качестве программатора. Для прошивки MLT-BT05, AT-09 на базе CC2541 вам необходимо:

  1. Arduino (Arduino UNO, Arduino Pro Mini, Arduino Nano и т.д.);
  2. Преобразователь USB-TTL для подключения Arduino к ПК (в случае Arduino Pro Mini или аналогичного);
  3. Плата CC2541: HM-10, CC41-A, MLT-BT05, AT-09;
  4. Несколько проводков;
  5. Паяльник.

Программные средства

  1. Arduino IDE;
  2. CCLoader Arduino sketch;
  3. Программа CCloader для Windows;
  4. Прошивка HM-10.

Кроме Arduino IDE, всё остальное можно скачать одним архивом с github по ссылке https://github.com/RedBearLab/CCLoader.

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - CCLoader

Подготовка CCLoader

После того, как вы скачали архив, вам необходимо распаковать его. Лучше всего это сделать на диске C:\, должно выглядеть так:

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Распакованный архивВ папке Arduino находится скетч для Arduino (!), в Bin — прошивка, а в Windows — программа CCLoader.

Для того, чтобы не возникли проблемы во время прошивки, нужно скопировать содержимое папок Bin и Windows в одну общую. В моём случае это выглядит следующим образом:

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Содержимое папки CCLoader-master

Шаги

Прошивка Arduino Uno

Вам необходимо загрузить скетч CCloader (C:\CCLoader-master\Arduino\CCLoader\CCLoader.ino) на свой Arduino, используя Arduino IDE.

  1. Откройте скетч с помощью Arduino IDE;
  2. Проверьте правильность параметров в меню Инструменты: плата, процессор, ком-порт;
  3. Загрузите скетч на Arduino.

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Прошивка Arduino Uno

Подключение MLT-BT05/AT-09/HM-10 к Arduino

Теперь вам нужно подключить плату MLT-BT05/AT-09/HM-10 к Arduino следующим образом:

Схема Подключения MLT-BT05,AT-09,HM-10 к Arduino

Имя вывода CC2541 Arduino
DEBUG_CLOCK Pin 7 (P2_2) Pin 5
DEBUG_DATA Pin 8 (P2_1) Pin 6
RESET_N Pin 11 (RSTB) Pin 4
VCC 3.3 В 3.3 В
GND GND GND

Будьте осторожны, чип CC2541 не рассчитан на 5 вольт, а напряжение на любом из цифровых выводов не должно превышать 3.9 В.
Если присутствует адаптер ZS-040, который содержит в себе стабилизатор напряжения на 3.3 В, можете использовать 5 В Arduino для питания платы. Если вы используете 5 В Arduino, вам нужен преобразователь уровней для всех трёх линий (DEBUG_CLOCK, DEBUG_DATA и RESET_N) либо модель Arduino на 3.3 В.

Делитель напряжения

Еще один способ, с помощью которого можно понизить напряжение, — это двунаправленный преобразователь логического уровня LLC (от «logic level converter», что значит «преобразователь логического уровня»). Эти устройства рекомендуется использовать при высокой скорости передачи данных (через последовательный порт, шину I2C и т.д.). Вы просто подключаете входные линии с высоким напряжением к контактам HV (от «high voltage», что значит «высокое напряжение»), а выходные линии с пониженным напряжением — к контактам LV (от «low voltage», что значит «низкое напряжение»). Преобразователь, показанный на картинке ниже, может работать с четырьмя каналами.

Двунаправленный преобразователь логического уровня (Logic Level Converter)В моём случае выглядит следующим образом:

Подключение MLT-BT05,AT-09,HM-10 к Arduino всё подключено напрямую, но так делать не рекомендуется.

Прошивка

Теперь всё готово, и вы можете записать прошивку HM-10 с помощью CCloader.exe или CCLoader_x86_64.exe.

Откройте командную строку и перейдите в папку, где находится CCloader.exe (cd /d C:/CCLoader-master);

Чтобы вывести справочную информацию (о том, как пользоваться), напишите и выполните эту команду в командной строке:

CCLoader.exe

или

CCLoader_x86_64.exe

CC2541 в HM-10 - Справочная информация

Copyright (c) 2013 RedBearLab.com
CCLoader_x86_64.exe version 0.5
Invalid parameters.
Usage: CCLoader_x86_64.exe <com number> <bin file> <device>
Example: CCLoader_x86_64.exe 2 abc.bin 0
 <device>: 0 -- Default (e.g. UNO)
           1 -- Leonardo

Теперь напишите и выполните эту команду (Вы должны поместить файл прошивки .bin в тот же каталог, что и CCloader.exe):

CCLoader_x86_64.exe <COM-порт> <Firmware.bin> <device>

где:

  • CCLoader_x86_64.exe — программа;
  • <COM-порт> — номер порта на котором висит у вас ардуинка (5);
  • <Firmware.bin> — прошивка (имя файла с расширением: CC2541hm10v540.bin);
  • <device> — тип используемой платы (0 — UNO, Pro Mini etc / 1 — Leonardo).

У меня команда выглядит следующим образом:

CCLoader_x86_64.exe 5 CC2541hm10v540.bin 0

Программа CCLoader начнёт запись 512 байт данных. Если в течение 3 секунд нет ответа, нажмите «Ctrl + C» для выхода! И обратите внимание на:

  1. Связь между компьютером и Arduino;
  2. Связь между Arduino и CC2541;
  3. Является ли используемое вами устройство Leonardo или нет;
  4. Другие неожиданные ошибки.

Результат

Если всё идет по плану, появляется сообщение о том, что контроллер был успешно прошит, а на CC2541 установлена подлинная прошивка HM-10.

CC2541 в HM-10 - Результат прошивки

Проверка

После прошивки нужно проверить работоспособность модуля. Для взаимодействия с ним можно использовать Terminal 1.9b или монитор порта из Arduino IDE. По умолчанию у модуля скорость передачи данных 9600 бод, 8 бит данных, без бита четности (N — Not) с 1 стоп-битом. Если в программе терминала стоит галочка напротив CR & LF или NL & CR (возврат каретки и начало новой строки), то её надо снять, символы в командах указывать не нужно.

Модуль выходит в режим AT-команд сразу после того, как подали на него питание и не соединён с каким-то устройством.

Для проверки связи с модулем можно использовать тестовую команду AT, на что модуль должен ответить OK. Получить имя устройства — AT+NAME?, значение по умолчанию: HMSoft.

Как перепрошить MLT-BT05, AT-09 на базе CC2541 в HM-10 - Проверка

Связывание и подключение со смартфоном Android

С телефона находим bluetooth устройство по имени HMSoft.

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Список устройств

Выбираем HMSoft и вводим PIN-код «000000».

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Пароль 000000

Через Serial Bluetooth Terminal отправляем сообщение с Android-смартфона:

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Отправка сообщений через Terminal

Получаем сообщения на компьютер в Terminal 1.9b:

Связывание и подключение HMSoft, HM-10 со смартфоном Android - Приём сообщений в Terminal

Материалы

How to flash genuine HM10 firmware on CC2541 (make genuine HM10 from CC41)
RedBearLab/CCLoader
Arduino:Хакинг/Как переключиться с 5-вольтовой логики на 3,3-вольтовую
Datasheet cc2541.pdf
JNHuaMao Technology Company Bluetooth4.0 BLE module Datasheet (bluetooth40_en.pdf)
AT-команды, конфигурием модуль BLE4.0 HM 10

13 комментариев к “Как перепрошить MLT-BT05, на базе CC2541 в HM-10”

  1. Спасибо. У меня получилось.
    Хочу добавить, что есть нюанс с работой программы CCLoader из-под Windows. Программа поддерживает номера COM портов только с 1 до 16. Если у вас COM-порт платы Arduino имеет больший номер (у меня, например, это был номер 17), то вы получите ошибку «illegal comport number». Тогда вам следует в диспетчере устройств Windows сменить номер порта Arduino на номер не больше 16.

    Ответить
  2. Спасибо, получилось. Сначала обновил до CC2541hm10v540.bin. А потом уже до v710 взятой с сайта JNHuaMao. При обновлении до этой версии использовал их утилиту. Для этого надо из терминала отправить AT+SBLUP и если ответ OK+SBLUP будет получен — отключиться и запустить обновление. Я как и вы, на свой страх и риск, обновлял без делителей напряжение. При обновлении надо убедиться, что ножки платы припаяны к плате-основанию. Иначе CCLoader не найдет чип.

    Ответить
  3. В чипе загружена совсем другая прошивка . Если он до перепрошивки имел имя в сети BT05 — то эти не «прошиваются «, вернее не работают с прошивкой HM10 от китайца

    Ответить
  4. Много раз пробовал прошить с помощью Pro Mini (с CH340), не получалось. Потом попробовал через Nano, без проблем прошил пар штук, полет нормальный)

    Спасибо!

    Ответить
  5. Тоже не получилось. Если demo.bin залить, при включении break передает, если 540 — молчит. На АТ не откликаются. Выкидывать?

    Ответить
  6. Если demo.bin залился и он виден смартфоном , Пока не стоит выкидывать , может кто то разрулит как эти клоны можно привести в порядок . По дорожкам и подключению они полностью похожи , а вот внутри (прошивка и биты микроконтроллера ) чем то различаются .

    Ответить
  7. Модуль c маркировкой LB-BT05, чип CC22541. До прошивки телефон подключался, на АТ-команды реагировал:
    +VERSION=v5.6
    +NAME=BT05

    Прошивал с Arduino UNO. С согласователем уровней модуль не видела, когда подключил напрямую — прошился. Но больше на AT-команды не реагирует и Bluetooth не работает. Прошивать дает снова, но результата нет.
    Вторую прошил с ProMini и резисторами-делителями, и также не живая.

    Два кирпича. Больше модулей для таких экспериментов у меня нет.

    Ответить
  8. пишет No chip detected!
    Upload Failed!
    почему так может быть? схема правильно собрана, все остальное тоже

    Ответить

Оставьте комментарий

Отправляя комментарий, вы соглашаетесь с обработкой ваших данных (имя, адрес электронной почты, текст комментария) в соответствии с политикой конфиденциальности.