Close Menu
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
Facebook X (Twitter) Instagram
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us
Facebook X (Twitter) Instagram Pinterest YouTube LinkedIn
How To Electronics
  • Articles
    • Learn Electronics
    • Product Review
    • Tech Articles
  • Electronics Circuits
    • 555 Timer Projects
    • Op-Amp Circuits
    • Power Electronics
  • Microcontrollers
    • Arduino Projects
    • STM32 Projects
    • AMB82-Mini IoT AI Camera
    • BLE Projects
  • IoT Projects
    • ESP8266 Projects
    • ESP32 Projects
    • ESP32 MicroPython
    • ESP32-CAM Projects
    • LoRa/LoRaWAN Projects
  • Raspberry Pi
    • Raspberry Pi Projects
    • Raspberry Pi Pico Projects
    • Raspberry Pi Pico W Projects
  • Electronics Calculator
How To Electronics
Home » Getting Started with Realtek AMB82-Mini IoT AI Camera Arduino Dev. Board
AMB82-Mini IoT AI Camera

Getting Started with Realtek AMB82-Mini IoT AI Camera Arduino Dev. Board

Mamtaz AlamBy Mamtaz AlamUpdated:June 28, 202511 Mins Read
Share Facebook Twitter LinkedIn Telegram Reddit WhatsApp
Getting Started with Realtek AMB82-Mini IoT AI Camera Arduino Dev. Board
Share
Facebook Twitter LinkedIn Pinterest Email Reddit Telegram WhatsApp

Introduction

This is a getting started tutorial on Realtek AMB82-Mini IoT AI Camera Arduino Dev. Board which is a very powerful alternative to ESP32-CAM Module

The AMB82-MINI development board uses the Realtek RTL8735BDM SoC, making it ideal for battery-operated devices or equipment that need AI network camera applications. This board ensures both low power consumption and strong IoT security. Additionally, programming and learning AI models with this powerful IoT development kit is quite straightforward and easy.

In this tutorial, we will cover the features and pin descriptions of the board, as well as how to program it using the Arduino IDE. We will provide a beginner’s guide for setting up the Arduino IDE to use this board for a range of AI IoT applications. We will also undertake some practical exercises with this board, like making an LED blink and video streaming over a WebServer. A detail comparison between Realtek AMB82-Mini IoT AI Camera and ESP32-CAM Board is explained as well.

This “Getting Started” tutorial for the Realtek AMB82-Mini is crucial, as we plan to use this module for numerous projects. These projects include streaming live video globally, video recording, security camera usage, face recognition, object detection and identification, Embedded AI Vision Camera, along with other projects based on neural networks.


Bill of Materials

We need the following components for this tutorial. You can purchase the components from given links.

S.N.ComponentsQuantityPurchase Links
1Realtek AMB82-Mini IoT AI Camera Board1Seeed Studio
2Micro-USB Cable1Amazon | AliExpress
3SD Card (Optional)1Amazon | AliExpress



Introducing the Realtek AMB82-Mini IoT AI Camera Board

The Realtek AMB82-Mini IoT AI Camera Board is a development tool designed to streamline the creation of AI network camera applications.

Realtek AMB82-Mini IoT AI Camera

Equipped with the highly integrated Realtek RTL8735BDM SoC, this board facilitates low-power 802.11 a/b/g/n WLAN and BLE solutions. Comprising of an Arm® v8M MCU, DualBand Wi-Fi, Bluetooth BLE5, an audio codec, an ISP, H264/H265 encoder, DDR2 128MB memory, and a neural network intelligent engine, the RTL8735BDM SoC ensures efficient amalgamation of diverse applications and controls.

The AMB82-Mini is optimized for battery-powered appliances, demonstrating swift boot-up time in milliseconds and consuming ultra-low power in mA/uA depending upon the applications. Its embedded security architecture with TrustZone/security mechanism and dual-band Wi-Fi ensures secure, high-quality H264/H265 video streaming with minimal power consumption, making it ideal for IoT applications.

