Tablet install to replace sat nav (Build thread)

I'd be very interested in them!

Interesting to find that you can keep the sensors on during deep sleep... I don't seem to be able to figure that out!

Also.. tasker seems to be confusing my device, as I turn on airplane mode when it "powers down" and off again when it comes back alive.
however, it never finds signal again after it's been in "deep sleep"... only after a hardware reset does it find signal again.. DAMN annoying :headbang:
 
Under preferences, if you go to monitor, scroll down until you see "Display Off Monitoring". If you want it to check, for example, the light sensor even when the screen is off, just click yes. Have a blast!

But you're right, tasker does have some flaws.. I'm slowly but surely finding them and looking for workarounds. There are usually a few solutions to each problem, some better than others.

So.. about that stepper motor. Any idea for a plug and play option that flips up the screen when the car is on? The extent of my knowledge would be soldering, programming right now is out of my league but may learn if I get tired of flipping the screen up and down myself. Also makes for a cleaner installation of course.
 
Absolutely!

It does involve using an Arduino board tho, but I can provide the programming ;)

All you need is a 12v relay, the Arduino and a couple of bits of wire.

You'd hook the 12v relay up to the +12v antenna remote wire that comes out of the back of the headunit.
This only provides voltage when the headunit is on, so it's a perfect switch.
The other side of the relay would be used to bridge a spare pin and a ground pin on the arduino.

This circuit would mean that when the radio is on, the relay would close, bridging the two arduino pins.
This is detectable in arduino code, so then it's just a case of running the code to open the stepper motor.

This would would doubly well for us, as when the ignition is cut, that is also detectable by the Arduino, so you could then
fire off the code to close the stepper motor :thumbsup:

I already have the working code to open, close and "step" the screen in either direction, and that's all hooked up to the four screen buttons.
So coding it to check for voltage across a pin and either closing or opening is pretty easy :thumbsup:
 
wrt to cooling - this is enough to keep mine cool (a fan and some reflective foil tape!):
v73m.jpg

c3t4.jpg


The fan takes power from the Arduino, so it is trivial to do this.

In terms of the opening and closing, I have now got mine so that it activates from the ingition live, and moves the screen to the last position it was in. Behaviour is now that when I turn off the ignition it closes and when I turn on the car it goes to last position (including any separate steps to angle it).

I am trying to figure out how to make it as smooth as the OE unit.

I will get around to updating the howto at some point....

As for the UI - I don't disagree that this looks better, but offers less flexibility for rapid customisation options over Dashdroid. Ideally I would like both :-)
 
I've got mine running as smooth as OE..
I believe I dropped the delay between the steps to 50ms?
I'll doublecheck and post up my sketch when I get home, but it's damn smooth.
 
Thanks for all that info.. what kind of arduino board would I buy? I suppose I would also need the stepper motor accessory board to hook it all up.
 
igeak691 said:
Thanks for all that info.. what kind of arduino board would I buy? I suppose I would also need the stepper motor accessory board to hook it all up.

I went with:
Arduino Uno R3 and Arduino Motorshield R3
 
sk93 said:
I've got mine running as smooth as OE..
I believe I dropped the delay between the steps to 50ms?
I'll doublecheck and post up my sketch when I get home, but it's damn smooth.

That'd be handy, thanks. I didn't realise how "jerky" it was until I finally saw an OE screen installed recently.
 
Ok, maybe a silly question, but whixh headunit are you using for the conversion?
The one installed with the satnav (without lcd), or the professional HU with lcd?
I wanted to buy satnav eversince I bought the zed, but the cost for a dated system puts me off quite heaviky.. but if I would be able just to buy a flipscrren and a tablet I would probably consider cutting the dash

TapaTalking
 
Mine is the OEM satnav so it doesn't have lcd screen on the HU. After the conversion I may switch to opt for a Business HU so that I can see what radio station I'm listening to :)

