Nexus 6P Headset Volume down button fix

Nexus 4 owners, and I am one of them, were disappointed to find out that it only support 1 button headset control, so no buttons for Vol+ and Vol-. When I bought the Nexus 6P I was hoping it will have support for 3 buttons control. After I got the phone I tested it with my Samsung headset, the play/pause button and the Volume Up button work, however, Volume Down didn’t!!!

I was hoping it is a faulty headset since that I can replace easily, but if it was a design mistake in the Nexus then it might be a problem forever. Luckily and after a quick Google search I found a post on reddit from someone asking if the Nexus 6P has support for 3 buttons headset. The answer was yes, so that is a good news, but one of the replies was from a reddit user “buddhra” who was having a similar problem as mine and did a further test to find out that the Nexus 6P acceptable resistance range for the Vol- doesn’t stretch to the maximum range which the Android specs allows.
Here is a snapshot for part of the post:

Reddit Nexus 6P 3 button headset support problemSo I tested mine and found the resistance of the third button (Vol-) to be 630 ohms, which is within the Android specs but seems out of what the Nexus 6P can recognize.  Not sure if it is a software or a hardware problem in the Nexus 6P which I won’t be able to fix easily, but I know that I can instead fix the headset itself to give the readings that the Nexus 6P expects.

So I opened up the headset control, it is very small and was glued together, but using a thin blade i managed to open it up:

Opening up Samsung headset controlZooming into the circuit board and tracing the PCB wires I figured how the resistors were connected and managed to replace one of the resistors (R3 = 356 ohms) with one of a smaller value (200 ohms) and it now works. (The resistors used in the board are size 402, however, I had one with size 603 which is a little bigger but there was enough space to fit it without any problems):

Samsung Headset Fix for Nexus 6PAll Android headset controls follow a similar way to provide the needed resistance, so your control board might differ but it should be similar.

Add Wireless charging to your car phone holder

Being a lucky Android user with the luxury of Wireless charging  I thought about adding it to my car since I use it at home and love it. I have seen some charging pads for cars but that means you have to place your phone in a way which makes it unusable while I want it to charge while using the phone for navigation so the best place was the phone holder. So i bought one that allows me to place the phone near an A/C vent (so it will cool down the phone during long road trip when charging and using the navigation at the same time), I also bought a bare board Qi wireless charging board from eBay (~$3.6), you can also buy the cheaper round charging pads and take the internal parts, but the bare board uses better components which I though worth the extra dollar.

Phone holder and Qi wireless charging board Continue reading “Add Wireless charging to your car phone holder”

Robo RC

When my son wanted me to buy him a toy robot I asked him if he would like to build one with me instead, he was so interested so I told him that it will be a car robot with two motorized wheels controlled from the phone over bluetooth and he needs to sketch the design then build it using Lego blocks.

IMG_20150110_115340 IMG_20150110_115358 IMG_20150110_115409IMG_20150301_184414 IMG_20150301_184527 IMG_20150301_184516 IMG_20150301_184501 IMG_20150301_184432 device-2015-03-07-210547
 

While he was busy with the sketches I started looking for parts, so I went to eBay and found these wheels


They come in two speeds, I ordered the slower one since it has more torque.
These wheel will need something to control them since the Arduino micro-controller is not strong enough to drive them with enough current so wanted to build an H-bridge using transistors (which I have already) but I found  a module based on the L298 chip  which is very cheap and has a voltage regulator too, awesome.

Next was the bluetooth module, and I went for the HC-06 which is easy to use and also cheap.

Bluetooth HC06-2And finally is of course the Arduino board, I got the Arduino Pro Mini for its small size and low cost.

arduino_miniEven though I actually used the Arduino Uno for the development since it is much easier to upload the code and fix mistakes.

I got them all from eBay with the cheapest price I can get so some took about a month to arrive and I wasn’t in a hurry:

2x Car Robot Wheels: $6.00
L298N Dual H Bridge: $3.00
HC-06 Bluetooth Module: $4.00
Arduino Pro Mini: $2.60
40pin Dupont Wires: $1.50
Total = about $17

You will also need an Android Phone or tablet, any with Android 3.0 and up should do. Lego blocks or anything to use for the car body.

Here is a video we made showing how to use the app and explaining the car we built and its main parts:

To get the Andriod app click on the Google play icon below:
Android-app-on-google-play

for the Android source code click here
and for the Arduino code click here

Inside a fake ELM 327

I got myself on of those cheap Bluetooth OBDII dongles but it didn’t work in my car (2005 Dodge), it simply couldn’t detect the protocol which is SAE J1850 VPW used on most Chrysler/Dodge I believe before 2008. So I took it apart and as you can see in the picture it has two stacked circuit boards the one of top has a bluetooth chip (BEKEN BK3231Q) and a CAN protocol transceiver from NXP (TJA1040)

Fake ELM327

The flip side of the top board contains a CAN controller (MCP2515) from Microchip.

CAM controller MCP2515

However, and what is surprising is the bottom board which contains only voltage regulators for 5v and 3.3v and most of the OBD-II pins are not even connected!
OBD-II connections

Let’s compare  the connected pins to the pinout of the OBD-II connector in the image below

OBD2_pinout

So the 12v VCC (pin 16 in red) is connected and the two ground pins (pin 4 & 5 in gray). How about the different OBD2 protocols? let’s see:

  • CAN  (ISO15765) used pin 6 & 14 (green color) and they are connected.
  • ISO9141/14230 uses pin 7 & 15 (yellow color) and they are connected.
  • J1850 PWM uses pin 2 & 10 (blue color) and they are NOT connected.
  • J1850 VPW uses only pin 2 (blue color) and it is NOT connected.

So it is clear that this will not support any of the J1850 protocols which are used by most old American car makers (Chrysler/Dodge/Jeep, Ford, GM), luckily I think all new cars (2008+) are using the CAN protocol which is the newest among the others.


Update: Another fake OBD2 reader

I bought another Bluetooth OBD-2 reader that is slightly larger than the one I got before hoping it would have the parts needed to support all protocols and since the seller also claim it does. (Spoiler: I got a full refund).

obd2_01

Guess what? It is exactly the same as the other one, it didn’t work on both of my cars so I opened it up and unsurprisingly it has the same guts (same chips) in slightly different arrangement.

obd2_02 obd2_03 obd2_04
 

I think having full support is a little too costly even for the Chinese manufacturer, also don’t be fooled by some sellers on Amazon who sell the same exact models for $15+, increasing the price won’t make it work. I also won’t recommend using these basic devices in your car since they don’t have Bluetooth authentication! and any nearby hacker can connect to them and have full access to your car CAN bus and do whatever your car manufacturer has allowed on that bus. You might have heard about the recent car hacks like disabling the breaks and such.

So if you are looking for something that works with all protocols and also safe to use I would go with trusted brands that have been tested by many users, e.g. “OBDLink LX Bluetooth” which looks like the perfect solution, good quality build, support for all ODB2 protocols, sleep mode and has a security button that need to be pressed to allow Bluetooth pairing I have not used it though since it is a little expensive.