Saturday, September 26, 2015

My Car PC – Installing Android Auto

Smile
After the successful Beta stage of my Car PC build I could not add anything much due to workplace commitments. However one thing that fascinated me was the introduction of Android Auto by Google.Mobile phoneAuto
Still the problem in adopting Android Auto into my setup was that it is compatible only with the Hardware manufactured by partnering manufacturers and there was no way to obtain details about developing a head unit app by an average person. Of course the community quickly began to reverse engineer the workings of Android Auto mobile app and the provided Simulators and quickly surfaced an open source head unit app for Android Tablets working in OTG mode. Going on that direction, I was almost about to put Android x86 and port that so called head unit app into x86. Yet a web search for that app suddenly pointed to a recently announced desktop head unit app by Google itself. Hot smile
So I reinstalled the Windows 7 Embedded platform with required components (This time approx. 1.5GB image) installed JDK (which is a prerequisite for Android SDK) and Android SDK tools (which provides adb.exe) along with Android Auto desktop head unit app and Google USB drivers.
Still I’m using my old startup sequence of launching Centrafuse Auto from my own custom shell application. And made a batch script to forward tcp:5277 in adb and then launch the head unit app. I have then added this as an Application plugin titled as Android Auto to Centrafuce app. While in this video I have to accept the annoying Debug authorization prompt on my mobileMobile phone   I have get rid of that by selecting the checkbox for "Always allow from this computer". Only caveat with this setup is that I have to click on Maximize button to adjust the head unit app to screen since I’m running at 800x600 resolution. It also has a title bar on top of the screen yet. But apart from that it’s almost as the authentic Android Auto experience from that point onwards. AutoHot smile
And the usual disclaimer that goes with any project of this nature:
The method depicted in this post is only experimental and if you choose to follow the same you are fully responsible for any damages that may arise as a result. Also always stay fully aware of driving conditions and always obey applicable laws. In case system may become unstable and unresponsive do not try to handle you mobile while driving.

[Posted with Windows Live Writer™ 2012 on Windows 10 64bit]

Friday, August 8, 2014

Deploying a Service on Windows Mobile 6.x

Smile

In one of projects I’m working on at my workplace there is a service for Windows CE handheld devices (Motorola MC3x90 series)[1].Work This service has been developed following the instructions at http://msdn.microsoft.com/en-us/library/aa446909.aspx. While it says it apply to Microsoft® Windows® CE 4.0 and 5.0 it also works on newer Windows CE versions as well. Nerd smile

Unfortunately when I try to put it over to Windows Mobile Mobile phone(Which indeed based on the Windows CE platform) devices of the same manufacturer (MC3x90Z series) the service was not loading despite validating that dll can be loaded from another app as well as copying over exact registry settings which are the only two pieces that need to get it running. Thinking smile

Troubleshooting was also very painful since there was no command prompt app in these windows mobile devices so had to put some 3rd party console programs like the one you gets with Windows Mobile Developer Power Toys[2]. Still the services.exe was refusing to load and run service when warm booted and this was very frustrating. Annoyed

After lot of cursing Devilfinally found another one which also was developed by me long time ago and had a working service on Windows Mobile.Angel And a careful examination on the CAB file revealed that it need couple of work from our part to get a service running on Windows Mobile platform. Following is the findings.Light bulb

1. A compatible console.dll should be copied to \Windows directory. You can find the one I had been using (Don’t know exactly where I had found it) at my Google Drive

2. Following Registry settings apart from what needed for Service loading as described in the referenced msdn tutorial.

[HKEY_LOCAL_MACHINE\Drivers\Console]

”OutputTo"=dword:00000000

[HKEY_LOCAL_MACHINE\Services]

”AllowCmdLine"=dword:00000001

3. Last but not least. A shortcut at \Windows\StartUp folder to load the service. You can create one by creating a file with extention .lnk which contains a text in following format

<length of the text following after #>#services load <name of registry key of service>

e.g.

20#services load MTXSVC

Good luck and happy coding!Computer

 

References

[1] Handheld Computers http://www.motorolasolutions.com/US-EN/Business+Product+and+Services/Mobile+Computers/Handheld+Computers

[2] Windows Mobile Developer Power Toys http://www.microsoft.com/en-us/download/details.aspx?id=10601

[Published with Windows Live Writer on Windows 8.1]

Friday, December 27, 2013

My Car PC– Beta Build

