Git Product home page Git Product logo

altsoftserial's Introduction

AltSoftSerial Library

Improved software emulated serial, using hardware timers for precise signal timing and availability of CPU time for other libraries to respond to interrupts during data AltSoftSerial data transmission and reception.

http://www.pjrc.com/teensy/td_libs_AltSoftSerial.html

AltSoftSerial on Teensy 2.0

If you need very low baud rates, check out SlowSoftSerial by Paul Williamson.

altsoftserial's People

Contributors

falahati avatar ivankravets avatar matthijskooijman avatar paulstoffregen avatar scls19fr avatar srgdamia1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

altsoftserial's Issues

Add Support for ATMEGA328PB Please

Description

Describe your problem.

Does not appear to have support for ATMEGA328PB.

Steps To Reproduce Problem

Please give detailed instructions needed for anyone to attempt to reproduce the problem.

Just try compiling for ATMEGA328PB

Hardware & Software

ATMEGA328PB

Errors or Incorrect Output

Error while detecting libraries included by C:\Users\maeso\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp

incompatible with esp8266 architecture(s).

Hi,
I used arduino IDE to code esp8266. (https://github.com/esp8266/Arduino)
when I wrote:


#include 
AltSoftSerial myserial(0,2)

I couldn't pass the compiler, and got following error msgs:
WARNING: library AltSoftSerial claims to run on [avr] architecture(s) and may be incompatible with your current board which runs on [esp8266] architecture(s).

It would be helpful if you can provide the compatibility for esp8266, because esp8266 has only one UART and the softwareserial such on communicating with RS232.

Thanks in advance.

Lucas

peek seems not working

It looks like the following code is working for me.

int AltSoftSerial::peek(void)
{
uint8_t head, tail;

head = rx_buffer_head;
tail = rx_buffer_tail;
if (head == tail) return -1;
if (tail + 1 < RX_BUFFER_SIZE)
    return rx_buffer[tail+1];
else
    return rx_buffer[0];

}

Support for Teensy 4.0

Description

I am unable to compile any sketches that include <AltSoftSerial.h> against the Teensy 4.0 items I've purchased.

Steps To Reproduce Problem

I am using Arduino IDE 1.8.10 and the latest Teensy Loader 1.48. I can compile sketches (but not upload) for all the Teensy boards under the IDE Tools\Board:\Boards Manager up through Teensy 3.6. In looking at the AltSoftSerial-master\config\AlstSoftSerial_Boards.h, Teensy 2.0, Teensy++2.0 and Teensy 3.x are listed (and other makes of boards), but nothing specifically w.r.t. a Teensy 4.0.

Hardware & Software

Board Teensy 4.0
Shields / modules used None
Arduino IDE version 1.8.10
Teensyduino version (if using Teensy) 1.48
Version info & package name (from Tools > Boards > Board Manager) Teensy 2.0 through Teensy 4.0
Operating system & version Windows 10 Pro
Any other software or hardware? None yet

NOTE: I do have alternative AltSoftSerial installs, but they are all the current 1.4 version.

Arduino Sketch

Verbatim: ---
#include <AltSoftSerial.h>

AltSoftSerial altSerial;

void setup() {
Serial.begin(9600);
Serial.println("AltSoftSerial Test Begin");
altSerial.begin(9600);
altSerial.println("Hello World");
}

void loop() {
char c;

if (Serial.available()) {
c = Serial.read();
altSerial.print(c);
}
if (altSerial.available()) {
c = altSerial.read();
Serial.print(c);
}
}

Errors or Incorrect Output

Arduino: 1.8.10 (Windows 10), TD: 1.48, Board: "Teensy 4.0, Serial, 600 MHz, Faster, US English"

C:\Program Files (x86)\Arduino_1_8_10\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino_1_8_10\hardware -hardware C:\Users\glsw0\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino_1_8_10\tools-builder -tools C:\Program Files (x86)\Arduino_1_8_10\hardware\tools\avr -tools C:\Users\glsw0\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino_1_8_10\libraries -libraries C:\Users\glsw0\OneDrive\Documents\Arduino\libraries -fqbn=teensy:avr:teensy40:usb=serial,speed=600,opt=o2std,keys=en-us -ide-version=10810 -build-path C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522 -warnings=default -build-cache C:\Users\glsw0\AppData\Local\Temp\arduino_cache_74529 -verbose C:\Users\glsw0\OneDrive\Documents\Teensy\sketch_nov09a\sketch_nov09a.ino
C:\Program Files (x86)\Arduino_1_8_10\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino_1_8_10\hardware -hardware C:\Users\glsw0\AppData\Local\Arduino15\packages -tools C:\Program Files (x86)\Arduino_1_8_10\tools-builder -tools C:\Program Files (x86)\Arduino_1_8_10\hardware\tools\avr -tools C:\Users\glsw0\AppData\Local\Arduino15\packages -built-in-libraries C:\Program Files (x86)\Arduino_1_8_10\libraries -libraries C:\Users\glsw0\OneDrive\Documents\Arduino\libraries -fqbn=teensy:avr:teensy40:usb=serial,speed=600,opt=o2std,keys=en-us -ide-version=10810 -build-path C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522 -warnings=default -build-cache C:\Users\glsw0\AppData\Local\Temp\arduino_cache_74529 -verbose C:\Users\glsw0\OneDrive\Documents\Teensy\sketch_nov09a\sketch_nov09a.ino
Using board 'teensy40' from platform in folder: C:\Program
Using core 'teensy4' from platform in folder: C:\Program
Detecting libraries used...
"C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy/../tools/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=148 -DARDUINO=10810 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\Program Files (x86)\Arduino_1_8_10\hardware\teensy\avr\cores\teensy4" "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522\sketch\sketch_nov09a.ino.cpp" -o nul
Alternatives for AltSoftSerial.h: [[email protected]]
ResolveLibrary(AltSoftSerial.h)
-> candidates: [[email protected]]
"C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy/../tools/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=148 -DARDUINO=10810 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\Program Files (x86)\Arduino_1_8_10\hardware\teensy\avr\cores\teensy4" "-IC:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial" "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522\sketch\sketch_nov09a.ino.cpp" -o nul
"C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy/../tools/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=148 -DARDUINO=10810 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\Program Files (x86)\Arduino_1_8_10\hardware\teensy\avr\cores\teensy4" "-IC:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial" "C:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp" -o nul
Error while detecting libraries included by C:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial\AltSoftSerial.cpp
Generating function prototypes...
"C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy/../tools/arm/bin/arm-none-eabi-g++" -E -CC -x c++ -w -g -Wall -ffunction-sections -fdata-sections -nostdlib -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=148 -DARDUINO=10810 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\Program Files (x86)\Arduino_1_8_10\hardware\teensy\avr\cores\teensy4" "-IC:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial" "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522\sketch\sketch_nov09a.ino.cpp" -o "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino_1_8_10\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522\preproc\ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy/../tools/precompile_helper" "C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy\avr/cores/teensy4" "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522" "C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy/../tools/arm/bin/arm-none-eabi-g++" -x c++-header -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=148 -DARDUINO=10810 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\Program Files (x86)\Arduino_1_8_10\hardware\teensy\avr/cores/teensy4" "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522/pch/Arduino.h" -o "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522/pch/Arduino.h.gch"
"C:\Program Files (x86)\Arduino_1_8_10\hardware\teensy/../tools/arm/bin/arm-none-eabi-g++" -c -O2 -g -Wall -ffunction-sections -fdata-sections -nostdlib -MMD -std=gnu++14 -fno-exceptions -fpermissive -fno-rtti -fno-threadsafe-statics -felide-constructors -Wno-error=narrowing -mthumb -mcpu=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-d16 -D__IMXRT1062__ -DTEENSYDUINO=148 -DARDUINO=10810 -DF_CPU=600000000 -DUSB_SERIAL -DLAYOUT_US_ENGLISH "-IC:\Users\glsw0\AppData\Local\Temp\arduino_build_872522/pch" "-IC:\Program Files (x86)\Arduino_1_8_10\hardware\teensy\avr\cores\teensy4" "-IC:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial" "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522\sketch\sketch_nov09a.ino.cpp" -o "C:\Users\glsw0\AppData\Local\Temp\arduino_build_872522\sketch\sketch_nov09a.ino.cpp.o"
In file included from C:\Users\glsw0\OneDrive\Documents\Teensy\sketch_nov09a\sketch_nov09a.ino:1:0:

C:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial/AltSoftSerial.h: In static member function 'static void AltSoftSerial::begin(uint32_t)':

C:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial/AltSoftSerial.h:37:25: error: 'F_BUS' was not declared in this scope

#define ALTSS_BASE_FREQ F_BUS

                     ^

C:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial/AltSoftSerial.h:47:43: note: in expansion of macro 'ALTSS_BASE_FREQ'

static void begin(uint32_t baud) { init((ALTSS_BASE_FREQ + baud / 2) / baud); }

                                       ^

Multiple libraries were found for "AltSoftSerial.h"
Used: C:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial
Using library AltSoftSerial at version 1.4 in folder: C:\Users\glsw0\OneDrive\Documents\Arduino\libraries\AltSoftSerial
Error compiling for board Teensy 4.0.

Regards.

Issue with Teensy 3.2 and AltSoft at 9K6 speed

Hi there,

I have a problem which I cannot solve here: I use AltSoft for receiving bytes form a 9K6 serial keyboard interface on a Teensy 3.2. It works well for values between 0 and 126. As soon as the sent byte value increases to 127 the Teensy 3.2 recognises numbers in random values. As soon as I receive bytes smaller than 127 it takes 2-3 bytes to get the right output again.

The code works pretty well if I use Serial3 hardware interface. But I need all 3 hardware interfaces for MIDI and another 9K6 RS 232 interface so a fourth interface is needed. Maybe the Teensy is damaged?!?

Here is the code:

include <AltSoftSerial.h>

AltSoftSerial keyin;
byte keyinData = 0;

void setup()
{
keyin.begin (9600); // Keyboard Console Serial Receive (Pin 20)
Serial.begin(9600);
}

void loop()
{
if (keyin.available()>0)
{
keyinData = keyin.read();
Serial.println(keyinData);
}
}

Is there something I do wrong? Thank you for brining light into my darkness :.-)

