Show Posts
Pages: [1] 2
1  Using Arduino / Sensors / Re: Compact air-flow sensor? on: November 29, 2013, 10:56:23 pm
This may not be exactly what you want but they are readily available and are low cost.

2  Using Arduino / Project Guidance / Re: Protecting Arduino inputs from external inputs on: November 23, 2013, 09:41:30 pm
I was looking to do something similar but decided to go a different route that I believe is much safer.
Take a look at this:

You would use the OBDII adapter to read the car's sensors without any additional wiring.
For my project I have purchased an OBDII splitter so that the adapter can remain behind the dash.
I am going to use the Throttle Position, MAP, and Speed data from the adapter (OBDII) as well as a temp sensor (wired to the arduino) to activate an intercooler sprayer.

He has kits as well.

3  Using Arduino / Project Guidance / Re: Throttle position senor data-direct or from OBD-II on: October 30, 2013, 09:29:07 pm
No, the maps are very different.  There is a big difference between a map tuned for performance and one tuned for economy.   Performance is not just WOT. One example of the difference between "performance" and "economy" maps is the wastegate duty cycle.  In a performance map the cells are set as high as possible without boosting over the target.  An economy map has lower wastegate duty values as the boost is only needed at 80% to WOT.  Yes you can tune a map for lower loads to run more economically but you then face large timing and fuel transitions.  A performance map will set boost targets as high as possible but within the turbo charger's efficiency, an economy map will have much lower boost targets.   Some OEM cars and a few aftermarket ecus measure the changes in the throttle position and when those changes meet the set parameters then the software uses a different set of values to change timing, fuel, and various other components depending on the ecu/software.
The software that I am running does not have that feature so the only way to duplicate this is to make an entirely different map. I could wire a switch to use manually but I want the map to be changed when the throttle position , for example, is changed only 15%  over a certian period of time then the economy map would be used.  Since the throttle position is small the car will be running in closed loop and the ecu will adjust the fuel to match the a/f ratio in the closed loop table.  An economy map will have higher closed loop a/f ratios.

Switching based on EGT, coolant temp, AFR etc is a far more sensible thing to do but needs more than a simple switch.

No, that is what each map does.  Each map makes adjustments in closed loop to add/subtract fuel to meet the a/f ratios that the tunner puts into the map.  The ecu will also make adjustments on EGT, coolant, knock, map, and many other events,.  Some of these adjustments can be modified and some cannot.  It depends on the software and the ecu.

You can read about the software here:

4  Using Arduino / Project Guidance / Re: Throttle position senor data-direct or from OBD-II on: October 30, 2013, 02:18:25 pm
Nice progress you are making.  I currently have a cable that allows me to read the OBD-II information as well as to load a modified map.  In case you are ever nterested it is an open source solution
Perhaps I should load the OBD-II library and plug it into my arduino to see what data I can pull. 
I only need to collect the throttle position data in order to change maps in the ecu.

5  Using Arduino / Project Guidance / Re: Throttle position senor data-direct or from OBD-II on: October 30, 2013, 01:17:51 pm
Thank you for the link, nice project you have going there!

If I can access the OBD-II data with an arduino alone I am going to pursue that option.  If not then I am going to have to do more research on both methods before deciding on the route to take.

What type of car (engine/ecu) are you running in your project?

6  Using Arduino / Project Guidance / Throttle position senor data-direct or from OBD-II on: October 29, 2013, 07:42:21 pm
I need to access the change in throttle position so that I can use it to ground a pin on the car's ecu.    Grounding the pin will swith the map that the car is running on so that I can use a "performance" or an "economy" map depending on the variations in the throttle position.

My first thought was to tap into the throttle position sensor as it is basically a simple pot and use the arduino ADC.  However I was advised to be careful about doing this as it may change the voltage seen by the ecu. 

I then looked at getting the data from the OBD-II port (non CAN) but it looks like I need an board to convert the OBD-II to something that arduino can process.

I can rig a simple switch to manually change the maps but I was hoping to be able to do this with an arduino.

Any input is most appreciated,


7  Using Arduino / Microcontrollers / Re: Weird issue: Micro won't transmit win8 on: December 30, 2012, 04:13:26 pm
I have to admit that I am at times far too impatient.  
The sketch works but once loaded it will not write to the serial monitor.  I must first reset the micro, then reset it a second time, then open up the serial monitor to see the table being printed.  The first rest causes the micro to lose the com port.  The second reset re-establishes the port and allows the serial monitor to be printed to.

I have 0 experience and less knowledge but hopefully what observation I just posted confirms your suspicion that you posted above.

Thank you,

8  Using Arduino / Microcontrollers / Re: Weird issue: Micro won't transmit win8 on: December 29, 2012, 09:45:13 am
I am having a similar problem with a micro R3, 1.0.3 on a win7 laptop.  

I can run the "AnalogReadSerial" sketch and I get the output in the serial monitor but if I run the ASCIItable sketch I do not see anything in the serial monitor.

Two years ago I had a Teensy2 (same processor as the micro) on this same netbook and I did not have this problem.

Any help would be appreciated.

Thank you,

Paul Hirst
9  Using Arduino / Interfacing w/ Software on the Computer / Re: Gibberish running ASCIITable through Bluetooth****Solved**** on: February 07, 2011, 07:48:53 pm
Changed the baud rate on the bluetooth from 115200 to 9600 by wiring 3.3v to pin4 of the module (pin5 on the breakout).

ASCII Table was displayed in the serial monitor without a problem via bluetooth.

Paul Hirst

