View RSS Feed

Sonicxtacy02

  1. Automotive Computing (R)Evolution - The Android Head Unit Build - Road Test!

    by , 07-18-2013 at 01:24 PM




    Well, the first full week worth of road testing the ODROID-X2 is in the books. Overall I'm delighted with my windows car PC replacement. Key improvements over my previous install include the time from ignition to boot, access to all of my media needs via existing applications, and the system absolutely flies. I cant get over the speed of the ODROID-X2. Even comparing it to my collection of Android based tablets, it really does breeze through everything I want it to do. Whether navigating, watching YouTube, or playing an emulator, the system never misses a beat. Configuring the UltraCarHome application with all of my frequently used programs was also a snap. I've also managed to get some functionality out of the SpaceNavigator, allow me to access all button controls on screen and swipe between main menus in UltraCarHome. I'm sure that with more bench testing I'll unlock a greater set of functionality.

    As with most test scenarios however, I do have a couple of complaints with the install as it stands. The Anker external battery pack is not living up to my expectations. It appears the battery life is heavily effected by the ambient temperatures. Inside, the battery lasts for several days under a charge with no power usage mitigation. In the summer heat inside the vehicle, the battery barely manages to last 10 hours. Also, at 1.5A input maximum, it takes close to a full day to charge the battery, meaning my car will never truly charge the battery properly. The Anker portion of the project will be scraped for now.

    Another problem I am not so surprised with is touchscreen accuracy. The higher on the touchscreen I press, the more inaccurate the points become. It becomes burdensome in apps where the menu or other controls are on the top 75 pixels on the screen. I'll have to do more modifying of the kernel to attempt to correct this problem.

    The final gripe I have at this point is one that many tablet owners have come to somewhat expect. Despite the fact that my area has 4G LTE coverage, there are points where I wish the ODROID-X2 wasn't so heavily dependent on a network connection. Because the X2 doesn't have an internal battery, it needs internet access to correct time/date settings after a cold boot. Also, at times it takes upwards of 30 seconds for the X2 to scan and pick up my mobile hotspot connection. There have not been times where I've been left with buffering messages on the go, but I find myself waiting for that internet icon to display before I really feel like I can enjoy my X2.

    These small issues aside, I definitely still get excited when I can start my car and not see resume problems, BSODs, or configuration issues. The ODROID-X2 already feels closely integrated into the vehicle, and I'm definitely ready for more bench testing to continue to maximize its potential.
  2. Automotive Computing (R)Evolution - The Android Head Unit Build - Touchscreen Setup

    by , 06-25-2013 at 06:50 PM

    A part of the thrill of using custom hardware is that eventually you will run across an obstacle. The resistive touchscreen that's used in the Lilliput and Xenarc monitors presented quite the thrill when connecting it to the ODROID-X2.

    Upon plugging in the USB connector the initial response is delightful. The touchscreen will automatically begin responding to touch. The problem lies in where those touches occur based on the position of your finger on the screen. The X and Y axes are reversed, leaving you with a touchscreen that cant really be used. Unfortunately, the solution isn't as easy as it would be in Windows, where a simple recalibration of the touchscreen would correct the issue. The driver that allows the touchscreen to operate on the ODROID-X2 is a part of the system kernel files, and the only real way to apply any fix is to recompile the OS with the modified kernel files.

    Luckily I have Googled enough to stumble on an easy to use guide to correct the issue and get the ODROID-X2 working in harmony with our standard touchscreen fare. This solution may work on other Android development boards, but obviously your source files will vary.

    I must note that I take NO credit for the solutions presented here. It's mostly a combination of information found at these two sources:

    http://forum.odroid.com/viewtopic.php?f=51&t=83
    https://groups.google.com/forum/#!to...86/uNo7a39-s3I



    Requirements
    -A computer running Ubuntu
    -Android SDK with ADB installed (I used this guide to set it up)
    -Download the Toolchain application for Ubuntu from here
    -Download the Android Beta 1.6 Kernel Sources from here

    Steps
    1. Open the Terminal application in Ubuntu and run the following command. You will need admin access as well as the admin password as these are root commands:
    Code:
    sudo apt-get install build-essential libqt4-dev xz
    2. If your Ubuntu is installed on a 64bit machine, you will need to run the following commands (if not, go to step 3)
    Code:
    sudo apt-get install package-name:i386
    sudo apt-get update
    sudo-apt-get install ia32-libs
    3.Run these commands to install and configure Toolchain:
    Code:
    tar -jxvf arm-2010q1.tar.xz
    cd arm-2010q1/bin
    export CROSS_COMPILE=`pwd`/arm-none-linux-gnueabi-
    4.Unpack the kernel sources. Run the following commands:
    Code:
    tar zxvf kernel_4412.tar.gz
    cd kernel_4412
    5.Configure Toolchain for your ODROID-X2 storage type.
    If using the eMMC module enter:
    Code:
    make ARCH=arm odroidx2_android_emmc_defconfig
    If using an SD card enter:
    Code:
    make ARCH=odroidx2_android_sdmmc_defconfig
    6.At this point you can minimize terminal, and navigate to the directory where your kernel sources were unzipped (should be in Home folder, a folder called kernel_4412). In this folder, navigate to the file kernel/drivers/hid/hid-input.c. Open this file with a text editor, as we will be modifying a small portion of the file with the corrected code.

    7.Find the hidinput_hid_event() function, and append the following code between the lines that read "input_event(input, EV_MSC, MSC_SCAN, usage->hid);" and "input_event(input, usage->type, usage->code, value);" . You can use the find/search capability to help locate these lines within the hidinput_hid_event() function:

    Code:
    -//+RDG: patch for eGalax touchscreen: swap X and Y, invert X
    direction
    -if (usage->type == EV_ABS)
    -{
    -        if (usage->hid == HID_GD_X) {
    -                usage->code = 1;        // vs 0 (X becomes Y)
    -                value = 4096 - value;
    -        } else if (usage->hid == HID_GD_Y) {
    -                usage->code = 0;        // vs 1 (Y becomes X)
    -        }
    -//printk("RDG: hidinput_hid_event: type = %d, code = %d, value = %d
    (hid = 0x%x)\n", usage->type, usage->code, value, usage->hid);
    -}
    -//-RDG
    (In the event you cant find this/don't want to be bothered with it, the modified version of the file is attached)



    8. Save and close the file and maximize your terminal window. Run the following command to build the modules:
    Code:
    make -j4 ARCH=arm zImage modules
    This step can take several minutes, so be patient.

    9. copy the modules to the ODROID-X2 by running this command:
    Code:
    adb remount
    for module in `find . -iname *.ko`; do adb push $module /system/lib/modules ; done
    10.Copy the kernel... we're almost there:
    Code:
    adb push arch/arm/boot/zImage /system/lib/modules
    11.Flash the kernel to complete the process!:
    Code:
    adb shell
    cd /system/lib/modules
    busybox dd conv=notrunc seek=2455 bs=512 if=zImage of=/dev/block/mmcblk0
    sync
    exit
    adb reboot
    This command reboots the ODROID and should fix the touchscreen axes!

    Attached Thumbnails Attached Files
  3. Automotive Computing (R)Evolution - The Android Head Unit Build - Hardware Overview

    by , 06-11-2013 at 10:33 AM


    The Hardkernel ODROID-X2

    The heart of the Android head unit was obviously the item most considered for a new project build. Because I demand a lot of power from my system, as well as a lot of connectivity options, I simply could not choose the easier way to get Android up and running. The ODROID-X2 is a powerhouse of a development board, boasting specs that meet or exceed my prior Windows based installation. The processor that powers the ODROID-X2 is the Exynos 4 Prime ARM Cortex-A9. With four cores, a default 1.7ghz of power that can be easily overclocked if need be, the ODROID-X2 is the ideal launching platform for a powerful Android car PC. The board houses 2GB of DDR 2 RAM, and boast a very capable 3D graphics processor which can handle more than one would need in the car, unless of course you plan on hosting 4 player Mario Kart 64 tournaments in traffic.




    The Android standard benchmark utilities, Antutu and Quadrant, both prove the ODROID-X2 as a absolute powerhouse of a board. This coupled with its miniature profile at 90x94mm makes it the best choice for an Android head unit.




    Another key factor in selecting the ODROID-X2 for my car PC needs was the ability to purchase compatible hardware accessories at once source. Hardkernel.com sells the board along with compatible Wifi, Bluetooth, UART, and Android-installed storage solutions. For my build, I selected the 64GB eMMC memory module with the thought I could also add a 64GB SD card for additional storage, but you cannot use both at once. The board has a jumper that allows you to select which option you choose.






    The ODROID-X2 has a total of 6 host-enabled USB ports that can provide the max 500mA per port provided your supplied power meets the requirement. Considering that both wifi and Bluetooth need to be handled with dongles and your touchscreen needs an additional port, its safe to assume that at least one powered hub is a good option. Sound output is handled by a single 3.5mm port and input is handled by a second 3.5mm port. Additional components can be connected via the 50pin expansion slot. This allows interfacing with items like LVDS displays, GPIOs and more low-level device interfaces. If ribbon wires aren't your suite, the micro-HDMI port can be your primary display means. Take note though, that the ODROID-X2's HDMI port is hardware locked to display at either 720p or 1080p. That means that for devices like the Lilliput 669, you must use a HDMI-to-VGA adapter to achieve native resolution without overscan.


    Because the ODROID-X2 requires a regulated source of 5 volt 2 amp power, it cannot be powered properly via the unregulated 12v found in most car systems. Because of this, I acquired a Mini-Box DC/DC Power converter. In fact, I acquired two, one for the ODROID, and one for the display, as they both run on entirely differently input voltages. There may be an all-in-one solution that fits your bill, but I like that the two will be isolated. The ODROID-X2 is out of the box capable of auto start on power up, and doesn't need to be shutdown or put to sleep with ignition, so you wont have to deal with any timing issues.


    The rest of the Android head unit installation will allow me to use all of the car PC add-on equipment used from the Windows PC. OBD-II receiver, GPS receiver, USB hard drives, and cameras can all be plugged in and work without much muss or fuss. The eGalax touchscreen module found on the new Lilliput 669 charged with the task does however require some kernel modifying to work properly. More on this in the next blog.

    While finding a spot for the ODROID in my compact vehicle wont nearly be the hassle of my Windows system, finding a suitable case to protect it from at least some of the bumps and bruises of the road became somewhat a chore. Custom cases aside, there are a few eBay retailers which provide a solution. My choice of casing can be shown below. While it doesn't provide much side protection, my new Android head unit looks good in it's two-piece .


  4. Automotive Computing (R)Evolution - The Android Head Unit Build Part 1

    by , 06-05-2013 at 01:49 PM


    The Crossroads...

    Somewhere, far too long ago to remember, I realized that a “practical” Windows-based car PC platform with all the bells and whistles may perhaps be an unreasonable goal. Now that my seemingly powerful-enough hardware is becoming more and more unreliable (and outdated), I find myself smack dab in the middle of crossroads pertaining to the future of my automotive infotainment platform. On one hand, I’ve got years and thousands of hours invested into attempting to create the perfect Windows automotive ecosystem. The other hand sees a more efficient platform brewing in Android, with updates and supporters that are seemingly blurring the lines between “on the go” and “in the car” applications.



    Old (Not So?) Faithful


    Perhaps I should have prefaced this blog with the fact that I am not a user of the “common” Windows car PC. My current Zotac/Intel dual-core car PC features include the following capabilities:

    - GPS Hardware with live tracking
    - Tire Pressure Monitoring
    - SpaceNavigator Control
    - Parking Sensor Interface
    - Rear Backup Camera
    - Fusion Brain with a host of various Sensors
    - XM/HD Radio
    - Custom Bluetooth Phone Hardware
    - Bluetooth ODX MX
    - USB Array Microphone for hands-free communications
    - A total of 21 USB devices, spread over 3 self-powered USB hubs


    All this hardware and more is being delicately managed by my choice of front end software. For the most part, the system as a whole works. But there are times where resume for system sleep doesn’t occur so smoothly, HD Radio fails to initialize, or the system draws so much voltage at rest that it completely drains an auxiliary power cell.


    The New Kid On The Block



    Now, based on the details of the Windows system, one might surmise that the run of the mill android tablet install might come short of fulfilling my demands. Raspberry Pi seemed initially intriguing, but falls short on true horsepower. In short, I need an Android board that can haul the load without compromise, all while sipping power. Enter the ODROID-X2, a 1.7ghz quad-core Android development board, complete with 2ghz RAM and a 64GB eMMC module. Essentially, this is the same Exynos4412 chip that powers the international variant of the Samsung Galaxy S3. It’s safe to say this device should meet my demands at a mere 5 volts and be powered by a Mini-Box DC/DC Power Converter.


    So the challenge as I so dramatically impose on myself, is to build a complete and total Android-based car PC platform to replace my current system and all of its capabilities. Join me as I get to know the development board, power up the system for bench testing, attempt the in-vehicle installation, and configure all necessary software along the way. Ultimately, the project may finally solve my longing desire to reliability integrate all of my madness into a modern automobile. Success or failure, every few days comes a new adventure. Check back next time for a new hardware component overview.

  5. More on CES: "Square" your car PC away with Xi3

    by , 01-16-2013 at 01:10 PM

    The Xi3 booth at CES was jam-packed with these ultra-cool x86 computing systems. Shown above is the Xi3 5A. This 4" modular cube houses a 1.8ghz dual-core AMD CPU, 2GB of system RAM, and up to 1TB of solid state storage. It's modular design allows for a host of peripheral devices, with multiple options for USB/ eSATA, and display ports. The 5A does include a fan for system cooling, but I can say after demoing the device it's indeed silent. It sips power at only 20 watts, and can be powered from 12-24v.






    So what's missing from making this a go to Car PC option? The only downside i see is the lack of the smart automotive power management that we know from Opus and Minibox systems, but because the device is modular and Xi3 is looking at the device to be installed anywhere possible, the engineers eyes lit up at the idea of creating a automotive add-on module to handle that. ETA is of course unknown, but it's great that there's another company out there that gets frenzied up for car PC goodies.


    If the 1.8 dual core isn't enough power for your setup, Xi3 has other builds that might work. The X7a, while slightly more power demanding at 40 watts, packs quad core power and more memory to boot. It's plenty powerful enough for the user who needs to video edit or game on the go.

    The Xi3 modular systems start at just $399.

Page 1 of 2 12 LastLast