Cheers,
Alexander

Lost answers UART

Description

sometimes the answers are lost uart. Module sim800L
AT+CLCC=1 (enable status call, 3 statuses: 1,0,2 1,0,0 1,0,6)

Steps To Reproduce Problem

repeat the operation several times

Hardware & Software

Board Arduino UNO
modules used SIM800L
Arduino IDE version 1.8.5
Operating system & version windows 7 x64

Arduino Sketch

#include <AltSoftSerial.h>

AltSoftSerial altSerial;
char c;
  
String resp="";

void setup() {
  Serial.begin(9600);
  //Serial.println("AltSoftSerial Test Begin");
  altSerial.begin(9600);
//  altSerial.println("at+cpowd=1");
//  delay(10000); 
  altSerial.println("at");
 // altSerial.println("atdxxxxxxxxxx;");
}
void loop() {
  if (altSerial.available()) {
    c = altSerial.read();
    Serial.print(c);   
  }
  
  if (Serial.available()) {
    c = Serial.read();
    altSerial.print(c);
    Serial.print(resp);
  }
 
 
}

Errors or Incorrect Output

at <----- manual input
OK <----normal answer
atdXXXXXXXXXX; <----- manual input
OK <----normal answer

+CLCC: 1,0,2,0,0,"XXXXXXXXXX",129,"" <----normal answer
atdXXXXXXXXXX; <----- bad answer \0 (end line) and print next command, manual input
OK <----normal answer

+CLCC: 1,0,2,0,0,"XXXXXXXXXX",129,"" <----normal answer

+CLCC: 1,0,0,0,0,"XXXXXXXXXX",129,"" <----normal answer

+CLCC: 1,0,6,0,0,"XXXXXXXXXX",129,"" <----normal answer

BUSY <----normal answer
atdXXXXXXXXXX; <----- manual input
OK <----normal answer

+CLCC: 1,0,2,0,0,"XXXXXXXXXX",129,"" <----normal answer

+CLCC: 1,0,6,0,0,"XXXXXXXXXX",129,"" <----normal answer

NO DIALTONE <----normal answer
atdXXXXXXXXXX; <----- manual input
OK <----normal answer

+CLCC: 1,0,2,0,0,"XXXXXXXXXX",129,"" <----normal answer

+CLCC: 1,0,0,0,0,"XXXXXXXXXX",129,"" <----normal answer

+CLCC: 1,0,6,0,0,"XXXXXXXXXX",129,"" <----normal answer

BUSY <----normal answer

<-----cut more 10 try ----->

atdXXXXXXXXXX; <----- manual input
OK <----normal answer

+CLCC: 1,0,2,0,0,"XXXXXXXXXX",129,"" <----normal answer

atdXXXXXXXXXX; <----- bad answer \0 (end line) and print next command, manual input
OK <----normal answer

+CLCC: 1,0,2,0,0,"XXXXXXXXXX",129,"" <----normal answer

+CLCC: 1,0,0,0,0,"XXXXXXXXXX",129,"" <----normal answer

+CLCC: 1,0,6,0,0,"XXXXXXXXXX",129,"" <----normal answer

BUSY <----normal answer

Document pins for Pro Mini

Hi, could you please add the Arduino Pro Mini pins on the documentation and example?
It is the same as the Arduino Uno. This would make it easier for the end user.

Thanks

Multiple instances of AltSoftwareSerial

Hi

First of all, congratulations on the excellent work you're carrying out both in terms of code and development of Teensy!

I have a requirement for multiple SoftwareSerial instances on an application and having reviewed the AltSoftSerial code, is there any reason why you have locked the pins? (and to some extent ,the timers)?

There doesn't seem to be any particular reason to not allow multiple instances, which would be great given the library's improved performance.

