# Mục đích

  • Mục đích: RN-42 có thêm một số tính năng, như mình cần thêm HID – giả lập bàn phím bluetooth.
  • RN-42, HC-05(HC-06) dùng chip cơ bản là tương tự nhau, những phần khác nhau chi tiết thì mình chưa tìm hiểu.
  • Lưu ý: Các bạn làm theo từng bước cẩn thận, mình không chịu trách nhiệm cho mọi rủi ro có thể xảy ra (HC-05 3$ convert to RN-42 20$ - if you know I mean), có vấn đề gì thắc mắc các bạn comment phía bên dưới nhé.

# Thiết bị cần thiết

  1. Mạch Bluetooth HC-05 (HC06 mình chưa thử nhưng cơ bản là 2 con này giống nhau, chỉ khác nhau phần sử dụng chân)hc05_1
  2. Mạch nạp FT232RL – sử dụng chip FTDIft232rl_1
  3. 4 điện trở 100ohm
  4. Nguồn phụ 3,3V khoảng trên 100mA – mình dùng nguồn trên con Arduino Uno luôn

# Phần mềm cần thiết

  1. Zadig
  2. Blueflash – cái này bạn cần lên trang chủ đăng ký một tài khoản free để download về, vì mỗi người có 1 mã riêng, mình share có thể bị lỗi bản quyền, các bạn thông cảm.
  3. Sau khi cài đặt Blueflash, các bạn vào https://github.com/lorf/csr-spi-ftdi/releases để lấy file ‘dll’ trong folder ‘lib-win32’ copy đè (nên copy đi đâu đó hoặc rename) vào thư mục (C:\Program Files (x86)\CSR\BlueSuite 2.6.2) win64 bit hoặc (C:\Program Files\CSR\BlueSuite 2.6.2).
  4. Firmware RN-42

# Triển khai

# 1. Sơ đồ chân

Đây là sơ đồ chân của HC-05 (module nhỏ nằm phía trên) hc05_pinout

# 2. Mạch minh hoạ

Các bạn đi chân (CLK, MISO, MOSI, CSB) cho HC-05 như hình bên dưới (chân VCC và GND có thể sử dụng chân đã có săn ở bên ngoài)hc05_2

# 3. Kết nối FT232 vào PC

Kết nối mạch nạp FT232 vào PC, mở Zadig lên chọn (FT232R USB UART, libusbK(v3.0.7.0)) sau đó bấm Replace Driver như hìnhzadig

# 4. Nối HC-05 với mạch nạp

Rút mạch nạp ra khỏi PC, nối HC-05 với mạch nạp (thông qua các điện trở 100ohm) như sau (hình bên dưới)

  1. CLK -> RTS
  2. MISO -> DSR
  3. MOSI -> RI
  4. CSB -> DTR
  • Nối thêm vcc 3.3V của nguồn phụ vào vcc của HC05
  • GND nối chung 3 cái nguồn phụ, mạch nạp và HC05

hc05_3

# 5. Backup lại FW HC05 và một số thứ quan trọng

Lưu ý nên chạy chế độ Run as Adminstrator cho các chương trình.

  1. Kết nối mạch nạp vào PC
  2. Mở Blueflash lên (chờ một chút để chương trình hiện nút Stop Processor), bấm Stop Processor
  3. Lưu FW hiện tại trong HC05, Bấm Dump, ta được 2 file (.xpv và .xdv)
  4. Sau đó bấm Start process lại
  5. Lưu các thông số quan trọng của module, mở BlueCore Persistent Store (PStool.exe), chọn File -> Save (export), ta được file (.psr) tạm đặt là ‘HC05.psr’
  6. Copy lại 1 file (HC05_backup.psr), edit ‘HC05.psr’ chỉ cần giữ lại 3 thông số:
    • // PSKEY_BDADDR
      • &0001 = …
    • // PSKEY_ANA_FTRIM
      • &01f6 = …
    • // PSKEY_ANA_FREQ
      • &01fe = …

Lưu lại.

# 6. Nạp Firmware RN-42 lên HC05 (bước hấp dẫn đã chờ đợi chuẩn bị nãy giờ)

  1. Trên Blueflash, Bấm Download, chọn file firmware của RN-42 đã tải về.Chờ 1 chút để chương trình upload lên HC05
  2. Tắt Blueflash đi để trách truy xuất 2 chương trình vào 1 lúc vào mạch nạp, Mở Pstool.exe lên, chọn ‘Merge’ trong menu File, chọn file ‘HC05.psr’ đã được edit ở trên để nạp lại thông số cũ của module (nếu không sẽ không giao tiếp được).
  • Giải thích: ví dụ như thông số BDADDR là địa chỉ bluetooth của nhà sản xuất, mỗi module sẽ có một địa chỉ riêng, có thể lấy thông số của module HC05 khác nhưng sẽ bị trùng địa chỉ, vẫn có thể sử dụng được với các thiết bị khác nhưng không biết sẽ như thế nào nếu 2 thiết bị đó pair với nhau hoặc 2 thiết bị cùng pair với thiết bị khác.

Congratulation!!, nếu đã tới đây, chúc mừng bạn đã nạp được fw của RN42 cho HC05 của mình. Bạn có thể nạp các chương trình Arduino tương tác với RN42 cho HC05 rồi đấy. Bài sau mình sẽ ví dụ về giả lập bàn phím bluetooth trên HC05. Có thắc mắc gì các bạn cứ comment mục bình luận bên dưới hoặc có thể pm fb cho mình. Cảm ơn các bạn.