Developer

ArduPilot Mega v1.0.3 alpha ready for public release


OK - After working with a small group of Alpha testers, I guess we are ready to open the flood gates and make a public release of ArduPilotMega!


Here is what you need to know:

  • This is an Alpha release - expect there to be bugs. If you don't want to deal with bugs, wait for the Beta. There will still be bugs in the Beta (probably), but a lot less.
  • For the Alpha release we will NOT be providing a .zip download. The code will be changing frequently as we find and fix bugs. You should use a SVN client to get the most recent revision to the code. Look below for a mini tutorial. If you don't want to mess with SVN, please wait for the Beta release.
  • Read the ArduPilot Mega manual. It is located here. Expect the manual to change on a daily basis. Recheck it frequently.
  • Please understand that there is a HUGE amount of functionality in ArduPilotMega. Most of it is still untested in actual flight, and some specific commands are not fully implemented.
  • We have made extensive use of libraries. You must either add these to your Arduino install or we would recommend using the great new "Sketchbook checkout" put together by Michael Smith which will handle getting the libraries for you and keeping them current. See the SVN mini tutorial below.
  • There is some functionality in place for the Legacy ground station. There is also functionality in place for the new ground station, however the new ground station is not ready yet.
What has been tested successfully? We have tested the basic flight modes (Manual, Stabilize, Fly By Wire, Auto) and the basic commands (Navigate to Waypoint, Loiter commands, and RTL)

What has not been tested:

  • Airspeed Sensor and associated control laws
  • Magnetometer
  • NMEA
  • Most of the commands
  • Use of many of the options in the config file
How can you help? If you feel you are up to Alpha testing, then join in. We are taking bug reports through the Google code repository "Issues" feature. You can find that here.

Good luck and happy autonomous flying!




Mini SVN Tutorial
This is a quick tutorial on how to use Tortise SVN to download the ArduPilotMega code using the "Sketchbook checkout" and how to keep your copy up to date.
  • Install the TortiseSVN client on your PC. Get it here.
  • On your PC open a window for the directory into which you would like to store your local copy of the code. Right click in the window and choose SVN Checkout.
  • Fill in the URL of repository with: http://ardupilot-mega.googlecode.com/svn/Sketchbook/trunk/
  • The checkout directory field should contain a folder name of the folder you are in appended with \Sketchbook
  • Click OK. This step downloads all the firmware and library files you will need. If you have a slow connection this step can be glitchy. If you get an error that one or more libraries you can use the SVN update feature to correct this after the checkout completes.
  • You should now have a Sketchbook folder which contains folders for ArduPilotMega, libraries, and Tests.
  • Open the Arduino IDE. Go to Preferences in the File menu. Change the Sketchbook location to this new Sketchbook folder. Now choose Sketchbook from the File menu and choose ArduPilotMega.
  • You are now ready to compile the latest code.
  • To update your local working copy to the latest revision, go to the directory containing your Sketchbook folder, right click on the Sketchbook folder, and choose SVN Update. With this one step you will get the latest code for ArduPilotMega and all the libraries downloaded to your PC.
E-mail me when people leave their comments –

You need to be a member of diydrones to add comments!

Join diydrones

