Recently I was asked: “What do you need a development board for?” For me the answer is very clear. I love short development cycles. It’s much faster to verify an idea on a bread board before you sit down and design a PCB.
Designing a PCB means that you will have a much longer round trip before you can test your hardware. But many development boards I tested (and there were many) were disappointing in one way or another. Read here why I wanted to design my own board and how the resulting board looks like.
There are literally dozens of different development board types for ESP8266 and ESP32 on the market. But what makes a development board a good one? And maybe even before that: what exactly is a development board?
In my opinion a development board for a micro controller should make the controllers features accessible as easy as possible early in the development process. And it should be very versatile to allow the maker to create many different projects with it.
Note: This post is about the ESP32 ePulse board. It is available for order at ThingPulse. Order Now! Thank you, you are supporting this blog.
One thing I’m looking for in a good development board is how easy it is to program. For instance the early ESP8266 ESP-01 boards were not easy to program. But they were not made for programming . They were meant to be used as a WiFi transceiver. Controlled over serial lines with AT commands from another micro controller like an Arduino.
To program the ESP-01 you had to hook it up to power supply and a serial-to-usb-programmer. But that was not enough. In order to flash a new program you had to connect some of the pins while the device is restarting. Not very convenient!
Later ESP8266 boards like the NodeMCU made this much easier by having additional components on board. All you had to do was press the upload button in the IDE. Then the flasher script together with the board would set the micro controller into the flash mode.
Another important aspect of a development board is the form factor. For a long time development boards with the Arduino form factor were most popular on the market. A relatively big board with many pins led out to female header pins. You could then either use jumper wires to connect the GPIO pins to a bread board. Alternatively you could plug a matching shield into the main board. The standardized shape of the board allowed third party providers to develop and sell additional features as shields.
Other types of development boards had male header pins and you could plugged them directly into bread boards. A good development module intended for bread board has to comply with certain specialties of a bread board. For instance, if a development board is too wide it covers all pins on a bread board.
If the module’s pins are too close together they will mechanically fit the bread board. But the pins will create a short circuit. The ESP-01 as a development module is not bread board friendly. The two pin rows are next to each other.
Ideally a development module leaves at least one row of pins free on each side. This way you can access all pins with a jumper wire.
Many of my electronics projects are related to Internet-of-Things (IoT) in one way or the other. For instance I built many applications for home automation which I use everyday at home.
IoT devices should be ubiquitous. This means they should work also in places where you don’t have mains power. And you don’t want to change or recharge batteries every couple of days.
Thus for developing IoT hardware it’s very important that already the bread board prototype is efficient. Ideally you can just hook AA battery pack or a LiPo to it and you are ready to go.
But convenience is not everything, the board also should be efficient when running from batteries. Most development boards are really bad in this aspect. They have status LEDs which consume energy.
And often the UART chip is turned on and consumes energy when connected to battery power. The UART is used to program the micro controller. And to send debugging output over the serial line back to the PC. But when the dev board is powered by battery power there is no need for programming or debugging output. So a good board do
The ESP32 ePulse Dev Board
With all these requirements in mind I set out to design the perfect development board for me. And I’m really happy with the result. The most outstanding feature of the ePulse is it’s low power consumption. The deep sleep power consumption of the module can be as low as 25uA! I measured this value in battery mode with an input voltage of 4.5V. By using 12V the deep sleep consumption can rise to around 35uA.
Many popular development boards have a deep sleep consumption of ardound 100uA or more. To achieve this value I ditched all LEDs. And the UART doesn’t have power when the module is in battery mode. I tested the board with VIN voltages between 3.3-12V and it works reliably in this range.
More than 30 GPIO pins are lead out. And most of them can be used in various ways. There are 16 ADC , 2 DAC and more than 24 GPIO pins available for your projects
The form factor has two aspects worth mentioning. It fits into a bread board with one pin row free on each side. And the module PCB has a gap where the ESP32 antenna is. This will improve signal quality compared to designs without the gap.
To avoid certification we are using the Espressif ESP32-WROVER-B module with 8MB of PSRAM and 8MB of flash. This should give you ample resources for your design. The additional PSRAM can be very useful for devices with a display. If your graphics driver uses a frame buffer this allows you to support more colors. And using machine learning with TensorFlow Lite is also quite memory hungry.
I believe documenting your creations is very important. That’s why from the beginning you will have a Fritzing part of the dev board available. You can download it here.
Could I raise your interest in this exciting new board? It is available for order at ThingPulse. I’m really proud of this baby!