i.MX6 Platform

I guess I have finally decided on a platform to use for developing audio DSP applications, at least on the front-end.  After messing with BeagleBoard a bit, exploring Arduino and even an FPGA setup, I am coming back around to an i.MX6 platform made by Digi International.  A link to the platform overview is given below:

http://www.digi.com/products/embedded-systems/single-board-computers/connectcore-6-sbc

The second part of this design will revolve around either a TI reference design for DSP, or something by Analog Devices.

As of this date, I am setting up to work with Qt on the iMX6 platform.  The intent is to build a graphical user interface in Qt / C++.  Working on this interface will allow for a certain level of planning over the DSP portion in the weeks/months to come.

Android SDK work and getting the app on devices

I’ve spent the last few days, off and on and here and there, learning about tabbed apps and adding controls to views within tabs.  The big learning curve has been knowing the differences between Xcode (used to make iPhone apps) and the Android SDK, and how they each handle graphical assets.  The Android SDK, while likely more powerful, is not the easiest tool to learn.  Xcode comes with its own learning, but the way to proceed was much more obvious and intuitive, almost.  Then, again Apple’s had much longer to perfect Xcode.

In any event, after some tutorials and Googling (Who carries around programming books nowadays?), I feel better about it and I have some results here:

The Samsung Galaxy Tab 2 from work being used as a testbed.

The Samsung Galaxy Tab 2 from work being used as a testbed.

Tricky XML stuff

Tricky XML stuff

What we have here is a basic interface that can be used for a range of applications, spanning industrial and consumer applications..

The tricky thing about the Android SDK is knowing what to place in the XML files to have layout/view components spaced correctly for all devices involved, all target devices.  If the program is executed on a device with a 4.3″ screen, the result will be different from that of a 7″ screen, at least without some work on understanding relative layouts.  That’s my next challenge.

A few links about tabs and layout stuff I ran into (somewhat helpful):

http://thepseudocoder.wordpress.com/2011/10/04/android-tabs-the-fragment-way/

http://stackoverflow.com/questions/6091194/how-to-handle-button-clicks-using-the-xml-onclick-within-fragments

http://android.bigresource.com/Android-Adding-multiple-ImageViews-to-a-layout-y9wlTlseR.html

(Google’s brilliant – make the SDK difficult to use and you will have to use their search engine to get an understanding of certain topics, I suppose….. o _ O.  Maybe I need to get another book??)

As far as the Java is concerned, well, that’s the easy part!  The Eclipse IDE is excellent for Java and so I actually enjoying coding Java in Eclipse.   It’s the darn graphics that warrant a closer look and consideration.  So, next up, again, is getting this app to run on the 4.3″ display on the BeagleBone Black.  It currently runs and looks excellent on the 7″ Samsung Galaxy Tab 2 and HP7.  This app I am developing is meant to be universal so more work will be completed for this sort of shell app…….

Now, on to taking the boys out for Chick-fil-A and that indoor playground.

A bit of morning Android work

This morning started with pure Android app development, which I’ve really not done much of since 2012 and early 2013.  In the session this morning, I started dabbling with custom widgets and a couple of elementary views.   The custom widget, which is public information, is described at this link, complete with code:

http://go-lambda.blogspot.com/2012/02/rotary-knob-widget-on-android.html

It’s elementary stuff, but not something that you want to reinvent.  As I invent generic things, like the rotary knob, I should share,  as well.  These are nice hints that keep the development community churning out creative content.

I had a bit of trouble getting my $100 HP7 tablet to show up in the Android SDK’s debugger (adb).  The HP7 and Samsung Galaxy Tab 2 (the company’s) are shown below.  I could have punted and gone with the Samsung tablet, but I was up for getting the HP7 up and going.

 

They look as sleepy as I was at that time.

They look as sleepy as I was at that time.

 

I Googled and found this blog, which helped tremendously:

http://h30434.www3.hp.com/t5/Android-Tablets-e-g-HP-Slate-7/Slate-does-not-work-with-ADB-on-Mac-OS-X/td-p/2644447

