DIY Modular Stripboard / Perfboard Casing for Raspberry Pi (Part 1)

I plan to play around with Bluetooth 4.0 LE in Linux using the Raspberry Pi as an hardware platform together with a small LCD display and possibly a relay board. Instead of having boards spread around, I thought it might be a good idea if I could design a case for my setup. I wanted to be able to connect small external boards and things like LEDs, it had to be easily assembled and disassembled, modular so that I could add or remove circuits easily, and about as cheap as existing “dumb” cases. So I though why not use stripboards (perfboards) for that? I searched the web to find out if other people had the same idea, and could only find one other person, but he does not appear to have completed assembly, nor actually used the stripboards to add hardware features. I decided to give it a try anyway, […]

How to Find Configuration Options Quickly in Make Menuconfig

If you’ve ever compiled the Linux kernel, you’ll know make menuconfig is the command line used to unset/set options, disable/enable modules in order to match your hardware and requirements. I used to simply browse in the menu to find the option, and just remember the correct path. Sometimes I just looked at .config to locate the option I needed, and the possible path in make menuconfig. The first time you use a new option it can be time consuming. But I’ve just found there is a better way via Google+. “/” is actually available in make menuconfig, just like it is in vi/vim. If you want to enable NFS server in your kernel, press “/”, and search for NFSD. It will show the list of results with “NFSD” strings. NFS server support is right at the top, and the path is shown to be File Systems->Network File Systems. The neat […]

How-to Upgrade Firmware on AllWinner A31 mini PCs

I’ve just received a mini PC powered by AllWinner A31, and I had to (re-)install the firmware, so I’ll explain the steps I followed in this post. The procedure is for CS868 mini PC, but it should be similar for all Android HDMI TV dongles, and media players based on AllWinner A20 or A31.The procedure below only works in Windows, and has been tested in Windows XP. I’ll mention a possible method in Linux at the end of the post. Download the latest CS868 firmware and tools, and extract “cs868 firmware and update tool 20130507.rar” file Download PhoenixUSBPro tool in English, and extract This is optional as the Chinese version is included in rar file above. Double-click on PhoenixUSBPro/PhoenixUSBPro.exe to start the program Click on Update to upgrade the tool to the latest version if need be. Click on Key to to load the key file (AW_LCTOOLS.key), on Image to […]

Installing Android Studio IDE in Ubuntu – Hello World Application

Google I/O started yesterday, and Google released an early access preview version of Android Studio, a new IDE based on IntelliJ IDEA with drag-and-drop GUI layout editor, Gradle-based build system, Lint tools, the ability to preview how apps look on different screen sizes, and more. This may eventually replace the Eclipse + ADT Plugin combination currently used, so I’ve decided to give it a try in Ubuntu 13.04 64-bit, but it’s also available for Windows and Mac OS X. First, head over to Android Studio Installation instructions, and download Android Studio for you operating system via your Browser (You’ll have to accept an EULA), then open a terminal to extract it:

Now let’s start Android Studio:

And I did press enter to continue, but Android Studio complained about JAVA_HOME no being defined. Let’s just install Sun Oracle JAVA JDK since this is the recommended method. I’ve used the  […]

How to Play Games in Android mini PCs / STBs With a PS3 Bluetooth Controller

Android mini PCs ( HDMI TV dongles) are great to make your TV smart, and you may expect to be able to play Android games on your TV easily. The reality is that the keyboard and mouse, or remote controls used with those devices, are not suitable for games, and most games do not play at all. Of course, OUYA and GameStick projects will take care of this, as well as the recently available Project SHIELD ($349) , but if you already have one of those mini PCs, you may not want to spend the money for another device. Luckily there’s a solution, and with some efforts, you can play many games, but not all, with a PS3 Bluetooth controller connected to your Android mini PC or Set-Top Box. I decided to give it a try by buying “GOIGAME Rechargeable Bluetooth Wireless DoubleShock III Controller for PS3” for $16.60, which […]

Raspberry Pi Camera Module Is Now Available, How-to Use It

About one year after showing the first image from the camera module prototype, the Raspberry Pi Foundation announced the Camera board is now available for purchase on RS Component or Element14. Navigating either of these sites is a nightmare, but, if you’re lucky, you should eventually find the camera board for around $25 before taxes and shipping. “Raspicam” features the following hardware specifications: Omnivision 5647 sensor in a fixed-focus module 5MPixel sensor Still picture resolution: 2592 x 1944 Max video resolution: 1080p Max frame rate: 30fps Size: 20 x 25 x 10mm Connection by flat ribbon cable to 15-pin MIPI Camera Serial Interface (CSI) connector S5 on Raspberry Pi computer board The first thing you’ll have to do with the camera is to connect it to the CSI connector on your Raspberry Pi, just behind the Ethernet connector on model B. James explains it very clearly in the video below. […]

How to Detect if an ARM ELF Binary is Hard-float (ARMHF) or Soft-float (ARMEL)

If some cases you may want to know if a library or binary built for the ARM architecture is using hard-float (armhf) or soft-float (armel). You can analyze ELF binary using readefl utility, so let’s have a try. First let’s install some armel and armhf files on a computer running Ubuntu by install gcc/g++ toolchain for armel and armhf:

We now have armhf and armel libraries installed in /usr/arm-linux-gnueabihf/lib and /usr/arm-linux-gnueabi/lib respectively. Let’s check the output of readelf filtered with “FP” string for libm.so.6 for armel:

and armhf:

Great, so there’s an extra line for armhf (Tag_ABI_VFP_args) that seems to confirm the library is hard-float. With readelf compiled from elftoolchain-0.6.1 (source code), the extra line will be a bit different: “Tag_ABI_VFP_args: AAPCS (VFP variant) AAPCS stands for ARM Architecture Procedure Call Standard. You can read more details on ARM website. There are also two other possible values […]

How to Use Libhybris and Android GPU Libraries with Mer (Linux) on the Cubieboard

You may have heard about libhybris, a library that cleverly loads Android HW adaptations and convert calls from bionic to glibc. One of the greatest achievement of this library is to allow Android GPU drivers to be used with Linux, and is notably used by Canonical, although they did not write it, for Ubuntu 14.04 which will be compatible with any recent Android smartphones or tablets. One way to get started with libhybris is to port a device to Ubuntu Touch, but this may take a while. However, I’ve found a faster and easier way to play with libhybris thanks to Martin Brook (vgrade) who wrote a tutorial on how to use libhybris with Mer on the Cubieboard. Mer is an open source mobile Linux distribution powered by Qt/QML and HTML5, that’s born from the ashes of Meego, and is now used in the upcoming Sailfish OS. You’ll need to […]