Even just making it as easy to change the Pins as it is for the timers, I think this'd be a great addition.

Another very useful addition would be the possibility to:

  • have the library initialized to SEND only or to RECEIVE only
  • Implement Half duplex mode (always be in state receiving and flipping only to TX when transmitting, with an optional TransmitEnable pin that goes high when TX is active), mimicking behavior similar to RS485 transceivers.

I believe all of this can be easily implemented and, again, would make for excellent additions (the first and most important being multiple instances).

For the time being I'll stick with NewSoftSerial although I'd rather use AltSoftSerial due to it's better co existence with other code.

Thank you
Pedro

Arduino Robot

I am wondering, is it possible to use AltSoftSerial in any way on the official Arduino Robot?
The OUTPUT_COMPARE_A_PIN is set to 5 on the AVR_ATmega32U4, and on the Arduino Robot it is connected to the buzzer, so can't access it in any normal way.

What could be solution to the problem?

Arduino Mega ADK board, 2x hardware serial comms

Hello,
I have an Arduino Mega ADK board connected to the PC via the normal square serial connector.

I also have a nordic semiconductor NRF52 board
This is receiving heart rate data from a chest strap via ANT+, and sending the values on its own micro USB serial port @ 115,200 baud, 8 data bits, 1 stop bit, no parity, no flow control.
This is working correctly, using Putty terminal emulator on the PC and plugging the NRF52 directly into a PC USB port, I can see the steam of heart rate data.

Next step is to get the data across to the arduino.
I've connected the NRF52's micro USB port to the Arduino's second serial port (attached), but can't get any data.
Also tried cutting a USB cable in half and connecting to pins 18,19+gnd, but no data.

Can you please help me to get going?
Many thanks,
Phil.
megaadk

Issues with .available()

I have been having problems with .available(), returning zero when there really was data in the input buffer. It seems that you need to leave a small amount of time between queries to return a correct value. Even though is not always like that.

RX Buffer max size is 500byte?

I have to read a stream with nearly 700 byte from my smart meter (data from an IR diode at 9600 baud).
When using the library with a Mega2560 board (rx pin 48) I always get a "serial buffer overload" error when 500 bytes were received.

if (mySerial.available()) {
    buffer[idx] = mySerial.read();
    ...
    idx += 1;
}

if (mySerial.overflow()) {
    Serial.print("SERIAL_OVERFLOW at: ");
    Serial.println(idx);
}

I already changed the size to
#define RX_BUFFER_SIZE 1024
but it still ends at 500 bytes read.

