Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[msom] Support burnin tests #2704

Merged
merged 4 commits into from Nov 13, 2023
Merged

[msom] Support burnin tests #2704

merged 4 commits into from Nov 13, 2023

Conversation

scott-brust
Copy link
Member

@scott-brust scott-brust commented Oct 20, 2023

Problem

Factory burn in needs to support MSoM hardware, specifically the GPIO pinout

Solution

Adds MSoM DVT pinmap to GPIO tests.
Basic cellular test: turn on modem, query IMEI/ICCID/Modem firmware
GNSS test: turn on modem, configure for GNSS, poll for a fix for up to 90s. If there is no lock after 90s, the test fails

Steps to Test

Jumper the following pins together on the M2 EVB (based off the silkscreen names):

CTS   <--> RTS
CS    <--> MISO
MOSI  <--> SCK
GPIO0 <--> GPIO1
PWM0  <--> PWM1
PWM2  <--> PWM3
SOM6  <--> SOM7
A0    <--> A1
A2    <--> A3


Jumper wire for these two sets:
EVT HARDWARE:
SOM5 <--> SOM12
A4     <--> SOM11

DVT HARDWARE:
SOM5 <--> SOM12
A4   <--> A7

Remove all of the Ethernet and SD card jumpers

Example App

Run Tinker. To force burnin mode change this line in tinker setup

BurninTest::instance()->setup();  -->  BurninTest::instance()->setup(true);

References

Ask scott for more info on gpio pins


Completeness

  • User is totes amazing for contributing!
  • Contributor has signed CLA (Info here)
  • Problem and Solution clearly stated
  • Run unit/integration/application tests on device
  • Added documentation
  • Added to CHANGELOG.md after merging (add links to docs and issues)

@scott-brust scott-brust added this to the 5.6.0 milestone Oct 23, 2023
@scott-brust scott-brust marked this pull request as draft October 27, 2023 15:48
@scott-brust scott-brust marked this pull request as ready for review October 31, 2023 15:39
Log.info("Cell modem ICCID: %s IMEI: %s FW: %s", device.iccid, device.imei, device.radiofw);

Cellular.off();
waitFor(Cellular.isOff, 30000);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to check if it turns off? Maybe add turnModemOff()? It could also not explicitly fail the test with false if it doesn't turn off.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Its not required that the modem be off for the test to be considered successful. This is just an attempt to maintain state after the test is complete. If the modem fails to power on for subsequent cell/gnss tests, that is a legitimate failure though.

user/applications/tinker/src/burnin_test.cpp Show resolved Hide resolved
// Turn off Cell modem + GNSS antenna
digitalWrite(GNSS_ANT_PWR, LOW);
Cellular.off();
waitFor(Cellular.isOff, 30000);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

turnModemOff() ? It could also not explicitly fail the test with false if it doesn't turn off.

@scott-brust scott-brust merged commit 0d63664 into develop Nov 13, 2023
13 checks passed
@scott-brust scott-brust deleted the sc-123005/msom-burnin-fqc branch November 13, 2023 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants