Current version



Completed, ready for production

PCB manufactured

Yes (r5B9)

PCB assembled

Yes (r5B9)


Yes (Farnell, TME)

File repository
(include Eagle, Gerber, BOM files and SPICE simulations)


TAPR v1.0


C4.1 (Collective Code Construction Contract)

Revision history

2017-10-11: r5B11

  • Added capacitor between ground and Earth (#17)

2016-10-24: r5B10

  • Side 2 of USB isolator (IC19) has now power connected (#4)
  • Removed +Vcc (pin 1) on USB header X9 (#10)

2016-07-24: r5B9 (Version 2.0 on GitHub)

  • Replaced PCB iron core transformer with AC/DC module 12 V/5 W that support 115 / 230 VAC power input (bridge rectifier, filter capacitor and 12 V LDO for fan is not needed any more)
  • Changed Ethernet RJ-45 connector model and pinouts (X7)
  • Changed AC power input connector type (X4)
  • Added triac pull-down resistors R110, R111
  • Optimized number of parts size and values, renumbered reference designators

2016-06-14: r5B8

  • Master sync and power connector merged into one 10-pin IDC
  • Added place for optional USB isolator ADuM3160

2016-05-26: r4B43 (Version 1.0 on github)

  • Correction of swapping pins introduced in r4B40

2016-05-01: r4B42

  • Changed ramp capacitor from 820p to 1n
  • Fan LDO replaced with MC7812

2016-04-06 r4B41

  • Added fan control
  • Power connector changed

2016-01-27 r4B40

  • A1 and A2 pins swap on triac Q1 and Q2 to lower required gate current
  • KK1 heatsink type changed

2015-11-14 r4B39 – First public release

Fig. 1: AUX PS module assembled (PCB r5B9)


The Auxiliary power module contains the following circuits:

  • AC power input protection,
  • In-rush current limitation and stand-by circuit for main transformer or AC/DC power modules,
  • +5 V switching power supply for powering the Arduino Shield module,
  • Ethernet and USB connectors that are exposed on the enclosure’s rear panel and
  • DC fan controller

Fig. 2: AC input, soft start and +5 V power supply

AC input protection and soft-start circuit

The auxiliary power module is currently the only one that is in direct connection with AC mains voltage.

WARNING: a special caution is required while this module is operational.

The AC input lines protection is consists of bidirectional TVSs, MOVs and a SAR. That improves immunity against various spikes and disturbances that can appear on the PSU input. They are dimensioned to withstand 230 VAC and could be modified for better sensitivity if the PSU is planned to be connected onto 115 VAC mains voltage. Between this module and AC mains fused IEC inlet is required (optionally with built-in or separate AC switch and EMI filter).

The in-rush current limiter provided soft-start of the mains power source, especially if toroidal transformer is used that can drawn shortly very high current until its core becomes magnetized. If AC/DC power modules are used instead of transformer this limiter will provides even smoother power-up by supplementing the effect of in-rush limiter that is usually installed in such items. In-rush current limitation is accomplished by placing a power resistor (R107, Fig. 2) in serial with load (transformer or AC/DC modules) at the beginning of the power-up sequence. When power up current in-rush (within 100 ms, Fig. 3 magenta trace) is finished we can disconnect R107 to avoid its further heating and eventually permanent damage. Connection of R107 is managed by MCU that controls triac Q20 with PWR_SSTART signal (Fig. 3 cyan trace). Shortly after input current is normalized, an additional circuit in parallel with that one is established by firing Q21 using PWR_DIRECT signal (Fig. 3 blue trace). Finally the former circuit with R107 is disconnected and AC mains power up sequence is completed.

Note that Q20 and Q21 are controlled with two different type of opto-triac: first with Zero-crossing and another with nonzero-crossing (or random) device. That means that power up sequence could start only when mains voltage is minimal (zero) and R107 bypassing can happen in any moment long after the transformer’s core is magnetized.


Fig. 3: Mains transformer line in-rush current on power up with active soft-start

Obviously above mentioned circuit that is used for power-up can be used for power-down or Stand-by action. That can be done by simply pushing PWR_DIRECT signal low or to remove power from the MCU. Because of former case the power switch (SW1, see Fig. 4) on the Arduino shield do not need to be for a high voltage nor dangerous AC mains voltage will be present on the Arduino shield (and front panel).

+5V power supply for the Arduino Shield module

The central component of the +5 V power supply is a LM25575 (IC16) buck switching regulator from the TI Simple switcher family and has integrated power mosfet that is rated for output current of up to 1.5 A while allowed input voltage could be up to +42 V. It’s pin compatible with the LM5575 regulator that is high-voltage (up to 75 V) variant and also with LM5574 and LM5576 that are rated for 0.5 A and 3 A respectively.

Two helpful tools are used for designing power supply using LM(2)5575 type of controller: The Webench Designer and Quick calculator (SNVU073).

The switching or operating frequency (fsw) is externally programmed using R122+R123 connected to the Rt pin. With selected ~18 kΩ resistance switching frequency should be around 330 kHz. Switching frequency, together with load current, ripple current, and the maximum input voltage Vinmax defines value of another important component of the regulator – the L9 inductance that can be calculated using the following equation:

L9 = (Vout x (Vinmax - Vout)) / (Iripple x fsw x Vinmax)

In accordance to the LM25575 datasheet to keep the circuit in continuous conduction mode (CCM), the maximum ripple current Iripple should be less than twice the minimum load current. The minimum load current is set to 200 mA, Vinmax=18 V and fsw=330 kHz we got the minimum L9 value:

L9 = (5 x (18 – 5)) / (100 x 10-3 x 330 x 103 x 18) = 109.5 μH

The nearest standard value (100 μH) is used. The output voltage level is set using a voltage divider (R121, R126), and the ratio of these resistors is calculated from:

R121 / R126 = (Vout / 1.225 V) - 1

An external set-point voltage divider (R118, R119) from VIN to GND pin is used to set the operational input range of the LM25575 regulator. The divider is designed in such a way that the voltage at the SD (Shutdown) pin will be greater than 1.225 V when Vin is in the desired operating range. With selected values (16 kΩ , 2.2 kΩ ) the UVLO threshold is set a little bit above 10 V. With the selected values of R118, R119 voltage divider complies with the requirement that voltage at the SD pin should never exceed 8 V.

A snubber network C89, R120 across the power diode D19 reduces ringing and spikes at the switching node. Excessive ringing and spikes can cause erratic operation and couple spikes and noise to the output. It’s marked as optional and the circuit is also tested without it since generated voltage spikes are within the rating of the LM25575 and the re-circulating diode D19. Waveform on the SW pin is shown on Fig. 4 and +5 V output (measured on C92 or C93) with connected Arduino shield module is shown on Fig. 5.

The +5 V section of the module is powered by dedicated PCB mounted 12 V AC/DC module that leave enough margin in the case of small AC line brownouts.


Fig. 4: LM25575 SW output


Fig. 5: LM25575 Vout with load connected (the Arduino Shield +BP with Due)

Ethernet and USB connections

This module is intended to be mounted directly on the inner side of enclosure’s rear panel. In that way Ethernet (X7) and USB (X11) connector could be directly mounted on the PCB to simplify the cabling. In this way is also possible to mount optional line protection devices close to the place where cables enters the enclosure. Ethernet connection to the Arduino shield is provided via X8 while for the USB connection with the Arduino board a X9 is used.

The distance between rear panel and PCB is maintained with five 14 mm M3 metal spacers that provide good mechanical strength while external cables are plugged in and out.


Fig. 6: Ethernet and USB connections and fan control

Fan speed control

When PSU works continuously with high output currents additional cooling is required and for that an external Ø60 mm DC fan is used. Powering the cooling fan is regulated with MCU using non-isolated AUX_FAN_CTRL line that is programmed to generate a PWM signal that can be used to adjust output power using Q22 (and hence fan speed is changed) without excessive power loss like in case of linear regulation. To decrease spikes that comes from fan and could have negative effect on the Q22 and EMI a few additional parts are added (reverse polarized D20, RC snubber 129, C98 and LC filter L10, C97).

Fan sense

Selected cooling fan has 3-wire interface while two is used for power and third for tachometer (tach) output. It’s forwarded to AUX_FAN_SENSE with level shifting to 3.3 V (R130, R131). D21 is needed when fan is stalled and output goes up to 4.3 V that MCU cannot tolerated for prolonged period.

The tach output generate rectangle waveform (50% duty cycle and 2 pulses represents one revolution) when fan is powered with DC source. But PWM is not a DC source and tach signal is chopped by the PWM drive signal, since power is not always applied to the fan. The lower the speed the higher is distortion and it becomes completely unusable pretty fast. The Fig. 7 shows signal distortion when speed is decreased for only 10% from the nominal value of 4500 rpm.


Fig. 7: PWM powered fan tach output (4050 rpm, timebase: 2 ms)


Fortunately, that issue can be efficiently resolved with so-called “pulse stretching” – switching the fan on (i.e. PWM=255, for 8-bit drive) long enough to gather the tach information. That can increase audible noise if on period last too long. Also on the other side if its too short for the expected frequency range the results will be inaccurate. On Fig. 8 is shown correct tach output waveform for the duration of 25 ms when DC power is applied.


Fig. 8: Fan tach output with "pulse stretching" (4050 rpm, timebase: 5 ms)

PCB layout

The auxiliary power module is assembled on the 107 x 74 mm two-layer PCB designed in Eagle without autorouter assistance. There is a few places on the PCB that deserve additional attention:

  • ground plane for the SMPS,
  • proper spacing between opto-triac’s low and high-voltage sections,
  • AC power traces width and spacing and
  • no trace is routed on top side in the KK1 heatsink area.

Fig. 9: 2-layer PCB r5B11


SPICE model

Soft-start sequence v3a HOT

LTspice model of soft-start accomplished with sequential firing of two triacs

License GNU GPLv3 Author This email address is being protected from spambots. You need JavaScript enabled to view it. Website Website Date Tuesday, 12 January 2016 09:09 Language  English File Size 9.99 KB Download 232 Download
Joomla templates by a4joomla