8devices Carambola

Carambola

Lithuanian company 8devices has come up with the Carambola, a small circuit board (35 x 45mm) with a 320MHz processor, some memory and a built-in Wi-Fi connectivity. It runs on a flavour of Linux: OpenWrt. Now you might think this sounds a lot like an underpowered computer, but actually it is more like a supercharged Arduino. Let me explain…

Intro

I am currently working on the design of an internet-enabled linear clock that connects to your online calendar: Stripe. The clock requires electronics that keep track of time, connect to the internet and process the input (buttons etc.) and output (clock face, in this case LEDs). The Stripe prototype uses the Carambola as its main electronics. In this blog post I will explain what Carambola is and how it compares to a very popular embedded platform: the Arduino.

Arduino

Anyone who has worked with interactive electronics over the past few years has undoubtedly heard of the Arduino:
Arduino Duemilanove
It’s a circuit board that allows you to easily create interactive prototypes with buttons, sensors, LEDs, motors and much more. It connects to your computer using a USB cable, allowing you to program it using an easy-to-install application. The Atmel microcontroller chip on the board is programmed in the C/C++ programming language with some extensions to make it practical to use by people who don’t have much programming experience. The Arduino hardware and software are both released under an open source license, having led to a huge number of code libraries, hardware add-ons (called ‘shields’), cheap Arduino clones and tons of tutorials.

Arduino shields
Several stacked Arduino shields by John Boxall

At Nut & Bolt, I often use the Arduino to get something working quickly. Often I end up using an Atmel microcontroller and the Arduino software in the final product just because there are so many example projects and libraries available for the Arduino. When you want to hook things up to the internet, however, the Arduino starts showing its weakness.

Internet of Things

Interesting things can happen when physical objects are hooked up to the internet. In the future, many of the objects that surround us will be networked – the Internet of Things. For the Internet of Things to happen, we need electronics that allow us to easily connect physical objects to digital data.

Carambola

8devices have designed Carambola as a platform that allows people to create devices for the Internet of Things. Like the Arduino, it can digitally communicate with sensors and actuators. But unlike the Arduino, it has extensive networking capabilities and a powerful Linux software stack.

Carambola and development board
Carambola on the optional development board

Hardware

First some specifications:

  • Dimensions: 35 x 45 x 12 mm
  • Interfaces: 2x100Mbit/s LAN, 2x 3.3V Serial interface, I2C, SPI, USB and GPIO
  • Wi-Fi 802.11n with built-in antenna
  • System-on-chip: 320MHz
  • 8MB flash, 32MB RAM
  • Supply voltage: 3.3V
  • Price: € 22

The cheerful yellow pcb houses some truly tiny components to keep the overall size small. The heart of Carambola is a Ralink 320MHz System-on-chip. It’s a chip that is often found in routers which immediately explains the network capabilities. Compared to Arduino’s 16MHz processor, the 320MHz Ralink chip should be able to deal with complex calculations a lot faster. Flash memory and RAM should be large enough for most applications.

Pins, inputs and outputs

In contrast to the Arduino, Carambola cannot deal with 5V input levels and doesn’t have any analog inputs. It does make up for that with two serial interfaces, USB host capability and networking. The pins on Carambola are spaced 2mm apart. If you want to use Carambola in a bread board, you need a special adapter (which isn’t available as of writing). This is not an issue if you use the supplied development board or design a circuit board yourself.

The development board provides 5V and 3.3V power, two ethernet ports, a USB host/slave port and an (almost vintage) RS-232 serial port.

Software

Carambola runs a flavor of Linux called OpenWrt. Like the main chip, this Linux distribution is mainly targeted at routers. It’s a popular open source Linux distribution with a nice wiki and an active community.

When booting up Carambola and connecting to it via a serial connection or over the network you are greeted with a cocktail recipe:
OpenWrt Attitude Adjustment
Using a package manager called ‘opkg’ you can install applications and drivers, much like a simple version of the App Store or Android Market. The selection of Carambola-specific applications is still quite small but I guess this will grow as more developers hop on board.

Applications for Carambola can be programmed in any programming language that has a compiler for the platform. Also, as opposed to the Arduino, it is possible to program using a scripting language like Lua or Python. This means you can change your program without having to recompile or reflash the firmware. Being based on Linux, you can use all the built-in commands and niceties: you can show elaborate debug messages, have more than one thing happen at the same time and use cron for scheduling things to happen at a certain time.

More Carambola to come

In this post I’ve given you an overview of the capabilities of a Linux-based internet-connectable platform in comparison with a simpler system like the Arduino. As the design of Stripe progresses further, I will go more in-depth on various aspects of the Carambola and designing for the Internet of Things. So please check back soon, share and leave comments below!

10 Responses to “8devices Carambola”

  1. David

    Thanks Saulius. And thank you guys at 8devices for a nice platform. I’m liking it a lot so far.

  2. Carl

    I saw this on dangerous prototypes and was tempted. Implementing embedded wifi, seems to be painful. Keep us updated on your progress!

  3. David

    It’s actually not that painful. The OpenWrt distribution does most of the heavy lifting: configuring the network, connecting to the internet. You have to know your Linux basics though – nothing that a short tutorial can’t teach you.

  4. Cledic

    Hallo David, did you know if there is a driver for the SPI. I need this interrare at high rate, lice 20Mhz. TIA. Clemente

  5. Kasper

    Nice information. Very interesting device. Keep up the nice posts, very interesting read.

  6. Emmerich

    I am looking forward to hear more. I am also experimenting with Carambola however, I am facing a few issues and find it hard to get connected with more experienced developers for help. Any recommendations from your side will be much appreciated.

  7. Bill Ray

    Good information!! Thank you for the time and effort.

Leave a Reply