The receiver channel 1 is being corrupted somehow - when I look at inputs it is constantly changing from neutral to max value - even when no control inputs are applied to the transmitter.
Even if Ch 1 is not selected as an active input for any control function, Receiver activity indicates channel 1 is active. Ch 1 is active even when the transmitter & receiver are off!
As a result it won't arm & input flag remains orange.
All the other channels seemed to work fine.
The fact that it changes even when disconnected is very suspicious.
multiple stacks to overflow (there is a stack scope and MEM health to look at), memory corruption (hardware debugging to see how it is being written on), priority issue, hardware
If you can write a function to detect the corruption and "print corrupt", you can write it to "print" the return address of the caller only the first time it detects corruption, and scatter it through suspect code sections and finally bisect to narrow down.
This is multi-tasking, so you can't sit in a loop waiting for something, you must wait for an event.
I would start by flashing stock firmware with stock GCS to see if it is a hardware issue.
I also tried configuring the Atom FC in PPM mode to simplify the hookup - but here I could not get any received data at all, although the receiver being tested was tested with a Revo FC in PPM mode and worked fine.
I wonder if there is some configuration parameters that are not being set up properly for this FC.
Any ideas? Where is the receiver set up code? Its not in receiver.c
The startup at flight/targets/boards/coptercontrol/firmware/pios_board.c sets up all the ports. Again, I would start by setting up the stock code. That proves the hardware works and that you know how to configure it.
CopterControl is very tight on memory. You may want to remove some unused stuff or switch to Revo for a test.