One thing that I really like of this copter is that it uses only one 802.11ac link for all communication purposes: RC, FPV video and telemetry. I would like to have the same thing on my DIY copters instead of 433MHz for telemetry + 2.4GHz for RC + 5.8GHz for video.
It could be an interesting DIY project to replicate the same comms stuff of this c-fly dream for DIY copters.
I didn’t use st-link, just USB.
Uploading firmware “works”, but haven’t managed to get a running firmware build. Spent a fair bit of time trying to reverse engineer/guess a hwdef for it, but no success yet. I won’t be able to look at it for at least another two weeks as I’m traveling.
I’ve been playing a bit with the JJRC X9 here. I built and loaded ArduPilot master on it successfully, but haven’t yet got it to find the baro or IMU.
I added some code to put patterns of pulses on the likely pins between the main MCU and the IMU connector then probed the IMU connector with my Saleae. I didn’t find the pins yet, which makes me wonder if the IMU may be connected to the F103 (that would be quite strange, but possible).
I’ll expand my pin probe list to try and find any pins on the IMU connector.
I’ve also added a script to make it easy to create an apj firmware file from the bin files that others have added above:
Using that I tried loading those firmwares, and while they load and boot none of them bring up the IMU. So I think there is an IMU difference between the JJRC and the C-Dream.
A bit more progress. I now have definitely working:
I’ve also found the SST25VF010A 1MBit serial flash on SPI1 (CS is on PA8). We’ll need a new driver for that one for param storage.
I think I’ve mapped out the motor PWM pins, but I can’t confirm as I can’t find the battery to power the motors.
I also think PB10/PB11 may be I2C2 for LED control.
Current pinout is here:
I haven’t flown it, but James and I were pleasantly surprised at the quality of the construction. It has a good choice of sensors and the IMU has what looks to be a sensibly designed isolation system. They have clearly put quite a lot of effort into the design.
The one I’m hacking on is the one James bought. I’ve ordered another one as well so I can try flying one which hasn’t been torn to pieces.
oh, there is one really puzzling thing about the IMU. When we opened up the IMU sub-board we could clearly see a chip labelled 6050, which we assumed meant a Invensense 6050, which is an older I2C only IMU. That disappointed us as it would mean low sample rates.
Now it turns out it has a ICM20689 IMU on SPI which is a much more recent sensor and as it is on SPI it can be sampled at high rates. So what was that 6050 chip we saw? Are there in fact two IMUs on the sub-board? Or is the etching wrong on the IMU?
If it is two IMUs then the 6050 couldn’t be connected, as it is I2C only (unlike the 6000 which can do both SPI and I2C), and there aren’t enough pins unaccounted for on the ribbon cable to the IMU sub-board to have an I2C bus. So it would mean they populated an IMU which isn’t used.
James, I think you took a photo of the 6050 when we had it under the magnifying lamp. Can you post that photo?