CC2541 Çipleri İçin Firmware Update

2021-07-11 | Tags: #arduino

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:

  • @@@: Command Mode
  • $$$: Translation Mode

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.


This was the end of the blog post. You can reach me via email umusasadik at gmail com