We’re Giving away 10 Intel Genuino 101 Dev Boards - Review

Table of contents

RoadTest: We’re Giving away 10 Intel Genuino 101 Dev Boards

Author: powderjockey

Creation date:

Evaluation Type: Evaluation Boards

Did you receive all parts the manufacturer stated would be included in the package?: True

What other parts do you consider comparable to this product?: Ardunio Uno

What were the biggest problems encountered?: Board would only function under the Windows operating system.

Detailed Review:

Receipt

Date: 17-06-28

  • The Arduino board arrived this date. The box was a little beaten up, but the contents of the box were in perfect order. I’m not reviewing the box, so that’s a good thing. Only thing the Arduino box is the 101 board. No cords, cable or jumpers, jut won’t fit.
  • At first glance, one could think the Arduino 101 was its cousin, the Arduino Uno.
  • On a closer look at the 101, the board is a lot cleaner looking than the Uno. The large EPROM on the Uno is replaced with several smaller Intel  and other chips.
  • Two reset buttons on the 101, versus 1 on the Uno.
  • The headers on each side to the board has exactly the same layout as the Uno. There are 13 digital slots and 5 analog, then power, ground and other make up the file 6 slots, same as the Uno.
  • One of the real noticeable difference is the Intel logo and the Bluetooth logo.
  • Technical Specs

Microcontroller

Intel Curie

ATmega328P

Operating Voltage

3.3V (5V tolerant I/O)

5V

Input Voltage (recommended)

7-12V

7-12V

Input Voltage (limit)

7-17V

6-12V

Digital I/O Pins

14 (of which 4 provide PWM output)

14 (of which 4 provide PWM output)

PWM Digital I/O Pins

4

6

Analog Input Pins

6

6

DC Current per I/O Pin

20 mA

20 mA

Flash Memory

196 kB

32KB (ATmega328P) of which 0.5 kB used by bootloader

SRAM

24 kB

2 k

Clock Speed

32MHz

16 MHz

LED_BUILTIN

13

13

Features

Bluetooth LE, 6-axis accelerometer/gyro

 

Length

68.6 mm

68.6 mm

Width

53.4 mm

53.4 mm

Weight

34 gr.

25 g

 

Set up

  • Opened up the Arduino IDE and navigated to the Tools>Board>Board Management.

 

 

 

 

  • Once the IDE, board and ports were setup, I went to the Arduino website and since I don’t have a specific test or function that I wanted to do, I thought I would follow along the tutorial pages and see just what the Arduino 101 is all about.
  • Loaded up the first sketch. File>Examples>01. Basics>Blink. The sketch uploaded and work as it I suspected. The LED on the board near PIN 13 blinked. I made adjustments to the sketch as well by changing the length of the time for the LED to stay on and off. I did have to press the MASTER RESET each time I uploaded the sketch in order for the sketch to finish loading.
  • The next day, I had trouble trying to get things set up and going. LED sketch loaded into the IDE and uploaded, no LED on the board (13), errors produced,
    • Arduino: 1.8.3 (Mac OS X), Board: "Arduino/Genuino 101"
    • Sketch uses 89268 bytes (57%) of program storage space. Maximum is 155648 bytes.
    • Starting download script...
    • Flashing is taking longer than expected
    • Try pressing MASTER_RESET button
    • ATTENTION: RTOS firmware is being flashed
    • DO NOT DISCONNECT THE BOARD
    • exit status 74
    • An error occurred while uploading the sketch
    • This report would have more information with
    • "Show verbose output during compilation"
    • option enabled in File -> Preferences.
  • Trying to get the board to work has been a bit of a challenge. Other Arduino boards I’ve used and played with, they have worked OOTB. Not really sure why I’ve got the problems with the 101.  I then tried the 101 on MacBook Pro (Mac) and Linux. One workaround for the board was to plug the USB cable into the computer as soon as the error “Try pressing MASTER_RESET button” shows on the screen. Seemed to work on the Linux computer, but the Mac seems to loose connection and not connect as per the tip from the Arduino forums.
  • Further research done with regards to the Mac OSX Sierra. I looked at the error message that was being returned on the Mac within the Arduino IDE. It was looking for a file called quirk.bin. This file is suppose to be located in the following directory:
  • /Arduino15/packages/Intel/tools/arduino101load/2.0.1/firmwares/2.1.0.
  • There was no final sub-dir called 2.1.0 on my laptop, but there was a 2.0.0 and a quirk file in there. So I copied the directory and renamed it 2.1.0. Reloaded the IDE and compiled the sketch, pressed the MASTER RESET when requested and the sketch loaded.
  • It will not load unless the MASTER RESET is pressed.
    • /Users/dexter/Library/Arduino15/packages/Intel/tools/arduino101load/2.0.1/arduino101load -dfu=/Users/dexter/Library/Arduino15/packages/arduino/tools/dfu-util/0.9.0-arduino1 -bin=/var/folders/fl/pgnzpz8x2n97hdpf191k0lvr0000gn/T/arduino_build_272500/LedControl.ino.bin -port=/dev/cu.usbmodem1421 -v -ble_fw_str="ATP1BLE00R-1631C4439" -ble_fw_pos=169984 -rtos_fw_str="firmware_1.6.0_arduino101" -rtos_fw_pos=147424 -core=2.1.0
    • arduino101load 2.0.2 - compiled with go1.7.5
    • Starting download script...

    • Serial Port: /dev/cu.usbmodem1421

    • BIN FILE /var/folders/fl/pgnzpz8x2n97hdpf191k0lvr0000gn/T/arduino_build_272500/LedControl.ino.bin

    • Waiting for device...

    • Waiting for device...

    • Waiting for device...

    • Waiting for device...

    • Waiting for device...

    • Flashing is taking longer than expected

    • Try pressing MASTER_RESET button

    • Waiting for device...

    • Waiting for device...

    • Waiting for device...

    • Waiting for device...

    • Waiting for device...

    • ERROR: Timed out waiting for Arduino 101 on /dev/cu.usbmodem1421

    • ERROR: Timed out waiting for Arduino 101 on /dev/cu.usbmodem1421

    • This report would have more information with

    • "Show verbose output during compilation"

    • option enabled in File -> Preferences.

  • Now, the fact the maker has discontinued the arduino 101, this might speak to the points of the problems I had with the board and the IDE wanting to play nice. A lot of the forums talked about the frustration with the lack of support for the 101 and Intel Curie chip. This is not the scope of this review and I will leave you to the link above.
  • Well, moving on. I had a difficult time getting the board to play nice with both Mac OSX and Linux Debian. The Arduino IDE version used in both of these OS’s was 1.8.3. Now, I was able to get the the board to function as I would expect it to, using Windows 10 and Arduino IDE version 1.8.2. There was no request to press the MASTER RESET button, the sketches just loaded.

 

