Skip to the content
2 layers115 × 77 mmEload, the printed circuit board in 3D

This is a PCB/FW project for a WiFi enabled electronic load

Size
115 × 77 mm
Copper layers
2
Thickness
1.6 mm
Parts
74
Nets
70
Pads
286
Tracks, vias
555, 353
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
11 Nov 2019
Updated
11 Nov 2019

Overview

Eload is an open-source printed circuit board by dimtass, from the dimtass/esp8266-web-eload repository on GitHub. It is a 2-layer board of 115 × 77 mm with 74 parts on 70 nets, routed with 555 tracks and 353 vias.

It is built around the ESP-12F, FT232RL and MCP4821-E/P, with the MCP6H04-E/ST, SP6661EN-L and AMS1117-3.3 among its other parts. Its parts include 31 resistors, 18 capacitors, 6 ICs, 4 diodes and 4 connectors. It belongs with the radio and wireless and power boards and the ESP8266 boards of this library.

Main components

10

README

README.md

esp8266-web-eload

This project is how to build an electronic load with a web interface by using the esp8266-E12 module and some other electronic components. This version is using the Arduino ESP8266 for simplicity, but I would like to make this soon also baremetal and use the ESP API instead.

Electronic load board

Board

You can also find the scematics to build a small pcb for that. As you may already know, the esp8266 has a 10-bit ADC, but it lacks a DAC. Therefore, we need an external SPI DAC. You can use any DAC but as it is a home-project I prefer to use a bit more expensive components.

The main components I've used are:

  • FDP6030BL: N-Channel Logic Level MOSFET. This mosfet is features 40A, 30V, Rds(on)=0.024Ω @ Vgs=4.5V, 175oC max junction temp
  • MCP4821: 12-bit SPI DAC with an internal Vref. This one has an internal 2.048V reference and a 2x gain, therefore the Vref can be up to 4.096V with a great accuracy. This means that we can drive the Vgs on the MOSFET up to 4.096V, which means up to 4A with 1Ω load resistor. If you need more current, then you can use the MCP4921 opamp which has an external reference, but that also means that you need to provide a very clean and stable reference, too.
  • MCP6H04: 4x single-supply, rail-to-rail opamp. This IC has four opamps in the case. One is used to multiply the DAC output by a factor of 2.2. One is used to drive the MOSFET and another one to buffer the negative feedback loop to drive the ADC via a low pass RC filter and a voltage divider with a 1/10 ratio.
  • FT232RL: A USB to serial IC that is used for two reasons. One is to power the circuit with 5V from the USB and the other is to flash the esp8266. You need an IC that also has the DTR/RTS signals in order to reset the board and put it into flash mode.

The DAC is 12-bit and it can take values 0-2.048V when the gain is set to 1x or 0-4.096V when the gain is 2x. Also the ADC is 10-bits with max input voltage 3V3, therefore it has 1024 steps. This means that you need to use a voltage divider to feed the ADC.

Build

You need to have the arduino IDE installed. I'm using Linux, so I'm describing how to do that on Linux. First, download the IDE from here. I usually prefer specific versions because arduino IDE versions are known to be incopatible with each other and some commands may not work between versions. Therefore, for this project prefer to use version 1.8.6 from here. This is the x86_64 Linux version.

Extract the contents somewhere. I prefer /opt, for example /opt/arduino-1.8.6.

Then open a console and run these commands:

sh
mkdir -p ~/Arduino/hardware/esp8266com
cd ~/Arduino/hardware/esp8266com
git clone https://github.com/esp8266/Arduino.git esp8266
cd esp8266/tools
python get.py
/opt/arduino-1.8.6/arduino --install-boards esp8266:esp8266 --save-prefs

Then run the Arduino IDE and click Tools -> Manage Libraries and search for the websockets by Markus Sattler library and select version 2.1.1. Then exit the Arduino IDE and from the source code folder run:

sh
./build.sh

If your arduino IDE is not installed in /opt/arduino-1.8.6 or you're using a different version then you need to edit the build.sh script and change the ARDUINO= variable with the correct path.

If everything goes right then you should have a folder named build and inside that fodler a file named esp8266-web-eload.ino.bin.

Then connect you esp8266-E12 board with a USB cable on your computer and verify which port is enumerated on it

sh
dmesg | grep tty

Usually it will be the last port listed after you run the above command.

Finally, run the upload-http-files.sh script with the port you've found:

sh
./upload-http-files.sh /dev/ttyUSB0

You might need to change the paths of the mkspiffs and esptool for the script to work properly. If you want to be able to upload the web interface from the Arduino IDE, then have a look to this plugin here. This will integrate this functionality in the IDE. I'm using the script as it flashes everything on one go, but for development you don't have to upload everything, so if you just change something in the code and the web interface remains the same or the opposite, then better use the IDE.

Parts

