Tuesday 23 June 2015

Hardware Volume Control Knob Configuration and Windows Upgrade

Hello and welcome to post #14 of my blog on building a comprehensive in-car entertainment and navigation system

In this post I'll cover a few major changes that were made to the computer's software, and an important and vital hardware addition.

To start off with, I'll outline the situation with windows. It was deemed necessary to upgrade from windows 8.1 to windows 8.1 pro, because of the extra features and native remote desktop functionality it provides. Achieving this was a huge effort, however, as using the "upgrade" option on the virtual installation disc downloaded from Microsoft didn't work.

Because of this, I had to do a clean install on the computer which resulted in many many hours of effort in re-downloading the drivers (I didn't keep the old ones as I thought I had no need for them) and re-installing them and the applications originally on the car computer, as well as all of the updates for windows. On top of this, I had to manually upgrade to windows 8.1 pro from windows 8 pro as for some reason it would not install the update automatically. 

Once windows was reconfigured and all the drivers and hardware working properly, it was time to address a major usability issue that was outstanding on the computer since its first use.

This is that trying to adjust the volume while driving is extremely difficult. On windows 8.1, the easiest way to change the volume was to bring up the charms menu by swiping from the right side of the screen then tapping settings, then tapping and dragging the volume icon to the desired level. Not ideal at all. A tactile system was needed - ie a volume control knob akin to what almost all conventional car head units have.

To achieve this, I decided on a fully digital solution, rather than simply wiring an in-line volume control knob in series with the recently reworked RCA connection system (see previous post). The advantage of this is the volume can still be remotely adjusted from phones and there is the added redundancy of still being able to adjust the volume using the method outlined above.


After some searching I found this little gem, a rotary encoder based volume control knob that was designed specifically for in-car PC applications. One order from amazon.com and two weeks later and it was delivered to my door.


The unit itself is relatively simple. It connects to the computer via the supplied USB cable and will work with windows out of the box to control the volume without any need for driver installation. While not cheap, the unit seems to be of good quality and is properly and thoughtfully designed.

Turning the glowing knob adjusts the volume, and pushing it mutes all audio. In addition to this, it is backlit with a RGB LED and is able to be set to any color via software downloadable from the manufacturer's website. The blue power LED (see above photo) is also fully dimmable.

However, windows does not support the drivers for the LED control functionality, and manual driver installation was required. The supplied instructions asked me to manually install the drivers using device manager in Windows, however on windows 8.1 pro this proved difficult. 

Windows 8.1 would not let me install drivers that are not digitally signed (the unit comes from a small developer who for one reason or another has not signed his work), so It was necessary to activate the advanced start-up mode in Windows and disable the driver signature enforcement setting. I used this tutorial to achieve this.

However, this caused further complications, as an unknown error was preventing windows from rebooting into advanced start-up mode




This error would appear during restarting right before the PC power-cycled itself, giving me about 1.5 seconds to read it before the screen went black. The PC would then boot up normally into windows after instead of launching advanced start-up. This is an extremely frustrating and potentially dangerous condition as if there was an fault preventing windows from booting advanced start-up would not automatically launch, leaving me little options for recovering the PC.

After consulting my IT professional friend and some forums, I tracked down the cause of the problem. The CSR wireless Bluetooth stack software supplied with my bluetooth dongle was causing a windows C++ runtime error. To fix the problem, I had to uninstall the wireless stack and drivers, launch advanced start-up, disable driver signature enforcement, install the LED control software driver then reinstall the Bluetooth stack and reconfigure the dongle. A lot of work for such an arbitrary error!

Once the drivers were installed, the volume control knob was fully functional.


LED control software
The simple but effective software allows the user to pick any colour or brightness for the volume knob to glow, and control the brightness of the power LED. This only needs to be done once, as the program saves the settings in the unit's on-board micro-controller. Also Included in the software pack is the ability to flash new firmware to the volume control knob.


The unit still needs installing into the car's dashboard next to the screen, and a USB extension cable ran from the computer to the unit. I will do this when I have more time

I'd like to thank my friend once more, without your help I would still be stuck trying to install the driver software for the LED's!

That's it for this post, keep reading for future updates. As always, thanks for reading.





Tuesday 9 June 2015

Bluetooth fixes and software improvements

Hello and welcome to post #13 of my blog on building a complete in-car computer system. In this post I will cover various software and hardware changes I have made to improve the performance of the Bluetooth system and various software components.

To start off with, I use the system to wirelessly stream music from my smartphone to the computer via Bluetooth. However from the start this functionality has been glitchy. The audio stream is not smooth an continuous as it should be, rather it stutters and occasionally stops working for lengthy periods.

The cause of this is not fully known as I lack the proper instrumentation to find the source of the problem. However based on the symptoms of the problem it is clear that there is some sort of interference affecting the 2.4ghz wireless Bluetooth signal which results in disrupted commiseration between the smartphone and computer. This could be due to the poor placement of the PCIe wireless communications card on the motherboard (though ASUS had little choice due to the very compact form factor of the board), which is very close to the rear panel and is known is known to be affected by nearby USB3 ports and controllers which run at the same frequency, or possibly EMI or back currents from another source. Another possibility is the dual antenna that came supplied with the motherboard could be faulty. Either way it is not acceptable.

After much deliberation I decided to rectify the problem buy buying a USB Bluetooth 4.0 dongle and disabling the motherboard's on-board Bluetooth. This turned out to be problematic however as there were driver conflicts when installing the new drivers for the dongle. I disabled the on-board Bluetooth in the UEFI BIOS, but despite this the drivers and software suite supplied with the dongle were installing for the on-board Bluetooth. The net result was that the Bluetooth dongle was not recognized by its drivers and the bluetooth utility in the system tray was unable to activate bluetooth due to the on-board Bluetooth being disabled on a hardware level. Uninstalling the drivers and reverting to the default windows drivers did not yield results either. The dongle would be visible to my smartphone but would not connect as windows was not allowing incoming connections.

I made many frustrating attempts to fix this without success. I turned to a friend in the IT consolation industry to help me with the problem. With the aid of remote access via Teamviewer and a patched in data hotspot connection via a smartphone he was able to reconfigure the software and drivers for Bluetooth and restore full Bluetooth functionality to the system, all from sitting at his desk more than 30km away. Needless to say I was  impressed. 

After the bluetooth problem was solved we met in person to fix a few other things. including the the functionality of the FM radio system. The USB tuner dongle I chose is capable of much more than just FM radio, thanks to the powerful RTL232U tuner chip at its core. We installed a DVB-T tuner program on the computer to add the capability of digital TV to the computer. However due to ongoing driver issues and the non-TV optimized antenna on the vehicle this is a work in progress. 

A few other performance tweaks were made. We are planning further software tweaks to improve the ease of use of the system. More updates to follow. I would like to extend a huge thank you to  my friend for helping me with the project. 

As always, thanks for reading :). 

