Hexiwear
Overview
Hexiwear is powered by a Kinetis K64 microcontroller based on the ARM Cortex-M4 core. Another Kinetis wireless MCU, the KW40Z, provides Bluetooth Low Energy connectivity. Hexiwear also integrates a wide variety of sensors, as well as a user interface consisting of a 1.1” 96px x 96px full color OLED display and six capacitive buttons with haptic feedback.
Eye-catching Smart Watch form factor with powerful, low power Kinetis K6x MCU and 6 on-board sensors.
Designed for wearable applications with the onboard rechargeable battery, OLED screen and onboard sensors such as optical heart rate, accelerometer, magnetometer and gyroscope.
Designed for IoT end node applications with the onboard sensor’s such as temperature, pressure, humidity and ambient light.
Flexibility to let you add the sensors of your choice nearly 200 additional sensors through click boards.
Hardware
Main MCU: NXP Kinetis K64x (ARM Cortex-M4, 120 MHz, 1M Flash, 256K SRAM)
Wireless MCU: NXP Kinetis KW4x (ARM Cortex-M0+, Bluetooth Low Energy & 802.15.4 radio)
6-axis combo Accelerometer and Magnetometer NXP FXOS8700
3-Axis Gyroscope: NXP FXAS21002
Absolute Pressure sensor NXP MPL3115
Li-Ion/Li-Po Battery Charger NXP MC34671
Optical heart rate sensor Maxim MAX30101
Ambient Light sensor, Humidity and Temperature sensor
1.1” full color OLED display
Haptic feedback engine
190 mAh 2C Li-Po battery
Capacitive touch interface
RGB LED
For more information about the K64F SoC and Hexiwear board:
Supported Features
The hexiwear_k64 board configuration supports the following hardware features:
Interface |
Controller |
Driver/Component |
---|---|---|
NVIC |
on-chip |
nested vector interrupt controller |
SYSTICK |
on-chip |
systick |
PINMUX |
on-chip |
pinmux |
GPIO |
on-chip |
gpio |
I2C |
on-chip |
i2c |
WATCHDOG |
on-chip |
watchdog |
ADC |
on-chip |
adc |
PWM |
on-chip |
pwm |
UART |
on-chip |
serial port-polling; serial port-interrupt |
FLASH |
on-chip |
soc flash |
SENSOR |
off-chip |
fxos8700 polling; fxos8700 trigger; fxas21002 polling; fxas21002 trigger; max30101 polling |
RNGA |
on-chip |
entropy; random |
The default configuration can be found in the defconfig file:
boards/arm/hexiwear_k64/hexiwear_k64_defconfig
Other hardware features are not currently supported by the port.
Connections and IOs
The K64F SoC has five pairs of pinmux/gpio controllers.
Name |
Function |
Usage |
---|---|---|
PTA29 |
GPIO |
LDO_EN |
PTB0 |
I2C0_SCL |
I2C / MAX30101 |
PTB1 |
I2C0_SDA |
I2C / MAX30101 |
PTB12 |
GPIO |
3V3B EN |
PTB16 |
UART0_RX |
UART Console |
PTB17 |
UART0_TX |
UART Console |
PTC8 |
GPIO / PWM |
Red LED |
PTC9 |
GPIO / PWM |
Green LED |
PTC10 |
I2C1_SCL |
I2C / FXOS8700 / FXAS21002 |
PTC11 |
I2C1_SDA |
I2C / FXOS8700 / FXAS21002 |
PTC14 |
GPIO |
Battery sense enable |
PTC18 |
GPIO |
FXAS21002 INT2 |
PTD0 |
GPIO / PWM |
Blue LED |
PTD13 |
GPIO |
FXOS8700 INT2 |
PTE24 |
UART4_RX |
UART BT HCI |
PTE25 |
UART4_TX |
UART BT HCI |
Note
To enable battery sensing, you will need to enable the en_bat_sens
regulator in Devicetree. Similarly, to enable devices connected to the 1V8
or 3V3 power rails (sensors), you will need to enable the en_ldo
and en_3v3b
regulators in Devicetree.
System Clock
The K64F SoC is configured to use the 12 MHz external oscillator on the board with the on-chip PLL to generate a 120 MHz system clock.
Serial Port
The K64F SoC has six UARTs. One is configured for the console, another for BT HCI, and the remaining are not used.
Programming and Debugging
Build and flash applications as usual (see Building an Application and Run an Application for more details).
Configuring a Debug Probe
A debug probe is used for both flashing and debugging the board. This board is configured by default to use the OpenSDA DAPLink Onboard Debug Probe, but because Segger RTT is required for a console on KW40Z, we recommend that you reconfigure the board for the OpenSDA J-Link Onboard Debug Probe.
Note
OpenSDA is shared between the K64 and the KW40Z via switches, therefore only one SoC can be flashed, debugged, or have an open console at a time.
Option 1: OpenSDA J-Link Onboard Debug Probe (Recommended)
Install the J-Link Debug Host Tools and make sure they are in your search path.
Follow the instructions in OpenSDA J-Link Onboard Debug Probe to program the OpenSDA J-Link Generic Firmware for V2.1 Bootloader. Check that switches SW1 and SW2 are on, and SW3 and SW4 are off to ensure K64F SWD signals are connected to the OpenSDA microcontroller.
Option 2: OpenSDA DAPLink Onboard Debug Probe
Install the pyOCD Debug Host Tools and make sure they are in your search path.
Follow the instructions in OpenSDA DAPLink Onboard Debug Probe to program the OpenSDA DAPLink Hexiwear Firmware. Check that switches SW1 and SW2 are on, and SW3 and SW4 are off to ensure K64F SWD signals are connected to the OpenSDA microcontroller.
Add the arguments -DBOARD_FLASH_RUNNER=pyocd
and
-DBOARD_DEBUG_RUNNER=pyocd
when you invoke west build
to override the
default runner from J-Link to pyOCD:
# From the root of the zephyr repository
west build -b hexiwear_k64 samples/hello_world -- -DBOARD_FLASH_RUNNER=pyocd -DBOARD_DEBUG_RUNNER=pyocd
Configuring a Console
Regardless of your choice in debug probe, we will use the OpenSDA microcontroller as a usb-to-serial adapter for the serial console.
Connect a USB cable from your PC to CN1.
Use the following settings with your serial terminal of choice (minicom, putty, etc.):
Speed: 115200
Data: 8 bits
Parity: None
Stop bits: 1
Flashing
Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b hexiwear_k64 samples/hello_world
west flash
Open a serial terminal, reset the board (press the T4 button), and you should see the following message in the terminal:
***** Booting Zephyr OS v1.14.0-rc1 *****
Hello World! hexiwear_k64
Debugging
Here is an example for the Hello World application.
# From the root of the zephyr repository
west build -b hexiwear_k64 samples/hello_world
west debug
Open a serial terminal, step through the application in your debugger, and you should see the following message in the terminal:
***** Booting Zephyr OS v1.14.0-rc1 *****
Hello World! hexiwear_k64
Using Bluetooth
Configure the KW40Z as a Bluetooth controller
The K64 can support Zephyr Bluetooth host applications when you configure the KW40Z as a Bluetooth controller.
Download and install the KW40Z Connectivity Software. This package contains Bluetooth controller application for the KW40Z.
Flash the file
tools/binaries/BLE_HCI_Modem.bin
to the KW40Z.
Now you can build and run the sample Zephyr Bluetooth host applications on the K64. You do not need to repeat this step each time you flash a new Bluetooth host application to the K64.
Peripheral Heart Rate Sensor
Navigate to the Zephyr samples/bluetooth/peripheral_hr
sample
application, then build and flash it to the Hexiwear K64. Make sure
the OpenSDA switches on the docking station are configured for the
K64.
# From the root of the zephyr repository
west build -b hexiwear_k64 samples/bluetooth/peripheral_hr
west flash
Reset the KW40Z and the K64 using the push buttons on the docking station.
Install the Kinetis BLE Toolbox on your smartphone:
Open the app, tap the Heart Rate feature, and you should see a Zephyr Heartrate Sensor device. Tap the Zephyr Heartrate Sensor device and you will then see a plot of the heart rate data that updates once per second.