Archive

Posts Tagged ‘seeed studio’

Review of Wio Tracker with GPS, Bluetooth 3.0 and GSM Connectivity

June 11th, 2017 No comments

Wio GPS – also called Wio Tracker – is an Arduino compatible board based on Microchip Atmel SAMD21 MCU with GPS, Bluetooth, GSM/GPRS connectivity, as well as several Grove connectors to connect sensors and modules for your IoT project. SeeedStudio sent me a sample for evaluation, so I’ve tested it, and reported my experience below by testing some of the Arduino sketches.

Wio Tracker Unboxing

All I got in the package was Wio GPS tracker v1.1 board. The top includes the Atmel MCU, an RGB LED, a microphone and 3.5mm AUX jack to make phone calls, a user and power button, a micro USB port for power and programming, a small 2-pin connector for a battery, and 6 Grove connectors for digital, serial, I2C and analog modules.

Click to Enlarge

The other side of the board comes with Quectel MC20 module that handles Bluetooth, GPS and GSM, a dual use micro SD card and nano SIM slot, and the GPS, 2G, and Bluetooth antennas. We can also see -/+ footprints close to connect speakers close to the OSHW logo.

Click to Enlarge

Getting Started with Wio GPS Tracker with Arduino IDE

I’ve been following Wio GPS Board Wiki for this part of the review, and as we’ll soon discovered I’ve had a rather mixed experience.

First, you’ll need a micro USB to USB cable to connect the board to Windows/Linux/Mac computer. This is the kernel output I got from Ubuntu 16.04:

After installing Arduino IDE for your operating system, we can add Seeduino boards to the IDE, by going to File->Preferences and pasting the link https://raw.githubusercontent.com/Seeed-Studio/Seeed_Platform/master/package_seeeduino_boards_index.json into Additional Boards Manager URL field, and clicking OK.Now go to Tools->Boards->Boards Manager search for wio, and install Seeduino SAMD by Seeed Studio.

You can also install Adafruit Neopixel by going to to Sketch->Manage Libraries->Include Library, or importing the zip file. After that point, I decided to check whether I could find “Wio Tracker” in the list of boards as indicated in the Wiki, but there was no such board so I selected Wio GPS Board, and selected port /dev/ttyACM0 (Wio GPS Board) port.

Then I went to check for sample sketches, and found some in Examples->Seeed_Wio_GPS_Board for the all key features of the board. So I tried a bunch of them including RGB_LED, Bluetooth, GNSS (GPS), and GSM (Send SMS), and only the Bluetooth sample would work.

Click to Enlarge

By I went back to the Wiki, and found out I add to import Wio Tracker library too, which I did, and I had another very similar sets of samples for MC20_GPS_Traker-master.

I’m not exactly sure we have two separate sets of nearly identical samples, but let’s see if I have more like with samples in MC20_GPS_Tracker-master folder.

Blink.ino is supposed to blink the RGB using blue color:

I could upload the program to the board with the following warning messages:

The RGB LED did not work. So I tried to remove Adafruit Neopixel library, same results. Finally I checked schematics to confirm the RGB LED is indeed connected to D10, and inserted some println debug code to make sure the program is running properly. Everything seems right, but the RGB LED would not blink. I’ve contacted the company, but unsurprinsgly they don’t work during the week-end.

Let’s move on with BT_CLientHandle.ino sketch that should allow us to pair the board with your phone. The code is relatively simple for this task:

I could see QUECTEL-BT with my Android phone, and had no problem to pair the board.

The serial output with pairing, and disconnecting events shows some of the AT commands used:

I also tried to connect a speaker to the AUX port of the board to see if I could use it as Bluetooth speaker, but it did not work, so some more code and a different Bluetooth audio profile (not HF_PROFILE) are likely required. All I could hear was dial-up modem sounds from the speakers. But still, we can tick this Bluetooth test as success.

Time for a GPS test. GNSS_Show_Coordinate.ino sketch is supposed to  output latitude and longitude to the serial console, and again the code to achieve this is still fairly simple:

But all I got in the serial output was the following:

With +CREG: 0,0 shown over and over. We can find the different AT Command sets (and EAGLE schematics) in the resources directory in Github. One of the document reports that AT+CREG? is a read command to retrieve network registration status, and the two numbers referred as <n> and <stat> are set to 0,0 meaning that:

  1. Disable network registration unsolicited result code
  2. Not registered, ME is not currently searching a new network to register on

