Hey Everyone,
I'm back fiddling with my ArduPilot after an absence caused by a couple of crashes and just being busy with summer.
Anyways, I'm having an issue with my ArduPilot board that is starting to become a bit of an annoyance. I wanted to ask here to see if anyone else has had the same problem, or if I'm doing something blatantly wrong.
It seems like, as I'm working on the code, at some point, the addition of an innocuous line of code will cause the software to hang during boot. The serial window shows the first couple of lines after "ArduPilot X.X" and then just sits there.
It feels like I'm hitting a size restriction on the code, but I'm still well under the limit specified in the IDE. I say this because it has happened to me several times, and whenever this happens, if I comment out the last couple of lines I wrote, the sketch works just fine.
Does the bootloader on the ATMega take up some of the 30720 byte maximum that the Arduino IDE says I have room for? If so, how much?
I've attached an example of what I'm seeing.
ArduPilot_2_6 - working.zip: The IDE says it is 24630 of 30720 bytes. It boots and runs just fine.
ArduPilot_2_6 - freezing.zip: The IDE says it is 24658 of 30720 bytes. It compiles and loads fine, but freezes after the first 4 lines of output:
"Init Ardupilot 2.6 Beta
GPS: IMU
%%%PWP: 0, 0, 0,
NWP:045" --- then nothing.
The only difference between these two sketches is one line of code. In GPS_IMU, I've de-commented the line:
Serial.println("Checksum error");
Is there anything I can do to fix this problem? At the moment I'm working on getting an X-Plane/Labview/Ardupilot closed loop simulator going, (which is why I'm troubleshooting the binary parser). For some reason ArduPilot doesn't like the binary strings I'm making with Labview.
Other details of my setup:
ArduPilot (Purchased ~March 2010) with ATMega 328P
Arduino 0018 IDE with Duemilanove/Nano w/ 328 selected as the board.
FTDI cable from the DIY Drones Store.
Thoughts?
Thanks,
Tom
Replies
Thanks for the replies. I am not using any i2c sensors, and I am using the Arduino IDE, so I guess it seems that I've run out of RAM.
I just did some browsing on the Arduino.cc website, and it seems the best advice there is to reduce the size/number of variables used, and/or to us PROGMEM where possible. I'll probably just upgrade to ArduPilot 2.6.2 and start from there anyways.
Any other tips for reducing the RAM size that I should know about?
Thanks for the help,
Tom