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

How to Use Spark Core (v1.0): Examples, Pinouts, and Specs

Image of Spark Core (v1.0)
Cirkit Designer LogoDesign with Spark Core (v1.0) in Cirkit Designer

Introduction

The Spark Core is a Wi-Fi-enabled microcontroller developed by Particle. It is designed specifically for Internet of Things (IoT) applications, offering seamless cloud connectivity and robust processing power. At its heart is an ARM Cortex-M3 processor, which provides the computational capability needed for a wide range of IoT projects. The Spark Core simplifies device management and data exchange through its integration with the Particle Cloud platform.

Explore Projects Built with Spark Core (v1.0)

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Arduino Pro Mini and HC-05 Bluetooth Controlled Coreless Motor Clock with MPU-6050 Feedback
Image of drone: A project utilizing Spark Core (v1.0) in a practical application
This is a motion-controlled device with wireless capabilities, powered by a LiPo battery with voltage regulation. It uses an Arduino Pro Mini to process MPU-6050 sensor data and control coreless motors via MOSFETs, interfacing with an external device through an HC-05 Bluetooth module.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Motion Tracking System with ICM20948 Sensor
Image of ICM20948: A project utilizing Spark Core (v1.0) in a practical application
This circuit features a SparkFun ESP32 Thing Plus microcontroller interfaced with an Adafruit ICM20948 9-axis motion sensor via an Adafruit TXB0104 4-channel bi-directional level shifter. The ESP32 reads data from the ICM20948 sensor, calculates orientation angles such as pitch, roll, yaw, and azimuth, and outputs these values to the serial monitor. The level shifter ensures compatibility between the 3.3V logic levels of the ESP32 and the 1.8V logic levels required by the ICM20948.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32-Based Environmental Monitoring System with Ultrasonic, Gas, and IR Sensors
Image of Automatic Object Sensing Smart Dustbin: A project utilizing Spark Core (v1.0) in a practical application
This circuit features an ESP32 microcontroller as the central processing unit, interfacing with a variety of sensors and output devices. It includes an HC-SR04 ultrasonic sensor for distance measurement, an IR sensor for object detection, an MQ-2 gas sensor for detecting combustible gases, and an OLED display for data visualization. Additionally, a Servomotor SG90 is connected for actuation purposes. The ESP32 reads sensor data and controls the servo based on programmed logic, which is not provided in the code input.
Cirkit Designer LogoOpen Project in Cirkit Designer
SparkFun Pro Micro Based Motion Tracking System with BMI160 and EEPROM Data Logging
Image of Basic Arduino Sparkfun Pro Micro + BMI160: A project utilizing Spark Core (v1.0) in a practical application
This circuit is designed for motion sensing and data logging applications. It features a SparkFun Pro Micro microcontroller interfaced with a BMI160 6DOF sensor for motion detection and two 24LC512 EEPROM chips for extended data storage. The microcontroller reads gyroscopic and accelerometer data from the BMI160 sensor, processes it, and stores it in the EEPROM, with power supplied by a Polymer Lithium Ion Battery.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Spark Core (v1.0)

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 drone: A project utilizing Spark Core (v1.0) in a practical application
Arduino Pro Mini and HC-05 Bluetooth Controlled Coreless Motor Clock with MPU-6050 Feedback
This is a motion-controlled device with wireless capabilities, powered by a LiPo battery with voltage regulation. It uses an Arduino Pro Mini to process MPU-6050 sensor data and control coreless motors via MOSFETs, interfacing with an external device through an HC-05 Bluetooth module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of ICM20948: A project utilizing Spark Core (v1.0) in a practical application
ESP32-Based Motion Tracking System with ICM20948 Sensor
This circuit features a SparkFun ESP32 Thing Plus microcontroller interfaced with an Adafruit ICM20948 9-axis motion sensor via an Adafruit TXB0104 4-channel bi-directional level shifter. The ESP32 reads data from the ICM20948 sensor, calculates orientation angles such as pitch, roll, yaw, and azimuth, and outputs these values to the serial monitor. The level shifter ensures compatibility between the 3.3V logic levels of the ESP32 and the 1.8V logic levels required by the ICM20948.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Automatic Object Sensing Smart Dustbin: A project utilizing Spark Core (v1.0) in a practical application
ESP32-Based Environmental Monitoring System with Ultrasonic, Gas, and IR Sensors
This circuit features an ESP32 microcontroller as the central processing unit, interfacing with a variety of sensors and output devices. It includes an HC-SR04 ultrasonic sensor for distance measurement, an IR sensor for object detection, an MQ-2 gas sensor for detecting combustible gases, and an OLED display for data visualization. Additionally, a Servomotor SG90 is connected for actuation purposes. The ESP32 reads sensor data and controls the servo based on programmed logic, which is not provided in the code input.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of Basic Arduino Sparkfun Pro Micro + BMI160: A project utilizing Spark Core (v1.0) in a practical application
SparkFun Pro Micro Based Motion Tracking System with BMI160 and EEPROM Data Logging
This circuit is designed for motion sensing and data logging applications. It features a SparkFun Pro Micro microcontroller interfaced with a BMI160 6DOF sensor for motion detection and two 24LC512 EEPROM chips for extended data storage. The microcontroller reads gyroscopic and accelerometer data from the BMI160 sensor, processes it, and stores it in the EEPROM, with power supplied by a Polymer Lithium Ion Battery.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Smart home automation (e.g., connected lighting, thermostats)
  • Industrial IoT (e.g., remote monitoring, predictive maintenance)
  • Wearable devices
  • Environmental monitoring (e.g., air quality sensors, weather stations)
  • Prototyping and development of connected devices

