Arduino Nano is displaying 'Error Compiling for board Arduino/Genuino Uno

Hi, just before, this is my first post and im new to this whole thing so I appreciate as much Patience as I can get this is one of my first projects and the code im using I got from online and when I tried to upload it I got this message Arduino: 1.8.1 (Mac OS X), Board: "Arduino Nano, ATmega328"

/Users/(Fam Name)/Downloads/FW4051QIRXTF12I/FW4051QIRXTF12I.ino:1:21: fatal error: pitches.h: No such file or directory
#include "pitches.h"
^
compilation terminated.
exit status 1
Error compiling for board Arduino Nano.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Arduino: 1.8.1 (Mac OS X), Board: "Arduino Nano, ATmega328"

/Users/(fam Name) /Downloads/FW4051QIRXTF12I/FW4051QIRXTF12I.ino:1:21: fatal error: pitches.h: No such file or directory
#include "pitches.h"
^
compilation terminated.
exit status 1
Error compiling for board Arduino Nano.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

#include "pitches.h"
#define DEBUG 1 
#define PAUSE 0

int inPin = 4;    // Gets signal from wireless receiver
int soundPin = 10; // Drives input of the LM386 amplifier
int ledPin = 2;  // Blinking led indicates that circuit operates correctly
int ledState = LOW;   // ledState used to set the LED
unsigned long previousMillis = 0;

/*************************************************
* Public Constants
*************************************************/

#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978









// Replace this with your favorite tune    
int melody[] = { \
1, NOTE_E3, NOTE_A3, NOTE_GS3, NOTE_A3, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_A3, \
2, NOTE_G3, NOTE_F3, 3, NOTE_F3, 1, PAUSE, NOTE_D3, NOTE_G3, NOTE_FS3, NOTE_G3, \
NOTE_A3, NOTE_G3, NOTE_D3, NOTE_F3, 4, NOTE_E3, 1, NOTE_E3, NOTE_A3, NOTE_GS3, \
NOTE_A3, NOTE_B3, NOTE_A3, NOTE_G3, NOTE_F3, 2, NOTE_E3, NOTE_D3, 4, NOTE_A3, \
1, NOTE_E3, NOTE_C4, NOTE_B3, NOTE_A3, NOTE_GS3, NOTE_A3, NOTE_B3, NOTE_G3, 4, NOTE_A3, -1}; 

void setup() {
 pinMode(ledPin, OUTPUT); 
 pinMode(soundPin, OUTPUT); 
 pinMode(inPin, INPUT);
}

void loop() {
 
int TransitionIntervals[50];
int transTime = 0;
int prevTransTime = 0; 
int i = 0;
int numOfTransitions = 0;
int value = 0;
int prevValue = 0;
int minInterval = 10000;
int maxInterval = 0;
int signalPeriodVariance = 10;
unsigned long currentMillis = millis();
 
// Toggle led if more the 0.2s passed. Blinking led indicates that program is running
// If it’s not blinking, restart Arduino by turning off and then on  
if (currentMillis - previousMillis >= 200) {
  // save the last time you blinked the LED
  previousMillis = currentMillis;

  // Toggle ledState var
  if (ledState == LOW) {
    ledState = HIGH;
  } else {
    ledState = LOW;
  }

  // set the LED to on or off per current value of ledState variable:
  digitalWrite(ledPin, ledState);
}  
 
// Take 2500 samples, which takes about 12-14ms 
// Record how many low->high transitions were there and what are 
// the time intervals between transitions
 prevValue = digitalRead(inPin);
 for (i = 0; i < 2500; i++) {
    value = digitalRead(inPin);
    
    // low->high transition detected 
    if ((value == 1) && (value != prevValue)) {
       // Don't record first transition
       if (prevTransTime > 0) {        
          TransitionIntervals[numOfTransitions] = i -  prevTransTime;
          numOfTransitions++;
       }
       prevTransTime = i;
    }              
    prevValue = value;   
 }   
 
 // Find the minimum and maximum interval (time between 0=>1 transitions)
 // If they are in a narrow range, this must be a signal coming from transmitter
 for (i = 0; i < numOfTransitions; i++) {
    if (TransitionIntervals[i] < minInterval) {
      minInterval = TransitionIntervals[i];
    }
    if (TransitionIntervals[i] > maxInterval) {
      maxInterval = TransitionIntervals[i];
    }
 }
 signalPeriodVariance = maxInterval-minInterval;
 
 
 // Here is the typical list of periods measured when signal is on
 // Period variance = 2
 // Num of transitions = 12
 //193 194 194 194 194 193 196 194 194 193 194 194  
 
 // And here is what we can expect when signal is off
 // Period variance = 302
 // Num of transitions = 24
 //114 266 24 210 56 93 12 48 60 18 10 55 109 173 130 133 131

 // Play melody only when detected signal is very close to a regular pulse, i.e variance is small  
 if (numOfTransitions > 10 && signalPeriodVariance < 5 && signalPeriodVariance >=0) {
         
   // Turn on led pin solid while melody is played
   digitalWrite(ledPin, HIGH);
   delay(100);
   
   // Play melody
   playMelody(8);

   // Turn off led     
   digitalWrite(ledPin, LOW); 
   ledState = LOW;     
 } 
 
}

