SeeedStudio’s Clio board

A couple of weeks ago, SeeedStudio did one of their give-aways. This time, it was their Clio Arduino board. They gave me this board, because I referred to one of my previous projects: The getting started with electronics – a traffic light. This was a small project I did with my niece on an afternoon. She’s quite into technology, but without a basic set of equipment, it’s hard to work on it at home. This convinced the people at Seeed to send a Clio board to me (so I could give it to my niece)! Thanks again!

Here’s my experience with the board…

When you see the box, it really looks neat. Great colors, great form factor, awesome to give. Once unpacked, you find the actual board, and a couple of headers that still have to be soldered on the board before you can get started (unless you’re only doing sewable electronics).

There are 4 standard Arduino headers, as well as two 3-pin headers that are for the standard in circuit programming connector. You can leave the latter unconnected if you don’t plan on changing the bootloader.

There was one detail that couldn’t escape my eye: two components on the board were hand-soldered after the components went through the reflow oven. One of them was the battery holder, the other (seen on the picture below) was the micro USB connector. The manual process caused some flux residue to be present around those components, which is somewhat of a shame if you have such a nice board. I took my bottle of isopropylalcohol, and rubbed the residue away. This makes the board look really really nice! After soldering the headers onto the board, you could clean the leftovers their too.

This board is a clone of an Arduino Leonardo, which is the first arduino that does NOT have a dedicated chip for USB. The first generation had an FTDI chip, later came the ones that used an attiny8 for all USB magic. This one uses an Atmega that has USB built in. This fact, however, has some consequences… To get the board running, you’ll have to get the Arduino development environment from the website. After downloading and installing the files, you’re ready to plug in your Clio board.

After plugging a fresh Clio unit in, Windows (yeah, I’ll do the explanation for Windows. MacOS and Linux should work like a breeze out of the box), it will most probably tell you that it can’t find any drivers. If you have put some other program on this board, chances are that your other computer will probably recognise the board as an Arduino Leonardo. But you’ll get into problems later on.

In any case (whether it IS installed, or whether it isn’t), you’ll have to go to your device manager window. Look for the Clio USB device (it will show up as unknown, or under Serial devices), and right click it. If it was installed already, click ‘Remove Driver’ and confirm. After that (or if it wasn’t installed), click on Update driver.

Now, get yourself a windows explorere window, and look for the place where the Arduino files are you installed (maybe you downloaded it as a zip, in that case you’ll know where you put it, otherwise it should be in C:/Program Files(x86)/Arduino. Step into the Driver folder, and you’ll see a .inf file. This is the ‘driver’ (big word for just some configuration parameters) for the virtual COM port in Windows. Because the official Arduino Leonardo has a different USB manufacturere and product ID, we are going to have to update this file a littlebit.

Open the arduino.inf file in notepad, and simply replace the contents with these:

; Copyright 2012 Blacklabel Development, Inc.

[Strings]
DriverPackageDisplayName="Arduino Boards"
ManufacturerName="Arduino LLC (www.arduino.cc)"
ServiceName="USB RS-232 Emulation Driver"
due.bossa.name="Bossa Program Port"
due.programming_port.name="Arduino Due Programming Port"
due.sketch.name="Arduino Due"
esplora.bootloader.name="Arduino Esplora bootloader"
esplora.sketch.name="Arduino Esplora"
leonardo.bootloader.name="Arduino Leonardo bootloader"
leonardo.sketch.name="Arduino Leonardo"
clio.bootloader.name="Seeeduino Cli0 bootloader"
clio.sketch.name="Seeeduino Cli0"
lilypadUSB.bootloader.name="Arduino LilyPad USB bootloader"
lilypadUSB.sketch.name="Arduino LilyPad USB"
mega2560rev3.name="Arduino Mega 2560"
megaADK.name="Arduino Mega ADK"
megaADKrev3.name="Arduino Mega ADK"
micro.bootloader.name="Arduino Micro bootloader"
micro.sketch.name="Arduino Micro"
uno.name="Arduino Uno"
unoR3.name="Arduino Uno"
usbserial.name="Arduino USB Serial Light Adapter"

[DefaultInstall]
CopyINF=arduino.inf

[Version]
Class=Ports
ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318}
Signature="$Windows NT$"
Provider=%ManufacturerName%
DriverPackageDisplayName=%DriverPackageDisplayName%
CatalogFile=arduino.cat
DriverVer=01/01/2013,1.0.0.0

