Homely WSN - Basic Board V2 (ESP32-S2)

7 months ago 702
  • Description
  • Documents
  • BOM
  • Attachments
  • Members
  • Comments


Homely WSN Basic Board V2 is an IoT board to collect environmental data (temperature, humidity, and pressure) and to push them to a centralized server through Wi-Fi. This is the enriched successor of the Basic Board V1, that improves different aspects:

  • energy efficiency (20uA during deep-sleep)

  • onboard recharge for single-cell Lipo battery

  • measurement of battery level based on voltage*

  • ESD protection

  • USB-C connector

  • Given the high non-linearity of the curve charge-voltage of Lipo battery, you will be able to provide only 3 battery states (i.e. high, medium, low).

Main components

  • Espressif ESP32-S2 (ESP32-S2-WROOM or ESP32-S2-WROOM-I)
  • Digital temperature and humidity sensor Sensirion SHT30
  • Digital temperature and pressure sensor Bosch BMP280
  • Reset and User buttons
  • 32.768Hz crystal oscillator
  • Switch ON/OFF
  • Low quiescent current LDO Microchip MCP1700T
  • Lipo recharger Microchip MCP73837
  • JST PH (2.0mm pitch) to connect the lipo battery
  • USB-C connector for power supply and to recharge the (optional) Lipo battery


The entire board is manually assemblable, no stencil is required. Hot air gun will be necessary for BMP280, SHT30, MCP73837, and USB-C connector. Arduino sketches to test the PCB are available here.


Firmware upload

Since there is no USB-Serial to flash ESP32-S2, you need an external one. The 6 pins needed to flash the board are identified by PROG label on the PCB. You may use this programmer, designed to be pin-compatible with this board.

The firmware is under development, and it will be released after the first official release of Arduino core for ESP32-S2.

About versions and board name

Basic Board V2 is the evolution of the original Basic Board V1, which basically renew all the hardware expect for the sensors. Hence, given the differences, I have started a new indipendent project that has V2 in the name. However, these projects remain indipendent: when a project advances, it will continue with version 3, 4, 5,... but the name will not follow the versioning system. This project starts from version 2.0.0.


  • 2.0.0 ✅: first version, I works but I would suggest to wait for next release that improve solderability
  • 3.0.0 ❔: work in progress, form factor will be changed

Versioning conventions

Each manufactured board must have a version. Version advancements are ruled accordingly to Semantic Versioning, similarly to what usually happens in software development.

To quickly identify the status of each version, I use emojis. The following list explains their meaning:

  • A White Heavy Check Mark (✅) means that it is successfully tested;
  • A Negative Squared Cross Mark (❎) means that it was almost successfully tested (the main functionalities are fine), but there are bugs affecting minor funcionalities;
  • A Warning Sign (⚠) means that the board is not usable out of the box but the bugs are fixable in DIY (decent) fashion;
  • A Cross Mark (❌) means that there are some problems that makes it unusable;
  • A White Question Mark Ornament (❔) means not tested.


Basic Board V2

Basic Board V2


