problem with ArduPilot-Arduino-1.0.3-windows

hello,

i have one arducopter and trying to use the built in barometer. i was trying to upload the example program (barometric pressure sensor ) given in arduino but when i compile this program, it gives so many error messages. but when i try the same with normal arduino ,it doesnt give any error.

could you please suggested what should be done?

error is "byte was not declared in this scope".

thanks

Are you using the same version of the IDE with the Arduino board and the Ardupilot ?
The problem sounds like it is caused by library files not being compatible with the IDE.

Posting the code that errors and the full error messages would help.

UKHeliBob:
Posting the code that errors and the full error messages would help.

the code is as follows:
/*
SCP1000 Barometric Pressure Sensor Display

Shows the output of a Barometric Pressure Sensor on a
Uses the SPI library. For details on the sensor, see:

http://www.vti.fi/en/support/obsolete_products/pressure_sensors/

This sketch adapted from Nathan Seidle’s SCP1000 example for PIC:
http://www.sparkfun.com/datasheets/Sensors/SCP1000-Testing.zip

Circuit:
SCP1000 sensor attached to pins 6, 7, 10 - 13:
DRDY: pin 6
CSB: pin 7
MOSI: pin 11
MISO: pin 12
SCK: pin 13

created 31 July 2010
modified 14 August 2010
by Tom Igoe
*/

// the sensor communicates using SPI, so include the library:
#include <SPI.h>

//Sensor’s memory register addresses:
const int PRESSURE = 0x1F; //3 most significant bits of pressure
const int PRESSURE_LSB = 0x20; //16 least significant bits of pressure
const int TEMPERATURE = 0x21; //16 bit temperature reading
const byte READ = 0b11111100; // SCP1000’s read command
const byte WRITE = 0b00000010; // SCP1000’s write command

// pins used for the connection with the sensor
// the other you need are controlled by the SPI library):
const int dataReadyPin = 6;
const int chipSelectPin = 7;

void setup() {
Serial.begin(9600);

// start the SPI library:
SPI.begin();

// initalize the data ready and chip select pins:
pinMode(dataReadyPin, INPUT);
pinMode(chipSelectPin, OUTPUT);

//Configure SCP1000 for low noise configuration:
writeRegister(0x02, 0x2D);
writeRegister(0x01, 0x03);
writeRegister(0x03, 0x02);
// give the sensor time to set up:
delay(100);
}

