Posts Tagged ‘sdk’

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

CHIP Pro is a $16 WiFi and Bluetooth 4.2 System-on-Module Powered by a $6 GR8 ARM Cortex A8 SIP

October 12th, 2016 24 comments

Next Thing CHIP board and corresponding PocketCHIP portable Linux computer have been relatively popular due to their inexpensive price for the feature set, as for $9, you’d get an Allwinner R8 ARM Cortex A8 processor, 512MB flash, 4GB NAND flash, WiFi & Bluetooth connectivity, and plenty of I/Os, which made it very attractive for IoT applications compared to other cheap boards such as Raspberry Pi Zero and Orange Pi One. The first board was mostly designed for hobbyists, but  company has now designed a new lower profile system-on-module called CHIP Pro based on Next Thing GR8 SIP combining Allwinner R8 SoC with 256MB DDR3 RAM that can be used for easy integration into your own hardware project.

chip-proWhile the original CHIP board exposed full USB ports and interface for video signal, the new CHIP Pro is specifically designed for IoT with the following specs:

  • SIP – Allwinner R8 ARM Cortex A8 processor @ up to 1.0 GHz with Mali-400 GPU + 256MB DDR3 RAM (14×14 mm package)
  • Storage – 512MB SLC NAND flash, 1x micro SD port
  • Connectivity – 802.11 b/g/n WiFi + Bluetooth 4.2 with chip antenna and u.FL antenna connector
  • USB – 1x micro USB port for power and serial console access
  • Expansion – 2x 16-pin with 2x UART, parallel camera interface, I2C, SPI, 2x PWM, USB 2.0 OTG, USB 2.0 host, 2x microphone, 1x headphone
  • Power Supply – AXP209 PMU supporting USB power, Charge in, and 2.9 to 4.2V LiPo battery
  • Dimensions – 45 x 30 mm
  • Certifications – CE and FCC part 15
Click to Enlarge

Click to Enlarge

The module is pre-loaded with the company’s Linux based GadgetOS operating system, but custom firmware flashing is available for orders of 1,000 modules or more. Potential applications include physical computing, voice recognition, smart consumer devices, portable audio devices and so on. Software support should be identical to what you already get in CHIP board, and you can already find some hardware design files specific to CHIP Pro on Github including datasheets for the system-on-module and Allwinner GR8 SIP.

chip-pro-devkitIn order to help you getting started as fast as possible, a development kit is also available with a baseboard and two CHIP Pro modules. The baseboard include a 5V-23V power jack, a 3.5mm audio jack, a micro USB port, a USB host port, some LEDs, a power button, and female headers for easy access to all I/Os.

CHIP Pro SoM will start selling for $16 in December of this year without minimum order quantity, and no volume discount, e.g. if you buy 1 million SoMs, you’d have to pay 16 million dollars. One issue with CHIP board is that if you asked Allwinner for a quote for module used in the board, it would cost more or about the same as the board itself. Allwinner/Next Thing GR8 is completely different, as you can actually buy it for $6 (including AXP-209 PMIC) to integrate into your own project. The development kit is available now for $49. More technical details and purchase links can be found on the product page.

Thanks to Nanik for the tip.

How to Write ESP8266 Firmware from Scratch (using ESP Bare Metal SDK and C Language)

October 7th, 2016 8 comments

CNXSoft: This is a guest post by Alexander Alashkin, software engineer in Cesanta, working on Mongoose Embedded Web Server.

Espressif’s ESP8266 had quite an evolution. Some may even call it controversial. It all started with ESP8266 being a WiFi module with a basic UART interface. But later it became clear that it’s powerful enough for embedded system. It’s essentially a module that can be used for running full-fledged applications.


Espressif realized this as well and released an SDK. As first versions go, it was full of bugs but since has become significantly better. Another SDK was released which offered FreeRTOS ported to ESP. Here, I want to talk about the non-OS version. Of course, there are third-party firmwares which offer support for script language to simplify development (just Google for these), but ESP8266 is still a microchip (emphasis on MICRO) and using script language might be overkill. So what we are going to come back to is the ESP SDK and bare C. You’ll be surprised, it’s easier than it looks!

First steps

To develop firmware you’ll need:

  1. ESP8266 connected to your computer via USB.
    There are a lot of articles how to connect an ESP to a computer. You will need several Dupont cables and a UART-to-USB adapter. If you have a Arduino board you can use it as UART-to-USB. Google “connect esp8266 to computer” – there are a lot of articles about this.
  1. SDK.  I suggest using this one:

Download it and follow its readme to build. There is nothing extraordinary in this process, all you need is to install prerequisites and invoke “make”.

In general, this SDK is intended for *nix systems, but there is a port for Windows as well.

In short, to start development you should have an ESP device available as /dev/ttyUSB0 (/dev/ttyACM0 if you use Arduino or COMn in Windows) and the SDK installed in a certain path.


In C int main() is an entry point to a program. But, in the case of ESP the entry point is void user_init(). This function must be used only for initialization, not for long-running logic.

Here an example:

Note, that all we do in user_init is calling the system_init_done_cb API function. This function accepts one parameter, which is a pointer to function which will be called once all system modules will be properly initialized. You can put your initialization code in user_init too, but you can face problems with some system function (like WiFi), just because appropriate modules aren’t initialized yet. Thus, it is better to use system_init_done_cb and perform initialization in the callback function.

Beware of the dog

ESP8266 has a watchdog functionality. And there is NO documented API to control it (there is some undocumented stuff, but out of scope for this tutorial). Its timeout is 1 second.

What does that mean? It means, that you have to return the control flow to system every second, otherwise the device will be rebooted. This code leads to the device reboot:

In general, watchdog is not evil, it helps if the program hangs. And, 1 second is not so small as it sounds. Just keep this fact in mind.

Doing something

Taking what we learned about the watchdog into account, we face an obvious question: where can I run my tasks?

The simplest answer is in timers. The timer API is very simple in ESP.

If the last parameter of the os_time_arm function is 0, the timer callback will be invoked only once. If it’s 1, it will be called repeatedly until the os_timer_disarm is called.

And, finally, we have a place to put our code: The start_timer_cb function.

Our task here is to make an LED blink. Some ESP boards have an LED attached to GPIO16, if your board doesn’t have it, you can attach an LED to any free GPIO.

As you remember start_timer_cb is a timer callback function, and it is called every 5 seconds. On first call on variable is 0 and we set GPIO16 to high – as result LED will be turned on. On second call we set GPIO16 to low – and LED is turned off. And so on and so on.

Building the project

Now it is time to build our project. Let’s say, we have only one source file – main.c. I cannot recommend using makefiles which are used for building examples. They are too complicated and a bit weird. So, I’d suggest to write your own (simple!) makefile.

Here are steps:

  1. Compile main.c to main.o.
    Use xtensa-lx106-elf-gcc compiler which is a part of esp-open-sdk.
  2. Link project.
    Linker to use – the same xtensa-lx106-elf-gcc. Libraries to link with are: c gcc hal m pp phy net80211 wpa main

Also, you need to supply the linker script (.ld file). Choose one from esp-open-sdk that matches the flash size of your device. After this step you’ll have .elf file.

  1. Convert .elf file to .bin

For this, use script from esp-open-sdk. Run it like this:

If everything is ok, you should have 3 files in <output dir> with names like 0x00000.bin, 0x11000.bin 0x66000.bin.


The final step is to put our firmware onto the device. For this we will use the esptool again, but now we should use write_flash option. Like this:

You should use real filenames from the previous step. And, if everything is still OK, the LED attached to the device will start to blink every 5 seconds.

Next steps

Writing the firmware for any device is a huge topic. Working with ESP8266 is no exception. So, the purpose of this article is only to highlight the direction. There are a lot of different APIs in the ESP8266 SDK: WiFi, GPIO, TCP/UDP and more. Make sure to check out the documentation fully here. It’s also good to check out the examples by firmware providers and esp-open-sdk. If you want to start with an example, check out this one which goes through running Mongoose Embedded Web Server on ESP8266.

Pine64 Unveils $2 PADI IoT Stamp WiFi IoT Module with FreeRTOS SDK, Upcoming ARM mbed 5.0 Support

September 12th, 2016 12 comments

Realtek RTL8710 WiFi IoT modules came out as potential competitors to ESP8266 modules last month, with similar features. an ARM Cortex M3, and a pricing as low as $2 in quantities. However, documentation is often in Chinese only, and based on my experience with an RTL8710AF module limited to AT commands set for now. Software and documentation are likely to improve a lot however, as Pine64, the makers of Pine A64 boards, are about to launch their own “PADI IoT Stamp” RTL8710AF module for just $1.99 in any quantities.

