new Project: the EsPiFF (Esp32 in a Raspberry Pi Form Factor) - Page 1
Forum section: electronics / projects

author: EsPiFF
author_rank: Contributor
timestamp: October 23, 2022, 05:04:45 pm
content: Dear all,we would like to show you our new project: the EsPiFF. And ESP32 in the Raspberry Pi Form Factor, with an RP2040 co-processorhttps://www.crowdsupply.com/img/b283/espiff-v3-front-01_jpg_tile-xl.jpgWe was using Raspberry Pi's before for several of our projects, but got troubles with the Pi's stability and lately also the availability. We don't have requirements for high processing power, but wish stable 24/7 operation, wired and wireless network, and need to be able to use some Pi HATs. The requirements was- wired and wireless network,- usage of Raspberry Pi HATs,- stable 24/7 performance,- 3 serial Interfaces,- fast non-volatile RAM to store process variables,- supercap buffered Real Time Clock,- enough processing power.The result is the EsPiFF. The ESP32 with 2 x 240MHz, 16MB Flash, 8MB PSRAM, it offers enough processing power for our applications, take care for the wired and wireless networks, serve up to 3 serial UARTs, have access to the SDcard, 2kB FRAM. The RP2040 with its brilliant programmable State Machines, take care for the PI HATs. Additional are external Real time Clock, Watchdog, Supervisor, USB Type-Cconnector for up to 5V/3A and optional 24V power supply.The project is open source (hardware and software), and will soon be offered at CrowdSupply. The board is now at version 3.1, and is quit mature.Important: The EsPiFF is not made to replace a Raspberry Pi or its clones in applications, where Linux or/and much processing power is needed. the EsPiFF is programmed in C/C++/uPython, or other ESP32 programming languages like Javascript or Rust, it runs bare metal or FreeRTos or Apache Nuttx, but no Linux. But it ac be mounted into waterproof or air tight enclosures, what is not possible with a Pi.If your interested in out Crowd Supply Campaign, please subscribe athttps://www.crowdsupply.com/mdc-service-wittenburg-gmbh/espiff.All open source code, schematics and so on, is herehttps://github.com/MDCservice/EsPiFF.Feel free to ask me anything about the EsPiFF,Michael

author: Nominal Animal
author_rank: Super Contributor
timestamp: October 23, 2022, 05:28:01 pm
content: What is the interconnect between the RP2040 and the ESP32-WROVER?All I see is a SPI bus that connects from ESP32-WROVER to SD and RP2040, with the CS pin switchable via I²C. Is that it?

author: moep
author_rank: Newbie
timestamp: October 23, 2022, 09:37:31 pm
content: I like the idea of such a board in a RPi form factor. Also releasing all design files as open source is really nice.I've no doubt that power consumption will be way better than with an Pi, but can you give any estimates which range to expect?As I'm currently designing an ESP32 board myself, i noticed that you've opted for an ESP32 module with an optional PCB antenna but the ground pour in the antenna area renders the PCB antenna unusable. In the default configuration while using the U.FL connector with an external antenna this won't be a problem of course.

author: EsPiFF
author_rank: Contributor
timestamp: October 24, 2022, 07:39:44 am
content: yes, the RP2040 and the ESP32 are interconnected with SPI. On the ESP32, there is only 1 SPI port left, because the Ethernet interface need so much pins. So, on the ESP32 SPI port, there is- FRAM- RP2040-SDcardThe FRAM have its own nCS line, for max. read/write speed. The communication ESP32 with the RP2040 and SPcard share a nCS line, so when the ESP32 talk with the RP2040, the SDcard is disabled. And the other way around. The IO port expander switch the nCS line between RP2040 and SDcard.If not much speed is needed, its also possible to to use Firmata on the RP2040. Firmata trasport its data by default over UART, but it should be possible to add SPI as a Firmata transport.

