Programiranje

HM-10 Bluetooth modukl

Dex.pwn ned 5.1.2020 22:44

Pozdrav, koristim HM-10 4.0 BLE modul s kojim upravljam putem AT komandi. Firmware koji sje na njemu je HMSoft V609.

Za testiranje modula putemn računala koristim FTDI konverter, sve radi, modul reagira na AT komande.

UUID modula je 0xFFE0 i 0xFEE1, te je isti u slave modu.

 

Na mobitelu koristim Serial Bluetooth aplikaciju. I preko nje sve radi kako spada, pronalazi modul, može se spojiti na modul(ako nema PINa za uparivanje). Protok podataka ide kako spada. Međutim, ako otiđem u postavke mobitela i pokušam se odakle spojiti na modul - u slučaju da nema PINa tad automatski dobijm da je modul odbio uparivanje. Ukoliko ima PIN(ukoliko sam poslao AT+TYPE1 ili AT+TYPE2 ili AT+TYPE3), tada se spoji i ostane uparen.

 

No, ako na HM-10 modul stavim najnoviji(V705) firmware, tada u aplikaciji dobijem grešku "write descriptor failed", a u postavaka telefona se nikako ne mogu spojiti na modul. Ali, ako otiđem u aplikaciju BLE Scanner(dakle, druga aplikacija), tu se mogu spojiti kako spada.

 

Meni sada nije jasno šta se tu događa? UUID nisam dirao, Jedino par stavki za ime, obavijest kad se netko spoji itd..

Modul bi koristio za slanje podataka(oba smjera) s mikrokontrolera, te bi se ti podaci prikazivali u aplikaciji(koja se treba tek napraviti).

Testirao sam na Xiaomi Redmi 5 Plus(Android 8.1, MIUI 11), Samsung A5 2017(Android 8.0) i Samsung J6+ 2018(Android 9).

Čini mi se da je modul hardverski ispravan, no kao da softver zeza. Prvi put radim s Bluetoothom pa nisam upućen u način na koji isti radi.

Zahvaljujem se na pomoći.

 

Tipovi za spajanje su:

0: Not need PIN Code (Default)
1: Auth not need PIN
2: Auth with PIN
3: Auth and bonded

Android system AT+TYPE1 is same to AT+TYPE2.

Alkaline ned 5.1.2020 23:01

Muke po bluetoothu, hehe.

Ne kužim kako BLE modul uopće ima SPP komunikaciju (Serial Port Profile iliti UART emulacija) koja je dostupna samo u BT classic???

 

Za svako debugiranje Bluetooth komunikacije preporučam Wireshark jer ni sam bog ne zna gdje zapinje.

Upali capture paketa na mobitelu u dev opcijama i prikači ga na Wireshark pa ćeš moći fino pratiti što se događa.

Dex.pwn ned 5.1.2020 23:37

S tim UARTom komuniciram između MCU-a i samog BLE modula(konfiguracija itd..). Kasnije kad se spojim mobitelom, jedino remote device onda može vršiti konfiguraciju modula.

 

Budem nabacio taj program pa ću vidjeti šta će reći.

Dex.pwn pon 6.1.2020 01:34

Još jedna stvar koju sam primijetio na svom Xiaomi Redmi 5 Plusu je ta da kod svakog paljenja Bluetootha, Bluetooth dobije novu MAC adresu. Ostala dva telefona imaju istu MAC adresu cijelo vrijeme.

Dex.pwn pon 6.1.2020 15:23
Alkaline kaže...

Muke po bluetoothu, hehe.

Ne kužim kako BLE modul uopće ima SPP komunikaciju (Serial Port Profile iliti UART emulacija) koja je dostupna samo u BT classic???

 

Za svako debugiranje Bluetooth komunikacije preporučam Wireshark jer ni sam bog ne zna gdje zapinje.

Upali capture paketa na mobitelu u dev opcijama i prikači ga na Wireshark pa ćeš moći fino pratiti što se događa.

 

https://i.imgur.com/aDJCAeU.png - V705 firmware, greška write descriptor failed

https://i.imgur.com/MuKnxrJ.png - V609 firmware. Spaja se iz postavki mobitela jedino ako ima PIN(AT+TYPE1 ili AT+TYPE2 ili AT+TYPE3). Iz Bluetooth Serial aplikacije se spaja kad nema PIN-a.

https://i.imgur.com/zKHBZuY.png -  V705 firmware. 

 

 

 

Paket 306. IOzgleda da je do UUID-a. UUID je isti i u V609 i u V705 firmwareu.

Kad s BLE Scanner aplikacijom pročitam 0x2902, dobijem link stranice gdje sam skinuo firmware.

Alkaline uto 7.1.2020 08:38
Dex.pwn kaže...
Još jedna stvar koju sam primijetio na svom Xiaomi Redmi 5 Plusu je ta da kod svakog paljenja Bluetootha, Bluetooth dobije novu MAC adresu. Ostala dva telefona imaju istu MAC adresu cijelo vrijeme.

 ??? To ti sigurno radi probleme kod automatskog spajanja jer su uređaji upareni na MAC. Pogledaj na mobitelu da li se to da isključiti.

Dex.pwn uto 7.1.2020 20:03
Alkaline kaže...
Dex.pwn kaže...
Još jedna stvar koju sam primijetio na svom Xiaomi Redmi 5 Plusu je ta da kod svakog paljenja Bluetootha, Bluetooth dobije novu MAC adresu. Ostala dva telefona imaju istu MAC adresu cijelo vrijeme.

 ??? To ti sigurno radi probleme kod automatskog spajanja jer su uređaji upareni na MAC. Pogledaj na mobitelu da li se to da isključiti.

 

Iz nekog razloga to se događa samo kod AT+TYPE0, dok kod ostalih MAC ostaje isti.

Pa da, definitivno bi mi stvaralo probleme kad bi koristio AT+ALLO(white list).