Code Monkey home page Code Monkey logo

psu-hw's Introduction

GitHub release license

Ownership and License

The contributors are listed in CONTRIB.TXT. This project uses the TAPR v1.0 license, see LICENSE.TXT. EEZ psu-hw uses the C4.1 (Collective Code Construction Contract) process for contributions. To report an issue, use the EEZ psu-hw issue tracker.

Repository structure

Files in this repository are organized using the following folders:

  • Consolidated - contains information about all modules. That include schematics and PCB layout (Eagle, .png, PDF), BOM (.ods, PDF) with parts required to build complete dual channel unit (1 x Aux, 2 x Power, and 1 x Arduino Shield). Use this as a primary reference for PCB manufacturing and assembling.
  • Aux power - information about Auxiliary power module only
  • Power board - information about Power board only
  • Arduino shield - information about Arduino Shield only
  • Mechanical - drawings for metal custom enclosure and acrylic demonstration enclosure.
  • Building instructions - details about power supply assembly and wire harness

Overview

prototype

This is repository for the hardware part of the DIY fully programmable dual channel bench power supply. The power supply is designed with taking into consideration the following features and requirements:

  • Modular design that allows combining modules with various performance and capability and creation of multiple output solution (min. two channels)
  • Voltage regulation (CV), 1/10 mV resolution, up to 50 V (default: 0 - 40 V)
  • Current regulation (CC), 0.1/1 mA resolution (multiple ranges, default: 0 - 500 mA / 0 - 5 A)
  • Minimal overshoot when new voltage or current level is programmed or in marginal cases such as power on/off
  • 15-bit data acquisition resolution
  • Various protection mechanisms: over-voltage (OVP), over-current (OCP), over-power (OPP) and over-temperature (OTP), current limiting when temperature sensors or cooling fan fault is detected
  • SMPS pre-regulator circuit for lower power dissipation (using e.g. SMPS)
  • SMPS pre-regulator's "100% Duty cycle" mode of operation to lower output ripple and noise
  • Switching frequency synchronization if multiple SMPS are utilized
  • Output enable (OE) circuit
  • Remote voltage sense
  • Remote voltage programming
  • External digital trigger (3.3 or 5 V logic level)
  • Simple AC input protection (surge and transient protection)
  • Selectable 115/230 VAC with solid-state (not mechanical!) soft-start/standby circuit
  • Simple DC output protection (reverse voltage, over-voltage)
  • Serial and parallel connection of the multiple channels
  • MCU based digital control module using 32-bit ARM Arduino Due
  • SPI bus for communication with peripherals
  • Galvanic isolation between digital module and power channels
  • Real-time clock (RTC) with supercap/batter backup
  • EEPROM used as a configuration and calibration parameters storage
  • SD-card as an additional storage
  • USB support that can be used for remote control, as a debug console and firmware upload
  • Ethernet support for remote control
  • Local control using TFT touch-screen display
  • Incremental encoder with tactile switch as an additional mean of setting output values
  • Usage of easy to find components that could be obtain with just single order from suppliers such as Farnell element14, TMU.eu, DigiKey, Mouser, RS online, etc.
  • Possibility to house at least dual channel version in affordable and compact (2U height) metallic enclosure
  • Comprehensive software support that include SCPI remote control, GUI configuration and monitoring and even cross platform (Windows, Linux, OS X) software simulator of the firmware functionality

Programmable dual channel PSU block diagram


For more information visit https://www.envox.eu/bench-power-supply/introduction/


psu-hw's People

Contributors

ljjs avatar mvladic avatar prasimix avatar rerouter avatar timgiles avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

psu-hw's Issues

AC power switch failure and TR1 +12V rail failure

Received kit today, set both internal PSUs to 115V (local US voltage), assembled it, eagerly plugged it in and ... nothing. No lights, no fan, nothing.

Double checked all wiring already; will start debugging shortly. Has anyone else experienced this? Note that on my unit the rear power switch did not easily go into the "On" position; I don't know if I may have received a unit with a defective rear power switch?

