The 18-19 team has been recommended to essentially start this process over. That will be my job, this will entail starting from the current stable release.
I got a project working (hello world code runs) with a recorder block included in the design. I'll start building the unit test branches (one per sensor/output) today.
I have scripts for building the projects and software test applications for the PWM units. The tests are currently extremely thin, but are able to read and generate PWM signals successfully.
I have integrated a PWM recorder test into the CI framework. This required mounting the Xilinx folder on the VM. There is a document in our google drive with the login info (not public for security reasons). Any pull request will now run the HW simulation tests automatically.
I have created the XSDK project for the new platform, swapped the Zybo on quad 01, and run some tests.
IMU: Working Correctly
Optical Flow: Probably working correctly (it's a little hard to test with the USB cable, but it gives +x for one direction and -x for another.
LiDAR: Working correctly
PWM Capture: I think working correctly. Throttle definitely works, but the controller is low on battery so identifying the other channels is not going quickly.
The hardware interfaces seem to work correctly. The current issue is that the controls are not functioning on this quad. I am going to attempt to revert the quad_app software to the golden build and see if that helps.
The autonomous flight eventually worked. I am going to wait and merge this as part of the PCB transition as there are several hardware changes involved with that. This should be mergable again in a couple weeks or less.
Thus far, the PCB is working. For some reason, the I2C controller is reading a NACK from the IMU when the line is clearly pulled low on an oscilloscope. The line does return high for a little bit after when the IMU releases it. Everything on the scope looks like a valid transaction, and the IMU correctly ACKs its address, and not other addresses. I have not yet verified the clock speed (thought about it after I left the lab).
So, I got it working by forcing a full system reset in XSDK. I am evaluating how this applies to SD-card boots.
It looks like things work fine with the SD card.
Power Working (5V to Zybo from battery via regulator)
Motor Control Working (PWM)
IMU Working
Looks like an I2C controller cofig issue (I don't know why we haven't seen it before).
I'm going to try reverting to the MPU-9150 to see if that made a difference (I don't think it's supposed to).
WiFi Working
UART to/from WiFi Working, I can't test the actual WiFi right now.
LIDAR working
Optical Flow Working
I don't have a great way to evaluate the accuracy of the sensing, but the communication with it is working.
I have the quad communicating with the ground station again. This weekend/early next week, I will need to publish an errata sheet for the PCB (some pairs of wires need to be flipped).