Comments

  • Given the problems I thought a fresh try might help.
    ArduinoIDE 0019 unistalled
    APM svn deleted
    Restart
    ArduinoIDE 0019 installed
    APM checkout folder created
    Tortoise downloaded everything
    Open ArduinoIDE 0019 check board is Mega and correct com port
    Check com port has set rts on close.

    Open APM and verify/compile without editing ANYTHING
    Token error mentioned before

    Changing the APM_config.h to my settings (MTK, no pitot, 0.5 altitude, air_start)
    Token error mentioned before

    Full error below I know and can see the files it is so called missing and have not had this error whilst using the version from about 5 days ago but now its :S

    expected constructor, destructor, or type conversion before '(' token
    ArduPilotMega.cpp:16:24: error: FastSerial.h: No such file or directory
    ArduPilotMega.cpp:21:51: error: APM_RC.h: No such file or directory
    ArduPilotMega.cpp:22:77: error: APM_ADC.h: No such file or directory
    ArduPilotMega.cpp:23:47: error: AP_GPS.h: No such file or directory
    ArduPilotMega.cpp:25:59: error: APM_BMP085.h: No such file or directory
    ArduPilotMega.cpp:26:63: error: DataFlash.h: No such file or directory
    ArduPilotMega.cpp:27:64: error: APM_Compass.h: No such file or directory
    ArduPilotMega.cpp:36:30: error: APM_Config_jason.h: No such file or directory
    ArduPilotMega:55: error: expected constructor, destructor, or type conversion before '(' token
    ArduPilotMega:56: error: expected constructor, destructor, or type conversion before '(' token
    ArduPilotMega:57: error: expected constructor, destructor, or type conversion before '(' token
    ArduPilotMega:62: error: 'AP_GPS_NMEA' does not name a type
    ArduPilotMega:105: error: 'CH1_MIN' was not declared in this scope
    ArduPilotMega:105: error: 'CH2_MIN' was not declared in this scope
    ArduPilotMega:105: error: 'CH3_MIN' was not declared in this scope
    ArduPilotMega:105: error: 'CH4_MIN' was not declared in this scope
    ArduPilotMega:105: error: 'CH5_MIN' was not declared in this scope
    ArduPilotMega:105: error: 'CH6_MIN' was not declared in this scope
    ArduPilotMega:105: error: 'CH7_MIN' was not declared in this scope
    ArduPilotMega:105: error: 'CH8_MIN' was not declared in this scope
    ArduPilotMega:107: error: 'CH1_MAX' was not declared in this scope
    ArduPilotMega:107: error: 'CH2_MAX' was not declared in this scope
    ArduPilotMega:107: error: 'CH3_MAX' was not declared in this scope
    ArduPilotMega:107: error: 'CH4_MAX' was not declared in this scope
    ArduPilotMega:107: error: 'CH5_MAX' was not declared in this scope
    ArduPilotMega:107: error: 'CH6_MAX' was not declared in this scope
    ArduPilotMega:107: error: 'CH7_MAX' was not declared in this scope
    ArduPilotMega:107: error: 'CH8_MAX' was not declared in this scope
    ArduPilotMega:191: error: 'AIRSPEED_CRUISE' was not declared in this scope
    ArduPilotMega:206: error: 'LOW_VOLTAGE' was not declared in this scope
    ArduPilotMega:207: error: 'LOW_VOLTAGE' was not declared in this scope
    ArduPilotMega:208: error: 'LOW_VOLTAGE' was not declared in this scope
    ArduPilotMega:209: error: 'LOW_VOLTAGE' was not declared in this scope
    ArduPilotMega:210: error: 'LOW_VOLTAGE' was not declared in this scope
    ArduPilotMega:262: error: 'THROTTLE_CRUISE' was not declared in this scope
    ArduPilotMega.cpp: In function 'void slow_loop()':
    ArduPilotMega:602: error: 'DataFlash' was not declared in this scope
    ArduPilotMega.cpp: In function 'void update_GPS()':
    ArduPilotMega:642: error: 'GPS' was not declared in this scope
    ArduPilotMega:665: error: 'ENABLE_AIR_START' was not declared in this scope
    ArduPilotMega:680: error: 'ALTITUDE_MIX' was not declared in this scope
    ArduPilotMega.cpp: In function 'void update_current_flight_mode()':
    ArduPilotMega:702: error: 'GPS' was not declared in this scope
    ArduPilotMega:751: error: 'HEAD_MAX' was not declared in this scope
    ArduPilotMega:762: error: 'PITCH_MIN' was not declared in this scope
    ArduPilotMega:792: error: 'THROTTLE_CRUISE' was not declared in this scope
    ArduPilotMega.cpp: In function 'void stabilize()':
    Attitude:26: error: 'DISABLE_STICK_MIXING' was not declared in this scope
    Attitude:52: error: 'DISABLE_STICK_MIXING' was not declared in this scope
    ArduPilotMega.cpp: In function 'void calc_throttle()':
    Attitude:89: error: 'THROTTLE_MAX' was not declared in this scope
    Attitude:89: error: 'PITCH_MAX' was not declared in this scope
    Attitude:91: error: 'THROTTLE_MIN' was not declared in this scope
    Attitude:91: error: 'PITCH_MIN' was not declared in this scope
    Attitude:98: error: 'GPS' was not declared in this scope
    Attitude:101: error: 'THROTTLE_MIN' was not declared in this scope
    Attitude:101: error: 'THROTTLE_MAX' was not declared in this scope
    ArduPilotMega.cpp: In function 'void calc_nav_pitch()':
    Attitude:163: error: 'PITCH_MIN' was not declared in this scope
    Attitude:163: error: 'PITCH_MAX' was not declared in this scope
    ArduPilotMega.cpp: In function 'void calc_nav_roll()':
    Attitude:173: error: 'GPS' was not declared in this scope
    Attitude:173: error: 'AIRSPEED_CRUISE' was not declared in this scope
    Attitude:185: error: 'HEAD_MAX' was not declared in this scope
    ArduPilotMega.cpp: In function 'void set_servos_4()':
    Attitude:305: error: 'APM_RC' was not declared in this scope
    ArduPilotMega.cpp: In function 'void demo_servos()':
    Attitude:311: error: 'APM_RC' was not declared in this scope
    ArduPilotMega.cpp: In function 'void Read_adc_raw()':
    DCM:9: error: 'APM_ADC' was not declared in this scope
    ArduPilotMega.cpp: In function 'void Drift_correction()':
    DCM:176: error: 'GPS' was not declared in this scope
    ArduPilotMega.cpp: In function 'void Accel_adjust()':
    DCM:201: error: 'GPS' was not declared in this scope
    ArduPilotMega.cpp: In function 'void send_message(byte, long int)':
    GCS_Standard:103: error: 'GPS' was not declared in this scope
    ArduPilotMega.cpp: In function 'void send_message(byte, const char*)':
    GCS_Standard:306: error: 'DEBUG_LEVEL' was not declared in this scope
    ArduPilotMega.cpp: In function 'void process_logs()':
    Log:73: error: 'DataFlash' was not declared in this scope
    ArduPilotMega.cpp: In function 'void Log_Read(int, int)':
    Log:518: error: 'DataFlash' was not declared in this scope
    ArduPilotMega.cpp: In function 'void init_home()':
    commands:207: error: 'GPS' was not declared in this scope
    commands:211: error: 'GPS' was not declared in this scope
    ArduPilotMega.cpp: In function 'void process_now()':
    commands_process:307: error: 'APM_RC' was not declared in this scope
    ArduPilotMega.cpp: In function 'void verify_must()':
    commands_process:338: error: 'GPS' was not declared in this scope
    ArduPilotMega.cpp: In function 'void read_control_switch()':
    control_modes:12: error: 'POSITION_1' was not declared in this scope
    control_modes:16: error: 'POSITION_2' was not declared in this scope
    control_modes:20: error: 'POSITION_3' was not declared in this scope
    control_modes:24: error: 'POSITION_4' was not declared in this scope
    control_modes:28: error: 'POSITION_5' was not declared in this scope
    control_modes:32: error: 'POSITION_6' was not declared in this scope
    ArduPilotMega.cpp: In function 'byte readSwitch()':
    control_modes:45: error: 'APM_RC' was not declared in this scope
    control_modes:45: error: 'MODE_CHANNEL' was not declared in this scope
    ArduPilotMega.cpp: In function 'void failsafe_event()':
    events:23: error: 'THROTTLE_CRUISE' was not declared in this scope
    events:30: error: 'FAILSAFE_ACTION' was not declared in this scope
    ArduPilotMega.cpp: In function 'void low_battery_event()':
    events:54: error: 'THROTTLE_CRUISE' was not declared in this scope
    ArduPilotMega.cpp: In function 'void perform_event()':
    events:129: error: 'APM_RC' was not declared in this scope
    ArduPilotMega.cpp: In function 'void perform_event_undo()':
    events:193: error: 'APM_RC' was not declared in this scope
    ArduPilotMega.cpp: In function 'void navigate()':
    navigation:13: error: 'GPS' was not declared in this scope
    navigation:24: error: 'GPS' was not declared in this scope
    ArduPilotMega.cpp: In function 'void read_radio()':
    radio:10: error: 'APM_RC' was not declared in this scope
    radio:28: error: 'CH3_MIN' was not declared in this scope
    radio:28: error: 'CH3_MAX' was not declared in this scope
    ArduPilotMega.cpp: In function 'void read_airpressure()':
    sensors:10: error: 'APM_BMP085' was not declared in this scope
    ArduPilotMega.cpp: In function 'void read_airspeed()':
    sensors:27: error: 'APM_ADC' was not declared in this scope
    sensors:30: error: 'AIRSPEED_RATIO' was not declared in this scope
    ArduPilotMega.cpp: In function 'void zero_airspeed()':
    sensors:60: error: 'APM_ADC' was not declared in this scope
    ArduPilotMega.cpp: In function 'void init_ardupilot()':
    system:28: error: 'SERIAL0_BAUD' was not declared in this scope
    system:42: error: no matching function for call to 'HardwareSerial::begin(long int, int, int)'
    E:\ArduinoIDE\ArduinoIDE\hardware\arduino\cores\arduino/HardwareSerial.h:49: note: candidates are: void HardwareSerial::begin(long int)
    system:65: error: 'APM_RC' was not declared in this scope
    system:66: error: 'APM_ADC' was not declared in this scope
    system:67: error: 'APM_BMP085' was not declared in this scope
    system:68: error: 'DataFlash' was not declared in this scope
    system:69: error: 'GPS' was not declared in this scope
    system:80: error: 'CH3_MIN' was not declared in this scope
    system:126: error: 'DEBUG_SUBSYSTEM' was not declared in this scope
    system:128: error: 'ENABLE_AIR_START' was not declared in this scope
    system:138: error: 'MODE_CHANNEL' was not declared in this scope
    ArduPilotMega.cpp: In function 'void startup_ground()':
    system:193: error: 'CH1_MAX' was not declared in this scope
    system:194: error: 'CH2_MAX' was not declared in this scope
    system:195: error: 'CH3_MAX' was not declared in this scope
    system:196: error: 'CH4_MAX' was not declared in this scope
    system:197: error: 'CH5_MAX' was not declared in this scope
    system:198: error: 'CH6_MAX' was not declared in this scope
    system:199: error: 'CH7_MAX' was not declared in this scope
    system:200: error: 'CH8_MAX' was not declared in this scope
    system:201: error: 'CH1_MIN' was not declared in this scope
    system:202: error: 'CH2_MIN' was not declared in this scope
    system:203: error: 'CH3_MIN' was not declared in this scope
    system:204: error: 'CH4_MIN' was not declared in this scope
    system:205: error: 'CH5_MIN' was not declared in this scope
    system:206: error: 'CH6_MIN' was not declared in this scope
    system:207: error: 'CH7_MIN' was not declared in this scope
    system:208: error: 'CH8_MIN' was not declared in this scope
    ArduPilotMega.cpp: In function 'void startup_IMU_ground()':
    system:355: error: 'APM_BMP085' was not declared in this scope
    ArduPilotMega.cpp: In function 'void update_GPS_light()':
    system:411: error: 'GPS' was not declared in this scope
  • Developer
    When you switched to to 0019 did you change the board type to Mega (it is not the default...)

    I just tried it with MTK for the gps and still no problem. Can you give me the full error message.
  • Thanks Doug
    I have 019 and because of these problems and not really changed anything I just deleted the entire folder and redownloaded it all and got that. The only thing I changed was the gps protocol to mtk and uncommented it. Yet it's gone mental. Two machines tested and it's saying the same? Any other ideas?
  • Developer
    @Ritchie - I just checked the latest revision and had no compiler issues. I think you must either (1) still have something out of date in your libraries, (2) have something missing in your libraries, or (3) you need to update to Arduino 0019. Those are probably in order of likelihood.
  • @Doug
    Thank you that bit is now functional but the APM_RC.cpp is throwing a compilation error
  • Thanks Chris,
    I’m glad you explained this, as I hadn’t realized that. I will definitely invest in a new RC.
    Still looking forward to uploading of commands though ;)

    James
  • 3D Robotics
    James,

    Uploading commands will probably be enabled in the Beta, which will be released at the end of the month. But we very much do NOT recommend that you use that as your only way to switch between modes. If you've got a software/hardware problem, your plane will crash if you can't use the built-in failsafe processor to regain control via a RC toggle. 7 Channel RC sets cost $60. That's a small price to pay to save an entire UAV from fly-away/destruction.
  • Question from a new APM user:
    Can commands be sent over telemetry? Such as can I send an CMD_AP_MODE over telemetry and everything will work (I would test it right now but I’m at school for the week)? Reason being that I only have a four channel radio so it looks like it’s just sitting in AUTO mode at the moment. I was hoping to be able to set the mode and such using a program I wrote for my computer to send commands according to button pushes or hotkeys.

    Thanks
  • Developer
    Update your libraries. There is a new parent class gps library, etc.

    The LED's are still messed up. You will get the little light show during IMU calibration, but that is all you can rely on at the moment.
  • Ok doke trying to upload the new code to the board and :S

    expected construtor, destructor, or type conversion before '(' token
    with // GPS selection highlighted yellow

    Any ideas?
    Thinking I had old bits not messing I restored the entire directory but its gone from working to not.

    Also is the correct LED behaviour going to happen whilst plugged into the computer?
    My ABC has only the C flashing is this part of the issues section LED thing?
This reply was deleted.