Multiple fixed outputs for digital design

I will suggest some fixed outputs to easily work with digital design. e.g. 5V, 3.3V, 2.5V, 1.25V. As an electronics engineer, I never find one power supply enough for testing purpose, due to multiple voltage levels required in modern designs.

Output enters unregulated mode too early (below ~1.8 V)

Reference level for output mode comparators defined with R85 and R90 is too high and the MCU is detecting "UR" mode for output voltages as high as 1.8 V. This issue is happened because V+/-V- from IC4 are set with inappropriate values of R20 and R25. Therefore 316K instead of 330K should be used. To avoid introduction of one more resistor value, R13 can be also lowered to 316K.

RJ45 modular jack replacement

Currently used RJ45 modular jack from Amphenol (LMJ2138814S0L1T1C) can be found only on TME.eu, and with questionable availability. Therefore an alternative with different pinout is needed that can be sourced from at least two manufacturers.

CC mode in current low range

When enters CC mode in low range (0-500 mA) and current is higher then ~30 mA output ripples starts to grow and can exceed 50 mV that is not acceptable.

Two screws for additional AC/DC modules fixing are missing

EEZ H24005: Open Source Bench Power Supply Kit Early Bird Complete kit Parts Shortage.

There is a fulfillment shortage and documentation errors in the assembly manual for this kit.

Reference:
Complete kit EEZ H24005: Open Source Bench Power Supply
http://www.envox.hr/eez/bench-power-supply/group-buy-kit-assembly.html
A work in progress (Draft 0.7)

Parts group Bag#2, part B1. Parts list indicates only 2 pieces of M3x5 mm Black, Countersunk head screws when 4 are required causing a parts shortage in the kit. These are used in mounting the AC/DC Modules to the bottom enclosure. These are illustrated and described around Figures 16 and 17 in the assembly instructions.

Recommended corrective actions:

  1. Provide 2 more of part B1 in the kit.
  2. Correct the assembly instructions to indicate 4 pcs instead of 2 pcs in bag#2, the mounting hardware for the power modules. The assembly instructions are correct, the provided hardware and the parts list are deficient.

Crowd Supply recommended I post this as an issue.

Dual range current

Use two Rsense resistors connected in series and controlled with mosfet switches for LO (0-500 mA) and HI (0-5 A) current ranges. I/O expander has to be replaced with 16-bit model.

Error amps ground reference offset

It's possible that calibrated 0 V or 0 A will require negative DAC output (U_SET or I_SET value). Since DAC has not bipolar output signal it's possible that we cannot get the whole range starting from zero. For people that wants that output value can be programmed down to zero, ground for IC 6B and IC 8A could be shifted for e.g. 100 mV. That be accomplished in some of the next PCB revision with IC 7B that is not used in r5B9 and voltage divider connected to +VREF.

Power relay MCU controlled on the AUX PS module

Add one Power relay with exposed both NO and NC contact. Locate it on the AUX PS with push-in connector mounted on the bottom side to be reachable from rear panel (similar to USB and Ethernet jacks).

Add isolated digital output on the Arduino Shield

The Arduino shield r3B4 has one digital input that can be used to sync external device/process with the PSU functionality. It can be also beneficial if the PSU could do the same. For that add an opto-isolated Arduino output that can be reachable via e.g. push-in connector for the Ch2. In that case both X12 and X14 will be 8-pin.

Cannot reach max. current in LOW range mode

If 0R2 current sense resistor (R63) is used for LOW range mode (0-500 mA) it's not possible to set more then 489 mA. A higher value is possibly required (e.g. 0R22 or even 0R24) that uncalibrated max. goes above 500 mA.

Encoder with switch on Arduino shield

Add incremental encoder (THT) with switch on Arduino shield between TFT display and Ch1 mode LEDs. Remove X19 connector (encoder). Use A10 as ENC_SW input.

Power board self-test fail on newly assembled H24005

Folks,

