2018年5月13日日曜日

Bluetooth Module HC-05でAndroidからRGB LED Controll

ポチっておいたこれ、Bluetooth 2.0のボードが届きました。
Bluetoothの元祖CSR社のです。

透明のスミチューブが被せてあり、更に金色のチェックで見えないのです。
どこで見つけたか忘れましたが、スミチューブを剥いだ写真。
これだとなんとか読めます。
これでチップの品番が読めます。
メインチップは、CSR社のBC417:Bluetooth v2.0+EDR
右:cFeon社のES29LV800:8Mbit Flash Memory
出所:electrodragon.com
前回のHM-10 fakeのCC41-Aの時と同じく
Arduinoのスケッチをここから拝借m(_ _)m
*****
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9);
void setup()
{
   mySerial.begin(9600);
   Serial.begin(9600);
   delay(100);
}
void loop()
{
   if (Serial.available()>0)
      mySerial.write(Serial.read());
   if (mySerial.available()>0)
      Serial.write(mySerial.read());
}
*****

ブレッドボード図
BluetoothのRX入力は、抵抗で分圧(5V⇒3.3V)しています。
Arduino IDE v.1.8.3を起動して、スケッチを書き込みます。
Arduino IDE v1.8.3のシリアルモニタで
「AT」送信します。
何も返ってきません(-_-;)
COM6 9600にしているのですがね~
「Cafe Cappuccino」さんのここに、
HC-05は、電源投入時にBreakout BoardのタクトSWを押しっぱなしにすれば
LEDがゆっくり点滅してATコマンドモードになるということでやってみます。
が、LEDはゆっくり点滅にはなったのですが、
ATコマンドで応答がないのです。

ここにPDFのHC-05のManualがありました。
英語ですが詳しい説明があります。

電源投入時のスイッチ押しっぱなしに加えて
34pinをHIGH(3.3V)にするかどうかで
mini ATモード と Full ATモードに切り替わるということなのです。

Full ATモードにするには、
電源投入時に34pinをHIGH(3.3V)にしておく、とあります。
EN-Z pinが34pinと繋がっていると思ったのですが繋がってないです。

更にATモードでは、
Baudrate:38400bpsに固定されている。ということなのです。

スケッチを変更してBaudrateを変えます。
*****
#include <SoftwareSerial.h>
SoftwareSerial mySerial(8,9);
void setup()
{
   mySerial.begin(38400);   
   Serial.begin(38400);   
   delay(100);
}
void loop()
{
   if (Serial.available()>0)
   mySerial.write(Serial.read());
   if (mySerial.available()>0)
   Serial.write(mySerial.read());
}
*****
スケッチを書き込み、COMの設定も38400にします。
HC-05のスイッチを押したまま電源を入れると
HC-05のLEDがゆっくり点滅になりました。数回点滅したらスイッチを離します。
シリアルモニターを起動して、これも38400bpsにして
「AT」送信します。
お~っ! OKが返ってきました!
「AT+VERSION」では、
「VERSION:3.0-20170601」と応答が
前のCC41-Aでは、「Firmware V3.0.6 Bluetooth V4.0 LE」でてたのだが...
何のVersionだろう?Firmware?Bluetooth?たぶんFirmでしょう。
所が「AT+PIN」や「AT+HELP」など
ほとんどのコマンドで「ERROR:(0)」がでます。
これが、mini ATモード ってやつなんですね。
34pinをHIGHにするには、透明のスミチューブを剥がさないといけないので
ATコマンドの確認は、ここまでにしておきます。

