Historical project documentation. Content is maintained in GitLab.

NGOS-0.53

Release Notes

NGOS version 0.53

Michael fixed a bug in rc-sum.c which showed up when using his new multiplex royal pro remote control. A quick scope trace showed that
this remote is sending a continues rectangled frequency of 1.25khz while activing the transmitter. After a short while the correct PPM signal
appears. This caused an overflow in the puls/channel detection, which
is fixed now.

Implemented “enable actor”, “disable actor” and “show actors”. These commands allow the user to disable single or multiple actors for testing purposes. Please note: Activating the controller after a spinup with
deactivated actors is very dangerous and because of that the NG will
switch off the controller should it be activated with deactivated actors.

Made yaw helper integral more stable.

Fixed typo in quadcopterX HAL. Thanks to MarkusBec for spotting it!

Now initializing PT1 compensation in the controller reset. This assures that the second spinup has the same preconditions as the first. The PT1
compensation can be configured and switched on and off.

Added new qngctrl commands and extended them for qngctrl. Extended qngctrl - to many changes to list them here.

Small fixes to HAL output in “show hal”.

Markus added the new a Y6 HAL.

Implemented P dampening in ctrl-amir: The 3 new parameter P.damp.trig, P.damp.clear and P.damp.gradient control it.

Implemented HAL parameters. Use “show hal” to see them. HW.HAL moved from the globals parameters to the HAL parameters. HAL parameters are HAL dependant. Added two new HAL parameter to the Y6 HAL. They allow to configure the throttle factor for the two propeller layer.

Implemented new SISO PT1 compensation. Thanks to Tensor for engineering it! HW.PT1.comp.k1 will control the compensation factor. The new compensation uses the parameters K1, T1.up and T1.down. This allows to use different time constants for increasing and decreasing the thrust.

Changed unit of T1.up and T1.down to [ms] and adapted default values. Please make sure you enter milliseconds now for T1.up and T1.down!

The whole PT1 compensation uses now a generic interface for up to 16 actors. Implemented PT1 compensation in Y6 and Reverse HAL too. Changed all HALs to use the new interface.

Changed PD controller part in ctrl-amir to use 2bit more of the gyro signal. This results in changed P and D parameters! You need to divede them by 4. Furthermore we scaled the P and D parameters by factor 10. So you need to multiply them by 10.

Implemented argument for while.rc.signal.loss(x). x specifies the number of 20ms cycles which need to pass before the condition triggers. Changed rc mixer to automatically fall into a hold mode on signal loss which then falls in a failsafe mode after 1 secibd with throttle on minimum and nick, roll and yaw set to zero. Changed the default behavior rule on signal loss to trigger after 500ms and execute ctrl.hoover(10) from then on. This makes sure the default failsafe mode always gets overwritten when it triggers after 1 second. This has to be taken into account when creating different while.rc.signal.loss(x) rules.

Fixed a small bug which crashed the shell when an unknown parameter gets used in a ‘set <var> <val>’ command.

Fixed a small volatile bug which could crash the code when no signal was found.

Cleanup in SPI statemachine, Ben switched MAX queries to 16bit transfers.

Implemented “set defaults [adxr10”|adxr12"|mlx10"|mlx12"]".

Extended the ‘show actors’ command to also show number of detected and needed actors as well as their detected addresses besides the actor activation state. Users won’t have to use ‘scan actors’ for that in the future. Also extended ‘show hal’ to show the number of detected actors beside the number of needed actors.

Axel and Amir reimplemented lpcusb with newest HEAD of trunk. Moved away from NAK interrupts and implemented and registered a frame handler instad.

qNGctrl now supports a configurable baudrate setting. Extended qNGctrl with vertical scroll bars and historical data.

Calculating the D_err differently with more bits in ctrl-amir. Attention: you need to adjust you D parameter! Be sure to divide it by 4! The new D_err contains more bits and more noise. multiplying that with the lower D parameter yields better results than using a D_err with less bits.

Merged Axel’s fixes in the i2c statemachines. This fixes several internal problems. Axel introduced a new common i2c module which is shared between the two i2c bus drivers. Lots of cleanup in the i2c code.