In addition, the AMB82-Mini is compatible with multiple programming platforms such as RTOS, IAR, GCC, and Arduino IDE. It is not just limited to wireless network camera designs; the board’s internal NN engine can support edge AI devices, enabling the development of intelligent equipment and a plethora of AI models, including object detection, audio recognition, and facial recognition. With the AMB82-Mini, developers can explore the limitless potential of IoT and AI technology in their future products.


Key Features & Specifications of Realtek AMB82-Mini

  • MCU: 32-bit Arm v8M, up to 500MHz
  • NPU: Intelligent Engine @ 0.4 TOPS
  • Memory: 768KB ROM, 512KB RAM, 16MB Flash, Supports MCM embedded DDR2/DDR3L memory up to 128MB
  • Wi-Fi: 802.11 a/b/g/n, Dualband 2.4GHz/5GHz Wi-Fi & Wi-Fi simple config
  • Bluetooth: Bluetooth Low Energy (BLE) 5.1
  • Security: Hardware cryptographic engine, Secure boot, Trust-Zone, Wi-Fi WEP, WPA, WPA2, WPA3, WPS
  • Audio Codec: ADC/DAC/I2S
  • ISP/Video: HDR / 3DNR / WDR ; H264/H265/JPEG video encoder 1080p@30fps +720p@30fps
  • Camera module: JXF37 1920×1080 full HD CMOS image sensor with wide view angel FOV 130° optical lens
  • Interface: 1 Microphone on Dev Board, 2 Micro USB_B, 1 MicroSD card slot, 2 tact switch button, 3 UART, 2 SPI, 1 I2C, 8 PWM, 2 GDMA, Max. 23 GPIOs




Layout Overview of Realtek AMB82-Mini Board

The front side of the board has so many components. It has a SD Card adapter which supports SD card up to 32GB. It can be used for storing images and videos. It has a microphone which supports 3 key features, Audio codec, Video codec and NN (build in NPU for AIoT). The board features internal DDR2 128MB on SoC and 16MB external SPI Nor flash on Dev. Board called W25Q128JVSIQ.

The FPC Connector is used to connect the Camera. It has two push buttons, i.e. Boot Button and Reset Button. The boot button will put the device into programming mode. And reset is used to reset the board while programming or during a normal operation.

There are three LED on the board, i.e. Power LED, LED_B and LED_G. The LED_B is programmable. There are two USB ports as well, i.e. Micro-USB and USB OTG. Using the Micro-USB we can upload the code to the board or establish a serial communication with the computer.

On the backside of the board the main controller Realtek RTL8735BDM SoC is embedded. This chip has ARMv8M architecture and support an amazing speed up to 500 MHz more than twice of ESP32. On the both sides of the board, there are GPIO pins which supports UART, GPIO, ADC, PWM, IIC, SPI, MIPI . Through these interfaces, AMB82 MINI can connect with external electronic components & sensors.


JXF37 Camera Image Sensor Module

The Realtek AMB82-Mini Board has a Camera Module called JXF37. The JXF37 is a 5 Megapixel high-quality camera featuring a Full HD CMOS image sensor with a resolution of 1920×1080 pixels. This impressive resolution provides crystal clear images with fine details, making it ideal for a variety of applications including security, photography, and videography.

JXF37 1920x1080 full HD CMOS image sensor

A unique feature of the JXF37 is its wide field of view (FOV) of 130 degrees, provided by its high-quality optical lens. This wide viewing angle allows for a broader perspective, making the camera perfect for capturing expansive landscapes, large group pictures, or wide area surveillance.


ISP Features

  • Advanced temporal and spatial noise reduction(3DNR)
  • Support major brands of DOL-HDR or Staggered-HDR sensors
  • Support MIPI CSI-2 data lane
  • Support Auto Banding, Auto Exposure, Auto White Balance
  • Black level compensation and dead pixel cancellation
  • Lens shading compensation
  • Advanced contrast adjustment and sharpness enhancement
  • Programmable color matrix and gamma table
  • Digital WDR
  • Image enhancement(brightness, contrast, saturation, hue and sharpness)
  • ISP tuning tool