padi-iot-stampPADI IoT Stamp specifications:

  • SoC – Realtek RTL8710AF ARM Cortex-M3 @ 83 MHz with 1MB ROM, 512KB RAM, and 1MB flash
  • Connectivity – 802.11 b/g/n WiFi @ 2.4 GHz – 2.5 GHz (2400 MHz – 2483.5 MHz) with PCB antenna; Station / SoftAP / SoftAP + Station modes;
  • Expansion headers – 22 half-holes with
    • Up to 1x SPI @ 41.5 Mbps max
    • Up to 3x UART with 2x up to 4Mbps, 1x @ 38400 bps
    • Up to 4x PWM
    • Up to 1x I2C @ 3.4 Mbps max
    • Up to 19 GPIOs including 10 supporting interrupts
  • Power Supply – 3.0 to 3.6V (3.3V recommended)
  • Power Consumption – 87 mA typ. @ 3.3V using 802.11b 11 Mbps, +17 dBm; 0.9 mA light sleep; 10 uA deep sleep; More details on Section 6 of the datasheet.
  • Dimensions – 24 x 16 mm
  • Temperature range – -20 ℃ ~ 85 ℃

If the hardware looks familiar, it’s because it also most the same as B&T RTL-00 module. However, I’ve been told it might not be 100% compatible, so mixing firmware for different modules may potentially brick them. The module can be programmed and debugged using IAR, openOCD, and/or J-Link, and it supports firmware updates via UART, OTA, and JTAG. Currently, the company provides a download link to Ameba Standard SDK based on FreeRTOS and LWIP, but ARM mbed 5.0 support is planned in the coming months. [Update:Ameba RTL8710AF SDK ver v3.5a GCC ver 1.0.0- without NDA has been uploaded recently] Configuration can be done through AT Commands, Cloud Server, or Android / iOS mobile app.

PADI IoT Stamp Pinout Diagram

PADI IoT Stamp Pinout Diagram – Click to Enlarge

You’ll find documentation in English and tools on PADI IoT Stamp product page, including the datasheet, a guide start guide with AT commands, Ameba SDK 3.4b3, and some tools and drivers for the serial console. The module will officially launch on September 14th, and you’ll be able to purchase it for $1.99 plus shipping. The company is also working on a breadboard-friendly NodeMCU like board featuring PADI IoT Stamp, but I don’t have further info about this board at this stage.

In somewhat other news, some people submitted both RTL8710AF and RTL8711AF processors to a X-Ray machine, and while the latter has more features such as NFC support, it appears both SoCs look exactly the same under X-Ray, so RTL8710AF might actually have the exact same features, but they are just disabled.

Tizen Studio 1.0 Replaces Tizen SDK for Smartphones, Wearables and TVs

September 5th, 2016 No comments

Tizen has converged all Tizen SDK for mobile, wearables, and TV to Tizen Studio since the beginning of the month, and released Tizen Studio 1.0 for developers interested in developing app for Tizen smartphones, TVs and/or smartwatches such as the latest Samsung Gear S3.

Tizen_Studio_1.0So instead, you’ll now be able to select the targets platform and profiles within Tizen Studio. Some of the key changes made to the development environment in Tizen Studio 1.0 include:

  1. Launching tools: Installer, Uninstaller, and Package Manager
  2. Developing tools: IDE perspective theme, Project Wizard, Certificate Manager, and Menu and tool icons
  3. UI tools: UI Builder, Component Designer, and EDC Editor
  4. Testing tools: Emulator
  5. Testing tools: Dynamic Analyzer for memory and CPU profiling
  6. Other improvements in Tizen application development environment
Dynamic Analyzer in Tizen Studio 1.0

Dynamic Analyzer in Tizen Studio 1.0

Tizen Studio is available for the 32-bit and 64-bit version of Windows,  and Ubuntu, as well as for Mac OS with one version with the graphics IDE, and a smaller command line interface only version.

You can find a few more details about Tizen Studio on a Samsung newsroom post.

Espressif ESP32 WiFi & Bluetooth SoC is Now Up For Sale for $2.85

September 2nd, 2016 12 comments

Espressif ESP32 is one of the most awaited chip for IoT applications as it combines a dual core processor, WiFi, Bluetooth 4.0, and various I/Os. The good news is that you can now purchase ESP32 for 19 RMB ($2.85) on Taobao, or if you are not based in China, contact Espressif by email at sales [at]

ESP32Availability is however limited, and the maximum order is now 5 pieces. ESP32 modules and boards, as opposed to just the SoC, are not quite ready right now, but should become available in a few weeks. ESP-WROOM-32 is the ESP32 module developed by Espressif, and NodeMCU is also working on an ESP32 board, so we’ll get more good news very soon.


ESP32 Demo Board V2 with ESP-WROOM-32 Module