74
QtyValueFootprintReferences
1010KResistors_SMD:R_0805_HandSolderingR204, R205, R206, R207, R208, R303, R502, R503, R601, R602
1010Ω/1WResistors_THT:R_Axial_Power_L20.0mm_W6.4mm_P30.48mmR505, R506, R507, R508, R509, R510, R511, R512, R513, R514
710uFCapacitors_SMD:C_0805_HandSolderingC303, C405, C406, C407, C408, C502, C503
4100nFCapacitors_SMD:C_0805_HandSolderingC301, C302, C403, C501
4MountingHoleMounting_Holes:MountingHole_2.5mm_Pad_ViaH401, H402, H403, H404
312KResistors_SMD:R_0805_HandSolderingR301, R302, R504
3470Resistors_SMD:R_0805_HandSolderingR201, R203, R209
2100nCapacitors_SMD:C_0805_HandSolderingC202, C601
2Conn_01x15_MalePin_Headers:Pin_Header_Straight_1x15_Pitch2.54mmJ201, J202
2MMBT3904TO_SOT_Packages_SMD:SOT-23_HandsolderingQ301, Q302
2RResistors_SMD:R_0805_HandSolderingR304, R305
10 (NC)Resistors_SMD:R_0805_HandSolderingR202
110nFCapacitors_SMD:C_0805_HandSolderingC401
110uF 25VCapacitors_SMD:C_0805_HandSolderingC402
115KResistors_SMD:R_0805_HandSolderingR515
11KResistors_SMD:R_0805_HandSolderingR501
11uCapacitors_SMD:C_0805_HandSolderingC201
11uFCapacitors_SMD:C_0805_HandSolderingC602
1220uFCapacitors_THT:CP_Radial_D10.0mm_P2.50mmC404
1AMS1117-3.3TO_SOT_Packages_SMD:SOT-223U401
1ESP-12FRF_Modules:ESP-12EU201
1FDP6030BLPower_Integrations:TO-220Q501
1FLASH_BTNmod_switch:smd_pushSW202
1FT232RLHousings_SSOP:SSOP-28_5.3x10.2mm_Pitch0.65mmU301
1HeatsinkHeatsinks:Heatsink_Fischer_SK104-STCB_35x13mm__2xDrill3.5mm_ScrewM3HS501
1LEDLEDs:LED_0805_HandSolderingD201
1LOADConnectors_Terminal_Blocks:TerminalBlock_Altech_AK300-2_P5.00mmJ501
1LSM115JE3/TR13Diodes_SMD:D_SMA_HandsolderingD401
1MCP4821SMD_Packages:SOIC-8-NU601
1MCP6H04SMD_Packages:SOIC-14_NU501
1MH2029-400YDiodes_SMD:D_0805FB401
1RESET_BTNmod_switch:smd_pushSW201
1RXLEDLEDs:LED_0805_HandSolderingD302
1SP6661Housings_SSOP:MSOP-8_3x3mm_Pitch0.65mmU402
1TXLEDLEDs:LED_0805_HandSolderingD301
1USB_B_Micromod_conn_pc:conn_usb_B_micro_smd-3J301

Similar boards

  • 4 layers70 × 50 mmSTM32G041F8P6 dev, the printed circuit board in 3D

    STM32G041F8P6 dev

    NAIT-CNT-CMPE2750-1241-A02/SimonDemos

    Demos used in this course, including the sample project.

    46 parts1
  • 2 layers110 × 119 mmV2 Queens2026, the printed circuit board in 3D

    V2 Queens2026

    FelixStA52/BRACHIOSAURUS

    Boxed Recorder Analyzing Change in Height of Ice with On Site Accelerometer and Ultrasonic Readers Utilizing Support (BRACHIOSAURUS)

    55 parts
  • 4 layers65 × 35 mmPeregrine, the printed circuit board in 3D

    Peregrine

    Gibson431/peregrine

    65 parts
  • 2 layers21.2 × 82.8 mmYippeeboard, the printed circuit board in 3D

    Yippeeboard

    mpkarpov-ui/YIPPEE_Software

    self explanatory

    26 parts
  • 2 layers69.9 × 69.9 mmVelux controller, the printed circuit board in 3D

    Velux controller

    thorio/esphome-projects

    collection of open home automation projects

    35 parts29GPL-3.0
  • 2 layers100 × 54 mmMs2-card, the printed circuit board in 3D

    Ms2-card

    ST-Oldie/Lokkarten-Emulator

    Emulator für eine Märklin MS2 Lokkarte, Firmware und Kopie der Hardware von GBert

    63 parts1GPL-3.0

Questions

How big is the Eload PCB?

It measures 115 × 77 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Eload use?

74 parts, built around the ESP-12F, FT232RL, MCP4821-E/P and MCP6H04-E/ST. 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 Eload KiCad files?

From the dimtass/esp8266-web-eload repository on GitHub, at the commit this page was made from: the board is kicad/eload/eload.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Eload design in my own project?

Its repository states no licence, so its author keeps all rights: ask dimtass before reusing the design.