I firstly did the test indoors, and although previously I could get a signal indoors with NavSpark mini board, I still went outside in case it was a signal problem, but the result was just the same. So maybe the program is stuck somewhere because I had not inserted a SIM card yet. Since I was not sure whether my operator still supported 2G, I forced my Android phone to use 2G, and the phone did get a signal using “E” instead of the usual 3G, and I could send an SMS and make a phone call over 2G network (I think).

So I took out the SIM card from my phone, and …. I could not insert right away simply because my SIM card was cut out as a micro SIM, but the board requires a nano SIM. Luckily, I purchased nano/micro SIM card adapters a while ago as I knew sooner or later I would have this little first world problem. You can find those for less than $1 on eBay, so even if you don’t need them right now, it might be a good idea to get some.

Click to Enlarge

Once I cut out my SIM card so that it fits into the micro SIM to nano SIM adapter that I will need to use when I put back the SIM card into my smartphone, I inserted  the nano SIM and a micro SD card at the same time, as the picture below shows with the white band right above the 4GB micro SD card being the nano SIM card. I did not know they made those, as I’ve only seen shared slots in the past.

I reran the GPS sample program, and the serial output changes a bit, but still no longitude and latitude info:

+QGNSSC:1 means the GNSS module is powered on so that’s good news I guess.

+CREG: 0,2 means the SIM card is registered, and in home network, but then it will switch to +CREG:0,5 meaning the SIM card is registered and roaming. Not really re-assuring.

They also have a more complex sample called GNSS_Google_KML.ino, that will get coordinate display them in OLED display attached to the board, and save data into a gps.txt into the SD card with raw longitude and latitude data that can be inserted into a Google KML file. A GoogleMapDemo.ino sketch will upload your coordinates to ziladuo.com website. That’s provided it works of course… and considering the simplest sample GNSS would not work. I gave up on GPS/GNSS tests.

Last try was with the GSM function with the send SMS sample (MC20_SMSSend.ino) that will send “Hello MC20!!” message to the phone number of your choice”. Again it’s very easy to program:

But sadly I could not send an SMS, as the function waitForNetworkRegister failed:

I had to end my testing there. I could not remove the nano SIM card with my hands, and I had to use a pair  tweezers to get it out by pushing those the small holes on top of the slot mechanism.

So overall my experience with the board was quite catastrophic with only Bluetooth working,  and GPS, 2G GSM, and even the RGB LED sample all failing. I also often had trouble uploading the code to the board with messages like:

or (even after having close to the serial terminal for a while):

So I often had to re-try and re-try to successfully upload the code to the board. I’m sure there must be an explanation for all the issues I had. I can see they tested it in Windows, but I’m using Ubuntu 16.04, so maybe that could be one reason?

Having said that, if the board actually worked, I really like what SeeedStudio has done, as it looks really easy to program the board with GPS, Bluetooth, or 2G data, SMS, calls, and you can add Grove Sensors to make pretty more advanced IoT projects. The company also provides a more practical sample with their “Wild Adventure Tracker” demo reporting sending GPS coordinates over SMS when a shock occurs. The source code on Github with a video showing the results below.

The company is also working on a 4G version, and I’ll probably have a chance to give it another try once it is released. If you are interested in Wio GPS Tracker board, you can pre-order it for $24.95 including all three antennas.

$14 LinkIt 7697 Bluetooth 4.2 LE and WiFi IoT Board is Powered by Mediatek MT7697 ARM Cortex-M4 MCU

April 26th, 2017 5 comments

Mediatek Labs has launched a new IoT development, which on the surface looks similar to LinkIt Smart 7688 board, but the internal design is quite different as the MIPS processor and Linux OS, have been replaced by Mediatek MT7697 ARM Cortex-M4 processor running FreeRTOS, and beside WiFi, also includes support for Bluetooth 4.2 LE.

