Archive

Posts Tagged ‘sdk’

STMicro SensorTile is a Tiny STM32 Module with Bluetooth 4.1 LE and Four Sensor Chips

December 8th, 2016 No comments

STMicroelectronics SensorTile is a 13.5 x 13.5mm sensor board based on STM32L4 ARM Cortex-M4 microcontroller, a MEMS accelerometer, gyroscope, magnetometer, pressure sensor, a MEMS microphone, as well as a 2.4Ghz radio chip for Bluetooth 4.1 Low Energy connectivity for wearables, smart home, and IoT projects.

stmicro-sensortile

SensorTile hardware specifications:

  • MCU – STMicro STM32L476 ARM Cortex-M4 microcontroller@ up to 80 MHz with 128 KB RAM, 1MB flash
  • Connectivity – Bluetooth 4.1 Smart/LE via BlueNRG-MS network processor with integrated 2.4GHz radio compliant with
  • Sensors
    • LSM6DSM 3D accelerometer + 3D gyroscope
    • LSM303AGR 3D Magnetometer + 3D accelerometer
    • LPS22HB pressure sensor/barometer
    • MP34DT04 digital MEMS microphone
  • I/Os – 2x 9 half holes with access to UART, SPI, SAI (Serial Audio Interface), I2C, DFSDM, USB, OTG, ADC, and GPIOs signals
  • Debugging – SWD interface (multiplexed with GPIOs)
  • Power Supply Range – 2V to 5.5 V
  • Dimensions – 13.5 x 13.5 mm
SensorTile's Functional Block Diagram - Click to Enlarge

SensorTile’s Functional Block Diagram – Click to Enlarge

Software development can be done through a sets of APIs based on the STM32Cube Hardware Abstraction Layer and middleware components, including the STM32 Open Development Environment. The module is supported by Open Software eXpansion Libraries, namely Open.MEMS, Open.RF, and Open.AUDIO, with various example programs allowing you to get started. Several third-party embedded sensing and voice-processing projects also support the module. The module also comes pre-loaded with BLUEMICROSYSTEM2 firmware, and can be controlled with “ST BlueMS” app found on Apple Store and Google Play.

sensortile-kit

But the best way to get started is with SensorTile kit including SensorTile core module and:

  • STLCR01V1 cradle board with a footprint for SensorTile core board, HTS221 humidity and temperature sensor, a micro-SD card socket, a micro USB port, a lithium-polymer battery (LiPo) charger, and a SWD header.
  • A LiPo rechargeable battery and a plastic case for the cradle board, SensorTile module, and battery
  • STLCX01V1 Arduino UNO R3 compatible cradle expansion board with analog stereo audio output, a micro-USB connector for power and communication, a reset button and a SWD header.
  • A programming cable

I could not find a price for SensorTile core module, but STEVAL-STLKT01V1 SensorTile kit can be purchased for $80.85 directly on STMicro website or their distributors. Visit SensorTile kit’s product page for further information include hardware design files, quick start guide, software and firmware downloads, purchase links, and more.

Nordic Semi Unveils nRF52840 Bluetooth 5 Ready SoC and Development Kit

December 7th, 2016 2 comments

Nordic Semiconductor nRF52xx Bluetooth and 2.4 GHz solutions are very often found in development kits and low power devices such as wearables, and it’s no surprise that the company introduced a new nRF52840 SoC supporting Bluetooth 5, the new standard promising twice the range, and four times the speed of BLE 4.x, as well as ANT, 802.15.4, 2.4GHz proprietary, and NFC connectivity.

