Sunday, December 22, 2013

It Worked For Me - RFduino

This past fall well after its KickStarter campaign had successfully completed I stumbled across the RFduino.  At the time I was looking for a Bluetooth Low Energy solution to pair with my new Nexus 7 tablet.  I very much liked what I saw.  As I had missed the opportunity to support the KickStarter campaign and had several other projects in the works I figured I would wait to hear what people had to say once it started shipping.

I kept an eye on checking on how things were going.  As the fall progressed things appeared to be moving along.  In December orders were complete to all the KickStarter backers and they were moving forward on the Pre-order shipments.  I decided that once the backlog cleared I would place my order.

Imagine my surprise when last week while searching the hobby electronics section of the MIcroCenter website I found that MicoCenter was stocking the RFduino and my local store had several in stock.  They had both the RF Digital RF Duino Teaser Kit which comes with a RFduino and an RF Digital USB Shield Accessory Board and single RFduino units.  While the RFduino Teaser Kit was priced below what buying the two modules separately would cost I determined that it looked like the RFduino could be programmed with an Sparkfun FTDI 3.3V board that I already had.

I placed a web order and picked up the unit at the store.


Getting an initial application up and running was extremely easy. I followed the instructions in the RFduino Quick Start Guide and using the schematic of the RFduino USB Shield I was able to download a program from the Arduino IDE running on my Windows 7 computer.  I started with a simple application that just printed “Hello World” to the serial port.  When I ran the serial monitor in the IDE I got back “Hello World” from the RFduino.

The pinout between the RFduino and the FTDI board looks like this.  A .01UF capacitor is needed between DTR on the FTDI board and Reset on the RFDuino.


Next using the AdvertisementContinous example I setup the RFduino to let the world know it existed.  I was able to see the RFduino using the BLE Explorer Scan application available from Google Play on my Nexus 7 tablet.

I was also able to use an IOGEAR GBU521 Bluetooth 4.0 USB Micro Adapter to see the RFduino under linux using the hcitool lescan and on Windows 7 using the IOGEAR drivers and not the Windows drivers that automatically get loaded when you just plug in the adapter.  Make sure to install the drivers from IOGEAR before plugging in the adapter or you will get a set of Windows drivers that don’t work.

Over the next couple of weeks I hope to develop an application or two that makes use of the RFduino.

It Worked for Me - Nexus 7 2013

Back in July my Acer Iconia Tab A100 died.  I was rather disappointed as I had only bought it a little over a year ago.  However, it gave me an opportunity to see what had developed over the last year in the tablet space and buying something new.

After thinking about it for a while I decided that I would go with same form factor and therefore started looking at 7 inch tables.  Shortly after starting my search I started hearing that Google was going to be releasing a new version of the Nexus 7.  After looking at what else was out there I decided that the new Google Nexus 7 look like the way to go.

I decided to hold off buying one right away and then held off even longer after hearing that there were problems with the GPS.  By September it looked like the GPS bugs had been resolved and I purchased one.


Fast forward four months…

I have been very pleased with my purchase.  I have mostly used it for portable web browsing and email.  I have found the batter life much better than the Acer and the high-def screen is very nice.  I have fewer problems with the touch screen but I am not sure if that is that I am more accustom to using it or if it works better.

I look forward to using it in some projects.

Saturday, December 14, 2013

Quick Note - pcDuino - Changing Debug Levels (Revised)

I had recently run into an issue where the rsyslogd process was chewing up about 75% of the CPU when I was using the mali driver for GLES2 support. I found out that the mali_debug_level and the ump_debug_level were set to 10. As a result there was a significant amount of messages being generated by these drivers. I changed the mali_debug_level to 2 and ump_debug_level to 2 and the high utilization and the messages went away.

Create a conf file for mali in /etc/modprobe.d with one line in it.
cat > /etc/modprobe.d/mali.conf
options mali mali_debug_level=2

Create a conf file for ump in /etc/modprobe.d with one line in it.
cat > /etc/modprobe.d/ump.conf
options ump ump_debug_level=2

I believe this will still get you critical and error messages.
Related commands:
  • To list settable options for a module use: modinfo <module>
  • If module isn’t loaded you can do modprobe <module> [<parameter>=<value>]
  • To determine active value look in /sys/module/<module>/parameters

openFrameworks / pcDuino MFB Update 2

These instructions are for installing the latest copy of openFrameworks for pcDuino using the mali framebuffer and not X-windows. The instructions assume you are running in an ssh session and not on the console.

Make sure to read the post about changing debug levels for the mali and ump drivers or you will not get very good performance.

Install git

sudo apt-get install git

Setup the pcDuino to use Mali Framebuffer

git clone
cd sunxi-mali
git submodule init
git submodule update
make config VERSION=r3p0 ABI=armhf EGL_TYPE=framebuffer
sudo make install
make test
sudo stop lightdm
sudo ./test/test

At this point you should see something that looks like this:


Setup openFrameworks

git clone
cd pcDuino-openFrameworks
git checkout -b pcDuino-dev origin/pcDuino-dev

Install Dependencies

sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libasound2-dev libxmu-dev libxxf86vm-dev g++ libraw1394-dev libudev-dev gstreamer0.10-ffmpeg libopenal-dev libsndfile-dev libfreeimage-dev libcairo2-dev libgtk2.0-dev python-lxml python-argparse libfreetype6-dev portaudio19-dev libssl-dev libpulse-dev

Install Codecs

sudo apt-get install libmpg123-dev gstreamer0.10-plugins-ugly

Compile and run the pcDuino Hello World Program

cd ../../../apps/devApps/pcDuino_hello_world_gles2/
make PLATFORM_VARIANT=pcduinomfb
sudo ./bin/pcDuino_hello_world_gles2

At this point you should see a spinning pcDuino board on a yellow background.

If you have any questions or something doesn't work please leave a comment.