After digging through the SDK’s directory, I found a adb_usb.ini file and simply applied the VIDto that file.  I believe I had run across this issue with other devices, such as the HTC EVO back in 2010.

Next up was figuring out the color schemes in the Android SDK.  They use hex representations for the RGB combinations that define the colors.  There’s a bit about the scheme below.  The guide essentially says that you can define color names with the corresponding code.  I’ll probably need this down the line.  For now, I just went to, in this case, a textfield, and defined the color directly, which is shown in the screenshot.

http://developer.android.com/guide/topics/resources/more-resources.html#Color

Textfield background color change

Next up will be looking at the BeagleBone Black’s Android distro and seeing how the app fits on a 4.3″ screen, as opposed to a 7.0″ screen.

A Debian cloud instance

Today, I am messing around with a Debian cloud instance on digital ocean.com.  It’s kind of amazing to see the amount of power you can wield for a mere $5/month.  I’d be interested to see if this thing could be used to process audio, or relatively fast data streams.  I see many possibilities for the service!

(A screenshot of Gnome being installed is included below.)

Image

Up and running: BeagleBone Black

Just a general note on getting the board and finally booting up to the Linux desktop.

Finally, it works and I can start development of a new system.  This is a low-cost, readily available (the parts any way) system which will allow for the creation of some cool stuff.

Some issues I ran across:

HDMI out put did not work out of the box on an LG HDTV.  No problem, just need to figure out the timing and/or update the software.  See this wiki for some info, although you must have experience with the kernel to decide what changes to make on your own.

http://elinux.org/Beagleboard:BeagleBoneBlack

What’s needed for most development work, and this is development work, are the end goal functions.  We needed a touch screen and we have one.  There’s no other platform, at this price, that gives either a 4.3″ or 7″ resistive touch screen interface this quickly.  Anyway, the 4.3 resistive touch LCD works wonderful!y!  I booted up, calibrated the screen, and the system works:

The Beagle Board booted up to an Angstrom Linux desktop.

The Beagle Board booted up to an Angstrom Linux desktop.

The next round will involve booting Android and delivering a first app!

As noted before:  This is a general info blog, with no intellectual property revealed.  It’s meant as a rough “how-to” (please refer to the official BeagleBoard Black wiki for the best/most current info) and note to those interested that a project is underway.

Yet another Android build.

It looks like I’m changing up direction, just a bit.  It seems that the documentation that came along with this cheap/no-name Chinese outfit’s board is no good.  Plus, the board is pretty much under lock and key.  My experience has been that any board lacking wide community support and/or access to all the tools used to create the original software images is just not worth the bother.  I do know a well-supported board when I see one.  I’d like to hack the board/software, but I have a lot further plans than simply saying I figured out a closed up board….  

So, what I’ve decided to do is to prepare Android for a couple of other boards.  One of those boards is the Pandaboard (open source) which I had purchased several months back.  The problem with this board is that there is not inherent support for a touchscreen.  I figure that I can (maybe) tackle this as an academic project on the side.  What I’m really after, though, is the Beagleboard Black…….and rumors are stirring that I could receive this for Christmas.  Cool with me.  I’ll be preparing Android and Debian for it in the meantime!

ImageLinux

 

Effortless and Beagleboard Black?

I stumbled upon a cool, very cool development board today at lunch.  I had known about the Beagleboard and BeagleBone boards for quite some time.  They have always been the go-to low cost development kits for TI ARM Cortex processors.  Apparently, Circuit Co, who makes the Beagleboard products has decided to beat the Raspberry Pi makers at their own, low-cost game.  

At $45 now, you can own an ARM Cortex development kit, complete with ethernet, 512MB, 2GB onboard storage, SD card slot, serial, USB, and USB OTG connections.  For another $50-$90, you can add a resistive touch LCD screen.

On top of all of this, the kit is well-documented.  To be quite honest, while I will certainly tinker with the board I already own, I will have look at getting one of these kits!  It’s a great thing.  

Check it out:

http://beagleboard.org/Products/BeagleBone%20Black