Relay Board 32x5A
Changes from previous version
This is initial version - previous versions was only for testing purposes.
Main improvements:
- switched to i2c communication
- added temp sensor
- added degson connectors
Top

Bottom

Specification
- 32 x 5A Relays (HF46F)
- Common terminal for every 2 relays
- Temp Sensor (MCP9808 or LM75)
- i2c Interface (MCP23017)
Bill of Materials

| Id | Symbol | Package | Quantity | Add. Info |
|---|---|---|---|---|
| 1 | R14, R15, R10, R2, R6, R9 | R_0603_1608Metric | 6 | 4.7k |
| 2 | JP10, JP9, JP8, JP6, JP5, JP4, JP3, JP2, JP1 | SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mm | 9 | NO_Small |
| 3 | R4, R3, R1, R13, R12, R11, R8, R7, R5 | R_0603_1608Metric | 9 | 10k |
| 4 | K12, K11, K32, K31, K30, K29, K28, K27, K26, K25, K24, K23, K22, K21, K20, K19, K18, K17, K16, K15, K14, K13, K10, K9, K8, K7, K6, K5, K4, K3, K2, K1 | HF46F | 32 | HF46F |
| 5 | U8 | MSOP-8_3x3mm_P0.65mm | 1 | MCP9808_MSOP |
| 6 | U7 | SO-8_3.9x4.9mm_P1.27mm | 1 | LM75_SO-8 |
| 7 | J1, J2, J3, J4, J5, J6, J7, J8, J9, J10, J11, J13, J14, J15, J16, J17 | PhoenixContact_GMSTBA_2, 5_3-G_1x03_P7.50mm_Horizontal | 16 | Screw_Terminal_01x03 |
| 8 | C7 | C_0603_1608Metric | 1 | 100n |
| 9 | J12 | PinHeader_2x04_P2.54mm_Vertical | 1 | Conn_02x04_Odd_Even |
| 10 | U1, U4 | SSOP-28_5.3x10.2mm_P0.65mm | 2 | MCP23017_SS |
| 11 | U3, U2, U5, U6 | SOIC-18W_7.5x11.6mm_P1.27mm | 4 | ULN2803A |
| 12 | C1, C2, C3, C4, C5, C6 | C_0603_1608Metric | 6 | 100nF |
| 13 | JP7 | SolderJumper-3_P1.3mm_Bridged12_RoundedPad1.0x1.5mm | 1 | SolderJumper_3_Open |
Repository
Everything about this board you will find here: https://github.com/boneIO-eu/relay_board_32x5A
I2C Configuration
How to find config pins?
On every output board you will find some pins to configure I2C addresses of two MCP23017 expanders and one temperature sensor. In v0.2 it was placed on the top layer of the board, but from v0.3 you will find it on the back side.

To configure address of either mcp or temp sensor you have to solder pads in proper order.
MCP23017 Configuration
| Chip Address | A2 | A1 | A0 | I2C Address |
|---|---|---|---|---|
| 000 | 0x20 | |||
| 001 | Soldered | 0x21 | ||
| 010 | Soldered | 0x22 | ||
| 011 | Soldered | Soldered | 0x23 | |
| 100 | Soldered | 0x24 | ||
| 101 | Soldered | Soldered | 0x25 | |
| 110 | Soldered | Soldered | 0x26 | |
| 111 | Soldered | Soldered | Soldered | 0x27 |
Temp Sensor Configuration
| Chip Address | A2 | A1 | A0 | I2C Address | Alternative I2C Address |
|---|---|---|---|---|---|
| 000 | 0x18 | 0x48 | |||
| 001 | Soldered | 0x19 | 0x49 | ||
| 010 | Soldered | 0x1A | 0x4A | ||
| 011 | Soldered | Soldered | 0x1B | 0x4B | |
| 100 | Soldered | 0x1C | 0x4C | ||
| 101 | Soldered | Soldered | 0x1D | 0x4D | |
| 110 | Soldered | Soldered | 0x1E | 0x4E | |
| 111 | Soldered | Soldered | Soldered | 0x1F | 0x4F |
Checking if it works
To check if your configuration works properly you have to use i2cdetect tool
i2cdetect -r -y 2
The output ow this command will be like this:
debian@beaglebone:~$ i2cdetect -y -r 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: 20 21 -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --