Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.

ADS1115 Arduino: 16-bit ADC Precision Measurement Guide

After designing industrial sensor systems requiring millivolt-level measurement accuracy, I learned that <a href=”https://pcbsync.com/arduino/”>Arduino</a>’s built-in 10-bit ADC falls dramatically short for precision applications. The standard Uno measures voltage in 4.88mV steps—adequate for basic projects but completely inadequate when measuring thermocouples, load cells, or sensitive analog sensors where resolution matters. Integrating the ADS1115 Arduino combination transforms measurement capability from 1024 discrete levels to 65,536 levels, improving resolution 64-fold while adding programmable gain amplification enabling accurate measurement of signals from 256mV to 6.144V full scale.

The Arduino community often accepts the built-in ADC’s limitations without exploring better options. You’ll spend hours debugging sensor drift or erratic readings that stem directly from insufficient ADC resolution rather than faulty sensors or code. Professional instrumentation, industrial monitoring, and scientific data acquisition all demand precision the Arduino alone cannot deliver. Understanding how to implement ADS1115 Arduino systems properly bridges this capability gap, enabling genuinely accurate analog measurements in maker projects and commercial products alike.

From understanding 16-bit resolution benefits to wiring I2C connections correctly, from configuring programmable gain for optimal accuracy to implementing differential measurements for noise rejection, this comprehensive guide covers everything needed to leverage the ADS1115’s precision capabilities. Whether measuring battery voltage with millivolt accuracy, reading strain gauges for weight measurement, or monitoring analog sensors in industrial environments, mastering ADS1115 integration elevates project capabilities dramatically.

Understanding ADC Resolution and the ADS1115 Advantage

Before diving into implementation details, understanding why 16-bit resolution matters clarifies when you need the ADS1115 versus when Arduino’s built-in ADC suffices.

Arduino’s Built-in ADC Limitations

Standard Arduino boards (Uno, Nano, Mega) incorporate a 10-bit ADC providing 1024 discrete measurement levels across its reference voltage range:

BoardADC ResolutionReference VoltageVoltage Step SizePractical Limitations
Arduino Uno10-bit (1024 levels)5V4.88mV±2 counts noise typical
Arduino Nano10-bit (1024 levels)5V4.88mVTemperature drift
Arduino Mega10-bit (1024 levels)5V4.88mVSlow sampling (15kHz max)
ESP3212-bit (4096 levels)3.3V0.8mVNon-linear, noisy

Calculation Example: Measuring a 2.5V signal with Arduino’s 10-bit ADC:

ADC reading = (2.5V / 5V) × 1024 = 512

Actual voltage = 512 × 4.88mV = 2.499V

This 4.88mV resolution seems acceptable until you consider real-world noise. Arduino’s ADC typically exhibits ±2-3 count jitter even with stable DC input. That 512 reading bounces between 510-514, representing ±10mV uncertainty—over 0.4% error without accounting for linearity or reference voltage accuracy.

When Built-in ADC Suffices:

  • Reading potentiometer positions (coarse adjustments)
  • Detecting button analog keyboards (voltage divider detection)
  • Monitoring battery voltage with ±50mV accuracy acceptable
  • Light sensors, basic temperature sensors (±1°C precision)
  • Projects where relative measurements matter more than absolute accuracy

ADS1115 16-Bit Resolution Benefits

The ADS1115 provides 16-bit resolution, translating to 65,536 discrete measurement levels:

Resolution Calculation: At ±6.144V range (default gain):

Voltage step = 12.288V / 65536 = 0.1875mV per bit = 187.5μV

This represents 26× better resolution than Arduino’s 4.88mV steps. But resolution alone doesn’t guarantee accuracy—the ADS1115 combines high resolution with precision components:

ADS1115 Specifications:

  • 16-bit Delta-Sigma ADC architecture
  • Typical accuracy: 0.01% (best case scenario)
  • Maximum accuracy: 0.15% (includes all error sources)
  • Low noise: ~25μV RMS at highest gain
  • Four single-ended or two differential input channels
  • Programmable data rate: 8 to 860 samples per second
  • I2C interface consuming only 2 Arduino pins
  • Programmable gain amplifier (PGA): 1x to 16x

