

ENHP eleklekha
Experiments in Networked Hardware Performance
- Size
- 76.3 × 105.1 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 49
- Nets
- 80
- Pads
- 234
- Tracks, vias
- 685, 63
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 1 Jul 2022
- Updated
- 15 Sep 2024
Overview
ENHP eleklekha is an open-source printed circuit board by sebmorales, from the sebmorales/ENHP repository on GitHub. It is a 2-layer board of 76.3 × 105.1 mm with 49 parts on 80 nets, routed with 685 tracks and 63 vias.
It is built around the ESP32-DEVKITC-VE, LSM303C and MIC5225-3.3YM5, with the BC817, 1N4148W and KF142V-5.08-3P among its other parts. Its parts include 15 resistors, 8 connectors, 7 capacitors, 4 ICs and 3 diodes. It belongs with the ESP32 boards of this library.
Main components
8ESP32-DEVKITC-VE
-- WiFi Modules ROHSEspressif SystemsWiFi ModulesLSM303C
LGA-12(2x2)-40℃~+85℃ 1.9V~3.6V 16bit 6uA Accelerometer Motion event detection SPI、I2C X,Y,Z ±8g LGA-12(2x2) Accelerometers ROHSSTMicroelectronicsSpecialized SensorsMIC5225-3.3YM5
SOT23-53.3V 150mA Ultra-Low Current uCap Low Dropout RegulatorMicrochip TechnologyUncategorisedBC817
SOT-231 NPN 100nA 150MHz 300mW 40 45V 500mA 5V 700mV NPN SOT-23 Bipolar (BJT) ROHSShikuesBipolar (BJT)1N4148W
SOD-123150mA 1A 1V@50mA 1uA@75V 400mW 4ns 75V Independent SOD-123 Switching Diodes ROHSSTMicroelectronicsSwitching DiodesKF142V-5.08-3P
插件,P=5.08mm-40℃~+105℃ 1 1.5 14~22 15A 250V 3 3P 5.08mm Through Hole 插件,P=5.08mm Spring Clamp System Terminal Block ROHSCixi Kefa ElecSpring Clamp System Terminal BlockMMBT3904
SOT-23-55℃~+150℃ 1 NPN 100 100nA 200mA 200mW 300MHz 300mV 40V 6V NPN SOT-23 Bipolar (BJT) ROHSJiangsu Changjing Electronics Technology (CJ)Bipolar (BJT)S15OT421-005
SMD-4P,2.8x1.9mm-40℃~+100℃ -42dB 0.95mm 1.85mm 150uA 2.75mm 2V 400Ω 59dB Omnidirectional Omnidirectional pickup SMD-4P,2.8x1.9mm MEMS Microphones ROHSGoertekMEMS Microphones
README
README.mdNetworked Hardware- Getting Started
Woo! You got your board on the mail, or maybe we gave it to you in person, now, what is it? What is it for?

This board is based on a ESP32 microcontroller, but it also has some other components to help us get started connecting the digital world and our tangible one. We will go more in depth during class, but for now, here is a quick manual to get you going.
By default, the board is already pre-programmed, so you don’t have to worry about that. But if you want to make changes, you are more than welcome to do so. We will soon update this same doc to share the code and schematics.
Note: The board in a bit of an experimental stage and we are still trying to figure things out, so please share any feedback and bugs as you find them :)
Each board has a unique name (written by hand on the back of the board). Let’s get the boards connected and start sharing light data!
If you go to the webpage https://hardwaremovement.com you will see a grid of boxes, each with a name. At the time I took this image, there were only three boards on there, hopefully by now there are many more. As new boards connect, the grid starts getting updated with each boards' last photoresistor reading.