USB3 Hub Installation and rework of audio cable.

Hello and welcome to post #12 of my blog on building an in-car computer entertainment and navigation system. In this post I'll cover the reasons why, and how, I integrated a USB3 hub into my vehicle. I also replaced the signal cable that runs from the computer to the amplifiers. This post will be slightly more brief than the others as I don't consider it a vital part of the build, and I have some catching up to do on other progress that has since been made on the system.

Finished product


The hub I installed is a four port high speed USB3 hub which supports an external power supply as well as power from the host computer. It has four switches to individually power up the USB ports.

Parts List (From eBay):
(From local electronics store):
  • 2X Round SPST switches (though one of any switch will do)
  • Wiring and crimps
  • 4X 10mm M2 stainless screws, nuts and vibration-proof locking washers
  • Electrical Tape
Tools needed:


  • Solder, soldering iron, ect.
  • Dremel or die grinder
  • Drill
  • Marking pens, scribe, rule
  • Screw drivers
  • Bench grinder
  • Pliers, side cutters, ect.
Reasons for fitting the hub:
  • Increased potential for charging phones and devices. USB3 supports a maximum current of 900ma though with the use of an external power supply this can be greatly increased
  • Ease of access for plugging peripherals into the computer - Plugging in USB mice, keyboards and other interface and/or storage devices is somewhat difficult due to the concealed nature of the computer overhead in the roof console
  • Increased transfer speeds for storage operations such as copying movies or TV shows to/from the computer onto storage devices
  • Aesthetic appeal
The hub is located on the back of the centre console (the armrest/storage container located between the front seats) and will replace an existing system that I fitted a couple of years ago. The old system had four USB2 ports for charging devices, a cigarette lighter port for light duty power applications and a light for ease of use in dark conditions. In the coming photos the holes for the old components are obvious. The new hub covers these up nicely.

The first step was to isolate the power source to the back of the console then disassemble the back of the console. On my vehicle (GU Nissan Patrol) there are four screws holding the back of the centre console on and a couple more that hold the hinged lid on. All of these were removed to expose the back of the console, then I removed the console back plate from the vehicle and took it to the workshop.

Inside of the console with the old wiring present
I removed all of the old wiring bar the positive and negative connections coming into the system from the battery, then removed the old USB2 ports and cigarette lighter socket.

Back view of the inside of the console. The holes for the old USB2 ports and cigarette lighter are clearly visible. Also note this is a rear view of the finished product, the usb and power input cables are visible at the bottom of the photo.
The next step was to mock up the position and fit of the USB3 hub and design a way to mount it securely to the console. The hub easily disassembled via internal plastic tabs into three main components; the case, the backplate and the circuit board. I started by placing the backplate flush with the console then placing the case on top. It became clear that due to the shape of the centre console and the angled sides of the flat plate some material would need to be removed to ensure a snug fit and to allow the two cables to pass through the left side of the console and into the hub.

