Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use HC-12: Examples, Pinouts, and Specs

Image of HC-12
Cirkit Designer LogoDesign with HC-12 in Cirkit Designer

Introduction

The HC-12 is a wireless serial communication module designed for long-range data transmission. Operating in the 433 MHz frequency range, it is based on the SI4463 RF chip and manufactured by Arduino. The module supports transparent serial communication, making it easy to integrate into microcontroller projects without requiring complex RF programming. With a range of up to 1,000 meters in open space (depending on the antenna and environment), the HC-12 is ideal for applications such as remote control, sensor data transmission, and wireless monitoring systems.

Explore Projects Built with HC-12

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Raspberry Pi and H743-SLIM V3 Controlled Servo System with GPS and Telemetry
Image of Avionics Wiring Diagram: A project utilizing HC-12 in a practical application
This circuit is designed for a UAV control system, featuring an H743-SLIM V3 flight controller connected to multiple servos for control surfaces, a GPS module for navigation, a telemetry radio for communication, and a digital airspeed sensor for flight data. The system is powered by a LiPo battery and includes a Raspberry Pi for additional processing and control tasks.
Cirkit Designer LogoOpen Project in Cirkit Designer
GPS-Enabled Telemetry Drone with Speedybee F405 WING and Brushless Motor
Image of Pharmadrone Wiring: A project utilizing HC-12 in a practical application
This circuit is designed for a remote-controlled vehicle or drone, featuring a flight controller that manages a brushless motor, servomotors for actuation, telemetry for data communication, and a GPS module for positioning. It is powered by a lipo battery and includes a receiver for remote control inputs.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered Emergency Alert System with NUCLEO-F072RB, SIM800L, and GPS NEO 6M
Image of women safety: A project utilizing HC-12 in a practical application
This circuit is an emergency alert system that uses a NUCLEO-F072RB microcontroller to send SMS alerts and make calls via a SIM800L GSM module, while obtaining location data from a GPS NEO 6M module. The system is powered by a Li-ion battery and includes a TP4056 module for battery charging and protection, with a rocker switch to control power to the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Automatic Passenger Counter and Temperature Sensor with Wi-Fi Connectivity
Image of Embedded Circuit: A project utilizing HC-12 in a practical application
This circuit is an automatic passenger counter and temperature sensor system powered by a solar charger. It uses an ESP32 microcontroller to interface with two capacitive proximity sensors for counting passengers and a DHT22 sensor for monitoring temperature and humidity, with data being sent to a Blynk mobile app and Google Sheets for real-time tracking and logging.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with HC-12

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Avionics Wiring Diagram: A project utilizing HC-12 in a practical application
Raspberry Pi and H743-SLIM V3 Controlled Servo System with GPS and Telemetry
This circuit is designed for a UAV control system, featuring an H743-SLIM V3 flight controller connected to multiple servos for control surfaces, a GPS module for navigation, a telemetry radio for communication, and a digital airspeed sensor for flight data. The system is powered by a LiPo battery and includes a Raspberry Pi for additional processing and control tasks.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Pharmadrone Wiring: A project utilizing HC-12 in a practical application
GPS-Enabled Telemetry Drone with Speedybee F405 WING and Brushless Motor
This circuit is designed for a remote-controlled vehicle or drone, featuring a flight controller that manages a brushless motor, servomotors for actuation, telemetry for data communication, and a GPS module for positioning. It is powered by a lipo battery and includes a receiver for remote control inputs.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of women safety: A project utilizing HC-12 in a practical application
Battery-Powered Emergency Alert System with NUCLEO-F072RB, SIM800L, and GPS NEO 6M
This circuit is an emergency alert system that uses a NUCLEO-F072RB microcontroller to send SMS alerts and make calls via a SIM800L GSM module, while obtaining location data from a GPS NEO 6M module. The system is powered by a Li-ion battery and includes a TP4056 module for battery charging and protection, with a rocker switch to control power to the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Embedded Circuit: A project utilizing HC-12 in a practical application
ESP32-Based Automatic Passenger Counter and Temperature Sensor with Wi-Fi Connectivity
This circuit is an automatic passenger counter and temperature sensor system powered by a solar charger. It uses an ESP32 microcontroller to interface with two capacitive proximity sensors for counting passengers and a DHT22 sensor for monitoring temperature and humidity, with data being sent to a Blynk mobile app and Google Sheets for real-time tracking and logging.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications

  • Remote control systems
  • Wireless sensor networks
  • Home automation
  • Industrial monitoring and control
  • Robotics communication

Technical Specifications