When ADS1115 Becomes Necessary:

  • Thermocouple measurements requiring sub-degree resolution
  • Load cell/strain gauge applications (weight measurement)
  • Battery monitoring needing precise state-of-charge estimation
  • Industrial sensor monitoring (4-20mA current loops)
  • Scientific data acquisition requiring documented accuracy
  • Differential measurements reducing common-mode noise
  • Projects measuring signals below 100mV full scale

ADS1115 Module Pinout and I2C Addressing

Understanding the ADS1115 breakout board’s physical connections and addressing scheme prevents common wiring mistakes.

Physical Pin Configuration

Most ADS1115 modules follow Adafruit’s standard 10-pin layout:

Pin NameFunctionConnection
VDDPower SupplyArduino 5V or 3.3V
GNDGroundArduino GND
SCLI2C ClockArduino A5 (Uno) or SCL pin
SDAI2C DataArduino A4 (Uno) or SDA pin
ADDRAddress SelectGND, VDD, SDA, or SCL
ALRTAlert/ReadyOptional interrupt pin
A0Analog Input 0Sensor signal input
A1Analog Input 1Sensor signal input
A2Analog Input 2Sensor signal input
A3Analog Input 3Sensor signal input

Power Supply Considerations: The ADS1115 operates from 2.0V to 5.5V supply voltage. Most modules work identically whether powered from Arduino’s 5V or 3.3V rail. Input signals cannot exceed VDD + 0.3V without risking damage—measure 5V signals only when powering ADS1115 from 5V supply.

Internal Pull-up Resistors: Quality breakout boards include 10kΩ pull-up resistors on I2C lines (SCL/SDA) and ALRT pin. When using multiple I2C devices, verify total pull-up resistance stays above ~2kΩ to prevent excessive bus loading.

I2C Address Configuration

The ADS1115’s clever addressing scheme enables connecting up to four modules on a single I2C bus using only one address pin (ADDR):

ADDR Pin ConnectionI2C AddressHex Value
Connected to GND0x480b1001000
Connected to VDD0x490b1001001
Connected to SDA0x4A0b1001010
Connected to SCL0x4B0b1001011

Default Configuration: Most breakout boards include a 10kΩ pull-down resistor connecting ADDR to GND, setting default address to 0x48. This works immediately without additional wiring.

Multiple ADS1115 Configuration: For applications needing more than 4 analog inputs, connect multiple ADS1115 modules with different ADDR pin configurations. Total capacity: 16 single-ended inputs or 8 differential inputs from four modules sharing the I2C bus.

Wiring ADS1115 to Arduino

Proper physical connections ensure reliable communication and accurate measurements.

Basic Single-Ended Measurement Wiring

Arduino Uno Connections:

ADS1115 VDD → Arduino 5V

ADS1115 GND → Arduino GND

ADS1115 SCL → Arduino A5 (or SCL on newer boards)

ADS1115 SDA → Arduino A4 (or SDA on newer boards)

ADS1115 ADDR → GND (default address 0x48)

Sensor output → ADS1115 A0

Arduino Mega I2C Pins: Unlike Uno, the Mega places I2C on different pins:

  • SDA: Pin 20
  • SCL: Pin 21

Connect ADS1115 to these pins rather than A4/A5 which serve only as analog inputs on Mega.

Sensor Ground Reference: Critical consideration often overlooked—the sensor being measured must share common ground with both Arduino and ADS1115. Floating grounds create offset voltages and erratic measurements.

Differential Measurement Wiring

Differential mode measures voltage difference between two input pins, rejecting common-mode noise affecting both inputs equally:

Differential Pair Configuration:

ADS1115 A0 → Sensor positive output

ADS1115 A1 → Sensor negative output (or ground reference)

Example Application: Measuring bridge sensor (load cell, strain gauge):

Load cell excitation+ → 5V regulated supply

Load cell excitation- → GND

Load cell signal+ → ADS1115 A0

Load cell signal- → ADS1115 A1