Note the angled sides of the plate where the hub has been fitted. Material was removed on the left side to hide the plugs.
I progressively drilled out then sanded away the plastic of the console with a drill and die grinder, regularly checking the fit until I was satisfied that the hub would fit nicely. Once that was complete, the next step was to make sure that the power input and USB3-B type plugs would fit without intersecting the back of the console. USB3-B is the current plug standard for high end smartphones and it incorporates the old USB2-Micro B type plug with a USB-3 micro plug. It became clear that the plug end of the supplied USB3-B cable was too thick to fit properly and was putting stress on the solder joints of the socket on the PCB. To resolve this problem I carefully sanded off the plastic outer casing of the plug end with a bench grinder until the wires and solder joints were exposed. I wrapped the lot in electrical tape to insulate it. I also used the grinder to create a flat face on the power plug as well.

PCB with the modified USB3-B plug inserted.

Once I was satisfied that the plugs would fit properly I carefully inspected the back of the PCB and backplate to find places to drill holes for the mounting screws in places that would not hit the underside of the PCB and cause short circuits. This was slightly tricky as in addition to this the holes must avoid the empty space underneath where the old components were installed in the console. Once I was satisfied I could securely mount the backplate to the console I drilled the holes in both the backplate and console and fastened the M2 screws.
Back view with the backplate mounted and the screws fastened
Moving to the front side the console I applied tape over the screw heads to prevent shorting on the PCB.

Backplate with tape over the screw heads. Note that the two screw holes at the bottom (the console is upside down in this photo) need to be accessed later to fit the console back to the car. Luckily the chamfered edge of the hub made this possible without removing the hub.
I then assembled the power plug by soldering two wires onto it and plugged it into the PCB along with the USB3-B plug, then fitted the PCB to the backplate and case onto the backplate. I trimmed the sides of the two switches on the bench grinder to ensure a snug fit.

The next step was to test the hub for correct function. To do this I used a car battery and an adjustable step-down converter, set to 5V (The standard voltage for all USB interfaces). 

Testing the hub
After I was satisfied the hub was working properly It was time to wire the assembly into the car. The old system I used to power the USB2 hubs used two of the adjustable voltage regulators pictured above stacked on top of each other and wired in parallel, but testing revealed that the current output was insufficient and there was an issue with the two regulators "Fighting" each other for current suply. This was caused by minute voltage  output differences between the two regulators which resulted in a high pitched whining sound coming form both regulators; an interesting phenomenon.  

Old power supply system
  
To rectify this I fitted a sealed high output step down converter that I had as a spare.


On my vehicle there is a convenient plastic rail inside the console which made mounting this very straightforward.

DC-Dc step down converter mounted on plastic rail
Once the converter was mounted I carefully wired the its +12V input wire to the top switch, ensuring the 5V output leads were correctly connected to the hub via the plug I assembled earlier (12V supplied to the hub would probably cause it to explode!). Since there was a second switch left over from the old system I added a LED bar light as an afterthought just so it  would do something.

LED bar light mounted on console
The next step was to do some cable management and run the USB3 extension up one of the pillars and through the roof to the computer.

System powered up with the bar light shining brightly. Note an ashtray goes in the centre of the console but due to my USB3 extension being delayed in the mail I left the USB3 cable hanging out of it until I could fit it. 
The final step was to fit the console back onto where it belongs and do a final current output test if the system using my in-line USB current/voltage monitoring device and a large load. The system performed flawlessly.

Final current output test. Note the system is probably capable of more current output but due to the limitations of the load I was using this was the maximum I could get out of it.

--------------------------------------------------------------------------------------------------------------------------

The next tweak to the computer system was to improve the reliability of the audio cable which supplies an audio signal from the computer to the amplifiers. I originally used a 5M long 3.5mm to RCA jack, but I inadvertently ordered a poor quality cable with even poorer quality plugs fitted to it. Consequently both plug ends of the cable were extremely temperamental and would regularly cause feedback from the computer to play through the speakers or simply not work at all. This problem gradually became worse over time.

To fix this I bought 6M of high quality signal cable from my local electronics store along with two sets of male RCA plugs. I then soldered one pair or RCA plugs to the computer end of the cable (I changed the interface from 3.5mm a stereo plug to RCA plugs as the computer's case has RCA outputs connected to the front panel output header on the motherboard). After that the old cable was removed and the new one ran in its place. It was then cut to length and RCA plugs attached to the other end before plugging them into the amplifier. 

That's it for this post. Stay tuned for future updates and thanks for reading.

I would like to thank my friend for helping me with the audio cable rework and removing and refitting the console for the 3rd time - you know who you are :).