Can't arm Naze32 when Telemetry and SoftwareSerial enabled

luketheduke

New member
I just finished building a QAV250 with a Naze32 rev6 with Cleanflight and a Taranis X9D Plus with a X4R RX. I have everything wired together correctly, as I can receive telemetry and see the control inputs in the configurator sometimes. The problem is that, when I have telemetry and softserial enabled(as the x4r is on SoftwareSerial port 2), I can get telemetry and I can switch modes, but I can't arm. The switch I have set for arming will go into the arm area but the indicator won't turn on and the copter won't arm. When I disable the telemetry and SoftwareSerial features in the configurator and reboot, it arms fine, though without telemetry. Is there any way to fix this or am I stuck without telemetry?
Thanks,
luketheduke
 

ElectriSean

Eternal Student
Mentor
It's possible that you are overloading the CPU. If you go to the CLI tab and type status, it will tell you your system load. I believe anything over 0.3-0.4 can cause problems.
 

luketheduke

New member
It's possible that you are overloading the CPU. If you go to the CLI tab and type status, it will tell you your system load. I believe anything over 0.3-0.4 can cause problems.
I am going to take a look at that here hopefully in the next day or two, but if that is the problem, how can I get both telemetry and use the Serial RX without maxing out my FC?
Thanks,
luketheduke
 

luketheduke

New member
My system load is >1.1. When I change the looptime to 2000 the load goes down to ~1. But it still won't arm with looptime 2000 and Telemetry and SoftwareSerial. Any ideas?
Thanks,
luketheduke
 

Craftydan

Hostage Taker of Quads
Staff member
Moderator
Mentor
Luke,

I haven't played much with the system load values to know good/bad, but I do know:

- that the latest versions inhibit ARM if the looptime cannot be maintained. This is a safety feature, not a bug.

- Looptime is now synced with the Gyro, so unless you disable that (don't), adjusting the "looptime" variable will not help you.

Fundamentally, you're asking too much for the poor old processor, so yes, either something will need to be turned off, or you're going to have to downgrade the ROM to an older version (and deal with the loss of features you may not care about and/or the performance hit you probably do).

My best recommendation at this point . . . turn off the accelerometer There's a CLI command for that . . . not sure what it is off the top of my head. You'll lose horizon and angle mode (so you'll have to fly it like a Duke ;) ) but that should free up resources. Otherwise, you're looking at needing an upgrade to an F3 board to keep it all running.
 

ElectriSean

Eternal Student
Mentor
Quick question from someone who doesn't (yet) run a Taranis... Why is your Rx running on soft serial? I believe that most people use UART2 for this, as it is much more efficient than soft serial. I would switch that, and put your telemetry on either soft serial or UART1. The downside to UART1 is that it will conflict with the USB connection, so will have to be unplugged when you're connected to a PC, but again it is much more efficient, so you may be able to run everything.

Let me know how this goes :)
 

luketheduke

New member
I have my serial RX connected to UART1 for SBUS and the telemetry pin connected to SoftSerial 2 for telemetry. Thanks for all of your help and I think I will try flying without telemetry for now... Angle mode is still helpful once in a while. BTW, my board has an on board barometer and magnetometer. I have a feeling those use up resources as well, is there a way to turn them off?
Thanks,
luketheduke
 

Ocean

Member
yes disable both of those they use up resources as well. Disable the accelerometer as well if you can manage without it. It's also worth trying increasing the clock speed of the processor.

So the commands are (copy paste the stuff in bold into the CLI and hit enter, remember to save once you are done):

set emf_avoidance = ON (sets clock speed higher)

set acc_hardware = 1 (disables accelerometer)

set baro_hardware = 1 (disables barometer)

set mag_hardware = 1 (disables magnetometer)