1. Download
and install python 2.7.15.
2. Open cmd.
3. Go
to C:\Python27\Scripts\
4. Type command in console.
pip
install nrfutil==3.4.0
5. Done.
2020年2月10日 星期一
2018年7月8日 星期日
[nRF52840] ble app uart test
本篇主要是仿照之前在nRF52832上面的ble app uart範例將其實做在nRF52840上面.
nRF52832 Link: nRF52832_ble_app_uart
1. Test Video:
nRF52832 Link: nRF52832_ble_app_uart
1. Test Video:
2018年6月18日 星期一
[nRF52832] nRF52832 BLE Uart + MPU6050 Acc and Gyro X axis Output Test
1. 主要是在底下這3篇的基礎下, 將3個範例合在一起, 透過I2C去抓取MPU6050 Acc and Gyro x/y/z軸數值, 並透過BLE Uart將所抓到的Acc and Gyro x軸數值透過BLE Uart丟出來.
- [nRF52832][Taobao-Version]nRF52832 BLE Uart Test
- nRF52832 I2C Master Driver
- [nRF52832] [Taobao-Version] nRF52832 BLE Uart + MPU6050 Test
2. Test Video:
2018年4月14日 星期六
[nRF52840] 2018 Nordic Tech Tour (Taipei)
4月9日去台北國際會議中心參加了2018 Nordic Tech Tour, 這次的研討會堪稱是目前最硬的一次, 中午用餐時間只有30分鐘, 且課程間距皆差不多只有15分鐘, 就這樣一路從早上9點操到下午3點......TAT
上課的內容就集中在Bluetooth 5.0 / Bluetooth mesh / Thread等內容, 還有針對這次贈送的Thingy 52 開發工具來介紹, 相信上完課的大家應該都很累...A_A
上課的內容就集中在Bluetooth 5.0 / Bluetooth mesh / Thread等內容, 還有針對這次贈送的Thingy 52 開發工具來介紹, 相信上完課的大家應該都很累...A_A
2018年1月5日 星期五
2017年9月9日 星期六
[nRF52832] Unboxing Nordic Thingy 52 IoT Sensor Kit
最近去參加研討會, 送了一片Thingy 52 IoT Sensor Kit的板子, 看起來還挺不錯的, 直接整合了許多sensor在同一塊板子上, 也有現成的app可以進行測試, 算是練習IoT相當方便的一塊開發板.
2017年4月1日 星期六
[nRF52840] Unboxing nRF52840 Preview Development Kit
1. 最近收到了nRF52840 DK Board, 52840和52832除了在RAM/ROM升級外, 有個很厲害的地方在於Output Power可以輸出+8dbm, 且52840內建了USB, 這對於Gaming Mouse/Keyboard來說很有幫助.
2. nRF52840 DK Board正反面, 比上一代的52832的長度長了不少.
2. nRF52840 DK Board正反面, 比上一代的52832的長度長了不少.
2017年3月26日 星期日
2016年8月16日 星期二
[nRF52832] [Taobao-Version] nRF52832 BLE Uart + MPU6050 Test
1. 主要是在底下這2篇的基礎下, 將兩個範例合在一起, 透過I2C去抓取MPU6050 Acc x/y/z軸數值, 並透過BLE Uart將所抓到的Acc x軸數值透過BLE丟出來.
2. Test Video:
3. Test Code link: (IDE: Keil-MDK v5.20)
4. softdevice link:
2016年8月3日 星期三
[nRF52832] [Taobao-Version] nRF52832 BLE Uart Test
1. 前陣子在淘寶上買了一片小型化的nRF52832開發板, 昨天終於稍微有空測試一下硬體, 好險測試後看起來目前是正常的.
2. Test Video:
3. Test Code link: (IDE: Keil-MDK v5.20)
nRF5_SDK_11.0.0_89a8197
4. softdevice link:
s132_nrf52_2.0.1_softdevice.hex
5. To be continued........
2. Test Video:
3. Test Code link: (IDE: Keil-MDK v5.20)
nRF5_SDK_11.0.0_89a8197
4. softdevice link:
s132_nrf52_2.0.1_softdevice.hex
5. To be continued........
2016年7月20日 星期三
2016年5月12日 星期四
nRF52832 I2C Master Driver
1. 最近才知道原來Nordic有新版的i2c driver, 簡單地做個備份, 才知道以後要怎樣用.
2. 需先include nrf_drv_twi.c & nrf_drv_twi.h, 路徑在\components\drivers_nrf\twi_master\.
3. 需記得打開Define: TWIM_IN_USE.
4. 本範例使用TWI1, 所以記得需至nrf_drv_config.h打開相關的設定及設定I2C GPIO和I2C Frequency.
5. 接下來就是I2C.h & I2C.c的簡易程式碼.
I2C.h
2. 需先include nrf_drv_twi.c & nrf_drv_twi.h, 路徑在\components\drivers_nrf\twi_master\.
3. 需記得打開Define: TWIM_IN_USE.
4. 本範例使用TWI1, 所以記得需至nrf_drv_config.h打開相關的設定及設定I2C GPIO和I2C Frequency.
5. 接下來就是I2C.h & I2C.c的簡易程式碼.
I2C.h
#ifndef __I2C_H__ #define __I2C_H__ #include "nrf_drv_twi.h" bool i2c_write( uint8_t device_address, uint8_t register_address, uint8_t *value, uint8_t number_of_bytes ); bool i2c_read( uint8_t device_address, uint8_t register_address, uint8_t *destination, uint8_t number_of_bytes ); #endif /* __I2C_H__ */I2C.c
#include "I2C.h"
bool i2c_write(uint8_t device_address, uint8_t register_address, uint8_t *value, uint8_t number_of_bytes )
{
#define i2c_write_data_len 6
uint8_t w2_data[i2c_write_data_len+1], i;
const nrf_drv_twi_t twi = NRF_DRV_TWI_INSTANCE(1);
nrf_drv_twi_init(&twi, NULL, NULL, NULL);
w2_data[0] = register_address;
for ( i = 0 ; i < number_of_bytes ; i++ ) {
w2_data[i +1] = value[i];
}
nrf_drv_twi_enable(&twi);
nrf_drv_twi_tx(&twi, (device_address)>>1, w2_data, number_of_bytes+1, false);
return true;
}
bool i2c_read(uint8_t device_address, uint8_t register_address, uint8_t * destination, uint8_t number_of_bytes)
{
const nrf_drv_twi_t twi = NRF_DRV_TWI_INSTANCE(1);
nrf_drv_twi_init(&twi, NULL, NULL, NULL);
nrf_drv_twi_enable(&twi);
nrf_drv_twi_tx(&twi, (device_address)>>1, ®ister_address, 1, true);
nrf_drv_twi_rx(&twi, (device_address)>>1, destination, number_of_bytes);
return true;
}
2016年4月18日 星期一
nRF52 DK v1.1.0 vs. nRF52 DK v0.9.0
1. 最近收到了最新版本的nRF52 DK Board v1.1.0, 馬上來跟nRF52 DK Board v0.9.0來比較
看看吧.
2. 外包裝比較, 左邊是v1.1.0, 右邊是v0.9.0.
3. 板子正面比較, 上面是v1.10, 下面是v0.9.0.
4. 板子背面比較, 左邊是v1.1.0, 右邊是v0.9.0.
看看吧.
3. 板子正面比較, 上面是v1.10, 下面是v0.9.0.
4. 板子背面比較, 左邊是v1.1.0, 右邊是v0.9.0.
5. nRF52 DK Board v1.1.0包裝全內容物.
2015年11月25日 星期三
nRF52832 BLE Mouse Test(IAR EWARM Version)
1. 跟之前提供的nRF52832 BLE Mouse Test範例功能完全相同, 只差在一個是Keil-MDK, 一個是
IAR EWARM的版本而已.
2. IAR EWARM Version完整範例下載連結:
ble_app_hids_mouse_iar_ewarm
3. 預設是使用DK(PCA10040)板子, 若需要改用Preview DK, 請將底下設定改為PCA10036.
4. 測試影片如之前所示:
IAR EWARM的版本而已.
2. IAR EWARM Version完整範例下載連結:
ble_app_hids_mouse_iar_ewarm
3. 預設是使用DK(PCA10040)板子, 若需要改用Preview DK, 請將底下設定改為PCA10036.
4. 測試影片如之前所示:
2015年11月24日 星期二
nRF52832 Errata Document
1. 最近在nRF52832上面檢測一些問題, 發現怎麼樣都解不掉, 或是程式跑到一些function時, 一
定會有飛掉的情況發生, 經詢問了代理商之後, 原來發現是IC本身的問題造成的.
2. 目前拿在手上的板子有兩塊, 分別是Preview DK & DK這兩塊板子, 經上官網查詢才知道原來
是這兩塊板子上面的都是工程樣品, 只是DK解掉了一些Preview DK的問題, 可以透過板子上
的IC編號來得知自己手上拿到的是哪一個版本, 目前我手上Preview DK上面的是Engineering
A(QFAA-AA), 而DK上面的是Engineering B(QFAA-BA).
3. 現在看起來最新版本的IC是Rev 1, 不過不知道會上在哪一塊板子上, 或許是DK上面吧, 只是
我手上拿到的剛好都是工程樣品, 若是發現有解不掉的問題或是遇到怎樣都無法啟動的功能,
建議可以先上官網查一下是不是剛好是IC的問題, 以免浪費許多時間Debug.
4. 官網查詢Link: Errata v1.1 & v1.0
定會有飛掉的情況發生, 經詢問了代理商之後, 原來發現是IC本身的問題造成的.
2. 目前拿在手上的板子有兩塊, 分別是Preview DK & DK這兩塊板子, 經上官網查詢才知道原來
是這兩塊板子上面的都是工程樣品, 只是DK解掉了一些Preview DK的問題, 可以透過板子上
的IC編號來得知自己手上拿到的是哪一個版本, 目前我手上Preview DK上面的是Engineering
A(QFAA-AA), 而DK上面的是Engineering B(QFAA-BA).
3. 現在看起來最新版本的IC是Rev 1, 不過不知道會上在哪一塊板子上, 或許是DK上面吧, 只是
我手上拿到的剛好都是工程樣品, 若是發現有解不掉的問題或是遇到怎樣都無法啟動的功能,
建議可以先上官網查一下是不是剛好是IC的問題, 以免浪費許多時間Debug.
4. 官網查詢Link: Errata v1.1 & v1.0
2015年11月20日 星期五
nRF52832 BLE Mouse Test
1. 最近使用nRF52832做了airmouse相關的demo, 因此對於ble_app_hids_mouse這個example code
有一些初步的了解.
2. 本範例的執行結果是當藍芽滑鼠與PC配對成功後, 會不停地劃方, 且按下Button3會等同於按
下滑鼠左鍵.
3. 完整範例下載連結:
nRF52_SDK_0.9.2_bt_mouse
4. 由於現在nRF52有Preview DK & DK兩塊板子, 因此在不同的開發板上要執行此程式, 須記得
要修改define, 如使用Preview DK的話, 請修改為BOARD_PCA10036.
5. 原先的範例如要傳送mouse button的資訊到PC的話, 需使用與mouse dx dy不同的id, 這樣會浪
費BLE頻寬, 因此我有修改BLE Profile, 讓dx dy與button可以同時傳送給PC.
6. main loop flow:
7. Test Flow:
有一些初步的了解.
2. 本範例的執行結果是當藍芽滑鼠與PC配對成功後, 會不停地劃方, 且按下Button3會等同於按
下滑鼠左鍵.
3. 完整範例下載連結:
nRF52_SDK_0.9.2_bt_mouse
4. 由於現在nRF52有Preview DK & DK兩塊板子, 因此在不同的開發板上要執行此程式, 須記得
要修改define, 如使用Preview DK的話, 請修改為BOARD_PCA10036.
5. 原先的範例如要傳送mouse button的資訊到PC的話, 需使用與mouse dx dy不同的id, 這樣會浪
費BLE頻寬, 因此我有修改BLE Profile, 讓dx dy與button可以同時傳送給PC.
6. main loop flow:
- 程式一開始會先設定一個10msec的Timer, 利用這個Timer每次送一個Flag給main loop判斷何時要傳送dx dy & button給PC.
- main loop則是不停地檢查mousetimerIsReady flag, 當發現為1時, 則去執行key scan & send dx dy.
- 劃方程式如下所示, 只是不斷地送出固定的dx dy座標給PC, 並配合key scan一同將結果送出去.
7. Test Flow:
- 當程式燒入DK Board後, 此時會看到LED1約間隔1秒的頻率在閃爍著.
- 此時可以使用藍芽新增裝置來新增Nordic_Mouse.
- 當新增完畢後, 便可以開始測試, 底下是使用Mouse Test2這個Tool進行測試的影片.
2015年11月17日 星期二
2015年11月16日 星期一
2015年11月6日 星期五
How to run ble_app_uart project with IAR Debugging Mode?
1. 最近發現有時候在使用IAR EWARM Debug Mode進行Nordic Ble相關開發的時候, 會有程
式跑不起來或是跑飛的情況發生, 但如果將build出來的檔案透過mergehex or nRFgo studio直
接燒錄進去又可以正常執行.最後查了一下原來主要是需要在IAR的Option下需要新增一項
Extra Option才會正常.
2. This can be worked around by adding this line under "Options > Debugger > Extra Options > Command line options": --drv_vector_table_base=0x0
3. Linker configuration:
式跑不起來或是跑飛的情況發生, 但如果將build出來的檔案透過mergehex or nRFgo studio直
接燒錄進去又可以正常執行.最後查了一下原來主要是需要在IAR的Option下需要新增一項
Extra Option才會正常.
2. This can be worked around by adding this line under "Options > Debugger > Extra Options > Command line options": --drv_vector_table_base=0x0
3. Linker configuration:
2015年10月30日 星期五
訂閱:
文章 (Atom)