What kind of equipment other than the boards do I need? It is a simple USB--TTL cable for the programming? Edit: looks like it comes with everything needed. $25 for the board and $23 for motorshield.. sounds reasonable. Need to look more into it though, I don't want to take on a project I can't finish. So after programming the board, its a matter of wiring and soldering everything together? How difficult was the process?

Found some rather cheaper versions on ebay.. any caveat against them?

So far I would need to buy these two pieces correct?
http://www.ebay.com/itm/New-L298P-Shield-R3-DC-Motor-Driver-Module-2A-H-Bridge-2-way-Fr-Arduino-UNO-2560-/261516145493?pt=LH_DefaultDomain_0&hash=item3ce393b355
http://www.ebay.com/itm/New-UNO-R3-Rev3-Development-Board-for-Arduino-Cheap-but-Not-for-Beginners-/181454173261?pt=LH_DefaultDomain_0&hash=item2a3f82f44d

Looks like they stack on one another. Would need a wiring diagram though.. I feel so lost :rofl:

Final edit: Did more reading on your thread, danmiddle2, thanks for laying it out so clearly in your tutorial! I had always skimmed through that part thinking I wouldn't do it for my own build, so I never thoroughly read it. Looks doable at this point.. will definitely fit it now as long as I can figure it out completely.

sk93, you said you figured out a smooth step right? do you have the sketch for it?
 
igeak691 said:
Mine is the OEM satnav so it doesn't have lcd screen on the HU. After the conversion I may switch to opt for a Business HU so that I can see what radio station I'm listening to :)

What kind of equipment other than the boards do I need? It is a simple USB--TTL cable for the programming? Edit: looks like it comes with everything needed. $25 for the board and $23 for motorshield.. sounds reasonable. Need to look more into it though, I don't want to take on a project I can't finish. So after programming the board, its a matter of wiring and soldering everything together? How difficult was the process?

Found some rather cheaper versions on ebay.. any caveat against them?

So far I would need to buy these two pieces correct?
http://www.ebay.com/itm/New-L298P-Shield-R3-DC-Motor-Driver-Module-2A-H-Bridge-2-way-Fr-Arduino-UNO-2560-/261516145493?pt=LH_DefaultDomain_0&hash=item3ce393b355
http://www.ebay.com/itm/New-UNO-R3-Rev3-Development-Board-for-Arduino-Cheap-but-Not-for-Beginners-/181454173261?pt=LH_DefaultDomain_0&hash=item2a3f82f44d

Looks like they stack on one another. Would need a wiring diagram though.. I feel so lost :rofl:

Final edit: Did more reading on your thread, danmiddle2, thanks for laying it out so clearly in your tutorial! I had always skimmed through that part thinking I wouldn't do it for my own build, so I never thoroughly read it. Looks doable at this point.. will definitely fit it now as long as I can figure it out completely.

sk93, you said you figured out a smooth step right? do you have the sketch for it?

Just an A to B USB cable will do for programming the Arduino, and yes it is a very simple soldering job.

Personally I would steer clear of the Arduino clone boards as I have read about people having varying degrees of success depending on origin.

The original board and motor shield that I went with simply stack together, so it's nice and simple - and it's not like they're expensive.

You're welcome for the thread - but just to re-assure you, it's really not all that complicated. The hard part was figuring everything out, like the pin-outs of the motor and getting some code to move it... everything else is just fine tuning :) It is definitely possible to get the motor movements to be as smooth as the original. Mine is already smoother than shown in the video - I just didn't realise what the OE one behaved like until recently. Sounds like SK93 has it covered though.
 
Ok, few more questions:
- are you able to mix HU sound with tablet sound on car speakers? Meaning, is it possible to listen to radio and have the gps volume over the car speakers?
- are you able to switch music tracks on the tbl using steering controls?
- is it possible to connect usb drive to the tablet and play mp3s from it? Of not, then how do you want to transfer music to the tablet?
-last, but not least.. as I am really a noob in electronics, provided that I would have a CID and a tablet, would someone be willing to do the conversion for me (not for free of course) or shall I just start to look for some crazy electronic expert here in Poland?

