...
Schematic/Pre-PCB Tasks | Status |
---|---|
Fix servo backfeed issue | |
Add seeeduino xiao to schematic
| Completed |
Determine the correct connector for the gps and add to the schematic | Completed |
Add wifi module to schematic (connector)Completed
| Not Doing |
Bonus tasks: Can be saved for next rev but good if time | |
---|---|
Select and add neopixels
| |
| Completed |
| |
| Not doing |
...
“For now the sensors we are using on the tracking antenna: GPS(UART), IMU(I2C/SPI), WIFI(SPI).” “the imu we were using I believe only has i2c.“ https://discord.com/channels/776618956638388305/1113893873891160074/1259663283191943198
GPS
The GPS uses UART. The Pixhawk standard connectors for UART are either the telemetry connector or the standard GPS connector which has UART and I2C in one. Right now our GPS (SAM-M8Q) only uses the UART but we plan to switch use a GPS+Compass module (M9N), which uses this GPS connector. Therefore, I will use that connector standard. When using another GPS, we might need a harness but this would be needed anyways since our other GPS uses header pins for UART.
I2C
One I2C connector is needed for the IMU (when separate from the GPS)
Adding one more for the barometer (for if it is chosen to be added in the future.
I am adding another spare one because it adds zero extra pin usage to put another device on the same I2C bus.
UART
Needed for the GPS
Just adding the one since it isnt a bus. Also we only have one dedicated serial port on the seeeduino.
SPI
For Wifi module
There is no space on the seeeduino for any extras :(
...
SPI
Not adding SPI anymore since it is only needed for the WIFI module and it takes too many pins. Since the WIFI will be part of the MCU breakout, this would just be a spare anyways.
WIFI Module
We will no longer be adding the WIFI module since it takes too many pins from the seeeduino. Instead, we are choosing a different processor board which has WIFI built in.
Deciding to keep this on board (removable via headers) to make integration easy and reliable. The board we use (Overview | Adafruit AirLift - ESP32 WiFi Co-Processor Breakout | Adafruit Learning System) needs SPI and two more pins, so it won’t fit a standard Pixhawk connector anyways.
Barometer
EFS doesn’t seem to care too much about it. I think the play is to not add it on board and just use the extra I2C connector if we need one and connect it to an external baro breakout board. This also allows us to defer the job of breaking out the IC to someone else so this board is easier to solder and more reliable.
ICP-20100 TDK InvenSense | Sensors, Transducers | DigiKey
Plopping this here for now since it is what the pixhawk uses but it is probably too small and I have to check with EFS to make sure they are cool with it using I2C (since we are out of pins on the seeeduino and I2C is the only one where we can just throw it in the existing bus).
EFS doesn’t seem to care too much about it. I think the play is to not add it on board and just use the extra I2C connector if we need one and connect it to an external baro breakout board. This also allows us to defer the job of breaking out the IC to someone else so this board is easier to solder and more reliable.
USB debug port
Not doing this since it is just a nice to have and we do not have more pins for another serial port.
Seeeduino
Turns out the Seeduino XIAO SAMD21 (our current one) does not even have enough pins for the bare minimum of what we need. Checking with EFS to see if we can just use I will be selecting a different board with more pins. An Arduino nano does not have enough memory but there are ESP32 versions that are beefier and since instead. We will use the seeeduino XIAO ESP32C3 because it has WIFI built in we could maybe ditch the WIFI module as a whole and free up more pins. Or, we can get the ESP32 version of the Seeeduino and do the same thing.
Looks like this is all scrapped since it won’t have enough pins but will keep here for reference since some of the research will be used still:
Using this variant for the headers so it is removable:
102010388 so we can free up the SPI pins.
113991054 Seeed Technology Co., Ltd | Development Boards, Kits, Programmers | DigiKey
So the datasheet on digikey looks like something I’d see in an electronics kit tutorial I would do middle school so I had to look elsewhere for the footprint. For reference and to brighten up your day, here is the one of the first files you see in the datasheet zip 💀:
...
I will be going off the datasheet I found here on another website: The datasheet isn’t great so I will be using these ones instead that I found elsewhere
Seeed-Studio-XIAO-Series-SOM-Datasheet.pdf (seeedstudio.com) and
Seeed-Studio-XIAO-Series-Package-and-PCB-Design.pdf (seeedstudio.com) for the pad layout.
XIAO ESP32C3.sch (seeedstudio.com) for the schematic
The seeeduino with headers has 7 adjacent header pins 2.54mm headers on either side. For the header pins, this should do PH1-07-UA Adam Tech | Connectors, Interconnects | DigiKey. For the female header sockets, these should do PPPC071LFBN-RC Sullins Connector Solutions | Connectors, Interconnects | DigiKey. I plan to mount them in the correct place for the seeeduino and then have another set just mounted outside of that for EFS to use for debugging. Female headers should be best for that anyways since they are more protected. The footprint for the seeeduino will just be two of these headers in the right spot.
The 5V pin is connected the Vin solder pad internally, so the 5V pin can be used to power the seeeduino. However, a diode should be placed on the Vin to make sure connecting a usb port to the seeeduino won’t send current into the battery. The forward voltage drop should be fine since the seeeduino can run on 3.3V. The average operating current is 14.5mA but looking at the datasheet of the chip inside, SAM D21/DA1 Family Data Sheet (microchip.com), the maximum draw could be up to 96 mA. For a good safety factor, I’ll make sure the diode can handle 200mAbattery power pins are on the bottom of the board and must be soldered, so when connected with the header pins, we can not access that. To fix this, we can just connect our 5V buck to the USB 5V power rail. The seeeduino has a fair bit of protection on the inputs, but it will still short the USB to the battery if both are connected at once. I will place a diode from the 5V buck to the input/USB power so the USB power does not get fed into the battery. There is internally a regulator to drop the voltage to 3.3V so I will use a Shottkey diode so the input voltage to this regulator is high enough.
ESP32 datasheet for power reference esp32-c3_datasheet_en.pdf (espressif.com) - this suggests 1A of output current could theoretically be pulled. The schematic shows the regulator only can withstand 750mA anyways so I will design towards that spec when choosing the diode. I will choose something at least 1A for safety factor. Since diodes are cheap, I will give lots of overhead.
Nathan’s seeeduino tracking antenna board is here for reference hardware/Projects/Arduino_AAT at master · UWARG/hardware (github.com).