次にPCのBluetoothに接続してみます。
最初は、「不明なデバイス」とでますが
しばらくすると「HC-05」になるので、そこをクリックすると
接続が開始され
PIN入力のボックスがでてくるので
「1234」と入力して[接続]をクリック
「接続済み」に変わり
HC-05「ペアリング済み」になって
デスクトップ右下に「デバイスのセットアップ」がでてきて
右下が「デバイスの準備ができました」となって
[完了]ボタンを押すと
デバイスマネージャーに[Bluetoothリンク経由の標準シリアル(COMx)]が
なぜか2つ! COM8、COM9が出現しています。
どうやらMaster(発信側)とSlave(着信側)としてのようです。
ちょっと好奇心で
COM8でシリアルモニタを立ち上げて「AT」しても何も返答なし。
更にCOM9でシリアルモニタを立ち上げたら
シリアルモニタもArduino IDEもフリーズして終了もできなくなりました(´-﹏-`;)
タスクマネージャーから強制終了します。
やらない方がいいようですね~(-_-;)

さて、やりたかった実験に移ります。
前回、CC41-AというHM-10フェイクのBluetooth Moduleで
動かなかったやつを早くやってみたいのです。
前回、調べている途中で見つけた、これ
「Androidスマホから、このBluetooth経由で
 Arduino UNOに配線されたRGB LEDをコントロールする」ってやつです。

このHC-05は、Windows10で認識され、COMも開いたので、動きそうな気がします。

スケッチはこの「HC-05 RGB LED by luk.pe」を参考にさせていただきますm(_ _)m
*****
#include <SoftwareSerial.h>

SoftwareSerial BLU(8, 9);

#define redPin 10
#define greenPin 11
#define bluePin 12

void setup()
{
   //Serial setup
   Serial.begin(9600);
   Serial.println("-= HC-05 Bluetooth RGB LED =-");

   //BT serial setup
   BLU.begin(9600);
   BLU.println("-= HC-05 Bluetooth RGB LED =-");

   //RGB setup
   pinMode(redPin, OUTPUT);
   pinMode(greenPin, OUTPUT);
   pinMode(bluePin, OUTPUT);

   //RGB test
   setColor(255, 0, 0);
   delay(500);
   setColor(0, 255, 0);
   delay(500);
   setColor(0, 0, 255);
   delay(500);
   setColor(255, 255, 255);
}

void loop()
{
   while (BLU.available() > 0)
   {
      int redInt = BLU.parseInt();
      int greenInt = BLU.parseInt();
      int blueInt = BLU.parseInt();

      redInt = constrain(redInt, 0, 255);
      greenInt = constrain(greenInt, 0, 255);
      blueInt = constrain(blueInt, 0, 255);

      if (BLU.available() > 0)
      {
         setColor(redInt, greenInt, blueInt);

         Serial.print("Red: ");
         Serial.print(redInt);
         Serial.print(" Green: ");
         Serial.print(greenInt);
         Serial.print(" Blue: ");
         Serial.print(blueInt);
         Serial.println();

         BLU.flush();
      }
   }
}

void setColor(int red, int green, int blue)
{
   analogWrite(redPin, red);
   analogWrite(greenPin, green);
   analogWrite(bluePin, blue);
}
*****
スケッチを見てブレッドボード図を作ります。
配線したので、Arduino IDE v1.8.3でスケッチを書き込んで
まずは、スマホのBluetooth設定でペアリングします。
検索すると「HC-05」がでてきて、それをタップするとPIN入力がでてきました。
「1234」を入力してみると
ペアリング成功です!
 で、「Color LED Controller」アプリを起動します。
一番下には、まだ「No BT connection!」とでています。
左上の[BT List]をタップすると
ペアリングしているデバイスがでてきます。
HC-05をタップします。
数秒後にこの画面に切り替わって
一番下が「BT Connected!」に変わりました。
接続成功です!
スマホのアプリをいじってみますが
LEDが、何も光らず、反応しません(-_-;)
スケッチでは、起動時にRed⇒Green⇒Blue⇒Whiteと光るハズなんですが
うんともすんとも?

あはは、何も考えずに買っていた手持ちのRGB LEDは、アノードコモンでした^^;
LED Common端子をGND ⇒ 5Vに変更すると、
無事点灯しました!
スマホから色も制御できます。
当然ですが、論理が逆なので、コントロールアプリの表示色の補色です。
スケッチを変更して論理を反転させます。
setColorの所だけでいけるハズです。

*****
 void setColor(int red, int green, int blue)
 {
    int red_Inv = 255 - red;
    int green_Inv = 255 - green;
    int blue_Inv = 255 -blue;
    analogWrite(redPin, red_Inv);
    analogWrite(greenPin, green_Inv);
    analogWrite(bluePin, blue_Inv);
 }
*****

無事、色は、正しい色になりました!
が、ちょっといじっているとスマホアプリとLEDとで色が狂います。
Arduinoのシリアルモニタの数値とLEDは、合致しています。
受信した時点で狂っているのです。
通信エラーなのだろうか?、にしては、結構な頻度です。
こんな風に赤をタップしているのに緑に発光。
青をタップしているのに赤に発光。
受信側でRGBの順番を誤認している感じがします。
ひょっとして送られてくるデータ・フォーマットが違うのかも?
でもYouTubeみると同じスケッチで皆さんうまく動いているんです。

C言語もArduinoも初心者なマーティーなのでよくわかりませんが
まずは、型を色々変えてみます。

intの2Byte(16bit)ではなくbyteの1Byte(8bit)かなあ?
 byte redInt = BLU.parseInt(); ーーー ダメ

或いは、unsigned int にした方がいいのかなあ?
 unsigned int redInt = BLU.parseInt(); ーーー ダメ

「parseInt()は、シリアルバッファから最初の有効なlong型の整数値を返却する。」
らしい。
BLU.parseInt(); は、int 2Byteでなくlong 4Byteなのだろうか?
 long redInt = BLU.parseInt(); ーーー ダメ

受信データをHEXで表示してみます。
*****
 int redInt = BLU.parseInt();
 Serial.print(redInt, HEX);
 int greenInt = BLU.parseInt();
 Serial.print(greenInt, HEX);
 int blueInt = BLU.parseInt();
 Serial.print(blueInt, HEX);
*****
で動作させると
これは、赤をタップして青になっている所。
スマホ側のデータ表示欄は、赤を示しているのです。
受信側のシリアルモニタは、Blue:252
受信側で狂っています。
受信データは、2Byteか、2Byte+4bit(HEXで5桁)の時が多く
ばらばらで3byteの所はありません。
全点灯の白にします。 
全点灯の白だとFFFFFFの3byte(下の方)になっています。
色々格闘した結果
この「Arduinoのシリアル通信でint型のデータをやりとりする」
「sizeof」ってのがあることがわかり
Buffaに3Byte以上溜まったら読み込みっを開始するようにしてみます。

*****
 //while (BLU.available() > 0)
 while (BLU.available() >= sizeof(3) )
*****

にすると、色の誤認識がなくなりました!
完全ではないが、90%と言う感じ
ゆっくりタップすると問題ないけど、ガ~~っと連続変化させると誤認識します。

動画で
途中で色が狂っている所があり、一旦、全白(FFFFFF)にすると正常になっています。
色が異常になった時の受信データは、この様にFF以上になっています。
まあ実験なのでこの辺にしておきます。

最終スケッチはこれです。
*****
#include <SoftwareSerial.h>

SoftwareSerial BLU(8, 9);

#define redPin 10
#define greenPin 11
#define bluePin 12

void setup()
{
   //Serial setup
   Serial.begin(9600);
   Serial.println("-= HC-05 Bluetooth RGB LED =-");

   //BT serial setup
   BLU.begin(9600);
   BLU.println("-= HC-05 Bluetooth RGB LED =-");

   //RGB setup
   pinMode(redPin, OUTPUT);
   pinMode(greenPin, OUTPUT);
   pinMode(bluePin, OUTPUT);

   //RGB test
   setColor(255, 0, 0);
   delay(500);
   setColor(0, 255, 0);
   delay(500);
   setColor(0, 0, 255);
   delay(500);
   setColor(255, 255, 255);
}

void loop()
{
   while (BLU.available() >= sizeof(3) ) 
   {
      int redInt = BLU.parseInt();
      Serial.println(redInt, HEX);
      int greenInt = BLU.parseInt();
      Serial.println(greenInt, HEX);
      int blueInt = BLU.parseInt();
      Serial.println(blueInt, HEX);

      redInt = constrain(redInt, 0, 255);
      greenInt = constrain(greenInt, 0, 255);
      blueInt = constrain(blueInt, 0, 255);

      if (BLU.available() > 0)   / ここは"sizeof(3)" ない方がよかった
      {
         setColor(redInt, greenInt, blueInt);

         Serial.print("Red: ");
         Serial.print(redInt);
         Serial.print(" Green: ");
         Serial.print(greenInt);
         Serial.print(" Blue: ");
         Serial.print(blueInt);
         Serial.println();

         BLU.flush();
      }
   }
}

void setColor(int red, int green, int blue)
{
   int red_Inv = 255 - red;
   int green_Inv = 255 - green;
   int blue_Inv = 255 - blue;
   analogWrite(redPin, red_Inv);
   analogWrite(greenPin, green_Inv);
   analogWrite(bluePin, blue_Inv);
}
*****

その後、もう一粘りして探していると
スマホアプリの開発者のブログを見つけました。
その「Stonez56: Family, Life, Kids, Work, Arduino」さんのここにArduinoのスケッチは、その前進バージョンのこのブログにありました。
マーティーが参考にしたスケッチとかなり違って複雑です。
このスケッチだと完璧に動きそうです。
しかもAnode Common LED仕様になっています。
早速、pin番号だけ変更して
*****
 SoftwareSerial BT(8,9); //Define PIN8 & PIN9 as RX and TX pins
 //RGB LED Pins
 int PIN_RED = 10;
 int PIN_GREEN = 11;
 int PIN_BLUE = 12;

*****

Arduino IDE v.1.8.3でコンパイルするとエラーが!
しかも、スケッチのどの行がエラーなのか表示されないのです。
スケッチをざっと見てみますがわかりませんね~
この方は、Arduino mini Proってのを使われているので
[Arduino Pro or Pro Mini]でコンパイルしてみますが同じエラー(´-﹏-`;)
[Arduino Mini]やプロセッサを328や168に変えてみても同じエラーなのです。
どうやらArduino IDEのバージョン違いによるものだと思われます。
ということで、今回はJUST実験なのでこの辺で終了っと。