// Plays melody on specified output pin
void playMelody(int outPin) {
int i = 0;
// Default note duration is 200 msec
int noteDuration = 200;

// retrieve value from array, -1 means end of array
while (melody[i] != -1) {
  int val = melody[i];
  i++;
  
  // if value is less than 10, then it's not a note frequency , but a duration 
  if ((val >= 1) && (val < 10)) {    
    noteDuration = 200*val;   
    continue;
  }
  
  // if it's a note - value is a frequency
  int noteFrequency = val;
  
  // play tone
  tone(outPin, noteFrequency, noteDuration);

  // to distinguish the notes, set a minimum time between them.
  // the note's duration + 30% seems to work well:
  int pauseBetweenNotes = noteDuration * 1.30;
  delay(pauseBetweenNotes);
  
  // stop the tone playing:
  noTone(outPin);
 
}
}

Did you select Arduino Nano in the ide sketch window under tools>board> big list of boards?

Arduino Nano is displaying 'Error Compiling for board Arduino/Genuino Uno

I find it rather difficult to believe that you ported the IDE to run on a Nano, along with the compiler, linker, and avrdude. Good work, if you did.

So, I do not believe that the Nano is displaying that message. Want to try again?

And, while you are fixing your post, read the damned stickies at the top of the forum - the ones you were supposed to read BEFORE you blundered in here - and learn how to post your code correctly.

1 Like

cattledog:
Did you select Arduino Nano in the ide sketch window under tools>board> big list of boards?

Yes

Take a look at the code you posted. Do you see how halfway down it turns to italics and there's a smiley face. This is why we have a rule that all code must be posted using code tags.

Please use code tags (</> button on the toolbar) when you post code or warning/error messages. The reason is that the forum software can interpret parts of your code as markup, leading to confusion, wasted time, and a reduced chance for you to get help with your problem. This will also make it easier to read your code and to copy it to the IDE or editor. Using code tags and other important information is explained in the How to use this forum post. Please read it.

Nik_S:
when I tried to upload it I got this message 'Error Compiling for board Arduino/Genuino Uno'

That's not very helpful. When you ask for help with an error here you need to post the FULL error output.

When you encounter an error you will see a button on the right side of the orange bar "Copy error messages". Click that button and then paste the error in a message here using code tags.

When you encounter an error you will see a button on the right side of the orange bar "Copy error messages". Click that button and then paste the error in a message here using code tags.

You can also use File + Preferences, to enable verbose mode when compiling and when linking. When you get results you don't understand, getting more information is often helpful - to us at least.

PaulS:
You can also use File + Preferences, to enable verbose mode when compiling and when linking. When you get results you don't understand, getting more information is often helpful - to us at least.

While I do recommend always turning on verbose output on upload and setting compiler warnings to All I disagree about enabling verbose output on compilation except in certain cases where you need to troubleshoot the compilation commands the Arduino IDE is generating (most likely not the case here). The reason is that it floods the console with a ton of text that is not generally useful, making it harder to see the useful warnings and error messages. I almost never turn verbose compilation on. It's also a bad idea to have it on when you are posting the output to the forum because it will greatly increase the size of the output which may push you over the post size limit and then you have to deal with an attachment and less people will take the time to download it.

