Hello everyone!
I am trying to develop a custom control board together with its software. The project is still in a very early phase of development but I hope to make it fully functional. Source code is hosted on https://github.com/michprev/flyhero.
The control board is currently quite large and consists of voltage regulation circuit (I don't use BEC ESC right now), LEDs and headers for other components: NUCLEO-F446RE board, MPU6050/9150/6500/9250 IMU, MS5611 barometer, ESP8266 WiFi module and of course ESC wires headers.
The board does not have radio receiver.
Program for the Nucleo board is made of modules (each folder on Github is one independent module) and the main The_Eye project which links other modules.
There are 2 main versions of the program. On 'master' branch I use DMP sensor fusion which is performed in IMU and sampled out at 200 Hz. The second version is in 'non-DMP' branch and performs raw data readings from IMU at 1 kHz and fuses them using complementary filter.
In both versions I am running not synced 2 kHz PWM (125 us minimum, 250 us maximum, 500 us period) just because it is compatible with Oneshot125. I would like to implement Oneshot125 as soon as possible.
The quadcopter is controlled from a mobile phone where is possible to set PID constants even during the flight. Unfortunately I wasn't able to comfortably take off yet.
I am using Quanum Neon 250 frame, 20 A ESC with BlHeli and Multistar Elite 2306-2150KV 'MINI MONSTER' motors.
I am attaching data log from non-DMP version with no props and motors running at max 20 % speed. It looks like IMU suffers vibrations.
Is it that critical to make it not able to fly? I have tried many PID constants variantions with no success. Do you have any other suggestions how to make it fly? I can supply any other data logs or even videos with 'take offs'.
Thank you!
EDIT: Realised that I was mixing rads with degrees, fixed reuploaded correct image and attached file. 20 degrees error looks really terrible. Any suggestions for software to correct this? Should I use another frame?
Replies