TapaTalking
 
- no
- yes
- not sure.. I use the wifi to sync music to the sd card in the tablet when the car is at home (or on a wifi network elsewhere)

- yes.. I was actually considering offering this as a service during my lunch today
 
working sketch:

Code:
#define OPEN_BUTTON 6
#define CLOSE_BUTTON 7
#define STEP_OPEN 2
#define STEP_CLOSE 4

void setup() 
{

  //establish switch pins
  pinMode(OPEN_BUTTON, INPUT_PULLUP);
  pinMode(CLOSE_BUTTON, INPUT_PULLUP);
  pinMode(STEP_OPEN, INPUT_PULLUP);
  pinMode(STEP_CLOSE, INPUT_PULLUP);
  
   //establish motor direction toggle pins
  pinMode(12, OUTPUT); 
  pinMode(13, OUTPUT);
  
  //establish motor brake pins
  pinMode(9, OUTPUT); 
  pinMode(8, OUTPUT); 

}

void loop(void)
{
  int switchValue;

  switchValue = digitalRead(OPEN_BUTTON);
  if (switchValue==LOW)
  {
    //screenUp();
    sk93_screenUp();
  }
  switchValue = digitalRead(CLOSE_BUTTON);
  if (switchValue==LOW)
  {
    sk93_screenDown();
  }
  switchValue = digitalRead(STEP_OPEN);
  if (switchValue==LOW)
  {
    stepOpen();
  }
  switchValue = digitalRead(STEP_CLOSE);
  if (switchValue==LOW)
  {
    stepClose();
  }
}


void sk93_screenUp(void)
{
  for (int i=0; i < 14; i++)
  {
    digitalWrite(9, LOW);  //ENABLE CH A
    digitalWrite(8, HIGH); //DISABLE CH B

    digitalWrite(12, HIGH);   //Sets direction of CH A
    analogWrite(3, 255);   //Moves CH A
  
    delay(25);
  
    digitalWrite(9, HIGH);  //DISABLE CH A
    digitalWrite(8, LOW); //ENABLE CH B

    digitalWrite(13, LOW);   //Sets direction of CH B
    analogWrite(11, 255);   //Moves CH B
  
    delay(25);
  
    digitalWrite(9, LOW);  //ENABLE CH A
    digitalWrite(8, HIGH); //DISABLE CH B

    digitalWrite(12, LOW);   //Sets direction of CH A
    analogWrite(3, 255);   //Moves CH A
  
    delay(25);
    
    digitalWrite(9, HIGH);  //DISABLE CH A
    digitalWrite(8, LOW); //ENABLE CH B

    digitalWrite(13, HIGH);   //Sets direction of CH B
    analogWrite(11, 255);   //Moves CH B
  
    delay(25);
  }
  
  //set all pins off after operation
  digitalWrite(8, LOW); //DISABLE CH B
  digitalWrite(12, LOW); //DISABLE CH B
  digitalWrite(9, LOW); //DISABLE CH B
  digitalWrite(13, LOW); //DISABLE CH B
  analogWrite(3,0);
  analogWrite(11,0);
}

void sk93_screenDown(void)
{
  for (int i=0; i < 14; i++)
  {
    digitalWrite(9, LOW);  //ENABLE CH A
    digitalWrite(8, HIGH); //DISABLE CH B

    digitalWrite(12, HIGH);   //Sets direction of CH A
    analogWrite(3, 255);   //Moves CH A
  
    delay(25);
  
    digitalWrite(9, HIGH);  //DISABLE CH A
    digitalWrite(8, LOW); //ENABLE CH B

    digitalWrite(13, HIGH);   //Sets direction of CH B
    analogWrite(11, 255);   //Moves CH B
  
    delay(25);
  
    digitalWrite(9, LOW);  //ENABLE CH A
    digitalWrite(8, HIGH); //DISABLE CH B

    digitalWrite(12, LOW);   //Sets direction of CH A
    analogWrite(3, 255);   //Moves CH A
  
    delay(25);
    
    digitalWrite(9, HIGH);  //DISABLE CH A
    digitalWrite(8, LOW); //ENABLE CH B

    digitalWrite(13, LOW);   //Sets direction of CH B
    analogWrite(11, 255);   //Moves CH B
  
    delay(25);
  } 
  
  //set all pins off after operation
  digitalWrite(8, LOW); //DISABLE CH B
  digitalWrite(12, LOW); //DISABLE CH B
  digitalWrite(9, LOW); //DISABLE CH B
  digitalWrite(13, LOW); //DISABLE CH B
  analogWrite(3,0);
  analogWrite(11,0);
  
}


