stanleyhuangyc / arduinoobd Goto Github PK
View Code? Open in Web Editor NEWOBD-II library and sketches for Arduino
Home Page: http://freematics.com
OBD-II library and sketches for Arduino
Home Page: http://freematics.com
On my 2002 Pontiac Bonneville, I can see that a connection is made to the OBD2 port but no DATA is received when requesting PIDs.
Here is some debug output (added huge timeout in desperate attempt):
[7939]recvbuf init:
[7939]OBD Y
[7940]wrote:
[7940]0105
[34944]data response:
[34945]
[34945]NO DATA!! (this is in COBD::GetResult())
[34945]recovering
[36346]wrote:
[36346]0105
This is probably not an issue with the OBD board since I have confirmed it works on a Toyota Camry but I'm hoping someone can help me shed some light on this..
George
OBD-II UART Adapter - odb.init()
keeps failing while testing it on a 2008 ford focus and a 2000 mk2 fiat punto
What is the easiest way to check if the vehicle is still running? I noticed that if I poll data after the vehicle is off, the most recent value is returned, and the OBD state does not change because of this.
I noticed that if the OBD-II has stopped communication with the adapter, it takes 11 to 15 seconds for methods such as obd.init
and obd.readPID
to affirm that the vehicle is off. Is there a way to asynchronously connect to the adapter, or at least a quick check mode that takes less than a second?
newest release is missing
void COBD::uninit()
{
m_state = OBD_DISCONNECTED;
}
just need to add that back in on the latest release
Will it work?
Could support for ISO 9141-2 be added? Are the pins connected and is there a level converter on the board? I understand that it's not supported but I would be willing to do the work to add support for it if the hardware supported it.
tyler
I downloaded the zip file. My computer automatically uncompressed it. I removed the "master" and then tried to go into arduino -->add library--> zip file and it just gives me "Specified folder/zip file does not contain a valid library". Does anyone know how to fix this?
Hi,
I received the OBD-II UART Adapter designed for Arduino.
I loaded up the "rpm_led_uart.ino" sketch to my Arduino Uno. The sketch should switch Pin 13 to high if the engine turns faster then 3000rpm.
I tested today but nothing is happen. On the Adapter a red LED is on and on the Arduino the green LED "On" shines. The Arduino is wired as follows: red wire to +5 Volt, black wire to GND, white wire to Rx (Pin 0) and green wire to Tx (Pin 1). My Car is a Mitsubishi Colt 1.3 16V, Year 2008.
Can you explain me what is wrong and how can I check the installation.
Thank you and best regards. Urs
There is a command to clear the codes, but not one to read them. Is there a work-a-round using something like the sendCommand function?
Since you keep closing the posts I'll make one with a lot of details explaining as to what is going on.
More than 3 customers have complained (Both on GIT and Freematics Forums) that their UART adapters stopped working or never worked out of the box. I was the second person to step up (Freematic's forum was the first) and mentioned this issue. I've taken pictures (http://freematics.com/forum/viewtopic.php?f=11&t=1207) and tries this with YOUR CODE and two different Arduinos, 4884 LCDs, two different UART adapters and 4 different cars. One of the wires was brand new. None of which did work, but it did work previously and I do have video proof that it did along with images (http://tinypic.com/r/9iu6wk/8)
The conclusion is:
It can't be anything else. I've shown you my code, my Arduino config, my libraries, my wiring and my Arduinos and proof of everything. It cannot possibly be anything else.
This is no longer about money or getting a project working. I got mine working with I2C. I'd be completely happy if you'd say that UART is broken and no longer supported. However, you're selling these products today and are not supporting your work or the people that have issues with it. It's the principle behind it. If you cannot fix an issue, don't sell anything in the first place to begin with.
Here is a reference to another customer that was very frustrated with your product (http://tinypic.com/r/9iu6wk/8)
In this issue you see him mentioning horrible wiring (Which I've noticed), non-existing technical support and that he is discarding the project and product.
To answer your questions before you ask them: No you do not have to support anyone. It is the principle behind it. You made a product, a thing, stand by your work. All people are asking for is good communication and don't try to avoid their questions and disregard the issues.
Note: When it worked, it was great. I enjoyed it and developed a lot of stuff for it and had a lot of hope for it. All ruined when it stopped working and no support. I'm running I2C now and I'm happy. Issue remains other customers are buying UART and they're out of luck.
It is a waste of my time to make this bug again, it's about the principle of things.
Hi
I have the following error when I try to compile any sketch using the ODB lib :
OBD.cpp: In member function 'void COBDI2C::begin(byte)':
OBD.cpp:333: error: 'Wire' was not declared in this scope
OBD.cpp: In member function 'virtual void COBDI2C::write(char_)':
OBD.cpp:369: error: 'Wire' was not declared in this scope
OBD.cpp: In member function 'bool COBDI2C::sendCommand(byte, uint8_t, byte_, byte)':
OBD.cpp:378: error: 'Wire' was not declared in this scope
OBD.cpp: In member function 'virtual byte COBDI2C::receive(char_)':
OBD.cpp:390: error: 'Wire' was not declared in this scope
OBD.cpp: In member function 'bool COBDI2C::btReceive(byte_, byte)':
OBD.cpp:429: error: 'Wire' was not declared in this scope
OBD.cpp: In member function 'bool COBDI2C::gpsQuery(GPS_DATA*)':
OBD.cpp:438: error: 'Wire' was not declared in this scope
I'm using :
Please someone help me !
I also noticed that my cable colors are DIFFERENT from the one found on your website.
I have
Thanks in advance for your help.
The code assumes that latitude and longitude are always positive. If you are in China, I suppose this is true. But in the USA, longitude is going to be WEST and the convention is that negative numbers are used. Likewise, in the southern hemisphere, latitude will be negative. The affected code is this:
// megalogger.ino: lines 377 and 380 (version 2013-08-28)
sprintf(buf, "%d.%ld", (int)(lat / 100000), lat % 100000);
sprintf(buf, "%d.%ld", (int)(lon / 100000), lon % 100000);
In the USA, the longitude might print out something like this:
-127.-33654
The suggested change is something like this:
sprintf(buf, "%d.%ld", (int)(lat / 100000), abs(lat) % 100000);
sprintf(buf, "%d.%ld", (int)(lon / 100000), abs(lon) % 100000);
I attempted to use the example program for the OBD adapter which uses SoftwareSerial.h instead of TX and RX pins on the Arduino and was unsuccessful! Please help!
How to add Bit encoded PIDs such as 0x83 NOx sensor?
Already sent an email about this. Plugged the UART wire into my Arduino Uno, nothing worked. I tried a different UART wire, nothing worked. Then I plugged in the 4884 LCD Screen with both UART wires. One didn't work, the other worked but it couldn't read RPMs. It did the same thing when it was just the Arduino by itself.
What's going on?
Hi,
I don't get the Adapter working on a Honda Civic Type R 2010; protocoll should be ISO 9141-2
I tired the sample lib and debugged it, it don't recive data.
So now I wrote a little program for it to communicate directly over the arduino:
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial1.begin(38400);
}
void loop() {
//Serial = PC Com
//Serial1 = OBD II UART
if(Serial.available()){
Serial1.write(Serial.read());
}
if(Serial1.available()){
Serial.write(Serial1.read());
}
// put your main code here, to run repeatedly:
}
And fired the commands manually:
ATZ
OBDUART v1.0ATE0
OKATL0
OK0C
SEARCHING...
NO DATA
What now? I also changed the protocoll type, but that helps neither.
Can someone help me?
Hi, @stanleyhuangyc It's really great if I can use ArduinoOBD
library through Arduino's Library Manager
. The manager checks library updates on IDE starting and manage the hard things. I found some article to do this:
How do you think?
Hello
Getting an error when attempting to Compile from 'Serial2'
Not sure if i have a setting wrong somewhere, would like to experiment with the screen layout, but cant get past this point.
Screen shot and error text file attached.
how do I get the frames to show around the four quadrants?
In this line SerialBLE.begin(STREAM_BAUDRATE);
In file included from megalogger.ino:25:
/datalogger.h: In member function 'void CDataLogger::initSender()':
datalogger.h:68: error: 'Serial3' was not declared in this scope
/datalogger.h: In member function 'void CDataLogger::logData(char)':
datalogger.h:87: error: 'Serial3' was not declared in this scope
/datalogger.h: In member function 'void CDataLogger::logData(uint16_t, int)':
datalogger.h:106: error: 'Serial3' was not declared in this scope
/datalogger.h: In member function 'void CDataLogger::logData(uint16_t, int32_t)':
datalogger.h:124: error: 'Serial3' was not declared in this scope
/datalogger.h: In member function 'void CDataLogger::logData(uint16_t, int, int, int)':
datalogger.h:142: error: 'Serial3' was not declared in this scope
megalogger.ino: In member function 'void COBDLogger::setup()':
megalogger:86: error: 'Serial2' was not declared in this scope
megalogger.ino: In member function 'virtual void COBDLogger::dataIdleLoop()':
megalogger:249: error: 'Serial2' was not declared in this scope
megalogger.ino: In member function 'void COBDLogger::processGPS()':
megalogger:270: error: 'Serial2' was not declared in this scope
megalogger.ino: In function 'void setup()':
megalogger:651: error: 'Serial2' was not declared in this scope
Hello trying to compile megalogger project but getting this errors:
In file included from /Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:7,
from megalogger.ino:14:
/Users/admin/Documents/Arduino/libraries/MultiLCD/UTFT.h:178:42: error: hardware/avr/HW_AVR_defines.h: No such file or directory
In file included from /Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:7,
from megalogger.ino:14:
/Users/admin/Documents/Arduino/libraries/MultiLCD/UTFT.h:227: error: 'bitmapdatatype' has not been declared
/Users/admin/Documents/Arduino/libraries/MultiLCD/UTFT.h:228: error: 'bitmapdatatype' has not been declared
/Users/admin/Documents/Arduino/libraries/MultiLCD/UTFT.h:250: error: ISO C++ forbids declaration of 'regtype' with no type
/Users/admin/Documents/Arduino/libraries/MultiLCD/UTFT.h:250: error: expected ';' before '*' token
/Users/admin/Documents/Arduino/libraries/MultiLCD/UTFT.h:251: error: 'regsize' does not name a type
In file included from megalogger.ino:14:
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h: In constructor 'LCD_SSD1289::LCD_SSD1289()':
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:220: error: 'P_RS' was not declared in this scope
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:221: error: 'B_RS' was not declared in this scope
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:222: error: 'P_WR' was not declared in this scope
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:223: error: 'B_WR' was not declared in this scope
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:224: error: 'P_CS' was not declared in this scope
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:225: error: 'B_CS' was not declared in this scope
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:226: error: 'P_RST' was not declared in this scope
/Users/admin/Documents/Arduino/libraries/MultiLCD/MultiLCD.h:227: error: 'B_RST' was not declared in this scope
Arduino: 1.6.12 (Mac OS X: Yosemite version 10.10.5), Board: "Arduino/Genuino Uno"
The obd_uart_test.ino sketch keeps complaining that 'class COBD' has no member named 'version' and doesn't recognise the memory related commands.
You should add a complete walkthrough for getting this up and working - it was a bit challenging.
Here were the things that tripped me up:
Thanks again - great platform so far - enjoying using it and looking forward to my GPS to try out more!
line 381 : logger.logData(PID_GPS_DATE, (int32_t)time);
Hello, I want to know if I can use this OBD-II adapter on Spark Core.
Hi,
I have an aftermarket ECU with CAN Bus Hi and Lo pins. The ECU has non standard messages for RPM, speed etc. Can I read these with the library?
Any help is appreciated. Thank you.
Hi everyone,
When I tried to upload your example sketch (for reading PID's) with the OBD connected to my Arduino UNO, it did not work, so I uploaded the sketch without connected the OBD and after that I connected the OBD to my Arduino UNO and obtained a succession of : ARTZAR..................................................
Does anyone know what is happening?
Many thanks
Hi,
Using the latest commits, i have the following issue when compiling the UART sample:
"OBD/OBD.cpp.o:(.rodata._ZTV4COBD+0x8): undefined reference to `COBD::uninit()'"
Also, the example seems to missing the include for the Wire.h file.
I've had to revert to the commit from the 5th of June to get a working libary.
Could you fix this please?
Thanks in advance,
Mark
I recently bought this OBD-II arduino adapter.
iv'e defined #define DEBUG Serial
and saw these messages in arduino ide serial monitor:
SEARCHING...UNABLE TO CONNECT>[865698]ATZ OBDUART v1.0>[865754]ATE0
OBDUART v1.0>[865754]ATE0
ATEOOK)[865807]ATL1
OK>[865860]010C
SEARCHING...UNABLE TO CONNECT>[872586]ATZ OBDUART v1.0>[872641]ATE0
OBDUART v1.0>[872641]ATE0
ATEOOK)(872694]ATL1
OK)(872748]010C
SEARCHING...UNABLE TO CONNECT>[879473]ATZ OBDUART v1.0>[879528]ATE0
OBDUART v1.0>[879528]ATE0
ATEOOK)(879582]ATL1
OK)(879635]010C
SEARCHING...UNABLE TO CONNECT>[886362]ATZ OBDUART v1.0>[886417]ATE0
i debugged the code, and odb.init()
keep failing. @stanleyhuangyc Any suggestions?
tested on Arduino Leonardo,
My car - Volkswagen Polo 1998
I have an issue where by I need the values to be retrieved as double/float with 1 or 2 decimal places.
For example MAF (Mass Air Flow) needs to have at least 1 decimal place, but I always receive it as integer or a whole number.
I understand that some of the functions are returning values as 'int', but is there a way to resolve this?
Thanks.
I noticed the addition of getState() and OBD_CONNECTED in the 9/9/2013 push called "sync with library update."
This causes the following compile errors:
megalogger.ino: In member function 'virtual void COBDLogger::dataIdleLoop()':
megalogger.ino:295: error: 'getState' was not declared in this scope
megalogger.ino:295: error: 'OBD_CONNECTED' was not declared in this scope
Looks like there might be some other OBD_ #defines missing (like OBD_CONNECTING) in other places in the code.
Is everything pushed to github? I'm guessing that something's not quite updated...I cloned a fresh copy and get the same results as above.
Attempting to run rpm_led.ino with OBD.cpp and OBD.h and Arduino 1.5.2 spits a build error on line 50 of OBD.h 'undefined reference to 'vtable for COBD'. Sorry if this is not the correct place to submit this. I'm new to both Arduino and Github. Thanks for any suggestions.
Bought the UART v.1.2 for a long time ago, and tried the rpm example. And it worked as expected.
now I finally have the time to play with this.
I use the included rpm example and no problem uploading to arduino, but i does not work.
has something changed since the UART adabter was made?
Are there some new configuration to be made. It looks like the .h file needs to be altered. I have tried that, but no effect.
I have followed the instructions on the freematics site. I am using an arduino uno, so i cant put in serial to see what is going on.
How modify this to support reading ATF temperature ?
In the code there is the following function to fetch the state of the OBD:
// get connection state
virtual OBD_STATES getState() {
return m_state;
}
These states also have there own variable type defined in the library:
// states
typedef enum {
OBD_DISCONNECTED = 0,
OBD_CONNECTING = 1,
OBD_CONNECTED = 2,
OBD_FAILED = 3
} OBD_STATES;
I actually have two questions here. First, how can I get the state of the OBD into a usable format? I have tried casting and comparing, as shown below, with little sucess:
boolean isConnected = obd.getState() == OBD_CONNECTED;
int state = (int) obd.getState();
Also, what is the point of making a function that returns a useless variable type? There are no built in functions to these variables that provide any utility to the user, and as far as I can see, they are fairly inconvenient (or even impossible) to get in a format that can interact with other code.
MultiLCD lcd.print string is broken and prints only first character.
Number printing works fine though.
I am interested in using the https://freematics.com/pages/products/freematics-obd-ii-uart-adapter-mk2/ and this library to read the vehicle odometer data.
According to OBD-II Protocol's wikipedia (https://en.wikipedia.org/wiki/OBD-II_PIDs), there is a pid for reading Odometer data (ID 0xA6).
However, this library's interface doesn't support it. I tried adding it manually and reading it while the car is running, but the device didn't receive any answer.
Perhaps there are some intricacies in reading the pid with the library and merely requesting the specified ID is not enough.
So, is it possible to read the Odometer data with this device with some tweaking of the library or is it not possible?
Would you like to replace more defines for constant values by enumerations to stress their relationships?
That has nothing with the I2C adapter. The UART Adapter itself is no longer working. Users have complained about this issue and I am not the only one. It was useful to have the currently closed posts.
If you are unable to support UART, stop selling and supporting it. If you are saying it works, fix it. But don't go around closing posts without giving our reasons.
Function memsInit returns false when I initialize it and I don't know why.
bool COBD::memsInit(bool fusion)
{
char buf[16];
if (sendCommand("ATTEMP\r", buf, sizeof(buf)) <= 0 || strchr(buf, '?'))
return false;
if (fusion) {
m_fusion = true;
return sendCommand("ATQU1\r", buf, sizeof(buf));
} else {
if (m_fusion) {
m_fusion = false;
sendCommand("ATQU0\r", buf, sizeof(buf));
}
return true;
}
}
I checked it and it always perform first IF and rest doesn't.
if (sendCommand("ATTEMP\r", buf, sizeof(buf)) <= 0 || strchr(buf, '?'))
return false;
I'm testing with orientation_demo included in ArduinoOBD libraries and MEMS still doesn't work, other functions like readPID works fine.
#include <OBD2UART.h>
// On Arduino Leonardo, Micro, MEGA or DUE, hardware serial can be used for output as the adapter occupies Serial1
// On Arduino UNO and those have no Serial1, we use software serial for output as the adapter uses Serial
#ifdef ARDUINO_AVR_UNO
#include <SoftwareSerial.h>
SoftwareSerial mySerial(A2, A3);
#else
#define mySerial Serial
#endif
#if defined(ESP32) && !defined(Serial1)
HardwareSerial Serial1(1);
#endif
COBD obd;
bool hasMEMS;
void setup()
{
mySerial.begin(115200);
while (!mySerial);
// this will begin serial
for (;;) {
delay(1000);
byte version = obd.begin();
mySerial.print("Freematics OBD-II Adapter ");
if (version > 0) {
mySerial.println("detected");
break;
} else {
mySerial.println("not detected");
}
}
// initialize MEMS with sensor fusion enabled
hasMEMS = obd.memsInit(true);
mySerial.print("MEMS:");
mySerial.println(hasMEMS ? "OK" : "NO");
if (!hasMEMS) {
for (;;);
}
}
void loop()
{
int16_t acc[3] = {0};
int16_t gyro[3] = {0};
int16_t mag[3] = {0};
if (!obd.memsRead(acc, gyro, mag)) return;
mySerial.print("ACC:");
mySerial.print(acc[0]);
mySerial.print('/');
mySerial.print(acc[1]);
mySerial.print('/');
mySerial.print(acc[2]);
mySerial.print(" GYRO:");
mySerial.print(gyro[0]);
mySerial.print('/');
mySerial.print(gyro[1]);
mySerial.print('/');
mySerial.print(gyro[2]);
mySerial.print(" MAG:");
mySerial.print(mag[0]);
mySerial.print('/');
mySerial.print(mag[1]);
mySerial.print('/');
mySerial.print(mag[2]);
mySerial.println();
float yaw, pitch, roll;
if (obd.memsOrientation(yaw, pitch, roll)) {
mySerial.print("Orientation: ");
mySerial.print(yaw, 2);
mySerial.print(' ');
mySerial.print(pitch, 2);
mySerial.print(' ');
mySerial.println(roll, 2);
}
delay(100);
}
I need some help please. Thanks.
Hello,
I downloaded the code for the gprslogger from github, but am getting all kinds of errors when i try to compile it. I have added the errors below. Can you please help me? I have spent hours on this code, but am stuck:(
Arduino: 1.8.5 (Linux), Board: "Arduino/Genuino Uno"
Warning: Board breadboard:avr:atmega328bb doesn't define a 'build.board' preference. Auto-set to: AVR_ATMEGA328BB
Build options changed, rebuilding all
In file included from /home/john/Arduino/libraries/grbl/config.h:30:0,
from /home/john/Arduino/Telemetrics/ArduinoOBD-master/gpslogger/gpslogger.ino:15:
/home/john/Arduino/libraries/grbl/grbl.h:68:4: error: #error "Required HOMING_CYCLE_0 not defined."
#error "Required HOMING_CYCLE_0 not defined."
^
/home/john/Arduino/libraries/grbl/grbl.h:108:4: error: #error "WCO refresh must be greater than one."
#error "WCO refresh must be greater than one."
^
/home/john/Arduino/libraries/grbl/grbl.h:111:4: error: #error "Override refresh must be greater than zero."
#error "Override refresh must be greater than zero."
^
/home/john/Arduino/Telemetrics/ArduinoOBD-master/gpslogger/gpslogger.ino:19:24: fatal error: datalogger.h: No such file or directory
#include <datalogger.h>
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Hi,
It is possible to read the GEAR?
Thank you
Looked in buying several hardware units for a personal project.
This issue tracker not updated after a year does not make me feel good as a new customer.
Could someone please clean it up and update the issues and pull requests?
Hi, I want to know if the Nissan March / Micra 2014 produced in Mexico is compatible.
hi
i want read speed by obdIIUART and print it to Serial monitor
my code is
#include <OBD2UART.h>
COBD obd;
void setup()
{
// we'll use the debug LED as output
pinMode(13, OUTPUT);
Serial.begin(115200);
// start serial communication
obd.begin();
// initiate OBD-II connection until success
while (!obd.init());
}
void loop()
{
int SPEED;
if (obd.readPID(PID_SPPED, SPEED)) {
Serial.println(SPEED);
}
delay(500);
}
but my result is
ATIATZATE0ATH0010D0100012001400160
010D50
010D50
010D50
why it happend? i only want "50" as speed
please help me
HELLO,
I CAN NOT COMPILATE THE LIBRARY ODB2 APPEARS THAT THE BOOKSTORE IS NOT VALID, DO NOT KNOW IF I HAVE TO MODIFY SOMETHING IN THE LIBRARY TO BE ABLE TO INSTALL IT
Just downloaded all the latest code and I get these errors compiling for Arduino Board: Arduino MEGA (Sold on freematics)
In file included from megaloggerHD.ino:21:0:
datalogger.h: In member function ‘void CDataLogger::record(const char*, byte)’:
datalogger.h:110:40: error: invalid conversion from ‘char*’ to ‘const uint8_t* {aka const unsigned char*}’ [-fpermissive]
dataSize += sdfile.write(tmp, n);
^
In file included from megaloggerHD.ino:17:0:
/usr/share/arduino/libraries/SD/SD.h:36:18: note: initializing argument 1 of ‘virtual size_t File::write(const uint8_t*, size_t)’
virtual size_t write(const uint8_t buf, size_t size);
^
In file included from megaloggerHD.ino:21:0:
datalogger.h:111:42: error: invalid conversion from ‘const char’ to ‘const uint8_t* {aka const unsigned char*}’ [-fpermissive]
dataSize += sdfile.write(buf, len);
^
In file included from megaloggerHD.ino:17:0:
/usr/share/arduino/libraries/SD/SD.h:36:18: note: initializing argument 1 of ‘virtual size_t File::write(const uint8_t*, size_t)’
virtual size_t write(const uint8_t buf, size_t size);
^
In file included from megaloggerHD.ino:21:0:
datalogger.h: In member function ‘void CDataLogger::dispatch(const char, byte)’:
datalogger.h:130:32: error: invalid conversion from ‘const char*’ to ‘const uint8_t* {aka const unsigned char*}’ [-fpermissive]
SerialRF.write(buf, len);
^
In file included from /usr/share/arduino/hardware/arduino/cores/arduino/Stream.h:26:0,
from /usr/share/arduino/hardware/arduino/cores/arduino/HardwareSerial.h:28,
from /usr/share/arduino/hardware/arduino/cores/arduino/Arduino.h:193,
from megaloggerHD.ino:9:
/usr/share/arduino/hardware/arduino/cores/arduino/Print.h:53:20: note: initializing argument 1 of ‘virtual size_t Print::write(const uint8_t*, size_t)’
virtual size_t write(const uint8_t *buffer, size_t size);
^
megaloggerHD.ino: In function ‘void processMEMS()’:
megaloggerHD.ino:414:14: error: ‘class CMyOBD’ has no member named ‘memsRead’
megaloggerHD.ino: In function ‘void setup()’:
megaloggerHD.ino:677:13: error: ‘class CMyOBD’ has no member named ‘memsInit’
megaloggerHD.ino:711:19: error: ‘class CMyOBD’ has no member named ‘readDTC’
I get a lot of compilation errors. I know how to import libraries and have built several myself but I'm getting a lot of errors with this one and I'm wondering if it is not compatible with my current IDE. I am on Mac OS 10.9.2 with IDE 1.0.5. Here is the log of the latest attempt at compilation:
In file included from sketch_mar06a.ino:2: /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:61: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:64: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:65: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:66: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:67: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:68: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:69: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:70: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:71: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:73: error: 'getResponse' declared as a 'virtual' field /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:73: error: expected ';' before '(' token /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:74: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:82: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:83: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h: In constructor 'COBD::COBD()': /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:58: error: class 'COBD' does not have any field named 'dataMode' /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:58: error: class 'COBD' does not have any field named 'errors' /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:58: error: class 'COBD' does not have any field named 'm_state' /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h: At global scope: /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:144: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:146: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:149: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:152: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:155: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:155: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:156: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:156: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:161: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:161: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:161: error: 'byte' has not been declared /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:162: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:163: error: 'byte' does not name a type /Users/evanstoddard/Documents/Arduino/libraries/OBD/OBD.h:165: error: 'byte' does not name a type
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.