The ADS1115 measures only the voltage difference between A0 and A1, ignoring any common-mode voltage present on both inputs simultaneously. This dramatically improves noise immunity in electrically noisy environments.

Installing and Configuring ADS1115 Library

Software integration requires installing proper libraries and understanding configuration options.

Library Installation

Adafruit ADS1X15 Library (recommended):

  1. Open Arduino IDE Library Manager (Sketch → Include Library → Manage Libraries)
  2. Search “Adafruit ADS1X15”
  3. Install “Adafruit ADS1X15” by Adafruit
  4. Library manager automatically installs dependencies (Adafruit BusIO)

Alternative Library: The jrowberg/I2Cdevlib provides another ADS1115 implementation with different features. Most users find Adafruit’s library better documented and easier to use.

Verifying Installation: After installation, verify by opening File → Examples → Adafruit ADS1X15 → singleended. If this menu item appears, library installed successfully.

Basic Code Example

#include <Wire.h>

#include <Adafruit_ADS1X15.h>

Adafruit_ADS1115 ads;  // Create ADS1115 object

void setup() {

  Serial.begin(9600);

  if(!ads.begin()) {

    Serial.println(“Failed to initialize ADS1115!”);

    while(1);

  }

  Serial.println(“ADS1115 initialized successfully”);

}

void loop() {

  // Read analog input A0 as single-ended

  int16_t adc0 = ads.readADC_SingleEnded(0);

  // Convert to voltage

  float voltage = ads.computeVolts(adc0);

  Serial.print(“A0: “);

  Serial.print(adc0);

  Serial.print(” (“);

  Serial.print(voltage, 4);  // Print with 4 decimal places

  Serial.println(“V)”);

  delay(1000);

}

This basic example reads channel A0 every second, displaying both raw ADC value and calculated voltage. The computeVolts() function automatically accounts for current gain setting.

Configuring Programmable Gain Amplifier

The ADS1115’s PGA enables optimizing measurement range for signal amplitude, maximizing resolution and accuracy.

Available Gain Settings

Gain SettingVoltage RangeResolution (LSB size)Ideal Signal Range
GAIN_TWOTHIRDS±6.144V187.5μV4V to 6V signals
GAIN_ONE±4.096V125μV2.5V to 4V signals
GAIN_TWO±2.048V62.5μV1V to 2V signals
GAIN_FOUR±1.024V31.25μV500mV to 1V signals
GAIN_EIGHT±0.512V15.625μV250mV to 500mV signals
GAIN_SIXTEEN±0.256V7.8125μV<250mV signals

Gain Selection Strategy: Choose the lowest gain setting that prevents signal clipping. Higher gain provides better resolution but clips sooner. If measuring a 3V signal, use GAIN_ONE (±4.096V range) rather than default GAIN_TWOTHIRDS, improving resolution from 187.5μV to 125μV.

Setting Gain in Code:

void setup() {

  Serial.begin(9600);

  ads.begin();

  // Set gain for ±2.048V range (62.5μV resolution)

  ads.setGain(GAIN_TWO);

  // For low-voltage sensors (<256mV), use maximum gain

  // ads.setGain(GAIN_SIXTEEN);  // ±0.256V range, 7.8125μV resolution

}

Critical Warning: Setting gain does NOT change the absolute maximum input voltage! The ADS1115 can measure inputs from GND-0.3V to VDD+0.3V regardless of gain setting. Gain only determines full-scale range within that absolute limit. Applying 5V input with GAIN_SIXTEEN won’t damage the chip (if VDD=5V) but will clip, reading maximum value.

Reading Multiple Channels and Differential Measurements

The ADS1115 provides four single-ended inputs or two differential pairs, enabling various measurement configurations.

Single-Ended Multi-Channel Reading