"pitches.h"
This file needs to be in the same folder as your sketch. Do you have it?

CrossRoads:
"pitches.h"
This file needs to be in the same folder as your sketch. Do you have it?

Yes

pert:
Take a look at the code you posted. Do you see how halfway down it turns to italics and there's a smiley face. This is why we have a rule that all code must be posted using code tags.

Please use code tags (</> button on the toolbar) when you post code or warning/error messages. The reason is that the forum software can interpret parts of your code as markup, leading to confusion, wasted time, and a reduced chance for you to get help with your problem. This will also make it easier to read your code and to copy it to the IDE or editor. Using code tags and other important information is explained in the How to use this forum post. Please read it.That's not very helpful. When you ask for help with an error here you need to post the FULL error output.

When you encounter an error you will see a button on the right side of the orange bar "Copy error messages". Click that button and then paste the error in a message here using code tags.

pert:
Take a look at the code you posted. Do you see how halfway down it turns to italics and there's a smiley face. This is why we have a rule that all code must be posted using code tags.

Yea, I think I fixed it

PaulS:
I find it rather difficult to believe that you ported the IDE to run on a Nano, along with the compiler, linker, and avrdude. Good work, if you did.

So, I do not believe that the Nano is displaying that message. Want to try again?

And, while you are fixing your post, read the damned stickies at the top of the forum - the ones you were supposed to read BEFORE you blundered in here - and learn how to post your code correctly.

Heres the correct error message:

Arduino: 1.8.1 (Mac OS X), Board: "Arduino Nano, ATmega328"

/Users/(My Name)/Documents/Arduino/Doorbell_Code/Doorbell_Code.ino:1:21: fatal error: pitches.h: No such file or directory
#include "pitches.h"
^
compilation terminated.
exit status 1
Error compiling for board Arduino Nano.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

fatal error: pitches.h: No such file or directory

That seems pretty self-explanatory. Where, relative to the sketch directory, is that file?

Have you tried

#include <pitches.h>

?

Have you made certain that the file is named EXACTLY pitches.h? Not Pitches.h or pIthces.H or something else that is not pitches.h?

Hi. I was building and coding a gesture motion glove almost identical to the one in this video:

How to Make Arduino Gesture Control Robot | Wireless Glove Control | Mert Arduino - YouTube.

I used the same pieces, same board, and same code. I noticed that they were able to get theirs to work while mine is displaying the following error: Error compiling for Arduino Nano.

Here is the actual code:#include <I2Cdev.h>
#include <printf.h>
#include <nRF24L01.h>
#include <RF24_config.h>
#include <RF24.h>
#include <MPU6050_9Axis_MotionApps41.h>
#include <MPU6050.h>
#include <helper_3dmath.h>
#include <MPU6050_6Axis_MotionApps20.h>

int16_t ax, ay, az;
int16_t gx, gy, gz;

int data[2];

RF24 radio (9,10);

const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(void) {
Serial.begin(9600);
write.begin();
mpu.initialize() ;
radio.begin();
radio.openWritingPipe(pipe);
}

void loop(void) {

mpu.getMotion6 (&ax. &az, &gx, &gy, &gz);

data[0] = map(ax, -17000, 17000, 300, 400 );
data[1] = map(ay, -17000, 17000, 100, 200);
radio.write(data, sizeof(data));
}

I don't know why this is happening and what is wrong with it since everybody else was able to have theirs working correctly.

Additionally, here are the error messages:

Arduino: 1.8.8 (Mac OS X), Board: "Arduino Nano, ATmega328P"

In file included from /Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h:36:0,
from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:6:
/Users/matt/Documents/Arduino/libraries/I2CDev/I2Cdev.h:37:34: fatal error: compiler_abstraction.h: No such file or directory
compilation terminated.
exit status 1
Error compiling for board Arduino Nano.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Please respond and let me know what is wrong and how I can fix it. Thanks!

THIRTEEN_13:
/Users/matt/Documents/Arduino/libraries/I2CDev/I2Cdev.h:37:34: fatal error: compiler_abstraction.h: No such file or directory