author: EsPiFF
author_rank: Contributor
timestamp: October 24, 2022, 07:53:15 am
content: about the power consumption: The biggest part of the total power consumption is Wifi. And also the Wifi power consumption depends on how much transmitting power is needed. To give you some figures:- board power consumption with max. Wifi transmitting power around 340mA (from 5V)- board power consumption with no traffic on Wifi, but Wifi active around 80mA (from 5V)- board power consumption with Wifi off, but wired Ethernet enabled, less den 50mA (from 5V)These are just simple measurements, your read world application may, or may not, differ from the above numbers.As other ESP32 and RP2040 development boards show, both are quit power efficient, as long as no Wifi is involved. I want to add, that the EsPiFf is not designed as a ultra-low power board, but instead optimized for high reliability. If you need something what can operate from a coin cell, the EsPiFF not made for that.One more hint: the EsPiFF supports the PoE header pins, and with the Raspberry Pi PoE HAT, it can be powered by PoE.

author: EsPiFF
author_rank: Contributor
timestamp: October 24, 2022, 08:07:05 am
content: @Nominal AnimalFor the ESP32 - RP2040 communication: One more detail. In an earlier design, we had 2 interrupt lines, one from ESP to the RP2040, and one from RP2040 to the ESP32. But the board has now so many functions, that we had no more pins free. Instead of the hardware interrupt lines, a software interrupt should now be used. Depend on the programming environment, an SPI receive buffer, what triggers an software interrupt after receive an specific amount of data, is the intended way.

author: EsPiFF
author_rank: Contributor
timestamp: October 24, 2022, 09:09:24 am
content: @moepAbout the Wifi/BL antenna: we are using a module without an PCB antenna, but just an uFL connector for an external antenna. The key reason is space, the EsPiFF board is so full with components, that there is not enough space for the PCB antenna. Because the reuse of existing Raspberry Pi enclosures was important for us, we opted for not letting the PCB antenna outside the board, as often seen in other board.There are many external antenna's with all kind of shapes offered, so we hope everybody can find a suitable antenna with an uFL connector.

author: moep
author_rank: Newbie
timestamp: October 24, 2022, 07:49:38 pm
content: Quote from: EsPiFF on October 24, 2022, 09:09:24 amThe linked picture in your initial post, all pictures in your crowdsupply campaign, all current pictures in your readme and the latest KiCad files (Version 3.1) in the linked GitHub all show the use of theESP32-WROVER-IBmodule. This WROVER module comes with an PCB antenna. TheIBvariant used by you has this PCB antenna disabled by default in favor of an uFL connector, but the PCB antenna is still present.This ESP module has an soldered antenna select jumper (0 ohm resistor) next to the uFL connector that is intended to re-configure the module to use the PCB antenna. But as said before, with the ground pour behind the PCB antenna this antenna is not of much use on your design. Maybe it's just me but when i see such an ESP32 module with both an uFL connector and a PCB antenna I assume that I can choose between integrated PCB antenna or external antenna as intended by the manufacturer and just re-solder the 0ohm resistor.Also I don't get why the use of the ESP32-WROVER-IB module has any advantages in terms of space - it'sone of the largest ESP32 modules out there.In addition you may want to opt for a newer ESP32 module with an ESP32-D0WD-V3chip as with wafer version 3 there were some silicon bugs fixed that improve stability:https://www.espressif.com/sites/default/files/documentation/esp32_chip_revision_v3_0_user_guide_en.pdf