EVOThings

  • From here I decided to attempt the bluetooth using the EVOThings app. The LED sketch worked as it is supposed. LED “on”, LED “off” using the app.
  • The LED sketch does nothing without the app. The app is an interesting product.

 

 

App look on the mobile device.

 

So with that in mind, I decided to just use the Windows laptop to perform the testing of the board. The libraries and boards are all loaded up and good to go. Now, when I decided to throw my name into the hat to review the Arduino 101, I did not have any huge experiment to perform that would blow the 101 up or out of the water. So I decided to attempt to run through the tutorials that are offered on arduino.cc and then look for some other experiments , perhaps on Hackster.io. The problem with the latter is the extra parts required to create the projects. I live in a semi small city and with no hobby store in the area. Everything has to be ordered on-line and then wait, depending on where it comes from. so, let's get on with it.

 

01.Basics>Blink

 

 

Example>CurieBLE>Central>LED Control

 

The sketch loads into the IDE and with a couple of button clicks, the sketch uploads to the 101, with out any problems. The sketch is setup to blink the LED 13 on and off at a rate of 1 second each. The LED on the board of the 101 blinks. I then played with the sketch changing the HIGH and LOW values to the get the LED to change the rate. Re-uploading the sketch and all of the changes work as expected.

 

Examples>CurieBLE>Central>Peripheral Explorer

Load the example onto the board and and with the assistance of the serial monitor the board located 4 MAC address. These addresses were all know to me and were in the house (good thing).

 

 

Tutorials on arduino.cc

CurieIMUOrientation Visualiser

This tutorial has two IDE’s that it has code written for. Arduino and Processing.

Processing: Could not get the sketch to use the OpenGL window as according to the error message the video driver may need to be update. I’m using Windows 10 on a Dell Inspiron 1525. Any other graphic program still works, so I moved onto the Arduino IDE.

Arduino: The sketch was load up into the 101 without any problems. The serial monitor was opened and the sketch run. Right away the lines of numbers scrolled past in a hurray. The 101 was then moved in a numerous directions to see the numbers change as the direction of the board was taken on all directions.

I like what the board’s potential with the movement can do. Little disappointed with the Processing IDE.

 

CurieIMUAccelerometer

 

This tutorial uses the three axes of the accelerometer contained in the IMU(Inertial Measurement Unit) of the 101.

The Examples>CurrieIMU>Accelerometer sketch was uploaded to the 101. The setAccelerometerRange() was set to 1 and then re-uploaded. The 101 board was then placed into my hand and the a windmill style swing began. The board generated output onto the serial monitor showing the value for a:. From the sketch, it stated the setAcelerometerRange range to 2G. Moving to 1 would be 1G which is not than much.The image below shows some of the output that was received from the 101. I was able to get the first column, ax, into the -2.00+. Depending on the which way, up down, back and forth and anything else I tried, each of the columns, ay and az, also recorded into the high -2.00.

 

CurieIMUAccelerometer Orientation

 

 

CurrieIMUStepCount

The Step Count sketch was loaded and the Arduino placed into the top of my sock with the USB cable still attached. While all connected to the laptop, I took a little stroll around the house. The Serial Monitor began to show the number of steps I was taking. I was impressed with the fact it works as well as any pedometer I’ve used.

 

 

