0x05: Arduino Nano GPIO board


The popular technology platform Arduino implies the possible use of numerous dedicated add-on modules, so-called shields, that enable the user to perform specific tasks, like for instance amplifying the weak signal from an electro-chemical electrode (e.g. pH, conductivity, redox), control power-loads via solid-state or conventional relays, or interfacing to some specialised communication standard (e.g. CAN, LIN or Ethernet). The number of shields needed to perform even modest proces monitoring & control operations can therefore easily escalate. Hence, this design was born out of necessity and the desire to consolidate basic PLC operations onto a single add-on module: power relays for controlling external equipment rated at 230 VAC and 10 A, buffered digital outputs capable of driving/excitating sensor equipment, a flexible analogue-to-digital converter with arbitrary scaling of the input, and precision voltage references.

This design can easily form the basis for a qualified mini-PLC for home automation applications. See my brief description of the home automation project I am currently working on.

In the context of teaching natural sciences, this design allows you to interface, monitor, and manipulate a plethora of physical phenonema.


This PCB allows an Arduino Nano to interface with the real World. All eight analogue inputs are broken out. Input voltages can be scaled with fixed and variable voltage dividers for optimal flexibility. Precision voltage references are included. Likewise, eight of the digital pins are broken out. They can be configured as either un-isolated inputs, normal outputs or buffered outputs (buffered by an ULN2803LW Darlington transistor array with back-EMF protection diodes in the output stage making it suitable for driving inductive loads). The ULN2803LW can sink up to 500 mA per channel. Four of the digital outputs furthermore connect to relays, via the Darlington array, for pulling high-power loads, for instance directly from the mains supply. A robust and efficient switchmode power supply based on the LM2596s-5.0 regulator adds to flexibility, when choosing external transformer or other source of power. A Grätz bridge eliminates the possibility of destroying the power supply, when accidentially switching polarity on the input lines. Use of the Arduino Nano form factor further allows an Ethernet module with the ENC28J60 controller to be plugged in effectively turning the entire board into an IoT-enabled device with a sparce onboard webserver embedded in the ATmega328 MCU. Extra memory, for instance an SD memory card or an EEPROM using the I2C protocol, can be added by connecting to the communication terminals. In the same way, an I2C display module can easily be added.

License terms
The 0x05 design is published under the Creative Commons Unported 3.0 License.  I do not profit from this design, neither should you. You are welcome to adapt, modify, and redistribute this design as long as the license terms are respected.

Physical size of PCB

100 mm (length) by 100 mm (width). Double-sided.

Rendering and photos

0x05rev3_PCB_front_DipTrace_rendering_wo_componentsDipTrace 3D rendering without connectors, PCB front side (rev. 3)

0x05rev3_PCB_back_DipTrace_rendering_wo_componentsDipTrace 3D rendering without connectors, PCB back side (rev. 3)

0x05rev3_PCB_front_DipTrace_rendering_w_componentsDipTrace 3D rendering with components, PCB front side (rev. 3)

0x05rev3_PCB_front_DipTrace_rendering_w_components_tiltedDipTrace 3D rendering with components, PCB front side (rev. 3), tilted

0x05rev1_pcb_frontPhoto of the PCB front (rev. 1)

0x05rev1_comp_mountPhoto of the PCB, components mounted (rev. 1)

0x05rev1_Nano_mountPhoto of the PCB, Arduino Nano and ENC28J60 Ethernet shield mounted (rev. 1)

DSC00765Photo of the PCB mounted in a rugged Sarel case suitable for challenging environments. Schuko outlets with individual fuses connected to each of the four relays. SPST switch on the righthand side disconnects mains supply to the relays.

DSC00597Photo of a unit, where the PCB is mounted in a desktop-friendly case suitable for development purposes. Analogue inputs available on the upper row of cinch connectors; digital pins available on the lower row. LEDs show state of digital pins and SPDT switches either select buffering of digital outputs or allow normal bidirectional DIO operation.

DSC00605Photo of a unit, where the PCB is mounted in a desktop case. Note the twelve 2.1 mm DC outlets for sensor excitation on the righthand side. LEDs not fitted yet. SPDT switches and cinch connectors omitted for the four digital pins connected to relays.


Bill of materials (rev. 3)

miscellaneous components, headers etc.

20 pcs. jumper, 2.54 mm (0.1″)

1 pcs. 2×3 male header, 2.54 mm (0.1″), ADC reference voltage jumper selector

1 pcs. 1×3 male header, 2.54 mm (0.1″), ADC reference voltage header

5 pcs. 1×2 male header, 2.54 mm (0.1″), enabling relays and reset external button

1 pcs. 4×2 male header, 2.54 mm (0.1″), 4x VCC/GND power outlet for external use

2 pcs. 1×8 male header, 2.54 mm (0.1″), breakout of analogue inputs (A0-A7) and digital pins (D2-D9)

2 pcs. 8×3 male header, 2.54 mm (0.1″), jumper blocks for selecting ADC scaling and DIO operation

2 pcs. 15-pin female header, 2.54 mm (0.1″), socket for Arduino Nano

27 pcs. 2-pin terminal block connector, 5.08 mm (0.2″), terminals for power, analogue inputs, digital pins, communication, and relays


switchmode power supply

1 pcs. LM2596S-5.0, switchmode regulator, 5 VDC, 3 A, TO-252

1 pcs. 1N5822, Schottky diode, DO-214

4 pcs. 1N4007, rectifier, 1 A, 1 kV, DO-214

2 pcs. 220 uF, 16 V, electrolytic capacitor, 8.35 mm x 8.35 mm

1 pcs. 680 uH power inductor, 3 A, SMD

1 pcs. barrel type power socket, female, 2.1 mm pin, 5.5 mm barrel ID


Darlington-buffered digital outputs and power relays

1 pcs. ULN2803LW, eight channel Darlington array, SOIC-18, 300 mil

1 pcs. 100 nF ceramic capacitor, 1206

4 pcs. relay, 5 VDC coil voltage, 230 VAC, 10 A, PTH

4 pcs. LED, red, 1206

8 pcs. LED, yellow, 1206

12 pcs. resistor (current-limiting resistors for LEDs), 715R, 1206


Precision voltage reference and analogue-to-digital conversion

1 pcs. MCP1525, precision voltage reference, 2.5 V, SOT-23

1 pcs. MCP1541, precision voltage reference, 4.096 V, SOT-23

4 pcs. 100 nF ceramic capacitor, 1206

16 pcs. resistor (ADC voltage divider), 10k, 1206


Optional components

1 pcs. push button for resetting the Arduino Nano MCU via wire connected to 1×2 header

8 pcs. resistor (variable ADC voltage divider), 10k, 1206

8 pcs. trim potentiometer (variable ADC voltage divider), 50k, 3296W, PTH

1 pcs. 1×4 male header, 2.54 mm (0.1″), I2C header



Estimated cost

Terminal block connectors, headers, jumpers, relays, resistors, capacitors, diodes, switch mode regulator, inductor, and precision voltage references should not cost more than EUR 20,-.


DipTrace v. PCB design file: 0x05rev3_ratlined

Gerber files: Gerber_0x05rev3

Mounting holes: 0x05_PCB_mounting_holes_outline

Bill of materials with price indications: 0x05rev1_BOM

Datasheet: LM2596 switch mode regulator

Datasheet: ULN2803 Darlington array

Datasheet: MCP1525 and MCP1541 – 2.5 V and 4.096 V voltage references


Comments are closed.