nrf52840Nordic Semi nRF52840 key features and specifications:

  • MCU – 32-bit ARM Cortex-M4 @ 64 MHz with with FPU
  • Memory & Storage – 256 KB RAM, 1MB Flash
  • Connectivity
    • Bluetooth 5-ready multiprotocol radio
    • Bluetooth 5 data rate support: 2 Mbps, 1 Mbps, 500 kbps, 125 kbps
    • 104 dB link budget for Bluetooth low energy
    • -96 dBm sensitivity for Bluetooth low energy
    • Programmable output power from +8 dBm to -20 dBm
    • NFC-A tag on chip
    • Single-ended antenna output (on-chip balun)
  • I/Os
    • USB – Full-speed 12 Mbps USB controller
    • SPI up to 32 MHz
    • Quad SPI up to 32 MHz
    • PPI — Programmable peripheral interface
    • EasyDMA
    • 12 bit/200 ksps ADC
  • Security – ARM Cryptocell CC310 cryptographic accelerator, 128 bit AES/ECB/CCM/AAR coprocessor
  • Power Supply –  1.7 V to 5.5 V; individual power management for all peripherals; regulated supply for external components up to 25 mA

nRF52840 is “on-air-compatible with nRF51, nRF24L and nRF24AP Series”, and target advanced wearables, IoT, and interactive entertainment devices (remote controls / controllers).

nRF52840 Preview Development Kit - Click to Enlarge

nRF52840 Preview Development Kit – Click to Enlarge

The company has also launched nRF52840 Preview Development Kit to get started with evaluation and development.  The development board is hardware compatible with Arduino Uno Rev. 3 to allow the use of common Arduino shields, and also includes 4 LEDs and 4 buttons, all programmable by the user. It supports Bluetooth 5, Bluetooth low energy, ANT, 802.15.4 and 2.4GHz proprietary using the latest S140 SoftDevice software stack, as well as NFC thanks to an external antenna included in the kit.  The kit is compatible with Nordic Software Development Toolchain using Keil, IAR and GCC, and can be programmed & debugging with Segger J-Link OB.

Samples and the development kit are available now at an undisclosed price. You’ll find more details about the nRF52840 Bluetooth 5 SoC and development kit on the product page.

Firefly-RK3399 Rockchip RK3399 Development Board Launched on Kickstarter for $139 and Up

December 5th, 2016 17 comments

Firefly-RK3399 is the first, and for now the only one, development board equipped with the latest Rockchip RK3399 hexa-core Cortex A72 & A53 processor. It’s just not available yet, but the board has now been launched on Kickstarter where it is offered for $139 to $199 depending on options.

rk3399-development-board

Firefly-RK3399 board specifications:

  • SoC – Rockchip RK3399 hexa-core big.LITTLE processor with dual core ARM Cortex A72 up to 2.0 GHz and quad core Cortex A53 processor with ARM Mali-T860 MP4 GPU with OpenGL 1.1 to 3.1 support, OpenVG1.1, OpenCL and DX 11 support
  • System Memory
    • Standard – 2 GB DDR3
    • Plus devkit – 4 GB DDR3
  • Storage
    • Standard – 16 GB eMMC flash, micro SD card, M.2 socket
    • Plus devkit – 32 GB eMMC flash, micro SD card, M.2 socket
  • Video Output & Display Interfaces
    • 1x HDMI 2.0 up to 4K @ 60 Hz
    • 1x DisplayPort (DP) 1.2 interface up to 4K @ 60Hz (via USB type C connector)
    • 1x eDP 1.3 (4-lanes @ 10.8 Gbps)
    • 1x MIPI DSI interface up to 2560×1600 @ 60 Hz
  • Video Decode – 4K VP9 and 10-bit H.265 video codec support up to 60 fps
  • Audio
    • Via HDMI or DisplayPort
    • 3.5mm headphone jack with stereo audio output and mic input
    • optical S/PDIF
    • 1x LINE Out and 1x speaker via GPIO header; Speaker: 1.5W or 2.5 W per channel for respectively 8Ω or 4Ω speakers
    • Built-in microphone
    • I2S output and input interface up to 8 channels
  • Connectivity – Gigabit Ethernet (RJ45) port using RTL8211E transceiver, WiFi 802.11ac 2×2 MIMO and Bluetooth 4.1 (AP6354 module)
  • USB – 2x USB 2.0 host ports, 1x USB 3.0 port, 1x USB 3.0 type C port
  • Camera
    • 2x MIPI CSI interfaces up to 13MP or 2x 8MP
    • 1x DVP camera interface up to 5MP
  • Debugging – 3-pin serial header
  • Expansion
    • 42-pin GPIO female header with access to 1x I2S, 2x ADC, 2x I2C, 1x SPI, 2x GPIO, 1x LINEOUT, 1x SPEAKER
    • 1x mini PCIe for LTE, 1x PCIe 2.1 M.2 slot B-key (2x PCIe, SATA, USB 2.0, USB 3.0, HSIC, SSIC, Audio, UIM, I2C)
    • SIM card slot
  • Misc – RTC battery header; power & user LEDs; power, reset and recovery buttons; IR receiver
  • Power Supply – 12V/2A DC (5.5×2.1mm barrel connector)
  • Dimensions – 12.4 x 9.3 mm (8-layer PCB)
  • Weight – Board: 89 grams; board + cooling fan and heatsink: 120 grams