LinkIt 7697 board specifications:

  • Wireless SoC – Mediatek MT7697 ARM Cortex M4F MCU @ 192 MHz with 352KB RAM, 4MB flash, 802.11 b/g/n WiFi, Bluetooth 4.2 LE and a PMU
  • Expansion – 2x 14-pin header with 18x GPIO, 2x UART, 1x I2C, 1x SPI, 18x PWM, 4x EINT, 4x ADC (0 to 2.5V), 1x IrDA, 1x I2S
  • Debugging – 1x SWD, CP2102 UART to USB chipset
  • Misc – Reset and user buttons; power and user LEDs
  • Power Supply – 5V via micro USB port
  • Dimensions – 48 x 26 mm

Pinout Diagram – Click to Enlarge

The board can be programmed with the Arduino IDE, or if you need more control LinkIt SK for RTOS. The documentation is available on Mediatek Labs LinkIt MT7697 page. We’ll note that the board is based on Wrtnode7 module, also found in the upcoming 96Boards WRTnode IE board. Mediatek MT7697 appears to competes directly with Espressif ESP32, and already comes with a 5GHz variant (MT7697D).

Mediatek MT7697 SoC Block Diagram

LinkIt 7697 board is up for pre-order for $13.90 on Seeed Studio, and there’s also a Grove Starter Kit for LinkIt 7697 selling with breakout board, and plenty of module for $150. The board and starter kit should ship on June 15, 2017…

Wio GPS is a $40 Grove & Arduino Compatible Bluetooth 3.0 + GSM/GPRS + GPS Tracker Board

April 21st, 2017 No comments

After Wio Link and Wio Node boards, Seeed Studio has added a new board to their Wio (Wireless Input Output) family with Wio GPS board based on Microchip SAMD21 Cortex M0+ MCU for Arduino compatibility, and Mediatek MT2503 ARM7 processor for GPS, Bluetooth 3.0, and 2G (GPRS) connectivity.

Click to Enlarge

Wio GPS board specifications:

  • MCU – Microchip ATSAMD21G18A-MU ARM Cortex M0+ MCU @ 48 MHz with 256KB flash, 32KB SRAM
  • Wireless SoC – Mediatek MT2503 ARM7EJ-S processor @ 260 MHz
  • Storage – micro SD slot (shared with nano SIM slot)
  • Connectivity (built-in MT2503 in Quectel MC20 module)
    • Bluetooth 2.1 + EDR, 3.0 with SPP Profile and HFP-AG Profile; u.FL connector for external antenna
    • Quad band 2G GSM/GPRS  with u.FL connector for external antenna and nano SIM card slot
    • GNSS – GPS + BeiDou + QZSS with u.FL connector for external antenna
  • Audio – Speaker footprint (+/-), 3.5mm AUX jack with mic and stereo audio
  • Expansion – 6x Grove Connectors (2x Digital, 2x Analog, 1x UART, 1x I2C)
  • USB – 1x micro USB port for power and firmware update
  • Misc – RGB LED, GSM power button, reset button
  • Power Supply – 5V via micro USB port, 2-pin JST 1.0 header for battery
  • Dimensions – 54.7mm x 48.2mm
  • Weight – 45 grams; antennas add 9 grams

While you can already do much of the things achieved with Wio GPS using an Arduino board, and corresponding GPRS/GPS shields, Seeed Studio’s board offers a more compact solution, and access to over 180 modules via the grove connectors. The board can be programmed with the Arduino IDE, and in due time a Wiki will be setup showing how to get started with the board.

Wio GPS Board with tis three antennas (GPS, Bt, GSM) is available for pre-order for $39.90 on Seeed Studio, and shipping is scheduled for June 1st. The company also plans to released an 4G /LTE version in Q3 2017.

ESP8266, Mongoose OS & Grove Sensors – An Alternative Solution for Hackathons

April 12th, 2017 5 comments

CNXSoft: This is a guest post by Cesanta

If you walked into any Hardware hackathon over the last year, you would see they are about innovation and bringing new ideas to this world and most of them are centered around the connected devices nowadays. However, just walk the floor, talk to the teams and you can quickly see an elephant in the room. The Hackathons are about connected devices, but with the ‘recommended’ and frequently sponsored hardware distributed to the teams such as Intel Galileo, Raspberry Pi, etc…. developers may struggle for a long time to even connect it to the cloud!

Not to mention the innovation is usually hindered by a tedious environment setup which takes hours, things to learn about the specific hardware and how it can be programmed using low level languages. So many teams spent most of the time fighting with those issues and oftentimes still do not have their prototype ready and connected by the end of hackathon.

