Changes to be made to ZP3 Interface Dev Board:
- Change 2.54mm pin socket connectors to match Pixhawk Connector Standard (Pixhawk-Standards/DS-009 Pixhawk Connector Standard.pdf at v6xupdate · pixhawk/Pixhawk-Standards · GitHub)
- Remove ST-Link connector
- Decide on which sensors to add (if any) with EFS
- Remove LEDs?
- Add IMU
CONNECTORS
All interfaces which have a pixhawk standard connector (UART, I2C, SPI, ST-Link) except for debug (ST-Link) will be replaced with GH series JST connectors. Debug will use SH series. The rest (GPIO, ADC input, TIM) don’t have a standard, and thus will use found in COTS products or what intuitively feels convenient.
As is the case with the Pixhawk FC, only upwards-facing JST connectors will be used.
Replace ST-Link socket (J30) with BM10B-SRSS-TB connector. This is a 10-pin upwards-facing SMT connector. It is the standard “Pixhawk Debug Full” connector. There is a “mini” version with only 6 pins, but it does not seem to have an nRST pin, which is needed for ST-Link.
From the PX4 user guide, the following pin connections will be made:
#Full | Pixhawk Debug |
---|---|
1 | VCC |
2 | x |
3 | x |
4 | SWDIO |
5 | SWCLK |
6 | SWO |
7 | x |
8 | x |
9 | nRST |
10 | GND |
Note: the connector-standard pdf document does not identify the location of the nRST pin, but the user guide specifies it as being on pin 9.
UART conn (4-pin: J6, 11, 34; 6-pin: 18, 23). Using 6-pin standard telemetry connector (BM06B-GHS-TBT). On 4-pin UART, CTS and RTS are left floating.
SPI conn (J26, 27). Replace with BM07B-GHS-TBT 7-pin connector. NSS will be connected to the SS1 pin and the SS2 pin will be left floating.
I2C conn (J7, J12, J16). Replace with BM04B-GHS-TBT 4-pin connector.
On the Pixhawk, there are BM08B-GHS-TBT 8-pin connectors which share GPIOs and ADC inputs
The following is their pinout (pin 1 VCC, pin 8 GND, pins 2-5 GPIOs, pin 6-7 ADC inputs)
There are 10 GPIOs + 3 ADC inputs on our flight board, we can use 2 8-pin connectors containing all GPIOs and 1 8-pin connector containing all ADC inputs. Another option would be to:
GPIO conn (J31, 32). Replace with 2 8-pin (or either 0.1” pitch through hole solder pads for option of using pin headers or direct soldering).
ADC conn (J28). 0.1” Pin sockets/headers.
TIM conn (J3, 4, 9, 10, 14, 15, 19, 20, 21, 22, 8, 13, 17, 24, 25, 29). Going to use a 3-row 16-pin per row 0.1” right-angle pin header. This is shown to be done by Pixhawk here.
IMU
ICM-42670-P seems like a widely available low-power option (and apparently low noise) . Need to find out the desired orientation and placement of the IMU on the board (Since it’s recommended for it to be in the center of the drone and to align expectedly with the yaw/pitch/roll axis)
EFS seems to planning to implement a standard IMU that they use for all projects so they don’t have to remake drivers as often. They have not committed to but the ICM-42688 sounds like it is likely to be the one. It is slightly more expensive than the one above but still super cheap and seems to me much more common, meaning more community support. The features are very similar between both.
During this weekly EE meeting, it was mentioned that EFS would be interested in having a magnetometer/compass as well. They also do not care as much about keeping the IMU in this project the same as the ones they are looking at. The ICM-20948 seems to be the most affordable readily available IMU that contains a magnetometer and it seems to be popular. Also, EFS may be working with the ICM-20948 instead of the ICM-42688 for their standard IMU so this should be a good choice.
While the placement of the IMU is not critical, it should be placed as close to the center as is convenient. This way rotation will have less of an impact on output acceleration and EFS would have to worry less about factoring the offset into calculations.
The IMU should be placed according to the following image to align the axes of the IMU with the axes of the board. It should be discussed which axis is defined as forward and which side of the board is considered forward.
Having the IMU in the board is not a priority since the hardware has not been confirmed and no one in EFS has relevant experience yet to write the firmware.
EFS has changed their mind and this would be useful for future development.
The IMU can communicate with I2C and SPI. I2C and SPI already have ports on the interface board so we could potentially route these to the IMU and use jumper pins so the IMU can be disconnected when this port needs to be used. Unused pins on the STM32 are not connected to the connectors in the ZP3 schematic so these can not be used to to connect to the IMU on the interface board.
Other Additions
Now there seems to be considerations for a barometer and compass/magnetometer on board. EFS has been asked what they would like to have on it. Edits have been made above to include the magnetometer. The barometer seems excessive and would require a less common IMU or separate component. This likely would not be included.
This document from September outlines some potential improvements for the ZP3 board. It has not been touched since. EFS has been asked if this is still relevant and if they want these suggestions to be added.
This seems beyond the scope of the project but I will remind EFS again just in case.