The company will provide Android 6.0.1 and Ubuntu 16.04 firmware images for the board, including a dual boot image. There are also work-in-progress documentation and placeholder links to Android SDK and schematics in the product page which will hopefully soon link to the actual documents and files, as well as a work-in-progress Wiki. It may also be worth monitoring the company’s  Github account.

firefly-rk3399-boardThe company aims to raise $50,000 from the crowdfunding campaign, and you’d have to pledge $139 to get “Firefly-RK3399 Development Kit” with 2GB RAM, and 16GB flash together with a 12V/2A power adapter, a USB Type C adapter, a USB to UART serial board, a USB cable, and a a cooling fan (I assume with an heatsink). After the 50 first pieces, the price goes up to $159, and if you want the “Plus development kit” with 4GB RAM and 32GB flash, you’d need to pledge $199 instead. Shipping adds $5 to $30 depending on the destination country, and delivery is planned for March 2017.

Getting Started with Pine64 PADI IoT Stamp – Part 2: Serial Console, GCC SDK, Flashing & Debugging Code

November 28th, 2016 5 comments

PADI IoT Stamp module powered by Realtek RTL8710AF ARM Cortex M3 WiFi SoC is a potential competitor to Espressif ESP8266 modules.  Pine64, the manufacturer of the module, sent me their kit with a $2 IoT stamp, a breakout board, a USB to TTL debug board and a J-Link debug board. In the first part of the review I’ve shown the hardware and how to assemble PADI IoT stamp kit. In the second part I’m going to write a tutorial / getting start guide showing how to control the board with AT commands, build the firmware with GCC SDK, and finally demonstrate how to flash and debug the firmware with the J-Link debugger.

The Quick Start Guide indicates you need to connect the USB to TTL debug board to UART2 instead of UART1 as I did on the very similar B&T RTL-00 RTL8710AF module, and set connection settings to 38400 8N1. This did not work for me, and I had indeed to connect the USB to TTL board to UART0 instead (GB0 & GB1 pins).

Click to Enlarge

Click to Enlarge

I’ll be using a Ubuntu 16.04 (Linux) computer for this quick start guide, but you can work with Windows and Mac OS X too, as tools as available for all three operating systems. So in my case I configure minicom to 38400 8N1 using /dev/ttyUSB0 device, and the boot log is almost the same as B&T RTL-00 with the same ROM version and toolchain:

There are however some changes, and for example the firmware used on PADI IoT Stamp has slightly more heap available. The guide also mentions ATS? should show all command available, but it’s not working for me:

Typing “help” as I did with RTL-00 module does not work either, and that does not look since documentation appears to be wrong again, but that’s not a big deal since we have all AT commands listed in that document. I could configure it as “IoTSTAMP” access point:

and enable the HTTP server with ATSW AT command:

It rebooted the IoT stamp with the same WiFi setting, and I could connect to its demo web page for configuration.

Click to Enlarge

Click to Enlarge

Since everything is so similar to B&T RTL-00 I’ll just point out to the post “Getting Started with B&T RTL-00 RTL8710 Module – Serial Console, AT Commands, and ESP8266 Pin-to-Pin Compatibility” for more tests with different AT commands. I still tried to turn on and off the a GPIO pin using the ATSG command since it’s something I did not do with RTL-00:

The first line pull GC0 pin to high level (3.3V), while the second command brings it down to low level (0V). Details about ATSG command:

I did not connect an LED, but instead measured the value with multimeter and could confirm the voltage level was right in both cases.

B&T provided an SDK which required a an unlicensed / pirated version of IAR ARM Workbench, but Pine64/Realtek have released a GCC SDK that do you require you to use pirated software. You can download sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0 (198 MB) directly from Pine64 website. After unzipped the SDK you can enter sdk-ameba-rtl8710af-v3.5a_without_NDA_GCC_V1.0.0 directory, and open readme.txt to have a look at RTL8710 GCC SDK structure:

Since I only aim to write a getting started guide I won’t go through all of it, but we can see the low level source code & binary, some documentation, an example project, and some tools include Android and iOS apps, OTA download server and more.

Nevertheless the readme.txt tells us to first read “UM0096 Realtek Ameba-1 build environment setup – gcc.pdf” in order to setup our development environment. The instructions are available with Windows and Linux, but again I’m only test them using Ubuntu 16.04. They’ll be very similar since you’ll rely on cygwin in Windows, and if you run the latest Windows 10 you should be able to install Windows subsystem for Linux, and use the Linux instructions.

First you have to make sure some tools and libraries are installed:

then we can build the sample project:

If everything goes well the log should end showing “Image manipulating” as follows:

We can find the application in application/Debug/bin directory:

There’s also an ota.bin image which might be usable using OTA firmware update documentation, but for this guide I want to use the J-Link debugger that the company sent me instead. The GCC SDK is not for PADI IoT stamp, but instead for Realtek Ameba Arduino board, and you’ll be asked to connect the board through one of the micro USB port. That won’t work with IoT stamp since there’s no USB port at all, and instead you’ll need to go and back forth between multiple documentation, and connect the board as per the JTAG/SWD connections diagram shown below.

padi-iot-stamp-jlink-swd-connectionThat document also mentions that:

Required external power VCC 3.3V, JTAG/SWD didn’t supply power to the PADI IoT Stamp, VCC connection from PADI IoT Stamp is used by JTAG/SWD as voltage reference only.

At first, I did not see that, and used it without external power supply, but since I was not successful with the J-Link debugger (for another reason), so I ended up inserting PADI IoT stamp into a breadboard and added Ywrobot power board to provide an external 3.3V power source.

Click to Enlarge

Click to Enlarge

I also soldered a 22uF capacitor, since I’ve read it’s not optional, as it may affect WiFi connection due to power issue. Once I complete the wiring, I connected the debugger to my computer:

There are two sets of instructions in UM96 document to download and flash the code: OpenOCD/CMSIS-DAP and JLink, so since I had a J-Link debugger, I went with that latter. First you have to download J-Link Software and Documentation pack and for my system I selected ” Linux, DEB Installer, 64-bit V6.12″. After accepting the EULA, I got JLink_Linux_V612_x86_64.deb file which I installed as follows:

Now we can start JLink GBD server for a Cortex-M3 as explained in the document:

So the JLink debugger is detected, but failed to connect to the target. Apart from the last error, everything looks exactly as in the documentation. That’s when I started to add an external power boar, solder the capacitor, and double check my connection. But finally after many trials and errors, I realized that I had to use a SWD connection (SWCLK/SWDIO signals) instead of JTAG…

Now keep the GDB server running, open a new terminal windows in the same directory (where you’ve built the code), and run make flash to download and flash the code to the board:

There will be a lot of message as above, and the GDB Server windows will show its own set of messages:

Now if you want to debug your code, you can run make debug to start the gdb console:

At this point, you’ll just need to use gdb command out of the scope of this post, but you can find tutorials online, for example this. You can also run make ramdebug in order to write ram_all.bin to RAM then enter gdb debug.

So that’s only the debug part, but if you want to create your own application, you’ll need to study the source code, and there are plenty of examples to help you in project/realtek_ameba1_va0_example/example_sources folder:

Note that this is only useful is you want to use PADI IoT stamp as a standalone module, and if you connect it to another board (e.g. Arduino) you can control it through the AT command set.

