Trent's Magna



= Blog-style updates = I have below some blog-style dated update entries, click here to skip down to them

For the most interesting information check my youtube videos! They show demos of the hardware and software in use and lots of other interesting info.

Youtube URL: http://youtube.com/user/lathiat/

= Broken Images= (note that due to the broken wiki .. you cannot click on images / they are broken .. not sure when this will be fixed by the thumbnails are a good size and most other images can be found on my gallery here: http://gallery.me.com/lathiat/100917)

= The Man = Thanks for visiting ... I am Trent Lloyd (lathiat). You may or may not know of me, I tend to get around in a few circles, in particular


 * Bur.st networking
 * Linux.conf.au
 * Co-author of Avahi project

I work for Sun Microsystems in the MySQL Support Team by day, on the side I run Web In A Box - a business-orientated webhosting company based out of Perth, WA and by night I play with far too many electronic-gadgets.

Check out my website for more information about myself and talks I have done in the past: http://lathiat.net/

= The Machine =
 * Owner: Lathiat
 * Make: Mitsubishi
 * Model: Magna TS Executive
 * Type: Wagon
 * Year: 1994
 * Transmission: 4-speed automatic
 * Engine: 2.6L 4cyl 4G54 Astron

This is my 1994 Mitsubishi Magna TS Executive (Wagon) and I'm doing lots of cool geeky things with it.

Why you may ask? it is certainly no performance car, but it's mine .. I like to fiddle with things .. and I discovered that I can connect to the engine diagnostic link and read out some data and thus got inspired.

This car is actually in "surprisingly" good nick considering it's age and the tendencies for this particular model.

Currently I am on the way to putting all sorts of interesting hackery into the car, here is the grand plan

Plans

 * Remote start/unlock/kill/etc (a la Jonathon Oxer's Arduino Ignition)
 * Remote telemetry
 * Hook up microphone, speaker and potentially a camera to the GPRS/phone module
 * Write an interface for an iPod touch/iPhone rather than the 128x64 graphical LCD

Later more adventurous plans
* Under-seat LED lighting with independent seat color control * Live GPS tracking over GPRS * SMS alerts for Alarm status * Engine diagnostic readouts, fault codes, etc - via LCD

= Updates =

Update 12/04/2010
I have succeeded in getting my GPS tracker to work! Thanks to Harry McNally I used Miro Samek's QPNano UML Statecharts framework and now have it reading and uploading the position.

|View my tracker position

Next step is to start working on the ODB2 interface for my new TL VR-X Magna!

Update 04/01/2010
It's ALLIVVVEEE! The GSM modem/GPS (GM862) is now speaking direclty with the Arduino Mega.. and everything else is hooked up in a box.. only last thing to do is the LCD interface but the Lighting Controller, ECU Interface, GM862 and Arduino are all in the box and ready to go!

Software time...



Update 15/12/2009
Sorry for the lack of updates.. I have progressed to getting a box and all the parts into it, I just need to finish it up and start writing some software. Shame I don't have an LCA2010 deadline to get it done as I'm not going :(

Thought the car was being a bit funny this week, turns out that last oil change due to lack of availability we didn't put any in.

Put some back in today, jesus christ, the difference.. aikes.

Highly recommended...

Update 25/10/2009
Finally! After much pain.. even my MAX3232 solution didn't work but I moved to the RS232 prototype board from spark fun and I have successfully conducted both inbound and outbound TCP/IP connections over GPRS, hooray! GPS is working good too.

Off to more planning...

Update 03/09/2009
GSM/GPS unit is BACK! I'm just about to order a few parts - namely a 3.8V voltage regulator, a smaller 2.8V regulator and a MAX3232 and see how I go.

Update 23/08/2009
Got the report from Spark Fun today on my "faulty" GM862 GSM+GPS, unfortunately the report is: EVERYTHING LOOKS FINE!

This is a bit of a blow, I am clearly doing something silly.

Going to either pick up the RS232 development board ('known working' - but suboptimal as I'll have to max232 it again back from 12V to 5V for the Arduino) or when I get it back I'll look at assembling a better circuit with a MAX3232 or similar rather than my rudimentary voltage divider based circuit.

Car is happily back on the road now and got a good clean out today and I've sorted out all my electronics stuff today. Look forward to the return of the GM862 and more experimentation on the way to my "Hardware 3.0" which will be the combination unit. For this I am looking to design a few more custom circuit boards and am going to investigate display technologies other than the current LCD that will fit somewhere conveniently in the car for mounting. Alternatively I'm thinking of essentially having a "hand controller". But some kind of permanently mounted display would be better.

General Plan: - Get basic serial comms working - Test sending/receiving SMS - Test GPRS data
 * Get GM862 module prototype working
 * Investigate/decide on LCD solution and etch boards/make enclosures
 * Design/make PCBs required for GM862
 * Pull my dash apart to get into the alarm hookups to hook into detecting alarm status and door sensors
 * Write new software
 * Put it all together! Including my existing foot-well lights.

Update 12/08/2009
Today, I shipped off my faulty GM862 (GSM Modem + GPS) module back to Spark Fun for testing.

I have been unable to get any serial data from this device ever since I got it, but it does seem to operate correctly otherwise (status LED flashes as expected, changes based on antenna, no antenna, incoming call)

And I can TX/RX data on the GPS serial port.. just the GSM one I'm having issues with - which is unfortunately the one I need!

Airmail, should take a week or so, look forward to getting it back and continuing to fabricate some custom hardware for the GM862 and the LCD to mate up with.

Car is running B-E-A-UTIFULLY since I got it back from the mechanics, just needs a solid clean this week.!

Update 10/08/2009
SITUATION: NOT SO CRITICAL

I got a call from my mechanic this afternoon and they've found the fault, which apparently was something hidden in the wiring harness. Hopefully it's all sorted and we can move forward with more evil hacks!

UPDATE: Got car .. running good.. STAY TUNED!

Update 07/08/2009
SITUATION: CRITICAL

Engine issues! Working on this with my mechanic Steve from Steve's Shed at the moment - will get there hopefully soon. I have an awesome mechanic who lets me stick my nose in and between my car and some others we've worked on recently I have been learning far more about car mechanics than I ever figured I would :)

I haven't yet updated my last video to a nice one since my car failed soon after, but for everyones amusement:

Since I hadn't actaully published any yet (naughty!) I have posted up a copy of the latest source code: in Arduino PDE format here: http://lathiat.net/files/CarDiagnsotic_Dynamic.pde This version is quite slow, I think because I spend most of my time updating the screen calling the dynamic conversion functions. Might look at getting these inlined or doing a switch/case statement etc to speed it up.

This is very rough.. but it works! Unfortunately didn't help me when my car wouldn't start last week, but I did try! See the Youtube video of it in action here: http://www.youtube.com/watch?v=hMSnguTxjIs

You can also find my slides for BarCampPerth here: http://lathiat.net/files/BarCampPerth3-GeekMyRide_Arduino_HardwareHacking.pdf

Look forward to more updates soon!

Update 24/07/2009
I have made a new youtube video! But it's just a quick preview done with my iPhone .. I will make up a nice video this weekend after I iron out a few more bugs. 

Currently its a bit slow and various values are not reporting correctly, but generally speaking it is working! Now polling over 24 values from the ECU.

Update 22/07/2009
Success!

I got my new development board of Arduino Mega + 128x64 LCD working and reading out engine diagnostics again today.

I successfully have a program reading out both RPM and Battery Voltage at the same time onto the LCD.. I was also able to read out the fault codes (which I just reported back via Serial only) and I think I interpreted it correctly (the fault light I had the other day is apparently from the coolant temperature sensor)

I am now working on writing a much better program, implementing menus, a state machine, and a buzzer for if the fault light comes on. After that I will look at building up a circuit board for the gear and getting a permanent installation done!

Update 16/07/2009
New youtube video!

http://www.youtube.com/watch?v=RPPXmGDXcV0

Showing off my foot-well lighting!

ECU
Managed to get my Arduino Mega going with the interface to the ECU and successfully extracted various values (RPM, Battery Voltage, Coolant Temperature, Fuel Trims)

For reference here are some of the values I pulled:
 * Coolant Temperature: 0x40 => 64 => 215.2C (This is obviously incorrect!.. apparently the formula is wrong)
 * Fuel Trim Low: 0x88 => 136 => 106.8%
 * Fuel Trim Medium: 0x80 => 128 => 99.84%
 * Fuel Trim High: 0x8B => 139 => 108.42%

No idea if the above values are actually accurate/etc .. all based off mmcdlogger calculations. Did not see any evidence of the 0xEF values I was seeing with my old ATmega8535 + LCD setup .. so hopefully that won't re-occur.

Next step for me is to write an Arduino app to get all of the values, then a "Processing" app to plot and record these values try to get some baselines.

GSM+GPS
Really ticked off with this.. it doesn't work! I have managed to get the GM862 powered up, status light works correctly, changes based on registered, not registered, incoming call.

I can also read off the serial port for the GPS and get GPS data .. which is accurate, gmaps has it right on my roof .. but I can't for the life of me get the GSM modem side of things to utter a single character over serial.

Filed a support ticket with sparkfun but I suspect they are just going to tell me to go away as I probably broke it poking it with my breadboard! $250 => DRAIN. gah.

Update 14/06/2009
More updates! New action video coming soon.

First project successes, photos: http://gallery.me.com/lathiat/100917

I have


 * Installed Pioneer DEH-5950-MP deck
 * Installed companion iPod music adaptor
 * Installed Altronics 3230 power supply kit
 * Arduino Dieciemele (temporary)
 * Custom TLC5940 circuit board: http://lathiat.net/files/tlc5940-brd3.png (UV etched)
 * 4x IKEA Dioders in (1 in each seat)

I now have under seat lighting!

Currently it just runs a demo program .. fading all seats the same colour around the spectrum.. R=>G=>B a few times then it does a chase from left to right accross all colours all seats and starts again. Looks really nice.

I located my alarm box in (a secret location) so I am going to hook into that so I can get the door open sensor to make the lights a bit smarter. The plan is probably to have each open door go bright white and then fade out to a colour .. I'm thinking maybe green after looking at the colors.

Project on the GM862 GPRS+GPS board for GPS tracking and other goodies is underway .. draft schematic: http://lathiat.net/files/gm862.png

Currently I am trying to get the correct low-dropout regulator to do my 3.8V regulation and build up the schematic on a bread board to make sure it will work before etching the board.

I managed to make a big mistake today .. I inadvertently created a short and was silly enough to first kill my 13.8V bench supply and then make big smokies with a 7.2V LiPo .. unfortunately it's for R/C cars so it's capable of over 200A of *continuous* current .. 250A+ peak!

I have also made a few other changes mechanically lately


 * Applied some MBL8 to attempt to quiten a noisy lifter .. common issue .. hasn't quite solved the issue but MBL8 is good anyway. Will have to work on that.
 * Had to removed, clean up and replace the intake manifold gasket (had a coolant leak) .. lots of razor razor blade application.
 * Replaced right front CV joint (boot had broken and had started spitting it's grease out)
 * Thoroughly degreased the whole front end .. wow that metal is gray.. not black.
 * Replaced KNOCK sensor (was very slowly leaking oil) .. $130 trade price .. ouch.
 * Replaced oil pressure switch (also very slight oil leak) .. only $10.

Neither of the oil leaks were particularly noticable - never left traces/couldn't be seen so well until we had things apart a bit more but was worth doing. The knock sensor hides in under the intake manifold so that was not obvious at all. But was worth cleaning up never the less.

Lastly my extra neat hack is I want to put 4x LEDs to light up the center console area where my Mints sit .. they are a permanent fixture and I think they look cool but you can't see them at night. Will fix!

Update 22/05/2009
So this project is steadily progressing, a few updates


 * I now have an Arduino Mega as the core of the car
 * As well as a graphical 128x64 LCD .. and a standard Arduino which will drive the LCD
 * A custom-made board using a TLC5940 LED driver chip (http://lathiat.net/files/tlc5940-brd.png)
 * 4x IKEA Dioder Light Bars for foot-well lighting
 * Telit GM862 GPS+GSM module for GPS tracking and remote internet telemetry

The TLC5940 board should be etched this week. After that I need to design 2 more boards, 1 to mate the Arduino Dieciemele and the 128x64 LCD together .. and another to interface with the GM862 module which needs among other things, a 3.8V regulated power supply and a 2.8V<->5V logic level convertor.

What I am waiting on is a 5V+12V regulated power supply. Haven't ordered yet as I am unsure which unit to go with. At this stage I am considering the OPUS Dual-Output 80W device seems to be the way to go.

Update 16/04/2009
This video is a demonstration of a little device I've made to hook up to my Mitsubishi 1994 Magna TS Wagon.

It reads values from the ECU diagnostic link and displays them on an LCD. I talk a little bit about the circuit itself and a demonstration of the first prototype working (which I just got working today)

So far it only displays RPM in Hex (just got this working 18 April 2009) - working on some better softawre now the proof of concept is working, as well as getting it off the breadboard and onto a PCB and the 128x64 LCD will be on a flylead.

YouTube Link: http://www.youtube.com/watch?v=8df5mVIZQFA

= Links =
 * MMCD - http://mmcdlogger.sourceforge.net/ - palm program to do similar stuff and schematics for the hookup
 * Australian Magna Club - http://www.aussiemagna.com/
 * Twitter - http://twitter.com/lathiat
 * Home Page - http://lathiat.net/