Pinout of Realtek AMB82-Mini


Important Documents Links

  1. User Manual
  2. Board Layout
  3. Board Schematic
  4. Ameba Arduino SDK page



Realtek AMB82-Mini IoT AI Camera Board VS ESP32-CAM Board

Realtek AMB82-Mini IoT AI Camera Board VS ESP32-CAM Board

Here’s a comparison of the Realtek AMB82-Mini IoT AI Camera Board and the ESP32 CAM Board in a tabular format:

Specification AMB82-Mini IoT AI Camera Board ESP32 CAM Board
MCU ARMv8M up to 500MHz ESP32-D0WDQ6 dual-core 240MHz
NPU Intelligent Engine @ 0.4 TOPS None
Memory 768KB ROM, 512KB RAM, 16MB Flash, Supports MCM embedded DDR2/DDR3L memory up to 128MB 520KB SRAM, 4MB Flash
Wi-Fi 802.11 a/b/g/n 1×1, Dualband 2.4GHz/5GHz Wi-Fi 802.11 b/g/n Wi-Fi
Bluetooth BLE 5.1 Bluetooth 4.2
Security Hardware cryptographic engine, Secure boot None
Audio Codec ADC/DAC/I2S None
ISP/Video HDR/3DNR/WDR; H264/H265/JPEG video encoder None
Camera Module JXF37 1920×1080 full HD CMOS image sensor OV2640 2MP CMOS image sensor 1600 x 1200
Camera Resolution Maximum 5 Megapixels 2 Megapixels
Programming Platforms RTOS, IAR, GCC, Arduino IDE Arduino IDE

Getting Started with AMB82-Mini using Arduino IDE

The best part the Realtek AMB82-Mini IoT AI Camera Board is it supports Arduino IDE. You can check the Arduino IDE SDK for this board from the GitHub repository.

Getting Started with AMB82-Mini using Arduino IDE

Before Getting started with Realtek AMB82-Mini Board, connect the Camera and Antenna to the main PCB Board. Also insert the SD Card in SD Card slot.


Setting Up Arduino IDE

First we need to install the AMB82-Mini Board on Arduino IDE. To do that n your Arduino IDE 2.0, go to File > Preferences.

Copy and paste the following line to the Additional Boards Manager URLs field.

1
https://github.com/ambiot/ambpro2_arduino/raw/main/Arduino_package/package_realtek.com_amebapro2_index.json

Open the Boards Manager. You can go to Tools > Board > Boards Manager… or you can simply click the Boards Manager icon in the left-side corner.

Search for AMEBA and press the install button for Realtek Ameba Boards. That’s it. It should be installed after a few seconds.




Testing the Installation

To test the AMB82-Mini add-on installation, we’ll upload a simple code that blinks the on-board LED.

Copy the following code to your Arduino IDE:

1
2
3
4
5
6
7
8
9
10
11
12
13
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}
 
// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // turn the LED on (HIGH is the voltage level)
  delay(1000);                      // wait for a second
  digitalWrite(LED_BUILTIN, LOW);   // turn the LED off by making the voltage LOW
  delay(1000);                      // wait for a second
}


Uploading the Sketch

Connect the AMB82-Mini Board to your computer using the micro-USB cable.

On the top drop-down menu, select the “unknown” board. A new window, as shown below, will open.

You should select your AMB82-Mini Board and the COM port.

The board doesn’t have an automatic programmer. So in order to program the board, follow the following sequence:

 

  • Press and hold the boot button
  • Then Press and release the Reset button
  • Finally release the boot button

 

 

The board has now entered in programming mode. At this moment, the blue LED on the board will turn on, indicating the device is in programming mode.

Realtek AMB82-Mini IoT AI Camera Board Boot Mode