Smile
After the success in the GPS receiver installation I thought, OK now it’s time to get serious and make a proper installation with some real H/W. The only obstacle preventing that was a way to import some decent H/W that was in my mind. Specially a good APU based system with low power consumption, touch screen display, SSD and what not.
Fortunately a couple of colleague from my workplace was returning from US on-site visit and I finally managed to source following H/W.
1. ASRock E350M1/USB3 Motherboard $109.99 from Amazon.com
2. OCZ Agility 3 - SATA III 2.5 60GB SSD $87.99 from Amazon.com
3. VM70 - 7" TFT LCD touchscreen monitor $119 from eBay store.
4. G.Skill DDR3 1333MHz 2GB (From local computer shop) (For around some LKR 2000+ I think)
5. Plastic Mini ITX VESA Mnt HTPC Car Computer Case(Black A) $37.50 from eBay.
6. For the power supply, I ordered a Pico PSU 12V 120W DC-DC MINI ITX ATX PC Power Supply as well from eBay. $24.99
following is the collection of above items along with other peripherals (OBD-II, GPS cables) I have sourced during previous builds.
IMG_20120703_112018 (800x448)
However unfortunately I found out it hard way (By blowing a voltage regulator IC of motherboard while testing it with a analog variable power supply, which was uncontrollable.Annoyed) that Pico PSU is not capable of operating in wide input voltage range of the vehicle. Sad smile
So had to wait yet another few months (Actually almost an year) to get a new Motherboard (This time, $87.55 from Amazon.com warehouse deals). I also got a M1-ATX Automotive DC-DC Power Supply, 90 Watt for $32.99 from eBay this time.
Once all the necessary items are sourced I test benched the entire setup. (This time using a better digital variable power supply. Hot smile)
IMG_20131024_235720 (2048x1535) (800x600)
For the software setup, I used following setup.
Windows Embedded Standard 7 (Minimalistic setup with Command prompt shell with custom shell support – Approx 1GB image size)
Centrafuse 3.5
Garmin Mobile PC
For mounting the touchscreen I sourced a 1DIN holder for few hundred rupees from local scrapyard (Panchikawaththa) for auto parts, since I did not wanted to drill holes on original 1DIN holder that was in the center console. After bit of dismantling and drilling few holes on 1DIN holder I bought I could mount the screen on it.
Once all the required items are ready, I moved into the vehicle. After pulling the panels on the dashboard I could access the center console for replacing the empty 1DIN holder with the screen.
f4609944 (800x600)
Once the screen is mounted, got the wires layered below the retrofitted carpeting in the vehicle to the backseat under which I plan to put the PC.
SAM_3962 (800x600)
Once all wired up, it’s time to fire up the setup and enjoy the fruits of hard work. Note
SAMSUNG CAMERA PICTURES
Few weeks later, I ordered a reverse camera as well from eBay (18 AUD) and hooked it up to reverse light power supply and connected to Aux input of the LCD monitor so it switch to reverse camera when I shift into reverse.
IMG_20131229_130606 (800x601)
IMG_20131229_140110 (800x599)
So that’s it?
I’m afraid it isn’t.Smile There are much more to do. I already have ordered a Parking distance sensor kit and a USB logic analyzer and couple more front/side view cameras. Ideas are boundless.Light bulb Only time is what I’m lacking of. Clock
[Posted with Windows Live Writer™ 2012 on Windows 7 64bit]

Sunday, November 20, 2011

My Car PC – Alpha Build (GPS Navigation)