void loop() {
//Select High Resolution Mode
writeRegister(0x03, 0x0A);

// don’t do anything until the data ready pin is high:
if (digitalRead(dataReadyPin) == HIGH) {
//Read the temperature data
int tempData = readRegister(0x21, 2);

// convert the temperature to celsius and display it:
float realTemp = (float)tempData / 20.0;
Serial.print("Temp

=");
    Serial.print(realTemp);


    //Read the pressure data highest 3 bits:
    byte  pressure_data_high = readRegister(0x1F, 1);
    pressure_data_high &= 0b00000111; //you only needs bits 2 to 0

    //Read the pressure data lower 16 bits:
    unsigned int pressure_data_low = readRegister(0x20, 2);
    //combine the two parts into one 19-bit number:
    long pressure = ((pressure_data_high << 16) | pressure_data_low)/4;

    // display the temperature:
    Serial.println("\tPressure [Pa]=" + String(pressure));
  }
}

//Read from or write to register from the SCP1000:
unsigned int readRegister(byte thisRegister, int bytesToRead ) {
  byte inByte = 0;           // incoming byte from the SPI
  unsigned int result = 0;   // result to return
  Serial.print(thisRegister, BIN);
  Serial.print("\t");
  // SCP1000 expects the register name in the upper 6 bits
  // of the byte. So shift the bits left by two bits:
  thisRegister = thisRegister << 2;
  // now combine the address and the command into one byte
  byte dataToSend = thisRegister & READ;
  Serial.println(thisRegister, BIN);
  // take the chip select low to select the device:
  digitalWrite(chipSelectPin, LOW);
  // send the device the register you want to read:
  SPI.transfer(dataToSend);
  // send a value of 0 to read the first byte returned:
  result = SPI.transfer(0x00);
  // decrement the number of bytes left to read:
  bytesToRead--;
  // if you still have another byte to read:
  if (bytesToRead > 0) {
    // shift the first byte left, then get the second byte:
    result = result << 8;
    inByte = SPI.transfer(0x00);
    // combine the byte you just got with the previous one:
    result = result | inByte;
    // decrement the number of bytes left to read:
    bytesToRead--;
  }
  // take the chip select high to de-select:
  digitalWrite(chipSelectPin, HIGH);
  // return the result:
  return(result);
}


//Sends a write command to SCP1000

void writeRegister(byte thisRegister, byte thisValue) {

  // SCP1000 expects the register address in the upper 6 bits
  // of the byte. So shift the bits left by two bits:
  thisRegister = thisRegister << 2;
  // now combine the register address and the command into one byte:
  byte dataToSend = thisRegister | WRITE;

  // take the chip select low to select the device:
  digitalWrite(chipSelectPin, LOW);

  SPI.transfer(dataToSend); //Send register location
  SPI.transfer(thisValue);  //Send value to record into register

  // take the chip select high to de-select:
  digitalWrite(chipSelectPin, HIGH);
}


AND THE ERROR MESSAGE IS :










Building for ArduPilot Mega 2.x
Excluding arduino core from include paths
F:\ardupilot\ArduPilot-Arduino-1.0.3-windows\hardware\tools\avr\bin\avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega2560 -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=103 -mcall-prologues -DCONFIG_HAL_BOARD=HAL_BOARD_APM2 -DEXCLUDECORE -IF:\ardupilot\ArduPilot-Arduino-1.0.3-windows\libraries\SPI C:\Users\Sudhansu\AppData\Local\Temp\build994196272264057057.tmp\BarometricPressureSensor.cpp -o C:\Users\Sudhansu\AppData\Local\Temp\build994196272264057057.tmp\BarometricPressureSensor.cpp.o 
In file included from BarometricPressureSensor.ino:26:
F:\ardupilot\ArduPilot-Arduino-1.0.3-windows\libraries\SPI/SPI.h:15:21: warning: Arduino.h: No such file or directory
In file included from BarometricPressureSensor.ino:26:
F:\ardupilot\ArduPilot-Arduino-1.0.3-windows\libraries\SPI/SPI.h:38: error: 'byte' does not name a type
F:\ardupilot\ArduPilot-Arduino-1.0.3-windows\libraries\SPI/SPI.h:55: error: 'byte' does not name a type
BarometricPressureSensor:32: error: 'byte' was not declared in this scope
BarometricPressureSensor:32: error: expected primary-expression before 'int'
BarometricPressureSensor:32: error: initializer expression list treated as compound expression
BarometricPressureSensor:33: error: variable or field 'writeRegister' declared void
BarometricPressureSensor:33: error: 'byte' was not declared in this scope
BarometricPressureSensor:33: error: 'byte' was not declared in this scope
BarometricPressureSensor:32: error: 'byte' does not name a type
BarometricPressureSensor:33: error: 'byte' does not name a type
BarometricPressureSensor.ino: In function 'void setup()':
BarometricPressureSensor:41: error: 'Serial' was not declared in this scope
BarometricPressureSensor:47: error: 'INPUT' was not declared in this scope
BarometricPressureSensor:47: error: 'pinMode' was not declared in this scope
BarometricPressureSensor:48: error: 'OUTPUT' was not declared in this scope
BarometricPressureSensor:51: error: 'writeRegister' was not declared in this scope
BarometricPressureSensor:55: error: 'delay' was not declared in this scope
BarometricPressureSensor.ino: In function 'void loop()':
BarometricPressureSensor:60: error: 'writeRegister' was not declared in this scope
BarometricPressureSensor:63: error: 'digitalRead' was not declared in this scope
BarometricPressureSensor:63: error: 'HIGH' was not declared in this scope
BarometricPressureSensor:65: error: 'readRegister' cannot be used as a function
BarometricPressureSensor:69: error: 'Serial' was not declared in this scope
BarometricPressureSensor:74: error: 'byte' was not declared in this scope
BarometricPressureSensor:74: error: expected `;' before 'pressure_data_high'
BarometricPressureSensor:75: error: 'pressure_data_high' was not declared in this scope
BarometricPressureSensor:78: error: 'readRegister' cannot be used as a function
BarometricPressureSensor:83: error: 'String' was not declared in this scope
BarometricPressureSensor.ino: At global scope:
BarometricPressureSensor:88: error: redefinition of 'unsigned int readRegister'
BarometricPressureSensor:32: error: 'unsigned int readRegister' previously defined here
BarometricPressureSensor:88: error: 'byte' was not declared in this scope
BarometricPressureSensor:88: error: expected primary-expression before 'int'


thanks

I think you need to update your version of the Arduino software on your computer. It’s looking for a standard include file <Arduino.h> and it can’t find it. I believe the file had a different name in previous versions of the Arduino software.