Note: GATT service with Bluetooth Low Energy

Posted in BLE, Bluetooth, Bluetooth Low Engery with tags , on 2018 年 01 月 18 日 by Kun-Yi

傳統的Bluetooth Device 透過 SDP service 使用Profile UUID 去讓兩者相連, 但是BLE則擴充了這個方法, 透過提供 GATT (Generic Attributes) Profile 去取代 SDP的功能,使用GATT Service 內的 Service/Characteristics 功能可以更方便跟分類各種服務跟屬性值, 並且透過GATT 可以自我宣告特定應用的Service與Characteristics 去創建自己的特殊應用 常見有iBeacon/Eddystone Beacon 或是 像是 TI SensorTags 可以參考這個 Andorid Source 去使用Ti 自定義的Barometers service

官方說法 from
For two Bluetooth devices to be compatible, they must support the same profiles. And while profiles generally describe the same use case behaviors, they are different for Bluetooth BR/EDR and Bluetooth Low Energy (LE) implementations. Compatibility between Bluetooth BR/EDR and Bluetooth LE implementations requires a dual-mode controller on at least one. For BR/EDR, a wide range of adopted Bluetooth profiles describe many different, commonly used types of applications or use cases for devices. For Bluetooth LE, developers can use a comprehensive set of adopted profiles, or they can use Generic Attribute Profile (GATT) to create new profiles. This flexibility helps support innovative new applications that maintain interoperability with other Bluetooth devices.


Note: Use Open source to create an GIS system

Posted in GIS with tags , , on 2018 年 01 月 18 日 by Kun-Yi

First need build own tile server first
OpenStreetMap data is free to all, access to our volunteer-donated servers is not. A tile usage policy applies.  to below ref. for build tiles service server

Second. Build Presentation web server
To use Leaflet or OpenLayers for Build Own Maps Services



Geo Fencing feature with leaflet

Open GPS Tracking System

Note: Use libusb to send SCSI vendor command into Bulk only Mass storage under Linux

Posted in Linux with tags , , , on 2018 年 01 月 18 日 by Kun-Yi

Just need fill CBW (Command Block Wrapper) & to check CSW (Command Status Wrapper) through Bulk pipe

the code have been push on my github


Note: SCSI pass-through mode on MacOS X

Posted in MacOS X with tags , , on 2018 年 01 月 17 日 by Kun-Yi

official documents – “Technical Q&A QA1179-Sending SCSI or ATA commands to storage devices" says the below
“Mac OS X by design does not support sending SCSI or ATA commands from an application to most storage devices unless the developer provides a custom kernel driver for the device."

write a device driver first if need send vendor command on MacOS X

Note: ARM Trust Zone basic

Posted in ARM on 2018 年 01 月 16 日 by Kun-Yi


Hardward: 基本上有TrustZone 支援的ARM SOC 會有下列基本的硬體

  • OTP (One Time Programming) Fuse 用來存 Key (HASH)
  • Cryptographic engine, 加密硬體加速器用來幫助運算Image的 Hash code
  • Exceptions: Trust Zone 還是利用 Exception 切換 Secure/No-Secure World, 或是透過SMC( Secure Monitor Call) 實際上還是一個Exceptions
  • Secure Boot ROM
  • OnChip RAM




Note: Boot failed with GCC v4.7.2 and Latest on Kernel 3.x (< 3.10) version

Posted in ARM on 2018 年 01 月 10 日 by Kun-Yi

need patch the below, tested passed with GCC v4.7.2/v4.8.x/v4.9.x

commit 455bd4c430b0c0a361f38e8658a0d6cb469942b5
ARM: 7668/1: fix memset-related crashes caused by recent GCC (4.7.2) optimizations
commit 418df63adac56841ef6b0f1fcf435bc64d4ed177
ARM: 7670/1: fix the memset fix

when optimization TI OMAP4 with official Kernel 3.0/3.4

Example: Android BLE example to connection Multi-TI SensorTag Device

Posted in android, Bluetooth, Bluetooth Low Engery with tags , on 2017 年 12 月 29 日 by Kun-Yi

The demo app use RxAndroidBle Library to concurrent connection multi Ti SensorTags, suggestion apply on Android 5.0 and later, the code still have more bugs