You installed the wrong I2CDev library. The i2cdevlib repository contains multiple versions of the I2CDev library for different platforms. You installed the nRF51 version. But you're using a Nano, which doesn't have a nRF51 microcontroller, thus the error.

Do this:

You must not have followed my instructions correctly. The error is telling you that line 37 of /Users/matt/Documents/Arduino/libraries/I2CDev/I2Cdev.h is:

#include "compiler_abstraction.h"

But in the file I told you to install, line 37 is this:

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR

which will never cause an error because it's inside a comment block.

Guess what is at line 37 of the nRF51 version of the library I told you to delete? Our old friend:

#include "compiler_abstraction.h"

Also note the difference between the capitalization of the folder names. The bad nRF51 version is in a folder named I2CDev. The good Arduino version is in a folder named I2Cdev.

1 Like

Ok. I am sorry for the misunderstanding. I am new at understanding how libraries really work. I am only twelve. Let me just explain. I clicked the link again you sent me earlier with the correct library and put the folder into the correct place where the old I2CDev used to be. I put the new folder there and went to the Arduino software. It does not say I have that library in my contributed libraries section. Is it supposed to? So, I though it is supposed to be there so I went to add .Zip library and clicked on the new library you gave me and hit choose. It then said:

Specified folder/zip file does not contain a valid library.

Now I do not know why this is happening and if there is something wrong with the library or how I am doing it. Am I putting the library folder in the right spot? If not, please explain how to do it correctly in a simple way. I am really really sorry to bother you. Please forgive me and right back. Also, thank you so much for trying to figure this out with me! I'm really glad!

THIRTEEN_13:
I am only twelve.

Congratulations on getting an early start with Arduino! I wish I would have had access to this stuff at that age.

THIRTEEN_13:
I clicked the link again you sent me earlier with the correct library and put the folder into the correct place where the old I2CDev used to be. I put the new folder there

This is how the folder structure should look:

/Users/matt/Documents/Arduino
|_libraries
|_I2Cdev

There should not be a folder named I2CDev in that location. There should not be a folder named i2cdevlib in that location.

THIRTEEN_13:
and went to the Arduino software. It does not say I have that library in my contributed libraries section.

After installing the library, you need to restart the Arduino IDE before it will show up in that menu.

THIRTEEN_13:
so I went to add .Zip library and clicked on the new library you gave me and hit choose. It then said:

Specified folder/zip file does not contain a valid library.

Unfortunately the i2cdevlib repository is not structured correctly to allow that library installation method. You can use Sketch > Include Library > Add .ZIP Library to install the I2Cdev folder from the unzipped folder if you like though. Despite the name, it does allow you to install folders as well as .zip files. I figured that since you were already needing to go into the folder to delete the bad library, it would be easiest for you to do the manual installation of the good library by copying it over but Add .ZIP Library will ensure it's installed correctly.

THIRTEEN_13:
I am really really sorry to bother you. Please forgive me and right back.

No problem. I'm here to help but I can't see what's happening on your computer so it's difficult. I'm sure if you keep working at it, we'll be able to get the problem solved soon enough.

Ok! Thank you so much! I really appreciate all the help! I will try to do all that you said! Thanks again!

I finally think I understand what you are telling me to do! I took the correct file, IC2dev and put it in /Users/matt/Documents/Arduino/libraries/. There was no error this time that the specified folder/zip file does not contain a valid library. Also, it showed up in contributed libraries. Additionally, the three libraries I am using in this code are RF24, IC2dev, and MPU6050. Now when I verify the code, it says this:

Arduino: 1.8.8 (Mac OS X), Board: "Arduino Nano, ATmega328P"

In file included from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:10:0:
/Users/matt/Documents/Arduino/libraries/I2Cdev/ArduinoWrapper.h:15:20: fatal error: msp430.h: No such file or directory
compilation terminated.
exit status 1
Error compiling for board Arduino Nano.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Anyway, I do believe that this is a new error meaning the problem with IC2dev is fixed. Any thoughts?

THIRTEEN_13:
/Users/matt/Documents/Arduino/libraries/I2Cdev/ArduinoWrapper.h:15:20: fatal error: msp430.h: No such file or directory

