Difference between revisions of "Board Farm"

From eLinux.org
Jump to: navigation, search
(multi-function)
(SD muxers)
 
(7 intermediate revisions by 3 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) witekio.com> *
+
* 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 34: Line 34:
 
* Khiem Nguyen <khiem.nguyen.xt (at) renesas.com>
 
* Khiem Nguyen <khiem.nguyen.xt (at) renesas.com>
 
* Amit Kucheria <amit.kucheria (at) verdurent.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 90: Line 92:
 
* [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://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.
Line 101: Line 105:
 
* [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://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 109: Line 114:
 
* [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]
 
* [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
 
** connection to host = USB serial

Latest revision as of 12:36, 17 November 2022

Here is some information about board farms.

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

Next meeting

To be determined.

Maybe at Plumbers 2018, Connect, or ELCE 2018

See Automated Testing Summit

Actions

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
    • description: Tim proposes several areas of standardization collaboration between different Linux test initiatives
    • Slides and Video
  • "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
  • Piece of cake - testing remote embedded devices made easy with MuxPi by Paweł Wieczorek at FOSDEM 2018

Best Practices

Issues/Requirements

Misc / Tools

Hardware

SD muxers


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

relays/buttons

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

USB mega-ports

A few people are using these:

USB switchers

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

Services

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