North American Motoring

North American Motoring (https://www.northamericanmotoring.com/forums/)
-   Electrical (https://www.northamericanmotoring.com/forums/electrical-127/)
-   -   Electrical Getting more out of the R53 MFSW (https://www.northamericanmotoring.com/forums/electrical/155161-getting-more-out-of-the-r53-mfsw.html)

DaveC 09-29-2008 03:10 AM

Getting more out of the R53 MFSW
 
Well, I've really nerded out this time.

I was really wanting to use those extra buttons (R/T, Tel) on my R53 3 Spoke MFSW. I don't have the factory or Parrot Bluetooth, in fact, I really don't use my phone at all while driving (I prefer to concentrate on driving since the MINI makes it so fun).

It's taken a few months of experimenting and cobbing together some parts but I've figured out how to read the on board car communications over the MINI's K-Bus (same as the I-Bus in BMW's) that is used for low priority/not time sensitive signals (stereo controls, door lock states and switches, lighting status information, etc) that the MINI uses to keep track of and control its on board electronic sub systems.

Basically, I hooked into my unused CD Changer control plug (3 wires on a female plug: Ground, + 12V, K-Bus serial data) in the boot so I didn't have to cut into any of the MINI's wiring harnesses. I did have to run a cable up to the front of the car (not a big deal, tucked it under the mats).

There is a communications module that I bought from a guy in Germany that reads the K-Bus (I-Bus) signals connected to a custom programmed PIC device called an Arduino (www.arduino.cc) which watches for the unique 5 digit codes each MFSW button push causes to be sent across the K-Bus. The Arduino PIC then controls other external devices when the appropriate button is pushed.

ie: The "R/T" button Mutes my V1 Radar Detector, the "Left" and "Right" track pad buttons cause my iPod to go back or forward one track, the "Tel" button will Play/Pause the iPod. At some point I'll also map one of the buttons to the garage door opener clicker as well. Actually, I almost had it working but I apparently fried my garage door clicker with my soldering iron during my hacking attempts.

I'll post pictures later if anyone is interested. Total cost: $40 for the K-Bus communications module, $20 for the Arduino PIC, $30 for the custom Circuit Board, $40 for the iPod Charger/Controller (http://www.griffintechnology.com/products/autopilot) that I've taken apart and hacked into, and around $5-10 bucks for assorted transistors, switches, wiring, prototype board to solder the thing onto. Oh and the time it took to figure out the control codes and do some custom software for the Arduino PIC to look for IBUS signals.

The nice thing about this set up is that it is a really flexible solution that can be used to interface/control most anything that has a hardware/electronic switch. I used the low tech approach of soldering wires in parallel to existing hardware switches on the circuit boards of the stuff I was trying to control and having the Arduino PIC switch them on/off via transistor or relay switches. Or in the case of the V1, all you had to do was to close the connection between 2 wires on a RJ11 phone cable connected to the V1 to mute it.

If anyone is interested in making their own (I'm no electronics wiz like Ian aka GBMINI who makes the Auto Up window control circuits and had made something like this awhile back as a limited run) let me know. I'd be happy to help out and get your Arduino PIC programmed, but you'll have to be skilled enough to figure out how to wire up your other electronics yourself (if it's not a V1 Mute or a Griffin iPod charger/controller that I've already figured out how to hack).

More ambitious things to do/future enhancements:
-Display messages on the stereo head unit or on board Nav screen by sending messages across the KBus
-Display iPod track information (harder to do as the iPod requires a very high speed serial connection that the Arduino can't keep up with)
-Display V1 Radar Detector information on the stereo head unit
-Integrate a aftermarket GPS unit's controls into the MFSW's buttons.
-Directly control the V1 Remote Display and have more intelligence for the V1 (ie. auto muted when speed is below 30 mph, GPS integration for auto muting of known false radar signals, etc)
-Integrate a Blinder M40's alerts with the V1 alerts and mute function and to be able to toggle the power of the M40
-Figure out how to get a Speedometer reading over the KBus and build a Heads Up Display with the Current Speed, Shift Light, V1 and M40 alerts (that'd be really nerding out).

Dave

DaveC 09-29-2008 03:33 AM

Pictures of the Circuit Board
 
1 Attachment(s)
Here is the Circuit Board that I had made to interface with the IBus module and the Arduino PIC.

To the left (wrapped in Electrical Tape) is the RS232 Serial IBus module from http://www.reslers.de/
It's all wrapped up because it's sitting loose in the container holding the electronics and I didn't want the two circuit boards to touch and short something out.
(I had to solder 3 wires and clip one of the legs off an IC on his board to interface it with the Arduino directly. Not for the faint of heart.)

The green thing in the center is the Arduino MINI that is the brains of the whole thing. Across the top are 4 transistor switched circuits that the Arduino controls based on MFSW button pushes. To the left of it is a 4 wire connector so you can re-program the Arduino without having to remove it from the board.

Top left is an area pre-wired with cutouts for mounting a RJ-11 Phone Jack that can be used to connect to a V1 to mute it.

The open area with lots of holes to the right is an area I can add additional transistors and circuitry for switching additional devices in the future. In addition to the 4 outputs (across the top) that are built into the board, there are 6 Digital outputs and 4 Analog outputs that are unused and can be mapped to other MFSW Button push/IBUS events.

Right now I have 2 extra circuit boards (they cost me $30 each to have made) if anyone is interested in playing around with this. You'll have to get/provide your own Arduino (which I can program for you) and populate the board with your own transistors/resistors/socket/etc. If you aren't handy with a soldering iron, this is NOT the project for you.

I am not an expert electronics guy nor am I set up right now to produce these boards in large quantities (takes about a week to have them made up and sent to me), nor am I really set up to do all the soldering for someone else.

This was however a fun project to figure out and design/build.

Dave

Note: I have to put in a disclaimer that I cannot be responsible for any damage you do to your MINI with this stuff.

While experimenting and figuring things out through trial and error, I have numerous times hooked up stuff backwards, shorted out stuff and generally hooked stuff up all wrong and have only blown one fuse (for the Stereo Head unit) with no other ill effects. The only part actually hooked up to the car's critical electronics (IBus) is the interface from Reslers.de (which is engineered very well and quite robust/well tested). My circuit board above only draws from the +12V and Ground for power and in it's current configuration only READS data from the IBus and does not send data (so as not to risk messing things up).

DaveC 09-29-2008 04:11 AM

Picture of the IBus interface
 
1 Attachment(s)
From http://www.reslers.de/IBUS/index.html

You could build a RS232 circuit for your Arduino to talk with the IBus module, but I chose to interface the two directly to save having to build another complex circuit.

The RS232 version of the IBus module was easier to hack/work with as the Max232 DIP used on the RS232 version is MUCH larger than the one in the USB version (surface mount chip with VERY small pins).

Cut Pin 9 on the Max232, solder a wire from the circuit board where Pin 9 was soldered to (or it's solder pad on the underside of the board) -> Arduino Rx pin (Read data from the IBus).

Solder a wire to Pin 10 on the Max232 (or it's solder pad on the underside of the board) <- Arduino Tx pin (Send data to the IBus)

Solder a wire to Pin 11 on the Max 232, this stays High while there is data/activity and goes Low when there is no activity on the IBus and when it's safe to inject data into the IBus.

Another US company also offers IBus communications modules: eedesignkits.com
I have however, not been able to get in touch with them to see if they are still offering these items for sale and their designs are surface mount and may be hard to modify/hack into interfacing directly with the Arduino.

Dave

chris.j.lamb 09-29-2008 04:58 AM

EXCELLENT!!!!!!!!!!!!!!!!!!!!!!!!!

Poppa Bear 09-29-2008 08:42 AM

Looks like I've got another project for Maggie! Thanks for the write up. Though I'm no expert with an iron, I'm not afraid to try something like this. That is, right up to the point of adding electricity!! That's some serious voodoo there!!

Do you have the layout for the circuit board or is it not one of those things I could etch myself? Since I'm stationed in the Netherlands, I don't know where I could get something like that made over here.

Again, thanks for the investigation/invention. It'll be easier for the rest of us!

Cheers!!

DaveC 09-29-2008 09:40 AM

Poppa Bear,

I looked into etching the boards myself but it seemed quite involved and not worth it materials/cost wise for just a couple of boards for a one-off project. If you've done it before or have the expertise then it might work out for you.

Your alternatives are to use something like a prototyping board (for example: http://www.hobbyengineering.com/CatCPSOLD.html ) and just solder your connections by hand using short bits of jumper wires or blobs of solder. The schematic for the board isn't that complex so this would likely work well for a one off.

I got it up and running using a breadboard prototype affair before committing anything to solder so that will work in a pinch also, but is a much less permanent and bulkier solution.

I have to clean up the schematic a bit and revise a couple of things that I forgot to put into this first PCB design. I'll try to get it posted later today.

Dave

Big Daddy 09-29-2008 09:50 AM

Nice job!! :thumbsup::thumbsup:

BlimeyCabrio 09-29-2008 10:45 AM

Oh Hell Yes!

Awesome! I've been trying to figure out a solution for this for almost two years now..... this is FANTASTIC. :thumbsup:

This is my nominee for post of the month. :nod:

DaveC 09-29-2008 11:11 AM

Schematic
 
2 Attachment(s)
OK, here is my updated schematic.

If someone is better than me at this stuff (that won't be hard) please check my circuit layout and any corrections would be appreciated. I'm especially wondering about my choice of 41K resistors for the 2N2222 transistors used for switching. The Arduino is putting out 3.5-5 V out of the output pins (I think), is 41K too high? Too Low?

Also, can someone who is knowledgeable double check the orientation of the Transistors. It doesn't seem to matter for the lower voltages I'm switching (ie. the iPod adapter's switches) but I'd like to make sure that this is correct so it won't give anyone any problems if they're switching higher voltages.

Note: This is being released under the Creative Commons License for Attribution/Non-Commercial use only. http://creativecommons.org/licenses/by-nc/3.0/
For the Lawyers:
This design does not make any claims to do anything in particular, nor does it claim to do anything well at that. If you implement the design and hook it up, you assume all risks and fault if your MINI is damaged by using it. By downloading the image, you agree to abide by these terms.

Dave

big howe 09-29-2008 11:29 AM

It looks like you've gone way past this but, Newministuff used to have a kit on their site that was basically a plug and play unit that converted one of the two hands free phone buttons to a relay closure. I don't see it on their site now, but it was there for a few years.

Dave, here's my million dollar question. My car is an early 05, and didn't come with the two phone buttons on the MFSW. Can I buy the module for the steering wheel and plug it in and go with your stuff here, or do you think there would be some dealer reprogramming/magic/wallet lightening that would need to occur to get the module on the bus? I only want the two buttons for external uses, such as closing a relay, nothing on the bus.

BlimeyCabrio 09-29-2008 11:39 AM

NewMiniStuff can't get the modules they used to sell anymore - the vendor that made the module they used discontinued them, and THREW AWAY all their inventory :eek2:

And those really only enabled ONE button on the MFSW... didn't have the flexibility to capture and respond to most anything on the bus the way DaveC's does...

DaveC 09-29-2008 11:56 AM


Originally Posted by big howe (Post 2487585)
It looks like you've gone way past this but, Newministuff used to have a kit on their site that was basically a plug and play unit that converted one of the two hands free phone buttons to a relay closure. I don't see it on their site now, but it was there for a few years.

I never saw the one Newministuff made. I don't know if they were actually decoding IBUS signals or just tapping into the Steering Wheel wiring harness to read the button push and trigger the relay.

This circuit is probably more like the one off/custom circuit Ian made to control someone's iPod awhile back. Don't think he's ever made it commercially available though.


Originally Posted by big howe (Post 2487585)
Dave, here's my million dollar question. My car is an early 05, and didn't come with the two phone buttons on the MFSW. Can I buy the module for the steering wheel and plug it in and go with your stuff here, or do you think there would be some dealer reprogramming/magic/wallet lightening that would need to occur to get the module on the bus? I only want the two buttons for external uses, such as closing a relay, nothing on the bus.

I'm not sure what you're asking here. I think what you are saying is that your MFSW only has the 4 direction arrow/buttons on the left hand/9:00 side of the steering wheel, not the "R/T" and "Telephone" icon buttons as well correct? I didn't know they came that way.

I'm not at all sure how you go about converting the module in that side to the one with the extra 2 buttons or if it requires additional dealer programming. Have you checked around to see if anyone else has done the upgrade short of putting in a completely new steering wheel?

Dave

big howe 09-29-2008 12:43 PM


Originally Posted by DaveC (Post 2487622)
I never saw the one Newministuff made. I don't know if they were actually decoding IBUS signals or just tapping into the Steering Wheel wiring harness to read the button push and trigger the relay.

This circuit is probably more like the one off/custom circuit Ian made to control someone's iPod awhile back. Don't think he's ever made it commercially available though.



I'm not sure what you're asking here. I think what you are saying is that your MFSW only has the 4 direction arrow/buttons on the left hand/9:00 side of the steering wheel, not the "R/T" and "Telephone" icon buttons as well correct? I didn't know they came that way.

I'm not at all sure how you go about converting the module in that side to the one with the extra 2 buttons or if it requires additional dealer programming. Have you checked around to see if anyone else has done the upgrade short of putting in a completely new steering wheel?

Dave

I've asked the local dealer(Niello), and with them it amounts to torture to get info on mods and retrofits. They assume you want the whole phone package added which I don't. I have changed the steering wheel out, and it's just a module on each side of the steering wheel that plugs into the bus. There should be a new module which would have the 4-direction pad for the radio controls and the two new phone buttons. Then I would need the silver cover. Beyond that, I'm not sure how to get it to work. I've never seen anyone here do it.
I'm pretty sure Newministuff tapped the bus with their unit. If you wanted both buttons I think you had to buy two units and they would somehow get the connectors right for you, but I'm not sure.
Guess I'm back to square one.

DaveC 09-29-2008 02:22 PM


Originally Posted by big howe (Post 2487665)
There should be a new module which would have the 4-direction pad for the radio controls and the two new phone buttons. Then I would need the silver cover. Beyond that, I'm not sure how to get it to work. I've never seen anyone here do it.

Sounds like there's no way of knowing if it'll work until you actually try it. That or get a salvaged/used MFSW and install a whole new steering wheel (not trivial, there is a DIY/howto on Motoring File I think).

I would guess (>50% chance) you'll have to have the Dealership re-flash your car's computer to recognize the new steering wheel, but I cannot be sure. Then again, maybe it'll spit out the right IBUS codes right off the bat, but I can't be sure.


Originally Posted by big howe (Post 2487665)
I'm pretty sure Newministuff tapped the bus with their unit. If you wanted both buttons I think you had to buy two units and they would somehow get the connectors right for you, but I'm not sure.
Guess I'm back to square one.

If you needed a unit per button, it sounds like it tapped the actual wiring harness for the hardware switch cluster. Each button puts out a different series of IBUS codes depending on if it has detected a Down, Up or Hold (if the button is held for > 1-2 seconds, however some buttons don't put out Hold codes). It doesn't make sense to me that you'd have to program and keep in stock 2 different hardware versions to detect different buttons. I'm guessing their box probably just tapped into particular wires corresponding to the individual buttons in the wiring harness to trigger relays w/o any sophisticated/programmable electronics in the chain would be my guess.

The nice thing about using a pretty capable PIC like the Arduino is that you can use potentially ANY IBUS signal (lights, ignition, speed, etc) to trigger any number of events. Since this set up is only using 4 digital outputs, there are 6 more digital and 4 analog pins to work with (actually 8 analog pins if you solder 4 additional header pins onto the unit) for a grand total of 18 outputs that can be controlled, some of the outputs can be PWM'ed for some finer control as well, and there are routines to control Servos from these pins. With some crafty programming, the Arduino can do some pretty sophisticated/complex things.

In addition, the Arduino can communicate over a I2C serial bus to other I2C devices in case you need to daisy chain more Arduino or other serial devices/controllers.

Lots of details here on this nifty little device: www.arduino.cc

I used the more expensive (approx $40) Arduino Mini in my setup (16 MHz clock speed), but I've designed the board to be compatible with the more economical Arduino Pro Mini (8 MHz clock speed, other specs are pretty much identical) which should be just fine for this application. The fact that these things are so cheap and capable for the price still blows my mind away.

Dave

BlimeyCabrio 09-29-2008 02:40 PM

The old NewMINIStuff module DID read the IBUS... never heard the story about getting two to run the two buttons before... only thing I ever heard was that it was "hardwired" to only read one button / respond to one code. It was an integration module Mikey got from some company that did lots of these things for audio/phone integration for various cars.

rkw 09-29-2008 03:18 PM

I have the newministuff module. It installs on the harness at the back of the radio and works through the iBus. There were two variations -- one that controls a relay (I have this), and one that triggers radio mute.

I have the OEM rear view camera, and I use the module to trigger on-demand viewing (the camera is normally enabled only when reverse gear is engaged). I could have done this with a simple toggle switch, but it's slick to have it on a steering wheel button.

DaveC 09-29-2008 04:09 PM

So it sound like they did create 2 versions, one for each specific button. Interesting way to do it I guess.

Their method of hooking up to the stereo head unit harness is cleaner but much more involved. Hooking it up in the Boot at the CD Changer gives you the IBUS data line, Power and Ground all in one place without having to cut/splice or take anything apart.

The downside is you have to run a cable up to the front (I hacked up Cat 5 cable with connectors), but this isn't a big deal as the cable tucks under any floormats and isn't really visible. You can still tap into the Stereo Harness if you'd prefer, I just haven't done that myself so can't give any instructions/directions on how to accomplish that.

BTW, I've uploaded updated Schematics and a Block diagram showing how things go together in post # 9:
https://www.northamericanmotoring.co...57&postcount=9

Dave

DaveC 09-29-2008 04:39 PM

Getting IBUS-Arduino to work on a R56
 
I was thinking that there sould be little difficulty getting this to work on a R56 as long as the IBUS is still used. I found a 6 plug connector in the Boot of a R56 that might be the CD Changer connector (the R53 had 2 plugs, a IBUS/12V/Gnd plog and a 6 pin plug that carried the actual analog audio signals and or digital audio signal).

Anyone know if the IBUS signals from a R56 are the same and what the Pinouts for the R56 CD Changer looks like? I have the ability to listen in on an IBUS signal and read/capture IBUS codes if there are any R56 owners here in So Cal/OC area interested in getting a version to run on the newer MINI's.

Dave

rkw 09-29-2008 09:47 PM


Originally Posted by DaveC (Post 2487929)
So it sound like they did create 2 versions, one for each specific button.

My recollection is that the relay and mute modules were both implemented only for the Phone button (thus you can only use one or the other on a car).

There has been a project by the people who created the MCAW window auto-up product (not the original by Ian Cull; the MCAW circuit was developed later). They proposed a circuit for the MFSW buttons, but wanted pre-orders before moving ahead with a production run. They didn't get enough interest and the project was abandoned. Some information here: http://www.mcaw.info/phpbb/viewtopic...2c7517f05f24b1


Originally Posted by DaveC (Post 2487976)
I was thinking that there sould be little difficulty getting this to work on a R56 as long as the IBUS is still used.

Sorry, but IBUS is so yesterday :lol:. The R56 uses CAN and fiber optic MOST buses.

Have you seen the BMW Wiring Diagram System (WDS)? Look at this thread: https://www.northamericanmotoring.co...d.php?t=154581. The WDS covers both R53 and R56. Here is a brief introduction to the MOST bus: http://www.mcaw.info/wds/mini/us/zin...-606582002.htm.

DaveC 09-30-2008 04:08 PM

Muting your V1 or Escort Radar Detector
 
2 Attachment(s)
One of the things I use the IBUS Arduino board for is to mute my V1 from the steering wheel. I have my unused R/T button mapped to this function.

Both the V1 and the Escort use a power cable that terminates in a RJ11 jack that provides power (+12V and Ground) and a wire for a remote Mute switch, The V1 uses the 4th wire for Serial Data to its remote display that shows the same information as the main unit. The Escort uses this 4th wire for a simple LED on it's remote display.

To do this on a V1, you would close a switch that grounds the Mute wire. Below is the V1 cable when viewed on end. This works out to wires hooking up a RJ11 cable so that the Black Wire (Mute) #2 is shorted with the Green Wire (Ground) # 4 in the RJ11 Jack Pin out picture.

For example, in the schematic, I use the NPN transistor switched output 13. The Black (2=Mute) wire is hooked up to the In13 pin and the Green (4=Ground) wire to the Out13 pin. The Arduino is programmed so that upon detecting a R/T button press, it sets Output 13 to high, causing the NPN transistor on that output to effectively short the Black and Green wires thus muting the V1 as if the mute button was pressed. It waits for 100 msec, then Output 13 is set back to low and two wires are no longer shorted, same as releasing the mute button on the remote display.

I have the V1 hooked up this way:

V1 Remote -> (AUX jack) Direct Power Adapter (Power Jack) <- RJ11 Phone line splitter

2 RJ11 phone cables are then plugged into the RJ11 Phone line splitter in parallel (make sure they are the ones with 4 wires, not just 2). One cable goes to the V1 and a second cable goes to the IBUS Arduino circuit. This should work also if you use the cigarette lighter power adapters that have 2 ports if you put the splitter into the power port.

If you put the splitter on the AUX jack side when wired this way, this doesn't seem to work and the remote display stays dark. I suspect that if you want to wire things up this way you'll have to use the Red (3)/Yellow(5) wire pairs instead. I have not tried to hook it up this way so I'm not completely sure.

According to the web site www.Pinouts.ru here are the Escort's Smart Cable's (power cable with remote mute button and LED) pin assignments:
2) LED
3) +12V
4) GND
5) Mute
The website gives the following instructions to Mute the detector's alert:
Normally Open/Momentary Switch -> 470 Ohm Resistor

I'm guessing you connect the resistor to Ground? If so, you would need to hook up the Yellow (5) wire to In13 and Green (4) to Out13, but depending on the orientation of the cables/wires and where you put your RJ11 splitter, it could just as easily be Black(2) to In13 and Red(3) to Out13.

I don't have an Escort so can't confirm or verify this information. Make sure you check the voltages and figure out which one is +12 or you risk blowing a fuse or maybe even frying your radar detector or the transistor on the IBUS Arduino board (doubtful as the 2N2222 seem to deal with 12V from my V1 just fine, but you never know).

I really like being able to mute the Radar detector without having to take my hands off the wheel, almost makes doing the hack worthwhile just by itself. This is gravy on top of the iPod remote control function that I was looking for in the first place. I'll do a write up on that later.

Dave

GBMINI 10-01-2008 05:45 AM

Well done DaveC, good to see another fanatic on the site :)

Long long ago, I did a "spin off" of my HKenabler, which provided a single relay contact that followed a steering wheel button status:
http://gbmini.net/images/albums/Ster...oteCloseup.jpg

I also did a one-off for a friend, that did a similar thing to you, enabling him to control an iPod by hacking in to an off-the-shelf remote (see here for pictures)

The downside of iBus circuits is that they are more tricky for the average MINI owner to install - and an error can risk doing very bad things to the car electrics! But making use of those dead buttons is tempting :)

Quick review of your circuit ... I'd have used 10K for the transistor base drives, only because then it's the same part on the whole board!
Note that the transistor emitter (your pin 2) must be connected to ground, so there's not much point bringing each pin 2 out - you can't use the transistors as "floating switches".

As for the R56, iBus basically doesn't exist - it's CANbus now, requiring more expensive electronics. I've made no attempt to decode any R56 communications (only owning an R56 for three weeks in the middle of winter, limited development time!)


Finally, if there was enough interest in this, I might be able to produce a circuit that connected to iBus and brought transistor outputs to mimic the switches, for certainly less than the $90 price you needed to pay for your parts - but there would need to be more than a couple of people needing it, to bring the price down. Not that I'm wanting to steal anything, it's just that I've done it before ...

DaveC 10-01-2008 06:39 AM

Ian,

Thanks for the feedback. I thought I had given proper attribution to you in my post as the originator of using a PIC to access the IBUS and control an iPod. I have now clarified it in my first post, I saw your initial work (awhile ago on your blog and in the Hack the IBus Yahoo Group) and it was the basis for me trying to do something similar.

Since I don't know much about programming embedded PIC's, the Arduino seemed like a easier for me (and hopefully others) to get started with so I thought I'd try to independently replicated what you did using some noob friendly hardware (ie. program in C, free IDE that runs in Windows, OS X, Linux, programming via a serial->TTL device rather than via a dedicated AVR programmer).


Originally Posted by GBMINI (Post 2490099)
The downside of iBus circuits is that they are more tricky for the average MINI owner to install - and an error can risk doing very bad things to the car electrics! But making use of those dead buttons is tempting :)

You're right about that. I remember once accidentally flipping the IBUS cable and hooking it up reversed...my AC quit working, my MFSW buttons quit responding until I unplugged it and got it plugged in correctly. Luckily no permanent damage was done, but it sure was a scary moment. You're completely correct that this is NOT a project for total beginners and definitely not for the faint of heart.

I'm re-doing my boards with polarized connectors to make sure this can't happpen again. :)


Originally Posted by GBMINI (Post 2490099)
Quick review of your circuit ... I'd have used 10K for the transistor base drives, only because then it's the same part on the whole board!
Note that the transistor emitter (your pin 2) must be connected to ground, so there's not much point bringing each pin 2 out - you can't use the transistors as "floating switches".

That's a great idea for the Resistors, thank you. I guess the actual values aren't that critical for what I'm using it for?

The reason I have pin2 switched via a transistor is that the Arduino has a nasty habit of not booting all the way when first powered up/reset if there is serial data coming in (ie. from the IBUS communications unit) as it is waiting for a new program (they call it a "Sketch") to be uploaded. The IBUS data will not corrupt or overwrite the Arduino's Sketch as it's highly improbable that the data will come in in the right format/protocol, but it will keep the Arduino from finishing it's boot up.

I got around this by using Output 2 (Pin 5, held Low at startup) to switch the IBUS data coming into pin 2 via the transistor (Output goes to High after the Arduino has started up and the program has initialized). It seems to work well this way. Is there a better way to do this? I'm guessing you used a custom programmed AVR or some other PIC and didn't have this issue. It's a trade off for using the Arduino.


Originally Posted by GBMINI (Post 2490099)
As for the R56, iBus basically doesn't exist - it's CANbus now, requiring more expensive electronics. I've made no attempt to decode any R56 communications (only owning an R56 for three weeks in the middle of winter, limited development time!)

Oh well, I guess the R56's will be much harder to hack/augment. I had heard that the newer BMW's now use the MOST Ring/CAN Bus, guess BMW transitioned the MINI's as well in 2007.


Originally Posted by GBMINI (Post 2490099)
Finally, if there was enough interest in this, I might be able to produce a circuit that connected to iBus and brought transistor outputs to mimic the switches, for certainly less than the $90 price you needed to pay for your parts - but there would need to be more than a couple of people needing it, to bring the price down. Not that I'm wanting to steal anything, it's just that I've done it before ...

Well, actually, the cost wasn't exactly $90, as I had many of the items lying around already (the iPod controller that I hacked together, the Arduino, many of resistors, transistors, etc). The big expenditures were the Rolf Reslers' IBUS interface and the circuit board (which I didn't have to get made, but I thought it would be a cleaner solution for future Arduino hacking than using a breadboard or prototyping board).

No worries, I was not planning to monitize this project. I was planning to open source it as a DIY type project for the brave once I got all the bugs worked out. I'm puretty sure you could come up a much more integated/efficient/economical design than the Frankenstein device I've come up with :)

It is a bit pricy to play with this stuff without economies of scale (or any real design expertise), but its been a fun trek along the way. Seems like the number of folks interested in doing this is quite small though (as you'd already found out awhile back).

Thanks for your insights/feedback, any suggestions would be greatly appreciated.

Dave

GBMINI 10-01-2008 10:45 AM

Yes, the transistor base resistor values aren't critical - and a lower 10K is better anyway, so long as it doesn't overload the Arduino (which I'm sure it won't - most of these devices can handle as much as an LED load!)

The "pin 2" I was referring to was what you call OUT10/11/12/13 - those transistors have to be grounded, since their base turn-on is referred to that pin.

DaveC 10-01-2008 01:45 PM


Originally Posted by GBMINI (Post 2490500)
Yes, the transistor base resistor values aren't critical - and a lower 10K is better anyway, so long as it doesn't overload the Arduino (which I'm sure it won't - most of these devices can handle as much as an LED load!)

Great, thanks for that. I'll revise my design, you're right, fewer different parts is better.


Originally Posted by GBMINI (Post 2490500)
The "pin 2" I was referring to was what you call OUT10/11/12/13 - those transistors have to be grounded, since their base turn-on is referred to that pin.

I think then if I am understanding you correctly I should connect the OUT 10/11/12/13 pins to ground? Directly or via a resistor as I am using the NPN transistors as a switch to replace a physical switches (actually, in parallel to a physical switch on a modified device).

For example:
I have 2 wires coming in from an external device (ie. the V1 which as +12V on the Mute Wire and Ground), I am counting on the NPN transistor to have a high resistance across the Collector/Emitter pins, Mute is connected to the Collector, Ground is on the Emitter. When the Arduino sends a High signal to the base, the resistance drops and the Mute is effectively grounded thus the V1 mutes. The other outputs similarly are switching wires I've soldered in parallel to physical switches on a Griffin Autopilot iPod charger with playback controls. Not pretty or elegant, but it seems to work and was easier than trying to implement the iPod serial control protocol.

Or should I not be doing this at all and should use a bunch of relays instead?

It seems to be working reliably right now (switches reliably, no false switching, no missed switches). What are the problems with doing it this way? Sorry for all the questions, but I have little formal training in digital electronics.

Thanks again for the analysis, as I said, I'm no expert, I'm just cobbing together stuff I've read from other web sites/hacks (IBUS Yahoo Group) and have gotten stuff to work somehow. It's not elegant I'm sure. It has however been a great learning experience and alot of fun.

Dave

DaveC 10-01-2008 02:03 PM


Originally Posted by rkw (Post 2488312)
Sorry, but IBUS is so yesterday :lol:. The R56 uses CAN and fiber optic MOST buses.

Have you seen the BMW Wiring Diagram System (WDS)? Look at this thread: https://www.northamericanmotoring.co...d.php?t=154581. The WDS covers both R53 and R56. Here is a brief introduction to the MOST bus: http://www.mcaw.info/wds/mini/us/zin...-606582002.htm.

Ah, thanks for the clarification. I have just recently gotten a copy of the WDS and hadn't had a chance to delve into the R56. According to Ian (a couple of posts back) the CAN/MOST Ring is pretty tough to tap into. I'll be staying with the playing with my R53, the IBUS stuff while not cheap isn't out of this world to get and hack together.

Dave


All times are GMT -7. The time now is 12:32 AM.


© 2024 MH Sub I, LLC dba Internet Brands