The last two bytes reappear after flushing

  1. Connect two Arduino Nanos in the following way: D9 with D9 and D8 with D8.
  2. Upload a sketch (see below) to the first Arduino which continuously transmits a 10 byte long sequence via SoftwareSerial on 9600 baud.
  3. Upload a sketch to the second Arduino which receives the sequence (with 16 MHz) and prints it. Printing is done on a higher speed to avoid clogging the hardware serial.
  4. Modify RX buffer size to a big enough value (let's say 250). Since the buffer is filling up quicker than I could read it, in this case, I want to drop it in a controlled manner with flushInput() when the size is equal to 228 (an arbitrary value).
  5. The problem is, that after dropping the whole buffer the last two received characters reappear on screen.

Code for the first Arduino which just sends out characters:

#include <SoftwareSerial.h>
SoftwareSerial sSerial(9, 8); // RX, TX

void setup() {
  Serial.begin(38400);
  sSerial.begin(9600);
}

void loop() {
  const uint8_t testArray[10] = {0xB5, 0x62, 0x05, 0x01, 0x02, 0x00, 0x06, 0x00, 0x0E, 0x37};
  for (size_t i = 0; i < sizeof(testArray); ++i) {
    Serial.print(F("0x"));
    Serial.println(testArray[i], HEX);
    sSerial.write(testArray[i]);
  }
}

Code for the second Arduino which receives characters, prints them out and flushes buffer regularly:

#include <AltSoftSerial.h>
AltSoftSerial altSerial;

void setup() {
  Serial.begin(38400);
  altSerial.begin(9600);
}

void loop() {
  uint8_t c = 0;
  if (altSerial.available() == 228) {
    altSerial.flushInput();
  }

  if (altSerial.available()) {
    Serial.print(altSerial.available()); // Print out buffer state
    c = altSerial.read();
    Serial.print(F(" - 0x"));
    Serial.println(c, HEX);
  }
}

The result after clearing the correctly received sequences:

[2018-12-10 19:03:16.251] 223 - 0xB5
[2018-12-10 19:03:16.251] 224 - 0x62
[2018-12-10 19:03:16.251] 225 - 0x5
[2018-12-10 19:03:16.259] 226 - 0x1
[2018-12-10 19:03:16.259] 226 - 0x2
[2018-12-10 19:03:16.260] 226 - 0x0
[2018-12-10 19:03:16.268] 227 - 0x6
[2018-12-10 19:03:16.268] 1 - 0x0
[2018-12-10 19:03:16.268] 1 - 0x6
[2018-12-10 19:03:16.276] 1 - 0x0
[2018-12-10 19:03:16.276] 1 - 0xE
[2018-12-10 19:03:16.276] 1 - 0x37
[2018-12-10 19:03:17.450] 223 - 0xB5
[2018-12-10 19:03:17.459] 223 - 0x62
[2018-12-10 19:03:17.459] 224 - 0x5
[2018-12-10 19:03:17.459] 225 - 0x1
[2018-12-10 19:03:17.467] 225 - 0x2
[2018-12-10 19:03:17.467] 226 - 0x0
[2018-12-10 19:03:17.467] 226 - 0x6
[2018-12-10 19:03:17.475] 227 - 0x0
[2018-12-10 19:03:17.475] 1 - 0x6
[2018-12-10 19:03:17.475] 1 - 0x0
[2018-12-10 19:03:17.483] 1 - 0xE
[2018-12-10 19:03:17.483] 1 - 0x37
[2018-12-10 19:03:18.683] 1 - 0xE   // Here only the last two repeated bytes are displayed, the correct full sequence is deleted before
[2018-12-10 19:03:18.691] 1 - 0x37
[2018-12-10 19:03:19.890] 1 - 0xE   // Here only the last two repeated bytes are displayed, the correct full sequence is deleted before
[2018-12-10 19:03:19.891] 1 - 0x37
[2018-12-10 19:03:21.097] 1 - 0xE   // Here only the last two repeated bytes are displayed, the correct full sequence is deleted before
[2018-12-10 19:03:21.097] 1 - 0x37
[2018-12-10 19:03:27.117] 226 - 0xB5
[2018-12-10 19:03:27.117] 227 - 0x62
[2018-12-10 19:03:27.126] 227 - 0x5
[2018-12-10 19:03:27.126] 1 - 0x62
[2018-12-10 19:03:27.126] 1 - 0x5
[2018-12-10 19:03:27.134] 1 - 0x1
[2018-12-10 19:03:27.134] 1 - 0x2
[2018-12-10 19:03:27.134] 1 - 0x0

As you can see the last two bytes before flushing reappear after flushing.

I tried to put the flushInput() function into an ATOMIC_BLOCK, but unfortunately it didn't work, the problem lies in an other place.

What I additionally observed if with this 10-byte-long sequence I use a flushing constant divisible by ten (instead of 228), this bug disappears. Same with a 9-byte-long sequence and a number divisible by nine.

Using Digital Pin 10 on Arduino Uno

Hello. I use AltSoftSerial for my program in an Arduino Uno to read data from sensor circuits so I use D8 & D9. At the same time, I use a RH95 library (http://www.airspayce.com/mikem/arduino/RadioHead/classRH__RF95.html) that uses pin 10 as an SPI slave select for a LoRa shield (I checked its code and it uses digitalwrite to do this). The AltSoftSerial doesn't seem to respond properly, not getting data from the sensor circuits. I am also not able to send using the LoRa sheild. I thought pin 10 can be used normally with digitalwrite. Is there a problem with using pin 10 this way? Thanks.

Use pin change interrupts for full configurability of serial port pins

Pin change interrupts work like input capture interrupts except that an interrupt is triggered any time a pin on a port (e.g. PORTC, PORTB) is changed. Using some clever masking, you can make the equivalent of an input capture interrupt, except that it works for any pin.

Not totally sure if ARM based boards (such as the Teensy 3) support pin change interrupts. More research needed. At very least this would allow fully configurable pins for AVR based boards.

@PaulStoffregen would you be open to a change like this? If so, I'd be happy to take a stab at it and send a pull request.

Bump version number

Bump up the version number in the library.json file so the PlatformIO library manager will update the library in their indices.

Receive does not work correctly at slow baud rates with long sequences of identical bits

I was trying to receive data at 1200baud on an 8MHz Atmega328 and had the problem that certain characters were not received correctly. 0x00 became 0xff, etc. I finally realized the problem was with characters that had at least 6 identical bits. It appears that in that case, the timer B will wrap around sufficiently that "offset" in the CAPTURE_INTERRUPT handler becomes negative, so it would simply exit out of the loop instead of put the received bits into the rx_byte.

The fix was to add a second check that checks if the offset is so negative that it could not possibly be due to a pin change before the target time. If

                       if (offset < 0) break;

is changed to

                        // if it's not yet time to sample, do
                        // nothing. However, for long stretches of
                        // identical bits, enough time may pass that
                        // the offset becomes negative, so we must
                        // check whether the negative offset is due to
                        // this.

                        if (offset < 0 &&
                            offset > -(0xffff-rx_stop_ticks)) 
                                break;

then it works correctly for me. (However, I haven't thought about whether this will result in problems at higher baud rates where rx_stop_ticks might be so small that 0xffff-rx_stop_ticks may not fit in the int16_t.)

Otherwise it seems to work great, thanks for writing it!

Regards,

/Patrik

Errors when compiling AltSoftSerial with TMRpcm

TMRpcm link

Sample Code:

#include <TMRpcm.h>
TMRpcm tmrpcm; // TMRpcm Object

#include <AltSoftSerial.h>
AltSoftSerial BTserial; // AltSoftSerial BT Object

Renders a resulting compile error of:

"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -w -Os -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p  -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/v5.ino.elf" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/File.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/SD.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/Sd2Card.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/SdFile.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/SdVolume.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SPI/SPI.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/TMRpcm.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/pcmRF.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/AltSoftSerial-1.4/AltSoftSerial.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "-L/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp" -lm
/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/AltSoftSerial-1.4/AltSoftSerial.cpp.o (symbol from plugin): In function `AltSoftSerial::read()':
(.text+0x0): multiple definition of `__vector_10'
/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/TMRpcm.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status

Full log:

Arduino: 1.6.10 (Linux), Board: "Arduino/Genuino Uno"

/home/<redacted>/tools/Arduino/arduino-builder -dump-prefs -logger=machine -hardware "/home/<redacted>/tools/Arduino/hardware" -tools "/home/<redacted>/tools/Arduino/tools-builder" -tools "/home/<redacted>/tools/Arduino/hardware/tools/avr" -built-in-libraries "/home/<redacted>/tools/Arduino/libraries" -libraries "/home/<redacted>/Arduino/libraries" -fqbn=arduino:avr:uno -ide-version=10610 -build-path "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "/home/<redacted>/Desktop/ArduinoResources/v5/v5.ino"
/home/<redacted>/tools/Arduino/arduino-builder -compile -logger=machine -hardware "/home/<redacted>/tools/Arduino/hardware" -tools "/home/<redacted>/tools/Arduino/tools-builder" -tools "/home/<redacted>/tools/Arduino/hardware/tools/avr" -built-in-libraries "/home/<redacted>/tools/Arduino/libraries" -libraries "/home/<redacted>/Arduino/libraries" -fqbn=arduino:avr:uno -ide-version=10610 -build-path "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp" -warnings=none -prefs=build.warn_data_percentage=75 -verbose "/home/<redacted>/Desktop/ArduinoResources/v5/v5.ino"
Using board 'uno' from platform in folder: /home/<redacted>/tools/Arduino/hardware/arduino/avr
Using core 'arduino' from platform in folder: /home/<redacted>/tools/Arduino/hardware/arduino/avr
Detecting libraries used...
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/tools/Arduino/libraries/SD/src/File.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/tools/Arduino/libraries/SD/src/SD.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/tools/Arduino/libraries/SD/src/utility/Sd2Card.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/tools/Arduino/libraries/SD/src/utility/SdFile.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/tools/Arduino/libraries/SD/src/utility/SdVolume.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src/SPI.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/Arduino/libraries/TMRpcm-master/TMRpcm.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/Arduino/libraries/TMRpcm-master/pcmRF.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4/AltSoftSerial.cpp" -o "/dev/null"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/dev/null"
Generating function prototypes...
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics  -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/preproc/ctags_target_for_gcc_minus_e.cpp"
"/home/<redacted>/tools/Arduino/tools-builder/ctags/5.8-arduino10/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/preproc/ctags_target_for_gcc_minus_e.cpp"
Compiling sketch...
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp.o"
Compiling libraries...
Compiling library "SD"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/tools/Arduino/libraries/SD/src/File.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/File.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/tools/Arduino/libraries/SD/src/SD.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/SD.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/tools/Arduino/libraries/SD/src/utility/Sd2Card.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/Sd2Card.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/tools/Arduino/libraries/SD/src/utility/SdFile.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/SdFile.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/tools/Arduino/libraries/SD/src/utility/SdVolume.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/SdVolume.cpp.o"
Compiling library "SPI"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src/SPI.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SPI/SPI.cpp.o"
Compiling library "TMRpcm-master"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/Arduino/libraries/TMRpcm-master/TMRpcm.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/TMRpcm.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/Arduino/libraries/TMRpcm-master/pcmRF.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/pcmRF.cpp.o"
Compiling library "AltSoftSerial-1.4"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "-I/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4" "-I/home/<redacted>/tools/Arduino/libraries/SD/src" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI/src" "-I/home/<redacted>/Arduino/libraries/TMRpcm-master" "/home/<redacted>/Arduino/libraries/AltSoftSerial-1.4/AltSoftSerial.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/AltSoftSerial-1.4/AltSoftSerial.cpp.o"
Compiling core...
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -x assembler-with-cpp -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.S" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_pulse.S.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/WInterrupts.c" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/WInterrupts.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/hooks.c" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/hooks.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/wiring.c" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/wiring_analog.c" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_analog.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/wiring_digital.c" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_digital.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/wiring_pulse.c" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_pulse.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -c -g -Os -w -std=gnu11 -ffunction-sections -fdata-sections -MMD -flto -fno-fat-lto-objects -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/wiring_shift.c" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_shift.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/CDC.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/CDC.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial0.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/HardwareSerial1.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial1.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/HardwareSerial2.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial2.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/HardwareSerial3.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial3.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/IPAddress.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/IPAddress.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/PluggableUSB.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/PluggableUSB.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/Print.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/Print.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/Stream.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/Stream.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/Tone.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/Tone.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/USBCore.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/USBCore.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/WMath.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/WMath.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/WString.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/WString.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/abi.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/abi.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/main.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/main.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10610 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR   "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino" "-I/home/<redacted>/tools/Arduino/hardware/arduino/avr/variants/standard" "/home/<redacted>/tools/Arduino/hardware/arduino/avr/cores/arduino/new.cpp" -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/new.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_pulse.S.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/WInterrupts.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/hooks.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_analog.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_digital.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_pulse.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/wiring_shift.c.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/CDC.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial0.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial1.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial2.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/HardwareSerial3.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/IPAddress.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/PluggableUSB.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/Print.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/Stream.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/Tone.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/USBCore.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/WMath.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/WString.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/abi.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/main.cpp.o"
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc-ar" rcs  "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/new.cpp.o"
Linking everything together...
"/home/<redacted>/tools/Arduino/hardware/tools/avr/bin/avr-gcc" -w -Os -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega328p  -o "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/v5.ino.elf" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/sketch/v5.ino.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/File.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/SD.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/Sd2Card.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/SdFile.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SD/utility/SdVolume.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/SPI/SPI.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/TMRpcm.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/pcmRF.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/AltSoftSerial-1.4/AltSoftSerial.cpp.o" "/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/core/core.a" "-L/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp" -lm
/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/AltSoftSerial-1.4/AltSoftSerial.cpp.o (symbol from plugin): In function `AltSoftSerial::read()':
(.text+0x0): multiple definition of `__vector_10'
/tmp/build67c3bf7bf726ded6cf06e7e2c7f8d7ce.tmp/libraries/TMRpcm-master/TMRpcm.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status
Using library SD at version 1.0.8 in folder: /home/<redacted>/tools/Arduino/libraries/SD 
Using library SPI at version 1.0 in folder: /home/<redacted>/tools/Arduino/hardware/arduino/avr/libraries/SPI 
Using library TMRpcm-master at version 1.0 in folder: /home/<redacted>/Arduino/libraries/TMRpcm-master 
Using library AltSoftSerial-1.4 at version 1.4 in folder: /home/<redacted>/Arduino/libraries/AltSoftSerial-1.4 
exit status 1
Error compiling for board Arduino/Genuino Uno.

Improved prescale

Thanks for your fine code, both easily understandable and efficient :-)
Here is a suggestion for improved handling of the prescaler, better readable and easier to adopt to various prescaling factors. It also allows to report/flag invalid baudrates.
prescale.zip

Using Servo.h causes build error

Want to use your library except of SoftwareSerial as it causes problems with the Servo library. After moving my code to your library I got this problem:
(Sorry, my IDE produces output in my language.)

Arduino: 1.5.6-r2 (Linux), Board: "Arduino Uno"

Build options changed, rebuilding all
Verwende die Bibliothek SerialCommand im Ordner: /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand (legacy)
Verwende die Bibliothek Servo im Ordner: /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo 
Verwende die Bibliothek AltSoftSerial im Ordner: /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial (legacy)
Verwende die Bibliothek TinyGPSPlus im Ordner: /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus (legacy)
Verwende die Bibliothek Wire im Ordner: /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire (legacy)
Verwende die Bibliothek I2Cdev im Ordner: /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev (legacy)
Verwende die Bibliothek MPU6050 im Ordner: /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 (legacy)
Verwende die Bibliothek HMC5883L im Ordner: /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L (legacy)
Verwende die Bibliothek BMP085 im Ordner: /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 (legacy)

/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 /tmp/build3969390061829792644.tmp/DRONE.cpp -o /tmp/build3969390061829792644.tmp/DRONE.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand/utility /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand/SerialCommand.cpp -o /tmp/build3969390061829792644.tmp/SerialCommand/SerialCommand.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src/avr/Servo.cpp -o /tmp/build3969390061829792644.tmp/Servo/avr/Servo.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src/sam/Servo.cpp -o /tmp/build3969390061829792644.tmp/Servo/sam/Servo.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial/utility /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial/AltSoftSerial.cpp -o /tmp/build3969390061829792644.tmp/AltSoftSerial/AltSoftSerial.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus/utility /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus/TinyGPS++.cpp -o /tmp/build3969390061829792644.tmp/TinyGPSPlus/TinyGPS++.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire/utility /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire/Wire.cpp -o /tmp/build3969390061829792644.tmp/Wire/Wire.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire/utility /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire/utility/twi.c -o /tmp/build3969390061829792644.tmp/Wire/utility/twi.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev/utility /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev/I2Cdev.cpp -o /tmp/build3969390061829792644.tmp/I2Cdev/I2Cdev.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050/utility /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050/MPU6050.cpp -o /tmp/build3969390061829792644.tmp/MPU6050/MPU6050.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L/utility /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L/HMC5883L.cpp -o /tmp/build3969390061829792644.tmp/HMC5883L/HMC5883L.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/SerialCommand -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/TinyGPSPlus -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/libraries/Wire -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/I2Cdev -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/MPU6050 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/HMC5883L -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085 -I/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085/utility /media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/BMP085/BMP085.cpp -o /tmp/build3969390061829792644.tmp/BMP085/BMP085.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/wiring_digital.c -o /tmp/build3969390061829792644.tmp/wiring_digital.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/WInterrupts.c -o /tmp/build3969390061829792644.tmp/WInterrupts.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/avr-libc/realloc.c -o /tmp/build3969390061829792644.tmp/realloc.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/avr-libc/malloc.c -o /tmp/build3969390061829792644.tmp/malloc.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/wiring_analog.c -o /tmp/build3969390061829792644.tmp/wiring_analog.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/wiring_shift.c -o /tmp/build3969390061829792644.tmp/wiring_shift.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/wiring_pulse.c -o /tmp/build3969390061829792644.tmp/wiring_pulse.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/wiring.c -o /tmp/build3969390061829792644.tmp/wiring.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/hooks.c -o /tmp/build3969390061829792644.tmp/hooks.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/HardwareSerial3.cpp -o /tmp/build3969390061829792644.tmp/HardwareSerial3.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/WString.cpp -o /tmp/build3969390061829792644.tmp/WString.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/HardwareSerial2.cpp -o /tmp/build3969390061829792644.tmp/HardwareSerial2.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/HID.cpp -o /tmp/build3969390061829792644.tmp/HID.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/Print.cpp -o /tmp/build3969390061829792644.tmp/Print.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/CDC.cpp -o /tmp/build3969390061829792644.tmp/CDC.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/IPAddress.cpp -o /tmp/build3969390061829792644.tmp/IPAddress.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/new.cpp -o /tmp/build3969390061829792644.tmp/new.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/Stream.cpp -o /tmp/build3969390061829792644.tmp/Stream.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/main.cpp -o /tmp/build3969390061829792644.tmp/main.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/Tone.cpp -o /tmp/build3969390061829792644.tmp/Tone.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/USBCore.cpp -o /tmp/build3969390061829792644.tmp/USBCore.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp -o /tmp/build3969390061829792644.tmp/HardwareSerial0.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/WMath.cpp -o /tmp/build3969390061829792644.tmp/WMath.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/HardwareSerial.cpp -o /tmp/build3969390061829792644.tmp/HardwareSerial.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=156 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino -I/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/variants/standard /media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/arduino/avr/cores/arduino/HardwareSerial1.cpp -o /tmp/build3969390061829792644.tmp/HardwareSerial1.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/wiring_digital.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/WInterrupts.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/realloc.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/malloc.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/wiring_analog.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/wiring_shift.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/wiring_pulse.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/wiring.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/hooks.c.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/HardwareSerial3.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/WString.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/HardwareSerial2.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/HID.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/Print.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/CDC.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/IPAddress.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/new.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/Stream.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/main.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/Tone.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/USBCore.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/HardwareSerial0.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/WMath.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/HardwareSerial.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-ar rcs /tmp/build3969390061829792644.tmp/core.a /tmp/build3969390061829792644.tmp/HardwareSerial1.cpp.o 
/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/hardware/tools/avr/bin/avr-gcc -Os -Wl,--gc-sections -mmcu=atmega328p -o /tmp/build3969390061829792644.tmp/DRONE.cpp.elf /tmp/build3969390061829792644.tmp/DRONE.cpp.o /tmp/build3969390061829792644.tmp/SerialCommand/SerialCommand.cpp.o /tmp/build3969390061829792644.tmp/Servo/avr/Servo.cpp.o /tmp/build3969390061829792644.tmp/Servo/sam/Servo.cpp.o /tmp/build3969390061829792644.tmp/AltSoftSerial/AltSoftSerial.cpp.o /tmp/build3969390061829792644.tmp/TinyGPSPlus/TinyGPS++.cpp.o /tmp/build3969390061829792644.tmp/Wire/Wire.cpp.o /tmp/build3969390061829792644.tmp/Wire/utility/twi.c.o /tmp/build3969390061829792644.tmp/I2Cdev/I2Cdev.cpp.o /tmp/build3969390061829792644.tmp/MPU6050/MPU6050.cpp.o /tmp/build3969390061829792644.tmp/HMC5883L/HMC5883L.cpp.o /tmp/build3969390061829792644.tmp/BMP085/BMP085.cpp.o /tmp/build3969390061829792644.tmp/core.a -L/tmp/build3969390061829792644.tmp -lm 
/tmp/build3969390061829792644.tmp/AltSoftSerial/AltSoftSerial.cpp.o: In function `AltSoftSerial::init(unsigned long)':
/media/thopiekar/ISOIMAGE/Projekte/arduino/libraries/AltSoftSerial/AltSoftSerial.cpp:65: multiple definition of `__vector_11'
/tmp/build3969390061829792644.tmp/Servo/avr/Servo.cpp.o:/media/thopiekar/ISOIMAGE/arduino-1.5.6-r2-64bit/libraries/Servo/src/avr/Servo.cpp:80: first defined here

Support for Arduino Due

Hi,
I have seen comments you dont intend to support Due, but I would like to know what would be required - since you are using SAM architecture in Teensy 3.1 I assume it can work in a SAM chip.

Could you please outline the major steps to porting to Due?

Rob

Elimininate 'unused parameter' warnings

Paul,
you can remove the unused parameter warnings in AltSoftSerial.h by doing this:
line 63:

AltSoftSerial(uint8_t rxPin, uint8_t txPin, bool inverse = false) { (void) rxPin; (void) txPin; (void) inverse;}

line 68

static void enable_timer0(bool enable) { (void) enable;}

Problem at 2400 baud (atmega328)

This library is a great work.
I need to use at the same time a GSM modem (on AltSoftSerial) and another device on SoftwareSerial that supports max 38Kbaud, thus I need to use the modem at 2400 baud.
The issue is: at 2400 baud in some situation (but sistematically) the first bytes of some TX packets are not transmitted.
This appears to be influenced by the previous bytes transmitted. I do not have performance issues so I could perform any kind of reset.

tx_state=0 readout

I need a non blocking way to check when all tx data have been sent.
Maybe a function to readout the tx_state

I'm new to git so after reading a bit about the functions I found out about the fork functionality.
Sorry about the incorrect usage of the git functionality :-)

void flush() { flushInput(); } ?

if ARDUINO >= 100

size_t write(uint8_t byte) { writeByte(byte); return 1; }
void flush() { flushOutput(); }

else

void write(uint8_t byte) { writeByte(byte); }
void flush() { flushInput(); }

#10

Shouln't void flush() { flushInput(); } be void flush() { flushOutput(); } ?

Problems with Arduino Nano

I'm attempting to use the AltSerial library on an Arduino Nano. However, I'm not getting consistent data transmit and receive results. I'm currently performing a loopback test where I read what I write with pins 8 and 9 tied together. The results seem to always have the 4th and 5th bits set, regardless of the data I send:

send data 00000000
rcv data 00110000
send data 00000001
rcv data 00110001
send data 00000010
rcv data 00110010
send data 00000011
rcv data 00110011
send data 00000100
rcv data 00110100

When the data value gets large enough, it starts receiving two bytes of data for every byte written:

send data 00001001
rcv data 00111001
send data 00001010
rcv data 00110001
rcv data 00110000
send data 00001011
rcv data 00110001
rcv data 00110001
send data 00001100
rcv data 00110001
rcv data 00110010

I'm using the alt serial port at 9600 baud, but get corrupted results with 300 baud and 115200 baud.

I tested this with an Arduino UNO and have the same issue.

Thanks,

Jon Vogel

Can we use it on NodeMCU?

Hello. In order to communicate an Arduino UNO and a NodeMCU, I'd like to replace SoftwareSerial by AltSoftSerial. However, I'm afraid AltSoftSerial might not be used on NodeMCU, as I haven't seen specified pins to use it (for example, for Arduino UNO pins 8 and 9 must be used for this library). Could you confirm me if it's possible?

Thank you for the library :)
Best regards