This situation can be improved by using ESP8266 boards with Mongoose OS and SeeedStudio Grove Sensors. The solution brings the following benefits:

  1. Low price:
    • ESP8266 development board is $4-15 depending on the board;
    • Seeed Studio Sensors are priced  $3 to $15 each, but you can also save by purchase them as a part of Grove Starter Kit for $39.
  2. The solution is solderless & plug and play – so anyone can actually use it fast.
  3. With Mongoose OS the firmware logic can be coded within few minutes using JavaScript code
  4. The data can be pushed to any cloud or public MQTT server such as Mosquitto, HiveMQ, AWS IoT, etc…

Let’s jump into the action and get ESP8266 & Seeed Light Sensor up and running with Mongoose OS in a few minutes. This example below shows how to get the hardware (sensor) data and send it to the cloud.

  1. Get your ESP8266 (e.g. NodeMCU) and Seeedstudio Light Sensor and Button ready.
  2. Download and install mOS tool for Mongoose OS. This works in Linux, Mac OS X, or Windows operating systems
  3. Connect the hardware
    • Power the Grove base shield: connect GND and VCC pins to the NodeMCU GND and VCC pins
    • Connect light sensor to slot 7 on the Grove base shield
    • Connect slot 7 to the ADC pin on the NodeMCU board
    • Connect NodeMCU board to your computer
  4. Program the board to retrieve the light sensor data and send it to the cloud (HiveMQ in this example)
    • Start mos tool, switch to the prototyping mode, edit init.js file
    • Click ‘Save and reboot device”
  5. Go to http://www.hivemq.com/demos/websocket-client/, connect and subscribe to the topic “my/topic”
  6. Press a button and see how light sensor reading is sent to the MQTT server

Light Sensor Data Shown on HiveMQ Dashboard – Click to Enlarge

Now you can see how easy it was! Want to play with other Seedstudio sensors from Grove Kits? Check video tutorials for button, motion sensor, moisture sensor, UV sensor, relay, buzzer, etc… including the one below with the light sensor.

BLE Carbon 96Boards IoT Edition Board Runs Zephyr OS

September 27th, 2016 6 comments

Linaro Connect Las Vegas 2016 is taking place right now, and the organization has some very interesting development, with a new focus on the Internet of Things thanks to the creation of LITE (Linaro IoT and Embedded) segment group that will work on “delivering end to end open source reference software for more secure connected products, ranging from sensors and connected controllers to smart devices and gateways, for the industrial and consumer markets”. The first LITE IoT Reference Platform release to be made in December 2016, but in the meantime, Linaro introduced 96Board IoT specifications, as well as the first compliant board with the launch of Carbon board (aka BLE Carbon) running Zephyr OS.

Click to Enlarge

Click to Enlarge

Carbon 96Boards IoT Edition board specifications:

  • MCU – STMicro STM32F401 ARM Cortex M4 microcontroller @ up to 84 MHz with 512kB Flash, 96kB ram
  • Connectivity – Bluetooth 4.0 LE via Nordic Semi nRF51822 SoC + chip antenna
  • USB – 1x micro USB OTG port, 1x micro USB port for UART
  • Expansion – 2x 15-pin Low speed connector with GPIO, UART, Analog inputs,SPI, I2C, PWM, and power signals; 3.3V I/O voltage
  • Debugging – SWD debug connectors, UART console via micro USB port
  • Misc – 6LEDs ( USR1, USR2, BT, PWR, RX, TX), 2x push buttons (BOOT0 and RESET)
  • Power Supply – 5V via micro USB port with fuse protect
  • Dimensions –  60 x 30 mm as per 96Boards IoT standards
Click to Enlarge

Click to Enlarge

You’ll find the software and hardware documentation on 96Boards Carbon page, as well as Seeed Studio Wiki, since they are the designer and manufacturer of the board.

As with other 96Boards specifications, 96Board IoT Edition (IE) specification defines requirement for multiple revision of boards either using Cortex-A or Cortex-R/M profile, and IE standard (60x30x9mm) or IE Extended (85x54x12mm) form factor. On top of that you’ll also have board with 3.3V I/Os, and others with 1.8V I/Os. That means that BLE Carbon board is compliant with “96Board IoT Edition standard using Cortex-R/M profile and 3.3V I/Os“.