void loop() {

  int16_t adc0, adc1, adc2, adc3;

  // Read all four channels

  adc0 = ads.readADC_SingleEnded(0);

  adc1 = ads.readADC_SingleEnded(1);

  adc2 = ads.readADC_SingleEnded(2);

  adc3 = ads.readADC_SingleEnded(3);

  // Convert to voltages

  float voltage0 = ads.computeVolts(adc0);

  float voltage1 = ads.computeVolts(adc1);

  float voltage2 = ads.computeVolts(adc2);

  float voltage3 = ads.computeVolts(adc3);

  Serial.print(“A0: “); Serial.print(voltage0, 4); Serial.print(“V  “);

  Serial.print(“A1: “); Serial.print(voltage1, 4); Serial.print(“V  “);

  Serial.print(“A2: “); Serial.print(voltage2, 4); Serial.print(“V  “);

  Serial.print(“A3: “); Serial.println(voltage3, 4); Serial.print(“V”);

  delay(1000);

}

Sequential Reading: The ADS1115 uses a single internal ADC multiplexed across channels. Each readADC_SingleEnded() call reconfigures the multiplexer, waits for conversion (conversion time depends on data rate setting), then returns the result. Reading four channels sequentially takes 4× as long as reading one.

Differential Measurement Implementation

void setup() {

  Serial.begin(9600);

  ads.begin();

  // Configure for ±2.048V differential range

  ads.setGain(GAIN_TWO);

}

void loop() {

  // Read differential voltage between A0 and A1

  // Result = voltage(A0) – voltage(A1)

  int16_t differential = ads.readADC_Differential_0_1();

  float voltage = ads.computeVolts(differential);

  Serial.print(“Differential (A0-A1): “);

  Serial.print(voltage, 6);  // 6 decimal places for precision

  Serial.println(“V”);

  delay(500);

}

Differential Pair Options:

  • readADC_Differential_0_1(): Measures A0 – A1
  • readADC_Differential_2_3(): Measures A2 – A3

When to Use Differential Mode:

  • Long cable runs where both signal and ground pick up noise equally
  • Bridge circuits (load cells, strain gauges, Wheatstone bridges)
  • Balanced audio signals
  • Any sensor where common-mode rejection improves accuracy

Practical Application: Precision Voltage Monitoring

Theory becomes practical through real-world implementation. This battery monitoring example demonstrates precision measurement:

LiPo Battery State-of-Charge Monitor

#include <Wire.h>

#include <Adafruit_ADS1X15.h>

Adafruit_ADS1115 ads;

// Voltage divider for battery measurement

// Battery → 10kΩ → A0 → 10kΩ → GND

// Divider ratio: 2:1 (divide battery voltage by 2)

const float DIVIDER_RATIO = 2.0;

// LiPo voltage thresholds

const float LIPO_FULL = 4.2;

const float LIPO_EMPTY = 3.0;

void setup() {

  Serial.begin(9600);

  ads.begin();

  // Use ±4.096V range for ~8V maximum battery voltage

  ads.setGain(GAIN_ONE);

}

float readBatteryVoltage() {

  int16_t adc = ads.readADC_SingleEnded(0);

  float dividerVoltage = ads.computeVolts(adc);

  return dividerVoltage * DIVIDER_RATIO;

}

float calculateSOC(float voltage) {

  // Simple linear approximation

  if(voltage >= LIPO_FULL) return 100.0;

  if(voltage <= LIPO_EMPTY) return 0.0;

  return ((voltage – LIPO_EMPTY) / (LIPO_FULL – LIPO_EMPTY)) * 100.0;

}

void loop() {

  float batteryVoltage = readBatteryVoltage();

  float soc = calculateSOC(batteryVoltage);

  Serial.print(“Battery: “);

  Serial.print(batteryVoltage, 3);

  Serial.print(“V (“);

  Serial.print(soc, 1);

  Serial.println(“%)”);

  delay(5000);  // Update every 5 seconds

}

Accuracy Improvement: Arduino’s 10-bit ADC measuring 4.2V (divided to 2.1V) provides ~2mV resolution. The ADS1115 at GAIN_ONE provides 125μV resolution—16× improvement enabling state-of-charge estimation accurate to ~1% versus Arduino’s ~5% precision.

Advanced Features and Optimization

Beyond basic measurements, the ADS1115 offers features improving performance in challenging applications.

Adjustable Data Rate