known_timers.h and known_boards.h not here on Github

Hi,
I notice that in config there seem to be a couple of files that are in the Zip but not here on Github. Not sure if that's correct or not but I thought I'd point it out because I had a bit of trouble finding the definition of CAPTURE_INTERRUPT, for example.

Thanks.

incompatible with nrf52 architecture Adafruit Feather nRF52 Bluefruit LE - nRF52832

Hi,
I used arduino IDE to code nRF52832 ( https://www.adafruit.com/product/3406 )
when I wrote:

#include
AltSoftSerial myserial(15,16)
I couldn't pass the compiler, and got following error msgs:
WARNING: library AltSoftSerial claims to run on (avr) architecture(s) and may be incompatible with your current board which runs on [nrf52] architecture(s).

It would be helpful if you can provide the compatibility for nrf52
Thanks in advance.

DYLAN

Half duplex?

Hi,

I want to use AltSoftSerial for a half-duplex TTL level serial link. The simplest way to do this would be to have the Rx pin directly hooked to the line, but that requires being able to temporarily disable reception while a transmission is in progress (to avoid self-reception).

It looks like I should be able to do this just by calling DISABLE_INT_INPUT_CAPTURE(); to disable the input capture interrupt before calling write(), and then enabling it again with ENABLE_INT_INPUT_CAPTURE(); when the transmission is over.

Do you see any problems with this approach?

Thanks,

/Patrik J.

Replacing Softwareserial by Altsoftserial

Hi all

I have a Uno connected to a ESP8266 to send a GET request to a webserver. I use softwareserial and wifiesp library like this:

WiFiEspClient client;
#include <SoftwareSerial.h>
SoftwareSerial Serial1(8,9);

  // initialize serial for ESP module
  Serial1.begin(9600);
  // initialize ESP module
  WiFi.init(&Serial1);

...

    // Make a HTTP request
    client.println(F("GET /sensor.php?id=1 HTTP/1.1"));
    client.println(F("Host: www.domain.com"));
    client.println(F("Connection: close"));
    client.println();

    //read HTTP response
    while (client.connected()) {
      while (client.available()) { 
        char ch=client.read();
        Serial.print(ch);
      }
    }

The request is done and I can see the HTTP response on the serial monitor.
Now i want to replace softwareserial for Altsoftserial so i made this changes:

//#include <SoftwareSerial.h>
//SoftwareSerial Serial1(8,9);

#include <AltSoftSerial.h>
AltSoftSerial Serial1;

I double check my wires, ESP8266 module is working, request is sent to PHP page but i cannot see HTTP response on the serial monitor.

If i put back softwareserial on code, it works ok.

Any ideas?

Issue while using altsoftserial with mpu6050(wire.h)

The data from altsoftserial tx and rx pins are not detected when the program has mpu6050 program which uses wire.h for i2c communication.On removing the mpu6050 code, the program works fine and the data is received properly from bluetooth bl8000l.Arduino Uno board is used with scl and sda pins used for mpu6050 scl and sda.How to obtain data from mpu6050 as well as from bluetooth?

Couldnt transmit correct data using AltSoftSerial

Describe your problem:
Not transmitting correct from AltSoftSerial object to Arduino Serial.

Steps To Reproduce Problem

Hardware & Software

Board : Arduino UNO
Arduino IDE version : 1.8.13
Version info & package name (from Tools > Boards > Board Manager)
Operating system & version : WIN 10 Pro
Any other software or hardwa
echo.txt
re? : Using "echo" example with serial ports.....

Arduino Sketch

// Change the code below by your sketch (please try to give the smallest code which demonstrates the problem)
#include <Arduino.h>

 libraries: AltSoftSerial

void setup() {
}

void loop() {
}

Errors or Incorrect Output

From Arduino Serial object to AltSoftSerial data transmits perfectly.
From AltSoftSerial to Arduino serial only data with odd ASCII values transmits correctly and even , its wrong. e.g. if transfers character 'A' its shows 'A' but when i transmits 'B' it wont. Same 1,3,5,7,9 transmits correctly while 0,2,4,6,8 wont

Implement Inverse flag to invert sense of RX and TX like SoftwareSerial

As a user I need to reverse the sense of the RX and TX lines to communicate with a particular piece of hardware as in SoftwareSerial, but I also need the full-duplex communication support of AltSoftSerial.

Description

Please see Pull Request #59

New feature. Add the Inverse flag to AltSoftSerial Library with appropriate constructors. In the Transmission and Reception code, invert the outputs with the flag is true. When the flag is the default value of false, the code functions exactly as before. The original constructors are unchanged.

Steps To Reproduce Problem

New Feature.

Hardware & Software

Tested with an Sparkfun RedBoard Arduino
Arduino IDE version 1.18.10
Teensyduino version (if using Teensy)
1802 Membership Card running MCSMP20J ROM (with inverse logic on the RX and TX lines)
and for regression testing
1802 Membership Card running MCPSMP20A ROM (with positive logic on RX and TX lines)

Arduino Sketch

// Change the code below by your sketch (please try to give the smallest code which demonstrates the problem)
#include <Arduino.h>
/*
  Serial Connections for 1802 Membership Card MCSMP20J

  Arduino Pin     MCard1802
    9 (TX)        /EF3 (RX)   P1 - 27 
    8 (RX)          Q  (TX)   P1 - 12
    GND             GND       P1 -  1 (or P1 - 30)
*/

//Note: SoftwareSerial is *NOT* Full-duplex and won't work here.
#include <AltSoftSerial.h>

//RX pin 8, TX pin 9, with RX and TX inversion
AltSoftSerial altSerial(true);

void setup() {
 //Initialize serial for input and debugging
  Serial.begin(115200);
 //Initialize AltSoftSerial for communication to 1802
  altSerial.begin(1200);
  Serial.println("Ready!");
  //Establish communication with <CR>
  altSerial.write('\r'); 
}

void loop() {
  // If anything comes from Arduino IDE
  if (Serial.available()) {      
    // get the new byte:
    char nextChar = (char)Serial.read();            
    altSerial.write(nextChar);     
   //wait a bit for 1802 to process character sent
   delay(20);
  }
  if (altSerial.available()) {
    // get the new byte:
    char inChar = (char) altSerial.read();

    //Mask off high bit
    inChar = (inChar & 0x7F);
   //Write to Arduino Serial Monitor
   Serial.write(inChar);
  } // if altSerial.available
}

I have submitted pull request #59 to add the support for the inverse argument to the AltSoftSerial library. Merging Pull Request #59 will close this issue.

ATtiny 85?

Hi Paul,

This is an amazing piece of work. :)