96Boards IoT Edition Standard (3.3V) Dimensions

96Boards IoT Edition Standard (3.3V) Dimensions

The specifications also mandates at least one wireless interface such as Zigbee and Bluetooth LE, as well as optional Ethernet, USB, and micro SD card support.

Seeed Studio is now taking pre-orders for the BLE Carbon board for $27.95 with shipping planned for October 20th.

HICAT.Livera Machine Vision Board and Robot Kit Feature HiSilicon Hi3518 SoC (Crowdfunding)

September 21st, 2016 3 comments

HiSilicon Hi3518 ARM9 processor is mostly being used in IP cameras, but Hicat startup decided to combined the camera processor with an Atmel MCU and a MT7601 WiFi module to create a wireless camera board to be used with OpenCV, and even provide a complete affordable robot kit with the board.

livera-boardHicat.livera board specifications:

  • Vision Core – Hisilicon Hi3518 ARM9 processor @ 440 MHz
  • Storage – 16MB flash + micro SD card
  • MCU – Atmel ATmega32U4 AVR micro-controller
  • Connectivity – 802.11 b/g/n WiFi via Mediatek MT7601 module + u.FL antenna connector
  • Camera interface with provided 140 deg. camera using Omnivision OV9712 720p (1280×720) sensor
  • USB – 1x micro USB port for power and programming
  • Audio – Built-in microphone, speaker header
  • Sensors – MPU6050 accelerometer and gyro
  • Expansion – 2x GPIO headers with GPIOs, I2C, SPI, serial, PWM, digital, analog and power signals.
  • Misc – MCU reset and Linux reset buttons,
  • Power Supply – 5V via USB or 3.3V LiPo battery
  • Dimensions – 60 x 42 mm

They’ve also provide a comparison table between HICAT.Livera and two competing platforms, namely openMV and PIXY.

hicat-livera-openmv-pixy

The firmware in the Hisilicon chip is based on Linux, and includes a video and file streaming server, OpenCV support for object tracking, Node.js support. The ARM9 processor and Atmel MCU communicate over a serial port, and an Arduino library is provided. An Android app (iOS coming soon) can also be used to view the live stream, control the robot, and change settings. Some code is available on Github, but not Linux, which may be an issue to due Hisilicon strict NDA requirements. The developer also claims the project will be open source hardware.

computer-vision-robot-kit

Beside Livera kit with the board and camera, a robot kit is also offered with a extension cable for the camera, a motor driver board based on lv8548 H-Bridge, two DC motors, a servo motor, wheels and body, 9V rechargeable battery, and laser beam. The board and robot are demonstrated in the embedded video.

The project has just launched via Kickstarter, where the goal is to raise $5000 ore more to fund mass production. They have not mentioned the manufacturing partner in Kickstarter, but it should be Seeed Studio, since they informed me about the project. Livera board with camera requires a $39 pledge (Early bird), while the complete robot kit is just $69 (Early Bird). Shipping adds $2 to $20 depending on rewards and destination, and delivery is scheduled for (end of) December 2016 or January 2017.

You Can Now Buy ESP3212 ESP32 WiFi + Bluetooth Module for $6.95

September 5th, 2016 28 comments

After the official launch of ESP32 processor for less than $3, it did not take long before ESP32 modules hit the market, and Seeed Studio has already listed ESP3212, one of the first modules based on Espressif ESP32 Bluetooth LE + WiFi SoC, for $6.95 with shipping scheduled to start on September 23, 2016.

ESP3212-ModuleESP3212 module specifications:

  • SoC – Espressif ESP32 dual core Xtensa LX6 processor @ up to 240 MHz with 448 KB flash, 520 KB SRAM, 16 KB SRAM in RTC, WiFi and Bluetooth LE connectivity
  • Storage – 4MB Winbond SPI flash
  • Connectivity
    • 802.11 b/g/n/e/i WiFi (HT40) up to 150 Mbps
    • Bluetooth 4.2 BR/EDR and BLE
    • 3 dBi PCB antenna
  • Headers – 22x GPIOs (multiplexed with ADC, Touch, DAC, SPI, UART, CAN, ETH, IR, PWM, and I2S), 1x UART, Sense VP/Sense VN, EN pin. 3.3V and GND
  • Power Supply – 3.0 – 3.6V
  • Dimensions – 24 x 16 x 3 mm