2018年5月5日土曜日

Bluetooth BLE Module(CC41-A)とAndroidのペアリングで苦戦

何のついでだったか、
このBletooth v4.0 BLEのモジュールをポチっていました^^;
US$ 1.83(送料込み 2.12)でした。
Serialプロファイルだけだろうから、マーティーにもちょっと遊べるかなと思って。

届いたのは、これ!
透明のスミチューブ(ヒシチューブ)が被せてあります。
これを剥いでから使うのかと思いきや、そのままでいいようです。
亀の子基板は、一部の端子だけハンダ付けされているので脱落防止なのでしょう?
上下、各4箇所しかハンダ付けされていません、ちと不安が。
チップはTI、「CC2541」が品番のようです。
裏は、これ
「ZS-040」がボードの品番なのだろうか?
「ZS-040」とありますが、どうやら「HM-10」のCloneのようです。
で、まずは、ここのやり方でやってみることにします。
一応、Fritzingでブレッドボード図を作りました。
本当は、3.3V-5Vレベル変換がいりますが、直結で大丈夫らしい。
取り敢えずの実験なので実体は、これ^^;
Arduinoのスケッチは、コピペです m(_ _)m
*****
#include <SoftwareSerial.h>

 SoftwareSerial mySerial(8,9);

 void setup()
 {
    mySerial.begin(9600);
    Serial.begin(9600);
    delay(100);
 }

 void loop()
 {
    if (Serial.available()>0)
       mySerial.write(Serial.read());
    if (mySerial.available()>0)
       Serial.write(mySerial.read());
 }
