CC2541 piyasada HM10 ve HM11 bluetooth modülleri için kullanılan çiplerden.
Hafta sonu bu çipleri HID olarak göstermek için bir çalışma yaptık. Bunun için de https://geekhack.org/index.php?topic=62236.0 bu blog postunu takip ederek belli bir aşama kaydettik. Ancak güncel firmware de olan bir problemden ötürü projeyi tam olarak tamamlayamadık. Yapmak istediğimiz kısaca şuydu: HM10'u bir klavye gibi göstererek bilgisayara yazı yazabilmek.
Bunun için öncelikle HM10 üzerinde yazılım güncellemesi yapmamız lazım. HM10 üzerinde pinlere erişebilmemiz gerekiyor. Bu pinleri de Arduino'ya bağlamamız gerekiyor.
Name | CC2541 | Arduino |
---|---|---|
DEBUG_CLOCK | Pin 7 | Pin 5 |
DEBUG_DATA | Pin 8 | Pin 6 |
RESET_N | Pin 11 | Pin 4 |
Sonrasında CCloader isminde bir program indirmemiz gerekiyor. Bu program sayesinde HM10 çipinin yazılım güncellemesi atabileceğiz. Aslında bu CCloader çalışma şekli şu şekilde
CCloader (CLI) ==> Arduino (CCloader sketch) ==> HM11
Sonrasında https://github.com/rampadc/cc254x-hidKbdM bu projedeki firmware'i HM11'e yükleyelim. Bunu yüklerken CCloader programını kullanıyoruz. Github reposunda bin dosyaları hex formatında verilmiş. Bundan dolayı bunları da .bin formatına çevirmemiz gerekiyor. Çevirdikten sonra CCloader ile firmware HM-11 üzerine yazalım:
Enable transmission...
Request sent already!
/********************************************************************/
* If there is no respond last for 3s, please press "Ctrl+C" to exit!
* And pay attention to :
* 1. The connection between computer and Arduino;
* 2. The connection between Arduino and CC2540;
* 3. Whether the device you using is Leonardo or not;
* 4. Other unexpected errors.
/********************************************************************/
Waiting for respond from Arduino...
Uploading firmware...
Waiting for respond from Arduino...
Uploading firmware...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5
1 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 9
9 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 1
76 177 178 179 180 181 182 183 184
Bu işlem tamamlandıktan sonra Github linkindeki firmware'i kullanabiliriz. Burada belli başlı komutlar var bunlar:
Sonrasında Arduino üzerinden HM11'e Translation Mode'a geçiriyoruz. Ve sonrasında bir harf gönderdiğimiz zaman bu firmare bunu HID formatında bize geri döndürüyor. Bu şekilde Hm-11 modülünü bir HID cihazına çevirmiş olduk. Ancak kullandığımız HID firmware'inde olan bazı sıkıntılardan ötürü cihaz belli bir süre sonra komut almayı bırakıyor. Yani bu firmware ile çalışan bir proje yapabilmek ne yazık ki mümkün değil.