This website is only collecting light information, and since other people will likely connect at different times, feel free to come back and see how the collaborative page is changing over time. Feel free to place the board anywhere indoors and see how that impacts the page.
Let’s connect!
How to connect the board to wifi [video]
How to connect the board to wifi step by step
-
Turn on the switch on the ESP32 board.
- You will hear a click (that's the relay acting as a small audio cue)
- You will see the board blink about 1x a second, this means that the board is attempting to connect to a wifi network. But because you just got the board it will most likely not be able to connect.

-
If after 15 seconds it wasn’t able to connect:
- The board will beep again
- The LED will start blinking at a faster pace (2x second)
- It will then make its own wifi network. You can connect to it to share your wifi credentials. You can do this either though your phone or computer’s wifi settings.
The name of the network will be ExperimentHardPerf_[random numbers]
- After 5-10 seconds a login page (captive portal) will show up on your device.
Note: watch out for upper/lower case
- Enter your wifi info then click save (Note: watch out for upper/lower case)
Note: watch out for upper/lower case
- Once you click save, the board will attempt to connect to your network. It will also save your network credentials to it’s internal memory, so you don’t have to add them again (unless you change them). You can now press cancel>use other network, and connect to your regular wifi.
- If the connection is successful, you will see a quick short flashing LED. Then then you can check the https://hardwaremovement.com website again and see it updating live! The board should then go to sleep and automatically wake up every 20 minutes until it rans out of battery in about a day. If you want, you can charge it again or leave it plugged in.
Trouble shooting
-
I turn it on but nothing happens, no beep, no flashing led.
Most likely, it’s out of battery, try charging it though the micro USB port
-
I turn the board on, and it beeps, then it beeps again, and again, and again…
This means that the board is constantly restarting, most likely it’s out of battery, try recharging the battery though it’s Micro USB port
-
I added my wifi credentials but doesn’t nothing happened.
Try restarting the board by turning it off and on again, the board should attempt to connect and if it still is not able, repeat steps 2-6.
Also, in order to save battery, it will only wait for 1minute before going back to sleep. It could be that it’s taking a bit long to add your wifi credentials.
-
I was able to connect before now it’s asking for my wifi credentials again
The board only has 15 seconds to successfully connect to wifi, after this it will create it’s own network. Sometimes, these 15 seconds are not enough time connect, no need to add you credentials again, you can restart the board and have it try again.
Additional info: Getting familiar with the board

The board consists of the micocontroller (ESP32 dev board with a 18650 battery holder) and a series of inputs and outputs:
Inputs:
- Photoresistor- This can be used to sense light
- Magnetometer- This is the (MMC5603NJ), a 3 axis magnetic + temperature sensor
- Potentiometer- This is a knob can be manually turned
- Button- This button has a dual function, to send data while the board is awake, and to wake the board when it is sleeping
Outputs:
- Relay- Instead of having a buzzer that could only buzz, we upgraded it to a full size relay, it clicks and it switches! We recomend only using it for DC applications, but if you know what you are doing feel free.
- An LED output and pin- this can be used to see changes or to connect to another board or arduino.
- A Servo- this can be used to move things in our physical, it can turn about 180°.
COM:
- I2C- This uses a STEMMA QT connector, a popular i2C compatible with many Adafruit and Sparkfun modules.
- RXTX- These are ready in case you want to connect to another micrcontroller or anything that can communicate though serial. By default the board runs on a 115200 buadrate and only supports 3.3V.
- GPIO 17 & 18- By defualt 17 is set to be a digital input (0-1) and 18 is set as an analog out (0-255).
Power
- The ESP32 board has a switch to turn it on/off
- It can be charged/programmed using a micro USB cable
- We added a small switch to let you decide if the board should stay connected or if it should connect every 20 minutes and then go to sleep. This will dramatically impact how long the board can run on battery.
Check out MORAKANA.COM for more details and examples.
Parts
49| Qty | Value | Footprint | References |
|---|---|---|---|
| 6 | 10K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R3, R7, R10, R11, R14, R15 |
| 2 | 100nF | Capacitor_SMD:C_0805_2012Metric | C6, C7 |
| 2 | 10uF | Capacitor_SMD:C_0805_2012Metric | C1, C4 |
| 2 | 2.7K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R12, R13 |
| 2 | 5.1K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R8, R9 |
| 2 | BC817 | Package_TO_SOT_SMD:SOT-23 | Q2, Q3 |
| 2 | LED | LED_SMD:LED_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D1, D2 |
| 2 | MountingHole | MountingHole:MountingHole_2.5mm_Pad_TopBottom | H1, H4 |
| 1 | 0.1uF | Capacitor_SMD:C_0805_2012Metric | C3 |
| 1 | 1K | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R6 |
| 1 | 1M | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R4 |
| 1 | 1N4148W | Diode_SMD:D_SOD-123 | D3 |
| 1 | 1uF | Capacitor_SMD:C_0805_2012Metric | C5 |
| 1 | 220 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R5 |
| 1 | 220nF | Capacitor_SMD:C_0805_2012Metric | C2 |
| 1 | C475135 | spring_terminal:spring_terminal | J6 |
| 1 | CP2102N-Axx-xQFN28 | Package_DFN_QFN:QFN-28-1EP_5x5mm_P0.5mm_EP3.35x3.35mm | U4 |
| 1 | ESP32-DevKitC | Espressif:ESP32-Dev_Batt_18650 | U1 |
| 1 | FINDER-36.11 | Relay_THT:Relay_SPDT_Finder_36.11 | K1 |
| 1 | GND | Connector_Wire:SolderWire-0.5sqmm_1x01_D0.9mm_OD2.1mm | J7 |
| 1 | I2C | Connector_JST:JST_SH_SM04B-SRSS-TB_1x04-1MP_P1.00mm_Horizontal | J5 |
| 1 | LOGO | LOGO | G*** |
| 1 | LOGO | Graphics:MORAKANA_20mm_White | G*** |
| 1 | LSM303C | Package_LGA:LGA-12_2x2mm_P0.5mm | U3 |
| 1 | MIC5225-3.3YM5 | Package_TO_SOT_SMD:SOT-23-5 | U2 |
| 1 | MMBT3904 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | OUT0 | Connector_Wire:SolderWire-0.5sqmm_1x01_D0.9mm_OD2.1mm | J4 |
| 1 | Photoresistor | Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P2.54mm_Vertical | R2 |
| 1 | Potentiometer | Potentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_Vertical | RV5K1 |
| 1 | R220 | Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolder | R1 |
| 1 | S15OT421 | Audio_Module:S15OT421 | MIC |
| 1 | SERVO | Connector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_Vertical | J2 |
| 1 | SW_DIP_x01 | Button_Switch_SMD:SW_DIP_SPSTx01_Slide_Omron_A6S-110x_W8.9mm_P2.54mm | SW2 |
| 1 | SW_DIP_x01 | Button_Switch_SMD:SW_Push_1P1T_NO_CK_KSC7xxJ | SW1 |
| 1 | TXRX | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | J3 |
| 1 | USB_C_Receptacle_USB2.0 | Connector_USB:USB_C_Receptacle_Amphenol_12401610E4-2A_CircularHoles | J8 |
| 1 | hookup | Connector_PinSocket_2.54mm:PinSocket_2x03_P2.54mm_Vertical | J1 |
Questions
How big is the ENHP eleklekha PCB?
It measures 76.3 × 105.1 mm and has 2 copper layers, 1.6 mm thick.
What parts does the ENHP eleklekha use?
49 parts, built around the ESP32-DEVKITC-VE, LSM303C, MIC5225-3.3YM5 and BC817. 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 ENHP eleklekha KiCad files?
From the sebmorales/ENHP repository on GitHub, at the commit this page was made from: the board is NetworkedHardware_PCB_design/ENHP_eleklekha.kicad_pcb and its schematic NetworkedHardware_PCB_design/ENHP_eleklekha.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the ENHP eleklekha design in my own project?
Its repository states no licence, so its author keeps all rights: ask sebmorales before reusing the design.
Similar boards
- 4 layers165 × 160 mm

- 2 layers28 × 20 mm

TMF882xBreakout
generationmake/TMF882xBreakout
Breakout board for the ams TMF8820, TMF8821 and TMF8828 multi-zone time-of-flight sensors
27 parts1 - 2 layers28 × 20 mm

TMF8801Breakout
generationmake/TMF8801Breakout
Breakout board for the ams TMF8801 1D time-of-flight sensor
27 parts1 - 2 layers31 × 34 mm

- 2 layers66.8 × 104.8 mm

- 2 layers40.9 × 42.8 mm

- 2 layers50 × 63 mm

Esp32hardware
cnlohr/esp32_tracker
DO NOT USE THIS PROJECT - ESP32 Tracker with the TS4231
93 parts3MIT - 4 layers90.8 × 86.3 mm