So while PADI IoT stamp is a usable platform with its GCC SDK, currently documentation is not always correct, and development should be reserved to experienced developers, as it’s not exactly as straightforward as Arduino, Lua or other firmware often used in ESP8266. Arduino will most likely never supported on IoT stamp due to memory constraints, but mbed support should come to the module in the first part of next year, which will make everything much easier.

If you want to go further, you can read the documentation on PADI IoT stamp resource page and the GCC SDK, checkout rebane’s openocd example, and/or read a forum post about controlling IoT stamp through Pine A64 board using Python.

If you want to play with your own, you can get PADI IoT stamp for $1.99, the breakout board kit for $0.5, the USB to serial debug board for $1.99, and the JLink (SWD) debugger is $7.99 on Pine64 online store. Please note that the two debug boards are standard components, so you may use your own, if you already have such hardware.

Khadas Vim Amlogic S905X Android and Linux Development Board Sells for $50 and Up

November 17th, 2016 14 comments

Last summer I wrote about Shenzhen Tomato TVI development board powered by Amlogic S905X processor, and at the time the company focused on business to business customers, but the board is now sold as Khadas Vim through GearBest with 2 GB RAM, 8 or 16 GB flash, and price starting at $49.99 including shipping.

3 Stacked Khadas Vim Boards

3 Stacked Khadas Vim Boards

Khadas Vim and Vim Pro boards’ specifications:

  • SoC –  Amlogic S905X quad core ARM Cortex-A53 @ up to 1.5 GHz with penta-core Mali-450MP GPU
  • System Memory – 2 GB DDR3
  • Storage
    • Vim – 8 GB eMMC flash + micro SD slot
    • Vim Pro – 16 GB eMMC flash + micro SD slot
  • Video & Audio  Output – HDMI 2.0a up to 4K @ 60 Hz
  • Connectivity
    • Vim – Fast Ethernet port, 802.11 b/g/n WiFi and Bluetooth 4.0 (Ampak AP6212 module) with IPEX connector
    • Vim Pro – Fast Ethernet port, dual band 802.11 b/g/n WiFi and Bluetooth 4.2 (Ampak AP6255) with IPEX connector
  • USB – 2x USB 2.0 host ports with 500mA fuses, 1x USB type C port for power and USB devices (no video)
  • Expansion header – 40-pin Raspberry Pi compatible header with USB, UART, I2C, ADC, PWM, JTAG, I2S, and GPIOs
  • Misc – Blue & red LED, dual channel IR, power/function/reset keys, header for RTC battery
  • Power Supply –  5V via USB type C or extra header with 2.6A fuse
  • Dimensions – 82.0 x 57.5 x 11.5 mm
Click to Enlarge

Click to Enlarge

We already knew the board supports Android 6.0, OpenELEC 7.0 and Ubuntu 16.04, we we did not have any details about documentation and source code. You’ll find lot of info include u-boot and Linux 3.14 source code, as well as schematics (PDF) among other things on Khadas’ Github account.

The board is sold as Khadas Vim with 1 GB RAM and 8 GB RAM for $49.99 and Vim Pro with 2GB/16GB configuration for $64.99, which you can purchase on GearBest. The acrylic case shown in the first picture is included with the board, as well as a user’s manual. You may also be interested in the manufacturer’s website (Shenzhen Wesion Tech), where you’ll find not only more info about Vim boards, but discovered the company is also making Rockchip RK3366 based GeekBox board and landingship baseboard.

Allwinner H2 Linux & Android SDK, and Allwinner XR819 WiFi Driver Released

November 10th, 2016 23 comments

Orange Pi Zero is an interesting little ARM Linux board thanks to its low price, but also because it features a new Allwinner H2 / H2+ quad core Cortex A7 processor very similar to Allwinner H3 minus the 4K video decoding part, as well as Allwinner XR819 WiFi module, which I have not seen on any other boards so far.

allwinner-h2-linux-android

But hardware without software is pretty much useless, so developers will be happy to find out that Allwinner H2 SDK with Linux (lichee) and Android has been released or leaked, and it also includes the Allwinner XR819 WiFi driver.

