Difference between revisions of "Board Farm"
(→Hardware) |
(→SD muxers) |
||
(46 intermediate revisions by 16 users not shown) | |||
Line 6: | Line 6: | ||
Add your name and contact information if you would like to be notified when an e-mail list is created, | Add your name and contact information if you would like to be notified when an e-mail list is created, | ||
or are generally interested in this topic: | or are generally interested in this topic: | ||
− | * Andrew Murray - <amurray (at) | + | * Andrew Murray - <amurray (at) thegoodpenguin.co.uk> * |
* Tim Bird - <tim.bird (at) sony.com> * | * Tim Bird - <tim.bird (at) sony.com> * | ||
* Robert Schwebel <r.schwebel (at) pengutronix.de> * | * Robert Schwebel <r.schwebel (at) pengutronix.de> * | ||
Line 23: | Line 23: | ||
* Mike Holmes - <mike.holmes (at) linaro.org> | * Mike Holmes - <mike.holmes (at) linaro.org> | ||
* Matteo Vit - <matteo.vit (at) dev.starwaredesign.com> | * Matteo Vit - <matteo.vit (at) dev.starwaredesign.com> | ||
− | * Attie Grande - <attie (at) argentum-systems.co.uk> | + | * Attie Grande - <attie.grande (at) argentum-systems.co.uk> |
* Roland Hieber <r <dot> hieber <at> pengutronix <dot> de> | * Roland Hieber <r <dot> hieber <at> pengutronix <dot> de> | ||
* Tim Orling <ticotimo (at) gmail (dot) com> | * Tim Orling <ticotimo (at) gmail (dot) com> | ||
* Ryan Arnold <ryan <dot> arnold <at> linaro <dot> org> | * Ryan Arnold <ryan <dot> arnold <at> linaro <dot> org> | ||
+ | * Behan Webster <behanw (at) converseincode (dot) com> * | ||
+ | * Michal Simek <monstr (at) monstr (dot) eu> | ||
+ | * Krzysztof Kozlowski <krzk (at) kernel (dot) org> | ||
+ | * Jagan Teki <jagan (at) openedev (dot) com> | ||
+ | * Heiko Schocher <hs (at) denx (dot) de> | ||
+ | * Khiem Nguyen <khiem.nguyen.xt (at) renesas.com> | ||
+ | * Amit Kucheria <amit.kucheria (at) verdurent.com> | ||
+ | * Harish Bansal <harish.bansal (at) timesys.com> | ||
+ | * Chris Paterson <chris.paterson2 (at) renesas.com> | ||
* = have seen this person on the e-mail list, or already subscribed. | * = have seen this person on the e-mail list, or already subscribed. | ||
Line 32: | Line 41: | ||
== Mailing list == | == Mailing list == | ||
Discussions on this topic have started at on the "Automated Testing" mailing list of the Yocto Project | Discussions on this topic have started at on the "Automated Testing" mailing list of the Yocto Project | ||
− | * See https://lists.yoctoproject.org/listinfo/automated-testing | + | * See https://lists.yoctoproject.org/g/automated-testing |
+ | * (was https://lists.yoctoproject.org/listinfo/automated-testing) | ||
== Next meeting == | == Next meeting == | ||
− | To be determined | + | To be determined. |
+ | |||
+ | Maybe at Plumbers 2018, Connect, or ELCE 2018 | ||
+ | |||
+ | See [[Automated Testing Summit]] | ||
= Actions = | = Actions = | ||
Line 47: | Line 61: | ||
** r4d | ** r4d | ||
* survey of existing tools, hardware, practices | * survey of existing tools, hardware, practices | ||
+ | * create a definition for an "automated testing" stack - see [[Automated Testing Stack]] | ||
+ | ** start with definitions from SLAV? | ||
+ | ** identify different areas of test automation operation | ||
= Presentations = | = Presentations = | ||
Line 71: | Line 88: | ||
= Hardware = | = Hardware = | ||
== SD muxers == | == SD muxers == | ||
− | * [http://www.pengutronix.de/en/2017-10-23-usb-sd-mux-automated-sd-card-juggler.html USB-SD-Mux] by Pengutronix | + | * [http://www.pengutronix.de/en/2017-10-23-usb-sd-mux-automated-sd-card-juggler.html USB-SD-Mux] by Pengutronix, now [https://linux-automation.com/en/blog/2019-10-25-launch.html available] |
* [https://wiki.tizen.org/SD_MUX SD-MUX] by Tizen (deprecated - see MuxPi) | * [https://wiki.tizen.org/SD_MUX SD-MUX] by Tizen (deprecated - see MuxPi) | ||
* [https://wiki.tizen.org/MuxPi MuxPi] by Tizen (MuxPi is the successor to SD-MUX) | * [https://wiki.tizen.org/MuxPi MuxPi] by Tizen (MuxPi is the successor to SD-MUX) | ||
+ | * [https://www.timesys.com/open-source-embedded/board-farm/ IO-CX] by Timesys | ||
+ | * https://hackaday.com/2022/08/08/automated-microsd-card-swapping-helps-in-embedded-shenanigans/ | ||
+ | |||
Kevin Hilman mentioned (at ELCE 2017) wifi SDCards as a way to handle the SD mux problem. | Kevin Hilman mentioned (at ELCE 2017) wifi SDCards as a way to handle the SD mux problem. | ||
− | Was he referring to something like these? http://techpp.com/2015/04/28/wifi-sd-cards-camera/ | + | Was he referring to something like these? http://techpp.com/2015/04/28/wifi-sd-cards-camera/ |
== power control == | == power control == | ||
Line 84: | Line 104: | ||
** control program by Tim Bird: [[File:Powerswitch-set.sh]] | ** control program by Tim Bird: [[File:Powerswitch-set.sh]] | ||
* [https://energenie4u.co.uk/catalogue/product/ENER011 Energenie Power Management System (USB controlled 4-way power switch +2 always on) (UK)] | * [https://energenie4u.co.uk/catalogue/product/ENER011 Energenie Power Management System (USB controlled 4-way power switch +2 always on) (UK)] | ||
+ | * [https://github.com/mvp/uhubctl uhubctl] USB hub per-port power control | ||
+ | * [https://www.lindy.co.uk/networking-c5/ipower-switch-classic-8-p4456 Ethernet controlled IEC320 PDU] from Lindy | ||
== relays/buttons == | == relays/buttons == | ||
Line 91: | Line 113: | ||
* [https://www.kmtronic.com/lan-ethernet-ip-8-channels-web-relay-board.html KMTronic 8-channel IP relay controller] | * [https://www.kmtronic.com/lan-ethernet-ip-8-channels-web-relay-board.html KMTronic 8-channel IP relay controller] | ||
* [https://www.waveshare.com/rpi-relay-board.htm Raspberry Pi relay board] | * [https://www.waveshare.com/rpi-relay-board.htm Raspberry Pi relay board] | ||
+ | * [https://robot-electronics.co.uk/products/relay-modules/ethernet-relay/eth008-8-x-16a-ethernet-relay.html Relays over ethernet] | ||
+ | |||
+ | Here is some information from a discussion in October 2022 about a simple relay used as part of board bootup process: | ||
+ | === Shelly relays === | ||
+ | ''Cliff Brake'': I've used the Shelly relays to do simple automation projects here (cycle | ||
+ | power to boards under test, etc): See https://shelly.cloud/ | ||
+ | |||
+ | They are low cost, and are very open and have documented REST, MQTT, etc | ||
+ | APIs, so I think it would be pretty easy to trigger one of these from a | ||
+ | script using curl or something ... | ||
+ | |||
+ | https://shelly-api-docs.shelly.cloud/ | ||
+ | |||
+ | === USB relays === | ||
+ | ''Andrew Murray'': We often use USB relays (less than £10) - for example this one: | ||
+ | https://www.amazon.co.uk/gp/product/B081JLWK9X - they're typically | ||
+ | controlled via a very simple hidraw interface. Applications are | ||
+ | available for controlling them (e.g. | ||
+ | https://github.com/darrylb123/usbrelay) | ||
+ | |||
+ | However that particular brand appears to have been removed from Amazon | ||
+ | - though I've noticed this one which looks like it would be suitable - | ||
+ | https://www.amazon.co.uk/HALJIA-Module-Control-Intelligent-control/dp/B075F6J6WL/ | ||
+ | |||
+ | These are all slightly overkill as these relays can switch mains | ||
+ | voltage and currents, however they are cheap. It is possible to buy | ||
+ | solid state relays for lower voltages, but I haven't found a cheap | ||
+ | board with one on. | ||
+ | |||
+ | Slightly related, thepihut.com has a lot of useful boards - for | ||
+ | example their "USB Switch and Multiplexer" - this appears to be | ||
+ | sourced from 8086.net which also has lots of other goodies. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ''Michal Sojka'': If you can use USB, I'd recommend cheap USB relays found on Ebay, e.g. | ||
+ | https://www.ebay.com/itm/363777314013. I use | ||
+ | https://github.com/darrylb123/usbrelay to control them. Over the years, | ||
+ | I had about 20 boards controlled with these relays and it always worked | ||
+ | well. One such board can be seen at https://lwn.net/Articles/820571/. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ''Bill Mills'': If I only need a couple relays I use these: | ||
+ | https://a.co/d524vO1 (NOYITO 2-Channel Micro USB Relay Module USB Smart Control Switch USB Intelligent Control Switch) | ||
+ | |||
+ | * Available from Amazon with free one day shipping. $15 | ||
+ | * USB bus powered with a micro USB connector (I hate full sized B). | ||
+ | * Uses a simple serial port based protocol | ||
+ | * The FTDI GPIO or HID ones are a PITA IMHO | ||
+ | * Works with anything, Linux PC or a BBB or RPI etc. | ||
+ | |||
+ | === gpio relays === | ||
+ | ''Heiko Schocher'': If you already have a hw and only need a "gpio relay" ... I use for example: | ||
+ | |||
+ | https://www.amazon.de/dp/B07LB2RQYP/?coliid=I17MGE1UL4U7DA&colid=SY29AF3OT28X&psc=1&ref_=lv_ov_lig_dp_it | ||
+ | |||
+ | around 9 euros each or | ||
+ | |||
+ | https://www.amazon.de/AZDelivery-4-Relais-Optokoppler-Low-Level-Trigger-Arduino/dp/B078Q8S9S9/ref=sr_1_fkmrnull_3?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=AZDelivery%2B4-Relais%2BModul%2B5V%2Bmit%2BOptokoppler%2BLow-&qid=1556783223&s=computers&sr=1-3-fkmrnull&pldnSite=1&th=1 | ||
+ | |||
+ | Works fine for me to switch for example bootmode on imx6 based boards... | ||
+ | |||
+ | And may this is also interesting, if you need a cheap standalone solution | ||
+ | |||
+ | https://www.alibaba.com/product-detail/D1-Mini-NodeMCU-Lua-ESP8266-ESP_60747111728.html?spm=a2700.7724838.2017115.59.4ecc50bbbUP7eU | ||
+ | |||
+ | You will find similiar on amazon to ... you can run Tasmota on it | ||
+ | |||
+ | https://tasmota.github.io/docs/ | ||
+ | |||
+ | === custom electronics === | ||
+ | ''Geert Uytterhoeven'': There are two approaches to handling this: | ||
+ | |||
+ | 1. Automatically trigger a button press after power is applied. | ||
+ | I.e. you want to generate a delayed pulse of N ms that happens | ||
+ | M ns after the power comes up. I guess than can be implemented | ||
+ | with a 555 timer. This will require some (fun? ;-) elektronics | ||
+ | work, though. See [1] https://electronics.stackexchange.com/questions/245753/generating-a-delayed-pulse-with-one-555-timer-upon-powering-up-the-circuit | ||
+ | |||
+ | |||
+ | 2. Control the button remotely. | ||
+ | As several people, this can be handled through a relay, but IMHO | ||
+ | that's overkill. As you already have spare pis and bones, all you | ||
+ | need is a resistor (e.g. 220 or 270 Ohm) and an opto-coupler (e.g. | ||
+ | HCPL-181), to be driven from 3.3V GPIO. | ||
+ | |||
+ | Personally, I'd go for the second approach, as such a button is | ||
+ | typically also used for other purposes (power-off, suspend, wake-up), so | ||
+ | you probably want to have full control over it. | ||
== multi-function == | == multi-function == | ||
* [http://baylibre.com/acme/ BayLibre ACME cape] - power and temperature measurement with different probes (USB, Jack power cable, HE10) | * [http://baylibre.com/acme/ BayLibre ACME cape] - power and temperature measurement with different probes (USB, Jack power cable, HE10) | ||
+ | ** See https://gitlab.com/baylibre-acme/acme-hardware-docs for design docs | ||
* [[Sony_Debug_Assist_board]] - Open Hardware design by Sony for multi-function DUT controller (USB, serial, power, buttons) | * [[Sony_Debug_Assist_board]] - Open Hardware design by Sony for multi-function DUT controller (USB, serial, power, buttons) | ||
− | + | ** connection to host = USB serial | |
+ | ** elinux page about v2 of the board (how to use) is here: [[Sony_Debug_Assist_board]] | ||
+ | ** github page with source code, schematics, gerber files, etc. is at: https://github.com/sonyxperiadev/CDB-Assist | ||
+ | ** schematics here: https://github.com/sonyxperiadev/CDB-Assist/blob/master/Hardware/CDBAssist-v3.1-Schematics.pdf | ||
* [https://wiki.tizen.org/MuxPi MuxPi] by Tizen Open Hardware design by Samsung for multi-function DUT controller (serial, power, buttons, network?) | * [https://wiki.tizen.org/MuxPi MuxPi] by Tizen Open Hardware design by Samsung for multi-function DUT controller (serial, power, buttons, network?) | ||
− | + | ** connection to host = network | |
+ | * [https://3mdeb.com/rte/ Remote Testing Environment] - Open Hardware design by 3mdeb for multi-function DUT controller (power, programmer, serial) | ||
+ | ** connection to host = network | ||
+ | ** [https://github.com/3mdeb/rte-schematics github page] for RTE schematics (rev 1.0.0) | ||
+ | ** [https://github.com/3mdeb/meta-rte github page] with meta-rte layer based on Yocto Project | ||
+ | ** [https://github.com/3mdeb/RteCtrl github page] for RTE REST API controller (beta) | ||
+ | * [[BCU/2 board]] - Open Hardware design by Geert Uytterhoeven for multi-function DUT controller(serial, power, buttons, gpio, i2c, etc.) | ||
+ | ** uses a teensy board | ||
+ | ** It's a small board to control and monitor the operation of two development boards. | ||
+ | ** hardware files: https://github.com/geertu/pcb-bcu2 | ||
+ | ** software files: https://github.com/geertu/teensy3-bcu2 | ||
+ | ** connection to host = USB | ||
+ | * [https://www.timesys.com/open-source-embedded/board-farm/ IO-CX] by Timesys (Multi-function DUT control: SD-MUX, USB-MUX, GPIO, I2C) | ||
== USB mega-ports == | == USB mega-ports == | ||
A few people are using these: | A few people are using these: | ||
* [https://www.amazon.com/Manhattan-Port-USB-Hub-161718/dp/B0074024XU Manhattan Mondohub 28-port USB hub] | * [https://www.amazon.com/Manhattan-Port-USB-Hub-161718/dp/B0074024XU Manhattan Mondohub 28-port USB hub] | ||
+ | |||
+ | * [https://cambrionix.com/products/powerpad15s-industrial-strength-managed-hub/ PowerPad15S USB hub used by Lava] | ||
+ | |||
+ | == USB switchers == | ||
+ | * [https://lava.coreboot.org/static/docs/v1/lmp_test_guide.html LAVA-LMP USB] - allows switching USB connections to a DUT | ||
+ | * [https://www.extron.com/product/swusbseries Extron USB Switcher] | ||
+ | * [https://mcci.com/usb/dev-tools/2101-usb-connection-exerciser/ 2101 USB Connection Exerciser] | ||
+ | |||
+ | == gpio controllers == | ||
+ | |||
+ | == HDMI testing == | ||
+ | * [https://www.blackmagicdesign.com/products/decklink/techspecs/W-DLK-33 SDI/HDMI grabber] | ||
+ | |||
+ | == unsorted LAVA hardware helpers == | ||
+ | See https://lava.coreboot.org/static/docs/v1/lmp_test_guide.html | ||
+ | * | ||
+ | |||
+ | Possibly https://github.com/GlasgowEmbedded/glasgow to control various buses (via FPGA). | ||
= Software = | = Software = | ||
Line 111: | Line 257: | ||
* ttc : https://github.com/tbird20d/ttc - documentation at: [[Ttc_Program_Usage_Guide]] | * ttc : https://github.com/tbird20d/ttc - documentation at: [[Ttc_Program_Usage_Guide]] | ||
* tbot : https://github.com/hsdenx/tbot - http://www.tbot.tools/main.html | * tbot : https://github.com/hsdenx/tbot - http://www.tbot.tools/main.html | ||
+ | * SLAV stack : ??? (Pawel's thing - see [[Media:Piece_of_cake.pdf]] | ||
+ | |||
+ | = Services = | ||
+ | * TimeSys Board Farm Cloud: See https://www.timesys.com/pdf/Timesys-On-Premises-Board-Farm-Cloud.pdf | ||
+ | * [https://www.gooddevicelabs.co.uk/canaryqa/ Good Device Labs - CanaryQA] | ||
= Notes = | = Notes = |
Latest revision as of 13:36, 17 November 2022
Here is some information about board farms.
Contents
Community
At the Embedded Linux Conference Europe 2017 Andrew Murray held a BoF session titled Farming Together. The purpose of this BoF was to bring together people that are actively working on board farms to create a community, to knowledge share and to start a collaborative effort.
Add your name and contact information if you would like to be notified when an e-mail list is created, or are generally interested in this topic:
- Andrew Murray - <amurray (at) thegoodpenguin.co.uk> *
- Tim Bird - <tim.bird (at) sony.com> *
- Robert Schwebel <r.schwebel (at) pengutronix.de> *
- Arnout Vandecappelle - <arnout at mind dot be> -- doesn't have a board farm but is interested
- Mirza Krak - <mirza.krak (at) endian.se> *
- Alan Bennett - <alan (at) opensourcefoundries.com>
- Geert Uytterhoeven - <geert (at) linux-m68k.org> *
- Andrea Scian - <andrea.scian (at) dave.eu>
- Kieran Bingham - <kbingham (at) kernel.org> *
- Jan Lübbe - <j.luebbe (at) pengutronix.de> *
- Marco Cavallini - <m.cavallini (at) koansoftware.com>
- Kevin Hilman - <khilman (at) baylibre.com>
- Bill Mills - <wmills (at) ti.com>
- Tom Gall - <tom.gall (at) linaro.org>
- Stephano Cetola - <stephano.cetola (at) linux.intel.com>
- Mike Holmes - <mike.holmes (at) linaro.org>
- Matteo Vit - <matteo.vit (at) dev.starwaredesign.com>
- Attie Grande - <attie.grande (at) argentum-systems.co.uk>
- Roland Hieber <r <dot> hieber <at> pengutronix <dot> de>
- Tim Orling <ticotimo (at) gmail (dot) com>
- Ryan Arnold <ryan <dot> arnold <at> linaro <dot> org>
- Behan Webster <behanw (at) converseincode (dot) com> *
- Michal Simek <monstr (at) monstr (dot) eu>
- Krzysztof Kozlowski <krzk (at) kernel (dot) org>
- Jagan Teki <jagan (at) openedev (dot) com>
- Heiko Schocher <hs (at) denx (dot) de>
- Khiem Nguyen <khiem.nguyen.xt (at) renesas.com>
- Amit Kucheria <amit.kucheria (at) verdurent.com>
- Harish Bansal <harish.bansal (at) timesys.com>
- Chris Paterson <chris.paterson2 (at) renesas.com>
* = have seen this person on the e-mail list, or already subscribed.
Mailing list
Discussions on this topic have started at on the "Automated Testing" mailing list of the Yocto Project
- See https://lists.yoctoproject.org/g/automated-testing
- (was https://lists.yoctoproject.org/listinfo/automated-testing)
Next meeting
To be determined.
Maybe at Plumbers 2018, Connect, or ELCE 2018
Actions
- define API between test framework and DUT controller layer?
- pduclient?
- labgrid?
- ebfarm?
- ttypersist: provides an application a fake socket for misbehaving ttys
- ttc
- libvirt
- r4d
- survey of existing tools, hardware, practices
- create a definition for an "automated testing" stack - see Automated Testing Stack
- start with definitions from SLAV?
- identify different areas of test automation operation
Presentations
If you know of a presentation on this topic, please add it below:
- "Test Standards - Can Fuego, Lava and others agree?" by Tim Bird at Linaro Connect SFO 2017
- "Herd Your Boards, Become a Farmer" by Geert Uytterhoeven at ELCE2016
- "Automation beyond Testing and Embedded System Validation" by Jan Luebbe (Pengutronix) at ELCE2017
- Introduction to kernelCI.org
- Blog Article and Video
- Piece of cake - testing remote embedded devices made easy with MuxPi by Paweł Wieczorek at FOSDEM 2018
Best Practices
Issues/Requirements
Misc / Tools
- New horizontally scalable CI system built with Containers and container orchestration technologies in mind - https://github.com/OpenSourceFoundries/jobserv / http://connect.linaro.org/resource/sfo17/sfo17-217/
Hardware
SD muxers
- USB-SD-Mux by Pengutronix, now available
- SD-MUX by Tizen (deprecated - see MuxPi)
- MuxPi by Tizen (MuxPi is the successor to SD-MUX)
- IO-CX by Timesys
- https://hackaday.com/2022/08/08/automated-microsd-card-swapping-helps-in-embedded-shenanigans/
Kevin Hilman mentioned (at ELCE 2017) wifi SDCards as a way to handle the SD mux problem.
Was he referring to something like these? http://techpp.com/2015/04/28/wifi-sd-cards-camera/
power control
- usb board with switchable power
- ykush - 3 port USB power switcher - https://www.yepkit.com/products/ykush
- Web Power Switch by Digital Loggers
- control program by Tim Bird: File:Powerswitch-set.sh
- Energenie Power Management System (USB controlled 4-way power switch +2 always on) (UK)
- uhubctl USB hub per-port power control
- Ethernet controlled IEC320 PDU from Lindy
relays/buttons
- 8-Channel Opto-Isolator Board for Board Farm Control
- DIN Relay IV by Digital Loggers
- This uses the same control protocol as the Web Power Switch mentioned above
- KMTronic 8-channel IP relay controller
- Raspberry Pi relay board
- Relays over ethernet
Here is some information from a discussion in October 2022 about a simple relay used as part of board bootup process:
Shelly relays
Cliff Brake: I've used the Shelly relays to do simple automation projects here (cycle power to boards under test, etc): See https://shelly.cloud/
They are low cost, and are very open and have documented REST, MQTT, etc APIs, so I think it would be pretty easy to trigger one of these from a script using curl or something ...
https://shelly-api-docs.shelly.cloud/
USB relays
Andrew Murray: We often use USB relays (less than £10) - for example this one: https://www.amazon.co.uk/gp/product/B081JLWK9X - they're typically controlled via a very simple hidraw interface. Applications are available for controlling them (e.g. https://github.com/darrylb123/usbrelay)
However that particular brand appears to have been removed from Amazon - though I've noticed this one which looks like it would be suitable - https://www.amazon.co.uk/HALJIA-Module-Control-Intelligent-control/dp/B075F6J6WL/
These are all slightly overkill as these relays can switch mains voltage and currents, however they are cheap. It is possible to buy solid state relays for lower voltages, but I haven't found a cheap board with one on.
Slightly related, thepihut.com has a lot of useful boards - for example their "USB Switch and Multiplexer" - this appears to be sourced from 8086.net which also has lots of other goodies.
Michal Sojka: If you can use USB, I'd recommend cheap USB relays found on Ebay, e.g. https://www.ebay.com/itm/363777314013. I use https://github.com/darrylb123/usbrelay to control them. Over the years, I had about 20 boards controlled with these relays and it always worked well. One such board can be seen at https://lwn.net/Articles/820571/.
Bill Mills: If I only need a couple relays I use these: https://a.co/d524vO1 (NOYITO 2-Channel Micro USB Relay Module USB Smart Control Switch USB Intelligent Control Switch)
- Available from Amazon with free one day shipping. $15
- USB bus powered with a micro USB connector (I hate full sized B).
- Uses a simple serial port based protocol
* The FTDI GPIO or HID ones are a PITA IMHO
- Works with anything, Linux PC or a BBB or RPI etc.
gpio relays
Heiko Schocher: If you already have a hw and only need a "gpio relay" ... I use for example:
around 9 euros each or
Works fine for me to switch for example bootmode on imx6 based boards...
And may this is also interesting, if you need a cheap standalone solution
You will find similiar on amazon to ... you can run Tasmota on it
https://tasmota.github.io/docs/
custom electronics
Geert Uytterhoeven: There are two approaches to handling this:
1. Automatically trigger a button press after power is applied. I.e. you want to generate a delayed pulse of N ms that happens M ns after the power comes up. I guess than can be implemented with a 555 timer. This will require some (fun? ;-) elektronics work, though. See [1] https://electronics.stackexchange.com/questions/245753/generating-a-delayed-pulse-with-one-555-timer-upon-powering-up-the-circuit
2. Control the button remotely. As several people, this can be handled through a relay, but IMHO that's overkill. As you already have spare pis and bones, all you need is a resistor (e.g. 220 or 270 Ohm) and an opto-coupler (e.g. HCPL-181), to be driven from 3.3V GPIO.
Personally, I'd go for the second approach, as such a button is typically also used for other purposes (power-off, suspend, wake-up), so you probably want to have full control over it.
multi-function
- BayLibre ACME cape - power and temperature measurement with different probes (USB, Jack power cable, HE10)
- See https://gitlab.com/baylibre-acme/acme-hardware-docs for design docs
- Sony_Debug_Assist_board - Open Hardware design by Sony for multi-function DUT controller (USB, serial, power, buttons)
- connection to host = USB serial
- elinux page about v2 of the board (how to use) is here: Sony_Debug_Assist_board
- github page with source code, schematics, gerber files, etc. is at: https://github.com/sonyxperiadev/CDB-Assist
- schematics here: https://github.com/sonyxperiadev/CDB-Assist/blob/master/Hardware/CDBAssist-v3.1-Schematics.pdf
- MuxPi by Tizen Open Hardware design by Samsung for multi-function DUT controller (serial, power, buttons, network?)
- connection to host = network
- Remote Testing Environment - Open Hardware design by 3mdeb for multi-function DUT controller (power, programmer, serial)
- connection to host = network
- github page for RTE schematics (rev 1.0.0)
- github page with meta-rte layer based on Yocto Project
- github page for RTE REST API controller (beta)
- BCU/2 board - Open Hardware design by Geert Uytterhoeven for multi-function DUT controller(serial, power, buttons, gpio, i2c, etc.)
- uses a teensy board
- It's a small board to control and monitor the operation of two development boards.
- hardware files: https://github.com/geertu/pcb-bcu2
- software files: https://github.com/geertu/teensy3-bcu2
- connection to host = USB
- IO-CX by Timesys (Multi-function DUT control: SD-MUX, USB-MUX, GPIO, I2C)
USB mega-ports
A few people are using these:
USB switchers
- LAVA-LMP USB - allows switching USB connections to a DUT
- Extron USB Switcher
- 2101 USB Connection Exerciser
gpio controllers
HDMI testing
unsorted LAVA hardware helpers
See https://lava.coreboot.org/static/docs/v1/lmp_test_guide.html
Possibly https://github.com/GlasgowEmbedded/glasgow to control various buses (via FPGA).
Software
- Labgrid : http://labgrid.readthedocs.io - http://labgrid.org
- CI-RT : https://ci-rt.linutronix.de
- R4D : https://github.com/ci-rt/r4d - https://github.com/ci-rt/libr4d
- Libvirt : https://github.com/ci-rt/libvirt-debian
- Jenkins plugin : https://github.com/ci-rt/libvirt-slave-plugin
- ttc : https://github.com/tbird20d/ttc - documentation at: Ttc_Program_Usage_Guide
- tbot : https://github.com/hsdenx/tbot - http://www.tbot.tools/main.html
- SLAV stack : ??? (Pawel's thing - see Media:Piece_of_cake.pdf
Services
- TimeSys Board Farm Cloud: See https://www.timesys.com/pdf/Timesys-On-Premises-Board-Farm-Cloud.pdf
- Good Device Labs - CanaryQA
Notes
- spend money on USB serial adapter cables - cheap adapters sometimes drop connections and are a pain to debug
- FTDI cables seem to work well.
Farm Survey
Tim Bird is conducting a survey of Farm hardware (DUT controllers). See this page: Board Farm Survey