

ESP AHT10-Extra
minimalist ESP-8266 temperature/humidity sensor
- Size
- 38.3 × 20.8 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 27
- Nets
- 20
- Pads
- 87
- Tracks, vias
- 215, 16
- Pours
- 4
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 14 Nov 2019
- Updated
- 20 Mar 2020
Overview
ESP AHT10-Extra is an open-source printed circuit board by c-, from the c-/ESP-AHT10-Extra repository on GitHub. It is a 2-layer board of 38.3 × 20.8 mm with 27 parts on 20 nets, routed with 215 tracks and 16 vias.
It is built around the CH330N, AHT10 and VEML7700-TT, with the HT7233, USBLC6-2SC6 and B5817W among its other parts. Its parts include 8 capacitors, 8 resistors, 6 ICs, 2 switches and 1 diode. It belongs with the sensors and measurement boards and the ESP8266 boards of this library.
Main components
6CH330N
SOP-8-20℃~+70℃ 15mA 2Mbps 3.3V、5V Transceiver SOP-8 USB Converters ROHSWCH (Nanjing Qinheng Microelectronics)USB ConvertersAHT10
SMD-40℃~+85℃ 0%RH~100%RH 1.8V~3.6V 23uA Factory calibration I2C ±0.3℃ ±2%RH SMD Temperature and Humidity Sensor ROHSAosong ElecTemperature And Humidity SensorVEML7700-TT
SMD-4P-25℃~+85℃ 120klx 16bit 2.35mm 2.5V~3.6V 3mm 6.8mm I2C Light Intensity Low power/sleep mode、Spectral correction/filtering、High dynamic range measurement、Adjustable gain control、Interrupt/event trigger、Built-in temperature compensation SMD-4P Ambient Light Sensors ROHSVishay IntertechnologyAmbient Light SensorsHT7233
SOT-23-40℃~+85℃ 1 3.3V 300mA 300mV@(300mA) 4uA 8V Fixed Over Current Protection、Over Temperature Protection、Enable Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSHOLTEKVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)B5817W
SOD-123-55℃~+150℃ 1A 1mA@20V 20V 450mV@1A Independent SOD-123 Schottky Diodes ROHShongjiachengSchottky Diodes
README
README.mdESP-AHT10-Extra
Minimalist/compact ESP-8266 environmental sensor/programmer.

This is a Kicad design which uses a PCB USB connector and integrates a ESP-12 (or 07), CH330N USB controller, a small voltage regulator (HT7233), an AHT-10 temperature/humidity sensor, and a VEML-7700 ambient light sensor. Flash and reset buttons are also included.

My prototype was done on a PCB mill (0.3mm 30 degree V-bit), so things like trace sizes and clearances reflect that. 0805 passives are used since that's as small as I can go and still be able to route a trace between the pads.

If you don't want to roll your own PCB's, Oshpark does a nice job on these at a great price. The PCB is approx 39mm x 21mm.

