element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Intel
  • Products
  • Manufacturers
  • Intel
  • More
  • Cancel
Intel
Blog Off-RoadTest: Genuino 101 (and a first project)
  • Blog
  • Forum
  • Documents
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Intel to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: Gough Lui
  • Date Created: 8 Jul 2016 11:22 AM Date Created
  • Views 2441 views
  • Likes 9 likes
  • Comments 14 comments
  • bluetooth
  • arduino 101
  • gyroscrope
  • genuino
  • genuino 101
  • intel quark
  • intel curie
  • accelerometer
  • curie
  • bluetooth 4.0
  • bluetooth low energy
  • arduino
Related
Recommended

Off-RoadTest: Genuino 101 (and a first project)

Gough Lui
Gough Lui
8 Jul 2016

It's not often it happens, but a little while back, I had a package arrive for me thanks to element14, with a little treat for me inside.

image

Unboxing

As you would have guessed from the title - it was a Genuino 101, one of Arduino/Genuino's latest offerings. It came a little squashed, but otherwise internally unscathed.

imageimageimage

image

image

For those who haven't realized, the Arduino name has been the subject of a dispute. As a result, within the USA, products are known as Arduino, whereas outside the USA, they are branded Genuino. Aside from this, the products are functionally identical.

 

The Genuino 101 is a bit of an odd board - for one thing, it eschews the Arduino's traditionally ATMEL AVR roots for an Intel Curie SoC, containing an ARC and a Quark (x86) core running at 32Mhz. This runs an RTOS and the load is shared between cores autonomously as decided by the compiler at build time. The same layout as the Uno is retained with the same I/O pins, but the I/O is 3.3V natively but 5V tolerant, and the board incorporates a much more hefty USB power supply regulation scheme. The core also brings an Inertial Measurement Unit (IMU) with Accelerometer and Gyroscope, as well as an integrated Bluetooth Low-Energy radio and printed antenna for wireless communication. In many ways, it's a very powerful package, and supposedly costs just about the same as the original Uno while consuming similar or less power. Some consider this a sensor-packed replacement for the original Uno, which is big praise. I suppose this might be part of Intel's strategy to crack the IoT market, given that their attempt at the mobile sector hasn't gone too well.

 

image

Inside, there is a little leaflet and the board in an ESD shielding bag. No more stickers, unfortunately, but I'm not complaining. Who needs them anyway?

image

