ESP32, Pico W, and STM32 cover Arm and Xtensa. If you want a QingKe RISC-V probe that is neither Arduino nor Python nor Zephyr, a CH32V307V-EVT-R1 running WCHNET C POSTs the same ingest JSON over onboard 10M Ethernet. MounRiver Studio, WCH-Link. No Wi‑Fi module.
WCHNET is IPv4 TCP without a maintained TLS client. This sample uses the same LAN HTTP→HTTPS relay as Uno + W5100 and STM32 Zephyr, so Cloudflare can change CAs without a reflash.
Parts
| Part | Why | Buy |
|---|---|---|
| CH32V307V-EVT-R1 | QingKe RISC-V, onboard 10M PHY + RJ45, WCH-Link. Gigabit MAC is unused here. | WCH CH32V307 · Amazon search |
| Waterproof DS18B20 | Pipe / crawlspace probe. Data on PB12. | Adafruit DS18B20 · Amazon |
| 4.7kΩ resistor | Pull-up from DS18B20 data to 3.3V. Do not power the probe from 5V. | Amazon 4.7k |
| Ethernet drop | DHCP on your LAN. A Pi, NAS, or laptop runs the TLS relay. | Any Cat5e patch cable to your switch. |
Wiring
- DS18B20 VDD → EVT 3.3V
- DS18B20 GND → GND
- DS18B20 data → PB12, 4.7k to 3.3V
- RJ45 → LAN. WCH-Link USB for flash and 115200 serial.
Build and flash
- Open Dashboard → Devices and download CH32V main.c (ingest path filled in), or copy the defines from the ingest callout.
-
On a LAN host:
python3 sketches/relay/push_https_forward.py --listen 0.0.0.0:8080 \ --upstream https://thermaltrace.dev - Set
INGEST_HOSTto that machine (dotted IPv4). Drop the downloaded file overUser/main.c. -
Install
MounRiver Studio.
Open the official
EVT ETH/DHCP
project, keep NetLib /
eth_driver, replace onlyUser/main.c, build, flash. - Serial 115200:
dhcp ok, thenPOST 200. Sensor keytemp1imports on first POST.
Repo drop-in:
sketches/wch/ch32v307_ds18b20_ingest/
(bit-bang 1-Wire on PB12 + WCHNET HTTP client).
Other CH32V boards
Any CH32V307 with the EVT Ethernet PHY can run this C. CH32V203 / CH32V003 do not have the Ethernet MAC. Community Arduino-CH32 cores exist; they are not this sample. A CH32V307 plus W5500 is possible, but then you are back to SPI ioLibrary instead of the onboard MAC.
Why not nRF / TI next?
- nRF52: Bluetooth or Thread, not native Wi‑Fi HTTPS.
- nRF7002 DK: Nordic Wi‑Fi 6 works in nRF Connect SDK, but TLS CA pinning on Zephyr is still a maintenance trap.
- TI SimpleLink / NXP RW612: capable Wi‑Fi C SDKs, smaller hobbyist footprint than EVT + WCHNET.
Related
- Adding devices
- STM32 Zephyr ingest
- Raspberry Pi Pico W ingest
- Python HTTPS relay
- AVR assembly ingest
- All sketches ↗
Amazon buy links may include an Associates tag. Adafruit and other vendor links are direct (Adafruit does not run an affiliate program). ThermalTrace may earn a commission from qualifying Amazon purchases at no extra cost to you.
FAQ
Can a CH32V post to ThermalTrace without Arduino or Python?
Yes. The CH32V307V-EVT sample is WCHNET C in MounRiver Studio: drop-in User/main.c on the official ETH/DHCP project, WCH-Link flash, onboard 10M Ethernet. DS18B20 on PB12. HTTP to the LAN TLS relay, same as Uno W5100 and STM32 Zephyr. Guide: thermaltrace.dev/about/ch32v-riscv-ingest.
Why not HTTPS straight from the CH32V?
WCHNET is IPv4 TCP/UDP without a maintained TLS client. ThermalTrace ingest is HTTPS. The LAN relay keeps the MCU on HTTP and lets a Pi/NAS handle TLS, which is the same pattern as Uno Ethernet and STM32 Zephyr.
Is this Arduino-CH32 or PlatformIO Arduino?
No. Some community cores wrap CH32V for Arduino IDE. This sample is vendor C (QingKe RISC-V, WCHNET), not an .ino.