Now, you just need to click on the Upload button to upload the code.

After uploading the code the Arduino IDE will show following messages.

Now press the reset button on the AMB82-Mini Board to run it in Normal Mode. The LED will blink for every 1 second.

This completes the testing part. Now we can start using the board for Artificial Intelligence, Machine Learning, Neural Network applications.


HTTP Video Streaming Example

Now let us test the Camera and stream the Video using WebServer. This example uses the camera to capture a JPEG image repeatedly, and sends the images to a browser continuously using HTTP, creating the effect of a video. We can use Chrome, Firefox or any other Web Borwser to connect to the board’s IP address after it has connected to WiFi, or use the APP V7RC.

Go to Files > Examples > AmebaMultimedia > CaptureJPEG > HTTPDisplayJPEGContinuous to open the sketch.

Video Streaming Example

Here is the example code.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <WiFi.h>
#include "VideoStream.h"
 
#define CHANNEL 0
 
// Use a pre-defined resolution, or choose to configure your own resolution
// Depending on your WiFi network quality, using HD resolution may lead to an inconsistent frame rate
//VideoSetting config(VIDEO_HD, CAM_FPS, VIDEO_JPEG, 1);
//VideoSetting config(VIDEO_VGA, CAM_FPS, VIDEO_JPEG, 1);
VideoSetting config(1024, 576, CAM_FPS, VIDEO_JPEG, 1);
 
char ssid[] = "yourNetwork";    // your network SSID (name)
char pass[] = "Password";       // your network password
int status = WL_IDLE_STATUS;
WiFiServer server(80);
 
uint32_t img_addr = 0;
uint32_t img_len = 0;
 
#define PART_BOUNDARY "123456789000000000000987654321"
char* STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n";
char* IMG_HEADER = "Content-Type: image/jpeg\r\nContent-Length: %lu\r\n\r\n";
 
void sendHeader(WiFiClient& client) {
  client.print("HTTP/1.1 200 OK\r\nContent-type: multipart/x-mixed-replace; boundary=");
  client.println(PART_BOUNDARY);
  client.print("Transfer-Encoding: chunked\r\n");
  client.print("\r\n");
}
 
void sendChunk(WiFiClient& client, uint8_t* buf, uint32_t len) {
  uint8_t chunk_buf[64] = {0};
  uint8_t chunk_len = snprintf((char*)chunk_buf, 64, "%lX\r\n", len);
  client.write(chunk_buf, chunk_len);
  client.write(buf, len);
  client.print("\r\n");
}
 
void setup() {
  Serial.begin(115200);
  while (status != WL_CONNECTED) {
    status = WiFi.begin(ssid, pass);
    //status = WiFi.apbegin("AmebaVideoAP", "1");
    delay(5000);
  }
  Camera.configVideoChannel(CHANNEL, config);
  Camera.videoInit();
  Camera.channelBegin(CHANNEL);
 
  server.begin();
}
 
void loop() {
  WiFiClient client = server.available();
 
  if (client) {
    Serial.println("new client connected");
    String currentLine = "";
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        if (c == '\n') {
          if (currentLine.length() == 0) {
            sendHeader(client);
            while (client.connected()) {
              Camera.getImage(CHANNEL, &img_addr, &img_len);
              uint8_t chunk_buf[64] = {0};
              uint8_t chunk_len = snprintf((char*)chunk_buf, 64, IMG_HEADER, img_len);
              sendChunk(client, chunk_buf, chunk_len);
              sendChunk(client, (uint8_t*)img_addr, img_len);
              sendChunk(client, (uint8_t*)STREAM_BOUNDARY, strlen(STREAM_BOUNDARY));
              delay(5);   // Increase this delay for higher resolutions to get a more consistent, but lower frame rate
            }
            break;
          } else {
            currentLine = "";
          }
        } else if (c != '\r') {
          currentLine += c;
        }
      }
    }
    client.stop();
    Serial.println("client disonnected");
  } else {
    Serial.println("waiting for client connection");
    delay(1000);
  }
}