Assembly
This PCB is designed for reflow soldering of the SMD components (I use hot air). I'm sure someone can hand solder it, but it wouldn't be me.
Either or both sensors can be left off entirely, as the application dictates.
R3 should be left out if the ESP modules being used have an internal pullup between RST and 3V3 (which most newer ones seem to have). Otherwise, you end up with a combined pullup resistance near 5k, and GPIO16 though a 1k resistor seems to struggle to pulse that long enough to perform a proper wake. With the modules I've tested (ESP-12E, ESP-12F, ESP-07) there's been no issues with deep sleep wake and R3 unpopulated.
I usually mount my ESP modules on 2mm pin headers. It's not really necessary unless you screw up designs as often as I do. However, doing so technically makes all the USB stuff optional for some boards since I can just remove the module for programming. On the other hand, I'm keeping the USB stuff as I'm finding these boards are an extremely convenient programmers for my pluggable modules.
The standard 1.6mm PCB is too thin to solidly fit most USB ports. I use a thin (0.5mm) 3D printed shim on the front to bring the thickness up. I've milled my latest from 2.17mm thick FR4 and it fits a port perfectly.
Usage
The temperature sensor is mounted to the backside of the board from the ESP-8266. Practically speaking, this means that unless you want to monitor the temperature of the MCU, you need the device to spend as much time in deep sleep as needed to bring the temperature down to ambient. When waking up, it's best to take the temperature reading ASAP during startup, prior to doing something like a DHCP connect, during which the ESP starts to ramp up the temperatures. Testing shows that this sort of delay can spike the temperature reading by 0.5C or more. I expect that a combination of deep sleep and ESP-NOW would be ideal.
I still not sure what I'm going to use the ambient light sensor, but it fits the design nicely. Unfortunately, orientation matters and not all USB jacks are going to cooperate with that.
A minimal example sketch is included. It requires an AHT10 library (I rolled my own, at https://github.com/c-/SnoutnetAHT10/, but others exists, YYMV, etc) and the VEML-7700 library at https://github.com/tedyapo/arduino-VEML7700.
v1.5 of the board used the LTR-303 ambient light sensor. I haven't been a fan of the stability of that device. The VEML-7700 Just Works.
Design Notes
The CH330N is running off the 5V rail, which technically means it's driving the ESP UART at (allowing for a 0.3v drop from D1) approx 4.2V, which is clearly above the 3.6V rated max for the ESP. In practice, the ESP-8266 is quite 5V tolerant on GPIO's, and the CH330N only drives at something like 4mA, so this probably isn't worth worrying about.
I've found that 10K pullups on the I2C sensors works in most cases, but 4.7K might be better. Still testing that.
The HT7233 is a perfectly fine regulator, but most similar SOT-23-3 regulators rated for at least 250mA should work. Just check the pinout.
No auto-reset/program circuit is included; you'll have to use buttons like some kind of caveman.
Bill of Materials
Most parts are from LCSC. Some of these choices aren't ideal, but I had them on hand and they work. A design based around one of the more common DFN-6 sensors like the Si70xx series might happen down the road. I'm also seriously considering a design based on a SOT-23-6 temperature sensor like the LM73, as humidity isn't quite so critical for most of my applications. Note that the photos show 1% resistors; that precision is not necessary, it's just what I usually buy.
- ESP-12 (I usually mount mine on 2mm pin headers)
- Aosong AHT-10 Temperature/Humidity Sensor
- VEML7700 Ambient Light Sensor
- CH330N USB Controller
- Holtek HT-7233 SOT-23-3
- STMicroelectronics USBLC6-2SC6 SOT-23-6
- 100nF 0805 capacitors
- 10uF 0805 capacitors
- 10k 0805 resistors
- 1k 0805 resistor
- 470R 0805 resistor
- B5817W SOD-123F Schottky barrier diode
- 350mA (hold) 0805 fuse
- SPST Tactile Switches
Strictly speaking, most of the USB protection components aren't necessary for a simple sensor device, but I had the parts and the space...
Parts
27| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 100n | Capacitor_SMD:C_0805_2012Metric | C1, C3, C5, C6, C7, C8 |
| 6 | 10K | Resistor_SMD:R_0805_2012Metric | R1, R3, R4, R5, R6, R7 |
| 2 | 10u | Capacitor_SMD:C_0805_2012Metric | C2, C4 |
| 1 | 1K | Resistor_SMD:R_0805_2012Metric | R2 |
| 1 | 350mA | Fuse:Fuse_0805_2012Metric | F1 |
| 1 | 470R | Resistor_SMD:R_0805_2012Metric | R8 |
| 1 | AHT10 | CPB:AHT10-HandSolder | U4 |
| 1 | B5817W | Diode_SMD:D_SOD-123F | D1 |
| 1 | CH330N | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U1 |
| 1 | ESP-12 | CPB:ESP-12Emin | U3 |
| 1 | HT7233 | Package_TO_SOT_SMD:SOT-23 | U2 |
| 1 | PROG | CPB:Tact Switch 6mmx3.5mm C318817 | SW2 |
| 1 | RESET | CPB:Tact Switch 6mmx3.5mm C318817 | SW1 |
| 1 | USB | CPB:usb-PCB | J1 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U5 |
| 1 | VEML7700 | CPB:VEML7700 | U6 |
Questions
How big is the ESP AHT10-Extra PCB?
It measures 38.3 × 20.8 mm and has 2 copper layers, 1.6 mm thick.
What parts does the ESP AHT10-Extra use?
27 parts, built around the CH330N, AHT10, VEML7700-TT and HT7233. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the ESP AHT10-Extra KiCad files?
From the c-/ESP-AHT10-Extra repository on GitHub, at the commit this page was made from: the board is ESP-AHT10-Extra.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the ESP AHT10-Extra design in my own project?
Its repository states no licence, so its author keeps all rights: ask c- before reusing the design.
Similar boards
- 2 layers71.2 × 38.1 mm

- 2 layers71.2 × 38.1 mm

- 2 layers19.1 × 24.1 mm

Malenki nano2
MarkR42/malenki-esc
A small electronic speed controller for e.g. tiny fighting robots or other rc models
25 parts7 - 2 layers70 × 50 mm

Billy
ryandrake08/billy
Offline Big Mouth Billy Bass voice jokester powered by an ESP32-S3 and a local GPU backend.
82 partsApache-2.0 - 2 layers35.3 × 18.4 mm

Remote Temp Humidity Sensor
gadjet/Multifunction-ESP8266-Sensor-board
AKA Wireless window/door sensor version 4
28 parts3GPL-3.0 - 2 layers38.4 × 27.4 mm

- 2 layers

Edge Atmos PCB
ShreyasKombinadka/Edge-Atmos
A local weather station built with no HAL and all custom drivers and libraries built from bare-metal register level coding.
7 parts1 - 4 layers50 × 50 mm

Dryer control
souptik-samanta/dryer
A custom PCB and self-centering spool holder for drying 3D printer filament. The PCB controls the fans, monitors temperature, and provides connections for PTC heaters.
33 parts1