*****

Arduino IDE v1.8.3を起動してArduino UNOにスケッチを書き込みます。
シリアルモニタで「AT」送信すると
「OK」が返ってきました。
色々調べているとコマンドが少しわかってきました。
「AT+VERSION」では、
「+VERSION=Firmware V3.0.6 Bluetooth V4.0 LE」とでました。
「AT+NAME」で
「+NAME=BT05」とでました。
「AT+PIN」すると
「+PIN=000000」
取り敢えず、先に進んでみます。
スマホ側の準備です。
その前にスマホ(Android)設定のBluetoothの所でペアリングしておきます。
「BT05」を発見してくれました。
が! ペアリングしてくれません?
一応、CONNECTはしているようなので先に行ってみます。
先の英語のサイトと同様に
Google.Playから「BLE Scanner」ってのをインストールします。
PCでサイトを開くとこれです。
スマホのアプリ、インストール完了!
BLE Scannerで右下の「Get Start」で起動します。
 「BT05」をタップします。
[CUSTOM SERVICE]をタップ
R:Read、W:Write、N:Nortfyのマークがでてきます。
一番上のWをタップ
Text送信の入力画面になります。
「Hello Marty」と入れてみます。[OK]すると
PC側のArduino IDEのシリアルモニタに
「Hello Marty」とでてきました!
通信は成功です。
どうやら、このアプリ BLE Scannerは、ペアリングしてなくても動作するんですね。
それにしてもペアリングできないのは、嫌です。
PC(Windows10 64bit)でペアリングしてみます。
まず「不明なデバイス」と検出されて
「接続済み」になり
 一瞬「Bluetooth LE Device xxxxx」とでて
 やっと「BT05」の名前がでて