I just built up my fulfillment kit for the H24005, very well designed and executed - unfortunately - I'm getting a self-test error that IOEXP and ADC are failing on both channels. I've updated to the latest FW, but this did not help. All cables appear in good shape and in correct orientation.

Where to start to troubleshoot this?

Thanks,

Art

BOM Errors?

R18 on the power boards isn't listed in the BOM
The listed inductor for L1 doesn't fit the board footprint. RN114-4-02-1MS does fit.

Soft start and DOUT2 controls

Soft start and DOUT2 controls on the Arduino shield could be rearranged in a way that instead of 3 GPIO MCU pins a TLC5925 outputs are used. Remote sense LEDs (LED_S1, LED_S2) that are using OUT5, OUT12 can be controlled with Q26, Q29. LED_PWR can be moved to MCU GPIO pin that OUT15 can be used to control DOUT2.

AC power control signals and RESET

When RESET is applied to the Arduino board all pins goes high including AC power control lines PWRDIR and PWRSS. In that case the inrush current limiter is not functional. That could be fixed by adding another AND gate that will take care about RESET signal. IC31 has to be changed from IC with 2 AND gate to 4.
In addition one pull up resistor is required if JP8 is set that WDO is generate reset (MR line).

Grammar fixes for Assembly instructions

Hey there! Got My Crowd Supply kit yesterday and just finished assembling it. I'd like to suggest some clarifications and grammar for the assembly instructions. Are they located on github?

Isolate TPS3705 reset signal

Arduino IDE cannot reset the board when firmware is uploaded and reset has to be applied after uploading attempt. The reason for that is that TPS3705 is holding RESET line high (inactive). That makes a whole uploading procedure longer (and frustrating). Add one diode to "isolate" TPS3705 reset pin from Ardino Due RESET line.

Support for 3.5" Riverdi TFT touchscreen display

Provide place on the Arduino Shield for 20-pin FFC 0.5mm connector for 3.5" Riverdi TFT touchscreen display with FT80x display controller (resistive and capacitive!). Also add small audio amplifier section.

Remove +Vcc (pin 1) on USB header

If pin 1 on X9 is connected to the USB cable, the Arduino Shield will be powered from external source even when the PSU is completely switched off. We need to remove that connection in next PCB revision. A quick fix for that is to simply remove pin 1 on the USB receptacle or cut off red wire.

usb cable hack2

High range sense resistor

Currently used high range resistor (R65) due to high TCR (75 ppm/°C) cause current drift in CC mode of up to 0.6%. It's simply too small (2512 size) and without additional heatsink its temperature can rise over 40 °C over ambient temperature.
Mentioned current drift could be improved in one of the following ways:

  1. Use power resistor with lower TCR (i.e. below 20 ppm/°C). The problem here is finding such part in 2512 size. For example voltsandjolts suggested very promising CSSH2728FT20L0 (TCR 15 ppm/°C) but it's size is 2728.
  2. R65 value is relatively high (0R020). Cut it e.g. in half (0R010) and increase IC7 gain by x2 possibly could lower current drift to some extent.
  3. Existing PCB has enough space around R65 maybe better approach could be to use two or even three power resistors in parallel. With smarter new layout it could be possible to host much wider resistor too (as one that is suggested under first bullet).

Remote sense resistors

Make R32 and R59 used as precaution for open remote sense inputs as optional since reverse remote polarity circuits voltage dividers R83, R89 and R96, R101 has the same effect.

Additional Vin capacitor on Power board

Add an OS-CON or other Aluminium Electrolytic Capacitor (18-22 uF / 50-63 V) on the Power board input for better protection against Overvoltage Transients as suggested in LTC's AN88.

Increase also resistor on RUN (pin 8) from 0R to 10K.

Fan generates EMI

When cooling fan is active, and additional noise could be measured on the channel's output. We need here better filtering or maybe switching from PWM to linear speed control could improve situation.

Micro SD card socket

Add Micro SD card socket on the Arduino shield, an option that can be used when 3.5" TFT screen without SD card is deployed.

