Following up my previous post entitled “DIY Modular Stripboard / Perfboard Casing for Raspberry Pi (Part 1)” where I explained how I created an modular enclosure made of perfboard, or the overall concept, I’ve now designed two “smart” sides for the enclosure: a 16-LED stripboard side, and a 5V relay stripboard side. Today, I’ll detail how I’ve done this, with details about electronics, soldering, assembly, the Linux distribution (built with Yocto), as well C programs, HTML page, and (CGI) shell scripts used to light up the 16 LEDs, and control a standard 220V lamp with a relay via my phone’s web browser. 16-LED Stripboard Top Schematics, Soldering, and Testing I had decided to design the top board of the enclosure with several LEDs, 3 LEDs on both side, and a Raspberry fruit (6 red LED) and 2 leaves (4 green LED) in the middle. Before getting started, I did some […]
Linux-Rockchip Developers Community Up, Rockchip Development Boards Coming Soon?
Companies like Freescale and Texas Instruments provide good software support, and documentation, which is why they can be found in many embedded devices, because without documentation or source code low-level customization is nearly impossible or extremely time consuming. They also usually open most of the documentation and code, because they understand this can foster the use of their chips. On the other hand, Chinese-based SoC manufacturers focus on high-volume platforms such as tablets and smartphones, and usually management don’t understand the advantage to make documentation and GPL source code available, or even may consider it bad for business. Some individuals and small companies do not see it that way however, and they either want to access to the source code to improve existing mobiles devices, or use low cost Chinese SoCs to provide highly customizable hardware and software solutions. So source code and documentation have started to leak, and tools […]
Rockchip RK3188 Linux Source Code is Now Available
Good news! I’ve just read Rockchip RK3188 Linux source code has just been released via Rikomagic, and Alok Sinha, the main maintainer of RK3066 source code, has already imported into github, and we should soon see a PicUntu image for RK3188 mini PCs. Let’s have a look:
1 2 |
git clone git://github.com/aloksinha2001/Linux3188.git cd Linux3188 |
[Update: you may have to run “sudo apt-get install libc6-i386” before running make_kernel_ruikemei.sh below, as mkkrnlimg is a 32-bit binary] Usually, I immediately look into arch/arm/configs, but this time, there’s a “funny” script called make_kernel_ruikemei.sh, and .config already have some CONFIG_RK3188, so let’s run it:
1 2 3 |
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- ./make_kernel_ruikemei.sh |
After just over a minute, success!:
1 2 3 4 5 6 7 8 9 10 |
LD vmlinux SYSMAP System.map SYSMAP .tmp_System.map OBJCOPY arch/arm/boot/Image Kernel: arch/arm/boot/Image is ready mkkrnlimg V20120220 cmd:/home/jaufranc/edev/sandbox/rk3188/Linux3188/arch/arm/boot/Image /home/jaufranc/edev/sandbox/rk3188/Linux3188/kernel.img [(null)] kernel Image:/home/jaufranc/edev/sandbox/rk3188/Linux3188/kernel.img for mid is ready. Image: kernel.img is ready |
This kernel image is for Android only, and there’s a little work to modify it as a “pure” Linux kernel, so that it can be used to boot PicUnutu for RK3188. Let’s go back to arch/arm/configs, and we’ll find several RK3188 configs: rk3168_86v_defconfig rk3188_dongle_defconfig rk3188_ds1006h_defconfig rk3188_ds1006h_v1_0_defconfig rk3188_hotdog_defconfig rk3188_LR097_defconfig rk3188_magicwand_defconfig […]
Bluetooth Versions Walkthrough, and Bluetooth 4.0 Low Energy Development Resources
I’ve seen more and more Bluetooth 4.0 LE devices in the last few months including RFDuino, Wimoto Motes, TI SensorTag, and Scadanu Scout, so I thought it would be good to write a bit about Bluetooth. First, I’ll write about the different version of Bluetooth, since I was still confused with the practical implications between the versions, and then I’ll show some development kits and software resources to play around and/or develop Bluetooth 4.0 LE applications both on devices and hosts. Bluetooth Versions Bluetooth v1.0 and v1.0B The Bluetooth 1.0 Specification was released in 1999, and according to an entry in Wikipedia, 1.0 and 1.0B devices had many issues, mainly interoperability issues. You won’t find any Bluetooth 1.0 device today. Bluetooth v1.1 Bluetooth v1.1 was ratified as IEEE Standard 802.15.1-2002 in 2002. It fixed many issues found in the previous specifications, added the option to use non-encrypted channels, as well […]
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 […]
2013 Embedded Market Study – Software Development & Processors
UBM releases a study of the embedded market every year, by surveying over 1,000 embedded professional every year. They’ve just published their 2013 Embedded Market Study (85 pages report), after surveying over 2,000 engineers and managers, so let’s see whether anything has evolved in the software development and processor space compared to 2012. Again this year, most respondents are based in the US (62%), followed by Europe (20%), and Asia (12%). C/C++ languages still rule the embedded world with 81% market share, although a little less than last year (85%), assembler is a distant third (5%). Interestingly, the average size of development teams seems to have shrunk from 15.9 in 2012 to 14.6 in 2013, the average project being composed of 4 software engineers, 2.9 hardware engineers, 2.7 firmware engineers, 2 QA/Test engineers, 1.5 system integrators, and 1.5 with other functions. About a third of project last less than 6 […]
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:
1 |
tar xvf ~/Downloads/android-studio-bundle-*.tgz |
Now let’s start Android Studio:
1 2 3 4 5 6 7 8 9 10 11 12 |
cd android-studio/bin/ ./studio.sh OpenJDK Runtime Environment (IcedTea 2.3.9) (7u21-2.3.9-1ubuntu1) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode) WARNING: You are launching the IDE using OpenJDK Java runtime. ITS KNOWN TO HAVE PERFORMANCE AND GRAPHICS ISSUES! SWITCH TO THE ORACLE(SUN) JDK BEFORE REPORTING PROBLEMS! NOTE: If you have both Oracle (Sun) JDK and OpenJDK installed please validate either STUDIO_JDK, JDK_HOME, or JAVA_HOME environment variable points to valid Oracle (Sun) JDK installation. See http://ow.ly/6TuKQ for more info on switching default JDK. Press Enter to continue. |
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 […]
Linaro Releases IKS big.LITTLE Implementation Source Code
Yesterday, Linaro announced the released of the IKS (In-kernel switcher) implementation for big.LITTLE processor which allows the SoC to switch between individual Cortex A7 or Cortex A15 cores to optimize power consumption. Currently, the only consumer device using supporting big.LITTLE the Samsung Galaxy S4 thanks to Samsung Exynos 5 Octa featuring 4 ARM Cortex A7 and 4 ARM Cortex A15 cores. IKS implementation can only make use of 4 cores at a time in this processor, since it must choose between A7 or A15 depending on the load. HMP (Heteregenous Multi-Processing) implementation is currently worked on in order to be able to use all 8 cores, and distributes tasks to the right core for the job. You can read my previous post for differences between IKS and HMP. Linaro explains the current source still needs a few more modifications before being upstream to mainline. The code was developed for and […]