Difference between revisions of "DIGIO32-I2C"
Jump to navigation
Jump to search
Blwikiadmin (talk | contribs) (→Cards) |
Blwikiadmin (talk | contribs) |
||
(44 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
* 32-bit Digital I/O | * 32-bit Digital I/O | ||
− | ** | + | ** (2) [https://ww1.microchip.com/downloads/aemDocuments/documents/APID/ProductDocuments/DataSheets/MCP23017-Data-Sheet-DS20001952.pdf MCP23017 Datasheet] - Rev D |
+ | ** [https://hackaday.com/2023/02/03/mcp23017-went-through-shortage-hell-lost-two-inputs/?fbclid=IwAR1ktG1CsU7ns5fmTYXdlpBLdqaJmBioXrVrG1_Lgqe8MTQr1AY4rp6IETU MCP23017... LOST TWO INPUTS] | ||
+ | *** MCP23017 now a 14/16-bit expander, with two of the pins (GPA7 and GPB7) losing their input capabilities | ||
+ | *** The chips look the same, are called the same, and act mostly the same — if you don’t download the latest version of the datasheet (Revision D), you’d never know that there’s been a change | ||
* [https://www.mouser.com/ProductDetail/579-24LC024-P 24LC024] [[Open_Data_Acquisition_System#Personality_EEPROM|ODAS Personality EEPROM]] | * [https://www.mouser.com/ProductDetail/579-24LC024-P 24LC024] [[Open_Data_Acquisition_System#Personality_EEPROM|ODAS Personality EEPROM]] | ||
** pid = 6 | ** pid = 6 | ||
Line 26: | Line 29: | ||
== Connectors == | == Connectors == | ||
− | === DB-37 Female Pinout === | + | [[file:DIGIO32-I2C-X2-bw.PNG]] |
+ | |||
+ | === J1 - Power === | ||
+ | |||
+ | * Optional use since card can be powered from I2C Daisy-chain connector pins | ||
+ | * Pinout | ||
+ | |||
+ | # GND | ||
+ | # Vcc | ||
+ | # GND | ||
+ | # Vcc | ||
+ | # GND | ||
+ | |||
+ | === J2 - Daisy-Chained I2C === | ||
+ | |||
+ | * 2x4 header | ||
+ | * Duplicated signals on each pair | ||
+ | |||
+ | # SCL | ||
+ | # SDA | ||
+ | # Vcc | ||
+ | # GND | ||
+ | |||
+ | === J3 - Address Offset Jumpers === | ||
+ | |||
+ | * Set the address offset for the MCP23017 and EEPROM | ||
+ | * MCP23017 base addresses are 0x20-0x21 | ||
+ | * Card can be set to | ||
+ | ** 0x20-0x21 | ||
+ | ** 0x22-0x23 | ||
+ | ** 0x24-0x25 | ||
+ | ** 0x26-0x27 | ||
+ | * Jumpers orientation | ||
+ | |||
+ | [[file:DIGIO32_ADDR_J3.PNG]] | ||
+ | |||
+ | === J4 - Interrupt Out, Card Present === | ||
+ | |||
+ | * Pinout | ||
+ | |||
+ | # GND | ||
+ | # INT1* | ||
+ | # INT0* | ||
+ | # Card Present* | ||
+ | |||
+ | * Interrupt lines are pulled-up | ||
+ | |||
+ | === J5 - EEPROM Write Enable === | ||
+ | |||
+ | * Install to allow writes to EEPROM | ||
+ | * Remove to disallow writes to EEPROM | ||
+ | |||
+ | === J6 - I2C Terminators === | ||
+ | |||
+ | * Install to terminate I2C lines | ||
+ | * Terminators should only be installed at one point in the chain at the end of the chain | ||
+ | * Orientation of jumpers | ||
+ | |||
+ | [[file:DIGIO32_I2CTERMS_J6.PNG]] | ||
+ | |||
+ | === P1 - DB-37 Female Pinout === | ||
[[File:DB37Pinout.PNG]] | [[File:DB37Pinout.PNG]] | ||
+ | |||
+ | ==== P1 - DB-37 Female Pin List ==== | ||
+ | |||
+ | * Useful list for mapping pins to applications | ||
+ | * Can copy-paste this table to spreadsheet | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! DB37Pin | ||
+ | ! Descr | ||
+ | ! | ||
+ | ! DB37Pin | ||
+ | ! Descr | ||
+ | |- | ||
+ | | 1 | ||
+ | | GND | ||
+ | | | ||
+ | | 20 | ||
+ | | GND | ||
+ | |- | ||
+ | | 2 | ||
+ | | C1PB7 | ||
+ | | | ||
+ | | 21 | ||
+ | | C1PA0 | ||
+ | |- | ||
+ | | 3 | ||
+ | | C1PB6 | ||
+ | | | ||
+ | | 22 | ||
+ | | C1PA1 | ||
+ | |- | ||
+ | | 4 | ||
+ | | C1PB5 | ||
+ | | | ||
+ | | 23 | ||
+ | | C1PA2 | ||
+ | |- | ||
+ | | 5 | ||
+ | | C1PB4 | ||
+ | | | ||
+ | | 24 | ||
+ | | C1PA3 | ||
+ | |- | ||
+ | | 6 | ||
+ | | C1PB3 | ||
+ | | | ||
+ | | 25 | ||
+ | | C1PA4 | ||
+ | |- | ||
+ | | 7 | ||
+ | | C1PB2 | ||
+ | | | ||
+ | | 26 | ||
+ | | C1PA5 | ||
+ | |- | ||
+ | | 8 | ||
+ | | C1PB1 | ||
+ | | | ||
+ | | 27 | ||
+ | | C1PA6 | ||
+ | |- | ||
+ | | 9 | ||
+ | | C1PB0 | ||
+ | | | ||
+ | | 28 | ||
+ | | C1PA7 | ||
+ | |- | ||
+ | | 10 | ||
+ | | N/C | ||
+ | | | ||
+ | | 29 | ||
+ | | C0PB7 | ||
+ | |- | ||
+ | | 11 | ||
+ | | C0PA0 | ||
+ | | | ||
+ | | 30 | ||
+ | | C0PB6 | ||
+ | |- | ||
+ | | 12 | ||
+ | | C0PA1 | ||
+ | | | ||
+ | | 31 | ||
+ | | C0PB5 | ||
+ | |- | ||
+ | | 13 | ||
+ | | C0PA2 | ||
+ | | | ||
+ | | 32 | ||
+ | | C0PB4 | ||
+ | |- | ||
+ | | 14 | ||
+ | | C0PA3 | ||
+ | | | ||
+ | | 33 | ||
+ | | C0PB3 | ||
+ | |- | ||
+ | | 15 | ||
+ | | C0PA4 | ||
+ | | | ||
+ | | 34 | ||
+ | | C0PB2 | ||
+ | |- | ||
+ | | 16 | ||
+ | | C0PA5 | ||
+ | | | ||
+ | | 35 | ||
+ | | C0PB1 | ||
+ | |- | ||
+ | | 17 | ||
+ | | C0PA6 | ||
+ | | | ||
+ | | 36 | ||
+ | | C0PB0 | ||
+ | |- | ||
+ | | 18 | ||
+ | | C0PA7 | ||
+ | | | ||
+ | | 37 | ||
+ | | F+5V | ||
+ | |- | ||
+ | | 19 | ||
+ | | F+5V | ||
+ | | | ||
+ | | | ||
+ | | | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ==== P1 - DB-37 to DB37RIBBON Pin list ==== | ||
+ | |||
+ | * The card canbe used with a [[DB37RIBBON]] RB-38 to ribbon adapter card | ||
+ | * This is the map of the pinout when used with the [[DB37RIBBON]] card | ||
+ | ** The [[DB37RIBBON]] adapter has a male connector when used with this card | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! DB37 Pin | ||
+ | ! Descr | ||
+ | ! Conn_40 | ||
+ | ! | ||
+ | ! DB37 Pin | ||
+ | ! Descr | ||
+ | ! Conn_40 | ||
+ | |- | ||
+ | | 1 | ||
+ | | GND | ||
+ | | 1 | ||
+ | | | ||
+ | | 20 | ||
+ | | GND | ||
+ | | 2 | ||
+ | |- | ||
+ | | 2 | ||
+ | | C1PB7 | ||
+ | | 3 | ||
+ | | | ||
+ | | 21 | ||
+ | | C1PA0 | ||
+ | | 4 | ||
+ | |- | ||
+ | | 3 | ||
+ | | C1PB6 | ||
+ | | 5 | ||
+ | | | ||
+ | | 22 | ||
+ | | C1PA1 | ||
+ | | 6 | ||
+ | |- | ||
+ | | 4 | ||
+ | | C1PB5 | ||
+ | | 7 | ||
+ | | | ||
+ | | 23 | ||
+ | | C1PA2 | ||
+ | | 8 | ||
+ | |- | ||
+ | | 5 | ||
+ | | C1PB4 | ||
+ | | 9 | ||
+ | | | ||
+ | | 24 | ||
+ | | C1PA3 | ||
+ | | 10 | ||
+ | |- | ||
+ | | 6 | ||
+ | | C1PB3 | ||
+ | | 11 | ||
+ | | | ||
+ | | 25 | ||
+ | | C1PA4 | ||
+ | | 12 | ||
+ | |- | ||
+ | | 7 | ||
+ | | C1PB2 | ||
+ | | 13 | ||
+ | | | ||
+ | | 26 | ||
+ | | C1PA5 | ||
+ | | 14 | ||
+ | |- | ||
+ | | 8 | ||
+ | | C1PB1 | ||
+ | | 15 | ||
+ | | | ||
+ | | 27 | ||
+ | | C1PA6 | ||
+ | | 16 | ||
+ | |- | ||
+ | | 9 | ||
+ | | C1PB0 | ||
+ | | 17 | ||
+ | | | ||
+ | | 28 | ||
+ | | C1PA7 | ||
+ | | 18 | ||
+ | |- | ||
+ | | 10 | ||
+ | | N/C | ||
+ | | 19 | ||
+ | | | ||
+ | | 29 | ||
+ | | C0PB7 | ||
+ | | 20 | ||
+ | |- | ||
+ | | 11 | ||
+ | | C0PA0 | ||
+ | | 21 | ||
+ | | | ||
+ | | 30 | ||
+ | | C0PB6 | ||
+ | | 22 | ||
+ | |- | ||
+ | | 12 | ||
+ | | C0PA1 | ||
+ | | 23 | ||
+ | | | ||
+ | | 31 | ||
+ | | C0PB5 | ||
+ | | 24 | ||
+ | |- | ||
+ | | 13 | ||
+ | | C0PA2 | ||
+ | | 25 | ||
+ | | | ||
+ | | 32 | ||
+ | | C0PB4 | ||
+ | | 26 | ||
+ | |- | ||
+ | | 14 | ||
+ | | C0PA3 | ||
+ | | 27 | ||
+ | | | ||
+ | | 33 | ||
+ | | C0PB3 | ||
+ | | 28 | ||
+ | |- | ||
+ | | 15 | ||
+ | | C0PA4 | ||
+ | | 29 | ||
+ | | | ||
+ | | 34 | ||
+ | | C0PB2 | ||
+ | | 30 | ||
+ | |- | ||
+ | | 16 | ||
+ | | C0PA5 | ||
+ | | 31 | ||
+ | | | ||
+ | | 35 | ||
+ | | C0PB1 | ||
+ | | 32 | ||
+ | |- | ||
+ | | 17 | ||
+ | | C0PA6 | ||
+ | | 33 | ||
+ | | | ||
+ | | 36 | ||
+ | | C0PB0 | ||
+ | | 34 | ||
+ | |- | ||
+ | | 18 | ||
+ | | C0PA7 | ||
+ | | 35 | ||
+ | | | ||
+ | | 37 | ||
+ | | F+5V | ||
+ | | 36 | ||
+ | |- | ||
+ | | 19 | ||
+ | | F+5V | ||
+ | | 37 | ||
+ | | | ||
+ | | N/C | ||
+ | | N/C | ||
+ | | 38 | ||
+ | |- | ||
+ | | N/C | ||
+ | | N/C | ||
+ | | 39 | ||
+ | | | ||
+ | | N/C | ||
+ | | N/C | ||
+ | | 40 | ||
+ | |- | ||
+ | |} | ||
== Schematic == | == Schematic == | ||
Line 36: | Line 404: | ||
== Testing == | == Testing == | ||
+ | * Program Personality EEPROM | ||
* There are two card tests | * There are two card tests | ||
** Bounce LED test | ** Bounce LED test | ||
Line 42: | Line 411: | ||
** Card to card test | ** Card to card test | ||
*** More flexible/faster test | *** More flexible/faster test | ||
− | *** Tests both inputs/outputs from | + | *** Tests both inputs/outputs to/from the card |
− | === | + | === Setup === |
* [[PiPicoMite02 Based Test Station]] | * [[PiPicoMite02 Based Test Station]] | ||
− | ** [[PiPicoMite02] Processor card | + | ** [[PiPicoMite02]] Processor card |
** [[LED-32]] | ** [[LED-32]] | ||
* [[DB37RIBBON]] plugged into UUT | * [[DB37RIBBON]] plugged into UUT | ||
Line 60: | Line 429: | ||
=== Card Test Procedure === | === Card Test Procedure === | ||
− | * | + | * Power up Test Station/UUT |
− | |||
− | |||
− | |||
− | |||
==== Program EEPROM ==== | ==== Program EEPROM ==== | ||
− | * | + | * Some UUTs have Personality EEPROMs |
− | * | + | * Runs [https://github.com/land-boards/RasPiPico/blob/main/PicoMite_MMBASIC/PicoMite_VGA/Land%20Boards%20BASIC%20Programs/lbcards/ODAS_EEPROM/ODASEEPROM.bas ODASEEPROM.bas] code |
− | + | ||
− | + | <pre> | |
− | + | chdir "/lbcards/ODAS_EEPROM" | |
+ | load "ODASEEPROM.bas" | ||
+ | run | ||
+ | |||
+ | </pre> | ||
+ | |||
+ | * If the UUT EEPROM is already programmed, the result is: | ||
+ | |||
+ | <pre> | ||
+ | Found device at 0x50 | ||
+ | Personality EEPROM contents | ||
+ | Signature = ODAS | ||
+ | Version = 1 | ||
+ | Rsvd = 0 | ||
+ | NumAtoms = 2 | ||
+ | eeplen = 96 | ||
+ | uuid = 0000000000000000 | ||
+ | Product ID = 6 (DIGIO32-I2C) | ||
+ | vslen = 32 | ||
+ | pslen = 32 | ||
+ | Vendor String = LAND-BOARDS.COM | ||
+ | Product String = DIGIO32-I2C | ||
+ | Re-write (Y/N)? | ||
+ | </pre> | ||
==== Bounce LED Test ==== | ==== Bounce LED Test ==== | ||
Line 78: | Line 466: | ||
[[FILE:DIGIO32-I2C_P1994_720px.jpg]] | [[FILE:DIGIO32-I2C_P1994_720px.jpg]] | ||
− | + | (Shown with [[BLACK-PILL-HUB]] based card test station) | |
− | * | + | |
+ | * Cable DB-37 to [[LED-32]] card | ||
+ | * Runs [https://github.com/land-boards/RasPiPico/blob/main/PicoMite_MMBASIC/PicoMite_VGA/Land%20Boards%20BASIC%20Programs/lbcards/GPIO32/DIGIO32I2C-01.bas DIGIO32I2C-01.bas] code | ||
+ | * Type | ||
+ | |||
+ | <pre> | ||
+ | chdir "/lbcards/GPIO32" | ||
+ | load "DIGIO32I2C-01.bas" | ||
+ | run | ||
+ | </pre> | ||
+ | |||
* Should see the LEDs go around the [[LED-32]] card | * Should see the LEDs go around the [[LED-32]] card | ||
* Hit any key to stop (after finishing rotation) | * Hit any key to stop (after finishing rotation) | ||
Line 87: | Line 485: | ||
[[FILE:DIGIO32-I2C_P1999_720px.jpg]] | [[FILE:DIGIO32-I2C_P1999_720px.jpg]] | ||
− | * | + | (Shown with [[BLACK-PILL-HUB]] based card test station) |
− | * (2) [[DB37RIBBON]] cards | + | |
− | * Cables to connect two [[DB37RIBBON]] cards | + | * Alternate to Bounce LED test |
− | * Type | + | * Runs [https://github.com/land-boards/RasPiPico/blob/main/PicoMite_MMBASIC/PicoMite_VGA/Land%20Boards%20BASIC%20Programs/lbcards/GPIO32/DIGIO32I2C-02.bas DIGIO32I2C-02.bas] code |
− | + | * (2) [[DB37RIBBON]] cards with male connectors | |
− | + | * Cables to connect the two [[DB37RIBBON]] cards | |
− | + | * Type | |
− | |||
− | |||
<pre> | <pre> | ||
− | + | chdir "/lbcards/GPIO32" | |
− | + | load "DIGIO32I2C-02.bas" | |
− | + | run | |
− | + | ||
− | |||
− | |||
− | |||
</pre> | </pre> | ||
+ | |||
+ | * Program will halt if failure | ||
+ | * Prints out a pass count | ||
+ | * Hit any key to stop | ||
== Drivers == | == Drivers == |
Latest revision as of 16:43, 8 August 2023
Features
- 32-bit Digital I/O
- (2) MCP23017 Datasheet - Rev D
- MCP23017... LOST TWO INPUTS
- MCP23017 now a 14/16-bit expander, with two of the pins (GPA7 and GPB7) losing their input capabilities
- The chips look the same, are called the same, and act mostly the same — if you don’t download the latest version of the datasheet (Revision D), you’d never know that there’s been a change
- 24LC024 ODAS Personality EEPROM
- pid = 6
- Write Enable jumper protects EEPROM against accidental damage
- I/O Connector is inexpensive/standard DB-37 Female
- I2C Interface
- Daisy-chain I2C connector
- I2C Termination jumpers for end of I2C chain
- I2C Address select jumper (2 addresses - can support up to 4 cards)
- Power Options
- Supports 3.3V or 5V signal levels
- Fuse protected power output on DB-37
- Power connector (not required for minimal loads
- ODAS form factor (width is 95 mm)
- 6-32 Mounting holes
Connectors
J1 - Power
- Optional use since card can be powered from I2C Daisy-chain connector pins
- Pinout
- GND
- Vcc
- GND
- Vcc
- GND
J2 - Daisy-Chained I2C
- 2x4 header
- Duplicated signals on each pair
- SCL
- SDA
- Vcc
- GND
J3 - Address Offset Jumpers
- Set the address offset for the MCP23017 and EEPROM
- MCP23017 base addresses are 0x20-0x21
- Card can be set to
- 0x20-0x21
- 0x22-0x23
- 0x24-0x25
- 0x26-0x27
- Jumpers orientation
J4 - Interrupt Out, Card Present
- Pinout
- GND
- INT1*
- INT0*
- Card Present*
- Interrupt lines are pulled-up
J5 - EEPROM Write Enable
- Install to allow writes to EEPROM
- Remove to disallow writes to EEPROM
J6 - I2C Terminators
- Install to terminate I2C lines
- Terminators should only be installed at one point in the chain at the end of the chain
- Orientation of jumpers
P1 - DB-37 Female Pinout
P1 - DB-37 Female Pin List
- Useful list for mapping pins to applications
- Can copy-paste this table to spreadsheet
DB37Pin | Descr | DB37Pin | Descr | |
---|---|---|---|---|
1 | GND | 20 | GND | |
2 | C1PB7 | 21 | C1PA0 | |
3 | C1PB6 | 22 | C1PA1 | |
4 | C1PB5 | 23 | C1PA2 | |
5 | C1PB4 | 24 | C1PA3 | |
6 | C1PB3 | 25 | C1PA4 | |
7 | C1PB2 | 26 | C1PA5 | |
8 | C1PB1 | 27 | C1PA6 | |
9 | C1PB0 | 28 | C1PA7 | |
10 | N/C | 29 | C0PB7 | |
11 | C0PA0 | 30 | C0PB6 | |
12 | C0PA1 | 31 | C0PB5 | |
13 | C0PA2 | 32 | C0PB4 | |
14 | C0PA3 | 33 | C0PB3 | |
15 | C0PA4 | 34 | C0PB2 | |
16 | C0PA5 | 35 | C0PB1 | |
17 | C0PA6 | 36 | C0PB0 | |
18 | C0PA7 | 37 | F+5V | |
19 | F+5V |
P1 - DB-37 to DB37RIBBON Pin list
- The card canbe used with a DB37RIBBON RB-38 to ribbon adapter card
- This is the map of the pinout when used with the DB37RIBBON card
- The DB37RIBBON adapter has a male connector when used with this card
DB37 Pin | Descr | Conn_40 | DB37 Pin | Descr | Conn_40 | |
---|---|---|---|---|---|---|
1 | GND | 1 | 20 | GND | 2 | |
2 | C1PB7 | 3 | 21 | C1PA0 | 4 | |
3 | C1PB6 | 5 | 22 | C1PA1 | 6 | |
4 | C1PB5 | 7 | 23 | C1PA2 | 8 | |
5 | C1PB4 | 9 | 24 | C1PA3 | 10 | |
6 | C1PB3 | 11 | 25 | C1PA4 | 12 | |
7 | C1PB2 | 13 | 26 | C1PA5 | 14 | |
8 | C1PB1 | 15 | 27 | C1PA6 | 16 | |
9 | C1PB0 | 17 | 28 | C1PA7 | 18 | |
10 | N/C | 19 | 29 | C0PB7 | 20 | |
11 | C0PA0 | 21 | 30 | C0PB6 | 22 | |
12 | C0PA1 | 23 | 31 | C0PB5 | 24 | |
13 | C0PA2 | 25 | 32 | C0PB4 | 26 | |
14 | C0PA3 | 27 | 33 | C0PB3 | 28 | |
15 | C0PA4 | 29 | 34 | C0PB2 | 30 | |
16 | C0PA5 | 31 | 35 | C0PB1 | 32 | |
17 | C0PA6 | 33 | 36 | C0PB0 | 34 | |
18 | C0PA7 | 35 | 37 | F+5V | 36 | |
19 | F+5V | 37 | N/C | N/C | 38 | |
N/C | N/C | 39 | N/C | N/C | 40 |
Schematic
Testing
- Program Personality EEPROM
- There are two card tests
- Bounce LED test
- Good for visual verification/debugging
- Only tests outputs from UUT
- Card to card test
- More flexible/faster test
- Tests both inputs/outputs to/from the card
- Bounce LED test
Setup
- PiPicoMite02 Based Test Station
- PiPicoMite02 Processor card
- LED-32
- DB37RIBBON plugged into UUT
- (2) of 2x10 cables to connect between DB37RIBBON and LED-32
- DB37-1 marked on cable end goes near P1 marked on DB37RIBBON
- LED32-1 marked on cable end goes near HDR1 marked on LED-32
- I2C cable from Arduino Based Test Station to I2C connector on UUT
- Unit Under Test (UUT)
- Check chip pin 1 orientation
- Power test card for shorts
Card Test Procedure
- Power up Test Station/UUT
Program EEPROM
- Some UUTs have Personality EEPROMs
- Runs ODASEEPROM.bas code
chdir "/lbcards/ODAS_EEPROM" load "ODASEEPROM.bas" run
- If the UUT EEPROM is already programmed, the result is:
Found device at 0x50 Personality EEPROM contents Signature = ODAS Version = 1 Rsvd = 0 NumAtoms = 2 eeplen = 96 uuid = 0000000000000000 Product ID = 6 (DIGIO32-I2C) vslen = 32 pslen = 32 Vendor String = LAND-BOARDS.COM Product String = DIGIO32-I2C Re-write (Y/N)?
Bounce LED Test
(Shown with BLACK-PILL-HUB based card test station)
- Cable DB-37 to LED-32 card
- Runs DIGIO32I2C-01.bas code
- Type
chdir "/lbcards/GPIO32" load "DIGIO32I2C-01.bas" run
- Should see the LEDs go around the LED-32 card
- Hit any key to stop (after finishing rotation)
Card-to-Card Test
(Shown with BLACK-PILL-HUB based card test station)
- Alternate to Bounce LED test
- Runs DIGIO32I2C-02.bas code
- (2) DB37RIBBON cards with male connectors
- Cables to connect the two DB37RIBBON cards
- Type
chdir "/lbcards/GPIO32" load "DIGIO32I2C-02.bas" run
- Program will halt if failure
- Prints out a pass count
- Hit any key to stop
Drivers
- GitHub repo for the DigIO32-I2C Card Arduino Driver
- GitHub repo for the DigIO32-I2C Card Arduino examples