
01 Introduction
Performance testing is a routine testing service provided by MTL for various product teams. Every week, MTL sends a performance testing report to each product team, which mainly includes the performance test results of various products and their corresponding competitors in specified scenarios, as well as the performance trends over the past eight weeks. To ensure the accuracy of the long-term performance data trends, we need to maintain as much as possible the consistency of the testing environment, currently measures include fixing test models, test cases, test servers, test roles, test prerequisites, etc.
However, due to varying environmental temperatures, the performance of mobile phones when running games can also vary, which to some extent affects the consistency of our testing environment, causing confusion for product teams when referencing performance trends.
Therefore, in addition to the aforementioned measures, we also need to consider ensuring the consistency of temperature and heat dissipation conditions in the testing environment, which means testing must be conducted in a temperature-controlled environment. After researching temperature-controlled testing solutions, we found a product called a temperature-controlled test box, but the prices ranged from tens of thousands to even higher. Thus, we decided to develop a temperature-controlled test box ourselves. After several attempts, we successfully developed the temperature-controlled test box for less than 2000 yuan, allowing us to solve the problem of inconsistent performance under different environmental temperatures.
The implementation principle is as follows, we divide it into parts, the box part and the circuit part:
Front preview:
Back preview:
Main shell preview:
The box part is made of acrylic material, forming a relatively enclosed box, composed of the temperature-controlled box and the air duct. The temperature-controlled box is used to isolate external temperatures and has two operation holes for testers to insert their hands into the box for testing. The air duct is connected to the temperature-controlled box, and the air duct contains a cooler, heater, and fan. When the cooling and heating functions are activated, the fan circulates the air inside the temperature-controlled box to achieve cooling and heating effects.
The circuit part mainly provides temperature control, using three temperature sensors distributed at different positions in the temperature-controlled box to obtain the current box temperature; based on the currently set stable temperature, it determines whether to activate the heater or the cooler.
1.
Material List
First, confirm the material list, total cost less than 2000 yuan.
2.
Installation of Circuit Components
(1) Circuit Board
We chose the Arduino UNO R3 board, which has a good cost-performance ratio in terms of price and practicality, and is sufficient to meet our needs.
Before optimization: Initially, we connected the circuit board and components directly with Dupont wires, but problems soon arose. The first was that there were too many and too messy wires, and the second was that Dupont wires could not handle the high load of the cooler and heater.
After optimization: After researching, we decided to fabricate a circuit board to replace these complicated wires, thus solving both the issue of messy wiring and the insufficient load capacity of the wires. The final result looks like this.
(2) Specific Code Implementation
-
Editor: The editor used is the built-in Arduino IDE editor
-
Sensor: Placed at the left rear, right rear, and directly above the main box to obtain the current temperature
The code is as follows:
#include "DHT.h"
#define DHTPIN1 2
#define DHTTYPE DHT22
DHT dht1(DHTPIN1, DHTTYPE);
void setup() {
Serial.begin(9600);
dht1.begin();
delay(200);
}
void loop() {
int crtTemperature = dht1.readTemperature();
Serial.print("crtTemperature:");
Serial.println(crtTemperature);
}
-
Knob: Soldered on the circuit board to set the desired constant temperature
The code is as follows:
const int knobPin = A0; // Knob
void setup() {
Serial.begin(9600);
pinMode(knobPin, INPUT);
}
void loop() {
// Get the set temperature
int settingTemperature = analogRead(knobPin);
Serial.print("knobValue");
Serial.println(knobValue);
}
-
LED Display: Soldered on the circuit board to view the current and set temperature
The code is as follows:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(200);
display.clearDisplay();
}
void loop() {
display.setTextSize(2);
display.setTextColor(WHITE);
display.clearDisplay(); // Clear screen
// Display "MTL"
display.drawBitmap(0, 0, M, 8, 16, 1);
display.drawBitmap(10, 0, T, 8, 16, 1);
display.drawBitmap(20, 0, L, 8, 16, 1);
display.display();
}
-
Fan: Placed on the left and right sides of the air duct, used for ventilation within the air duct, directly connected to the power supply
-
Cooler: Placed in the air duct, used for cooling the box
The code is as follows:
const int coldPin = 12; // Cooler
void setup() {
pinMode(coldPin, OUTPUT);
}
void loop() {
digitalWrite(coldPin, HIGH);
}
-
Heater: Placed in the air duct, used for heating the box
The code is as follows:
const int hotPin = 11; // Heater
void setup() {
pinMode(hotPin, OUTPUT);
}
void loop() {
digitalWrite(hotPin, HIGH);
}
3.
Customizing the Box
Next is to draw the design drawings needed for customizing the box, which takes the factory about 5-7 working days.
1. Temperature-controlled box
2. Air duct
3. Main shell
4.
Optimizing Insulation Effect
Since the box is made of acrylic, although designed to be relatively thick, its insulation effect is still inadequate. To better achieve insulation, we applied thermal insulation cotton to the outside of the box.
5.
Optimizing Appearance
After applying the thermal insulation cotton, the insulation effect did improve significantly, but since the cotton itself is quite soft and fragile, it can be easily damaged by touch, and its aesthetic appeal is also low. So, we applied a layer of carbon fiber membrane on the outside, which not only reinforced the outer layer but also made the box look more aesthetically pleasing.
04 Conclusion
We completed the development of the temperature-controlled test box at a relatively low cost, making it suitable for testing scenarios with significant environmental temperature differences. If anyone has any questions, please scan the QR code below to contact us.

Recommended Reading

Newcomers’ Guide to Functional Testing
Good Communication (Part 1)
Insights on White Box Analysis for Skill Testing
Design Ideas and Testing for Basic Combat Formulas
Since you’ve made it this far, please give us a like before you go~