Perpustakaan ini sudah tidak dirawat lagi, dan tidak ada rencana pengganti perpustakaan ini. Meskipun tetap dapat diakses oleh pengguna SDK nRF5 yang ada, SDK ini tidak akan menerima pembaruan atau dukungan lebih lanjut. Kami menyarankan untuk tidak memulai proyek baru dengan perpustakaan ini, karena firmware (file .hex) yang tersedia menggunakan binari SoftDevice yang sudah ketinggalan zaman.
pc-ble-driver
menyediakan pustaka C/C++ untuk serialisasi SoftDevice Bluetooth Low Energy nRF5.
pc-ble-driver
terdiri dari sekumpulan pustaka statis dan bersama yang menyediakan fungsionalitas SoftDevice ke aplikasi melalui komunikasi port serial dengan chip konektivitas nRF5 yang menjalankan SoftDevice dan perangkat lunak konektivitas, disertakan sebagai satu file .hex di sini. Untuk informasi lebih lanjut tentang serialisasi SoftDevice, lihat Serialisasi.
Pustaka C/C++ dapat dihubungkan secara langsung, namun juga disediakan sebagai pengikatan tingkat lebih tinggi yang memudahkan pengembangan dengan biaya kontrol yang lebih rendah (dapat diterima dalam banyak kasus):
Dimana 'Chip Aplikasi' hanyalah perangkat keras umum (yaitu perangkat Windows, Linux atau macOS), meskipun bisa juga berupa Arduino atau Raspberry Pi misalnya.
Untuk menggunakan pc-ble-driver, Development Kit Anda harus memiliki firmware yang benar. Firmware yang diperlukan terdapat di folder hex/sd_api_v
dan berisi SoftDevice dan firmware konektivitas yang diperlukan untuk berkomunikasi dengan pc-ble-driver
.
Pustaka yang dihasilkan kompatibel dengan versi SoftDevice API dan IC nRF5x berikut:
connectivity__1m_with_s130_2.xx
(IC seri nRF51 dan nRF52)connectivity__<1m|*usb>_with_s132_3.xx
(hanya untuk IC seri nRF52)connectivity__<1m|*usb>_with_s132_5.xx
(hanya untuk IC seri nRF52)connectivity__<1m|*usb>_with_s132_6.xx
(hanya untuk IC seri nRF52)connectivity__<1m|*usb>_with_s140_6.xx
(hanya untuk IC seri nRF52)*usb) hanya untuk IC seri nRF52 dengan periferal USBD
PCA | Nama resmi | Nomor artikel | Catatan |
---|---|---|---|
PCA10028 | KIT PENGEMBANGAN nRF51 | nRF6824 | |
PCA10031 | dongle nRF51 | nRF6825 | |
PCA10040 | KIT PENGEMBANGAN nRF52 | nRF6827 | |
PCA10056 | nRF52840 { Perangkat Pengembangan } | nRF6828 | *) |
PCA10059 | nRF52840 { Dongle } | nRF6829 | Hanya dapat menggunakan firmware konektivitas dengan dukungan port serial USB CDC Nordik |
*) Dapat menggunakan versi port serial USB CDC Nordic dan versi SEGGER J-Link-OB (VCOM). Menggunakan versi port serial USB CDC Nordic pada PCA10056 mengharuskan Anda menghubungkan pin P0.18 dan P0.24. Pin ke chip QSPI juga harus ada (secara default). Algoritma untuk mendeteksi apakah itu PCA10056 atau PCA10059 adalah dengan memeriksa apakah mungkin untuk berkomunikasi dengan chip QSPI. PCA10059 tidak memiliki chip QSPI. Deteksi ini digunakan oleh pemicu nRF Connect DFU untuk menentukan pin apa yang digunakan untuk mengatur ulang perangkat ketika beralih antara DFU dan mode aplikasi.
Pustaka komunikasi ini berfungsi melalui semua jenis port serial (UART), tetapi paling sering digunakan melalui Segger J-Link USB CDC UART. Untuk menyiapkan driver J-Link yang diperlukan cukup unduh dan instal versi yang cocok dengan sistem operasi Anda:
Setelah Anda menginstal driver yang diperlukan dan menghubungkan papan yang mendukung J-Link (seperti Nordic Development Kits), port tersebut akan tersedia.
Selain itu, Anda harus menonaktifkan Mass Storage Device
untuk menggunakan pc-ble-driver
untuk berkomunikasi dengan perangkat, melihat data corruption or drops issue
.
Port serial akan muncul sebagai COMxx
. Cukup periksa bagian "Ports (COM & LPT)" di Device Manager.
Port serial akan muncul sebagai /dev/ttyACMx
.
Secara default port ini tidak dapat diakses oleh semua pengguna. Ketik perintah di bawah ini untuk menambahkan pengguna Anda ke grup dialout
untuk memberinya akses ke port serial. Perhatikan bahwa login ulang diperlukan agar ini dapat diterapkan.
$ sudo usermod -a -G dialout < username >
Untuk mencegah layanan modemmanager mencoba menyambung ke port serial CDC ACM:
$ systemctl stop ModemManager.service
$ systemctl disable ModemManager.service
Port serial akan muncul sebagai /dev/tty.usbmodemXXXX
.
Ada masalah umum, periksa di sini jika Anda menemui masalah.
Untuk memprogram firmware konektivitas Anda memerlukan nrfjprog
yang dibundel dengan Alat Baris Perintah nRF5x, yang dapat diunduh dari:
Tambahkan nrfjprog
dan mergehex
ke PATH
di Linux dan macOS.
Alternatifnya, nRF Connect Programmer
dapat membantu Anda memprogram firmware konektivitas dengan dukungan UI.
Unduh nRF Connect Desktop dan instal nRF Connect Programmer
di sana.
Untuk mengkompilasi pc-ble-driver
Anda memerlukan alat berikut:
pc-ble-driver
dari sumber Untuk mengkompilasi file HEX connectivity
Anda memerlukan alat tambahan:
connectivity
Ikuti langkah-langkah untuk menginstal dependensi pada platform tertentu:
Unduh Visual Studio 15
atau versi yang lebih baru dan instal.
Instal Cokelat. Instal dengan cmd.exe
(Jalankan sebagai administrator)
# Copy everything below
@ " %SystemRoot%System32WindowsPowerShellv1.0powershell.exe " -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command " iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) " && SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
Jika Chocolatey
sudah terinstal seperti dijelaskan di atas tetapi belum ditambahkan ke PATH, jalankan:
$ SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
Instal Git
.
$ choco install -y git
Instal CMake
.
$ choco install -y cmake
Instal vcpkg.
$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ git checkout tags/2020.04
$ . b ootstrap-vcpkg.bat
Kemudian tambahkan lokasi vcpkg ke PATH
dan atur sebagai variabel lingkungan VCPKG_ROOT
.
Langkah-langkah berikut diperlukan hanya jika Anda ingin mengkompilasi file HEX connectivity
Anda sendiri.
Instal ninja
.
$ choco install -y ninja
Unduh dan instal GNU Embedded Toolchain for Arm
versi 7-2018q2
Unduh dari lokasi ini.
Ikuti petunjuk pemasangan.
Tetapkan jalur instalasinya sebagai GNUARMEMB_TOOLCHAIN_PATH
dalam variabel lingkungan. Misalnya:
$ set GNUARMEMB_TOOLCHAIN_PATH=c: g ccarmemb
Instal Python
dan pip
, lalu instal nrfutil
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
Instal build-essential
.
$ sudo apt-get -y install build-essential
Instal Git
$ sudo apt-get -y install git
Jika versi Git
yang terinstal lebih rendah dari yang dibutuhkan, maka:
$ sudo add-apt-repository ppa:git-core/ppa
$ sudo apt update
$ sudo apt install git
Instal CMake
.
$ sudo apt-get -y install cmake
Instal CMake
dari sumber jika versinya lebih rendah dari yang dibutuhkan.
Instal vcpkg.
$ git clone https://github.com/Microsoft/vcpkg.git
$ cd vcpkg
$ git checkout tags/2020.04
$ ./bootstrap-vcpkg.sh
Kemudian tambahkan lokasi vcpkg ke variabel lingkungan PATH
dan VCPKG_ROOT
.
Instal Ninja
.
$ sudo apt-get install ninja-build
Langkah-langkah berikut diperlukan hanya jika Anda ingin mengkompilasi file HEX connectivity
Anda sendiri.
Instal GNU Embedded Toolchain for Arm
versi 7-2018q2.
GNUARMEMB_TOOLCHAIN_PATH
dalam variabel lingkungan. Instal Python
dan pip
, lalu instal nrfutil
.
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
# If errors persist, try updating pip itself.
Instal Xcode (>=10.1)
.
Instal gcc6
menggunakan HomeBrew.
$ brew install gcc6
Instal CMake
menggunakan HomeBrew.
$ brew install cmake
$ brew upgrade cmake
Instal CMake
dari sumber jika versinya lebih rendah dari yang dibutuhkan.
Instal vcpkg.
$ git clone https://github.com/Microsoft/vcpkg/
$ cd vcpkg
$ git checkout tags/2020.04
$ ./bootstrap-vcpkg.sh
Kemudian tambahkan lokasi vcpkg ke variabel lingkungan PATH
dan VCPKG_ROOT
.
Langkah-langkah berikut diperlukan hanya jika Anda ingin mengkompilasi file HEX connectivity
Anda sendiri.
Instal GNU Embedded Toolchain for Arm
versi 7-2018q2.
GNUARMEMB_TOOLCHAIN_PATH
dalam variabel lingkungan. Instal Python
dan pip
, lalu instal nrfutil
$ pip install nrfutil
# Reboot if installation succeeds but validation fails
Instal dependensi vcpkg.
# cd
# Make sure %VCPKG_ROOT% is set and added to %PATH%
$ mkdir build && cd build
$ vcpkg install asio catch2 spdlog
CMake Pilih kompiler Visual Studio yang akan digunakan sesuai dengan artikel ini: Buat kode C/C++ pada baris perintah
$ cmake -G Ninja ..
Menyusun
$ cmake --build .
Secara opsional pilih konfigurasi build dengan opsi --config
. Biasanya Debug
, Release
, MinSizeRel
dan RelWithDebInfo
tersedia. Misalnya:
$ cmake --build . --config Debug
Instal dependensi vcpkg.
# cd
# Make sure $VCPKG_ROOT is set and added to $PATH
$ mkdir build && cd build
$ vcpkg install asio catch2 spdlog
CMembuat
$ cmake
-G Ninja
..
Secara opsional Pilih konfigurasi build dengan opsi -DCMAKE_BUILD_TYPE
. Biasanya Debug
, Release
, MinSizeRel
dan RelWithDebInfo
tersedia.
Secara opsional pilih arsitektur target (32 atau 64-bit) menggunakan opsi -DARCH
. Nilainya bisa berupa x86_32
, x86_64
, x86_32,x86_64
. Misalnya:
$ cmake
-G Ninja
-DCMAKE_BUILD_TYPE=Debug
-DARCH=x86_32,x86_64
..
Menyusun
$ cmake --build .
pc-ble-driver
dari sumber jika Anda belum melakukannya.Pastikan variabel lingkungan berikut disetel:
VCPKG_ROOT
GNUARMEMB_TOOLCHAIN_PATH
Pastikan jalur berikut telah ditambahkan ke PATH:
VCPKG_ROOT
mergehex
Ikuti langkah-langkah untuk menginstal dependensi pada platform tertentu:
Tetapkan lingkungan
# cd
$ SET " PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin "
# Make sure environment variables have been set
# as described at beginning of this section
CMembuat
$ mkdir build && cd build
# Modify -DCONNECTIVITY_VERSION=a.b.c
$ cmake -G Ninja -DCOMPILE_CONNECTIVITY=1 -DCONNECTIVITY_VERSION=1.0.0 ..
COMPILE_CONNECTIVITY
diatur ke 1 untuk mengaktifkan kompilasi firmware konektivitas.
CONNECTIVITY_VERSION
menentukan versi firmware konektivitas yang dikompilasi.
Periksa opsi lainnya saat mengkompilasi pc-ble-driver di Windows
Menyusun
$ cmake --build . --target compile_connectivity
File HEX tersedia di folder hex/sd_api_v
setelah kompilasi. Ini termasuk SoftDevice dan aplikasi konektivitas.
Tetapkan lingkungan
# cd
$ export TMP=/tmp
# Make sure environment variables have been set
# as described at beginning of this section
CMembuat
$ mkdir build && cd build
# Modify -DCONNECTIVITY_VERSION=a.b.c
$ cmake
-G Ninja
-DCOMPILE_CONNECTIVITY=1
-DCONNECTIVITY_VERSION=1.0.0
..
COMPILE_CONNECTIVITY
diatur ke 1 untuk mengaktifkan kompilasi firmware konektivitas.
CONNECTIVITY_VERSION
menentukan versi firmware konektivitas yang dikompilasi.
Periksa opsi lainnya saat mengkompilasi pc-ble-driver di Ubuntu Linux atau macOS
Menyusun
$ cmake --build . --target compile_connectivity
File HEX tersedia di folder hex/sd_api_v
setelah kompilasi. Ini termasuk SoftDevice dan aplikasi konektivitas.
Buka alat instalasi jika Alat Baris Perintah nRF5x belum diinstal.
Untuk menggunakan perpustakaan ini Anda perlu memprogram firmware konektivitas pada IC nRF5x
Gunakan Alat Baris Perintah nRF5x untuk menghapus dan memprogram IC:
$ nrfjprog -f NRF5 -e
$ nrfjprog -f NRF5 --program hex/sd_api_v/connectivity___with_s_...hex
Alternatifnya, gunakan nRF Connect Programmer untuk menghapus dan memprogram IC.
Beberapa kit, seperti dongle pca10059 nRF52, tidak memiliki debugger bawaan dan harus diprogram melalui DFU serial. Di Windows, driver perangkat diperlukan agar kit dapat dideteksi dengan benar oleh sistem operasi. Untuk menginstal driver yang diperlukan, pastikan Anda telah menginstal nRF Connect for Desktop terbaru.
Memprogram firmware konektivitas melalui serial DFU dapat dilakukan dari baris perintah atau dari nRF Connect untuk Desktop.
Peningkatan Firmware Perangkat dengan nrfutil biasanya dilakukan dalam dua langkah: 1: membuat paket zip DFU, dan 2: melakukan prosedur DFU. Paket zip DFU telah dibuat sebelumnya dan disertakan dalam repositori ini. Untuk menjalankan prosedur DFU dengan nrfutil dengan paket DFU yang sudah dibuat sebelumnya:
nrfutil dfu usb-serial -pkg connectivity_x.x.x_usb_with_s_.._dfu_pkg.zip -p
Contoh-contoh ini berfungsi sebagai titik awal yang bagus untuk pengembangan dengan pc-ble-driver
. Contohnya termasuk monitor detak jantung (periferal BLE) dan pengumpul detak jantung (master BLE) dan menunjukkan struktur dasar aplikasi yang dibangun di atas pc-ble-driver
.
Untuk menjalankan dan menjalankan contoh dengan cepat, lihat example/README.md.
Jika Anda menemui masalah saat instalasi driver pc-ble, silakan lihat Issues.md.
Jangan ragu untuk mengusulkan perubahan dengan membuat permintaan tarik.
Jika Anda berencana melakukan perubahan yang tidak sepele, mulailah dari hal kecil dan mintalah kesepakatan sebelum melakukan terlalu banyak pekerjaan di dalamnya. Permintaan penarikan dapat ditolak jika tidak sesuai dengan peta jalan produk saat ini.
Untuk menerima permintaan penarikan Anda, kami ingin Anda menandatangani Perjanjian Lisensi Kontributor (CLA). Anda akan melihat instruksi untuk melakukan ini setelah mengirimkan permintaan penarikan pertama Anda.
Jika Anda menemukan bug, atau memiliki pertanyaan atau masukan lain secara umum, silakan kirimkan postingan di portal Nordic DevZone. Perhatikan bahwa laporan bug harus menjelaskan dengan cukup detail cara mereproduksi bug.
Lihat file lisensi untuk detailnya.