Skip to the content
PCBKitNew board
2 layers38.3 × 20.8 mmESP AHT10-Extra, the printed circuit board in 3D

ESP AHT10-Extra

c-/ESP-AHT10-Extra20

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

6

README

README.md

ESP-AHT10-Extra

Minimalist/compact ESP-8266 environmental sensor/programmer.

Sensor Front

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.

Sensor Back

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.

Milled
Back

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.

OSHPark PCB

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.

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
QtyValueFootprintReferences
6100nCapacitor_SMD:C_0805_2012MetricC1, C3, C5, C6, C7, C8
610KResistor_SMD:R_0805_2012MetricR1, R3, R4, R5, R6, R7
210uCapacitor_SMD:C_0805_2012MetricC2, C4
11KResistor_SMD:R_0805_2012MetricR2
1350mAFuse:Fuse_0805_2012MetricF1
1470RResistor_SMD:R_0805_2012MetricR8
1AHT10CPB:AHT10-HandSolderU4
1B5817WDiode_SMD:D_SOD-123FD1
1CH330NPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU1
1ESP-12CPB:ESP-12EminU3
1HT7233Package_TO_SOT_SMD:SOT-23U2
1PROGCPB:Tact Switch 6mmx3.5mm C318817SW2
1RESETCPB:Tact Switch 6mmx3.5mm C318817SW1
1USBCPB:usb-PCBJ1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U5
1VEML7700CPB:VEML7700U6

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 mmESP32-Ethgate, the printed circuit board in 3D

    ESP32-Ethgate

    noeljp/esp32-mqtts-secure

    Projet ESP32 avec Mosquitto MQTTs, TLS, login/mdp

    120 parts
  • 2 layers19.1 × 24.1 mmMalenki nano2, the printed circuit board in 3D

    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 mmBilly, the printed circuit board in 3D

    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 mmRemote Temp Humidity Sensor, the printed circuit board in 3D

    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 mmEsp32c3, the printed circuit board in 3D

    Esp32c3

    minddot/hw

    MindDot Hardware

    31 parts2MIT
  • 2 layersEdge Atmos PCB, the printed circuit board in 3D

    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 mmDryer control, the printed circuit board in 3D

    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