Arduino-kretsene består av mikrokontrolller med begrenset behandlingskapasitet. Det viser seg at det kan oppstår timeing-konflikter og memorykonfklikter i enkelte situasjoner. I utgangspunktet består en Arduino-skisse (dvs program) av to rutiner, en oppstartsrutine (Setup()) som kjøres en gang under oppstart og en programsløyfe (loop()) som gjentar seg i det uendelige. I loop()-funksjonen må derfor rutinene utføres sekvensielt. Men det kan skape problemer, særlig i forbindelse med kommunikasjonsportene der data kommer inn asynkront og krever behandling med det samme de kommer inn. Men da kan loop()-sløyfen være opptatt av helt andre ting slik at data som kommer inn kan gå tapt.
Det finnes imidlertid ulike RTOS (Real Time Operation System) som løser problemet. Da kan ulike programsløyfer gå samtidig uavhengig av hverandre (multitasking) som kan spesielt sikre betjening av kommunikasjonsporter og andre rutiner som krever spesiell timing-.oppmerksomhet.
FreeRTOS er et slikt system som også kan brukes på Arduino. I utgangspunktet er dette systemet laget for ulike sammenhenger med Atmel mikrokontrollere som krever programmering i C med Atmel Studio. Men det finnes også et bibliotek for Arduino som kan brukes med alle Arduino-modellene. Spesielt er det godt egnet med Arduino Mega, den største og tyngste versjonen av Arduino-kortene.