Before uploading the code, you need to make some changes to this code. From the lines, change the WiFi SSID and Password.

1
2
char ssid[] = "yourNetwork";    // your network SSID (name)
char pass[] = "Password";       // your network password

Put the device into programming Mode as we did in LED Blink example above. And the upload the code.



After the code is uploaded successfully, open your Serial Monitor and press the reset button. And look for the messages in Serial Monitor.

The Realtek AMB82-Mini IoT Board will connect to the WiFi Network and print the IP Address of the board.

Using this IP Address, we can stream the video. Therefore, copy the IP Address and paste it on your Web Browser Address bar and hit enter.

The video stream window will appear here now.

Now you can move the Camera in any direction to check the video streaming in Web Server.

Video Streaming using Realtek AMB82-Mini IoT AI Camera Board

You will observe fast moving video streaming without a lag on your Web Browser.

You can move the camera around to see the video stream on the screen. The best thing about this video stream is the resolution is extremely high and moreover the image quality looks so premium and clear.

If you are facing lag in the video or if you have slow internet connection, increase the delay in this following piece of code in loop section.

1
2
3
4
5
6
7
8
while (client.connected()) {
              Camera.getImage(CHANNEL, &img_addr, &img_len);
              uint8_t chunk_buf[64] = {0};
              uint8_t chunk_len = snprintf((char*)chunk_buf, 64, IMG_HEADER, img_len);
              sendChunk(client, chunk_buf, chunk_len);
              sendChunk(client, (uint8_t*)img_addr, img_len);
              sendChunk(client, (uint8_t*)STREAM_BOUNDARY, strlen(STREAM_BOUNDARY));
              delay(5);   // Increase this delay for higher resolutions to get a more consistent, but lower frame rate

You may increase the delay to 5, 10, 15, 20 milliseconds to observe the changes.


Summary & Conclusion

In conclusion, the Realtek AMB82-Mini IoT AI Camera Arduino Dev. Board is a powerful and efficient alternative to the ESP32-CAM Module.

Throughout the tutorial, we have explored the numerous features and pin descriptions of the AMB82-MINI development board. We have demonstrated how to program it using the Arduino IDE, providing a detailed beginner’s guide to facilitate users’ experience with this powerful development kit. Additionally, we have undertaken practical exercises, such as programming an LED blink and implementing video streaming over a WebServer. The detailed comparison between the Realtek AMB82-Mini and the ESP32-CAM Board gives a comprehensive understanding of their specifications and use cases.

As we venture into various projects encompassing live video streaming, video recording, security camera usage, face recognition, object detection and identification, and more, the Realtek AMB82-Mini serves as our tool of choice due to its efficiency and easy programmability. We anticipate that this module will enable breakthroughs in numerous AI IoT applications, aided by the powerful capabilities of neural networks. The ease of programming and learning with this board suggests that it will continue to be a favorite among enthusiasts and professionals alike, potentially sparking innovative new ways of integrating AI and IoT in the future.


Video Tutorial & Guide

Powerful Alternative to ESP32 CAM | Realtek AMB82-Mini IoT AI Camera Board - Getting Started
Watch this video on YouTube.

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email Reddit Telegram WhatsApp
Previous ArticleWhat is OLED Display & How it Works? OLED vs. LCD
Next Article Object Detection & Identification with AMB82-Mini IoT AI Camera

Related Posts

AMB82-Mini Embedded AI Vision - Capture Image & Analyze

AMB82-Mini Embedded AI Vision – Capture Images, Send Prompts, Show Results

Updated:May 7, 20252K
1080p MP4 Video Recorder with AMB82-Mini IoT AI Camera

1080p MP4 Video Recorder with AMB82-Mini IoT AI Camera

Updated:June 28, 202543K
Object Detection & Identification with AMB82-Mini AI Camera

Object Detection & Identification with AMB82-Mini IoT AI Camera

Updated:June 28, 202538K
Add A Comment

CommentsCancel reply

Latest Posts
ESP32 Fingerprint Attendance System with Live Web Dashboard

ESP32 Fingerprint Attendance System with Live Web Dashboard

June 21, 2026
IoT Based PM & Air Quality Monitoring System using ESP32

IoT Based PM & Air Quality Monitoring System using ESP32

June 14, 2026
DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

DIY ESP32 MLX90640 IR Thermal Camera with Live Web Display

May 10, 2026
IoT Activity Tracker with ESP32 & Accelerometer Gyroscope

IoT Activity Tracker with ESP32 & Accelerometer/Gyroscope

May 2, 2026
A Guide to Sourcing Obsolete ICs for Vintage Projects

Beyond AliExpress: A Guide to Sourcing Obsolete ICs for Vintage Projects

April 21, 2026

ESP32 IoT Vehicle Motion Analyzer with MPU6050 & LIS3MDL

April 27, 2026
Building a Smart Sensor Node with a BLE Microcontroller

Building a Smart Sensor Node with a BLE Microcontroller

February 26, 2026
High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

High-Accuracy Pitch, Roll, Yaw with ESP32 & BNO08x IMU

April 27, 2026
Top Posts & Pages
  • ESP32 Fingerprint Attendance System with Live Web Dashboard
    ESP32 Fingerprint Attendance System with Live Web Dashboard
  • IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
    IoT AC Energy Meter with PZEM-004T & ESP32 WebServer
  • ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
    ESP32 CAN Bus Tutorial | Interfacing MCP2515 CAN Module with ESP32
  • 12V DC to 220V AC Inverter Circuit & PCB
    12V DC to 220V AC Inverter Circuit & PCB
  • MAX30102 & Arduino: Heart Rate + Blood Oxygen Monitoring
    MAX30102 & Arduino: Heart Rate + Blood Oxygen Monitoring
  • How to use Modbus RTU with ESP32 to read Sensor Data
    How to use Modbus RTU with ESP32 to read Sensor Data
  • IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
    IoT Based ECG Monitoring with AD8232 ECG Sensor & ESP32
  • Buck Converter: Basics, Working, Design & Application
    Buck Converter: Basics, Working, Design & Application
Categories
  • Arduino Projects (197)
  • Articles (60)
    • Learn Electronics (19)
    • Product Review (15)
    • Tech Articles (28)
  • Electronics Circuits (46)
    • 555 Timer Projects (21)
    • Op-Amp Circuits (7)
    • Power Electronics (13)
  • IoT Projects (205)
    • ESP32 MicroPython (7)
    • ESP32 Projects (82)
    • ESP32-CAM Projects (15)
    • ESP8266 Projects (76)
    • LoRa/LoRaWAN Projects (22)
  • Microcontrollers (38)
    • AMB82-Mini IoT AI Camera (4)
    • BLE Projects (18)
    • STM32 Projects (19)
  • Raspberry Pi (93)
    • Raspberry Pi Pico Projects (57)
    • Raspberry Pi Pico W Projects (12)
    • Raspberry Pi Projects (24)
Follow Us
  • Facebook
  • Twitter
  • Pinterest
  • Instagram
  • YouTube
About Us

“‘How to Electronics’ is a vibrant community for electronics enthusiasts and professionals. We deliver latest insights in areas such as Embedded Systems, Power Electronics, AI, IoT, and Robotics. Our goal is to stimulate innovation and provide practical solutions for students, organizations, and industries. Join us to transform learning into a joyful journey of discovery and innovation.

Copyright © How To Electronics. All rights reserved.
  • About Us
  • Disclaimer
  • Privacy Policy
  • Contact Us
  • Advertise With Us

Type above and press Enter to search. Press Esc to cancel.

Ad Blocker Enabled!
Ad Blocker Enabled!
Looks like you're using an ad blocker. Please allow ads on our site. We rely on advertising to help fund our site.