First impressions of the carambola 2

What is a Carambola 2

The Carambola 2 is a wireless module based on a Qualcomm/Atheros AR9331 SoC and is build by 8devices a company from Vilnius, Lithuania. They are specialized in small wireless devices for a small budget but with enormous connectivity and flexibility.


  • AR9331, 400MHZ
  • Flash: 16Mb
  • RAM: 64Mb DDR2
  • 2.4 GHz
Max output power
  • 21 dBm
Wireless standard
  • 802.11 bgn
Antenna (port)
  • U.FL connector
Power supply
  • 3.3V
  • Consumption: 0.5W
  • USB (host / slave)
  • serial port
  • 2x ethernet
  • i2S
  • SLIC
  • 23x GPIO
  • 28 x 38mm
Operating system
  • OpenWrt

More information can be found on the homepage of 8devices/carambola-2.

Why did i buy a carambola 2?

Normally this question has no direct answer for me. I own more than a dozen SoC / micro-controller boards. There are all kinds of Raspberry Pis (Type A, B, B+ etc.), a BananaPi and a hand full of  Arduino based controller. Most of them are stored in a shelve beside my desk and are awaiting there final mission. Some others got used for home-automation and my connected media-system. I will write more about their applications later on this blog.

The carambola 2 instead was bought with a final destination to be used for. It will be the heart of a multi-copter controlling unit. If everything works as expected i will be able to control all kind of drones with this device (… plus a few radio connectors) and only a tablet or smartphone. I can’t tell all information by now, but there will be more here soon.


It took the package about two weeks to be delivered from Lithuania and cost me about 40€. Because of Lithuania also being part of the european union there were no problems with customs and a delivery to Germany. As you might see on the pictures, i decided to not only buy the carambola 2 but also the developers-board. It is a lot more handy to test and develop with this extension board as to solder all of my connectors directly to the SoC. The final device won’t be build on the developers board because it has to much interfaces and is way to large. The unboxing itself was very unspectacular, the package only contains the board and a small merchandize puzzle which you can see on the top left corner of the picture.

Unboxing the Carambola 2

Unboxing the Carambola 2

Getting started

Wiring the carambola2

To work with the board you have to connect at least to wires. The mini-USB interface to power it up and a network cable to get a connection. You have to use the first ethernet interface to use the device as a router and obtain an ip-address for your computer via dhcp (it is the one on the right side if you place it on the desk, the USB-ports looking towards you). If you would like to use the carambola 2 as a client in your current network, use the left ethernet interface. It is configured by default to obtain an ip-address from your home router. You have to get the assigned address from your router network overview page.

Wired carambola2

Wired carambola2

First boot of OpenWrt

After connecting the mini-USB cable to a free port on your computer or a stand-alone power-unit it will take only a few seconds to boot the device. To access the configuration of OpenWrt you can user several methods. By default the username is root and the password is admin. The default ip-address of the carambola 2 is It can be changed afterwards at the configuration interface or if you build the kernel by yourself during menuconfig.

LuCi browser interface

Open up the following Url in your preferred Browser.

Connect via ssh

OpenWrt ssh

OpenWrt via ssh


Build your first firmware on OSX

This part is not necessary if you do not need any special kernel configuration or packages. But i will  show you how to compile your own image just in case you will need it for later development. Go to configuration of the OpenWrt system if you are not interested in compiling a kernel.

Disk image creation

Because OpenWrt needs a case-sensitive filesystem and Mac OSX by default provides only a case-insensitive one, we have to create disk image and attach it to the system.

Needed packages

OpenWrt needs a hand full of packages to be build. I will not explain how to install XCode framework or how to get homebrew running, but will provide you a list of necessary build packages.

This could take a few minutes (approximate 45min), be patient.

Because of OSX already providing getopt we have to temporarly prepend our newly installed gnu-getopt package to PATH.

If you had awk installed previously you have to unlink it and link gawk afterwards.

Get the latest sources from github

From now on we are working inside of the mounted volume /Volume/OpenWrt.

Update current package list from 8devices repository

First we have to generate the image configuration. Type the following command and leave everything untouched, just exit.

menuconfig OpenWrt

menuconfig OpenWrt

At least for the gnu-gettext package the compiler needs another version as the one provided by Mac OSX. You did install the right one with the above brew install command nut unfortuniatly this homebrew is keg-only. This means you can’t use it simply linking it. There is only a –force option to be able to link it, but this could harm the stability of your system. Homebrew offers a special build envorinoment for problems like this. Just type the following command and go on inside of this environment.

Now we can run the build command. If you are using a multi-core CPU, define the command with the number of cores you would like to user after the -j param. I have an old Core2Duo, that’s why i used the -j 2. These param defines the number of jobs being processed simultanously.

Install the firmware

Copy the firmware to your device using one of these methods.

Web interface

This method is the most recommended one for users new with OpenWrt.

Log in into the Luci web interface and go to System -> Backup / Flash Firmware. If you changed something of the configuration, i recommend to backup your config using the generate archive button under the backup section.

The new firmware can be flashed by pressing the flash image button near to the bottom of the page. Uncheck the keep settings” box if you would like to reset all settings to kernel defaults.

Flash and backup interface of OpenWrt

Flash and backup interface of OpenWrt

Advanced methods

The above method is by far the most convenient and easy one for every person new to OpenWrt. There are a few other methods that could be used to flash a new firmware but i do not recommend them. If you are interested in learning more about them, just visit the developer wiki over at the 8devices homepage.