The ADS1115 supports eight data rates from 8 to 860 samples per second (SPS). Default setting: 128 SPS.

void setup() {

  ads.begin();

  // Set data rate to 860 SPS for fastest conversion

  ads.setDataRate(RATE_ADS1115_860SPS);

  // Or for lowest noise, use 8 SPS

  // ads.setDataRate(RATE_ADS1115_8SPS);

}

Data Rate Options:

  • RATE_ADS1115_8SPS: 8 samples/sec, lowest noise
  • RATE_ADS1115_16SPS: 16 samples/sec
  • RATE_ADS1115_32SPS: 32 samples/sec
  • RATE_ADS1115_64SPS: 64 samples/sec
  • RATE_ADS1115_128SPS: 128 samples/sec (default)
  • RATE_ADS1115_250SPS: 250 samples/sec
  • RATE_ADS1115_475SPS: 475 samples/sec
  • RATE_ADS1115_860SPS: 860 samples/sec, fastest

Tradeoff: Lower data rates provide better noise filtering through longer integration time. Higher rates enable faster sampling but sacrifice noise performance. For DC measurements (battery voltage, temperature), use 8-32 SPS. For dynamic signals needing quick response, use 250-860 SPS.

Continuous Conversion Mode

Default mode reads one sample per function call. Continuous mode samples constantly, reading latest value immediately:

void setup() {

  ads.begin();

  // Start continuous conversion on channel 0

  ads.startADCReading(ADS1X15_REG_CONFIG_MUX_SINGLE_0, /*continuous=*/true);

}

void loop() {

  // Read latest conversion result (no delay waiting for new conversion)

  int16_t result = ads.getLastConversionResults();

  float voltage = ads.computeVolts(result);

  Serial.println(voltage, 4);

  delayMicroseconds(100);  // Can sample very quickly

}

Continuous mode enables faster sampling since the ADC converts constantly rather than reconfiguring for each reading.

Useful Resources for ADS1115 Development

Official Documentation and Datasheets

ADS1115 Datasheet: https://www.ti.com/lit/ds/symlink/ads1115.pdf
Complete technical specifications from Texas Instruments including accuracy specifications, timing diagrams, and register descriptions.

Adafruit ADS1X15 Library: https://github.com/adafruit/Adafruit_ADS1X15
Official Arduino library source code with examples and documentation.

Adafruit Learning Guide: https://learn.adafruit.com/adafruit-4-channel-adc-breakouts
Comprehensive tutorial covering wiring, code examples, and troubleshooting.

Hardware Suppliers

Adafruit ADS1115 Breakout: https://www.adafruit.com/product/1085
Original high-quality breakout board with STEMMA QT connector for easy wiring.

SparkFun ADS1115 Breakout: https://www.sparkfun.com/products/15350
Alternative breakout board with Qwiic connector compatibility.

Application Notes and Guides

Understanding Delta-Sigma ADCs: https://www.ti.com/lit/an/slyt423/slyt423.pdf
Technical explanation of delta-sigma ADC architecture used in ADS1115.

PCB Layout Guidelines: https://www.ti.com/lit/an/sbaa485/sbaa485.pdf
Best practices for PCB design with precision ADCs including grounding and filtering.

Frequently Asked Questions

Q: Why does my ADS1115 reading jump around even with stable DC input?

A: Several factors cause noise in precision ADC measurements: (1) Inadequate power supply filtering—add 0.1μF ceramic and 10μF electrolytic capacitors close to ADS1115 VDD pin, (2) Ground loops—ensure sensor, Arduino, and ADS1115 share single-point ground connection, (3) I2C signal integrity—long wires act as antennas picking up noise; keep I2C connections under 6 inches or use shielded cable, (4) Incorrect gain setting—signal too small relative to noise floor; increase gain to use more of ADC range, or (5) Fast data rate with noisy signal—reduce data rate to 8 or 16 SPS for better noise filtering.

Q: Can I measure negative voltages with ADS1115?

