MegaPirateNG / FlashTool

Firmware flashing tool
GNU General Public License v2.0
15 stars 14 forks source link

Get first version out #1

Closed smurfy closed 10 years ago

smurfy commented 10 years ago

Get a first version out and working.

Focus on Windows but should work on Mac and Linux too.

First Version infos

SirAlex commented 10 years ago

Great!

Could you please share sources (maybe via beta branch)? Just to review and sync our ideas how it will work :)

smurfy commented 10 years ago

i'm currently testing things out how to best do it vs. file size. I will push the working gui part later today

my current idea is:

pros about the idea is:

current challenges:

SirAlex commented 10 years ago

IMHO, it's not good idea. First of all, regular user will not use custom patches. Second you will get compatibility issue to run toolchain on different platform. Third there is already Arduino IDE which doing almost same.

I'm still thinking on build-on-server-side solution. As I'm wrote early, I'm already have build server so it's not problem. Also we can save only stable versions and betas with common settings. Any other FW will be stored for some time (1 week for example) and will be deleted. At last point, any custom firmwares can be compiled via Arduino IDE.

This FlashTool intended for Newbie users and for who not familiar with compiling. It must be easy to use and lightweight :)

smurfy commented 10 years ago

Ok fine with me too. But i still like to ship / use avrdude to do the actual flashing for now.

list of options i prepared.

so we should think about a naming schema for the hex files. i would suggest:

boardtype_rcinput_platform_version.hex

sample:

crius2_ppma8_copter-quad_3.0.1-rc3.hex

Here is the xml i'm currently using. (altered a bit for the build server) I would use the idattribute for the hex-file name.

<xml>
    <boards>
        <board name="RCTimer CRIUS V2" id="crius2"/>
        <board name="RCTimer CRIUS V1 / Hobbyking AIOP boards" id="crius1"/>
        <board name="Hobbyking Red MultiWii Pro" id="hk_red"/>
        <board name="BlackVortex" id="blackvortex"/>
    </boards>

    <rcinputs>
        <rcinput name="PPM on A8" id="ppma8"/>
        <rcinput name="PPM on PL1" id="ppmpl1"/>
        <rcinput name="Regular PWM on A8-A15" id="pwma8"/>
    </rcinputs>

    <platforms>
        <platform name="APM:Copter - Quad" version="copter" image="copter-quad.png" id="copter-quad"/>
        <platform name="APM:Copter - Tri" version="copter" image="copter-tri.png" id="copter-tri"/>
        <platform name="APM:Copter - Hexa" version="copter" image="copter-hexa.png" id="copter-hexa"/>
        <platform name="APM:Copter - Y6" version="copter" image="copter-y6.png" id="copter-y6"/>
        <platform name="APM:Copter - Octocopter" version="copter" image="copter-octox.png" id="copter-octox"/>
        <platform name="APM:Copter - X8" version="copter" image="copter-x8.png" id="copter-x8"/>
        <platform name="APM:Copter - Helicopter" version="copter" image="copter-heli.png" id="copter-heli"/>
        <platform name="APM:Plane" version="plane" image="plane.png" id="plane"/>
        <platform name="APM:Rover" version="rover" image="rover.png" id="rover"/>
    </platforms>

    <versions>
        <version platform="copter" number="3.0.1-RC3"  id="3.0.1-rc3"/>
        <version platform="plane" number="2.74b" id="2.74b"/>
        <version platform="plane" number="2.75"  id="2.75"/>
        <version platform="plane" number="2.76"  id="2.76"/>
    </versions>

</xml>
SirAlex commented 10 years ago

We must also add RCInput mapping, GPS Driver and GPS port speed...

smurfy commented 10 years ago

RCInput mapping,

not sure if we need that for the "dummy user", we have the default mapping documented so the user should use that. if he likes another one maybe he should compile it himself. or we move that to an advanced settings tab.

GPS Driver and GPS port speed...

same as above. the default is "auto" which should work fine for most users.

SirAlex commented 10 years ago

Yes, Advanced settings will be fine.

But RCinput usually changed by users, since same board used for Muliwii. So to not change wires, user must change mapping in code.

smurfy commented 10 years ago

But RCinput usually changed by users, since same board used for Muliwii. So to not change wires, user must change mapping in code.

i changed the wires the first couple of times :)

but i will add the setting as-well.

smurfy commented 10 years ago

Ok, i pushed my current code.

i'm now working on the actual flashing and more error handling.

smurfy commented 10 years ago

Ok,

so my first version is finished and ready for testing. I guess the easiest way to test it if i compile a working version, but for that i need the url to get the update.xml from.

I will create a seperate issue for the buildserver / hex / update.xml file host.