Difference between revisions of "iMX6 Rex Environmental chamber testing"

From Voipac Wiki
Jump to navigation Jump to search
Line 33: Line 33:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Detailed description about how to setup and run the whole test can be found in section [[#How to prepare the test|How to prepare the test]]. It describes all the scripts and explains log files.
+
Detailed description about how to setup and run the whole test can be found in section [[#Preparing the test|How to prepare the test]]. It describes all the scripts and explains log files.
  
 
== Testing Results ==
 
== Testing Results ==
Line 46: Line 46:
 
|}
 
|}
  
 +
=== Running the boards at -25°C - PASS ===
 +
Test description: Ambient temperature was set to -25°C and the CPU and Memory stress tests were running.
 +
[[image:iMX6_Rex_Development_kit-Env_chamber-Logs_-25°C.jpg|800px]]
  
 +
=== Running the boards at +70°C - PASS ===
 +
Test description: Ambient temperature was set to +70°C and the CPU and Memory stress tests were running.
 +
[[image:iMX6_Rex_Development_kit-Env_chamber-Logs_+70°C.jpg|800px]]
  
 +
=== Fast change of the temperature (from -25°C to +70 °C) - PASS ===
 +
Test description: Ambient temperature was rapidly changed from -25°C to +70 °C. The CPU and Memory stress tests were running.
 +
 +
== Preparing the test ==
 +
=== SD card setup ===
 +
For this test we used [http://downloads.voipac.com/files/iMX6_Rex_Development_kit/module/software/linux/binaries/old/imx6rex-uImage-default-02-MAY-2014 this] kernel and [https://www.imx6rex.com/download/design-files/imx6_rex__development_baseboard/v1i1/firmware/sources_&_other_files/imx6rex-xubuntu-13-04.tar Xubuntu] filesystem. To create a new SD card, [[iMX6 Rex Pro Creating Bootable microSD Card|these instructions]] can be followed.
 +
 +
=== Create the log files ===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
# mkdir /home/ubuntu/testing-env-chamber
 +
# cd /home/ubuntu/testing-env-chamber
 +
# touch cpu-temp.log
 +
# touch stressapptest.log
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
=== Setup the cron ===
 +
To be able to check the CPU temperature every minute a new cron job is setup. ''postfix'' package install is required in this case (for Ubuntu file systems):
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
# sudo apt-get install postfix
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
To setup a cron tab, the file containing all cron jobs needs to be altered. Before running  the crontab for the first time selecting a text editoris required:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
# sudo crontab -e
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
Paste following line to the end of this file. The output time format will be the as for stressapptest, the current CPU temperature will be gathered and saved in the log file.<br /><br />
 +
 +
'''''Note:''''' The percent char '%' has a special purpose in the cron file. When using it in the date command backslash usage before the percent '\%' is needed:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 +
* * * * * { echo -n $(date +\%Y/\%m/\%d-\%T); echo -n "("; echo -n $(date +\%Z); echo -n ") "; cat /sys/devices/virtual/thermal/thermal_zone0/temp; } >> /home/ubuntu/testing-env-chamber/cpu-temp.log
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== Setup the SSH connections ===
 +
We created a simple Eth net with switch and control laptop. We opened 2 SSH session per board (8 session in total). In the first session we started CPU and memory stress test. In the window below we printed out the current CPU temperature. For the next three board we did exactly the same.
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">

Revision as of 12:56, 25 March 2021

On this page environmental stress testing results of iMX6 Rex Development kit are displayed. Detailed instructions about how to setup iMX6 Rex Development kit are also shown. The original article can be accessed on the iMX6Rex.com website.

Hardware configuration

For our testing we used following hardware configuration (you can use anything you have, just be aware of temperature range of the components fitted on your board):

  • 3x iMX6 Rex Development kit in modified Pro configuration
    • 1GHz iMX6 Quad CPU - extended temperature range (-20°C to +105°C)
    • 4x 4Gb DDR3 Memory chips - commercial temperature range (0°C to +95°C)
    • 1GBps Ethernet PHY Tranciever KSZ9021RN - commercial temperature range (0°C ~ +70°C)


  • 1x iMX6 Rex Development kit in alternative Pro configuration
    • 1GHz iMX6 Quad CPU - extended temperature range (-20°C to 105°C)
    • 4x 2Gb DDR3 Memory chips - commercial temperature range (0°C to +95°C)
    • 1GBps Ethernet PHY Tranciever KSZ9021RN - commercial temperature range (0°C to +70°C)



Note: An industrial iMX6 Rex heatsink was used. With a bigger heatsink you can achieve higher temperature.

The setup in environmental chamber:
800px

Test description

The main purpose of this test is to check memory stability of iMX6 Rex Module. During the test you will be running:

  • 4 threads of extensive memory stress test
  • 4 threads of CPU stress test



This is the main command used for the test:

# stressapptest -s 600000 -M 768 -m 4 -C 4 -W --printsec 600 -l /home/ubuntu/testing-env-chamber/stressapptest.log

Detailed description about how to setup and run the whole test can be found in section How to prepare the test. It describes all the scripts and explains log files.

Testing Results

Here are the results of the testing. In the picture below you can see the temperature profile which was set during the testing:
800px

Switch ON/OFF test - PASS

Test description: Boards were switched OFF , left OFF for 10 minutes and then switched ON. These tests were done several times for temperatures between -30°C to -35°C and for a temperature +70°C. All the boards booted up successfully.

400px 400px

Running the boards at -25°C - PASS

Test description: Ambient temperature was set to -25°C and the CPU and Memory stress tests were running. 800px

Running the boards at +70°C - PASS

Test description: Ambient temperature was set to +70°C and the CPU and Memory stress tests were running. 800px

Fast change of the temperature (from -25°C to +70 °C) - PASS

Test description: Ambient temperature was rapidly changed from -25°C to +70 °C. The CPU and Memory stress tests were running.

Preparing the test

SD card setup

For this test we used this kernel and Xubuntu filesystem. To create a new SD card, these instructions can be followed.

Create the log files

# mkdir /home/ubuntu/testing-env-chamber
# cd /home/ubuntu/testing-env-chamber
# touch cpu-temp.log
# touch stressapptest.log

Setup the cron

To be able to check the CPU temperature every minute a new cron job is setup. postfix package install is required in this case (for Ubuntu file systems):

# sudo apt-get install postfix

To setup a cron tab, the file containing all cron jobs needs to be altered. Before running the crontab for the first time selecting a text editoris required:

# sudo crontab -e

Paste following line to the end of this file. The output time format will be the as for stressapptest, the current CPU temperature will be gathered and saved in the log file.

Note: The percent char '%' has a special purpose in the cron file. When using it in the date command backslash usage before the percent '\%' is needed:

* * * * * { echo -n $(date +\%Y/\%m/\%d-\%T); echo -n "("; echo -n $(date +\%Z); echo -n ") "; cat /sys/devices/virtual/thermal/thermal_zone0/temp; } >> /home/ubuntu/testing-env-chamber/cpu-temp.log

Setup the SSH connections

We created a simple Eth net with switch and control laptop. We opened 2 SSH session per board (8 session in total). In the first session we started CPU and memory stress test. In the window below we printed out the current CPU temperature. For the next three board we did exactly the same.