Quick Start: Connect and Send Data
Create a virtual SIM, connect from your laptop, and send your first data to the platform — no hardware needed, under 5 minutes
Get connected and sending data in under 5 minutes — no IoT hardware needed. This guide uses Soracom Arc, a virtual SIM that connects your laptop to the platform over WireGuard. By the end, you'll have live telemetry visible in the Console.
No hardware? This guide uses Arc (virtual SIM) so you can try the platform from any computer. If you have a physical SIM and IoT device, see Connect a Cellular Device instead.
Prerequisites
- A Soracom account (sign up — free, no payment required)
- WireGuard installed on your computer
curl(included on macOS and most Linux distributions)
Step 1: Create a virtual SIM
- Log in to the Soracom Console
- Go to SIM Management → Add SIM → Create Virtual SIM
- Choose Generate new credentials
- Download the WireGuard configuration file (
.conf)
Your virtual SIM appears in the SIM list with status Ready. The first virtual SIM on every account is free.
Step 2: Connect with WireGuard
Open the WireGuard app and import the configuration file you downloaded:
macOS / Windows / Linux GUI:
- Open WireGuard → Import Tunnel(s) from File
- Select the
.conffile - Click Activate
Linux CLI:
sudo wg-quick up ./arc.conf
The tunnel establishes in a few seconds. Your computer is now connected to the Soracom platform network.
Step 3: Verify connectivity
Test the connection by pinging the platform:
ping -c 3 pong.soracom.io
Expected output:
PING pong.soracom.io (100.127.0.1): 56 data bytes
64 bytes from 100.127.0.1: icmp_seq=0 ttl=64 time=12.4 ms
64 bytes from 100.127.0.1: icmp_seq=1 ttl=64 time=11.8 ms
64 bytes from 100.127.0.1: icmp_seq=2 ttl=64 time=12.1 ms
Traffic through the WireGuard tunnel routes through the Soracom platform — the same network path that physical IoT devices use. Everything you do from here works identically with cellular hardware.
Step 4: Enable Harvest and send data
Before sending data, enable the data store on a group:
- In the Console, go to Groups → Add Group → name it
quickstart - Open the group → Soracom Harvest Data → toggle ON → Save
- Go to SIM Management → select your virtual SIM → Actions → Change Group → select
quickstart
Now send a JSON payload from your terminal:
curl -X POST http://uni.soracom.io \
-H "Content-Type: application/json" \
-d '{"temperature": 23.5, "humidity": 60, "source": "quickstart"}'
Expected response: 201 Created
Step 5: View your data
- In the Console, go to SIM Management → click your virtual SIM → Harvest Data tab
- Your telemetry appears as a timestamped entry
- Click a numeric field name to see it charted over time
Send a few more readings with different values to see the chart update:
curl -X POST http://uni.soracom.io \
-H "Content-Type: application/json" \
-d '{"temperature": 24.1, "humidity": 58, "source": "quickstart"}'
What you built
You're connected to the same platform network that production IoT fleets use. Behind the scenes:
- Your virtual SIM authenticated and established a WireGuard tunnel to the platform
- Traffic routes through a private network overlay (not the public internet)
- The Unified Endpoint (
uni.soracom.io) routed your data to Harvest based on your group configuration - Harvest indexed your payload by device ID and timestamp
From here, you can add any platform service by changing group settings — cloud forwarding, dashboards, alerts, private networking — without changing anything on the device side.
Troubleshooting
WireGuard tunnel won't activate
Symptom: WireGuard shows "Handshake did not complete" or the tunnel stays inactive. Cause: The virtual SIM credentials may have been regenerated, or a firewall is blocking UDP port 51820. Fix: Download a fresh configuration file from the Console. Ensure your network allows outbound UDP on port 51820.
Ping to pong.soracom.io fails
Symptom: ping pong.soracom.io returns "Network unreachable" or times out.
Cause: The WireGuard tunnel isn't active, or DNS isn't resolving through the tunnel.
Fix: Verify the tunnel is active in WireGuard. Try ping 100.127.0.1 directly. If that works, it's a DNS issue — check your tunnel's DNS configuration.
curl returns "Connection refused"
Symptom: curl to uni.soracom.io returns connection refused.
Cause: Harvest isn't enabled on the SIM's group, or the SIM isn't assigned to a group.
Fix: Verify the SIM is assigned to a group with Harvest Data enabled. Check the group settings in the Console.
Data doesn't appear in Console
Symptom: curl returns 201 but no data shows in the Harvest tab.
Cause: The Console time range filter may not include the current time.
Fix: Set the time range to "Last 1 hour" and click refresh.
Next steps
- Send Data to AWS IoT Core — Route device data to your cloud backend
- Connect a Cellular Device — Use a physical SIM with real IoT hardware
- Soracom Air Reference — Bandwidth tiers, SIM types, and advanced configuration
- Platform Overview — Understand the full architecture