ZeroPilot Validation Image Sequence

Intro

This is the page for the ZeroPilot Validation image.

Useful ZP 3.0 Documentation:

Testing Documentation

Step 1: Visual Inspection of Board

todo: include a list of things to lookout for

Step 2: Supply Power (lookout for any smoking)

Step 3: Flash Firmware (make sure you can flash firmware)

todo: create flashing guide

todo: figure out how to flash

Step 4: Proceed through testing functionality of each component - overview included below

Channel

Goal/Scope

Proposed Testing Strategy

Channel

Goal/Scope

Proposed Testing Strategy

Main Channels

SPI

Can transmit and receive data from and to a device.

Can use chip select/enable line to selectively communicate with multiple peripherals.

Send sample SPI signals through the channels and verify output using Saleae Logic Analyzer.

SPI loopback connection should be able to test that transmit & receive work. (connect MOSI to MISO) and send random values through it, receiving what is sent. The sent value and received value should match if the SPI is working properly.

UART

Can transmit and receive data from and to a device.

Connect to a terminal, send UART message from PC and see if it can echo the message back to terminal.

I2C

Can transmit and receive data from and to a device.

After research, there is no easy way to test I2C lines. Best thing to do is connect a simple I2C peripheral and see if it can communicate with it successfully.

todo: find an unimportant i2c sensor/device to steal for bringup testing. Write driver for device.

PWM

Can configure the PWM TIMS to generate PWM signals.

Basic: Configure PWM settings. Connect to oscilloscope. Inspect/analyze PWM signal.

DMA: Configure PWM settings (using DMA method). Connect to oscilloscope. Inspect/analyze PWM signal.

Also could: Test by sending PWM signals to on-board LEDs and confirm functionality by visual inspection (much less rigorous than oscilloscope analysis).

GPIO

Can toggle on and off.

Pull each GPIO pin up/down.

Options to check functionality:

  1. Connect LED to each gpio pin and toggle the pins to turn them on/off continuously.

  2. Drive GPIO pins high and output a simple message to a terminal if a HIGH signal was read from each GPIO pin confirming it was successfully pulled HIGH/LOW.

ADC

Varying analog input is converted to a digital binary output.

Connect potentiometer to ADC in channel. Vary voltage input. Output binary values to terminal?

MicroSD

Read/Write data to the SD Card.

Write:

Create text file, write to the text file, plug the SD card into a computer and confirm that the test text file has been created and written to.

Read:

Read from the test file. Output data to terminal.

OR

Attempt to read known data from a text file. Pass through an assertion or if statement.

On-board LEDs

Can light up.

Run simple blink test code on each on-board LED.

MISC

GPIO Interlock

Pins:

  • PF2 (GPIO_IL_D)

  • PF3 (GPIO_IL_C)

  • PG6 (GPIO_IL_B)

  • PG7 (GPIO_IL_A)

GPIO interlock, should be read high (3V3) to ensure interface board is properly connected.

Read the pins.

uSD_Detect

Pin: PF11

Pin low when SD card is inserted and high when SD card slot is vacant

This functionality was not confirmed and should be checked.

Read pin (should be low when SD card is inserted and high when SD card is empty)

PWR_SENSE

Pin: PA4 (ADC2_IN9)

Measures the voltage available to the system after power filter

Calculated using V = PWR_SENSE * 18.28395 (280k, 16.2k voltage divider)

DMM

VBAT_B_SENSE

Pin: PC2 (ADC2_IN3)

Measures the voltage of battery B

Calculated using:

V = VBAT_B_SENSE * 18.28395 (280k, 16.2k voltage divider)

DMM

VBAT_A_SENSE

Pin: PB1 (ADC2_IN16)

Measures the voltage of battery A

Calculated using:

V = VBAT_A_SENSE * 18.28395 (280k, 16.2k voltage divider)

DMM

Remaining Tasks:

  1. Figure out what to set the HSE - High Speed External Oscillator How to use HSE STM32CubeMx

    • RCC → HSE → Crystal/Ceramic Resonator (figure out the desired frequency)

  2. Write firmware driver for each functionality for testing.

  3. Flashing onto ZP3 (Message aidan bowers and ask if he has successfully flashed the zeropilot pcb with open ocd or if it would be easier to use the ST-link and how to connect).

  4. Test the testing code by performing bring-up on a zp3 board.

  5. Create user friendly confluence document with clear instructions.

 

MISC:

https://www.youtube.com/watch?v=dRKSs3wms4U&ab_channel=Phil%E2%80%99sLab