That error means you installed the MSP430 library from the i2cdevlib-master/MSP430/I2Cdev folder. You need to delete that and install the library from the i2cdevlib-master/Arduino/I2Cdev folder.

THIRTEEN_13:
Anyway, I do believe that this is a new error meaning the problem with IC2dev is fixed.

Wrong. The problem with the I2Cdev library is not fixed. You need to install the correct version of the library. That repository contains several versions for different platforms. The only one that will work for you is the Arduino one.

Ok. Just did that and put the ICdev (from the Arduino folder in i2cdevlib-master) into users/matt/documents/Arduino/libraries. I am no longer getting the same error and I think it worked. On the other hand, I am now getting another error saying:

Write was not declared in this scope.

Here is my code:

#include <printf.h>
#include <nRF24L01.h>
#include <RF24_config.h>
#include <RF24.h>
#include <MPU6050_9Axis_MotionApps41.h>
#include <MPU6050.h>
#include <helper_3dmath.h>
#include <MPU6050_6Axis_MotionApps20.h>
#include <I2Cdev.h>

int16_t ax, ay, az;
int16_t gx, gy, gz;

int data[2];

RF24 radio (9,10);

const uint64_t pipe = 0xE8E8F0F0E1LL;

void setup(void) {
Serial.begin(9600);
  write.begin(); 
mpu.initialize() ;
radio.begin();
radio.openWritingPipe(pipe); 
}

void loop(void) {

  mpu.getMotion6 (&ax. &az, &gx, &gy, &gz);

  data[0] = map(ax, -17000, 17000, 300, 400 ); 
  data[1] = map(ay, -17000, 17000, 100, 200);
  radio.write(data, sizeof(data));
}

The line:

write.begin();

is what is being highlighted in the Arduino software when it gives me this error. Then, I looked at the error message and it was EXTREMELY long. I will try to give it to you anyway though. I believe it has to do something with my MPU6050 library too because in the error message it mentions MPU6050. Also, due to its large size, the forum will not allow me to post the error message. It is over 9000 characters. I do not think that the error only has to do with the line I highlighted in orange and I believe it has to do with some of the other lines like:

mpu.getMotion6 (&ax. &az, &gx, &gy, &gz);

Here is part of the error message. Since it is so long, I can only show you part of it:

 Arduino: 1.8.8 (Mac OS X), Board: "Arduino Nano, ATmega328P"

In file included from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:9:0:
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_6Axis_MotionApps20.h:116:0: warning: "MPU6050_DMP_CODE_SIZE" redefined
 #define MPU6050_DMP_CODE_SIZE       1929    // dmpMemory[]
 ^
In file included from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:6:0:
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h:107:0: note: this is the location of the previous definition
 #define MPU6050_DMP_CODE_SIZE       1962    // dmpMemory[]
 ^
In file included from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:9:0:
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_6Axis_MotionApps20.h:117:0: warning: "MPU6050_DMP_CONFIG_SIZE" redefined
 #define MPU6050_DMP_CONFIG_SIZE     192     // dmpConfig[]
 ^
In file included from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:6:0:
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h:108:0: note: this is the location of the previous definition
 #define MPU6050_DMP_CONFIG_SIZE     232     // dmpConfig[]
 ^
In file included from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:9:0:
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_6Axis_MotionApps20.h:118:0: warning: "MPU6050_DMP_UPDATES_SIZE" redefined
 #define MPU6050_DMP_UPDATES_SIZE    47      // dmpUpdates[]
 ^
In file included from /Users/matt/Documents/Arduino/sketch_jan04c/sketch_jan04c.ino:6:0:
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h:109:0: note: this is the location of the previous definition
 #define MPU6050_DMP_UPDATES_SIZE    140     // dmpUpdates[]
 ^
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h: In member function 'uint8_t MPU6050::dmpGetGravity(int16_t*, const uint8_t*)':
/Users/matt/Documents/Arduino/libraries/MPU6050/MPU6050_9Axis_MotionApps41.h:794:65: warning: integer overflow in expression [-Woverflow]
         - (int32_t)qI[2] * qI[2] + (int32_t)qI[3] * qI[3]) / (2 * 16384);

^