BSP Release Notes
Last updated
Last updated
This page logs the release notes for the LinkIt 7697 Arduino board support package.
Unreliable lookup method used within LBLEEventDispatcher class : use equal_range when searching for elements in STL multimap, instead of using find. find is not guaranteed to return the first element in the equal range.
Improper characteristic list implementation of LBLEClient class:
Add a new set of interfaces to LBLEClient
that allows user to identify a characteristic by using service index and characteristic index, instead of using UUID. Note that it is possible for a device to have multiple characteristics with the same UUID.
Add a new example EnumerateCharacteristic.ino
that uses the new indices-based interface of LBLEClient
to list all the services and characteristics in the connected BLE device.
Use bt_gattc_read_charc
instead of bt_gattc_read_using_charc_uuid
to read characteristics.
Refactored LBLEValueBuffer
to support re-interpreting its raw buffer content into String, float, int, and char types.
: when calling bt_gattc_discover_charc
, we need to wait for multiple BT_GATTC_DISCOVER_CHARC
event. We added new helper function waitAndProcessEventMultiple
that supports such event waiting behavior.
BLE bug fixes
Other updates
New Features
LRemote: Add new method LRemoteLabel::updateText(). This allows user to dynamically update the label text after the mobile app has connected.This requires updated mobile app:
iOS: LinkIt Remote v1.3.3
Android: LinkIt Remote v1.2.20171215-release
New Features
Add SoftwareSerial library that allows users to create a software-based Serial device.
RX pins: use P2 or P3 as RX pin.
TX pins: most digital pins can be used as TX pin.
Bug Fixes
Update to LinkIt SDK v4.6.1 to fix WPA2 KRACK vulnerability issue.
New Features
New softAP()
APIs for LWiFi
library. This allows users to turn LinkIt 7697 into an Wi-Fi access point.
New library LHTTPUpdate
for FOTA (Firmware Over The Air update). See the developer's guide for usage instructions.
New Features
New LRTC
library provide access to real-time clock module. Please refer to the programming guide.
Bug Fixes
Remove progress report when uploading sketch binaries. The progress report does not automatically scroll and confuses user.
Fix LRemote
event dropping issue
New Features
New LBLEPeripheral::notifyAll
method that sends GATT notification of the given attribute to all the connected GATT clients. Refer to Example > LBLE >notification for usage examples.
Add new method LBLEPeripheral::disconnectAll()
that disconnects all the GATT clients.
LBLEPeripheral::advertise() now returns error code -1
when adv data gets too long
The flash upload tool now automatically detects the on-board Wi-Fi firmware version, and update the Wi-Fi firmware when necessary.
Bug Fixes
Fix an issue that causes instances created by LBLEPeripheral
cannot be detected by iOS devices on LinkIt 7697 board with certain MAC address.
New Examples
Added usage examples for built-in libraries LTimer
, LFlash
, and LWatchDog
.
Breaking Changes
Migrate from LinkIt SDK v4.2 to v4.3.
LBLECentral::scan
now clears the scanned device list when re-starting a scan procedure. This is because most BLE devices change their BLE address overtime, so there is no use storing all the previously scanned results. If the user must keep the scan history, they need to backup the scan results before calling scan()
again.
New Features
Support MCS GamePad Controller Channel. Check Examples > MCS > Gamepad for example. Thanks to @michaelchien1972 for contributing to this.
Users can now update (or restore) on-board bootloader and Wi-Fi/BLE connectivity firmware by selecting Burn Bootloader from IDE menu.
Bug Fixes
Add missing implementation LBLEClient::disconnect
.
Fix an issue that may cause the board stop responding after multiple BLE scan -> connect loop.
MCSGPSController
now have a new method value()
which returns an MCSGPSValue
object that is a struct of latitude, longitude and altitude. The exisiting methods such as latitude()
are left unchanged.
MCSPWMController::value()
has changed:
It now returns a MCSPWMValue
object instead of the duty cycle field.
A new method dutyCycle()
is added to retrieve the field seperately.
All controller channels are now inherited from a MCSControllerBase<T>
template class that provides a common implementat for value()
, setServerValue()
and _update()
logics. This reduces some redundant code implementations. Note that display channels are left unchanged.
New Feature: TLS/SSL support. LWiFi library adds class TLSClient
that supports TLS/SSL connections.
Bug fixes:
LBLE
library now adds two new methods:
LBLEPeripheralClass::advertiseAsBeacon
allows users to create a peripheral that is purely advertised as a device that cannot be connected - most beacons belongs to this category.
LBLE library improvement:
LBLECentral is now a singleton. Use `LBLECentral.scan()` instead of `LBLECEntral scanner; scanner.scan();`
Add LBLEClient class for connecting to BLE peripheral devices. This class supports service enumeration and read/write to characteristics.
New MCS library: a library that helps you connecting to MediaTek Cloud Sandbox through Wi-Fi network, accessing device channels.
Improved speed for sketch uploading.
Initial release, supporting
Arduino core functions
Wire: I2C peripheral devices
SPI: software SPI implementation
Servo: driving servo motors
LWiFi: Wi-Fi STA client and TCP/UDP socket connection
LBLE: BLE features such as scanning nearby BLE devices and creating simple BLE peripheral devices
LFlash: accessing a key-value storage region on the onboard flash
LTimer: basic timer function
iBeacon: LBLEAdvertisements::getIBeaconInfo now properly converts byte order and endian of UUID/major/minor data in iBeacon packets. Also, TxPower is updated to use signed integer value type. ()
BLE notification: LBLEPeripheral fixes issues that cause Android apps unable to receive notification sent from LinkIt 7697. ()
BLE write/read: LBLECentral fixes issues that cause failed characteristic read/write when using 128-bit UUIDs. ()
Serial now supports additional baudrate 921600, 460800, and 230400, thanks to suggestion from .
Fixes : Examples->LWiFi->ScanNetworks won't print specific AP if the BSSID starts with 0x00
Fixes : pins_arduino.h missing in variants/linkit_7697
Fix : analogWrite()
fails after calling pinMode()
You need to update bootloader and Wi-Fi/BLE firmware by choosing Burn Bootloader from Arduino IDE tool menu. Detailed instruction .
Fix : WiFiUdp::available() returns incorrect result after parsePacket()
Fix : Servo::attach(pin, min, max) does not work
Fix : Arduino SDK build issue under mingw (windows x86/x64) environment. (Thanks to contribution from @michaelchien1972)
New Feature: as requested in , Provide new method setServerValue(value)
for all controller data channels. Developers may use this method to update the MCS/MCSLite server-side values. Once the value is successfully set, the channel becomes both valid()
and updated()
.
Fix : Default USER LED is on
Fix : There are compile warnings while compile the core lib
Fix : Arduino IDE 1.8.2 : "Aggressively Cache Compiled Code" will cause compile error.
Fix : Upload fails when the board support package installation path contains space character
Fix : Request to add clockCyclesPerMicrosecond
to BSP
Simplified implementation of WiFi socket classes, including WiFiClient
, WiFiServer
, and WiFiUdp
. This also fixes .
: [MCS] MCSDisplayFloat does not have syntax highlight in Arduino IDE bug.
: [MCS] socket.connect() failed after uploading data points for several times.
: [MCS] MCSDisplayFloat does not update channel data.
: [WiFi] ssid parameter of WiFi.begin() is not const.
MCS now supports MCSLite. which is currently in preview stage. Visit the preview (sorry, Chinese only) for binary download and documentation. To connect to MCSLite instead of MCS, use the MCSLiteDevice
class.
LBLEAdvertisementData::configAsEddystoneURL()
allows users to configure advertisements in format.