author: EsPiFF
author_rank: Contributor
timestamp: October 25, 2022, 05:57:39 pm
content: @moepOur requirements was- LX7 dual 240MHz core- 16 MB Flash- 8 MB PSRAM- at least uFL Antenna as option.so, if you look in the list of available ESP32 modules, what fulfill the above conditions, there are only ESP32-WROVER-E-N16R8 and ESP32-WROVER-IE-N16R8, as well as the ESP32-WROVER-IB left. So, no smaller module available.Yes, space is rare, and a smaller module would be great. But we dont wanted to give up 8 MB PSRAM, what is one of the killer feature of the ESP32.To make use of the integrated PCB antenna, ether a larger area around the ESP32 module would have to be free of parts and traces. Or, the ESP32 PCB antenna would off board, what would make the existing RasPi enclosures unusable. So, the best compromise is the usage of an external antenna.Most users want to place the EsPiFF in a metal enclosure, what renders a PCB antenna anyway useless.In EsPiFF, anything is optimized for stability and 24/7 operation. In such an environment, Wifi is only a second option after wired network, thatś why we spend more focus on wired Ethernet.but you are correct, that the ESP32-WROVER-IB are outdated now. We only have them on the prototype boards, because they was available at that time. The production will go with the ESP32-WROVER-IE-N16R8, and these are based on the ESP32-D0WD-V3 chip. I have to update the documentation.

author: moep
author_rank: Newbie
timestamp: October 26, 2022, 11:47:40 am
content: Quote from: EsPiFF on October 25, 2022, 05:57:39 pmOnly ESP32-S3series haveLX7dual cores. The "original" ESP32 used by you haveLX6dual cores. But I guess that was a typo and you wanted to write LX6...But as you brought LX7 up to the discussion:With the requirements "small footprint" and "must be a module" added to your list the ESP32-S3-WROOM-1U-N16R8 module would've been my choice then. Actually, the ESP32-S3 can even handle a bit more computing (LX7 > LX6) compared to the original ESP32. And the modules footprint is way smaller (346mm² vs. 565mm²).Anyways, my main point was the unusable, but present PCB antenna. I think you dindn't get my main problem, so I'm qouting you again:Quote from: EsPiFF on October 24, 2022, 09:09:24 amThe ESP32-WROVER-IB module clearly has a PCB antnenna. It is present. The PCB antenna of an ESP32-WROVER-IB is usable, after soldering the antenna select jumper. So saying "we are using a module without an PCB antenna" is just incorrect.Which brings us to the next sencence of that qoute. The reason for selecting the module and not having a PCB antenna (which you have!) due to space is nonsense, as it's one of the biggest modules. The module seclection was obviously because it's the only ESP32 module that fits your other requirements, as you've written in your last answer.I fully understand why you might want the module with a big footprint due to Memory requirements. I can also understand why you might decide to render the PCB antenna useless by discarding the required clearences around it due to layout constraints. This can be a valid design decision. While this might fityourneeds, it will probably not fiteveryones. I - as an example - like the option to use an integrated antenna while developing within an environment where there is good wifi coverage. And if i see a promotion of a product that uses a WiFi module that i know well and that generally supports an integrated antenna I imply the product itself supports this, too. Which in your case it doesn't.So I, as an potential customer, would've liked to see you communicating such limitations. Just note it somewhere in the specification that only external antennas are supported. Or clearly state that this is intended and irrelevant foryouruse case even if it's just in this thread. But then please don't deny the fact that there is a PCB antenna on the WiFi module in your design. That are just my two cents, enough of Schrödinger's PCB antenna...

author: EsPiFF
author_rank: Contributor
timestamp: October 27, 2022, 09:24:21 am
content: @moep,got your point. The problem is, when we keep the Raspi form factor, and the existing set of features, there is no space for the PCB antenna. It is not only the space below the existing PCB antenna on the WROVER module, there would also space left and right of the antenna be a keep out area, for optimum wifi performance.You are right about the LX6, it was a typo. And as you see on the history of the EsPiFF, it is already in the version 3.1. At the time we begun with the EsPiFF, the ESP32-S3 was not available. Even a few weeks ago, there was no ESP32-S3 module with 8 MB PSRAM on stock. I know this, because some time ago I designed an TFT display board with the ESP32-S3, and at that time, only modules with 2 MB PSRAM was on stock. Things have changed now, and the ESP32-S3-WROOM-1U-N16R8 is now on stock. But that's a brand new core, with a different feature set. For example, the S3 does not have an Ethernet MII interface. Wired Ethernet with the option to use PoE HATs is a key feature of the EsPiFF. Using the S3 would result in a complete different board, without wired Ethernet, no PoE HAT support, and so on.If you like to have a board with an ESP32-S3 ("...ESP32-S3-WROOM-1U-N16R8 module would've been my choice.."), sorry to say the EsPiFF can not be your board. But we will take your hint about the fact, that the on-module PCB antenna can not be used on the EsPiFF, but instead an external antenna wifi antenna must be used, to update the description.Please also notice, that since we announced the EsPiFF, lots of users asked for all kind of additional features, like additional SPI flash, more FRAM, and so on. Some people asked for SPI Flash footprints for state-of-the-art ISSI Flash chips, similar to the Teensy boards, what most likely will make it into the campaign. We are collecting all the feature requests, and discuss what we can put into the campaign.The EsPiFF will keep "Schrödinger's PCB antenna", until a functional replacement part of the ESP32-WROVER-IE-N16R8 is available.

