diff --git a/Tools/autotest/web-firmware/css/main.css b/Tools/autotest/web-firmware/css/main.css new file mode 100644 index 0000000000..002faef394 --- /dev/null +++ b/Tools/autotest/web-firmware/css/main.css @@ -0,0 +1,132 @@ +@charset "utf-8"; +/* CSS Document */ + +/* Background-Styles */ +html { + overflow-y: scroll; + } + +body { + font-family:Helvetica; + margin:0px; + padding:0px; + background-color: #fff; + background-image: url(../images/bg.png); +} + +#logo { + background-image:url(../images/logo.png); + background-repeat:no-repeat; + height: 120px; + width: 420px; + -moz-box-shadow: 2px 2px 5px #888; + -webkit-box-shadow: 2px 2px 5px #888; + box-shadow: 2px 2px 5px #888; + background-color: #000; +} + +h2 { + text-shadow: #ccc 0px 1px 0px; + text-decoration:none; + color:#D14836; + padding-top: 0px; + padding-right: 5px; + padding-bottom: 5px; + padding-left: 5px; +} + +#git { + background-color: #FFF; + font-size: 15px; + display: auto; + padding: 10px; + border: 1px solid #CCC; + position: relative; + -moz-box-shadow: 2px 2px 5px #888; + -webkit-box-shadow: 2px 2px 5px #888; + box-shadow: 2px 2px 5px #888; +} + +#git a { + color:#00F; + font-weight: normal; + } + +#git a:hover { + color:#D14836; +} + +.passed-text { + color:green; +} + +.failed-text { + color:red; +} + + +#main { + padding-top:0px; + min-width: 420px; + margin-top: 0; + margin-right: auto; + margin-bottom: 0; + margin-left: auto; + padding-right: 20px; + padding-bottom: 50px; + padding-left: 20px; +} + +ul#testresults { + background-color: #FFF; + display: block; + padding: 10px; + border: 1px solid #CCC; + list-style-type: none; + position: relative; + -moz-box-shadow: 2px 2px 5px #888; + -webkit-box-shadow: 2px 2px 5px #888; + box-shadow: 2px 2px 5px #888; +} + +ul#testresults li { + list-style-type: none; + display: block; + background-color: #eef1f1; + margin: 5px; + padding: 5px; + } + +ul#testlogs { + background-color: #FFF; + display: block; + padding: 10px; + border: 1px solid #CCC; + list-style-type: none; + position: relative; + -moz-box-shadow: 2px 2px 5px #888; + -webkit-box-shadow: 2px 2px 5px #888; + box-shadow: 2px 2px 5px #888; +} + +ul#testlogs li { + text-decoration:none; + list-style-type: none; + display: block; + background-color: #eef1f1; + margin: 5px; + padding: 5px; + font-size: 15px; + } + + +ul#testlogs li a { + text-decoration:none; + color:#8aa19c; + font-weight: bold; + font-size: 12px; + } + +ul#testlogs li a:hover { + color:#D14836; +} diff --git a/Tools/autotest/web-firmware/images/PX4IO.png b/Tools/autotest/web-firmware/images/PX4IO.png new file mode 100644 index 0000000000..d2a5ddf09d Binary files /dev/null and b/Tools/autotest/web-firmware/images/PX4IO.png differ diff --git a/Tools/autotest/web-firmware/images/bg.png b/Tools/autotest/web-firmware/images/bg.png new file mode 100644 index 0000000000..a25a40c317 Binary files /dev/null and b/Tools/autotest/web-firmware/images/bg.png differ diff --git a/Tools/autotest/web-firmware/images/copter.png b/Tools/autotest/web-firmware/images/copter.png new file mode 100644 index 0000000000..fab0fc0fb2 Binary files /dev/null and b/Tools/autotest/web-firmware/images/copter.png differ diff --git a/Tools/autotest/web-firmware/images/logo.png b/Tools/autotest/web-firmware/images/logo.png new file mode 100644 index 0000000000..87a48fa5c7 Binary files /dev/null and b/Tools/autotest/web-firmware/images/logo.png differ diff --git a/Tools/autotest/web-firmware/images/plane.png b/Tools/autotest/web-firmware/images/plane.png new file mode 100644 index 0000000000..9870e7beb1 Binary files /dev/null and b/Tools/autotest/web-firmware/images/plane.png differ diff --git a/Tools/autotest/web-firmware/images/rover.png b/Tools/autotest/web-firmware/images/rover.png new file mode 100644 index 0000000000..924a326abb Binary files /dev/null and b/Tools/autotest/web-firmware/images/rover.png differ diff --git a/Tools/autotest/web-firmware/index.html b/Tools/autotest/web-firmware/index.html new file mode 100644 index 0000000000..e51d592462 --- /dev/null +++ b/Tools/autotest/web-firmware/index.html @@ -0,0 +1,146 @@ + + + +ArduPilot Firmware Download + + + + + + +
+ + + + +

ArduPilot Firmware builds

+ +These firmware builds are automatically generated by the +ArduPilot autotest system. + + +PlaneArduPlane - for fixed wing aircraft

+ +CopterArduCopter - for multicopters and + traditional helicopters

+RoverAPMrover2 - for land vehicles and boats

+PX4IOPX4IO - for the PX4IO board

+ +

Types of firmware available

+ +To choose a firmware to download you need to choose: + + + +The meanings of the versions are + + + +For each vehicle type a firmware image is available for each type of +autopilot board supported by that vehicle type + +

How to load your firmware

+ +After downloading a firmware image from one of the links above you will +need to load it into your board. If you are using +the APM + Mission Planner then you can load a hex file using the +"Firmware" screen by clicking on the "Load custom firmware" button in +the bottom right corner of the screen. + +

Loading firmware to a PX4FMU board

+ +If you have +a PX4FMU +board then you can load firmware on Windows using the +px4uploader.exe utility, which you will find in the "APM Planner" +installation directory of your Windows machine. When you run that +utility it will ask you for the location of a px4fmu.px4 file to +load. It will then wait for your PX4 board to go into bootloader +mode. The PX4 board enters bootloader mode when it powers on, or when +the reset switch on the side of the PX4 is pressed. It may take a few +seconds for Windows to recognise your PX4 board and upload to +begin.

+ +The PX4 will exit bootloader mode and start the flight firmware 5 +seconds after it boots, so if the firmware load hasn't started within +5 seconds of booting your PX4 then you should press the PX4 reset +switch and try again. + +

Loading firmware to a PX4IO board

+ +If you have +a PX4IO board +attached to your PX4FMU then you will need to separately load the +latest firmware to that board. To load the PX4IO firmware you need to +download the px4io.bin file from the above link, then put it in the +root directory of the microSD card you have in your PX4FMU board.

+ +You then need to hold the arming switch while applying power to your +PX4FMU board. The PX4IO board detects that the arming switch is held +when it powers on, and will enter bootloader mode, which is indicated +by a rapidly flashing red light on your PX4IO board.

+ +The APM firmware for your PX4FMU board will check in the root +directory of your microSD card every time it boots, and if it finds a +new px4io.bin file it will attempt to load it to your PX4IO board. A +log of the firmware load attempt is placed in the APM directory of +your microSD card to aid with debugging. + +

Loading APM1 or APM2 firmware on Linux or MacOS

+ +If you don't use Mission Planner on Linux then you can load firmware +using the avrdude command. A typical command for uploading a file +called ArduPlane.hex to an APM2 or APM1-2560 is: + +
+avrdude -patmega2560 -cstk500v2 -P /dev/ttyACM0 -b115200 -D -Uflash:w:ArduPlane.hex:i
+
+ +You will need to replace the /dev/ttyACM0 path with the path to your +APM device. You may wish to use the device paths in /dev/serial/by-id +so the path doesn't change. + +If you have an APM1-1280 then the command would be: + +
+avrdude -patmega1280 -cstk500v1 -P /dev/ttyUSB1 -b115200 -D -Uflash:w:ArduPlane.hex:i
+
+ +

Loading PX4FMU firmware on Linux or MacOS

+ +To load a PX4FMU firmware on a Linux or MacOS machine you will need to +use +the px_uploader.py +python script. You can run it like this: + +
+python px_uploader.py --port /dev/ttyACM0 px4fmu.px4
+
+ +After starting the script, press the reset button on your PX4FMU to +make it enter bootloader mode. + + +