ESP32-ModuleThe exact pinout of the module can be found on Taobao, section “3.2 接口定义”.

Number Pin Name Description
1 GND 接地
2 EN 模组使能端,高电平有效
3 SVP SENSOR_VP, GPIO36, ADC1_CH0, RTC_GPIO0
4 SVN SENSOR_VN, GPIO39, ADC1_CH3, RTC_GPIO3
5 IO34 GPIO34, ADC1_CH6, RTC_GPIO4
6 IO35 GPIO35, ADC2_CH7, RTC_GPIO5
7 IO32 GPIO32, 32K_XP, (32.768 kHz晶体振荡器输入),ADC1_CH4, TOUCH9, RTC_GPIO9
8 IO33 GPIO33, 32K_XN,(32.768 kHz晶体振荡器输出),ADC1_CH5, TOUCH8, RTC_GPIO8
9 IO25 GPIO25, DAC_1, ADC2_CH8, RTC_GPIO6
10 IO26 GPIO26, DAC_2, ADC2_CH9, RTC_GPIO7
11 IO27 GPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17
12 IO14 GPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS,HSPICLK
13 IO12 GPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ
14 IO13 GPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, U0CTS
15 IO15 GPIO15, ADC2_CH3, TOUCH3, RTC_GPIO13, MTDO, HSPICS0, U0RTS
16 GND 接地
17 IO2 GPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP
18 IO0 GPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1
19 IO4 GPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD
20 IO16 GPIO16, HS1_DATA4
21 3V3 3.3V 供电
22 IO17 GPIO17, HS1_DATA5
23 IO5 GPIO5, VSPICS0, HS1_DATA6
24 IO18 GPIO18, VSPICLK, HS1_DATA7
25 IO23 GPIO23
26 IO19 GPIO19, VSPIQ, HS2_DATA2
27 IO22 GPIO22, VSPIWP, HS2_CLK
28 U0RX U0RXD, GPIO3, CLK_OUT2, HS2_DATA0
29 U0TX U0TXD, GPIO1, CLK_OUT3, HS2_DATA1
30 IO21 GPIO21, VSPIHD, HS2_CMD
31 GND 接地

On the software side of things, you should be able to use ESP32 SDK available from Espressif website, aka ESP32 IoT Development Framework (IDF). If you prefer Arduino or NodeMCU firmware, the former is available for ESP32 in beta phase @ Arduino Core for ESP31B ESP32 and NodeMCU should be work in progress, but I have not found code specific to ESP32 on NodeMCU github repo.

Getting Started with ReSpeaker WiFi IoT Board’s Audio Capabilities, Voice Recognition and Synthesis

August 27th, 2016 8 comments

ReSpeaker is a development board combining an Atmel AVR MCU, a MediaTek MT7688 WiFi module running OpenWrt, a built-in microphone, an audio jack, and I/O headers to allow for voice control and output for IoT applications. That means you could make your own Amazon Echo like device with the board and add-ons, use it as a voice controlled home automation gateway and more. The board was launched on Kickstarter a few days ago, and already raised $100,000 from about 100 backers, but I’ve received an early sample, so I’ll provide some more information about the firmware, and shows how to use with some Python scripts leveraging Microsoft Bing Speech API.

Click to Enlarge

Click to Enlarge

You’ll need a micro USB to USB cable to connect your to computer (Linux, Windows, Mac OS…), and a speaker to connect to the board. Linux (OpenWrt) boots in a few seconds, and once it’s done all RGB LED will continuously blink.

I’m using a computer running Ubuntu 16.04, and ReSpeaker is detected by the system as an Arduino Leonardo board:

That’s optional, but if you want you can access the serial console, with programs like Minicom, screen, putty or hyperterminal and set the connection to 57600 8N1 to access the command. Here’s the full boot log:

If you think something is odd here… That’s because the serial connection will miss some characters. This happens with two computers and different USB cables. Hopefully this is either a specific issue with my sample, or if it is an issue it will be fixed by the time boards ship to Kickstarter backers [Update: The company explained me that it’s because the Atmel 32u4 and Mediatek MT7688 share the same USB port]. So instead of using the serial console, I’ll use SSH instead which means I have to connect to ReSpeaker WiFi access point first, and configure it.