Just wondering: are there feasible ways to massage AltSoftSerial to work on an ATtiny85? I see that about half a dozen boards are formally supported, but could something be done to make it support the attiny?

Cheers

Support Request for Arduino Portenta

Support Request for Arduino Portenta

The new Arduino Portenta has several UART's if using the Breakout Board but by itself it only has SerialUSB and Serial1 at D13, D14, which would be fine if it were single core but it is a dual core board. Any chance of getting AltSoftSerial working on this board. I would test any changes you suggest.

I tried #define ARDUINO_AVR_SODAQ_MBILI which would use pins 5, 6 but it errored on #define ALTSS_BASE_FREQ F_CPU

I will search a bit about that. Any opinions on if this could get running?

Add Support for STM32F1, STM32F4, please

Description

STM32F1 and STM32F4 series are not supported

Steps To Reproduce Problem

n/a

Hardware & Software

Board: BluePill based on STM32F103; BlackPill based on STM32F401/STM32F411
Shields / modules used: BluePill , BlackPill
Arduino IDE version: 1.8.19

Version info & package name (from Tools > Boards > Board Manager): STM32 MCU based boards by STMicroelectronics v2.3.0
Operating system & version WIN10

Thank you!

Support for inverse logic

Paul,

are there any plans to introduce support for inverted serial logic (i.e. make use of the inverse parameter of the AltSoftSerial(uint8_t rxPin, uint8_t txPin, bool inverse = false) constructor?

Teensy3.1 9600baud RX stops working after ~30s

Running a super simple sketch that receives from the AltSoftSerial and outputs over Serial on Teensy3.1, I consistently get garbage data after 30-45s of use. Using AltSoftSerial 1.2 that came with the latest version of Teensyduino. Building the sketch in the Arduino IDE. Here's the sketch:

#include <Arduino.h>

#define DEBUG_LED LED_BUILTIN
#define OUTPUT_SERIAL Serial
#include <AltSoftSerial.h>
AltSoftSerial GPS_SERIAL;

void setup() {
    cli();

    pinMode(DEBUG_LED, OUTPUT);

    OUTPUT_SERIAL.begin(115200);
    GPS_SERIAL.begin(9600);

    sei();
}

void loop() {
    digitalWrite(DEBUG_LED, LOW);
    while (GPS_SERIAL.available()) {
        digitalWrite(DEBUG_LED, HIGH);
        uint8_t incomingByte = GPS_SERIAL.read();
        OUTPUT_SERIAL.write(incomingByte);
    }
}

Everything looks fine for anywhere from 15s to 1m 30s, then all the sudden I start to get garbage data (this line starts as valid NMEA data then explodes into garbage).

$GPGSV,4,1,13,04,12,311,39,11,16,312,37,14,77,164,40,18��b0,3��3C�G��Y�,��Lb1�N�I��i�b�2b�M)��i�        &b6���5,&�b1�   5&����j!�PG�*��4ib1&��,��,3b�L  �       L�      &b3&)6,�&���,4�)��ɥ6C�GP��Y,�     Lb5L�3)���&R4T
                                      $u1�Li7Mr��1,�)2��r�9�5��
                                                               �&�      0)�"�*�S5�:A�Rj����M�)��S�r�9��L�,1&�)��MbW     r��&b0�L�Lb,���C�GP��u,��       S�      �b�N    .0�S,K�*2L�H$u�A  0L��    b3S�    N��L�,L��)70�bWIb1L     .�j0IbM�I9��j�, 0R�QH$GuMA)��I�b�2�&��1,&b2L��)�b�3�&�L)�       )r5�    .����&�R0�M
                                                                                                                                   $�uS�bL��    �b1&�L�0)�bLb3Lb�)4,��,1b4�)8��b0�,3�L��3C�G��Y�,�)�b1�N�I�Mi�b�2b�M)30i� &b6���5�&�b1�   5&���j!�P�*��4ib1�&��,��,��L    ��L�    ��&)6�&���&,4�)��I�BC�GP��Y,�   Lb5L��)���R4��
��%�5(��L��     �bAi75�L���,�)2��r9�53��        �L�     1L��    �D*j                                                                          $u1�i7Mr��1,�)2��rN�������M�)�"��
                                                                    ��AV��b�T�M r��Lr,� 5�i��%��C�GP����&r0i7Mr��2,�)2��r�9�5&��&)�     �       6�      .&�,K�r5��,�%
                                                                                                                                                                     5!:A�G��,Aib2��&     �b�5b2I1,�L�b1�i2)�bLb,L��      r�)r3&  5C�G��Y,��Lb0��i���,1b�i�&i�    Lb7)64�0,�L,3M��i1�5�

Rebooting the device by reprogramming it or hitting reboot in the Teensy UI solves the problem temporarily, so it's definitely not an issue with the GPS.

TX_BUFFER_SIZE not used for tx_buffer

I just wan't to minimize the sending buffer for more RAM, because i don't use sending.
But nothing happens, than i see this:

#define TX_BUFFER_SIZE 68
static volatile uint8_t tx_buffer[RX_BUFFER_SIZE];

i think it must be

#define TX_BUFFER_SIZE 68
static volatile uint8_t tx_buffer[TX_BUFFER_SIZE];

Wrong timing on first start bit?

I was looking at "writeByte", at line 124:
SET_COMPARE_A(GET_TIMER_COUNT() + 16);