[Manufacturer]
%ManufacturerName%=DeviceList, NTamd64, NTia64

[DestinationDirs]
FakeModemCopyFileSection=12
DefaultDestDir=12

[DeviceList]
%due.bossa.name%=DriverInstall, USB\VID_03EB&PID_6124
%due.programming_port.name%=DriverInstall, USB\VID_2341&PID_003D
%due.sketch.name%=DriverInstall, USB\VID_2341&PID_003E&MI_00
%esplora.bootloader.name%=DriverInstall, USB\VID_2341&PID_003C
%esplora.sketch.name%=DriverInstall, USB\VID_2341&PID_803C&MI_00
%leonardo.bootloader.name%=DriverInstall, USB\VID_2341&PID_0036
%leonardo.sketch.name%=DriverInstall, USB\VID_2341&PID_8036&MI_00
%clio.bootloader.name%=DriverInstall, USB\VID_2886&PID_0001
%clio.sketch.name%=DriverInstall, USB\VID_2886&PID_8001&MI_00
%lilypadUSB.bootloader.name%=DriverInstall, USB\VID_1B4F&PID_9207
%lilypadUSB.sketch.name%=DriverInstall, USB\VID_1B4F&PID_9208&MI_00
%mega2560rev3.name%=DriverInstall, USB\VID_2341&PID_0042
%mega2560.name%=DriverInstall, USB\VID_2341&PID_0010
%megaADK.name%=DriverInstall, USB\VID_2341&PID_003F
%megaADKrev3.name%=DriverInstall, USB\VID_2341&PID_0044
%micro.bootloader.name%=DriverInstall, USB\VID_2341&PID_0037
%micro.sketch.name%=DriverInstall, USB\VID_2341&PID_8037&MI_00
%uno.name%=DriverInstall, USB\VID_2341&PID_0001
%unoR3.name%=DriverInstall, USB\VID_2341&PID_0043
%usbserial.name%=DriverInstall, USB\VID_2341&PID_003B

[DeviceList.NTamd64]
%due.bossa.name%=DriverInstall, USB\VID_03EB&PID_6124
%due.programming_port.name%=DriverInstall, USB\VID_2341&PID_003D
%due.sketch.name%=DriverInstall, USB\VID_2341&PID_003E&MI_00
%esplora.bootloader.name%=DriverInstall, USB\VID_2341&PID_003C
%esplora.sketch.name%=DriverInstall, USB\VID_2341&PID_803C&MI_00
%leonardo.bootloader.name%=DriverInstall, USB\VID_2341&PID_0036
%leonardo.sketch.name%=DriverInstall, USB\VID_2341&PID_8036&MI_00
%clio.bootloader.name%=DriverInstall, USB\VID_2886&PID_0001
%clio.sketch.name%=DriverInstall, USB\VID_2886&PID_8001&MI_00
%lilypadUSB.bootloader.name%=DriverInstall, USB\VID_1B4F&PID_9207
%lilypadUSB.sketch.name%=DriverInstall, USB\VID_1B4F&PID_9208&MI_00
%mega2560rev3.name%=DriverInstall, USB\VID_2341&PID_0042
%mega2560.name%=DriverInstall, USB\VID_2341&PID_0010
%megaADK.name%=DriverInstall, USB\VID_2341&PID_003F
%megaADKrev3.name%=DriverInstall, USB\VID_2341&PID_0044
%micro.bootloader.name%=DriverInstall, USB\VID_2341&PID_0037
%micro.sketch.name%=DriverInstall, USB\VID_2341&PID_8037&MI_00
%uno.name%=DriverInstall, USB\VID_2341&PID_0001
%unoR3.name%=DriverInstall, USB\VID_2341&PID_0043
%usbserial.name%=DriverInstall, USB\VID_2341&PID_003B

