I've been researching the history of Multiwii firmware and I'd like to research how the firmware worked from the beginning when there wasn't a configurator and the code was still quite minimal. The first step was to take the source code of Multiwii_1.7 which was the oldest Multiwii version that I could find. My plan is to first compile the existing Multiwii_1.7 source and then rewrite parts of the code to work with the sensors I have and then I'd like to examine how the code was changing with time.
However, it seems there were some changes in Arduino IDE since the time when Multiwii_1.7 was released and I am not able to edit that old source so it could be compiled with Arduino 1.8.5 - 1.8.10. I am assuming the code could be compiled with some 5-6 year old version of Arduino but I would really like to first adapt the Multiwii_1.7 code to be compiled with the Arduino versions used these days.
I work with microcontrollers for 20+ years (started with Microchip PICs) but I wasn't using Arduino IDE too much because I am developing firmwares by using AVR Studio.
I would appreciate if someone would load MultiWii_1_7.ino into some of more recent versions of Arduino IDE and try to resolve the compile errors which are consequences of some changes in Arduino IDE I am not familiar with.
I hope there are some Multiwii gurus who were following (or even writing) the code since the start of the project still here on the forum - and there is someone who might take some time to check why old Multiwii_1.7 source can't be compiled with most recent versions of Arduino IDE (BTW, does anyone remember which Arduino IDE version was used at the time of Multiwii_1.7?). There is a possibility I might, after researching all Multiwii code up to the most recent version, even do some updates.
The compile errors which I can't get rid off are:
Code: Select all
HardwareSerial0.cpp.o (symbol from plugin): In function `Serial':
(.text+0x0): multiple definition of `__vector_19'
and
Code: Select all
collect2.exe: error: ld returned 1 exit status
Note:
I am compiling the code with:
Code: Select all
#define PROMINI
and the code does compile without error if I change the target to Arduino Mega (but leave #define PROMINI), however compiling the code for PROMINI with the target selected as Mega is wrong. On the other hand, if the target is Mega and I uncomment:
Code: Select all
#define MEGA
then I am getting the same compile errors.
I am sure there is some minor change that should be made in the code or in Arduino IDE to resolve the compile errors but I am just not familiar enough with the internal working of Arduino IDE. Someone who was using Arduino IDE since Multiwii_1.7 might know what was changed in Arduino IDE because at that time the Multiwii code had to be changed too.