Where can I find the complete schematic diagrams?

I have looked through all repositories, but am unable to find any detailed schematic diagrams. Does that not belong included in open HW design? Where can I find it? I am not interested in BOM or board layouts, only the schematics.

All temperature sensors measures unrealistically high temperatures

If all temperature sensors measures unrealistically high temperatures shortly after power up regardless if load are connected or not, it's highly possible that AREF jumper (0R 0603) on the Arduino Due board is not properly soldered. You can locate it following pictures below and try to resolder it.

aref jumper 2

aref jumper

User manual for the EEZ H24005

Someone fluent in English (or other languages) and skilled in producing user manuals should make a user manual for the EEZ H24005. For local console pages screenshots the Software simulator can be used (Windows version can be download here).

possible spike when switching sense relay

Hi guys, great job on the PSU design, and also making this open source.

Btw, I noticed that there's could possibly be voltage spike when switching sense relay on and off. Also, when the remote sense input is disconnected accidentally or when the relay fail, how much will the output voltage be restricted?

Additional current range(s)

The Power board r5B12 comes with 16-bit I/O expander (IC8) introduced to handle switching between two current range (0-500 mA and 0-5 A). That leave six I/O pins unassigned that could be used for controlling additional current ranges (i.e. 0-50 mA and 0-5 mA). With current PCB layout (and size) at least one could be easily added. Adding support for more current ranges in firmware also shouldn't be a problem.

+3.3V for buzzer

Currently selected buzzer is rated for 2-4V, but it's connected to the +5V. It works fine but we should connect it to the +3.3V.

Overvoltage protection for V+ output

Add place on the PCB for a zener or TVS diode to protect V+ output in case that IC4 ground terminal (thermal pad) lost its contact that cause that V+ rise to input voltage of above +11 V. Diode power don't need to be high, e.g. 0.5 W in DO214AC, SOD323 or similar small package.

Additional Cout is required

For better stability in CC mode and improved output ripple and noise figure an 1uF + 1R combination is required on the channel output.

Protection improvement for DC power input

The L1 (2 x 1.5 mH CCM choke) is added to filter noise from used LRS-48-150 AC/DC power modules. disadvantage of such approach is if DC power is instantly applied (e.g. manually plugged in X1) it will induce a huge spike (could be up to 100 V) that can easily damage SMPS regulators (i.e. LTC3864 or LM5574). To avoid that make ZD1 mandatory and move if after L1, use 51 or 56 V variant and decrease L1 to e.g. 2 x 0.7 mH.

This issue is not applicable when Power board is powered using AC power input (X2).
See also #19.

X12, X14 connection improvement on PCB

Modify PCB layout that both terminal of each pin on X12 and X14 connectors on the Arduino shield are shorted. Currently only one terminal is connected and that could make issue with good contact in the future.

Wrong silkscreen for all red LEDs on the Arduino Shield

Marking on bottom silkscreen for all red LEDs (LED_SP, LED_PROG1, LED_PROG2, LED_CC1, LED_CC2) is wrong (cathode and anode are swapped on HSMH-C170). Quick fix is to simply rotate it while mounting on the Arduino Shield r3B4.

Ethernet LEDs connected wrong

The anodes of the LEDs should connect to 3V3 and the cathodes should connect to LINKLED and ACTLED. That makes more sense because LINKLED will light when a cable is connected and ACTLED will light when there is an activity.

Side 2 of USB isolator (IC19) has no power connected

The USB isolator (IC19) is optional and that is not show stopper but has to be fixed in the some of the next PCB release. Quick fix is to add wiring from X10-1 to pin 16 and X10-4 to pin 9 if you'd like to add USB isolation.

Reorganize capacitors

  • Move C105, C108, C110, C112 before K_PAR (closer to X12, X14 connectors)
  • Change C111, C114 into 47uF/50V and add add positions close to biding posts pads for 22uF/50V polymer elco
  • Add capacitor between AUX PS gnd and Earth

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.