From the top, we can see the board is physically different from many older Arduinos. First of all, it has a deep-blue solder resist layer and a PCB substrate that's opaque and sort of "paper type" as you normally find in high voltage power supply PCBs. There is a clearing on the corner of the solder resist and power planes, for the BLE antenna as well. The full schematics are shown here. The board has sky-blue coloured push buttons for reset and master reset (connected directly to SoC), and line drivers on all I/O pins that give it the 5V tolerance. The power regulation side of things has been improved too with an FPF2496 OCP load switch with adjustable current limit replacing the simpler polyfuse protection on the older board. With the configuration pads, the board can be set to deliver up to 1.5A from USB making powering hefty 5V peripherals from the board a possibility. It seems the switch itself might be a small bare-die type mounted on the board just near the USB connector, so maybe it's affected by photographic flashes similarly to the Raspberry Pi was in the past (but I didn't test). Another difference is the pin next to IOREF which was unused in the old Uno is labelled ATN, and is connected to UART1_CTS through the level conversion. This is a flow-control pin for the UART, but I'm guessing it can probably be addressed as an I/O as well. Pins retain a 20mA drive capability, which is good, as most more advanced microcontrollers typically have very small drive currents making simple prototyping difficult. Four PWM pins, and six 10-bit ADC channels are retained as well, and the UART is also available, not shared with USB communications. Arduino claims the unit to have 196kB shared flash between the two cores that can be used by the user, along with 24kB SRAM.

image

The board retains its full-size USB B connector, and a barrel jack input where the Uno had it. It's rather old fashioned, but at least it's robust and compatible.

image

 

One key point of difference seems to be that this unit is Designed and Assembled in the USA rather than the Made in Italy of the "real" Arduino boards. As a result, I'd have to say that the build quality is slightly disappointing. There is quite a bit of residue on the underside of the board, but more importantly, the header socket alignments are pretty poor making plugging in shields a little difficult on first try, requiring careful manipulation to get it in.

image

The SoC itself proved fascinating as well, as it seems to have a plastic package on an interposer of sorts, and this is BGA soldered to the board with a strange pattern that makes it look like it's on stilts.

 

Plugging In

Getting started with the Genuino 101 takes a little more work compared to the Uno. The first prerequisite is to have Arduino 1.6.7 or later installed. Just plugging the board in will bring you no joy though ...

image

The reason is that this board needs very specific drivers. As a result, you have to fire up Arduino and go to the Boards Manager, where you need to download the specific "core" to support this board. A warning, the download of the Intel Curie core is about the same size as Arduino IDE itself, so you're probably going to use up about 400Mb getting the IDE and the support package.

imageimage

Once it has been downloaded, the package will run its installation and install its drivers.

imageimage

From there, you can use the IDE as per usual, with Arduino/Genuino 101 selected as the board type and with its corresponding COM port. To access the Curie specific features, you should reference the library pages on Curie Timer One, Curie IMU and Curie BLE. For someone like myself who has never developed with the Curie before, or with Arduino for a while, it was a lot to process, and I found it easier to leaf-through the example code instead of going through the library reference.

image

From the IDE, you can also read board info. Arduino mentioned a facility to update the firmware on the board, although I couldn't find it. No matter, since I tried to load a few "simple" Uno programs just to check if they worked.

image

One frustration that I had encountered was a very slow build and load process, and partly it seems, due to issues with the way the download script attempts to reset the board. On my machine, it's very hit-and-miss with a 20% "first time" success rate. However, if you follow and press the MASTER_RESET when instructed, it loads fine. To make things quicker, I note that it often hangs at the "Uploading" prompt - pressing MASTER_RESET right then actually will allow the download script to start and load the program first time.

image

Another problem I came across was a stuck non-functioning serial monitor, which makes debugging frustrating. What I seemed to find was that even when using Hyperterminal, the serial port just hangs on opening a lot of the time. But after a few plug/unplug cycles, you can get it to open and print as expected, but after that, it gets stuck again once the board is reset. I don't know what the cause is, but it makes frustrating work of the emulated Serial connection.

 

First Project

I suppose I better put the board to work. A long time ago, I was supposed to build some IoT light-based thing in another off-RoadTest using the Arduno Yun. Unfortunately, I never got the time to do it because I was too busy finishing my PhD, and the Infineon Shield didn't fit onto the Yun due to the Ethernet connector, and the Yun had a strange "Bridge" class to co-ordinate control between Wi-Fi SoC and the MCU. In all, it was a lot of time investment needed which I didn't have at the time, and the parts have been sitting on my desk making me feel guilty.

 

So instead of letting the Infineon shield sit, I decided to employ it with the 101 instead for a BLE controlled solution. This would not need the Yun (which I might find a purpose for later - it's expensive, complex and really capable) at all. Because the 101 is 5V "tolerant" and the I2C communication is all about "pulling down to ground" anyway, I had confidence that this would be a "snap and go" solution, provided the board actually fit. I ported my old code and borrowed library across, and made the necessary modifications. These included de-optimizing the LED ripple to reduce annoying acoustic noise, and the inclusion of the CurieBLE library, specifically characteristics to control power ON/OFF, R/G/B channel value, random mode, random cycle time and dimming level. As all characteristics are typed, I chose Int to ensure enough range (need 12-bits). Unfortunately, despite the documentation for BLEBoolCharacteristic type, I couldn't make it work as it wouldn't recognize or compile. The handler changes the necessary parameters when an update is received, and the main loop polls for updates, and changes the colour for random. The code is very basic, relatively ugly, but it seems to work and is attached.

 

image

Once compiled, the code consumes 22% of storage, the majority is BLE related. This shows there's really a lot more that the unit can do - maybe in future, I'll make it a light that responds to vibrations sensed on the floor.

image

On my phone, I use an app called BLE Scanner to look for and talk to the board, as I am no app developer and really have no time to learn to write a BLE application. The board is easily found, and tapping on connect allows me to view the device services and characteristics. As implemented, I haven't put any security in, although it could be as simple as having a characteristic used as a "PIN" or "security" and if that isn't written with the appropriate value, all requests are ignored.

imageimage

The labels are relatively cryptic UUIDs which are difficult to memorize, but ultimately, it's in order Power status, red, green, blue channel values, random mode toggle, random mode time, and dimming level. To actually change the values, one has to click on the W button, change type to Byte Array, and then enter the value LSB to MSB.

image

Because the shield accepts values up to 4095 for each channel, corresponding to 12-bits, the maximum value is 0xFFF. To send this to the board, we need to type in FF (lsb) followed by 0F (msb). Likewise, if we want to set value 0x123, then we need to send 2301 as the byte array. It's a little confusing until I realized there was this endianness mismatch, but once you realize this, it works just fine.

image

Once desktop prototyping was completed, I chucked the stack of boards into the lid of an old Raspberry Pi 1 case, taped it in there, used a barrel jack lead to hook it up to the same 12v supply powering the LED shield, and then sat the LED heatsink on top of the contraption with a paper cone for diffusing. It's not that pretty but it works very well and gives me nice and deep colours (due to the LEDs chosen) at the command from my smartphone (after going through BLE Scanner). I noticed that the heatsink I had was already sufficient, so I ditched the fan from my earlier experiments with no negative consequences.

image

 

Conclusion

The Genuino 101 is quite a unique board, owing to the use of an Intel Curie SoC. It brings an IMU with Accelerometer and Gyroscope, along with Bluetooth Low-Energy radio as the stand-out features of the board, and uses a dual-core ARC + Quark (x86) design clocked at 32Mhz. This, in theory, makes it look like a much more capable board for a similar price, and similar power envelope and should make it a hit. However, because it has 3.3V I/O, that is 5V tolerant, it may not work as a drop-in replacement for older shields as some pins used were Uno-specific. It also might not run some of the libraries which you might be using, which may be "hardware specific". Of course, with a soldered down SoC, there's no real room for mistakes either, as you can't just pull out the chip and plug another one in. However, it's still a good deal cheaper than many alternatives, and does give you some more toys to play with. This may be a true successor to the Uno in a way the Leonardo just didn't quite achieve.

 

It's not quite flawless, and it's still got some "teething" frustrations as with new generation products. Slow project build and load times were experienced, with loading not very reliable without human intervention. The biggest issue was a non-responsive serial monitor that could be coaxed to work with a lot of effort, but not reliably. I suspect that might be fixed in later versions of firmware or IDE, but they weren't entirely show-stopping.

 

If this interests you, and you have some time to do a full test of the unit, why not apply for the upcoming Genuino 101 RoadTest where there are 10 being given away. Otherwise, you can always purchase one from your "regular" electronics retailer - I hear they sell for roughly the same price as an old Uno does, so if you're interested in having an accelerometer/gyroscope, or having Bluetooth Low-Energy, then it could be the thing you need and it won't break an arm or a leg.

Attachments:
Infineon-101-BLE.zip
  • Sign in to reply

Top Comments

  • Gough Lui
    Gough Lui over 9 years ago +2
    clem57 - yes, that's some attention to detail you've got there . I'll start letting everyone know about ESD sensitive devices and workbenches - it's the "cool" thing . - Gough
  • clem57
    clem57 over 9 years ago +1
    Did you overlook your sticker? I see one called "Attention"
  • mconners
    mconners over 9 years ago +1
    Nice review, thanks. Mike
  • mcb1
    mcb1 over 9 years ago in reply to clem57

    When I reboot, the mouse does not work on the same port

    Have you set it to drop the power on the USB.

     

    We have the same thing here where some USB equipment was connected and they forgot to drop power.

    Hence a reboot didn't work but a repower the box did.

     

    Mark

     

    PS I'm not a Linux expert so this theory may be rubbish .... image

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • clem57
    clem57 over 9 years ago in reply to mcb1

    It is not only a Windows problem. I have Linux with a mouse USB of course. When I reboot, the mouse does not work on the same port. When I replug to new port it works. I have also rebooted a second time and no moving works fine on second boot. Go figure. BTW, it is an IBM mouse.

    Clem

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mcb1
    mcb1 over 9 years ago in reply to Gough Lui

    I simply go into the device Manager and re-assign the port to a lower number ie 4,5 or 6.

     

     

    I suspect it might be Java that throws it's hands in the air, but I don't have evidence and it's a simple mans theory.  image

    I've had issues with com ports on Window 8 locking themselves out.

    If you plug it the same device and cable into another USB port and tell the IDE that it's there, it comes alive again, but disconnecting and reconnecting in the same port doesn't work.

    If you restart the IDE it responds, so it might be a port locking thing within windows.

    I haven't experimented with lower version of the IDE (I still like 023) and haven't seen the same issue under Windows 7.

     

    The driver install is more related to how windows does it's thing.

    Unless it can find the information online, windows seems to get annoyed and then flags it for ignoring each time its inserted.

    If you plug it in, then go into the devices and tell it to install a new driver and select what hardware and where the driver is, it seems to be happy, and will install properly.

    We've resorted to this sometimes because the Laptops didn't have internet access.

     

    I've decided that it's the weird way windows handles the com port ... unless it can find evidence using the PID/VID online, it assumes it is a modem, and if it can't talk to it as a modem it then gets annoyed and defaults to a setting that may not work.

    When you manually tell it that its a comm port, it suddenly behaves and then recognises the VID/PID and installs the driver.

     

    Hope this helps.

     

    Mark

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Gough Lui
    Gough Lui over 9 years ago in reply to mcb1

    Rather interesting you mentioned the same COM number designation on your machine. Maybe I need to double check, because of all the board attaching/dis-attaching that goes on around here, it may indeed be some sort of low-level COM port number sharing issue even though the other driver theoretically shouldn't be active since no other board is actively plugged in with that COM number. Or maybe they have issues ... with their Intel signed drivers ... who knows?

     

    The one reason I didn't replace the drivers is that I assumed it might one-day interfere with their DFU "switchover" for firmware upgrades. Now that I mention that, I suspect the IDE silently upgraded the firmware the first time I loaded my project onto the board, because it re-enumerated as DFU mode, but subsequently, was just a regular COM port by name. If that is the case, it was very quick ... but also a potential "brick" point if some unsuspecting person thought it wasn't working properly and hit the Master Reset during a flash. That Winbond chip next to the SoC looks like the flash, and it's nicely soldered down, so the least you'll need is in-circuit programming clips and a programmer.

     

    Whatever the problem is, I really hope they get it smoothed out in time, because otherwise "newcomers" might feel a little frustrated to chase down simple things which they assumed "should work", and rightfully so. The one reason I've loved the original AVR-based Unos for so long was because they were very bulletproof and very predictable. The Leonardo's integrated USB was not too massive of a change, but that bought with it a few IDE versions where tone and delay functions were mucked up because of a difference in timer allocations, and new USB behaviour due to the integrated virtual Serial, leading to hangs if you wrote too quickly to the port, the fact sketches won't wait for the port to open to run/reset (necessitating if(!Serial){}), and the differences in SPI/I2C pin allocations on the traditional pin numbers. This was enough to turn people off despite the simpler, cleaner, and slightly cheaper design. It's found its calling in "mini" one-chip style sticks, and because of its direct USB, has abilities to do keyboard/mouse USB HID emulation which the Uno couldn't but I think the Arduino guys may have hoped for more. I was fighting with this during my PhD, when I had demo code written for a Uno that just wouldn't work on the Leonardo leading to a whole lot of time spent working out why.

     

    - Gough

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • mcb1
    mcb1 over 9 years ago

    It's great that they have retained backwards compatibility, along with the 5v tolerance.

     

    I've had issues with the Com port on later versions of Windows, and found it easier to go into devices and then tell it that its a serial port.

    I also see it registered as Com55 and I wonder if that played a part in the hanging issues.

     

    I might need to add one of these into the collection ... they look rather useful.

     

    Mark

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
<>
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube