6-48V Intelligent Automotive grade Power Supply
The DCDC-NUC was designed to provide user specified(+12V or +19V) regulated power output from a wide input voltage(6V-48V). Default output setting is set to +12V.
It has a range of intelligent functions not found in any tradition USB converters.
The unit is able to send ON/OFF ‘pulse signals’ to motherboards based on filtered input voltage levels or Ignition sensing, making it an ideal device for automotive or battery powered installations.
For basic operation, you would need to connect a power source to the input connector. Polarity is marked on the PCB. See Diagram & Schematics section for further details
Without any further settings if the input conditions are satisfied the unit will generate +12V regulated.
- Input between 6V-48V
- Programmable voltage thresholds
- Selectable output voltage(+12V,+19V)
- Anti Thump output in automotive mode
- Motherboard startup/shutdown control by ON/OFF pulse
- Motherboard shutdown control by USB
- Highly customizable startup/shutdown timers
- Low Power consumption
- HID-USB connection
- Input, Output Voltage and Current measurement
- Temperature measurement
- Motherboard detection using output Power measurements
- Programmable Spread Frequency Modulation for reduced EMI
- Physical dimensions
Diagram & Schematics
Power Input connectors
- P1 Output (4pin mini-FIT JR)
- P1.1, P1.2 - GND
- P1.3, P1.4 - Output voltage
- P2 Input (4pin mini-FIT JR)
- P1.1 - GND
- P1.2 - Ignition
- P1.3 - Input voltage
- P1.4 - Thump
- P7 Auxiliary output
- P7.1, P7.2 - GND
- P7.3, P7.4 - Output voltage
- P4 Motherboard POWER SW connection, no polarity (JST PH connector, 3pin)
- P4.1: SW1
- P4.2: GND
- P4.3: SW2
- P6 USB header (not populated)
- P6.1: GND
- P6.2: USB D+
- P6.3: USB D-
- P6.4: +5V
- P3 programming header, MCU reset (POGO pins)
- P3.1: nMCLR
- P3.2: GND
- P3.3: +3.3V
- P3.4: PGD
- P3.5: PGC
- P5 USB connector (micro-USB connector)
- Switch 1
- ON : Output voltage is 19V
- OFF: Output voltage is 12V
- Switch 2
- Switch 3
- Switch 4
- Switch 5
- ON : Switch to Bootloader mode
- OFF: Switch to Firmware mode
Switching between the two available output voltages must be done with the device powered off.
NUC and OS Settings
- NUC related settings
- Setting up the NUC's behavior when power is re-applied:
- - press F2 key during the boot sequence to entering the NUC's BIOS (Visual BIOS 2.0)
- - first click on Advanced then click on Power menu button
- - in Secondary Power Settings section select Power On option for After Power Failure
- - the picture shows the right option in a red framework
- - now the power supply should be able to START the NUC by applying corresponding voltage to its power input
- OS related settings
- Setting up the Windows 7 Power Button behavior:
- - from Control Panel select Power Options then on the left pane select Choose what the power buttons do (or do: Control Panel\Hardware and Sound\Power Options\System Settings)
- - then at Power and sleep button settings select Shut down option for power button
- - the picture shows the right option in a red framework
- - now the power supply should be able to STOP the OS (and thus the NUC too) by sending a shut down command via USB
Note: CONFIG1 parameter bit4 field should be set to "1" (see Parameter List)
It is recommended that you only connect USB power to the device when making a firmware update via “bootloader mode”.
There are two ways to enter in bootloader mode: 1a) or 1b).
1a) Slide the SW1 DIP switch button 1 in ON position.
1b) Press the Switch to bootloader button on the configuration software's user interface.
2) Start the HIDBootloader v2.9j.exe software provided to flash the new firmware.
3) Press File->Import Firmware Image
4) Locate the hex file and open it.
5) Press Program->Erase/Program/Verify Device
6) If used option 1a) slide the SW1 DIP switch button 1 in OFF position, else skip this step.
7) Press Program->Reset Device
8) After the device reconnects on USB with the configuration software the new firmware version will be displayed in the title bar of the software.
2 fast blinks and a pause, repeated every 5s
Low energy state,used in AUTOMOTIVE mode
Initial delay or USB only mode
3 fast blinks and a pause, repeated every 750ms
Signals the Initial Delay, before conditions are met for startup or if the unit is only USB powered
Led is allways ON, signals the Output is ON
Led is blinking every 2 sec,ON for 1 sec, OFF for 1 sec
In AUTOMOTIVE mode, signals the period between Ignition is OFF and the Motherboard OFF pulse is sent, see IGN_OFF_TO_MOB_PULSE_OFF_TOUT parameter
Led is blinking 3 times during a 2 sec period
In AUTOMOTIVE mode, signals the period between Motherboard OFF pulse is sent and Output is turned OFF, see HARD_OFF_TOUT parameter
-40oC to +85oC (storage), -40oC to +65oC (operating)
50K Hrs @ 85oC, >= 200K Hrs at 65oC (projected)
Output/Input Rail Output Current (buck/boost converter)
Maximum input current: 5A
Peak Input current: 6A(<30 seconds)
Maximum output current: 5A (input current dependent)
Peak output Current: 6A(<30 seconds @48V input)
NOTE: When operating at high voltage (input or output) or/or operating at elevated temperatures de-rating up to 30% might be necessary, forced ventilation required. For long life operation, please ensure that hottest component on-board is kept below 65C.
Support and warranty
Standard Hardware Warranty 1Year / US, 2 Year EU.
0-Dumb mode (DUMB) 1-Automotive mode (AUTOMOTIVE)
When all power supply start-up conditions are met, the PSU will wait this time before continuing with the start-up sequence.
If the input voltage is beyond this threshold and all other start-up conditions are met, the PSU can start.
Instantly turn off the PSU if the input voltage is below this threshold.
If the input voltage is below this threshold and all other start-up conditions are met, the PSU can start.
If input voltage is below this threshold during IGN_OFF_TO_MOB_PULSE_OFF_TOUT then shutdown sequence will be initiated immediately.
Input voltage filtering
Ignition voltage filtering
If ignition voltage is beyond this threshold, ignition is considered to be ON.
If ignition voltage is below this threshold, ignition is considered to be OFF.
After ignition is considered ON, the PSU will wait this time before the output is turned ON.
After the output is turned ON, the PSU will wait this time before the THUMP output gets enabled. This setting is only valid in automotive mode.
After the output is turned ON, the PSU will wait this time before sending the start-up pulse to the motherboard.
The length of the start-up/shutdown pulse sent to the motherboard.
After the motherboard boots up, the ignition voltage sensing will be disabled for this period.
If ignition is considered to be OFF, the PSU will wait this time before sending the shutdown pulse to the motherboard.
After the shutdown pulse is sent to the motherboard, the PSU will wait this time before the output is turned OFF.
Output current limit setting. Resolution is 1280mA, minimum setting is 560mA.
Modulation period parameter of the Random Spread Frequency Modulation module (used for EMI reduction purposes)
Frequency deviation parameter of the Random Spread Frequency Modulation module (used for EMI reduction purposes)
Operating frequency of the Switched Mode Power Supply. Default 300kHz
Configuration register. Used for enabling/disabling modules. 0 - disabled, 1 - enabled
Configuration register. Used for enabling disabling modules. 0 - disabled, 1 - enabled
If output power measured is higher than this threshold the connected motherboard is considered to be ON.
If output power measured is lower than this threshold the connected motherboard is considered to be OFF.
The number of times the internal Flash program memory has been written.
Windows OS built-in support
The DCDC-NUC implements one generic USB class (USB HID), therefore most of the operating systems are recognizing it without any additional driver installation.
The configuration software provides interface for DCDC-NUC monitoring, logging and setup.
It's recommended to be used by users with deeper understanding of the DCDC-NUC hardware since permits setting voltages, currents and other parameters which can be
dangerous if they are set without precaution.
The configuration software has two main screens (Status and Settings) and a header with the important voltage/current values.
The first main screen is the "Status"
Example of this screen is shown in the next image:
The title bar shows the connection status, the firmware version and the mode of the DCDC-NUC. Example: "DCDC-NUC Connected v1.0 Mode: Dumb"
The header of the status screen contains:
- VIn: Input Voltage
- VOut: Output Voltage
- VThump: Thump Voltage
- IIn: Input Current
- IOut: Output Current
- Temp: Temperature
- VIgn: Ignition Voltage
- POut: Output Power
The "Status" screen contains extended information about the current state of the DCDC-NUC like internal state machine, voltages, currents, temperature, different read only state flags. The user also have the possibility to log the current state into a *.csv file in the "Log" section. The "Debug" section is for debug/support and can change between different firmware versions.
The second main screen is the "Settings"
Example of this screen is shown in the next image:
This screen contains two main sections: the individual parameter setup for experienced users and the parameter save/load into/from file section.
The main section of the "Settings" screen is the individual parameter settings.
This is recommended to be done only by experienced users. Any parameter of the DCDC-NUC can be set from here.
Changing one parameter is simple:
- - select the desired parameter from the "Parameter" list (simple click to select, double-click to edit). Below the parameter list a helper text is displayed (same from this manual).
- - after double click introduce the new value in the new popup dialog and press OK
- - the introduced value is checked - if something is wrong (out of limit, bad value etc.) error message will be shown
- - the ! sign will blink on the "Sync all parameters to the DCDC-Nuc" button to show edited but not saved/synced variables
- - after You have done with all parameter setting press the "Sync all parameters to the DCDC-Nuc" button to send all values to the DCDC-Nuc. IMPORTANT: without this step the new values will be lost, nothing is sent to the DCDC-NUC!
IMPORTANT: any parameter setting is taken into account by the DCDC-NUC in this cases:
- - after a full restart either with power cut from all sources (usb, vin)
- - hitting the "Restart DCDC-Nuc" button
- - keeping the "Reload parameters on the fly after sync" checked.
Do any parameter change with precaution, check the parameters and wires before applying it!
For users who need to setup more devices with the same DCDC-NUC settings, it is recommended to use the save/load parameters buttons. The "Parameters: DCDC-Nuc ===> File (settings.ini)" button loads a full configuration from the DCDC-Nuc and saves it to the settings.ini file. You can disconnect the current DCDC-Nuc from the USB and insert a new one, than press the "Parameters: DCDC-Nuc <=== File (settings.ini)" button to send the last saved configuration into the new DCDC-Nuc.
The "Parameters: DCDC-Nuc ===> CSV File (settings.csv)" button loads all parameters from the connected DCDC-NUC and saves it into a csv file. This type of file can be opened by any spreadsheet editor (OpenOffice, Microsoft Excel etc.) and contains the full set of parameters in human readable form.
The "Switch to bootloader" button is intended to be used for firmware updates. After You press this button the DCDC-NUC will disconnect, it will switch to bootloader mode and firmware can be updated as described here
Every save/load/sync operation on the "Settings" screen affects the progress bar and the status bar on the bottom of the screen (labelled with "State:"). In rare cases You might get error here with "try again" message. This happens in case of one parameter byte get's corrupted or timeout occurs during USB communication and/or DCDC-NUC flashing operation. Please try again and contact our support team only if the device gives this error 4-5 times in a row.
Windows System monitor
The system monitor is a tray bar software which shows the current state on the tray bar icon and a semi transparent "always on top" capable small window.
The popup window can be moved anywhere on the screen and can be customized. Our current setup has two skins but any combination is possible playing with the "skin*.mbs" files installed together with this application. The current skin can be selected right clicking on the try icon. The "skin*.mbs" files are simple text ones editable with any text editor (notepad for example).
Adding a new skin is pretty simple – make a skin1.mbs (use the existing skin0.mbs for starting content) and start playing with the values from the new file.
The values are self explanatory – skin name, background image files, font descriptions and label/value pair coordinates for all the important DCDC-NUC values. The size of the popup is defined by the background image – transparent parts can be defined as well (see for example: "bubble1.bmp"). Example screenshots:
Right clicking on the tray icon will pop-up a simple menu:
From which You can see firmware version and state of the DCDC-Nuc from the properties and set some visual parameters of the application (transparency, skin) from Skin:
Mini-box.com provides one DCDC-Nuc API in a DLL (NUCLib.dll) and examples in Visual C++, Visual Basic and Visual C#.
Basic C++/Visual Basic/C# knowledge is needed to use this examples together with the API. The API dll has manifest embedded to permit C# and Visual Basic dynamic load.
The API has a set of functions exported to access the full functionality of the DCDC-NUC.
This functions are:
- extern "C" NUCLIB_API unsigned char nucOpenDeviceHandler(unsigned int timer);//open device handler. timer sets the refresh period in miliseconds (4 messages will be sent in this period). IMPORTANT: the handler can be kept open to notice any DCDC-NUC plugged in
- extern "C" NUCLIB_API void nucCloseDeviceHandler();//close device handler
- extern "C" NUCLIB_API void getNUCDevicePath(char* path);//Get opened device path @param path - recommended length 1024, will return empty string if no device opened
- extern "C" NUCLIB_API unsigned char isNUCConnected();//0=not connected, 1=normal state,2=loading settings from device,3=saving settings from pc,4=saving settings from file
- extern "C" NUCLIB_API unsigned char getNUCMode();//get DCDC-NUC mode: 0=Dumb, 1=Automotive
- extern "C" NUCLIB_API unsigned int getNUCInputFlags();//get DCDC-NUC input flags
- extern "C" NUCLIB_API unsigned int getNUCOutputFlags();//get DCDC-NUC output flags
- extern "C" NUCLIB_API float getNUCVIn();//get DCDC-NUC Input Voltage
- extern "C" NUCLIB_API float getNUCIIn();//get DCDC-NUC Input Current
- extern "C" NUCLIB_API float getNUCVOut();//get DCDC-NUC Output voltage
- extern "C" NUCLIB_API float getNUCIOut();//get DCDC-NUC Output Current
- extern "C" NUCLIB_API float getNUCTemperature();//get DCDC-NUC temperature - 1000 deg C is invalid value (output not enabled)
- extern "C" NUCLIB_API float getNUCVIgnition();//get DCDC-NUC Ignition Voltage
- extern "C" NUCLIB_API float getNUCPOut();//get DCDC-NUC Output Power
- extern "C" NUCLIB_API float getNUCVThump();//get DCDC-NUC Thump Voltage
- extern "C" NUCLIB_API unsigned char getNUCVerMajor();//get DCDC-NUC major version of the firmware
- extern "C" NUCLIB_API unsigned char getNUCVerMinor();//get DCDC-NUC minor version of the firmware
- extern "C" NUCLIB_API unsigned char getNUCDbgByte(int i);//get DCDC-NUC debug bytes
- extern "C" NUCLIB_API unsigned int getNUCTimer(unsigned int cnt);//get DCDC-NUC timer
- extern "C" NUCLIB_API unsigned int getNUCStateMachine();//get DCDC-NUC internal state machine
- extern "C" NUCLIB_API void restartNUC();//restart DCDC-NUC
- extern "C" NUCLIB_API void restartNUCInBootloaderMode();//restart DCDC-NUC in bootloader mode
- extern "C" NUCLIB_API void setNUCCommand1Byte(unsigned char command, unsigned char value);//DCDC-NUC direct commands (for debugging)
- extern "C" NUCLIB_API void setNUCCommand2Byte(unsigned char command, unsigned int value);//DCDC-NUC direct commands (for debugging)
- extern "C" NUCLIB_API void setNUCCommandBuffer(int len, unsigned char* values);//DCDC-NUC direct commands (for debugging)
- extern "C" NUCLIB_API unsigned int getNUCMaxVariableCnt();//get DCDC-NUC maximum variable count
- extern "C" NUCLIB_API unsigned char getNUCVariableData(unsigned int cnt, char* name, char* value, char* unit, char* comment);//get DCDC-NUC variable data
- extern "C" NUCLIB_API void startNUCLoadingSettings(unsigned char to_file, unsigned char compare_with_old);//start loading data from device
- extern "C" NUCLIB_API unsigned char getNUCLoadingSettingsState();//get load settings current state: 0-64 - steps, 100=success, 0xF1-0xFF=failure
- extern "C" NUCLIB_API unsigned char setNUCVariableData(unsigned int cnt, char* value);//set DCDC-NUC variable data for a given variable
- extern "C" NUCLIB_API void startNUCSaveSettings(unsigned char from_file);//start saving data to device
- extern "C" NUCLIB_API unsigned char getNUCSaveSettingsState();//get saving current state: 0-64 - steps, 100=success, 0xF1-0xFF=failure
See the examples for usage.
IMPORTANT: the API dll needs 4 files from Visual Studio 2005 redistribution pack (Microsoft.VC80.CRT.manifest, msvcm80.dll, msvcp80.dll, msvcr80.dll).
IMPORTANT: the API supports only one DCDC-NUC connected to the computer.
Visual C++ Example
Open DCDCNUCTestAPI.sln from the package, set CLibTest project as active project, run it and see CLibTest.cpp for usage example.
Visual Basic Example
Open DCDCNUCTestAPI.sln from the package, set VBLibTest project as active project, run it and see Module1.vb for usage example.
Visual C# Example
Open DCDCNUCTestAPI.sln from the package, set CSLibTest project as active project, run it and see Program.cs for usage example.
Download API and example projects