void stepOpen(void)
{
  if (digitalRead(STEP_OPEN)==LOW)
  
  digitalWrite(9, LOW);  //ENABLE CH A
  digitalWrite(8, HIGH); //DISABLE CH B

  digitalWrite(12, HIGH);   //Sets direction of CH A
  analogWrite(3, 255);   //Moves CH A
  
  delay(1000);
  
  digitalWrite(9, HIGH);  //DISABLE CH A
  digitalWrite(8, LOW); //ENABLE CH B

  digitalWrite(13, LOW);   //Sets direction of CH B
  analogWrite(11, 255);   //Moves CH B
  
  delay(1000);
  
  digitalWrite(9, LOW);  //ENABLE CH A
  digitalWrite(8, HIGH); //DISABLE CH B

  digitalWrite(12, LOW);   //Sets direction of CH A
  analogWrite(3, 255);   //Moves CH A
  
  delay(1000);
    
  digitalWrite(9, HIGH);  //DISABLE CH A
  digitalWrite(8, LOW); //ENABLE CH B

  digitalWrite(13, HIGH);   //Sets direction of CH B
  analogWrite(11, 255);   //Moves CH B
  
  delay(1000);
}


void stepClose(void)
{
  if (digitalRead(STEP_CLOSE)==LOW)
  
  digitalWrite(9, LOW);  //ENABLE CH A
  digitalWrite(8, HIGH); //DISABLE CH B

  digitalWrite(12, HIGH);   //Sets direction of CH A
  analogWrite(3, 255);   //Moves CH A
  
  delay(1000);
  
  digitalWrite(9, HIGH);  //DISABLE CH A
  digitalWrite(8, LOW); //ENABLE CH B

  digitalWrite(13, HIGH);   //Sets direction of CH B
  analogWrite(11, 255);   //Moves CH B
  
  delay(1000);
  
  digitalWrite(9, LOW);  //ENABLE CH A
  digitalWrite(8, HIGH); //DISABLE CH B

  digitalWrite(12, LOW);   //Sets direction of CH A
  analogWrite(3, 255);   //Moves CH A
  
  delay(1000);
    
  digitalWrite(9, HIGH);  //DISABLE CH A
  digitalWrite(8, LOW); //ENABLE CH B

  digitalWrite(13, LOW);   //Sets direction of CH B
  analogWrite(11, 255);   //Moves CH B
  
  delay(1000);
}


I've a few bugs to fix on the auto open/close on power part.. so once i've nailed that (probably saturday), I'll share that here too
 
note: it's important to turn off the motor pins after use.. else you'll get a very, very warm motor (and possibly burn it out!)
 
Would it be possible to use one of the pinouts directly connected to antenna wire of radio, as to avoid needing a relay?

edit: at least for my purpose where I am giving the tablet power 24/7. i understand a relay would be needed if you only want to power the tablet when the radio is on.. for me, I'd want the radio turning on to flip up the screen and the radio turning off to flip down the screen.

I just thoroughly read through the sketch, and its not too hard to understand. did some elementary coding when I used to work with robotics.. for the step close and step open, do the motor brake pins also have to be turned off?

with your code, what happens if you hold the step open or close? does it continually move or does it have to be repressed each time you want it to step?
 
Back
Top Bottom