Hardware trouble

I’m unable to connect MissionPlanner via USB cable. I get the “no hartbeat” message.
Uploading firmware works in 50% of the cases. The other 50% terminate with an error stating that something else requested an I/O write.

Also, the internal compass seems to be dead. Not a major issue since I’m planning to use external.

I/O leds blink OK. On FMU the B/E led stays dimly lit. Very dim if it’s USB power, and a little brighter on LiPo power.

Boot sequence looks like this:

[i][boot] Successfully initialized SPI port 1
[boot] Successfully initialized SPI port 2
[boot] Initialized SDIO
[init] looking for microSD…
[init] card mounted at /fs/microsd
sercon: Registering CDC/ACM serial driver
sercon: Successfully registered the CDC/ACM serial driver
[init] USB interface connected
Running rc.APM
Mounting binfs
binfs mounted OK
nsh: rm: unlink failed: No such file or directory
Detected FMUv2 board
[uorb] ready
uorb started OK
[px4io] default PWM output device
[px4io] starting
[px4io] ready
PX4IO board OK
CRCs match
Setting FMU mode_pwm
set_pwm_rate 0 50 50
[fmuservo] starting
adjusted actuator update interval to 20ms
Starting APM sensors
[MS5611_SPI] on SPI bus 1 at 3
ms5611 started OK
init done
adc started OK
Starting FMUv2 sensors
hmc5883: driver start failed
ID 0x58
[MPU6000] on SPI bus 1 at 4
Found MPU6000
[L3GD20] on SPI bus 1 at 1
l3gd20 started OK
[LSM303D] on SPI bus 1 at 2
lsm303d started OK
[Airspeed] i2c::transfer returned -6
probe failed
ets_airspeed: driver start failed
probe failed
probe failed
meas_airspeed: driver start failed
Trying PX4IO board
[rgbled] on I2C bus 2 at 0x55
rgbled started OK
mtd: Creating partitions
mtd: Partition 0. Block offset=0, size=32
started mtd driver OK
reading /fs/mtd expecting 16384 bytes
readtest OK
mtd readtest OK
rwtest /fs/mtd testing 16384 bytes
rwtest OK
mtd rwtest OK
Starting ArduPilot /dev/ttyACM0 /dev/ttyS1 /dev/ttyS2
Starting ArduCopter uartA=/dev/ttyACM0 uartC=/dev/ttyS1 uartD=/dev/ttyS2
initialised /dev/ttyS3 OK 512 512
initialised /dev/ttyS1 OK 512 512
initialised /dev/ttyS2 OK 512 512
ArduPilot started OK
rc.APM finished

NuttShell (NSH)
nsh> MODE_4PWM
set_pwm_rate 0 50 50[/i]

Follow-up, as I started exploring the console:

[i]nsh> tests sensors
Running sensors tests:

sensor: accel
ACCEL: test start
ACCEL accel: x: -0.0628 y: -0.2518 z:-10.6439 m/s^2
OK: ACCEL passed all tests successfully
sensor: gyro
GYRO: test start
GYRO rates: x: -0.0079 y: 0.0545 z: -0.0116 rad/s
OK: GYRO passed all tests successfully
sensor: mag
MAG: test start
MAG: read fail (-1)
sensor: baro
BARO: test start
BARO pressure: 1011.0800 mbar alt: 18.0790 m temp: 40.0300 deg C
OK: BARO passed all tests successfully
sensor: mpu6k
MPU6K: test start
MPU6K: open fail, run first.
nsh> mpu6000 start
mpu6000: already started[/i]

Baro temp is a bit off charts as well… it’s a chilly day, 12C outside, probably 23C inside.

Further on. I downloaded APM Planner and managed to flash the latest 3.2-dev which updated the IO at reboot and APM and Mission Planner started working. I facepalmed myself for the HMC5883 error, since it expects it on ext. i2c and I havent connected it yet.
Funny thing, after the IO upgrade, I lost the Serial4 OS bootlog.

Reverted to 3.1.2 via MP and everything seems to be working now.

There’s something horribly wrong with my unit.

I saw the release of 3.1.3-rc1 and tried to load it. MP went through downloading the hex, didn’t ask for a reboot and got straight to erase/program, which failed with “ERROR: The I/O operation has been aborted because of either a thread exit or an application request”

Since that moment, any attempt to revive the pixhawk returns the same error. There’s no more communication on Serial 4/5 and booting with px4io_v2.bin on the sd card and the arm button pressed does absolutely nothing.

What other options do I have ?