Tag Archives: hack

non-IT how to – Bosch VP44/PSG-16 “camshaft” hall sensor fix

My mother-in-law happens to own Opel (or Vauxall in some countries where they drive on wrong side) Zafira A with Y22DTR diesel engine. Fuel pump in that engine is Bosch VP44 with PSG-16 management unit. For one reason or another Bosch has decided not to sell any spares for this specific version of pump. At the same time, there is single part that is prone to fail in these pumps and that part is hall sensor that measures pump shaft rotation (if you try to read ECU fault codes it is called “camshaft” sensor, but actually it is housed in pump itself). And of course this sensor failed.
So I searched around just to find that nobody would replace sensor alone, only whole pump assembly, which means ~2000 Euros around here. Neither did I accept the fact that I have to pay 2000 Euros for a repair of part that costs less that 10, nor did I have spare pile of Euros to throw in the car that by now has a value of around 4000 Eur.
First I tried to use some off the shelf hall sensor bought from Farnell, it was a bit too high (or thick depending on how you look at it) and was getting in a way of sensor wheel teeth. Next I found that the same sensor from different model of the same pump – VP44/PSG-5, looks the same and can actually be bought as a spare. The only obvious difference between PSG-5 and PSG-16 sensors is flat cable assembly that is integral part of sensor.
Next step was to source used, but known good sensor from PSG-5 and try to figure how to implant that into PSG-16. Solution was apparent because part of cable going into the sensor is of the same width on both sensors and seemed to have the same trace layout. So both cable assemblies were cut in a place where width matches, leaving a little bit longer cable ends to make them overlap and at the same time provide for necessary total length. Then plastic, that makes up cable body, was scraped off of one side of cable going to management unit revealing clean copper traces. Thin layer of solder was applied to those traces (I used desoldering wick to remove excess solder) and the same was repeated with the opposite side of cable coming from sensor. At this point I should have used some fuel resistant heatshrink tubing (like Tyco/Raychem DR-25) to make it sturdier, but I did not have it at hand. So I just went ahead and pressed both cable ends together and heated them with soldering iron. That provided for good enough electrical connection. Then some superglue was applied to the joint to make it stronger physically and sensor was soldered back to pump management unit.
Next day revealed that both sensors are indeed the same and after removing air from fuel lines engine happily started again.
1950 Euros saved and Bosch vs hackers – 0:1.

Kannel 1.4.3 vs PORTech MV-372 (or MV-37x for that matter)

If you got to reading this, you most likely know what is Kannel and what PORTech MV-37x is.
As you know MV lets you use it’s modems over telnet, just provide username, password, give some extra command and voila, you are controlling modem directly. So I wanted to befriend Kannel with MV. After quick glance over Kannel docs it seemed that there should be no problem. Nevertheless there is a problem, the “give some extra command” problem, Kannel does not know how to do that. In ten minutes this patch was born. It lets you use MV-37x device as GSM modem SMSC in Kannel. I do not know how useful it is for anyone, especially taking in account that voice calls are effectively disabled if modem is in use by Kannel (it just ATH0’s every RING it sees), but if you still think it is worth it, take the patch, apply it to sources, compile your Kannel, add following lines to your kannel.conf
group = smsc
smsc = at
modemtype = portechm
device = rawtcp
speed = 115200
host = ""
port = 23
smsc-username = voip
smsc-password = 1234
login-prompt = username:
password-prompt = password:
extra-login = module1
extra-login-prompt = "command: logout, module, module1, module2, state1, state2."
extra-login-ok = "got!! press 'ctrl-x' to release module 1."
keepalive = 20

group = modems
id = portechm
name = "Portech"
no-pin = true

and shoot away.

Disclaimer – I take no responsibility whatsoever for this patch and you are downloading and applying it on your own risk.
Another disclaimer – your extra-login, extra-login-prompt and extra-login-ok will most likely be different, you have to figure those out yourself