100KM

Maplepilot : beginnings

3689461856?profile=originaljust wanted to show off a project of mine I've been working on . It uses arduino compatible 32bit development system from the very smart guys at leaflabs .I currently have a 9DOF DCM running 200Hz based on the arduIMU code .when I started this project I had a few important requirements for a reliable and responsive system.

  • An external mux/fail safe – Anytime you rely upon your CPU for RC pass through you are asking for trouble.
  • Watchdog timer – The Mars rovers have it ,why not your $900+ investment.
  • RTOS -This gives the ability to have real time responsiveness. Multiple concurrent prioritized processes and Interrupts.

as the title of the blog states this is just the beginning of what I think will be a very exciting project .

you can read more about it and get the code @ maplepilot .More then happy to help people get involved . if you want drop me a line . I have a the layout done for everything on a single board .The first prototypes will be here in about 2 weeks . I will have a few prototypes that i may be interested in passing out if anyone wants to get involved . 

also check out my techpod while your there.

E-mail me when people leave their comments –

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

Join diydrones

Comments

  • 100KM

    3692447735?profile=original

    3692447850?profile=original

    here is a couple screen shots showing the time it takes to read the MPU and calculate the DCM the green line is a pin that toggles before I2C com and after dcm updates and the data is put in a queue for the USB output .

  • 100KM

    lol i use EMC2 as well . it is considered a soft rtos . it is the closest linux to hard real time . have you ran the pulse test on the live CD on different computers ? you will quickly notice some 1ghz systems can perform better then some 3.0 ghz systems. mostly AMDs get way lower latency time and Intels get higher . ran my machine for years off a 1.0 ghz AMD and asus mobo . got a craigslist special for $100 was a 3.0ghz intel and it would not run the machine . Auto pilots are just another form of cnc its all motion control  . thats how i got into it . im an aerospace machinist by night .

  • 100KM

    @monreo

     linux is not considerd an RTOS . RTOS is where its at for low latency interrupt and task scheduling  . from the RTOS wiki :

    "

    A key characteristic of an RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter.[1] A hard real-time operating system has less jitter than a soft real-time operating system. The chief design goal is not high throughput, but rather a guarantee of a soft or hard performance category. An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline deterministically it is a hard real-time OS.[citation needed]

    An RTOS has an advanced algorithm for scheduling. Scheduler flexibility enables a wider, computer-system orchestration of process priorities, but a real-time OS is more frequently dedicated to a narrow set of applications. Key factors in a real-time OS are minimal interrupt latency and minimal thread switching latency; a real-time OS is valued more for how quickly or how predictably it can respond than for the amount of work it can perform in a given period of time.[2]"

    Its not about power or speed . its about responsiveness .

    @Crasher

      You are correct . however this is not a thread about ESCs .

  • @Wayne GarrisI2C ESCs have been proven to provide no real benefit over PWM. Some of the rcgroups threads have experimented quite heavily in this area. The reason is the acceleration/deceleration of the prop becomes the limiting factor surprisingly quickly, updating the ESC faster doesn't really help. Also a lot of reflased ESC's that are used with Mikrokopter boards use a I2C to PWM converter and they fly just as stable. PWM is much more robust and 450Hz is fine. I2C failures are horific! All the EScs fail!
  • 100KM

    DMA = direct memory access . I am no expert in it but you can do things like have serial string arrive in your ram with no cpu intervention . no need to poll for available character on a uart and even better then an IRQ serial  . the DMA hardware runs separate from the CPU . no need to service anything from the CPU just read the ram .

  • 100KM

    @Kamu

      yes i will tune it to the techpod for sure , yes it will be universal .

    @Monroe

     I believe there are I2C based ECSs out there that are much faster

    @Thomas

      DMA serial is one feature i will be adding for sure.

  • @Monroe

    I don't think that the speed of the present available ESC is really a bottleneck,

    The only wrong thing is the low pass filter in the software. With reflashing them (e.g. with SimonK Software),

    you can tune up their speed.

    Anyway, a 32 bit hardware will give ArduPilot/Copter stuff much more power, which can be used by advanced attitude calculation algorithms and as additional plus all these new toys like USB ..DMA.. and more FLASH and RAM. 
    But who cares  ;)

  • Very interesting. More competition is always better, I think. Bookmarked.

    Just out of curiosity, will this be tuned for your techpod or will it be possible to use other airframes?

  • 100KM

    @Rebero, 

     I love your autopilot and love your work . I started this project because I find myself unsatisfied with all the open source autopilots . I am familiar with most open source APs . ardupilot , openpilot , paparazzi ,micro gear , uav dev , multipilot , glue-on etc . I find that non of these fulfill what my experience as a  professional commercial UAV designer/fabricator/operator has given me .  the three bullet point I outline in my original post plus wiring/processing are an absolute must for me to consider marketing it alongside my Techpod .

    @Thomas

      Thanks , been working hard a lot these days . Ill be posting some output files and video tomorrow ;-)

      

  • Nice project  :)

This reply was deleted.