After the success in first Car PC build I had, decided to go further with adding a GPS unit to the build. So I went straight to eBay and ordered a GlobalSat BU353 USB GPS Receiver. After a couple of weeks I received a mail from Colombo central mail exchange that the item is on hold at customs. Oh Sh!# Annoyed.
So I went to the customs office and upon inspection in presence of customs officer, I was directed to TRC (Telecommunication Regulatory Commission) to obtain the approval. I really did not have any option other than that since the damn thing was clearly marked as a GPS. Upon submitting a written request to TRC they said they would forward my request to MoD (Ministry of defense) for approval. Fortunately I did not have to go to MoD as well (They did a brief interview over the phone though Call me)
And after the much of the drama and almost all the government institutions sending letters here and there between each other to consult on the matter, finally I got the approval back from TRC. (At one point I was wondering whether they would even consult CIA, FBI and DoD of USA as well for the matter that I’m about to use their GPS system Smile with tongue out) Then after submitting back the TRC approval and paying around thousand rupees Money got the damn thing back. Following is the bunch of letters I received from various government institutions regarding this matter. Sarcastic smile
IMG_20110729_141242
Phew, However fortunately I found out that It’s having a Prolific chip for converting serial data to USB and managed to get a WindowsCE driver and get the GPS receiver to connect to eBox. I also decided to put the mini PC under the drivers seat so the dashboard stays clutter free.
DSC04550 (800x599)
The next task was to put in a navigation app. Unfortunately it was not easy to find a navigation app for the Windows CE x86 processor architecture. Even there was since there is no way to make input to the PC. it was not going to make much help. So I decided to make a homebrew application using static maps tiles I scraped off the Google Maps static map API. (I know it kind of violate the license agreement but do I have any other option? specially since the device is not connected to internet.) Following is the crude UI of the current system. It simply show the current location on the static map tiles so basically it’s better than nothing.
Untitled
Apart from that it also logs all the information received from OBD-II cable as well as GPS receiver data in case requirement arise for the later analyze.
So I think now it’s time to get serious and buy some real H/W for a decent Car PC. Auto
[Posted with Windows Live Writer™ 2012 on Windows 7 64bit]

Friday, July 15, 2011

Kinect Services for RDS 2008 R3

Smile
Now with the release of Kinect SDK for Windows, Microsoft is putting a lot of bang on the next generation human computer interaction technology to the mainstream PC. This time it’s none other than the Kinect Services for Microsoft Robotics Developer Studio - a Windows-based environment for hobbyist, academic and commercial developers to create robotics applications for a variety of hardware platforms.Thumbs up
Similar to Kinect SDK for Windows 7 Kinect Services for RDS 2008 R3 is available at Microsoft Research site for free download. According to the site, “Kinect Services for RDS provides sample services that use the Kinect for Windows SDK to allow access to the Depth and RGB data from a Kinect sensor. In addition to a service for a real Kinect, there is also a service for a simulated Kinect that works with the RDS simulator.”
Kinect Services for RDS 2008 R3 is vailable for download at:
http://research.microsoft.com/en-us/downloads/f8cda115-e9ec-44d1-abcd-3dfdd09d2e77/
There’s already a tutorial of powering the Kinect using iRobot’s internal battery is available at http://www.ros.org/wiki/kinect/Tutorials/Adding%20a%20Kinect%20to%20an%20iRobot%20Create
rcjRobotsKinect_400
Now that’s one more reason to buy a Kinect Sensor. Hot smile
Reference & Image Courtesy:
http://www.eetimes.com/electronics-news/4217801/Robots-get-Kinect-s--eyes-and-ears-
[Posted using Windows Live Writer 2011 on Windows 7 64bit]

Sunday, June 26, 2011

MidpSSH – SSH at your fingertips

Smile
While browsing the web for new J2ME programs for the software collection in my LG KU250 mobile I just happened to come across this little piece of software called MidpSSH, an SSH and Telnet client for MIDP 1.0 / 2.0 (J2ME) devices such as Java(tm)-capable cellphones and other mobile devices. Wow That’s pretty amazing!
Well with this little piece of software enables to control any public server with SSH enabled to be used and controlled from any corner of the world with a GPRS access. It’s true that with my mobile it’s bit difficult to use since the screen real state is very constrained. But with a caliber phone it would be really useful.
Following is a short video demonstration of the software.
MidpSSH Demo
[Posted using Windows Live Writer 2011 on Windows 7 64bit]

Friday, June 24, 2011

Kinect for Windows SDK beta Released

Smile

As it was earlier announced Microsoft Research had released the Kinect for Windows SDK last week. According to the Microsoft Research, “The Kinect for Windows SDK beta is a programming toolkit for application developers. It enables the academic and enthusiast communities easy access to the capabilities offered by the Microsoft Kinect device connected to computers running the Windows 7 operating system.”

“The Kinect for Windows SDK beta includes drivers, rich APIs for raw sensor streams and human motion tracking, installation documents, and resource materials. It provides Kinect capabilities to developers who build applications with C++, C#, or Visual Basic by using Microsoft Visual Studio 2010.”

The most interesting thing is the skeletal tracking API. The demonstrated Shape Game using this API is pretty awesome. Now I just need to get hold of a Kinect sensor. Smile

Get Microsoft Silverlight
Shape Game Demo

If you have a Kinect sensor you can download the SDK from http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx

More information is available at http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/

[Posted using Windows Live Writer 2011 on Windows 7 64bit]