If I am reading the code right, this is setting the length of the start bit for the first byte.
Instead of a constant of '16', I think it should be set to "ticks_per_bit" ?

Example Code to dump AltSerialSteup setup for your board

Hi,

Usefull stuff for examples

Here is simple piece of code to dump AltSoftSerial setup to show PINs and Timers used.
It would be great addition to examples IMHO

Will show following AltSoftSerial connection diagram for Arduino Nano:

AltSoftSerial:Setup info: begin
AltSoftSerial:USE TIMER1
AltSoftSerial:PIN: 8 RX
AltSoftSerial:PIN: 9 TX
AltSoftSerial:PIN:10 (unused PWM)
AltSoftSerial:Setup info: end

Regards,
Serge

ConfigInfo.zip

Issue with 2400 Baud

I used the example sketch on https://www.pjrc.com/teensy/td_libs_AltSoftSerial.html and noticed issues with reading at 2400 baud. I was testing 1200, 2400, 4800 and 9600. The other bauds work perfectly. When I do a write, Serial.read() reads the correct character. However, when I do Serial.write(), altSerial.read() doesn't always read the character correctly.

Conflict with Servo: Multiple definitions

Description

When creating both a Servo and a AltSoftwareSerial object I get a compiler error.

Steps To Reproduce Problem

Make sure this library is in the libraries folder of the Arduino IDE, and try to compile the code below.

Hardware & Software

Arduino UNO
Board: Arduino UNO
Arduino IDE version 1.8.5 (but also happens when compiling with PlatformIO)
Arduino AVR Boards 1.6.20
Windows 10

Arduino Sketch

#include <Arduino.h>
#include <AltSoftSerial.h>
#include <Servo.h>

AltSoftSerial bluetooth;
Servo servo;

void setup() {}
void loop() {}

Errors or Incorrect Output

libraries\Servo\avr\Servo.cpp.o (symbol from plugin): In function `ServoCount':

(.text+0x0): multiple definition of `__vector_11'

libraries\AltSoftSerial\AltSoftSerial.cpp.o (symbol from plugin):(.text+0x0): first defined here

collect2.exe: error: ld returned 1 exit status

exit status 1
Error compiling for board Arduino/Genuino Uno.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.