Technical Specifications

The following table outlines the key technical details of the Spark Core:

Specification Details
Processor ARM Cortex-M3 (STM32F103CB)
Clock Speed 72 MHz
Flash Memory 128 KB
RAM 20 KB
Wi-Fi Module Broadcom BCM43362
Wi-Fi Standards 802.11b/g/n
Operating Voltage 3.3V
Input Voltage Range 3.6V to 6V
Digital I/O Pins 18
Analog Input Pins 8
PWM Pins 8
Communication Protocols UART, SPI, I2C
Cloud Connectivity Particle Cloud (via Wi-Fi)
Dimensions 0.8" x 1.2" (20.3 mm x 30.5 mm)

Pin Configuration and Descriptions

The Spark Core features a 20-pin layout. The table below describes the pin functions:

Pin Name Type Description
1 VIN Power Input Input voltage (3.6V to 6V)
2 GND Ground Ground connection
3 D0 Digital I/O General-purpose digital I/O
4 D1 Digital I/O General-purpose digital I/O
5 D2 Digital I/O General-purpose digital I/O
6 D3 Digital I/O General-purpose digital I/O
7 D4 Digital I/O General-purpose digital I/O
8 D5 Digital I/O General-purpose digital I/O
9 D6 Digital I/O General-purpose digital I/O
10 D7 Digital I/O General-purpose digital I/O
11 A0 Analog Input Analog input pin
12 A1 Analog Input Analog input pin
13 A2 Analog Input Analog input pin
14 A3 Analog Input Analog input pin
15 A4 Analog Input Analog input pin
16 A5 Analog Input Analog input pin
17 RX UART RX UART receive pin
18 TX UART TX UART transmit pin
19 RST Reset Resets the microcontroller
20 3V3 Power Output 3.3V regulated output

Usage Instructions

How to Use the Spark Core in a Circuit

  1. Powering the Spark Core:

    • Connect the VIN pin to a power source (3.6V to 6V). Alternatively, you can power the device via the micro-USB port.
    • Ensure the GND pin is connected to the ground of your circuit.
  2. Connecting to Wi-Fi:

    • Use the Particle mobile app or Particle CLI to configure the Wi-Fi credentials.
    • The Spark Core will automatically connect to the Particle Cloud once powered and configured.
  3. Programming the Spark Core:

    • Write your code using the Particle Web IDE, Particle CLI, or a local development environment.
    • Flash the firmware to the Spark Core over-the-air (OTA) or via USB.
  4. Interfacing with Sensors and Actuators:

    • Use the digital and analog pins to connect sensors, actuators, and other peripherals.
    • Refer to the pin configuration table to identify the appropriate pins for your application.

Important Considerations and Best Practices

  • Voltage Levels: Ensure all connected peripherals operate at 3.3V logic levels to avoid damaging the Spark Core.
  • Wi-Fi Signal Strength: Place the Spark Core in an area with a strong Wi-Fi signal for reliable cloud connectivity.
  • Firmware Updates: Regularly update the firmware to benefit from the latest features and security patches.
  • Power Supply: Use a stable power source to prevent unexpected resets or malfunctions.

Example Code for Arduino UNO Integration

The Spark Core can communicate with an Arduino UNO via UART. Below is an example of how to send data from the Spark Core to the Arduino UNO:

Spark Core Code

void setup() {
    Serial.begin(9600); // Initialize UART communication at 9600 baud
}

void loop() {
    Serial.println("Hello from Spark Core!"); // Send data to Arduino
    delay(1000); // Wait for 1 second
}

Arduino UNO Code

void setup() {
    Serial.begin(9600); // Initialize UART communication at 9600 baud
}

void loop() {
    if (Serial.available() > 0) { // Check if data is available
        String data = Serial.readString(); // Read the incoming data
        Serial.println("Received: " + data); // Print the received data
    }
}

Troubleshooting and FAQs

Common Issues and Solutions

  1. Spark Core Not Connecting to Wi-Fi:

    • Ensure the Wi-Fi credentials are correctly configured using the Particle app or CLI.
    • Check that the Wi-Fi network is 2.4 GHz (the Spark Core does not support 5 GHz networks).
    • Verify that the Wi-Fi signal strength is adequate.
  2. Device Not Responding:

    • Press the RST button to reset the device.
    • Check the power supply and ensure it meets the voltage requirements.
  3. Firmware Fails to Flash:

    • Ensure the Spark Core is connected to the Particle Cloud.
    • Use the Particle CLI to flash the firmware locally if OTA flashing fails.
  4. Peripheral Not Working:

    • Double-check the wiring and pin connections.
    • Verify that the peripheral operates at 3.3V logic levels.

FAQs

Q: Can the Spark Core operate without an internet connection?
A: Yes, the Spark Core can run offline, but cloud-based features such as OTA updates and remote monitoring will not be available.

Q: How do I reset the Wi-Fi credentials?
A: Hold down the MODE button until the LED blinks blue, then use the Particle app or CLI to reconfigure the Wi-Fi settings.

Q: Is the Spark Core compatible with Particle's newer devices?
A: Yes, the Spark Core can work alongside newer Particle devices, but it may lack some advanced features available in newer models.

Q: Can I use the Spark Core with a battery?
A: Yes, you can power the Spark Core using a LiPo battery or other compatible power sources within the input voltage range (3.6V to 6V).