Monday, November 2, 2015

RN52 hardware

Here's ver 2 of the hardware


I've already made a v3, to fix a problem with the USB plug on the bottom (for RN52 firmware upgrades). Firmware upgrades will be rare, and in fact, future upgrades will be done via UART pins, so the USB plug is for RN52 modules with old firmware (v1.10 & older). v1.16 and above will use UART for upgrades.

Karlis has done a smashing job on the software side! The module doesn't drop out at all now, steering wheel controls work with both iPhone and Android phones, and he's also integrated bluetooth sync connect & disconnect controls via the head unit (IHU).

There are still some bugs he wants to work out, and of course, getting artist/track info on the SID is on the to-do list :)

You'll also notice the 3.5mm jack at the top. That's for the Mic input to the RN52, which Karlis & I are planning on using the vehicle's On-Star mic. So once we figure out the best way to do that, he even has the code setup to bring Siri up for a long button press :) So eventually, you'll be able to wire in the car's mic to a 3.5mm plug, and plug that into the module, and be able to talk to Siri at the press of a button (or no button if your phone is charging or you have 6S)!

Feel free to ask questions in the comments; Karlis said he'd try to answer software questions for me :)

And no, I'm not planning on making/selling them. Do you know how much work that would be for me for all of you?! But I can help guide you along the way :)

18 comments:

  1. Is there a website ore something where whe could order ond with a partst list and the schematics? or is there a possability to bild one yourself from scratch with a raw pcb?

    ReplyDelete
    Replies
    1. Once I'm sure the hardware doesn't need any more changes, I'll put the PCB and BOM up for everyone.

      Delete
  2. Hi there,

    Thank you so much for all the information you have presented on your blog. I am in the process of building a similar system and your blog has been an invaluable resource. I am extremely grateful.

    I have come across a slight problem with my design and was interested to hear your thoughts on the issue. I had assumed from the outset that the 12v line on the CDC connector was only active when the car was running, however I have just discovered that it is live all the time, even when the key is out of the ignition and the car is locked. This presents the problem of slowly draining the battery while the car is not being used. How have you approached this issue in your design? I am not really sure how to proceed from here.

    Kind regards,

    Rob

    ReplyDelete
    Replies
    1. I noticed this also, years ago when I first started building a module. Kinda surprised me that the power line doesn't ever turn off (even though the radio will after 1hr). I never did anything about it; and this module pulls less than 100mA when on, and even less when in standby. I haven't looked into putting the uC to sleep, but that could significantly drop the current draw. However, I've left my car for several days (at an airport) with the module installed, and the car started up just fine.

      Delete
    2. I had thought that the current draw would be negligible, and could be reduced further by implementing a sleep mode. Definitely a good option.

      I did however just notice another connector that exits near the rear-left brake light/turn indicator assembly in my 2000 9-3 and after busting out the multimeter, found that pins 6 and 2 are ~12v when the ignition is on and ~0v when the ignition is off. I'm planning to just add a relay in to the mix to enable / disable my module when the ignition is on / off.

      Thanks again for posting all this information on your blog. Developing my module has been a great little project and your site has been a huge help.

      Cheers,

      Rob

      Delete
    3. Nice find! I would guess that's for the power antenna or something...maybe for a trailer hitch connection...? whatever it is, might as well make good use of it :)

      Delete
  3. Have you considered powering down the avr when it's not in use? This reduces power consumption from 0.2mA to 0.1uA when there's nothing to do. The CAN chip is already tied to an interrupt pin and it goes low when there's data available, so it's a nice fit.

    ReplyDelete
    Replies
    1. I haven't tried to use low power mode. It's not a bad idea. However, using the CAN interrupt pin doesn't entirely help, since there's ALWAYS CAN traffic, regardless if the car is running or not. So the uC would still need to watch the bus and see what the status of things are (engine running yes/no, etc etc); so it still wouldn't be able to sleep. So at this point, I don't see current draw being a big issue, but that's not to say there aren't always room for improvements :)

      Delete
    2. This is a pretty awesome project... I could have used it 15 years ago ;)

      Have you tried filters? I'm filtering on just 6a1 and 3c0 and I only see 6a1 messages for about 1 minute after the car is locked. Then it's quiet until I start it up again. Hopefully you'll see the same even if you add 290 and 368 to your filter set.

      An easy win that doesn't require any design change might be to just turn off some of the components that aren't used,

      power_adc_disable();
      power_twi_disable();
      power_timer1_disable();
      power_timer2_disable();

      Delete
    3. Yeah, that's true, those would be easy to integrate and have the 328 pull even less current. I'll talk to Karlis about it; he's the brains behind the software now :)
      I think he's also integrated filters into the software, but I'm not 100% sure.

      Delete
    4. Currently we are looking at all messages, i.e. no filters are enabled. This is definitely on my to-do list. :)

      Delete
  4. Willis/Karlis - great project. Please let us know when you have a stable Hardware spec and can post the BOM & PCB. I want to get started as soon as possible with this project for my Saab. Karlis - if you would like some help with the software or testing it - let me know. I spent many decades developing software in my professional career - so I may be able to help support you.

    ReplyDelete
    Replies
    1. Thanks Moslof! Yes we will need testers for the new code/hardware to make sure it all works on different models of SAABs as we already have found some differences of functionality between 9-5s and 9-3. Or, should I say, their IHUs (AS2/AS3) to be more specific. Once we figure out the differences, we will need to implement all of them in the code.

      Delete
  5. Hey guys, thanks so much for posting this info! I've been using the RN52 for a couple of years now with my Arduino setup and it works great. I used a CAN shield with the Arduino and it all works together quite nicely, same deal with steering wheel controls (although iPhone only). I can share my code with you if you'd like, not sure how though.

    Please post up if you figure out how to get the mic tied into the RN52, I've tried a few different things and am having trouble making it work with an acceptable level. However, I am a much better coder than I am electrical engineer, so hopefully you figure it out :)

    ReplyDelete
  6. Hey guys, thanks so much for posting this info! I've been using the RN52 for a couple of years now with my Arduino setup and it works great. I used a CAN shield with the Arduino and it all works together quite nicely, same deal with steering wheel controls (although iPhone only). I can share my code with you if you'd like, not sure how though.

    Please post up if you figure out how to get the mic tied into the RN52, I've tried a few different things and am having trouble making it work with an acceptable level. However, I am a much better coder than I am electrical engineer, so hopefully you figure it out :)

    ReplyDelete
  7. Hello, I'm working with this module, but I can't upgrade the firmware, I really don't know why. Did you upgrade the firmware at yours?

    ReplyDelete
    Replies
    1. Using the USB port on the bottom of my pcb, yes, you can upgrade the firmware using MicroChip's (crappy) software. The latest version is 1.16.

      Delete
    2. I've been trying to upgrade the firmware, but I can´t. It seems like I need a driver to connect the module by USB, because it didn´t recognize it.
      How did you connect it? What I did was cut an USB cable and connect GND, USB+ and USB- at the module.
      I'm so frustated, I really need to upgrade that firmware, I even have tried by UART, but it didn't work.

      Delete