Posts Tagged ‘seeed studio’

Buy Raspberry Pi 2 Board for Just $19.50 (Promo)

July 31st, 2017 12 comments

With the launch of Raspberry Pi 3 last year, there’s been much less interest for the Raspberry Pi 2 board, especially there has not been any official price cut. But Seeed Studio has an interesting promotion right now where the company sells Raspberry Pi 2 board for just $19.50, or $20 off the normal price on their website.

That price does not include shipping, but this can apparently be combined with TENOFFSHIP coupon to bring the total price with shipping to Germany to $21.66. If the same laws are still in place, it’s below the 22 Euros limit in Europe meaning you won’t need to pay for VAT or custom duties on the board. You need to use the coupon before July 31, midnight (GMT+8), so there are only a few hours left.

The main downside is that only 10 are available on backorder with shipping scheduled for August 11.

Getting Started with MediaTek X20 Android Development Board

July 17th, 2017 No comments

Thanks to CNX for helping me get a hand on the 96Boards compliant Mediatek X20 board that was generously donated by Seeed Studio. In this article, I will walk through the steps to get the board up and running and also compile Android from the source code. The current Android is version 6.

Unboxing the Beast

Figure-1 : DHL Packet

Figure-2 : MediaTek X20 Box

Figure-3 : Standoff, board and instructions

Figure-4 : Front Facing

Figure-5 : Powerful tiny MediateTek chip

Figure-6 : Side Shot

Figure-7 : Backside Shot

Figure-8 : Multiple Antenna

First Boot Up

The board boots up from the eMMC, and the first time you boot up you will get Android screen as shown in Figure-9. This is the default Android image from the factory, which surprisingly looks like it was setup for a phone screen mode, which is not sufficient for a HDMI monitor. It would be better to install the images that are made available at Linaro website or build your own. See the other section to flash the board with different images.

Figure-9 : Out-of-the-box Android

Figure-10 : Partition mount information

Switching to Fastboot Mode

Flashing image files are done using fastboot tool in bootloader mode. There are 2 ways to switch to bootloader mode. To prepare the board to be flashed it will need pin 3 (USB Host Set) located at the back of the board as shown in Figure-11 to be set to OFF

Figure-11 : Switch OFF pin 3

Method 1

The first method requires that you boot your board into Android. Power the board and let it boot to Android. Once it boots to Android you can switch to bootloader mode by typing

Once it switch to bootloader mode you can use the fastboot to flash the image

Method 2

The 2nd method require the xflash tool which can be downloaded from the following link Unzip the file and you will see something like Figure-12.

Figure-12 : Tools and Image files

Extract xflash.tar.gz and you will see something like Figure-13.

Figure-13 : Inside xflash.tar.gz

Unplug the power supply, and plug your computer USB cable to the micro USB cable of the board and run the xflash tool as follow

The location of MT6797_Android_scatter.txt can be found inside the <your_unzip_mediatek>/Images/Normal Image/ as shown in Figure-14

Figure-14: Scatter File

Power up your board after running the xflash tool. You will see print out on the screen as shown below.

Once you see the text ‘END’ the board has been switched to bootloader mode, and is ready to be flashed.

Flashing Android Image

Before flashing the new Android image make sure your board is indeed in bootloader mode by running the following command

You know that you are in bootloader mode, once you get a reply like the following

You can either flash using the image files provided by Linaro or build your own custom image. You can download a ready made image file from (the image file are inside the <directory>/Images/Normal Image).

The extracted mediatek-x20-aosp-16.10.tar.xz wil look like Figure-15.

Figure-15: All image files

Copy all the different files inside /Normal Image and /Special Image to a separate folder and flash the files using the fastboot command as follows:

Building From Source

Android 6.0 is supported on the X20 board. Use the following command to checkout the AOSP source code

You will need to download the binary drivers from Linaro website. The driver binary can be downloaded from Download the file called sla.tar.gz and unzip it. You will see something like Figure-16.

Figure-16 : Content of sla.tar.gz

Copy the contents of device/, prebuilts/ and vendor/ into the AOSP directory. After completing the copy steps follow the steps below to start compiling

  1. source build/
  2. lunch
  3. You will be shown the selection like Figure-17

    Figure-17 : Lunch menu

  4. Select 8 (or even 9)
  5. make -j10

Once the build process is complete, you will see list of files as shown in Figure-18.

Figure-18 : Local image files

The image files are now ready to be flashed to the board. Use the same flashboot commands as above to flash the new compiled image.

Mediatek X20 Board Info and Antutu Benchmark

I’ll complete this guide by showing the info provided by CPU-Z and Antutu benchmark for the board for people wanting such details.

Click to Enlarge

Click to Enlarge

Click to Enlarge

If you’re interested in the board, you can purchase it for $199 plus shipping on Seeed Studio.



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

June 11th, 2017 1 comment

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 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 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 2 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, 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.


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.


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.