ARMmbed / ARMmbed/ci-test-shield
Large number of failures a result of trying to test/use too many pins
- Dominant language
- C++
- Stars
- 9
- Forks
- 33
- PR merge metrics
- No merged PRs in 30d
Description
I've been testing many platforms lately...with lots of failures.
A common issue is that not all platforms connect each pin on the Arduino header.
For example, LPC546XX doesn't have D6, D7, A4, A5 connected by default.
If I want to pass tests that relay on D6, D7, A4, A5, as digital outs (e.g. Bus tests) then I have to find surrogate pins to fly-wire to those locations.
The problem is that all other pins are taken!
D2-D9 (Digital, bus , interrupt tests)
D10-D13(SPI, bus tests)
D14-D15 (I2C, bus tests)
A0-A3(Digital, Analog, Bus tests)
If the tests attempted to test less pins, say just 2-3 per peripheral type, then there would be a higher chance of finding alternate pins to wire in.
My guess is that we would find 95% of issues by just testing two pins of each type.
This would reduce the complexity, make this project much more stable, and widely used.
The only drawback I can see is that we wouldn't be catching and highlighting deviations from the Arduiono standard, but honestly, I don't think that is the job of Mbed OS.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by locating the digital, analog, bus, interrupt, SPI, and I2C tests and cataloging which Arduino header pins each one requires. Compare that usage with the LPC546XX pins available by default, then define a reduced two- or three-pin-per-peripheral test plan. Done means the tests retain representative coverage while allowing platforms with unconnected header pins to run successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- arduino, cpp
- Domain
- embedded-iot, testing-qa
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100