author: EsPiFF
author_rank: Contributor
timestamp: October 27, 2022, 02:30:48 pm
content: I like to inform you, that now also Apache Nuttx (https://nuttx.apache.org) is running on the EsPiFF.Next the well known FreeRTOS, there is an other, not so well known operating system supporting ESP32 and friends: Apache Nuttx (https://nuttx.apache.org). It has a very cool feature: runtime loading of ELF files (for example, from SDcard) into RAM, and then execute it in RAM. Very much like Windows/Linux/MacOS are doing it. Imagine, you can send a SDcard to your customer for software-update. Bye bye problems in environments, where OTA is not allowed.Thanks to its big 8 MB PSRAM, the EsPiFF can load bigger ELF files (the application) then most other MCD boards. ELF loading into RAM is available on Nuttx for some time already, but mostly on STM32 or other Cortex-M0/3/4. ESP32 and its PSRAM are quite new to this, and its still experimental. But hopefully, this will be soon production ready.I remember the time, when you put a 5 1/4 disc into your Comodore-1541 floppy disc, or later, as 3 1/2 floppy, into your PC-XT and PC-AT.Nuttx has much more features, its fully POSIX compliant, and make porting software from other POSIX system like Linux, quite easy.

author: EsPiFF
author_rank: Contributor
timestamp: November 03, 2022, 06:40:18 am
content: there is now also a preliminary datasheethttps://github.com/MDCservice/EsPiFF/blob/main/datasheet_v3_1.pdfand a annotated picturehttps://github.com/MDCservice/EsPiFF/blob/main/images/espiff_v3_1_annotated.pngshowing all the functionality

author: EsPiFF
author_rank: Contributor
timestamp: November 23, 2022, 12:36:43 pm
content: Dear all,the EsPiFF Crowd Supply campaign has now started! You can support the EsPiFF onhttps://www.crowdsupply.com/mdc-service-wittenburg-gmbh/espiffSince the initial announcement, the EsPiFF got a few extras:- unpopulated header for JTAG- 8 MBit ISSI high end flash, plus unpopulated footprint for up to 512 MBit ISSI flash- a cable set, to access the 3 UARTs and the SWD/SWClk of the RP2040We hope, that the unique combination of the connectivity features of the ESP32, paired with the brilliant PIOs of the RP2040, offers new possibilities. There are RP2040 projects out, who use a 100MS/s ADC with the RP2040, something only possible with an FPGA in the past. If you don't like coding in Verilog or VHDL with an FPGA, but only in C or Python, the EsPiFF is now an alternative option. If there is interest, we could make an HAT with 100MS/s ADC and DAC.Industrial IO HATs, with 4 x 4 - 20mA /10V in, 4 x 4 - 20mA /10V out and 8 digital IOs (24V, up to 2A), all fully protected, is already in the making. It is modular stack-able, so somebody can combine what his application really needs. This should offer an option to the Pi based DIN Rail PLCs, with higher reliability, more remanent memory and a much more potent real time co-processor (The Pixtend for example, use an AVR 8-bitter)Hope you like it, and support us,Michael