You’ll find the SDK on Zoobab server with three main directory / files:

  • Android folder – Android 4.4.2 SDK
  • lichee folder – Linux 3.4.39 source code. However you’d probably better use Linux 3.4.113 currently released by sunxi-linux, or Linux mainline. The latter does have some limitations, and may or may not be suitable for your project.
  • H2-V1.2.tar.bz2 – The tar file with both Android and lichee folder in case you want to download the full SDK on your computer

If another hardware comes with Allwinner XR819 WiFi module and you just need the Linux driver, you’ll find it in linux-3.4/drivers/net/wireless/xradio directory.

tkaiser managed to enable XR819 on armbian after disabling dhd driver:

NXP Unveils MCUXpresso Development Tools for LPC and Kinetis Microcontrollers

October 25th, 2016 No comments

After NXP bought Freescale, you had development tools for Freescale Kinetis MCUs such as Design Studio or Kenetis SDK, and others such as LPCXpresso for NXP LPC microcontrollers. The company has worked to unifying software and tools support between its ARM Cortex-M MCU families, and has now announced MCUXPresso software and tools for both NXP Kinetis and LPC MCUs.

Click to Enlarge

Click to Enlarge

MCUXpresso unifies thousands of Kinetis and LPC microcontrollers under a set of compatible tools including

  • MCUXpresso SDK – Open-source software MISRA-compliant development kit (SDK) with peripherals drivers, wireless & wired connectivity stacks, middleware, real-time OS, getting started guides, API documentation, and application examples.
  • MCUXpresso IDE – Integrated development environment (IDE) for editing, compiling and debugging. It also integrates MCU-specific debugging views, code trace and profiling, multicore debugging, etc… Both free and professional edition of the IDE will be available, and LPCXpressor and previously Freescale Freedom & Tower platforms will be supported.
  • MCUXpresso config tools:
    • An SDK Builder enabling custom-built SDKs for specific MCUs or evaluation boards.
    • A graphical pins tool to assist with routing of internal signals to external pins, and generates ANSI-C source for the MCUXpresso SDK environment.
    • A clocks tool with a graphical representation of the MCU clock tree system, interactive user controls, and assistance with system fine-tuning.
    • A power estimation tool to allow application modeling and assessment of power consumption under user-defined parameters.
MCUXpresso SDK Architecture

MCUXpresso SDK Architecture

The MCUXpresso SDK and config tools will be available around the middle of next month, and beside built-in support for the MCUXpresso IDE, the SDK can also work with IAR Embedded Workbench, ARM Keil  MDK, Atollic TrueSTUDIO, SOMNIUM  DRT, and others. That’s not a bad thing since MCUXpresso IDE will only be released in March 2017.

You’ll find many more details, and download links for the SDK on MCUXpresso page.

Android 7.1 Developer Preview Coming Soon with Image Keyboard Support, App Shortcuts API, etc…

October 12th, 2016 No comments

Google will soon release Android 7.1 Developer Preview for Nexus 5X & Nexus 6P smartphone, as well as Pixel C tablet, listed some of the changes you can expect in the new dot release, and provided a timeline for other devices and the official launch.

android-7-1-featuresAndroid 7.1 developer and user visible changes will include:

  • App shortcuts API will allow developer to set up to 5 shortcuts accessibly from app icon directly in the launcher. For example, a messaging app could have shortcuts to your favorite users and/or open a new conversation.
  • Circular app icons support to create rounded icons similar to what is used in Pixel launcher.
  • Enhanced live wallpaper metadata so that developers can show existing metadata such as label, description, and author, as well as a new context URL and title to link to more information.
  • Image keyboard support will let user easily insert custom stickers, animated gifs, and more from the keyboard app.
  • Storage manager Intent can be used by app to direct the user to Settings screen to clear unused files and free up storage space.
  • New APIs to support multi-endpoint calling and new telephony configuration options.

If you want to receive the Developer Preview automatically, enroll your device on Android Beta. After the first preview, more devices will be supported in the final Android 7.1.x release scheduled for early December, including Nexus 6, 5X, 6P, 9, Player, Pixel C, supported Android One devices, as well as the new Pixel and Pixel XL smartphones.

Categories: Android Tags: Android, google, nougat, sdk, smartphone, tablet