SILICON LABS 21Q2 Bluetooth Features Lab
Bluetooth 21Q2 Features Lab Manual
O lenei tusi lesona e savalia oe i nisi o foliga fou Bluetooth SDK na faʻalauiloaina i le va o le 20Q4 ma le 21Q2 faʻasalalauga. I totonu o lenei fale suesue o le a matou faia se NCP example ma tusi se polokalama talimalo i le gagana Python. O le fa'aaogaina o le fa'aaliga fou GATT o le a matou fausia ai fo'i le GATT database mai le polokalama fa'apitoa nai lo le fa'aogaina o le GATT Configurator. Mulimuli ane, fa'aalia le vaega LE Power Control e ala i le fa'alauteleina o le polokalama talimalo.
Mea e mana'omia muamua
Ina ia faʻamaeʻaina lenei suʻesuʻega, e te manaʻomia mea nei:
- Lua Thunderboard BG22s poʻo lua WSTK faʻatasi ma soʻo se laupapa leitio EFR32BG/EFR32MG poʻo le faʻafefiloi o nei mea
- Faʻapipiʻi le Simplicity Studio 5, faʻatasi ai ma Gecko SDK v3.2 e aofia ai le Bluetooth SDKv3.2
- O se PC e fa'apipi'i ai le Python v3.6 pe mulimuli ane
Fa'aliga o Mea Fa'atatau mo le NCP Fa'atino
- Fa'apipi'i au laupapa leitio e lua ma tatala le Simplicity Studio 5
- Filifili se tasi o laupapa leitio i luga o le Debug Adapters tab
- Seti le SDK Preferred i le v3.2.0 i lugaview tab o le Launcher view
- Tatala le Example Poloketi & Demo tab
- Su'e le Bluetooth fou - NCP demo.
- Kiliki le Run e moli le ata o le NCP i luga o le laupapa.
(Manatua: e ese mai i le Bluetooth - NCP Empty, o lenei poloketi e le o aofia ai se GATT database, ae o loʻo i ai le GATT API malosi, o se mea e manaʻomia muamua mo isi vaega)
- Toe fai laasaga lava e tasi mo le isi laupapa leitio.
Fausiaina o se Bluetooth Server Application i le Python
Amataina
- O le pusa pybgapi e maua ai le avanoa e tuʻuina atu ai tulafono a le BGAPI agai i le masini faʻapipiʻi mai le PC e faʻaaoga ai le gagana polokalame Python. Ina ia faʻapipiʻi lenei afifi faʻapipiʻi mea nei i le laina faʻatonu: pip install pybgapi Mo nisi faʻamatalaga e uiga i le afifi asiasi https://pypi.org/project/pybgapi/
- Su'e le fa'amatalaga fou a le BGAPI file lalo
- C:\SiliconLabs\SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\v3.2.0\protocol\bluetooth\api\sl_bt.xapi ma kopi i totonu o lau faila galue.
- Tatala le python bash (type python i le CLI)
- Fa'aulufale mai le faletusi bgapi ma le fa'atonuga lenei: >>> fa'aulufale mai bgapi
- Su'e le numera uafu COM (eg COM49) o se tasi o au laupapa leitio. E tatau ona e su'e le "JLink CDC UART Port" i le Device Manager po'o lau mea e sili ona e fiafia i ai.
- Fesootai i lau laupapa leitio:
- >>> feso'ota'iga = bgapi.SerialConnector('COM49')
- Amata le faletusi pybgapi mo lenei node:
- >>> node = bgapi.BGLib(so'oga,'sl_bt.xapi')
- Tatala feso'ota'iga BGAPI agai i le node:
- >>> node.open()
- Siaki pe mafai ona e fesoʻotaʻi ma le laupapa, faʻaaoga le system_hello() poloaiga. E tatau ona e maua se tali system_hello:
- >>> node.bt.system.hello()
- bt_rsp_system_hello(i'uga=0)
- >>> node.bt.system.hello()
- Toe setiina lau node i le poloaiga lenei:
- node.bt.system.reset(0)
- Ole taimi nei e tatau ona e maua se system_boot event. Ina ia aumai le mea fou na tupu, faʻaaoga le poloaiga lenei:
- evt = node.get_events(max_events=1)
- lolomi(evt)
- [bt_evt_system_boot(major=3, minor=2, patch=0, build=774, bootloader=17563648, hw=1, hash=1181938724)]
Fausia le GATT database
- O le Bluetooth - NCP target app e le o aofia ai se GATT database na fausia muamua. O iinei o le a matou fausia ai le database mai le code. Muamua amata se sauniga mo le fausiaina o faʻamaumauga:
- >>> sauniga = node.bt.gattdb.new_session().session
- Fa'aopoopo se auaunaga fou ile GATT database. O iinei o le a matou faʻaopoopoina ai le Generic Access service na faʻaaogaina e le Bluetooth SIG. Ole auaunaga muamua lea (0x0) e leai ni fu'a seti (0x0) ma le 16bit UUID (0x1800).
- tautua = node.bt.gattdb.add_service(session, 0, 0, bytes.fromhex(“0018”)).auaunaga
- Fa'aopoopo se uiga fou ile tautua. O iinei o le a matou faʻaopoopoina ai le uiga o le Igoa Meafaigaluega i le Generic Access service ma le READ property (0x2), leai ni mea e manaʻomia mo le saogalemu (0x0), leai ni fuʻa (0x0), 16bit UUID (0x2a00), fesuiaiga umi (0x2), maualuga maualuga o le 20 ma fa'atasi ai ma le tau muamua o le "PyBGAPI
Example”:
- >>> char = node.bt.gattdb.add_uuid16_characteristic(session, service, 2, 0, 0, bytes.fromhex('002a'), 2,
- 20, paita('PyBGAPI Example','utf-8′)). uiga
- 3.15 Fa'agaoioia le auaunaga fou:
- >>> node.bt.gattdb.start_service(session,service)
- bt_rsp_gattdb_start_service(i'uga=0)
- Fa'agaoioi le uiga fou:
- >>> node.bt.gattdb.start_characteristic(session, char)
- bt_rsp_gattdb_start_characteristic(i'uga=0)
- >>> node.bt.gattdb.start_characteristic(session, char)
- Fa'asaoina suiga ma tapuni le fa'atonuga o fa'amaumauga:
- >>> node.bt.gattdb.commit(session)
- bt_rsp_gattdb_commit(i'uga=0)
Feso'ota'i ile Server
- 3.18 O lea ua i ai le matou igoa masini i le GATT database, e mafai ona matou amata faʻasalalauga. O le faaputuga o le a otometi lava ona faʻasalalau le masini ma le igoa ua faʻamalamalamaina i lana GATT database:
- >>> seti_faasalalauga = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(i'uga=0)
- Amata EFR Fesoʻotaʻi i lau telefoni, ma suʻe lau faʻasalalauga masini e pei o le "PyBGAPI Example”
- E mafai ona e fa'afeso'ota'i i le masini ma su'e lana fa'amaumauga GATT lea o lo'o iai nei le uiga o le Igoa Meafaigaluega
Manatua: afai e te manaʻo i se faʻataʻitaʻiga vaveampe aunoa ma le faʻalavelave i le GATT database, e mafai lava ona e moli le Bluetooth - NCP Empty example i lau laupapa, o loʻo i ai se faʻamaumauga faavae GATT muai fausia. I lenei tulaga, pau lava le mea e tatau ona e faia i le itu talimalo o le:
- >>> faaulufale mai bgapi
- >>> feso'ota'iga = bgapi.SerialConnector('COM49')
- >>> node = bgapi.BGLib(so'oga,'sl_bt.xapi')
- >>> node.open()
- >>> seti_faasalalauga = node.bt.advertiser.create_set().handle
- >>> node.bt.advertiser.start(advertiser_set, 2, 2)
- bt_rsp_advertiser_start(i'uga=0)
Fausia se Bluetooth Client Application i le Python
- O le fa'atupuina o se kalani e sili atu ona lavelave nai lo le fa'atinoina o se 'au'aunaga. O le mea lea o le a matou tusia ai se python script. Tatala lau fa'atonu tusitusiga e sili ona e fiafia i ai ma fai se mea fou file, ta ta'ua le client.py
- Auina mai mea nei:
- E pei lava o le tulaga o le 'auʻaunaga, matou te faʻafesoʻotaʻi i le node e ala i le UART. Fa'aoga le numera COM port o lau laupapa lona lua iinei:
- Mai iinei, o la matou talosaga o le a faʻatautaia mea. Soo se taimi lava e faia ai se mea Bluetooth e ala i le faaputuga, o le a matou taulimaina le mea na tupu ma ave i luma le talosaga:
- Se'i o tatou fa'auigaina le fa'atinoga o mea e fai ma fa'aopoopo i ai se fa'atonu mo le system_boot event, lea o le a amata ai ona tatou su'esu'e mo masini fa'apitonu'u. Manatua, o lenei galuega e tatau ona faʻamalamalamaina aʻo leʻi oʻo i le taimi (ma pe a uma le faʻamatalaga o le fesuiaiga o le node).
- O le taimi lava e amata ai le scanner, o le a maua e le node lipoti faʻataʻitaʻi. Se'i o tatou fa'aopoopoina se tagata e fa'atino mea e fai mo su'esu'ega lipoti i totonu ole galuega sl_bt_on_event(). Afai e maua se lipoti faʻataʻitaʻi ma le igoa masini faʻasalalau "PyBGAPI Example", o le a tatalaina e le kalani se fesoʻotaʻiga agai i lena masini:
- O le taimi lava e te oʻo ai i lenei tulaga e aoga le siakiina pe o maua e lau kalani le server. Ia mautinoa, ua e amataina le faʻasalalauga i luga o le isi masini, ona faʻasaoina lea o le client.py, ma amata mai le laina faʻatonu. E tatau ona e vaʻai i se mea e pei o lenei:
- E tatau i le tagata o tausia ona maua auaunaga ma uiga i luga o le server. O iinei o le a tatou maua ai le Generic Access service ma le Device Name, ma mulimuli ane faitau le taua o le Device Name. Suia lau galuega sl_bt_on_event() i le code lea:
- Faasaoina client.py ma amata mai le laina o le poloaiga. E tatau ona e vaʻai i se mea e pei o lenei:
Fa'aopoopo LE Pule Pulea Vaega
Fa'amomomoina o Mea Fa'atatau
LE Pule Pulea e le mafai i le Bluetooth example galuega faatino e ala i le faaletonu. Ina ia faʻaopoopoina lenei mea, e tatau ona faʻapipiʻi le Bluetooth> Feature> PowerControl software component.
- Tatala le fa'alatalata view o le Simplicity Studio 5.
- Filifili se tasi o au masini i le Debug Adapters tab. Ia mautinoa ole SDK e mana'omia ole v3.2.
- Tatala le Example Projects & Demos tab ma su'e le Bluetooth - NCP Empty example. Oomi le [Fausia] e fatu ai le poloketi. (O le taimi lenei matou te le manaʻo e fausia le GATT database, o lea matou te faʻaogaina ai le NCP Empty, lea e iai se faaletonu.)
- Tatala le GATT Configurator tab, filifili le uiga o le Igoa Meafaigaluega, ma toe tusi le "Silabs Example" tau muamua ma le "PyBGAPI Example” (ina ia iloa e le tagata o tausia le server). Toe tusi foi le umi ole tau ile 15.
- Oomi le ctrl-s e teu ai le database.
- I totonu o le Project Configurator tatala le Polokalama Vaega fa'apipi'i.
- Su'e le Bluetooth > Feature > PowerControl software component, ma kiliki [Install]
- Kiliki i luga o le cogwheel i tafatafa o le PowerControlsoftware vaega e siaki ai le pito i luga ma lalo o le laina auro. Seti le tapulaa pito i lalo mo le 1M
- PHY i le -45 (nai lo le -60). E ui lava i le faʻatinoga o lenei tau e le o se mea e sili ona lelei, o le a maua ai le tele o suiga ole mana Tx, lea e lelei mo faʻamoemoega faʻataʻitaʻiga.
- I le SDK version 3.2.0, e mana'omia le fa'aogaina o se ta'otoga la'ititi e fa'atulaga lelei le laina auro: tatala le sl_bluetooth.c file maua i le /autogen faila o lau poloketi ma fa'agaoioi le sl_bt_init_power_control(); vala'au galuega A'O LE'I sl_bt_init_stack(&config);
- Fausia le poloketi ma moli i lau laupapa.
- Afai o au laupapa e lua e tutusa le ituaiga, faʻapipiʻi le ata tutusa i le isi laupapa. Afai o lau laupapa lona lua o se laupapa e ese, ona toe fai lea o laasaga o loʻo i luga mo le laupapa lona lua.
Amataina le Server ma le Client
- Ia toe tatala le Python bash, faʻafesoʻotaʻi i lau laupapa muamua, ma amata faʻasalalauga
- Suia lau talosaga a le tagata o tausia ina ia le alu ese pe a uma ona faitau le igoa o le masini. Su'e laina nei, ma tu'u i se fa'amatalaga:
- Fa'asaoina ma fa'agasolo lau talosaga a le tagata fa'atau
- py .\client.py
- Tuu mamao lau laupapa e lua, ona faasolosolo malie atu lea o le tasi i le isi. O lea la e tatau ona e vaʻai ua amata ona faʻaititia e le faaputuga lona tulaga malosi mai le faaletonu 8dBm i lalo i le -3dBm (o le laʻititi Tx mana e ala i le faaletonu):
Pepa / Punaoa
![]() |
SILICON LABS 21Q2 Bluetooth Features Lab [pdf] Tusi Taiala 21Q2, Bluetooth Features Lab, 21Q2 Bluetooth Features Lab, Features Lab, Lab |