[DeviceList.NTia64]
%esplora.bootloader.name%=DriverInstall, USB\VID_2341&PID_003C
%esplora.sketch.name%=DriverInstall, USB\VID_2341&PID_803C&MI_00
%leonardo.bootloader.name%=DriverInstall, USB\VID_2341&PID_0036
%leonardo.sketch.name%=DriverInstall, USB\VID_2341&PID_8036&MI_00
%clio.bootloader.name%=DriverInstall, USB\VID_2886&PID_0001
%clio.sketch.name%=DriverInstall, USB\VID_2886&PID_8001&MI_00
%lilypadUSB.bootloader.name%=DriverInstall, USB\VID_1B4F&PID_9207
%lilypadUSB.sketch.name%=DriverInstall, USB\VID_1B4F&PID_9208&MI_00
%mega2560rev3.name%=DriverInstall, USB\VID_2341&PID_0042
%mega2560.name%=DriverInstall, USB\VID_2341&PID_0010
%megaADK.name%=DriverInstall, USB\VID_2341&PID_003F
%megaADKrev3.name%=DriverInstall, USB\VID_2341&PID_0044
%micro.bootloader.name%=DriverInstall, USB\VID_2341&PID_0037
%micro.sketch.name%=DriverInstall, USB\VID_2341&PID_8037&MI_00
%uno.name%=DriverInstall, USB\VID_2341&PID_0001
%unoR3.name%=DriverInstall, USB\VID_2341&PID_0043
%usbserial.name%=DriverInstall, USB\VID_2341&PID_003B

[DriverInstall]
include=mdmcpq.inf,usb.inf
CopyFiles = FakeModemCopyFileSection
AddReg=DriverAddReg

[DriverAddReg]
HKR,,DevLoader,,*ntkern
HKR,,NTMPDriver,,usbser.sys
HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider"

[DriverInstall.Services]
include=mdmcpq.inf
AddService=usbser, 0x00000002, DriverService

[DriverService]
DisplayName=%ServiceName%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%12%\usbser.sys
LoadOrderGroup=Base

Simply save the file, and we’re ready to continue! Go back to your windows device manager window, and make sure you go into the “Update Driver” dialog. Select the location manually, and find the arduino driver folder. Click Install, and your board will be ready for use.

After this small detour, we can return to normal operations! Open up your arduino window, pick an example (the Blink one is perfect). Go into the extra menu, select your board as an “Arduino Leonardo”, check the COM ports underneath, and find the one that should be your Clio board. Click the arrow button, and if all is right, the program should be on the board.

Small things to know:

  • The board automatically resets into bootloader mode when you program it from the PC. You should see one of the eyes starting to fade reasonably quick. During this period, you should see the red RX/TX LEDs flicker multiple times. Afterwards, it should restart into normal operation. If it does not, please double check your driver installation!
  • The LED eyes are connected to pin 11 and pin 13
  • Serial communication on the Arduino Leonardo is a little strange. They have examples that are specially made for this board, containing something like while(serial) at the start. Somehow, this didn’t work for me. So I removed that line. Not sure what is going on there…. Another Serial fact: the Serial class works only for the serial that goes over the USB line. They have added another Serial2 class, which works on RX and TX connected to pin 0 and 1.

Today I got the chance to hand this board over to my niece, together with a starter kit I composed. Here’s what’s in it:

  • Breadboard (ebay < €1)
  • Breadboard wires (ebay)
  • crocodile cable
  • some resistors (180 ohm and 10k)
  • some LEDs
  • some transistors
  • some diodes
  • some capacitors
  • and LDR
  • a 10k potentiometer
  • a buzzer
  • a servo motor
  • a micro usb cable (not included with the Clio board!)

With all of these things in place, we got to soldering the headers on the board and afterwards the first lessons in programming an Arduino board. It was a fun afternoon! Thanks again Seeedstudio for this gift!

Share this post
Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe now
Name
Email *