You can also find documentation, hardware and software resources on a Espressif ESP32 page , including a getting started guide, ESP32 SDK, ESP32 reference manual, ESP-WROOM-32 datasheet, and more.

If you are unsure whether your project would benefit from ESP32 over the cheaper ESP8266, I found an interesting table in Espressif Introduction document, showing how the processors are used in different applications.

ESP32_vs_ESP8266_ProjectsVia ESP32 Forums and RelentlesS

Yi Technology Releases an Open API SDK for Yi and Yi 2 4K Action Cameras

August 31st, 2016 No comments

Yi Technology, the maker of Yi actions cameras, often wrongly reported as Xiaomi Yi cameras as they are sold in Xiaomi stores, has now released an Open API to allow software and hardware engineers to develop products – such as drones, robots, or 360 deg. video recording setups – using their cameras.


YiOpenAPI supports three types of APIs available in Java or Swift languages:

  • Camera control (start/stop recording, capture picture, turn on/off viewfinder, etc…)
  • Camera settings (date/time, video resolution, photo size, video standard, etc…)
  • Camera state (record started/completed, video finder started etc…)

There are also some app samples, one of which being YI360Demo available in both binary and source code, and used to control multiple Yi cameras in order to shoot 360 deg. / VR  videos.

Hydra360 Rig for 16 to 22 Yi Camera

Hydra360 Rig for 16 to 22 Yi Cameras

You can find YiOpenAPI on github, get support on YiOpenAPI Facebook group, and sign-up for news updates on

Via GeekBuying Blog

Development Resources for Realtek “Ameba” RTL8710, RTL8711, and RTL8195 WiFi SoCs

August 1st, 2016 19 comments

We were made aware of a potential ARM based ESP8266 competitor last week with Realtek RTL8710 WiFi modules selling for about $3.5 shipped per unit, and under $2 per unit for larger orders (100+ pieces). Hardware is good, but for a platform to be successful, or even just useful, you also need software support. So I started doing some research into IoT-Tech BBS and asked ICStation for an “SDK” for the module they sold.

802.11 nxn with NFC RTL8710 Module

RTL8710 single band 802.11n (1×1) and NFC Tag Solution block diagram

I ended up on this forum post providing an “Realtek RTL8710 SDK” via Baidu (password: brwp), which turned out to be about the same as the Google Drive link provided by ICStation, and only contain minimal documents, as well as cracked Windows IAR Embedded Workshop and JLink tools. There are also some more technical details in Chinese only in another forum post, and well as B&T RTL8710 module datasheet (PDF).

However, if you don’t read Chinese that’s pretty challenging, and you may not want to use cracked software for development. I’ve soon come to the conclusion that RTL8710 was part of Realtek “Ameba” family also including RTL8711AF/AM and RTL8195AF, with the latter used in Ameba Arduino IoT board ($25), and supported by Ameba IoT community, where you’ll find both a “Standard SDK” and an “Arduino SDK” with several documents to get started.

Click to Enlarge

Click to Enlarge

The comparison table above shows that RTL8195AM and RTL8711AM support 2MB SDRAM + 512KB SRAM, while RTL8711AF & RTL8710AF only support 512KB SRAM. The not-so-good news here is that the Arduino SDK currently relies on the 2MB SDRAM lacking in the cheaper versions of the chips, and that’s the reason given by Realtek for the lack of implementation on RTL8710/RTL8711. The good news is that Realtek confirmed that the “Standard SDK” based on FreeRTOS and LWIP supports RTL8195, RTL8711 and RTL8710 processors.


Ameba SDK Software Architecture

You can freely download the standard SDK after registration on Ameba IoT community website, and you’ll find source code (component folder), documentation, sample code (project folder) and tools for Windows, as well as Android and iOS configuration apps (source + apk binary).

Realtek_Ameba_SDKYou may have noticed that the SDK name ends with “without NDA” which unfortunately means some documents – such as RTL8710 datasheet – are not publicly available at this time. However, Realtek has noticed the interest raised by their low cost WiSoCs, and hopefully the company will decide to become more open, at least for RTL8710/8711 to allow the community to fully leverage WiFi IoT modules based on Realtek low cost wireless processors.

Ameba IoT community appears to focus on their Realtek RTL8195AM based Ameba Arduino board right now, but you can always try to get more details or help in their forums. Alternatively, “dpape” has very recently created RTL8710 forums, and #rtl8710 IRC channel where interested developers and users can share ideas and more information about Realtek RTL8710/RTL8711 solutions.