ID Name Designator Footprint Quantity
3 Stdby LED3 0603-LED 1
5 SHT30-DIS-B U2 DFN-8-1EP_2.5X2.5MM_PITCH0.5MM 1
6 MCP1700T-3302E/TT U3 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1
7 USR_BTN BTN1 SMD-6X3.3X3.5 1
8 RST_BTN BTN2 SMD-6X3.3X3.5 1
9 Solder Jumper SJ1 SJ_2S 1
10 1uF C3,C8,C1,C30 C0603 4
11 100nF C4,C9 C0603 2
12 4.7uF C10,C11 C0603 2
13 1u C5 C0603 1
14 22uF C2 C0603 1
15 18pF C7,C6 C0603 2
16 SP0503BAHTG D4 SOT-143-4_L2.9-W1.3-P1.92-LS2.3-BL 1
17 JST_2-PIN_Female_Connector_Battery JST1 JST-PH-2-SMT-RA 1
18 1k R21,R5,R20,R22,R8 R0603 5
19 10k R4,R9 R0603 2
20 5.1k R10,R11 R0603 2
21 4.7k R7,R6 R0603 2
22 33k R1 R0603 1
23 10k (2) R2 R0603 1
24 1k R30 R0603 1
26 1206L050YR F1 1206 1
27 MBR120VLSFT1G D3 SOD-123F_L2.8-W1.8-LS3.7-RD 1
28 Done LED4 0603-LED 1
29 BSS84LT1G Q2 SOT-23-3_L2.9-W1.6-P1.90-LS2.8-BR 1
30 MCP73837T-FCI/UN U6 MSOP-10 1
31 BMP280 U4 LGA-8 1
32 LED-Blue LED1 0603-LED 1
33 PWR LED2 0603-LED 1
34 32.768KHz X1 OSC-SMD_2P-L3.2-W1.5 1
35 USB-310F USB1 USB-TYPE-S-C8.64X7.25 1
36 JST_6-PIN_Female_Connector JST2 1X06 1.27MM HOLES HEADERS PINS 1


The owner does not allow comments in this project now

Comments (11)

lokiram369 Reply

Thanks and your project is simple and very helpful.

Thanks Fabiano for sharing your project. It is really helpfull for those of us who try lo learn by studying other projects.

Miraculix200 Reply

Does the MCP1700 deal well with the current spikes when sending data over wifi?

You may want to look into the XC6220 from Torex, which I'm using for my ESP32-S2: https://easyeda.com/Miraculix200/s2-tiny

Miraculix200 Reply

May I ask why you are using an SHT30 and a BMP280 instead of just using a BME280 (which can also sense humidity)?

FabianoRiccardi Reply

@Miraculix200 Yes, I had considered that alternative, but I was attracted by MCP1700 for its price and the low quiescent current. I had test a bit the board and it works. However, I want to test more this aspect. I will let you know.

FabianoRiccardi Reply

@Miraculix200 I prefer SHT30+BMP280 because temperature error is better (error: 0.3°C instead 0.5°C) and because I don't always need atmospheric pressure, in that case I can totally avoid BMP280. Furthermore, BME280 costs more than BMP280+SHT30 (price checked on LCSC). These are few personal considerations, but in general even BME280 is fine and it simplifies the design.

Miraculix200 Reply

@FabianoRiccardi  I found the MCP1700 works well with ESP-12F, so it'll probably work with the ESP32-S2 too. But I only tested it with reduced tx power. Anyway it should deal well with spikes up to 550mA: "As long as the average current does not exceed250 mA, pulsed higher load currents can be applied tothe MCP1700. The typical current limit for theMCP1700 is 550 mA (TA+25°C)."

FabianoRiccardi Reply

@Miraculix200 Exactly, I should test how long the spike last when the radio is continuously transmitting and receiving data.

FabianoRiccardi Reply

@fabiano.riccardi I have tested for 10 minutes a continuous exchange of data over UDP between 2 boards, no problem emerged. In the description I have liked the Github repository to the "test suite".

Miraculix200 Reply

@FabianoRiccardi  Here's a Olimex ESP32-S2 board with MCP1700. They're using 22uF caps on VIN and 3V3 though: https://github.com/OLIMEX/ESP32-S2-DevKit-LiPo

FabianoRiccardi Reply

@Miraculix200 Thank for point out that board! I suppose those guys had performed more testing than I could.

你现在访问的是EasyEDA海外版,使用建立访问速度更快的国内版 https://lceda.cn(需要重新注册)
如果需要转移工程请在个人中心 - 工程 - 工程高级设置 - 下载工程,下载后在https://lceda.cn/editor 打开保存即可。
有问题联系QQ 3001956291 不再提醒
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow
We use cookies to offer you a better experience. Detailed information on the use of cookies on this website is provided in our Privacy Policy. By using this site, you consent to the use of our cookies.