10  Using Arduino / Interfacing w/ Software on the Computer / Re: Gibberish running ASCIITable through Bluetooth on: February 06, 2011, 09:40:07 pm
I am running the ASCIITable sketch from the Examples in the Arduino IDE.  I ran from the IDE on my desktop PC and it worked well.  I ran it on the IDE on my laptop and it ran fine as well.  In both cases when I opened up the serial monitor the ASCII table was generated.

Next I tried to see if I could get the bluetooth module to communicate with the bluetooth in my laptop.

I upload the program to my Arduino mini pro off of my desktop PC.  I have wired the TX on the mini pro to the RX on the bluetooth module, and the RX on the mini to the TX on the Bluetooth module on a breadboard.

I turn on the bluetooth on my laptop and open the IDE and then the serial monitor.  Serial monitor shows COM10 which is the same as my bluetooth.

When I upload the sketch on the PC to the mini, I get "gibberish" in the serial monitor on the laptop.  I changed the baud rate on the serial monitor on the laptop to various speeds while changingthe baud rate in the COM10 to the same speed (serial baud rate 115200, COM10 rate 115200, serial 9600, COM10 9600 etc.).

The default baud rate of the bluetooth module is 115200 and I suspect that this is the problem.  

In the command sheet it shows that a HIGH on PIO7 will change the baud rate to 9600.  I will give that a try and make sure both COM10 and serial port baud rates are set at 9600.

Sorry for the long explanation, I am trying to give you the pertinent information.

Thank you,

Paul Hirst

11  Using Arduino / Interfacing w/ Software on the Computer / Gibberish running ASCIITable through Bluetooth****Solved**** on: February 05, 2011, 05:42:04 pm
Arduino Mini Pro 3.3V ATmega328
Bluetooth module is a Roving Network:

Running ASCIITable sketch with desktop.

Open serial monitor (Arduino0022) on Aspire One with Bluetooth.

I have changed the baud rate in the serial monitor and the COM port but I end up with this:


The default baud rate on the bluetooth module is 115200.  Could this be the problem?

I have no programing or electronics experience.  Heck, I am amazed that I have got this far...LOL

Any help is appreciated.



12  Using Arduino / Project Guidance / Assistive keyboard on: January 29, 2011, 08:00:44 pm
I am on a long journey to make a myoelectric virtual wireless keyboard.  I know very little about electronics and nothing about code.  However, there are generous people such as those at Hacklabs in Toronto that are helping along the way. 

Currently I have a code for 5 input buttons to make a Teensy++2 a USB keyboard courtesy of Hacklabs. We ran out of time as I am a slow learner so there was not an opportunity to tidy up the code.  I will attempt to write code to allow the entry of numbers and symbols after I get to the next step.  At the moment I can use various combinations of the 5 buttons to type into my laptop.
#define maskC B00011111
#define unpress_time 200

int keymap[32] = {-1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,40,42,44,57,0};
//enter=40,backspace=42, tab=43, space=44, caps lock 57
void setup() {
  DDRC ^= maskC;
  PORTC ^= maskC;

void loop() {
  static byte keysdown = 0;
  static byte prevFull = 0;
  static byte prevFull_release = 0;
  static unsigned long tlpress = 0;
  static unsigned long tlunpress = 0;
  byte full = ~(PINC) & maskC;

  if(full && !keysdown) {
    keysdown = 1;
    tlpress = micros();
    tlunpress = 0;
  else if(!full && keysdown) {
    keysdown = 0;
    tlunpress = 0;
    prevFull = 0;
    prevFull_release = 0;
  if(keysdown) {
    if(full < prevFull) {
      tlunpress = millis();
      if((millis() - tlunpress) > unpress_time) {
        prevFull_release = prevFull;
      prevFull = full;
    else if(full > prevFull) {
      prevFull = full;
      prevFull_release = prevFull;
      tlunpress = 0;
      tlpress = millis();
    else {
      //full == prevFull
      if(tlunpress != 0 && (millis() - tlunpress) > unpress_time) {
        prevFull_release = prevFull;
        tlunpress = 0;

The next is to make this a wireless keyboard to isolate the myoelectric and keyboard circuits from any display device.
I went to Creatroninc in Toronto and picked up a bluetooth module
and a logic converter

I soldered the headers to the converter and wired up the bluetooth to the converter and Teensy.

My question at this point is what do I have to do to this code to get the same results with the bluetooth as I do as a Usb keyboard?

Any assistance is most appreciated.  As you can tell from my questions that I am learning on the fly so please be patient.

Thank you very much.

Paul Hirst

13  Forum 2005-2010 (read only) / Troubleshooting / Re: Windows Vista fails to install driver for UNO on: December 21, 2010, 10:46:49 pm
Check that you are directing Vista to install the proper file.  There is a driver file that you should be pointing to .  Do not open the driver file.  I have an Uno and I have the software installed on XP, 7 and Vista without any problems.

14  Forum 2005-2010 (read only) / Interfacing / Re: need help with piezoelectric circuit on: December 15, 2010, 07:02:39 am
Hello David,

I am sorry to hear about your nerves being affected.  That will make my approach a poor choice for you.  

15  Forum 2005-2010 (read only) / Interfacing / Re: need help with piezoelectric circuit on: December 14, 2010, 11:07:10 am
A team at Penn State developed a electro impulse device that used muscles in the person's temple instead of a switch.

This might be something to consider.

Using two inputs would give an X and Y axis movement for something like BLINK but I am getting off topic here.  One input to move X, one to move Y and move both to select.

Pages: [1] 2