[[PageOutline]] = Concept = A question we typically receive deals with power consumption of our product. Usually, these questions deal with power differentiating between typical operating power that we state on our ​[https://www.gateworks.com/products/industrial-single-board-computers/imx6-single-board-computer-gateworks-ventana-family/ products page] and what the user is actually seeing. This page will try to detail what typical power usage means and our internal power measurements with various modes of operation and different types of hardware. = Power Measurements = The following "Power Table" shows our results for different processor configurations for our different products. Our "typical" power usage comes from our standard product, processor dependent power usage, as seen in [wiki:ventana/power#processordependentpowerusage this section below]. The power differences between our BSP's is due to the fact that some drivers do not exist in one, and do in the other. Because of this, the BSP with more driver support has the ability to turn off certain components and save power that the other cannot. == Processor Dependent Power Usage == Each "delta" is based on our standard product at a linux prompt with the vendor kernel using the Yocto 1.8 BSP, which is **bolded** in the table below. To calculate a power estimate for a particular system configuration start with the lower power range found in this chart and then go down to the Peripheral Power Table and add the power numbers for each of the different peripherals to these base number. Note these are general guidelines and results can vary widely depending on the software running and system setup. These are **approximated** values. Ranges show feasible min-max overall draws. ||= Processor Deltas =||= GW5100 =||= GW5200 =||= GW5300 =||= GW5400 =||= GW5510 =||= GW5520 || || i.MX6SOLO || -.1W || -.1W || -.1W || -.42W || **1.32-3.95W** || -.1W || || i.MX6DL || **.79-4W** || **2.85-4.7W** || **3.25-6.3W** || -.32W || +.1W || **2.23-4.8W** || || i.MX6Q || +.23-3W || +.1-3.4W || +.5-3.7W || **5.34-11.2W** || +.1-3W || +.3-3W || If you wish to discuss a board with a cpu change from our standard product, please our sales department ​here. == Peripheral Power Table == The following table denotes power consumption based on peripheral use. The <==== symbol shows that the previous value holds in this place. An 'x' means that functionality does not exist on that particular board. These are **approximated** values. ||= Peripheral Table =||= GW5100 =||= GW5200 =||= GW5300 =||= GW5400 =||= GW5510 =||= GW5520 =||= Notes || || OpenWrt Prompt (14.08) || +1.1W || +.31W || +1.21W || +.7W || +.9W || +1.07W || Please see note 1; Delta is based on above Yocto values || || 100mbps Link || +.11W || <===== || <===== || <===== || <===== || <===== || || || 1000mbps Link || +.50W || <===== || <===== || <===== || <===== || <===== || || || 100mbps udp iperf client || +.81W || <===== || <===== || <===== || <===== || <===== || || || 400mbps udp iperf client || +1.18W || <===== || <===== || <===== || <===== || <===== || || || OTG+4GB FLASH || +.38W || <===== || <===== || <===== || <===== || <===== || Generic 4GB Flash Drive || || HDMI Out || +.18W || <===== || <===== || <===== || <===== || <===== || Please see note 2 || || HDMI In || x || x || x || +1W || <===== || x || Please see note 3 || || HDMI In / Out || x || x || x || +1.3W || <===== || x || Please see note 4 || || LVDS 0% || x || +.88W || <===== || <===== || x || x || LVDS screen is connected, but blanked || || LVDS Out (50%) || x || +1.85W || <===== || <===== || x || x || Please see note 2 || || CVBS In || +.34W || <===== || <===== || <===== || x || x || Please see note 3 || || CVBS In / Out || +.64W || <===== || <===== || <===== || x || x || Please see note 4 || || CPU Active || +1.62W || <===== || <===== || <===== || <===== || <===== || Please see note 5 || || GPU Active || +1.03W || +1.41W || +1.5W || +2.4W || +.95W || +1.01W || Please see note 6 || || VPU Active || +.55W || <===== || <===== || <===== || <===== || <===== || Please see note 7 || || Board Fully Stressed || +3.2W || +1.86W || +3.06W || +5.86W || +2.63W || +2.58W || Please see note 8 || 1. Note that the GW5400 has the most components and thus has higher power cost compared to GW5300 etc since OpenWrt currently doesn't have driver support for all components on the board 2. gst-launch videotestsrc pattern=0 ! mfw_v4lsink device=/dev/video16 3. gst-launch tvsrc device=/dev/video0 ! fakesink 4. gst-launch tvsrc device=/dev/video0 ! mfw_v4lsink device=/dev/video16 5. stress --io 32 --cpu 32 6. export DISPLAY=:0.0; /opt/fsl-gpu-sdk/GLES2/S08_EnvironmentMappingRefraction/S08_EnvironmentMappingRefraction_X11 7. gst-launch-1.0 videotestsrc ! imxvpuenc_h264 ! queue ! imxvpudec ! fakesink 8. Used multiple instances of notes 5,6,7 to reach max current draw For example, to estimate the power range for a GW5100 with an i.MX6DL Processor with Yocto BSP, using 1000mbps link with CVBS In, the estimated power usage would be 0.79W + .5W + .34W = 1.63W at the low end and then add 3.2W to this number if maximally stressed = 4.83W = How to Reduce Power = Reducing power is a very complex topic and widely variable. Freescale has published documents on this topic at the following links: * i.MX6 Solo: ​http://cache.freescale.com/files/32bit/doc/app_note/AN4715.pdf * i.MX6 Dual / Quad: ​http://cache.freescale.com/files/32bit/doc/app_note/AN4509.pdf == IMX6 internal LDO (ldo-bypass vs ldo-enabled) == The IMX6 processor has several internal low dropout (LDO) regulators. Two of these regulate the VDD_ARM (power to the ARM cores) and VDD_SOC (power to everything else with the exception of the VPU and GPU). The voltage input to these LDO's comes from the Power Management IC (PMIC). Based on these LDO's there are two modes of power operation that you can run the IMX6 in on Gateworks Ventana boards: * ldo-enabled: VDD_ARM and VDD_SOC are regulated by the internal LDO's and the PMIC rails are not changed: - results in the least amount of ripple on the VDD_SOC and VDD_ARM rails - at a cost of efficiency (switching regulators are more efficient) and thermal power (if the LDO's are regulating they are producing heat in/at the processor) - increases lifetime of the IMX6 SoC due to voltage setpoints being lower within the processor * ldo-bypass: VDD_ARM and VDD_SOC are regulated by the PMIC switching regulators and the internal LDO's are bypassed (their FET's are wide-open): - results in more ripple on the VDD_SOC and VDD_ARM rails (switching regulators produce more ripple than LDO's) - efficiency is increased and overall board power consumption is decreased - decreases lifetime of the IMX6 SoC due to voltage setpoints being at least 35mV higher within the processor to account for tolerences in the PMIC - some heat dissipation is moved from the IMX6 to the PMIC Gateworks has performed extensive testing on the various Ventana boards and in general has found the following: * the power reduction of using ldo-bypass mode is negligible in many use cases. Only when we would purposely maximize power utilization by stressing the IMX6 would we see differences between the modes. In the heaviest loading situation we realized anywhere from 500mW to 1000mW of savings in ldo-bypass mode * the temperature change of the IMX6 is negligible. Only when we would purposely maximize power utilization by stressing the IMX6 would we see differences between the modes. In the heaviest loading situation we realized about 1 degree C of difference in CPU temperature (ldo-bypass being appx 1C cooler than ldo-enabled) For IMX6 SoC longevity information of ldo-bypass vs ldo-enabled please see the following NXP documents: * [http://www.nxp.com/files/32bit/doc/app_note/AN4724.pdf ​i.MX 6Dual/6Quad Product Lifetime Usage Estimates] * [http://www.nxp.com/files/32bit/doc/app_note/AN4725.pdf i.MX 6Solo/6DualLite Product Lifetime Usage Estimates] The Gateworks bootloader will determine if a kernel has ldo-bypass capability by examining its device-tree carefully prior to jumping to the Linux kernel and will by default (in our current bootloader and BSP's) boot in ldo-enabled mode. The most recent bootloader does have the ability to alter compatible device-tree's in order to boot in ldo-bypass mode if the 'ldobypass' env variable is set to 1. If users wish to run in ldo-bypass mode it is advised that they perform their own stability testing. Users should only consider ldo-bypass mode if they are stretching the limits in power consumption and/or thermal power. Important notes: * if running an IMX6 at 1.2GHz the Freescale datasheet states you must run in ldo-enabled mode (as the processor at that frequency is highly susceptible to switching noise). **Note that current Gateworks Ventana boards do not operate at 1.2GHz as those are consumer grade processors** * any power efficiency or thermal benefits are negligible at lower loads and will increase depending on the overall IMX6 load * ldo-bypass mode is not supported yet in mainline-linux - it is only supported in the downstream vendor kernels. In order to support it, you must have a PMIC that can vary its VDD_ARM and VDD_SOC rails (which Ventana boards have), a PMIC driver, configure the arm and soc regulators in the kernel device-tree to the pmic regulators instead of the IMX anatop regulators, and configure the IMX internal LDO's to be fully open. * We have chosen to default to using ldo-enabled in our BSP's because we feel it provides cleaner power and overall reliability margin in the extended temperature range and environments that our customers use our products in. == Peripherals == The table above shows the power draw for many of the peripherals. By not using these, the power is thus reduced. Removing these peripherals on custom board is an option. == DVFS == Dynamic Voltage and Frequency Scaling (DVFS) can reduce the frequency of the processor and thus lower the power. See more about [wiki:DVFS Dynamic Frequency and Voltage Scaling] == Reducing Cores == It is possible to schedule processes to specific cores on the processor. This load balancing can be helpful. However, you cannot actually 'turn off' a core. Even if a process is not running on a core, the core is still powered up. = Power Protection = **Note: below applies to Ventana boards except GW55xx and GW51xx** For the power input we have an input TVS for protection. Here is the datasheet for the part (SMAJ58A is the part we use): [http://www.littelfuse.com/~/media/electronics/datasheets/tvs_diodes/littelfuse_tvs_diode_smaj_datasheet.pdf.pdf ​Link Here] The actual DC/DC is rated to 100V input and the FETs to 80V so we have plenty of headroom and have not had any issues with customers running the boards off auto power. We also have a series diode in the power path which protects against reverse voltage dumps.