PIN入力の要求はなく、すんなり「ペアリング済み」になりました。
デバイスマネージャーには、
「Bluetooth LE 汎用属性サービス」「BT05」が入りました。
うまくいったと思いきや、
デバイスドライバのCOMの所に
「Bluetooth リンク経由の標準シリアル (COMx)」ができているはずなのに
な~んにもできないのです。
「その他のBluetoothオプション」からCOMポートから
追加しようとしてもできないのです。
「Bluetooth Handsfree Service」ってのを開始してみるもダメ。
家族のWindows8.1でも仮想COMポートができません。
ペアリングするだけなのです。
他にも色々手を尽くしてみましたが、仮想COMポートができてくれません(´-﹏-`;)

マーティーは、Bluetoothなど無線系は得意としておりません。
ペアリングしているのに仮想COMポートができないのは、
ひょっとしてAndroid専用だったりするのだろうか?
端末のシリアルのSPP Profileは、親機側のOSに依存しないと思うのですが...
一旦、Windowsの方は、置いといて
スマホの方に戻ってペアリングを試みます。

.....やっと見つけました!
ここにペアリング方法の設定についてTYPE0~3があると書いてあります。
*****
AT+TYPE0: Do not require passcode, don’t pair (default)
AT+TYPE1: Do not require passcode, but do pair
AT+TYPE2: Require passcode, don’t pair
AT+TYPE3: Require passcode and pair
*****
早速、AT+TYPEすると
「+TYPE=0」が返ってきました。
ということは、「Passcode要求せず、ペアリングもしない」モードなのです。
なんでWindowsでは、ペアリングしたんだろう?
AT+TYPE3: Require passcode and pair の
「Passcode要求してからペアリングする」モードにしてみます。
設定できました!
ついでにPasscode(PIN)を「123456」にします。
OKでました。
ちなみに「AT+PIN1234」と4桁にするとエラーがでて設定できません。
で、スマホで検索すると
ペア設定のリクエストがでてくるようになりました!
一応、先のアプリ BLE Scannerで日本語を送信してみると、
大丈夫です。
これでペアリングできるようになりました。

実は、調べている途中で見つけた、これ
「Bluetooth Module + Arduino UNO + RGB-LEDを
 スマホアプリから色変化される」ってのをやりたくなったのです。

手持ちの3色LED、Arduino UNOとBluetooth Moduleを配線して
Arduino UNOにスケッチを書き込んで
スマホに「Color LED Controller」ってのを入れ、いざ!

ペアリングのキーを入力する所まで順調に行ったのに
この「Error 507 Unable to connect... 」エラーが出るのです。
ペアリングは、成功しているようなのですが、数秒後に切れるんです。
他の似たようなアプリも試しましたが同じくダメなのです。
ちなみにマーティのスマホはAndroid Version 5.1です。
さきの英語のサイトには、「HM-10にFAKE品がある」とあります。
マーティーが買ったのは、真中のと同じなので、FAKEのようですね~(-_-;)
CLONEではなくFAKEなんですかね~
www.hangar42.nl/hm10より
このPDF、HM-10関連のDatasheetを見つけました。
P1に本物とフェイクの見分け方があります。
水晶発振子があるのが本物とのこと。
マーティーのは、上の写真の真中の水晶発振子のランドだけなのです。
P6にHM-01~15まであります。
どうりでAliExpressに色んな種類があるわけです。
マーティーのは、CC2541がついているのでHM-10かHM-11で
基板サイズを測ると、HM-10フェイクということになります。

水晶なしのフェイクでも動くようなのですが...

PDFをずっと見ていくとATコマンドの詳細解説があります。

正規品では、ATコマンドの最後に「?」を付けるのですが
マーティーのは、「?」を付けると応答してくれません。
「AT+TCON」ってのが怪しいのですが、このコマンドは応答がありせん。

「AT+HELP」すると、このModuleのATコマンド一覧がでてきました。
正規品に比べるとコマンドが少ないです。
*****
**********************************************************
* Command             Description            *
* ---------------------------------------------------------------- *
* AT                  Check if the command terminal work normally  *
* AT+RESET            Software reboot    *
* AT+VERSION          Get firmware, bluetooth, HCI and LMP version *
* AT+HELP             List all the commands            *
* AT+NAME             Get/Set local device name                    *
* AT+PIN              Get/Set pin code for pairing                 *
* AT+PASS             Get/Set pin code for pairing                 *
* AT+BAUD             Get/Set baud rate                    *
* AT+LADDR            Get local bluetooth address    *
* AT+ADDR             Get local bluetooth address    *
* AT+DEFAULT          Restore factory default    *
* AT+RENEW            Restore factory default    *
* AT+STATE            Get current state    *
* AT+PWRM             Get/Set power on mode(low power)     *
* AT+POWE             Get/Set RF transmit power     *
* AT+SLEEP            Sleep mode                     *
* AT+ROLE             Get/Set current role.                    *
* AT+PARI             Get/Set UART parity bit.                     *
* AT+STOP             Get/Set UART stop bit.                       *
* AT+START            System start working.    *
* AT+IMME             System wait for command when power on.    *
* AT+IBEA             Switch iBeacon mode.                    *
* AT+IBE0             Set iBeacon UUID 0.                        *
* AT+IBE1             Set iBeacon UUID 1.                        *
* AT+IBE2             Set iBeacon UUID 2.                        *
* AT+IBE3             Set iBeacon UUID 3.                        *
* AT+MARJ             Set iBeacon MARJ .                        *
* AT+MINO             Set iBeacon MINO .                        *
* AT+MEA              Set iBeacon MEA .                        *
* AT+NOTI             Notify connection event .                    *
* AT+UUID             Get/Set system SERVER_UUID .                *
* AT+CHAR             Get/Set system CHAR_UUID .                *
* -----------------------------------------------------------------*
* Note: (M) = The command support slave mode only.     *
* For more information, please visit http://www.bolutek.com        *
* Copyright@2013 www.bolutek.com. All rights reserved.    *
**********************************************************
*****

「AT+RENEW」で工場出荷状態に戻してみると
「NAME=CC41-A」とでてきました。
この状態で試すも動作状況は変わりません。

ん~ん、わかりませんね~
スマホのBLE Scannerでは、接続を保って、しかもBONDEDしているのに
Bluetooth設定画面では「ペアリングされたデバイスの所」ではなく
使用可能なデバイスの所」にあってペアリングされてないのです。
アプリ単体でペアリングすればいいようなのです。

ペアリングされていない(一旦ペアリングして切れた)状態では、
BLE Scannerでは、BT05はリストに出てきますが
(この状態でもNOT BONDEDだが接続され、動作する)
Color LED Controllerでは、Bluetooth設定上でペアリングされてないデバイスは
リストにでてこないのです。
アプリの作りの仕様なのかな?

ここに
「Take care that its a BLE module that it cant be visible for not bluetooth 4.0 systems. Over an Android device you need a version 4.3 or higher to make sure that the hardware is BLE compatible and then you need specialized apps that support BLE (The most apps are designed with normal bluetooth API, not BLE).」

Google先生に訳してもらいうと、
「bluetooth 4.0システムでは表示されないBLEモジュールに注意してください。 Androidデバイスでは、ハードウェアがBLEと互換性があり、BLEをサポートする特殊なアプリケーションが必要であることを確認するにはバージョン4.3以上が必要です(ほとんどのアプリケーションはBLEではなく通常のBluetooth APIで設計されています)。」
これかな?!
結局アプリ側の問題なのだろうか?
BLE Scannerは、ペアリングして動いているし。
マーティのスマホはAndroid Version 5.1だし。

ここにHM-10とCC41-Aの違いが説明してあります。

ここにTIのCC2541のDatasheetのPDFがあるけど、ちょっと読む気になりません。

ここには、TIチップCC2541側の問題だとあります。
「this device uses an outdated TI library causing pairing problems」
「このデバイスは古いTIライブラリを使用してペア設定の問題を引き起こします」
マーティーの症状は、そこのTYPE3の報告に非常によく似ています。
これが一番怪しいですね~

最後の手段は、この
「How to flash genuine HM-10 firmware on CC2541」
  (make genuine HM-10 from CC41)」でFirmware書き換えかな!?
マーティーのも工場出荷時に戻したらこのNAME=CC41-Aだったし。
V540のFull FirmwareでCCloaderってのを使えばいいらしい。

ここにあるFirmwareは、UPGRADE版だけなので要注意です。

Firmwareの入れ替えは、期待大ですが、別の機会にすることにします。
ちょっと遊ぶだけのつもりだったので、英語ばっかしだし、疲れてきて
リンクを書き留めておくだけになっております(´-﹏-`;)

また、捜索中に
「BLE modules like HM-10 does not have a pairing mode. They connect directly through the app」のが、2、3ありました。

このボードは、2つをMaster/Slaveで対抗接続専用なのかも?
1個しか買ってないので、その実験もできず、もう一個買うまではお蔵入りかな?
ここに「2つのHC-05をMasterとSlaveにしてペアリングする手順」があります。

水晶発振子の付いたHM-10正規品と思われるものは、高値ですね~
たかが水晶1個なのにUS$ 5程に跳ね上がります。2.5倍にもなるのです。

とりあえず、Bluetooth 2.0のボード
チップは、Bluetoothの元祖CSR社のをポチっておきます。1個ですが。

今回は、敗戦ですね~