LinkIt_Smart_Access_PointReSpeaker will show as LinkIt_Smart_7688_XXXXX, because the WiFi module is exactly the same as LinkIt Smart 7688 IoT board, and unsurprisingly the configuration interface is exactly the same.ReSpeaker_WiFi_PasswordFirst set the root password, and login with that password.

ReSpeaker_Station_Mode_OpenWrt_LUCIThen go to Network tab, select station mode, and connect to your access point by entering your password. Click Configure, and you’re done. As you can see on the right above, you can also use OpenWrt’s LUCI interface to configure networking.

Now find ReSpeaker IP address via your Router DHCP client list, arp-scan, or other method:

You can now connect to the board via SSH:

and use the password you set in the web interface.

Now let’s check some CPU information:

We’ve got Mediatek NT7688 MIPS24K processor as advertised, so let’s check a few more details:

The board runs Linux 3.18.23, has 7.6MB available storage, and 128MB RAM in total.

I’m not going to test the audio features with command tools, and python script, and also include a video demo at the end of this review.Since I don’t have ReSpeaker Microphone array add-on, I have to be fairly close to the microphone for it to work well, maybe one meter at most, or the volume would be really low.

I’ll start by checking audio recording and playback with any API or internet access requirements.
We can record audio with 16000 sample rate, 16 bit width, 1 channel using the following command

and play it back with aplay:

It worked OK for me, although the volume seemed quite low.

Now we can do something a little more interested as Seeed Studio develop a few Text-to-speech and Speech-to-text Python scripts. You can retrieve the scripts from ReSpeaker github account, and install one dependencies to setup the board:

The script are using Microsoft Speech API, but in theory you could use any other speech API. Since Seeed Studio has already done all the hard work, I simply applied for a Microsoft peech API key in order to be able to use the demo.

Microsoft_API_KeyThat’s free for testing / evaluation, but if you intend to use it in commercial products, or for your own case, if you use more 5,000 transactions per month, you’d need to purchase a subscription.

You’ll find three Python scripts in the directory namely: bing_voice.py, bing_stt_with_vad.py,  tts.py. Look for BING_KEY inside each script, and paste your own key.

Time to have some fun, starting with the speech to text script:

It’s pretty slow to start (about 15 seconds), and then there are a few error message, before you can see the “* recording” message, and you can talk, with Bing returning the results: “Bing:你好”. Chinese? Yep, as currently the default is Chinese, but if it is not your strongest language, you can edit bing_stt_with_vad.py, and change the language replacing zh-CN by en-US, or other language strings:

An English works too (sort of):

In the first sentence, I said “Hello World! Welcome to CNX Software today”, but it came out as “hello world next software”, maybe because of my accent, but I doubt it…

Then I wanted to try Thai language, but I got an API failure simply because the number of supported languages by Microsoft Speeach API is limited as shown in the table below.

language-Country language-Country language-Country language-Country
ar-EG* en-IN fr-FR pt-BR
ca-ES en-NZ it-IT pt-PT
da-DK en-US ja-JP ru-RU
de-DE es-ES ko-KR sv-SE
en-AU es-MX nb-NO zh-CN
en-CA fi-FI nl-NL zh-HK
en-GB fr-CA pl-PL zh-TW

If your language is not listed here, then you could Google Speech API instead, and it’s likely Seeed Studio or the community will have written compatible scripts by the time ReSpeaker boards ship to backers.

So you now know how to convert your voice to text, and you can use that text to send a web search, or toggle GPIOs, but you may also want to get an audio answer to your action, and tts.py script is there for your, and very easy to use:

It did not really feel realistic, but at least I could understand the female voice in the speakers. Looks in the script I did not see any language settings, so I assume the API will automatically detect the language, and inputted a string in French instead, and all I heard was gibberish. Finally I found that you can change the voice language in bing_voice.py script with contains most of the code:

I replaced the US female voice, but a French male voice, added a “famous French saying”:

At least it was understandable, but Microsoft has still some work to do the audio output was more like “Salut mon gars. commencer a va?”. The reason could also be that the correct writing is “Comment ça va”, but the terminal (set to UTF-8), did not let me input “ç”.

You can watch all those demo in the video below to get a better feel about the audio quality, delays, and capabilities of Microsoft Bing Speech API.