An sich ist das OpenLRS super, mich stört nur dass der Atmega328 mit 16Mhz bei 3,3V betrieben wird. Damit arbeitet er außerhalb der Spezifikation des Herstellers, was in der Praxis aber bisher keine Probleme gemacht hat, oder?
Mir hat ein Brownout des Atmegas eine Wasserlandung mit dem Bixler beschert:
http://vimeo.com/68645590
Einer der Servos hat die 5V Versorgung kurzzeitig zu weit nach unten gezogen --> Reset vom Atmega (thundead Firmware (auf der die openlrsNG Firmware basiert). Die Failsafe Values wurden erfolgreich geladen, leider wurde das RFM22 Funkmodul nicht neu Initialisiert, somit kam keine Verbindung mehr zustande und ich konnte tatenlos zusehen wie mein Flieger zu Wasser segelt.
Ob das mit OpenlrsNG auch so ist werde ich bei Gelegenheit mal testen. Man kann das Problem nachstellen indem man das OpenLRS mit einem Servo am Labornetzteil mit einer Strombegrenzung von z.B. 100mA betreibt und versucht den Servo zu bewegen --> Neustart und kein Link mehr.
Ein einfacher Workaround für dieses Problem und die Nutzer der thundead Firmware wäre z.B. ein Zusatz in der Main Loop:
if (time-last_pack_time > 5000)
{
last_pack_time = time;
RF22B_init_parameter(); // Configure the RFM22B's registers
frequency_configurator(CARRIER_FREQUENCY);
to_rx_mode();
willhop = 1;
}
Dadurch wird das RFM22 nach 5 Sekunden ohne Link neu initialisiert.