The HC-12 module is designed for ease of use and reliable performance. Below are its key technical specifications:

Parameter Value
Operating Frequency 433.4 MHz to 473.0 MHz
Modulation Type GFSK
Communication Range Up to 1,000 meters (open space)
Supply Voltage 3.2V to 5.5V
Operating Current 16 mA (transmitting at 20 dBm)
Sleep Current < 22 µA
Baud Rate 1,200 to 115,200 bps
Transmit Power -1 dBm to 20 dBm (adjustable)
Dimensions 27.8 mm x 14.4 mm x 4 mm

Pin Configuration and Descriptions

The HC-12 module has a total of 4 pins, as described in the table below:

Pin Name Description
1 VCC Power supply input (3.2V to 5.5V). Connect to the 5V or 3.3V pin of your microcontroller.
2 GND Ground. Connect to the ground of your circuit.
3 TXD Transmit data pin. Connect to the RX pin of your microcontroller.
4 RXD Receive data pin. Connect to the TX pin of your microcontroller.

Usage Instructions

The HC-12 module is straightforward to use and can be connected to a microcontroller, such as an Arduino UNO, for wireless communication. Below are the steps to use the HC-12 in a circuit:

Connecting the HC-12 to an Arduino UNO

  1. Power the Module: Connect the VCC pin of the HC-12 to the 5V pin of the Arduino UNO and the GND pin to the Arduino's GND.
  2. Connect Data Pins: Connect the TXD pin of the HC-12 to the RX pin of the Arduino UNO and the RXD pin of the HC-12 to the TX pin of the Arduino UNO.
  3. Antenna: Attach an appropriate 433 MHz antenna to the HC-12 module for optimal range.

Example Code for Arduino UNO

The following example demonstrates how to send and receive data using the HC-12 module:

// Example code for HC-12 communication with Arduino UNO
// This code sends "Hello, HC-12!" and listens for incoming data.

#include <SoftwareSerial.h>

// Define HC-12 RX and TX pins
SoftwareSerial HC12(10, 11); // HC-12 TX pin to Arduino pin 10, RX pin to pin 11

void setup() {
  Serial.begin(9600);       // Start serial communication with the PC
  HC12.begin(9600);         // Start serial communication with the HC-12 module
  Serial.println("HC-12 Test Initialized");
}

void loop() {
  // Send data to HC-12
  HC12.println("Hello, HC-12!"); // Send a test message
  delay(1000);                   // Wait for 1 second

  // Check if data is received from HC-12
  if (HC12.available()) {
    String receivedData = HC12.readString(); // Read incoming data
    Serial.print("Received: ");
    Serial.println(receivedData);           // Print received data to Serial Monitor
  }
}

Important Considerations

  • Baud Rate: Ensure the baud rate of the HC-12 matches the baud rate set in your code. The default baud rate is 9600 bps.
  • Antenna: Use a proper 433 MHz antenna to achieve the maximum range.
  • Power Supply: Provide a stable power supply to the module to avoid communication issues.
  • Environment: The communication range may vary depending on obstacles, interference, and environmental conditions.

Troubleshooting and FAQs

Common Issues and Solutions

  1. No Communication Between Modules

    • Cause: Mismatched baud rates.
    • Solution: Ensure both modules are set to the same baud rate. Use the AT+Bxxxx command to configure the baud rate.
  2. Short Communication Range

    • Cause: Poor antenna or interference.
    • Solution: Use a high-quality 433 MHz antenna and minimize obstacles between modules.
  3. Module Not Responding

    • Cause: Incorrect wiring or insufficient power supply.
    • Solution: Double-check the wiring and ensure the power supply voltage is within the 3.2V to 5.5V range.
  4. Data Corruption

    • Cause: Noise or interference in the environment.
    • Solution: Use error-checking mechanisms in your code, such as checksums or parity bits.

FAQs

Q1: Can I use the HC-12 with a 3.3V microcontroller?
A1: Yes, the HC-12 supports a supply voltage range of 3.2V to 5.5V, making it compatible with 3.3V microcontrollers.

Q2: How do I change the communication channel of the HC-12?
A2: Use the AT+Cxxx command to set the channel. For example, AT+C001 sets the module to channel 1.

Q3: What is the maximum data rate supported by the HC-12?
A3: The HC-12 supports baud rates up to 115,200 bps.

Q4: Can I use multiple HC-12 modules in the same area?
A4: Yes, you can use multiple modules by assigning them different channels using the AT+Cxxx command.

By following this documentation, you can effectively integrate the HC-12 module into your projects for reliable wireless communication.