I tried to get the Bluetooth to connect to my laptop, but the laptop never recognized the 101, so I just left the cables all attached and did my strutting.

 

CurrieIMUShockDetect

The tutorial as one of the ones that seemed to really work in a hurray, no pun intended. The upload was seamless. I placed the 101 in a stationary position and with a quick movement the Serial Monitor displayed where the shock detected was either positive or negative. It also showed which axis the positive/negative shock detection was made(Y,Z). The The sketch deals in “g’s” but the output to the Serial Monitor does not show the number of g’s the movement produced. It did not matter which direction the board was moved, it still produced results.

 

CurrieIMUTapDetect

This sketch was loaded and the Arduino 101 place on a flat surface. I first start to table the surface with a pencil. Nothing registered in the Serial Monitor. I then tapped my finger repeatedly on the surface with varying levels of force. Nothing. So I then slapped my hand on the surface with a ver good smack and the Serial Monitor registered a Tap Detection in the Monitor.

void setup() {

  Serial.begin(9600); // initialize Serial communication

  while(!Serial) ;    // wait for serial port to connect.

  // Initialise the IMU

  CurieIMU.begin();

  CurieIMU.attachInterrupt(eventCallback);

  // Increase Accelerometer range to allow detection of stronger taps (< 4g)

  21 CurieIMU.setAccelerometerRange(4);

// Reduce threshold to allow detection of weaker taps (>= 750mg)

 

 

  24 CurieIMU.setDetectionThreshold(CURIE_IMU_TAP, 750); // (750mg)

  // Enable Double-Tap detection

  CurieIMU.interrupts(CURIE_IMU_TAP);

  Serial.println("IMU initialization complete, waiting for events...");}

 

Lines 21 and 24 in my sketch are noted above and were played with to see if I could get the board to recognize a light tap on the surface. I did work and I was able to get a response in the Monitor with a normal drumming of the fingers.

 

 

CurrieIMUZeroMotionDetect

As the name in the title would suggest, Zero Motion Detect. If the board does not move, it detects zero motion and the Serial Monitor reports exactly that. It the board was move in even the slightest bit the movement was reported as the figure below shows. This was sensitive as even the slightest bit of movement changed the output.

 

CurrieTime

Ran the sketch and it produced the time that was written in the sketch. The Serial Monitor turned into a digital clock of sorts.

 

CurieBLEHeartRateMonitor

I ordered a low cost Heart Rate Pulse Sensor Module For Arduino. One of the problems living where I do, there are no hobby stores, no maker stores, no small electronic stores

 

 

and no stores to purchase add-ons for anything when you want it in a hurry. So I dialled up Amazon and ordered one of the pulse sensors back in August. Today, October the 10th, the module arrived.

Using the tutorial from the arduino.cc site, I placed the sketch into the IDE and attached one end of the monitor to the Ardunio 101 (A0, Gnd, 3.3v). The other end was placed on my finger and secured with a Velcro strap. The sketch was uploaded to the 101.

 

 

 

The second part of the tutorial is to use an app on a smart phone connected via the BLE on the Arduino 101. Images noted above. The app used for this tutorial is the nRF Toolbox which was loaded onto my Blackberry Passport. The app provides 11 different applications which uses the Bluetooth connection to interact with different device. Noticed there were errors loading the sketch if the Serial Monitor is left open between sketch uploads.

 

Conclusion

Wrapping this up and it did seem like a long time to get here. As you can see by the date on the report, it was started on June 28, then life and work got in the way as many of you can all attest to.  I waited 10 weeks for a heart monitor to arrive in the mail, but that was my fault, waiting.The Arduino 101 looks like its counterpart, the Uno in size and shape. But this is where where the similarities stop. Different processors and one has the ability to connect via Bluetooth.

The 101 gave me a lot of troubles getting connected to a computer, never mind connecting via Bluetooth. It took me a couple of weeks just to figure out which Operating System the board was going to work properly with. Not sure what I would have done if I didn’t have all 3 operating systems in the house.

Once up and running, the board performed as expected in all of the tutorials I tested it in. I was most impressed with the Bluetooth connectivity and the things that could be accomplished with the board, and app and the computer. Using the gyroscope, the accelerometer and the motion detector. I can see lots of uses for this type of hardware, especially if it is paired using the on-board Bluetooth.

I’m going to continue to see if I can get the other OS’ to work with the board. Perhaps it was the version of the Arduino IDE, i’m hoping. It has its quirks, like the “Master Rest” button which needed to be pressed each time I uploaded a sketch to the board. The Uno is plug, click and play, which I was hoping to find for the 101.

The on-line forum at Arduino were not very kind to the board and the Intel chip. Not enough love was being provided to board/chip and now Intel has decided to stop support for the Curie.

I would encourage all of you who are interested to give this board a go. I believe the 101is less expensive than a Pi or some of the other Arduinos. The purchase will be worth it and even if you just play around with the Bluetooth and the motion aspects of the board.

 

Scott Milliken

Anonymous