5.10. MMEMory

The MMEMory commands are used to store, read or delete file in the PSU’s SD card. It can also query SD card information. In addition it is used for storing and recalling values used by [SOURce[<n>]]:LIST subsystem. File and directory (folder) names cannot contain the following characters:\ / : * ? " < > |

 

SCPI command

Description

MMEMory

 

:CATalog [<directory>]

Returns a list of items in the specified directory (folder)

:LENgth [<directory>]

Returns the number of items in the specified directory

:CDIRectory {<directory>}

Changes the current directory

:COPY {<source>}, {<destination>}

Copies <source> to <destination>

:DATE? {<filename>}

Returns date that the specified file was last saved

:DELete {<filename>}

Deletes an existing file

:DOWNload

 

:ABORt

Aborts current download session

:DATA {#<length-digits><length><block>}

Downloads data from the host computer

:FNAMe {<filename>}

Creates or opens the specified filename for download data

:SIZE {<filesize>}

Sets information about file size used for progress bar

:INFOrmation?

Returns used and free space

:LOAD

 

:LIST<n> {<filename>}

Loads stored LIST to the specified channel

:PROFile {<filename>}

Loads stored user profile

:LOCK {<password>}

Sets write protection

:MDIRectory {<directory>}

Makes a new directory

:MOVE {<source>}, {<destination>}

Moves or renames <source> to <destination>

:RDIRectory {<directory>}

Removes the specified directory

:STORe

 

:LIST<n> {<filename>}

Saves specified channel LIST

:PROFile {<filename>}

Saves specified user profile

:TIME? {<filename>}

Returns time that the specified file was last saved

:UNLock {<password>}

Clears write protection

:UPLoad? {<filename>}

Uploads data to the host computer

5.10.1. MMEMory:CATalog

Syntax

MMEMory:CATalog? [<directory>]

Description

Returns the list of files and directories (folders) names, types and sizes in the current or specified directory. Number of items (files/directories) corresponds to the value returned by the MMEMory:CATalog:LENgth? command.

 

To read out the information in the root directory (folder), specify "\" (backslash) or "/". If <directory> is not set, this function is applied to the current directory. If directory=<path>, this function is applied to <current directory>\<path>.

 

Error occurs if the specified directory does not exist.

Parameters

Name

Type

Range

Default

<directory>

Quoted string

Directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Return

Returns all files in the directory as list of comma delimited quoted strings of <filename>, <filetype> and <filesize>. The following file types are supported:

  • BIN – binary data
  • CSV – textual data (comma separated)
  • FOLD – directory (folder)
  • LIST – LIST program data
  • LOG – trace (display) or logged data (file extension .log)
  • PROF – user profile data (file extension .profile)
  • STAT – instrument (setting) state or user profiles (file extension .conf)

Usage example

MMEM:CAT?

"USER,FOLD,0","SCPI.PDF,BIN,1274844","SCH5B13A.PDF,BIN,296589",
"Documents,FOLD,0","Lists,FOLD,0","Videos,FOLD,0",
"profile0.profile,PROF,264"

 

MMEM:CAT? "USER"

"LST_2_3.CSV,BIN,88","FERY2.PDF,BIN,2443"

Errors

-250,"Mass storage error"

-251,"Missing mass storage"

-252,"Missing media"

-256,"File name not found"

Related Commands

MMEMory:CATalog:LENgth?

MMEMory:INFOrmation?

MMEMory:DATE?

MMEMory:TIME?

5.10.2. MMEMory:CATalog:LENgth

Syntax

MMEMory:CATalog:LENgth? [<directory>]

Description

This command returns the number of items in the current or specified directory (folder). The result corresponds to the number of files returned by the MMEMory:CATalog? command.

Parameters

Name

Type

Range

Default

<directory>

Quoted string

Directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Return

The query command returns number (NR1) of items (files and directories).

Usage example

MMEM:CAT:LEN? "USER"

2

Errors

-256,"File name not found"

Related Commands

MMEMory:CATalog?

5.10.3. MMEMory:CDIRectory

Syntax

MMEMory:CDIRectory {<directory>}

MMEMory:CDIRectory?

Description

Changes the current directory to the specified directory (folder). This directory must exist otherwise an error will be generated.

 

At *RST, this value is set to the root path.

Parameters

Name

Type

Range

Default

<directory>

Quoted string

Directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Return

This query returns the full path of the current directory.

Usage example

MMEM:CDIR "TEST/Test folder2"

MMEM:CDIR?

"TEST/Test folder2"

Errors

-256,"File name not found"

Related Commands

*RST

MMEMory:CATalog?

MMEMory:MDIRectory

MMEMory:RDIRectory

5.10.4. MMEMory:COPY

Syntax

MMEMory:COPY {<source>}, {<destination>}

Description

Makes a copy of an existing file in the current directory. The file names must include any file extension.

If <destination> is a file name, the copy file is created in the current directory. When <destination> is a <path> (e.g. “test lists/test022”) the source file is duplicated in <current directory>/<path>.

Parameters

Name

Type

Range

Default

<source>

Quoted string

Source file name, 1 to 255 characters

<destination>

Quoted string

Copy file name or directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:COPY "test.bin", "new2/test_new.bin"

Errors

-253,"Corrupt media"

-254,"Media full"

-256,"File name not found"

-258,"Media protected"

Related Commands

MMEMory:CATalog?

MMEMory:CDIRectory

MMEMory:LOCK

MMEMory:MDIRectory

MMEMory:MOVE

5.10.5. MMEMory:DATE

Syntax

MMEMory:DATE? {<filename>}

Description

Returns the (year, month, day) that the specified file was last saved.

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name or directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Return

Comma-separated numbers (NR1) of year, month, day formated as yyyy, mm, dd

Usage example

MMEM:DATE? "test.002"

2017, 10, 1

Errors

-256,"File name not found"

Related Commands

MMEMory:TIME

5.10.6. MMEMory:DELete

Syntax

MMEMory:DELete {<filename>}

Description

Use this command to delete a file in the current directory. If SD card is locked using the MMEMory:LOCK command, an error -258 will be generated.

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:DEL "test.002"

Errors

-256,"File name not found"

-258,"Media protected"

Related Commands

MMEMory:CATalog?

MMEMory:CDIRectory

MMEMory:RDIRectory

MMEMory:LOCK

5.10.7. MMEMory:DOWNload:ABORt

Syntax

MMEMory:DOWNload:ABORt

Description

Use this command to abort currenlty running file transfer from the host initiated with the MMEMory:DOWNload:DATA command. If not active file transfer exists, the PSU will ignore this command without generating any error.

Usage example

MMEM:ABOR

Related Commands

MMEMory:DOWNload:DATA

5.10.8. MMEMory:DOWNload:DATA

Syntax

MMEMory:DOWNload:DATA {#<length-digits><length><block>}

Description

Downloads data from the host computer to a file in the SD card. This is a multiple steps process:

  • The filename must have been previously specified by MMEMory:DOWNload:FNAMe.
  • The data can be transferred in single or more blocks. Receiving of first block will erase all previously stored, and each consecutive block will be appended to the end
  • Download is finished when MMEMory:DOWNload:FNAMe with empty name was sent

Use MMEMory:INFOrmation? command first to check available space.

Parameters

Name

Type

Range

Default

<length-digits>

Numeric (NR1)

<length> number of digits (e.g. 2 for two digit number)

<length>

Numeric (NR1)

Limited only with available space on SD card

<block>

Discrete

Only exact size is allowed as defined with <length>

Usage example

Downloads text Hello world and store into the file "test file" in the current directory. Digit 2 denotes two digits of data length (11).

MMEM:DOWN:FNAM "test file"

MMEM:DOWN:DATA #211Hello world

MMEM:DOWN:FNAM ""

Errors

-253,"Corrupt media"

-254,"Media full"

-258,"Media protected"

Related Commands

MMEMory:DOWNload:FNAMe

MMEMory:INFOrmation?

MMEMory:LOCK

5.10.9. MMEMory:DOWNload:FNAMe

Syntax

MMEMory:DOWNload:FNAMe {<filename>}

Description

Creates or opens the specified filename prior to writing data to that file with MMEMory:DOWNload:DATA.

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEMory:DOWNload:FNAMe "new_list.bin"

Errors

-258,"Media protected"

Related Commands

MMEMory:DOWNload:DATA

5.10.10. MMEMory:DOWNload:SIZE

Syntax

MMEMory:DOWNload:SIZE {<filesize>}

Description

This command define filesize used by progress bar displayed on the local console during the file transfer. If filesize is not provided, progress bar will not be displayed.

Parameters

Name

Type

Range

Default

<filesize>

Numeric (NR1)

0 to 2.147.483.648 (2 GiB) as limited by SD Card FAT

0

Usage example

MMEMory:DOWNload:SIZE 124000

Related Commands

MMEMory:DOWNload:DATA

MMEMory:DOWNload:FNAMe

5.10.11. MMEMory:INFOrmation

Syntax

MMEMory:INFOrmation?

Description

Use this command to find out total amount of storage currently used and storage available on the SD card. The sum of that two amounts represents SD card capacity in bytes.

Return

The command returns used space and free space as two comma separated integers.

Usage example

MMEM:INFO?

3932160,7732461568

Related Commands

MMEMory:DOWNload:DATA

5.10.12. MMEMory:LOAD:LIST

Syntax

MMEMory:LOAD:LIST<n> {<filename>}

Description

Load stored LIST program from SD card location defined by <filename> to the channel defined with <n>.

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:LOAD:LIST1 "DC_DC conv testing.list"

MMEM:LOAD:LIST2 "DC_DC conv testing.list"

TRIG:SOUR BUS

INIT

*TRG

Errors

-200,"Execution error"

-256,"File name not found"

Related Commands

MMEMory:STORe:LIST[<n>]

[SOURce[<n>]]:LIST:COUNt

[SOURce[<n>]]:LIST:CURRent[:LEVel]

[SOURce[<n>]]:LIST:DWELl

[SOURce[<n>]]:LIST:VOLTage[:LEVel]

5.10.13. MMEMory:LOAD:PROFile

Syntax

MMEMory:LOAD:PROFile {<filename>}

Description

This command loads data from user profile file to the user profile 0.

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:LOAD:PROF "old settings.profile"

Errors

-256,"File name not found"

Related Commands

*RCL

*SAV

MEMory:STATe:RECall:AUTO

MMEMory:STORe:PROFile

5.10.14. MMEMory:LOCK

Syntax

MMEMory:LOCK {<password>}

MMEMory:LOCK?

Description

Use this command to enable write protection of SD card. All writing, deleting or modifying attempts on files or directories will generate an error if SD card is locked.

Parameters

Name

Type

Range

Default

<password>

Quoted string

System password (4 to 16 characters)

Return

This query returns 0 if SD card is unlocked, or 1 if SD card is locked.

Usage example

MMEM:LOCK "test123"

MMEM:LOCK?

1

Errors

122,"Invalid sys password"

Related Commands

MMEMory:UNLock

SYSTem:PASSword:NEW

5.10.15. MMEMory:MDIRectory

Syntax

MMEMory:MDIRectory {<directory>}

Description

This command creates a new directory. If directory=<path>, this command creates a <current directory>/<path> directory.

Parameters

Name

Type

Range

Default

<directory>

Quoted string

Directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:MDIR "test folder"

Errors

-258,"Media protected"

Related Commands

MMEMory:CDIRectory

MMEMory:RDIRectory

5.10.16. MMEMory:MOVE

Syntax

MMEMory:MOVE {<source>}, {<destination>}

Description

This command moves or renames an existing file. If destination is a file name, the source file is renamed to the new file name in the current directory. When destination=<path>, the source file is moved to <current directory>/<path>.

 

Error occurs if the source file does not exist or the destination file already exists.

Parameters

Name

Type

Range

Default

<source>

Quoted string

Source file name, 1 to 255 characters

<destination>

Quoted string

New file name or directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

Rename file:

MMEM:MOVE "old name","new name"

Move file from current directory to “/Test” directory:

MMEM:MOVE "new name","/Test/new name"

Move and rename file:

MMEM:MOVE "/Test/new name","/Documents/new doc"

Errors

-256,"File name not found"

-258,"Media protected"

Related Commands

MMEMory:CDIRectory

MMEMory:COPY

5.10.17. MMEMory:RDIRectory

Syntax

MMEMory:RDIRectory {<directory>}

Description

Removes the specified empty directory.

Parameters

Name

Type

Range

Default

<directory>

Quoted string

Directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:CDIR?

"Test folder2"

MMEM:CAT:LEN?

0

MMEM:RDIR "Test folder2"

Errors

-250,"Mass storage error"

-258,"Media protected"

Related Commands

MMEMory:CATalog?

MMEMory:CDIRectory

MMEMory:MDIRectory

5.10.18. MMEMory:STORe:LIST

Syntax

MMEMory:STORe:LIST<n> {<filename>}

Description

Store LIST program of channel defined with <n> to SD card location defined by <filename>. Stored file type will be TRAC. Default file extension is .list

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:STOR:LIST1 "DC_DC conv testing.list"

Errors

-258,"Media protected"

Related Commands

MMEMory:LOAD:STATe

[SOURce[<n>]]:LIST:COUNt

[SOURce[<n>]]:LIST:CURRent[:LEVel]

[SOURce[<n>]]:LIST:DWELl

[SOURce[<n>]]:LIST:VOLTage[:LEVel]

5.10.19. MMEMory:STORe:PROFile

Syntax

MMEMory:STORe:PROFile {<filename>}

Description

This command stores the PSU state (i.e. user profile 0) to SD card location defined by <filename>. Stored file type will be STAT. Default file extension is .conf

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Usage example

MMEM:STOR:PROF "Both channels 5V_3A.profile"

Errors

-258,"Media protected"

Related Commands

*RCL

*SAV

MEMory:STATe:RECall:AUTO

MMEMory:LOAD:PROFile

5.10.20. MMEMory:TIME

Syntax

MMEMory:TIME? {<filename>}

Description

Returns the (hours, minute, seconds) that the specified file was last saved.

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name or directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Return

Comma-separated numbers (NR1) of hours, minute, seconds formatted as hh, mm, ss

Usage example

MMEM:TIME? "test.002"

22, 10, 14

Errors

-256,"File name not found"

Related Commands

MMEMory:DATE

5.10.21. MMEMory:UNLock

Syntax

MMEMory:UNLock {<password>}

Description

Disable write protection of SD card activated by the MMEMory:LOCK command.

Parameters

Name

Type

Range

Default

<password>

Quoted string

System password (4 to 16 characters)

Usage example

MMEM:LOCK?

1

MMEM:UNL "test123"

MMEM:LOCK?

0

Errors

122,"Invalid sys password"

Related Commands

MMEMory:LOCK

SYSTem:PASSword:NEW

5.10.22. MMEMory:UPLoad

Syntax

MMEMory:UPLoad? {<filename>}

Description

This command uploads the contents of a file from the instrument to the host computer.

The format for <file> is "[<path>]<file_name>", where <path> must be an absolute folder path. If <path> is omitted, the folder specified by the MMEMory:CDIRectory command is used. Absolute paths begin with a "\" or "/" and start at the root folder of SD card.

Parameters

Name

Type

Range

Default

<filename>

Quoted string

File name or directory name, either / (slash) or \ (backslash) can be used as the path separator. 1 to 255 characters

Return

The query returns the file contents are returned as an IEEE 488.2 definite-length block.

Usage example

MMEM:UPL? "test file"

#211Hello world

Errors

-257,"File name error"

Related Commands

MMEMory:DOWNload:DATA

 

Add a comment

5.5. FETCh (not implemented yet)

Fetch commands return measurement data that has been previously acquired. FETCh queries do not generate new measurements, but allow additional measurement calculations from the same acquired data.

Add a comment

 

A work in progress (Draft 0.9) – PDF version for download is available at the page end

Introduction

Instructions presented in this document are related to Complete kit for EEZ H24005 power supply offered through crowdfunding campaign. If you intended to build one from the scratch e.g. having only bare PCBs to start with, please refer to EEZ PSU H24005 building instructions (r5B12).

 

The EEZ H24005 (PSU) kit is not an end user product. As such it was not put into any conformance testing and it may not comply with some or any technical or legal requirement that are applicable to finished products including, without limitation, directives regarding electromagnetic compatibility, recycling (WEEE), FCC, CE, or UL. Assembling and using the PSU requires an understanding of electronic circuits and basic computer programming skills.

 

If you need assistance, please contact us using this form or post your problem on the EEVblog forum here. Or, feel free to open a New issue on GitHub here, but please check first to see whether a similar issue already exists).

 

Only tool required for kit mechanical assembly is medium Phillips head screwdriver. Of course, a multimeter for checking wiring and voltage on few points during the assembly is recommended.

Before you start

We made our best effort to make your EEZ H24005 kit complete and functional. But, please note that due to limited resources kit is not completely and thoroughly tested. Basic testing were performed on the following parts:

Core modules are tested on our “testbed” but not with using wire harness and AC/DC modules that comes with your kit. Therefore it’s highly recommended that you check visually, mechanically and with ohmmeter if cables are properly assembled before you proceed with final assembling (consult Wire harness section). Please also check Troubleshooting section at the end of this document.

Basic testing covered communication over Ethernet, fan control, power control, touchscreen functionality, beeper, TFT display and output voltage and current programming in a whole range (i.e. up to 40 V and 5 A with connected load and not calibrated!).

AC/DC modules are capable of working with both 115 and 230 Vac. Few of them are randomly selected and tested on 230 Vac. Therefore it would be a wise step to test them before they’re wired with the rest of the unit.

Please note that they comes in cardboard box with voltage stamped on (see Fig. 1, item 5), but that voltage denote fuse ratings only (i.e. 4 A for 230 Vac or 8 A for 115 Vac). If you are going to use it with 115 Vac you have to change switch position as described in section AC/DC modules.

Kit assembly steps

  1. Package content
  2. Plastic bags content
  3. Bottom plate
  4. Rear panel
  5. AC/DC modules
  6. Front panel
  7. Power boards
  8. Final steps
  9. Powering up, calibration and firmware upload
  10. Troubleshooting

Package content

The PSU complete kit consists of the following parts, as shown in Fig. 1:

  1. Top and bottom plates
  2. Front panel box
  3. Rear panel box
  4. Plastic bags with wire harness and miscellaneous mounting parts
  5. AC/DC modules box
  6. Power boards box
  7. Extra parts (for EEZ H24005 enclosure kit only!)

Please note that AC power cord is not included into this kit.

Fig. 1: EEZ H24005 Complete kit box content

Rear panel box contains enclosure’s rear panel with mounted AUX power module, IEC AC inlet, 60 mm cooling fan with finger guard and Cable Set #2.

Plastic bags content

Before start assembling please take some time to check if content of plastic bags includes all what is listed below. Also familiarize with Position naming that will be used in the rest of the document.

 

Fig. 2: Plastic bag #1 content

 

Position

Description

A1

10-pin IDC cable (AUX power module – Arduino Shield)

A2

Ethernet patch cable (AUX power module – Arduino Shield)

A3

AUX temperature sensor (Arduino Shield)

A4

Fuse drawer (IEC AC inlet)

A5

Enclosure feet pack

A6

AC&DC module connector cover

A7

M3 x 5 mm bolts for enclosure (11 pcs)

A8

DOUT2 plug-in connector (AUX power module)

A9

Polyamide cable ties (2 pcs)

A10

Cable set #1

A11

Micro USB to 5-pin 0.1” header cable (AUX power module – Arduino Shield)

 

Fig. 3: Plastic bag #2 content

 

Position

Description

B1

AC/DC modules mounting bolts: M3 x 5 mm black countersunk head (4 pcs) and M3 x 5 mm (7 pcs)

B2

40 mm spacers (2 pcs)

B3

AC/DC modules mounting rail (Varisom)

 

Please note that only two instead of four bolts with countersunk head are mistakenly delivered with Complete kit. Therefore use that two bolts to fix mounting rail (B3) to the enclosure’s bottom plate, and leave lower end of 40 mm spacers (B2) unfixed. In such way AC/DC modules will stay securely fixed.

 

Fig. 4: Plastic bag #3 content

 

Position

Description

C1

M4 x 6 mm mounting bolts (4 pcs)

C2

Enclosure front panel handles (Varisom)

Extra parts (for enclosure kit only)

This section is related only for buyers who ordered so-called Enclosure and Assemblies kit. It comes with few extra parts that together with the following items is required to get completely functional PSU:

  • AC/DC modules (LRS-150-48 or auto-switch LRS-150F-48) x2
  • Assembled core modules (i.e. Aux power module, Power board x2, and Arduino Shield)
  • 3.2” TFT color touchscreen display and
  • Arduino Due compatible board

For more details please refer to EEZ PSU H24005 building instructions (r5B12).

 

Extra parts are shown on Fig. 5. Additionally a set of two custom made heatsinks are included into this kit.

 

Fig. 5: Extra parts for enclosure kit

 

Position

Description

G1

0.4 mm (for Q4) and 5 mm thermal silicone pads

G2

Set of bolts for Power boards mounting to the heatsinks

G3

5 mm spacers for Power boards

G4

3.2” display mounting frame (Varisom) with bolts and 2 mm spacers

G5

M3 x 5 mm bolts for display (4 pcs)

G6

Set of fuses (230 Vac or 115 Vac as stated on cardboard box)

G7

Encoder knob (A3116068) and knob cap (A3216007)

Bottom plate

In this step rubber feet (D1, Fig. 7) will be mounted and protective earth will be attached to the enclosure. Identify enclosure bottom plate using the Fig. 6 and prepare items A5 and A10.

 

Fig. 6: Enclosure bottom plate

Content of A5 is shown on Fig. 7. Please note that longer bolt (D4) and additional parts (D5, D6) should be used for making contact with protective earth wire on the foot hole that is near the AC inlet (see note Foot (+Earth)).

 

Fig. 7: Enclosure feet package

Use M3 black finish bolt (D3) and washer (D2) for mounting feet (D1) on the holes with M3 thread (see red circled hole on Fig. 9). The paint around latest hole where protection earth will be connected can be previously carefully removed to ensure even better electrical contact then externally serrated washer (D5) could provide (see Fig. 8).

 

Fig. 8: Paint removed for better protective earth contact

For protective earth connection mount last foot with long bolt (D4) first and then place ring terminal (item A10) on inner (top) side of the bottom plate between serrated washer (D5) and M3 nut (D6). Check with ohmmeter if low resistance connection is established between earth wire on A10 and bottom plate (when complete enclosure is assembled you can repeat this by testing conductance between earth pin on IEC AC inlet and top plate).

Fig. 9 shows bottom plate with protective earth mounted and Fig. 10 how robber foot looks like when mounted. Take into account that bolt should be screwed enough that its head is not above foot.

 

Fig. 9: Bottom plate with mounted feet and protective earth

 

Fig. 10: Mounted rubber foot

Rear panel

Remove rear panel from its cardboard box (item 3) and check if it looks as shown on Fig. 11. It should include IEC AC inlet (with AC switch patch cables that is not visible due to blue heatshrink tube), AUX power module with 5-pin AC plug and 3-pin cooling fan receptacle connected, 60 mm cooling fan and Cable set #2 connected.

The IEC AC Inlet has power switch and place for fuse drawer that carry two fuses. Fuse drawer is packed separately (item A4) and supplied two fuses (item E2, see Fig. 14) should be in accordance with AC mains voltage in your country (4 A for 230 Vac or 8 A for 115 Vac).

 

Do not insert fuse drawer with or without fuses before everything else is assembled.

 

If you didn’t notice any issues with rear panel parts you can proceed with mounting it to the previously prepared bottom plate by using three bolts from A7 and fix it into positions shown on Fig. 12.

 

Fig. 11: Rear panel assembled

 

 

Fig. 12: Rear panel mounting positions

 

Finally you can attach cables A1, A2 and A11 to the AUX power module as shown on Fig. 13.

 

Fig. 13: AUX power module wiring

AC/DC modules

Unpack box with AC/DC modules (item 5) and check if it contains items shown on Fig. 14.

 

Fig. 14: AC/DC modules with fuses

Before proceed with assembly be sure that AC input voltage selection switch (Fig. 15) is properly set. This is especially important if your AC mains voltage is 230 Vac because if switch is set to 115 Vac it is possible that applied mains damage AC/DC module permanently (don’t count with blown fuses here!).

 

Fig. 15: AC voltage selection switch set to 230 Vac

Put aside for the moment E2 and take one of E1 to connect on them Cable set #2 wires as follows:

 

Name

Position

Color

AC line input

L

Brown

AC neutral input

N

Blue

Protective earth

(Earth sign)

Yellow-green

DC output negative

-V

Black

DC output positive

+V

Red

 

Take also protective earth wire from Cable set #1 (item A10) and mount it on the same position as protective earth from Cable set #2 (see red cycle on Fig. 16).

 

Fig. 16: First (lower) AC/DC module wiring

When first (lower) AC/DC module wiring is completed you can proceed with fix it to the final place on the bottom plate by using two M3 bolts with black countersunk head (from B1) and metal spacers (B2).

 

Fig. 17: First (lower) AC/DC module fixing with metal spacers

Next step will be attaching AC/DC mounting rail (B3) with M3 bolts (from B1) to the AC/DC module and bottom plate as shown on Fig. 18. AC/DC module has three M3 holes on the side, only two bolts for mounting (red encircled), and another two with black countersunk head (also from B1) for fixing it at the bottom plate (see yellow arrows and Fig. 6).

 

Fig. 18: AC/DC modules mounting rail with first (lower) module

Second AC/DC module can be now installed on top of the first (lower) one. First connect remaining wires from A10 and Cable set #2 as shown on Fig 20.

Before proceed with fixing second AC/DC module to mounting rail (B3), you can insert all cables that goes to Arduino Shield mounted on the front panel (see red encircled hole on Fig. 19 made by B3, two E1 and B2). You can use one of cable tie (A9) for that (spare another one for AUX temperature sensor A3).

 

Fig. 19: Second (upper) AC/DC module with Arduino Shield wiring

Use two M3 bolts from B1 for fix second (upper) AC/DC module on the side. Use another M3 bolt for fix it only on the spacer B2 that is visible on Fig. 18. Fixing on the next spacer will be performed in the next step.

 

Fig. 20: Second (upper) AC/DC module mounting

Final step in AC/DC modules mounting is to put a cover (item A6) over second (upper) AC/DC module terminals as an additional safety measure against electric shock when you decide for any reason to operate the PSU with top plate removed. Use two remaining M3 bolts (from B1) and fix it on the places marked with red arrows on Fig. 21.

 

Fig. 21: Second (upper) AC/DC module terminal cover

 

Front panel

The front panel box content is shown on Fig. 22 that is enclosure’s front panel with mounted Arduino Shield with Arduino Due board, 3.2” TFT touchscreen color display and 4 mm binding posts for power outputs and protective earth.

 

Fig. 22: Front panel (back view)

A first step for the front panel assembly is mounting of handles (item C2). Use two M4 bolts (C1) to fix it on the front panel’s ends. Fig. 23 shows how front panel looks like with handles mounted.

 

Fig. 23: Front panel handles mounted

 

Fig. 24: Arduino Shield with cables connected

 

Attach the front panel very loosely to the bottom cover to avoid issue with mounting Power boards lately (see issue #52).

 

A next step should be wiring of the Arduino Shield (use red colored text on Fig. 22 as reference). That also include AUX temperature sensor (item A3). Take a special care when inserting USB cable (A11) to the Programming port (lower one) on the Arduino Due to not damage micro USB socket. It’s recommended to bend USB cable appropriately before insertion to lower its pressure when it is put into place (Fig. 25).

 

Use Native port (upper one) with firmware v1.01 or latter. If you still want to use programming port add the following code into your conf_user.h file:

 


	#undef CONF_SERIAL_USE_NATIVE_USB_PORT
	#define CONF_SERIAL_USE_NATIVE_USB_PORT 0
	

 

Fig. 25: USB cable attached to Arduino Due programming port

Use four M3 bolts (from A7) to join front panel with bottom plate following the holes marked on Fig. 6 and Fig. 26

 

Fig. 26: Front panel bottom mounting positions

When front panel is mounted to the bottom plate it’s possible to fix AUX temperature sensor (A3) someplace above AC/DC modules as shown on Fig. 27. Use one cable tie (A9) for that.

 

Fig. 27: Aux temperature sensor

Power boards

The Power boards cardboard box contains two Power boards (F1) and M3 bolts (F2) used for mounting. Before mounting power boards to the bottom plate (check Fig. 6) plug in the DC power cable (+48 V) to the DC input connector (red encircled on Fig. 29).

 

Now you can carefully insert it into Arduino Shield (Fig. 21) that PCB components side is facing toward cooling fan center as shown on Fig. 30. Double check that no misalignment between 26-pin header on the Arduino Shield and Power board’s receptacle (yellow encircled on Fig. 28) exists.

 

Fig. 28: Power boards unpackaged

 

Fig. 29: Power board DC input connector

Final steps

The PSU with all parts mounted is shown on Fig. 30. Covering it with top plate and placing fuses into AC inlet is now only what is left.

 

You’ll need eight M3 bolts with black countersunk head (from A7 and F2) for mounting top plate.

 

Fig. 30: EEZ H24005 assembled without top plate

Check fuses (E2) rating (i.e. 8 A for 115 Vac and 4 A for 230 Vac) before placing them into fuse drawer (A4) as shown on Fig. 31.

 

Fig. 31: Fuse drawer

Mount fuse drawer into IEC AC inlet on the rear panel and insert AC mains power cord (it’s not a part of this kit!) as shown on Fig. 32.

 

Fig. 32: AC inlet with fuse drawer and plugged in power cord

 

The PSU has on the rear panel a 3-pin connector for Digital out #2 (DOUT2). You can use A8 plug with screw terminals to make connection with external circuits (Fig. 33).

 

Fig. 33: DOUT2 plug-in connector

 

The PSU complete kit comes with firmware v1.0 loaded into Arduino Due board. For further uploads please follow instructions here. The list of firmware release can be found on the GitHub.

Powering up, calibration and firmware upload

Do not start PSU for the first time with any load connected!

 

First test output voltage programming. When set output voltage is within expected tolerance (i.e. up to 5 % not calibrated) you can continue with testing output current capability. Choose output voltage and load combination that output current at start is not higher then e.g. 100 mA. If reading is within expected tolerance, you can proceed with higher load up to 5 A per channel.

 

The Power board outputs are not calibrated. At the first start you will be asked about calibration but you can postpone it. Each output has to be calibrated separately and you can access calibration wizard from System page or from Channel’s info page (Fig. 34).

 

Fig. 34: Channel's calibration page

The calibration wizard will guide you through all steps after you successfully entered calibration password (default is eezpsu). Voltage set for current calibration is 20 V (middle of the range) therefore you have to use resistor lower then 4 Ω that can dissipate enough power (example1, example2 both of them must be installed on heatsink!).

Please note that high current (5 A) range calibration could be a rather tricky since output current is going to decrease over time as shunt resistor is heating up. That is a known issue (see hardware issue #40 and suggestion for compensation in firmware reported in #100). Depends of what end result is more acceptable, you can enter output current value that is measured immediately after the load is connected, or you can wait up to few minutes (e.g. before fan is started to work) and measure the output current.

 

Uploading your firmware to the latest release is highly recommended. Uploading process is described under Firmware uploads section of the EEZ PSU H24005 building instructions (r5B12) document.

A short video about installing Arduino IDE and firmware components on Win10 is available here.

Troubleshooting

  • Display is not working – during displays testing we found on considerable number of them that they pins have to be degreased. It’s possible that your display’s pins are not degreased enough, or lost contact due to mechanical shocks in transportation. Detach it from front panel and Arduino Shield board first, and try to clean pins with cleaning/degreasing spray (e.g. Kontakt WL). Pay special attention to make sure that cleaning agent not penetrate between display and it’s PCB. That could create a visible spot when display is turned on (if cleaning agent is not aggressive that should be a temporary issue. Wait some time that cleaning agent simply evaporate).
  • Display colors are “washed out” – it appears that for used “noname” display backlight and colors intensity could vary considerably. While testing we found about half of dozen different level of backlight intensity. We tried to rectify that to some extend by offering display brightness and background color (i.e. the blue one) luminosity settings. You can find that parameters under system settings page 2 as shown on Fig. 35. We tried to set the most appropriate luminosity level for your display. The default value is 15 but if your found here e.g. 10 (for firmware v1.0) that means that your display is unfortunately is too bright (hence lower value). In that case the real “cure” is to start hunting for better unit on eBay or similar online shops.

 

Fig. 35: Display settings page (firmware v1.01)

 

  • Output voltage is above max. range (e.g. 42-43 V) – voltage regulation is failed, possibly due to faulty bias power supply. Switch the PSU off immediately and check V+ and V- outputs of IC4 (on ferrite beads FB2 and FB3). It’s highly possible that IC4 thermal pad is not soldered properly and that mechanical shock (e.g. in transportation) cause lost of electrical contact. It’s output voltage has to be a little above 5 V (if you’re perfectionist replace R20 and R25 with 316 K), but if IC4’s thermal pad, that is also its ground connection, is not connected you can expected e.g. about +12 V on V+ and -0.5 V on V- line. If that happen it’s also possible that IC12 is damaged permanently (start up self-test procedure will report DAC failure in that case). Another possible collateral damage could happed if load is mistakenly connected. That can easily damage low current switch and sense resistor (Q13 and R63).
    If IC4 reflow soldering work is necessary detach PCB from the heatsink and remove thermal pads first!
  • Output current cannot reach max. value (i.e. 5 A) with load connected – if Power board output cannot deliver max. current for more then 10 seconds or cannot reach max. current with output current step is programmed (e.g. from 0 to 5 A) then probably something is wrong with switching pre-regulator on the first place. We found on dozen of Power boards that came from manufacturer that C14 is not soldered properly or is dropped off the PCB. Without it pre-regulator cannot manage to deliver more then about 3 A. Another possibility is that IC1 thermal pad is not properly soldered (similar to above mentioned IC4). You have to be ready for some resoldering work with hot air. If max. output current cannot reach more then 1.5 A please check Q13 and Q14 first, before going to do anything with IC1. Even if you need to desolder them for testing purposes it’s still less cumbersome then resoldering IC1.
    If IC1 reflow soldering work is necessary detach PCB from the heatsink and remove thermal pads first!
  • USB cable is shutting down a whole unit – unfortunately your USB patch cable is faulty. Please check wiring pin by pin (i.e. check if red wire is connected with +VUSB, black with GND, etc.).
    It’s possible that you have to rotate it as one user suggested as shown on Fig. 36. If that is not acceptable, you can try to detach pin by pin from the header and put them on the right place.

 

Fig. 36: Swapped USB connector

 

  • Channel enters unregulated mode (neither CV nor CC when output value is displayed in red color) for programmed output voltage below ~1.8 V. Replace R20 and R25 with 316 K as suggested in issue #42 on the GitHub.
  • Output current cannot reach max. value of 5 A on step load – that can be check by set output enable with connected load, or by connecting load when output is already enabled. Make sure that used load is low enough that channel enters CC mode. For example use 3.3 Ω with output set to 20 V and current set to maximum. Try to replace pre-regulator current sense resistor R4 with another one (we found on few boards that comes from manufacturer that R4 resistance is too high despite the fact that marked value is correct (i.e. 10 mΩ).

 

A work in progress

 

Files:
EEZ H24005 Complete kit assembly instructions Draft (0.9) HOT
License CC BY-SA 4.0 Author This email address is being protected from spambots. You need JavaScript enabled to view it. Website Website Date 2017-06-16 Language  English File Size 2.61 MB Download 704 Download

 

 

Add a comment

5.12. SENSe

The SENSe control the current measurement range, energy counting/window, and the data acquisition sequence.

 

SCPI command

Description

SENSe

 

:AHOur

 

:RESet {<channel>}

Resets the amp-hour (Ah) measurement to zero

:CURRent

 

[:DC]

 

RANGe[:UPPer] {<range>}

Selects a DC current measurement range

AUTO {<bool>}

Enables/disables seamless measurement auto ranging

:DLOG

 

:FUNCtion

 

:CURRent {<bool>}, {<channel>}

Enables/disables output current internal data logging

:POWer {<bool>}, {<channel>}

Enables/disables output power internal data logging

:VOLTage {<bool>}, {<channel>}

Enables/disables output voltage internal data logging

:PERiod {<time>}

Sets the sample period for internal data logging

:TIME {<time>}

Sets the sample duration for internal data logging

:WHOur

 

:RESet {<channel>}

Resets the watt-hour (Wh) measurement to zero

5.12.1. SENSe:AHOur:RESet

Syntax

SENSe:AHOur:RESet {<channel>}

Description

Not implemented yet

 

Use this command to reset the amp-hour counter to zero of the specified channel. If channels are coupled (in series or parallel) or in tracking mode, both channel’s counters will be reset to zero.

Parameters

Name

Type

Range

Default

<channel>

Discrete

CH1|CH2

Usage example

SENSE:AHO:RES

Related Commands

FETCh:WHOur?

INSTrument:COUPle:TRACking

OUTPut:TRACk[:STATe]

SENSe:AHOur:RESet

SYSTem:CHANnel:INFOrmation:AHOur:TOTal?

5.12.2. SENSe:CURRent[:DC]:RANGe[:UPPer]

Syntax

SENSe:CURRent[:DC]:RANGe[:UPPer] {<range>}

SENSe:CURRent[:DC]:RANGe[:UPPer]?

Description

This command selects a DC current measurement range when Power board with multiple current ranges is installed (e.g. r5B12 that can be find out with the SYSTem:CHANnel:MODel? command). The entered value must be higher than the maximum current that you expect to measure. Units are in amperes.

 

If selected range is lower then measured current, when load is connected, an error -220 will be generated.

Parameters

Name

Type

Range

Default

<range>

Numeric (NR2), discrete

0.5, 5, MIN|MAX, DEFault

DEF

Return

The query command returns the maximum DC current that can be measured on the range that is presently set.

Usage example

SENS:CURR:RANG?

0.5

Errors

-220,"Cannot set range"

Related Commands

SENSe:CURRent[:DC]:RANGe:AUTO

SYSTem:CHANnel:MODel?

5.12.3. SENSe:CURRent[:DC]:RANGe:AUTO

Syntax

SENSe:CURRent[:DC]:RANGe:AUTO {<bool>}

SENSe:CURRent[:DC]:RANGe:AUTO?

Description

This command enables/disables current measurement autoranging. Autoranging provides seamless measurement ranging, which results in a wide dynamic range with no data being lost across ranges.

 

When enabled, this command overrides the SENSe:CURRent[:DC]:RANGe setting.

Parameters

Name

Type

Range

Default

<bool>

Discrete

ON|OFF|0|1

OFF

Return

The query command returns 0 if current measurement autoranging is OFF, and 1 if current measurement autoranging is ON.

Usage example

SENS:CURR:RANG:AUTO?

0

Related Commands

SENSe:CURRent[:DC]:RANGe

SYSTem:CHANnel:MODel?

5.12.4. SENSe:DLOG:FUNCtion:CURRent

Syntax

SENSe:DLOG:FUNCtion:CURRent {<bool>}, {<channel>}

SENSe:DLOG:FUNCtion:CURRent? {<channel>}

Description

Use this command to enable or disable output current internal data logging on the specified channel.

Parameters

Name

Type

Range

Default

<bool>

Discrete

ON|OFF|0|1

OFF

<channel>

Discrete

CH1|CH2

Return

The query command returns the status (0 or 1) of the output current internal data logging enabled on the specified channel

Usage example

SENS:DLOG:FUNC:CURR ON, CH1

Related Commands

INIT:DLOG

SENSe:DLOG:FUNCtion:POWer

SENSe:DLOG:FUNCtion:VOLTage

SENSe:DLOG:PERiod

SENSe:DLOG:TIME

5.12.5. SENSe:DLOG:FUNCtion:POWer

Syntax

SENSe:DLOG:FUNCtion:POWer {<bool>}, {<channel>}

SENSe:DLOG:FUNCtion:POWer? {<channel>}

Description

Use this command to enable or disable output power internal data logging on the specified channel.

Parameters

Name

Type

Range

Default

<bool>

Discrete

ON|OFF|0|1

OFF

<channel>

Discrete

CH1|CH2

Return

The query command returns the status (0 or 1) of the output power internal data logging enabled on the specified channel

Usage example

SENS:DLOG:FUNC:VOLT OFF, CH2

Related Commands

INIT:DLOG

SENSe:DLOG:FUNCtion:CURRent

SENSe:DLOG:FUNCtion:VOLTage

SENSe:DLOG:PERiod

SENSe:DLOG:TIME

5.12.6. SENSe:DLOG:FUNCtion:VOLTage

Syntax

SENSe:DLOG:FUNCtion:VOLTage {<bool>}, {<channel>}

SENSe:DLOG:FUNCtion:VOLTage? {<channel>}

Description

Use this command to enable or disable output voltage internal data logging on the specified channel.

Parameters

Name

Type

Range

Default

<bool>

Discrete

ON|OFF|0|1

OFF

<channel>

Discrete

CH1|CH2

Return

The query command returns the status (0 or 1) of the output voltage internal data logging enabled on the specified channel

Usage example

SENS:DLOG:FUNC:VOLT OFF, CH2

Related Commands

INIT:DLOG

SENSe:DLOG:FUNCtion:CURRent

SENSe:DLOG:FUNCtion:POWer

SENSe:DLOG:PERiod

SENSe:DLOG:TIME

5.12.7. SENSe:DLOG:PERiod

Syntax

SENSe:DLOG:PERiod {<time>}

SENSe:DLOG:PERiod?

Description

Use this command to set the sample period in seconds. For the sample period, the

minimum is 20 ms, and it has to be in integral of 20 ms, while the maximum is 120 s. The entered value will be rounded to the nearest 20 ms integral.

Parameters

Name

Type

Range

Default

<time>

Discrete

0.02 – 120

0.02

Return

The query command returns the sample period in seconds.

Usage example

SENS:DLOG:PER 1

Related Commands

SENSe:DLOG:TIME

5.12.8. SENSe:DLOG:TIME

Syntax

SENSe:DLOG:TIME {<time>}

SENSe:DLOG:TIME?

Description

This command sets the sample duration, the entered value is in seconds. For sample duration, the maximum is 86 400 000 seconds or 24 000 hours or 1000 days (depending of the available space on the installed SD Card, see the MMEMory:INFOrmation? command).

Parameters

Name

Type

Range

Default

<time>

Discrete

1 – 86400000

60

Return

The query command returns the sample duration in seconds.

Usage example

SENS:DLOG:TIME 3600

Related Commands

MMEMory:INFOrmation?

SENSe:DLOG:PERiod

5.12.9. SENSe:WHOur:RESet

Syntax

SENSe:WHOur:RESet {<channel>}

Description

Not implemented yet

 

Use this command to reset the watt-hour counter to zero of the specified channel. If channels are coupled (in series or parallel) or in tracking mode, both channel’s counters will be reset to zero.

Parameters

Name

Type

Range

Default

<channel>

Discrete

CH1|CH2

Usage example

SENS:WHO:RES

Related Commands

FETCh:AHOur?

INSTrument:COUPle:TRACking

OUTPut:TRACk[:STATe]

SENSe:WHOur:RESet

SYSTem:CHANnel:INFOrmation:WHOur:TOTal

 

Add a comment

 

A work in progress (Draft 0.6) – PDF version for download is available at the page end

 

Building instructions for prototype version r5B9 can be found here or here.

 

This project is rather different from the usual DIY sort. It will handle moderately high voltages (much higher than 5V or 3.3V logic levels or 12V systems), and very high currents (much more than just about any common electronic equipment in the consumer world except perhaps high power audio amplifiers). As a result, assembly mistakes are not likely to cause problems merely within the assembled project, but also to anything connected with it. Proceed carefully, make certain you have identified the correct part and location before installing anything. In fact, it will be worthwhile to read through these instructions before beginning. Restrain your eagerness a bit!

 

If you need assistance, please contact us using this form or post your problem on the EEVblog forum here. Or, feel free to open a New issue on GitHub here, but please check first to see whether a similar issue already exists).

1. PCB assembly

The power supply (PSU) has four printed circuit boards (PCBs) on which parts may already be installed depending on how you ordered the assemblies. Most of these are surface mount devices (SMD) (tiny and with small or no 'legs'). Only connectors, and few specialized parts (e.g. power resistors, PCB mounted AC/DC adapters, post-regulator power MOSFET, etc.) have legs that go through holes in the PCB, – they are through-hole parts (THT).

 

The SMD parts have been selected to be easily installable using (careful!) hand soldering, but will greatly benefit from the assistance of an illuminated magnifying glass, or a low magnification microscope. In general, a magnification of x8 to x10 should be more than appropriate. Almost all passive SMD components are 0805 size, but never smaller then 0603. Some of the IC packages are SOIC, TSOP, TSSOP; there are no bottom on any of the IC pin packages such as QFN or BGA as these are essentially limited to machine installation and reflow soldering.

 

Only two ICs (i.e., IC1, IC4 on the Power boards) have exposed tabs which cannot be readily installed using a soldering iron, and will probably need a hot air soldering station. Installing these requires different skills, examples of which can be found in many videos on the Internet with instructions on how to do so effectively by hand, without the use of solder paste stencils or reflow ovens.

1.1. Required tools

  • A soldering iron with a conical tip example
  • A hot air soldering station example (more than ordinary skill with a soldering iron may make this optional)
  • Rosin core solder wire (0.25 mm diameter example, and 0.7 mm example). See below for more information.
  • Some solder wick / desoldering braid example
  • Some solder flux. This is often used, via an applicator (resembling a syringe) or a very small brush. As before this must be compatible with electronic parts, not the acidic types used in plumbing or stained glass work1. Example
  • A magnifying glass with light (e.g., a desktop magnifier with a backlight) example or a microscope (also with a light) example
  • A pair of self-locking tweezers (sometimes called a hemostat, from those used in medicine) example
  • A pair of sharp non-locking tweezers example1, example2
  • Isopropyl alcohol2
  • A PCB holder example. SMD parts are small; do not sneeze or let the cat help. A dog's friendly tail wag can be a disaster. A PCB holder really will help.

1.2. Test and measurement equipment

The basic tool needed for measurements is an oscilloscope. A high performance specification is not required (e.g., an elderly low frequency bandwidth scope would be fine if it works properly). But, if assembly is performed carefully (as it should be, and check everything more than once!) so that there are no mistakes (e.g., the wrong part value, or the right part installed in the wrong place, or inadvertent solder fragment shorts between parts or PCB traces, etc.) a multimeter (DMM) will be enough to check basic functionality. An adequate DMM need not be expensive, but beware that there is a large selection of inexpensive and effectively worthless DMMs on offer. Several of Dave Jones' EEVBlog videos are DMM reviews, and at least two have been comparisons of several inexpensive meters.

 

During testing and taking measurements, please note that a channel’s negative output (OUT-) is NOT at ground potential with regard to the mains earth potential in the AC wiring. If you are using a multichannel oscilloscope which does not have isolated channels (the default!) you cannot simultaneously connect the test probe ground of one channel to a PGND point and another channel to an OUT- point. This will interfere with normal operation of the current control loop (IC6A, IC7) because the current sense resistor (R63 or R65) will be shorted out; as well, there is a real risk of damage to either test probes or oscilloscope circuitry, or both. Short of exotic and expensive oscilloscope probe accessories, limiting connections to one probe at a time is wise.

1.3. Where to start?

The total number of parts to be installed and soldered, or mechanically bolted, or both, is almost 800. At first glance, this might be discouraging, but it's not really so bad. First, the two most demanding PCBs are the Power boards which are identical. You might assemble them side by side following the steps below, which might help catch an error in one of them. The AUX PS is the simplest, but it also has an AC mains section that requires great additional care. Wiring mistakes involving mains connections are dangerous, and potentially fatal. Check them at least twice, and then have someone else (ideally) check them again, before applying power. Finally, the physically largest part – the Arduino Shield – is only modestly populated, but also carries extra parts such as the touch-screen display, encoder, Arduino board, binding posts, etc and mechanically mates with the front panel. It must be assembled somewhat differently as a result.

 

The recommended starting point is to check that all parts from the consolidated BOM (bill of materials) are present, sorted by type and value, and are easily accessible. As you have probably already learned, simple SMD parts with 2-3 terminals (passives, diode, transistors) can be easily lost even if you have well arranged and clean benchtop. Therefore, instead of despairing, plan ahead and simply order a few more parts than needed, and be more careful next time. Small SMD parts can escape both self-locking and regular tweezers, and every attempt to find them after they have jumped away.

 

There are a few sensible methods of storing and sorting SMD parts: small part snapboxes (example), SMD storage books (example), etc. Each of them will be useful insofar as it can reduce the possibility of replacing one part mistakenly with another. That is especially important for SMD ceramic capacitors (e.g., MLCCs) which often do not have value labels.3

 

Selecting a single value at a time and placing it in the proper place on the PCB is of a paramount importance to ensure that PCBs are assembled correctly. Keeping all other parts safely to the side, off the work bench entirely, is not too much caution.

 

Once the required tools, the bare (or partially populated) PCB, and the needed parts are ready, it is necessary to find the proper installation positions and orientations, and in the case of unmarked parts, distinguishing it from otherwise identical parts. Part locations on the PCBs are all identified, but with respect to the schematic – IC3, R21, C42 and so on.

 

If you are using the Eagle PCB design program, then open the correct .brd file and, when populating the top layer make sure that among other layers 21, 25, and 27 are visible (see Top assembly selected layers.png). For assembling the bottom layer set layers 22, 26, and 28 as visible (see Bottom assembly selected layers.png).

 

The freeware edition of Eagle also allows you to switch .brd files and layers on and off; this can be very useful.

 

When installing Eagle is not an option, you can use the following images:

This sequence of PCBs is not mandatory during assembly, but is a logical sequence since the AUX PS board is required for powering the Arduino shield and the Arduino shield is required for controlling the Power boards. This sequence is also sorted by PCB complexity starting with the simplest. If not otherwise specified, we recommend that parts be soldered in the following order on the same layer:

  • SMD IC that require hot air soldering (i.e. IC1, IC4)
  • Small SMD parts (e.g. passives (i.e., resistors and capacitors), diodes, transistors, etc.)
  • SMD ICs
  • Bulk SMD parts electrolytic capacitors, power inductors, MOSFETs and diodes) and
  • THT parts (connectors, switches, chokes (i.e., inductors, etc.)

1.4. Default jumper positions

For various reasons, in a few places on the PCBs, a jumper section is used where a zero-ohm resistor (these look like a real resistor, though almost always with a single mid spaced black band, but can also be a plain wire) o define the signal path. Some of them define behavior of the circuits (e.g. JP5, JP6, and JP7) and when wired in the wrong way, or left unpopulated, can cause difficulties. In particular, the firmware running the PSU might not be able to control it properly. To simplify the assembly process, a clear silk screen mark has been added next to zero-ohm resistor default positions that should insure proper functionality with the current firmware revision. In the image below, the jumpers noted are marked, and red rectangle indicate the place for a zero-ohm resistor with “U” shaped silk screen mark.

 

Fig. 1: Zero-ohm jumper markings

1.5. AUX PS r5B12a assembly

NOTE: Some of the wiring on this PCB is connected to the mains AC. This requires that all parts and connectors be installed with NO errors. Failure to do so may damage parts, the power supply itself, or you. Check everything very carefully. Furthermore, if you are providing the parts (and even if you ordered them as part of a kit), do check to make certain they are the correct part, with the correct ratings in all respects. It may be a reassurance that part color is not important.

 

The schematic for this board is on sheets 6/12 and 7/12. We recommend the following steps:

  • Fan control,
  • AC input terminal and protection,
  • Soft start/stand-by (Q20, Q21, OK1, OK2),
  • Power relay (K_DOU2),
  • Dual output AC/DC module (TR1) and
  • THT connectors (X5, X6, X7, X8, X10, X11)

Testing of the fan control must be postponed until the Arduino Shield is available. Also, it will require preparation of the fan cable which comes without a connector (fans differ considerably).

 

The AC input terminal and protection section contains only THT parts that MUST be carefully and correctly soldered. Soft start/stand-by triacs Q21 and Q22 share the same heatsink (KK1) though mounted on opposite sides, using a single screw and nut (Fig. 2). They should be mechanically mounted before soldering. Another possibility is to solder the heatsink first and then mount a triac on each side and then solder their terminals; this is somewhat tricky, however. Take care that power resistor R103 is of proper type (i.e., wirewound), properly rated voltage, and proper power rating.

 

The X5 connector must be mounted after the surrounding SMD parts (R122, OK3, ZD6, Q25), otherwise it will be difficult to mount them without damaging X5 by touching it unintentionally with the soldering iron's body or its tip.

 

Fig. 2: Q21 and Q22 shares the same heatsink (KK1)

Finally, place TR1 as the last part on the top PCB layer. Now it's possible to test the +5 V power supply by carefully applying AC mains on the X4 pin 1, 2 and 5.

 

On the bottom layer, only three parts must be mounted – DOUT2 (X6), Ethernet (X7) and USB (X11) connectors. If you got the customized enclosure with pre-drilled holes on the rear panel, you can mount the PCB on the rear panel first (using 14 mm spacers), and then solder the bottom of the board connectors. This insures everything fits mechanically.

 

Fig. 3: Bottom view (w/ installed THT connectors and spacers)

 

1.6. Arduino Shield r5B12 assembly

We don't have a suggested assembly order for this assembly. One possibility is to simply follow the order of sheets in the consolidated schematics related to this board (i.e., sheets 8/12, 9/12, 10/12, 11/12, and optionally 12/12) and to leave the following parts until the end:

  • Power relays (K_SER, K_PAR) – due to their size
  • Super capacitor (C112) for RTC backup
  • Headers for Push-in connectors (X12, X14)
  • 40-pin connector (LCD1) for the TFT touch-screen display
  • Front panel power switch (SW1) and the incremental encoder (SW3)

Push-in connector distance adjustments

The distance (approximately 18 mm) between the rear side of the front panel and the Arduino Shield PCB is set by the TFT display height (or depth) when it’s fixed on the display mounting rail on one side and plugged in to 40-pin (LCD1) on the Arduino shield. It must be accommodated by the mechanical mounting of other parts.

 

The height of the push-in connectors (X12, X14) is about 13.5 mm, and when they are soldered directly on the PCB they will be 4.5 mm apart from the front panel surface. The pins will still be accessible, if only carefully. It's more a question of visual appearance; a pair of low profile (5 mm) 8 pin sockets (example) anchor the connectors.

 

Fig. 4: Low profile sockets for push-in connectors

 

When all the SMD parts are mounted, followed by the THT parts, there are only a few parts left:

  • The power relay must not interfere with mounting any of the surrounding parts (e.g. ZD7).
  • The super capacitor is polarized, as are the electrolytic capacitors and the battery cell. Make certain all these are properly oriented, at least twice, before installing them! (see Fig. 5)
  • If push-in connectors X12 and X14 are not yet inserted into sockets, as suggested above, then proceed with soldering them on the bottom side of the PCB.
  • The TFT touch-screen display 40-pin connector (LCD1) has to be soldered on the bottom side too. To be completely sure it is aligned with the display, we recommend mounting the display on the display mounting rail and enclosure first, then inserting the connector on the display's header, and finally place the PCB on top of the display. Then check the alignment of the PCB with the output binding post holes. Only when everything is in place can the 40-pin connector be soldered. Be careful as solder bridges between pins are easy to accidentally make in such tightly packed situations.
  • Finally, we can mount the power switch (see Fig. 6). Once again, we recommended it be aligned with the corresponding hole on the enclosure's front panel first, then adjust its position as needed before soldering.

 

Fig. 5: Placement of the supercap which backups the RTC chip – note the polarity, which must be correct.

 

Fig. 6: Power switch mounting

 

1.7. Power board r5B12 assembly

The Power boards are the most complex parts of the PSU, given the number of components and the high currents it must handle. There are at least two possible assembly sequences: but in any case, be very disciplined and carefully solder all parts. Then simply plug it into the Arduino shield to check whether it will pass the self-test procedure. It does not require any special adjustment, and even when is not calibrated it should provide programmed output voltages and currents with good accuracy of which the PSU is capable.

 

The second possible sequence could be to assemble it in at least three stages:

  • Power pre-regulator,
  • Bias power supply and
  • Post-regulator

After each section is completed, perform the simple testing procedure described below before continuing with the assembly. That way, you can limit possible damage if one section is mistakenly assembled (especially if bias power supply output voltages are wrong!).

 

WARNING: Never apply DC input (+48 V) when the AC/DC module is powered on (e.g., connecting cable manually to the X1 connector). That could generate a spike (due to L1) up to 100 V high that can easily destroy the on-board SMPS controller (LTC3864), even with ZD1 and C3 in place.

 

Power pre-regulator

The power pre-regulator circuit is shown on Sheet 1/12. We recommend you start with IC1 which requires soldering of the exposed thermal pad. A hot air soldering station instead of soldering iron probably should be used here. This section also require soldering L1 and X1 on the PCB’s bottom side . That should not be a problem if you are using a PCB holder. If you choose to supply the Power board with AC instead of DC input, follow Hack #1, and remember that any wiring connected to the mains must be handled with great care.

 

Once again, mount all of the smaller parts first and than continue with the bulkier ones such as L2, C3, C12, C15, etc.

 

When everything is soldered in place, you can proceed with basic testing. Since the board is not fully assembled, this requires some work-arounds. The first is to check whether the pre-regulator works properly. Q3 is used to enter the 100% duty cycle when the pre-regulator is bypassed. IC1 is then effectively switched off, and instead of the switching frequency a DC signal will be present on Q1's gate (hence the name 100% duty cycle). But, we need to test whether switching works or not. There are two possibilities here:

  • To apply +5 V (use some external source in this stage) to Q3 gate by soldering a thin wire (e.g. that used for wire wrap) to that position or
  • simply place a zero-ohm resistor on position R14. Note: don’t forget to remove it before start testing the Post-regulator section and IC8 is mounted.

Before we can apply input power we need to provide some signal to the OUT+ trace. The easiest way is to locate any of pins 23 to 26 on the X2 connector.

 

Again, an external regulated source is needed. We can use the same +5 V used to turn on Q3 or something else with output of up to +40 V. In fact, we can start testing by simply connecting OUT+ to the ground. If OUT+ is grounded we can check, with an oscilloscope, two points to see if the pre-regulator works:

  • The first is a “hot-spot” (SW, magenta trace) where Q3's drain, the power inductor L2, and D1's cathode are connected. Use an oscilloscope probe set to x10.
  • The second test point is PREG_OUT (Preg, cyan trace), which is the output from the power pre-regulator.

Fig. 7 shows the correct measurement when OUT+ is set to 0 V (i.e., grounded). Its output voltage will vary depending on the connected load and the difference between post-regulator output and power pre-regulator output. The voltage difference could be about +6.5 V for no load, to less then +3 V for full load of 5 A. Fig. 8 is another example (with no load) when +5 V is used for pre-regulator’s output voltage programming (measured PREG_OUT is +10.8 V).

 

Fig. 7: Pre-regulator measurements, +VOUT = 0 V (grounded, no load)

 

Fig. 8: Pre-regulator measurements, +VOUT = 5 V, with no load connected

 

Please note that in both cases the SW signal looks erratic only because no load is connected. Fig. 9 shows the characteristic switching pattern when a load is connected (e.g., a 10 Ω power resistor).

 

Fig. 9: Pre-regulator measurements, +VOUT = 5 V with load connected

 

 

Finally, Fig. 10 shows what will happen if Q3 is not turned on. IC1 will enter a 100% duty cycle because the values for the voltage divider in the feedback loop (R13, R16) will be set well over pre-regulator input voltage, to +56 V, while the input voltage is no higher then +50 V.

 

Fig. 10: Pre-regulator in 100% duty cycle, without load connected

 

The Low noise operating mode will remove some hard to filter switching noise from a channel’s output, when the pre-regulator works with a 100% duty cycle. But working in that mode puts real limitations on PSU output power, and if the PSU will be used for an application where higher output ripple can be tolerated, it’s possible to disable this option by removing Q3 and permanently mounting a zero-ohm resistor in position R14.

 

Bias power supply

Sheet 2/12 has to be followed to assemble the bias power supply circuit. As in the case of the power pre-regulator, start with IC4 which has an exposed thermal pad and will probably require a hot air soldering station.

 

When all other parts are in place, proceed with basic testing. Please note that the power pre-regulator will be now also powered up, and make sure that no load is connected to the PREG_OUT, perhaps leftover from the previous testing. Obviously, the first thing to test are output voltages at points +V and -V (IC4 outputs) and +5V (IC2 output). They must be within 5 % tolerance of +5 V, -5 V and +5 V.

Another point of interest is PWRGOOD (IC2). It’s interesting to see how PWRGOOD relates to change of input voltage. That signal will be actively monitored by the microprocessor (MCU) and it will put the PSU into Stand-by mode as soon as possible when changed from high to low level. Fig. 11 and Fig. 12 shows the transition when input power is applied and removed.

 

Fig. 11: PWRGOOD signal transition (Power on)

 

Fig. 12: PWRGOOD signal transition (Power off)

 

Post-regulator

The post-regulator circuits are on Sheets 3/12, 4/12 and 5/12. The power MOSFET (Q4) requires special attention. It’s a THT part, and before soldering, its terminals must be bent (carefully, as they are often more fragile than you might expect) as is shown on Fig. 13.

 

Fig. 13: Q4 preparation for mounting

 

Q4 is mounted on the PCB’s bottom side, and if the EEZ H24005 customized enclosure is used, ensure that the distance between its surface area and the PCB's bottom side is 5 mm. The easiest way to accomplish that is to mount the PCB on the heatsink (Fig. 14) using spacers, then mount Q4 (do not forget insulation!), fix it with a M3 screw and then solder it.

 

Fig. 14: PCB side view with Q4 mounted on heatsink

 

We highly recommend using a piece of 5 mm thick silicone thermal pad below the power pre-regulator area (IC1, Q1, D1) and high voltage LDO (IC3) (one source for small pieces at a reasonable price is AliExpress) as shown on Fig. 15. The temperature of a power assembly, as measured by NTC1 can be lowered significantly; as always, lower part and assembly temperatures during operation is quite desirable for part longevity and stability. Lowering the temperature will also affect cooling fan operation which will work with lower, quieter, speeds.

Fig. 15: Silicone thermal pad locations

 

Do not use a metal block (with an insulation layer to prevent shorting) instead of the suggested silicone thermal pad since it could increase EMI (electrically related high frequency noise).

 

When everything is mounted, check a few points before connecting it to the Arduino Shield. Do not proceed until these values are correct.

 

Signal

Value

Position

Comment

+VREF

+2.5 V

IC9

Defines overall precision

+OUT

around zero

Pin 23-26, X2

 

CV_ACTIVE

+5.1 V (i.e., logic high)

R84/R88

CV mode active (if U_SERVO is negative)

CC_ACTIVE

+0.6 V (logic low)

R97/R99

 

POST_OE

+4.67 V (logic high)

R55

Output is disabled

U_SERVO

-1.1 V

D7 cathode

 

I_SERVO

+0.28 V

D9 cathode

 

 

2. Enclosure and wire harness

The next step, when all PCB modules are assembled and tested should be wiring and then installing them into the enclosure. The customized metal enclosure, manufactured by Varisom, has the following features (Fig. 16):

  • Top and bottom plate with ventilation holes
  • Front panel for TFT touch-screen display, binding posts, push-in connectors, light pipes (example) for LEDs, etc.
  • Rear panel for AC inlet, DOUT2, USB, Ethernet, cooling fan and AUX PS module mounting holes
  • Two set of three U-shaped aluminum heatsinks with Power module mounting holes
  • Mounting rail for AC/DC power modules (Fig. 31)
  • Mounting rail for TFT touch-screen display (Fig. 18)
  • AC/DC module terminal cover (Fig. 32)

Fig. 16: Custom metal enclosure (by Varisom)

 

The wire harness specification is available in a separate section (link) which also includes the BOM. That specification is just an example how wire harness can be done, and users are free to use wires of different type and length, but only with equal or bigger diameter and voltage rating in the case of power paths.

 

Two cables, one for USB connection between the Arduino board and the AUX PS module, and another IDC 10-pin flat cable for powering the Arduino shield are available assembled. All other cables must be cut to size and equipped with the appropriate connectors. It is important, most especially for wires and connectors carrying mains AC current, that the connections be fully insulated (heat shrink tubing is the usual choice); this reduces chances of an inadvertent short or any contact with a human. Good quality crimping and wire cutting tools are expensive, and if you already don’t have them a good choice might be the following:

Fig. 17 Shows a block diagram that should make clear how the wiring must run.

 

Fig. 17: Wiring block diagram

2.1. Front panel mounting

The Arduino Shield is mounted directly on the enclosure front panel and is fixed at six points: five binding posts and the 40-pin TFT touch-screen display connector.

 

The 3.2” TFT touch screen display has to be mounted first on the display mounting rail as shown on Fig. 18.

 

Fig. 18: 3.2" TFT display mounting

 

Before mounting the display rail equipped with the TFT display, a SD card must be inserted into the socket (Fig. 19).

 

Fig. 19: TFT display mounted with an inserted SD card

 

All LED indicators are mounted directly on the PCB bottom surface, and light pipes must be added so their lights will be visible at the surface of the front panel. Since we've included no separators between the LEDs, for best effect each light pipe should be masked with heat shrink tubing as shown in Fig. 20. Black is a good choice, for least spillover between them.

 

Fig. 20: LEDs light pipes with heat shrink tubes (not yet shrunk)

 

The specified binding posts are, simultaneously, too short and too long. They can short the PCB’s power outputs and protective earth to the front panel. It’s too short in that a nut with washer can be mounted on PCB’s top side. Therefore some kind of spacer is needed. But, if an 8 mm spacer is used it becomes too long and it has to be cut as shown on Fig. 21.

 

Fig. 21: Binding post cut

 

Binding posts comes with two M5 nuts, Ø10 mm and Ø12 mm washers that can be used while mounting it on the front panel (Fig. 22) and PCB (Fig. 23). It is important that locking washers (preferably the serrated, toothed sort) are used to prevent the binding posts from becoming mechanically loose. Using a small amount of threadlocking fluid is probably a good idea.

 

Fig. 22: Binding posts mounted on front panel and extended with spacers

 

Fig. 23: Biding posts mounted (side view)

 

The Arduino Due board should be inserted before the Arduino shield PCB is mounted on the front panel. Cables as shown on Fig. 24 must be inserted before the front panel is mounted to the enclosure’s bottom plate.

 

Please note that from firmware v1.01. the default USB port is Native not Programming.

 

Fig. 24: Arduino shield wiring (r5B12)

2.2. Rear panel mounting

When the assembled and tested AUX PS board is mounted on the enclosure's rear panel using five M3 bolts and 14 mm spacers, it will be connected with other parts and modules using five cables as shown in Fig. 25.

 

WARNING: pay special attention when connecting the Ethernet cable. Wrong installation is likely to permanently damage the RJ-45 modular jack (X7).

 

Fig. 25: AUX PS module wiring (r5B12)

 

The various protective earths from the PCBs etc. MUST be connected very securely to a single point on the metal enclosure as shown in Fig. 26. Any violation of this rule will almost certainly increase noise and hum within the PSU and quite possibly interfere with PSU operation. Make certain that the ring terminal (or terminals if you use more than one) makes good electrical contact with the enclosure by using an externally serrated washer (example). Make certain the earth connection bolt has been properly tightened so that it cannot, and will not, become loose. Using some threadlocking fluid is a good idea here, for proper grounding is important to correct circuit behavior. The earthing requirement (which might affect mounting details) may vary from country to country, since the safety earth is often a legal or regulated issue; therefore please check for what is required, or prohibited, in your location.

 

Fig. 26: Safety earth connection to enclosure; note the heat shrink tubing

 

2.3. AC input selection

WARNING: take precautions when working with AC mains voltages. There is a possibility of exposure to lethal voltages and currents if there is an error. Too much care is probably not possible.

 

There are options for providing the PSU with AC mains voltage. It is possible to feed AC directly to the power boards using a mains power transformer (and rectifier bridge and filter capacitors as described in hack #1), or, as the basic design assumes, some switching power supplies. These choices dictate fuse ratings and other issues. In general, the mains fuse current rating must be twice the correct value when using 115 Vac then when using 230 Vac (more current at the lower voltage to carry the same power). We have used 4 A fuses (example) for the two LRS-150-48 switching power supply modules (the maximum combined output power is 320 W and, with the listed 90 % power efficiency, a minimum fuse of 3.13 A is required). Two fuses are needed when an IEC standard input connector such as Schurter 4304.6090 is used.

 

Fig. 27: AC input voltage switch for LRS-150-48 switching power supply modules

 

AC/DC switching power modules often come with or without automatic input voltage range adjustment. When a manufacturer offer two models with the same output ratings, the model without that feature is usually a little cheaper. For example, the LRS-150-48 comes without the auto-range feature and has a manual switch (Fig. 27.) to adjust for different AC input voltages. That switch is not easily accessible when those modules are mounted inside the enclosure, so make certain that switch is in proper position before mounting and AC mains voltage is applied. When moving to an area with different mains voltages (e.g., 115 Vac to 230 Vac) these switches MUST be changed appropriately and back again when returning.

 

Cable set #1 and Cable set #2 are connected to the both AC/DC modules using the wire colors as shown on Fig. 28:

 

Name

Position

Color

AC line input

L

Brown

AC neutral input

N

Blue

Protective earth

 

Yellow-green

DC output negative

-V

Black

DC output positive

+V

Red

 

Fig. 28: AC/DC module terminals; note the use of sleeved connectors

 

Fig. 29: Bottom (CH1) AC/DC module with Cable set #1 mounted

 

 

Fig. 30: Top (CH2) AC/DC module with Cable set #2 mounted (without terminal cover)

 

The two AC/DC modules have to be stacked on top of each other and mechanically fixed on one side with the AC/DC mounting rails (Fig. 31). Those bolts hold equipment with AC mains current connections; it would be well to use a little threadlocking fluid on their threads to prevent accidental loosening. Additionally, two 40 mm long spacers are used for better mechanical strength.

 

Fig. 31: AC/DC power modules mounting rail

 

Finally, an AC/DC module terminal cover should be mounted as an additional protective measure (Fig. 32).

 

Fig. 32: AC/DC module terminal cover (above); note use of sleeved connectors

 

3. Firmware uploads

The PSU is controlled by an Arduino type board which also runs the display. The correct version of the software which runs on the installed Arduino version must be installed in non-volatile memory within the MCU. This can be done in the field, and revised as new versions of the software are released.

 

Compilation and uploading to the Arduino Due board (mounted on the Arduino Shield) requires that users install and run the cross-platform (Windows, Linux, etc) Arduino IDE program which can be downloaded here. Installing the Arduino IDE alone is not sufficient in the case of the recommended Arduino hardware version since support for ARM boards such as the Due is not installed with the IDE download by default. Therefore you have to add ARM Cortex-M3 support. Navigate to Tools… Board:… Boards manager and select the Arduino SAM Boards package for installation. When it’s successfully installed, you can check for it as shown in the Fig. 33.

 

Fig. 33: Arduino boards manager with installed support for Due

 

The next step is to select the particular Arduino Board installed in the PSU (there are many variations) and USB. The Arduino Due board has several advantages, not least of which is that it has two USB ports. We’ll use Native Port as shown on Fig. 34.

 

Fig. 34: Arduino Due USB port selection

 

After successful installation, the Arduino IDE is ready to use and we can continue with downloading firmware from the GitHub repository for this PSU. Note that the r5B12 board versions require firmware revision M4 or newer (found in the Releases section).

 

Another possibility is to use the most recent build that can be found in the Master branch. In that case, move to the Clone or download option and select Download ZIP option to save the latest build on your PC as shown on Fig. 35.

 

Additionally you have to download library for Ethernet controller that can be found here. Otherwise you can expect error while compiling (that issue is addressed in GitHub issue #159).

 

Fig. 35: Firmware download

 

When the zip file has finished downloading, extract the files in the master.zip package. The following folder tree should be created:

 

Fig. 36: Firmware folders (as shown in Ubuntu Linux)

 

The two folders will be used to compile firmware within the Arduino IDE: eez_psu_sketch and libraries. The contents of the latter one must be copied into the Arduino folder containing 3rd party libraries. The directory (folder) needed will vary; it could be e.g. /home/denis/Arduino/libraries on Linux or My Documents\Arduino\libraries on Windows. See also this article.

 

The firmware upload require the following steps:

  • Power up the PSU
  • Make sure that no loads are connected on the outputs
  • (Re)start the Arduino IDE
  • Check that the correct USB port is selected under Tools… Port:
  • Load the firmware program (i.e., an Arduino sketch) eez_psu_sketch.ino (File… Open)
  • Start the upload (Sketch… Upload or select the Upload icon on toolbar)
  • While the upload procedure proceeds, a progress bar will appear (Fig. 37).
  • Reset or restart the PSU if necessary

 

Fig. 37: An Arduino sketch is successfully uploaded

 

On first start after the firmware is properly installed, the touchscreen calibration page (Fig. 38) will be displayed; you must not skip this test since without a calibrated touchscreen interaction could be erratic or even impossible. Thereafter, a welcome page (Fig. 40) will be displayed for a few seconds when the PSU is turned on.

 

Fig. 38: First power on touch screen calibration

 

Fig. 39: Power on welcome screen

 

When the initial touchscreen calibration is finished, the self-test will be started. Passing it is a good indicator that MCU control over all circuits has been established. If the self-test is passed, no additional message will be displayed, and the firmware will proceed with the main page (Fig. 40).

 

Fig. 40: Main PSU display (the home page)

 

 

A work in progress

 

 

Building instructions r5B12 (draft 0.6) HOT

Simple building instructions and firmware upload for EEZ H24005 programmable power supply.

License CC BY-SA 4.0 Author This email address is being protected from spambots. You need JavaScript enabled to view it. Website Website Date 2017-04-25 Language  English File Size 2.56 MB Download 1,001 Download

 

1 ^Solder comes in solid forms (generally used for such things as plumbing), and in wire with embedded soldering flux. In the last case, that flux must be compatible with electronic parts; use of acid core or acidic paste flux damages electronic parts and PCBs. The usual embedded rosin core flux types are R, RMA, or RA, in increasing order of activity, with RMA being a good general purpose choice. Organic flux (typically denoted as water soluble) is still more active and, like RA, must be removed after soldering lest PCB traces or joints be prone to failure. Solder paste can be used for SMD parts and those with exposed heatsink tabs, but don't forget that solder paste is not easy to apply by hand, can be messy, and in the best case has a very limited shelf life even when refrigerated; use only a small package, example). The purpose of flux, in all cases, is to chemically clean the surfaces being joined; dirtier and more corroded surfaces require a more active flux to get a good solder joint. Also, note that soldering is not welding, in the sense that the process does not physically and mechanically meld two items. Solder does not dissolve into the surfaces, at least not usefully. Even a good solder joint has little mechanical strength, and two wires, for instance, must be folded back on each other to provide the strength needed. The solder, even in a proper good joint, will not. Soldering is useful only to make electrical contact, and would be improved if it were transparent, for a solder joint may look acceptable but be electrically inadequate due to invisible voids or poor wetting. Solder wets a properly prepared surface when it makes a good joint, and the presence of smooth margins around a solder joint is an indication that this wetting has occurred. Many constructors will already know this, but it may help to point out some of the oddities of solder composition. As used in electronics – for a long time – solder was a mixture of lead and tin (plus, rarely, small amounts of other metals, such as silver). The special composition 63% tin / 37% lead, is called eutectic, and has the property of having a definite melt / solidify temperature, which is the lowest of any tin/lead mixture. 60/40 solder is close, and is more common, but like all non-eutectic solders doesn't have a definite melting point, getting more and more mushy as the temperature increases; the official term is plastic region. It is harder to tell just when the joined parts have been properly wetted, and sufficiently cooled that inadvertent small motions will not compromise the joint leading to eventual failure. Concern over health issues due to lead content in solders has led to the RoHS regulations, originally in the EU, which are designed to remove lead from solder. Compositions of conforming solders vary, but most include tin as well as some silver, antimony, etc. None has a melting temperature as low as 63/37 eutectic solder, all seem to have an extended plastic region, and all require much higher temperatures. Use of a vapor 'extractor' is a good idea in any case; these are a small fan with an attached filter which disperse, and ideally absorb, soldering fumes (nearly entirely from the flux used), reducing the amount available to be breathed into lungs; some even have built-in lights. Flux vapor contains a considerable variety of unpleasant and incontestably dangerous (in sufficient concentration) chemicals. It is fortunate that soldering releases only small amounts. Metal contamination (e.g., by lead particles) is largely confined to hands and fingers, so touching eyes or nose whilst soldering is to be avoided. And, wash hands thoroughly after a session at the bench with the soldering iron to avoid food or drink contamination. Lead really is a very significant toxic material, in very small amounts, especially neurotoxically.
2 ^The most common form is part water and part alcohol – avoid those with additional ingredients such as perfume or oils – higher alcohol concentrations are more effective in dissolving and removing flux residue. Extra stuff will often leave a different residue on the board example, and paper wipes example for cleaning (the microfibre sort leaves much less fluff and fiber bits behind. Common paper towels for kitchen use are not very useful). More aggressive chemicals for flux residue removal include acetone, and lacquer thinner. All of these very flammable and quite dangerous especially the last two – so make very certain there is no ignition source in the vicinity (a hot soldering, a lit cigarette, or an electric heater, or switches or relays all qualify, as do invisible commutation sparks in normally operating large (or very small) motors – heaters, water pumps, air conditioners, fans, ...). In fact, cleaning PCBs of flux residue is best done outside of a structure, in the open air and, ideally, with a light and refreshing (and dispersive!) breeze. Use the smallest amount of cleaning fluid possible.
3 ^If they get spilled anyway, an LCR meter can help sort them out. Many DMMs don't have a capacitance measurement feature, and of those which do, still more are just barely adequate. There are some fully satisfactory and inexpensive meters (usually called transistor testers) available on the Internet, built around an Atmel microcontroller, and based on an open source design from Germany. At this writing, those built around the 328 chip (firmware version 1.12 or later) are known to work well. They are usually more awkward than a purpose built LCR meter, and may not accommodate as wide a capacitance range as you need. On the other hand, purpose built LCR meters are more expensive, though they often support more precise 4-wire measuring techniques (i.e., Kelvin wiring) and can also measure resistance values too low for most DMMs. And inductors too! Unfortunately, they are not as well protected from mistake and unsuspected circuit conditions as is a good DMM, and so are not a generally satisfactory substitute.
Add a comment

Subcategories