A: Yes, but with limitations. The ADS1115 chip itself can only measure voltages within -0.3V to VDD+0.3V range absolutely. In single-ended mode, inputs must stay between GND and VDD. For measuring truly negative voltages, use differential mode with appropriate voltage divider or op-amp level shifting. Example: measuring -5V to +5V signal requires op-amp circuit shifting signal into 0V to VDD range, then ADS1115 differential measurement reconstructs original. Alternatively, for signals near ground, connect sensor ground to ADS1115 A1, sensor signal to A0, and use differential measurement—this measures voltage difference even if sensor ground sits below ADS1115 ground within the -0.3V limit.

Q: How many ADS1115 modules can I connect to one Arduino?

A: Four ADS1115 modules maximum on single I2C bus, providing 16 single-ended inputs or 8 differential pairs. Connect ADDR pin of each module differently (GND, VDD, SDA, SCL) assigning unique I2C addresses (0x48, 0x49, 0x4A, 0x4B). In code, initialize each module with its specific address: ads1.begin(0x48); ads2.begin(0x49); etc. Practical limit depends on I2C bus loading—multiple devices increase bus capacitance requiring stronger pull-up resistors. Typical setups handle four modules reliably with standard 10kΩ pull-ups, but very long wires or many devices may require 4.7kΩ or 2.2kΩ pull-ups for signal integrity.

Q: Does ADS1115 work with 3.3V Arduino like ESP32 or Due?

A: Absolutely. The ADS1115 operates from 2.0V to 5.5V supply, working identically whether powered from 5V or 3.3V. When powered from 3.3V, maximum measurable voltage (VDD+0.3V) becomes 3.6V. For measuring 5V signals with 3.3V-powered ADS1115, add voltage divider reducing signal to under 3.6V full scale. I2C communication works fine mixing voltage levels (5V Arduino with 3.3V-powered ADS1115) because I2C is open-drain with pull-up resistors determining logic high voltage. Just ensure pull-ups connect to the lower voltage rail (3.3V) to prevent damage.

Q: How do I calibrate ADS1115 for maximum accuracy?

A: The ADS1115 includes internal voltage reference and typically requires no user calibration for stated 0.15% maximum accuracy. For applications demanding better than specification performance, implement software calibration: (1) Measure known precision voltage reference (like REF3033 3.3V source) using ADS1115 at intended gain setting, (2) Calculate correction factor: correctionFactor = knownVoltage / measuredVoltage, (3) Apply correction in code: calibratedVoltage = rawVoltage * correctionFactor. Store correction factors in EEPROM for persistence. For ultimate accuracy, calibrate at multiple points across measurement range compensating for non-linearity. Professional approach: use precision voltage calibrator and create lookup table or polynomial correction equation.

Conclusion: Precision Measurement Within Reach

Integrating the ADS1115 Arduino combination elevates measurement capability from hobbyist to professional grade. The transformation from 10-bit to 16-bit resolution, combined with programmable gain amplification and differential measurement capability, enables projects requiring genuine precision rather than mere approximation. Whether monitoring battery state-of-charge with millivolt accuracy, measuring sensor outputs in noisy industrial environments, or building scientific instruments documenting actual measurement uncertainty, the ADS1115 provides the precision previously requiring expensive specialized equipment.

From my perspective designing commercial data acquisition systems, the ADS1115 represents exceptional value—professional-grade 16-bit precision for under $15. This accessibility democratizes accurate measurement, enabling maker projects and small-batch commercial products to achieve measurement capabilities previously limited to expensive industrial instruments. The I2C interface simplifies integration while the extensive Arduino library support removes low-level programming complexity.

Whether upgrading existing projects suffering from Arduino ADC limitations or designing new precision measurement systems from scratch, understanding and implementing ADS1115 integration properly unlocks measurement capabilities that separate professional deployments from prototype experiments. The difference between reading “about 3.3 volts” and measuring “3.287 volts with documented 0.15% accuracy” determines whether your measurements enable genuine analysis or merely provide rough approximations.

Leave a Reply

Your email address will not be published. Required fields are marked *

Contact Sales & After-Sales Service

Contact & Quotation

  • Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.

  • Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.

Drag & Drop Files, Choose Files to Upload You can upload up to 3 files.

Notes:
For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.