[HN Gopher] EsPiFF: An ESP32 in the Raspberry Pi form factor
       ___________________________________________________________________
        
       EsPiFF: An ESP32 in the Raspberry Pi form factor
        
       Author : jicksaw
       Score  : 114 points
       Date   : 2022-12-18 08:41 UTC (14 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | goodpoint wrote:
       | From TFA:
       | 
       | > A Linux system like the Pi on the other hand, is writing
       | permanent its log files and swap partition or to the SD-card
       | 
       | ...only if you don't know how to configured an embedded Linux.
        
         | tracker1 wrote:
         | Even then... I mostly stopped using SD on these things when I
         | had a (other-fruit)-Pi device that would on rare ocassion (3x
         | in under a year) just nuke the SD card's data when power was
         | cycled... I was using it for a mini emulation box (atari, nes,
         | etc) and just irked me to no end. Since then, SSD over USB, far
         | more reliable, properly configured or not.
        
       | Taniwha wrote:
       | Does it really have a ground plane directly under the antenna?
        
         | timonoko wrote:
         | Does not matter. "Wifi needs an external antenna". And indeed
         | there is typical Nokia antenna plug on top right.
        
           | iamflimflam1 wrote:
           | That's a bit weird. The built in PCB antenna on the ESP32 is
           | pretty good. You only generally need an external antenna for
           | some applications.
           | 
           | The modules with both the connector and PCB antenna normally
           | hace a jumper resistor to switch between.
        
             | iamflimflam1 wrote:
             | From the readme:                   Please notice, that the
             | ESP32-module PCB antenna can not be used, an external wifi
             | antenna is required. This is because of space restrictions,
             | the RasPi form factor not allow us to make the board
             | larger, and there is simply no space left for the required
             | keepout area for the PCB antenna.
             | 
             | Shame they couldn't make it work.
        
               | gregwebs wrote:
               | > Because several people mention the integrated PCB
               | antenna, the version 3.2 offer at least a basic use of
               | the PCB antenna. Still, the external PCB antenna is the
               | prefered way to use Wifi with the EsPiFF, now to use the
               | integrated PCB antenna as well. Keep in mind, that the
               | ESP32-WROVER-IB module requires a solder jumper
               | modification before the PCB antenna can be used.
        
               | stavros wrote:
               | Also from the Readme:
               | 
               | > Because several people mention the integrated PCB
               | antenna, the version 3.2 offer at least a basic use of
               | the PCB antenna. Still, the external PCB antenna is the
               | prefered way to use Wifi with the EsPiFF
               | 
               | It's nice that they removed the ground plane, it should
               | be fairly good now.
        
       | kkielhofner wrote:
       | I love seeing more ESP32 based projects and hardware. It's a
       | remarkably capable platform with a robust ecosystem that for a
       | "microcontroller" somewhat resembles that of the Raspberry Pi.
       | 
       | I have an irrational frustration when I see people doing simple
       | GPIO, etc with a Raspberry Pi 4 (when you used to be able to get
       | them). I mean come on people, it has four cores, gigabytes of
       | RAM, and can drive two 4k displays(at 30Hz) and you're using a
       | pin?!?
       | 
       | The Raspberry Pi has relatively low power consumption compared to
       | what most people are used to with anything x86 but an ESP32 based
       | solution comes in at 1/10 the power consumption (or less), a
       | fraction of the cost, and you can actually get them these days.
       | 
       | Then I calm myself down when I remember GPIO on a Raspberry Pi is
       | following one of the 100,000 guides that's been written on the
       | topic and can be done in a comfortable, standard Linux
       | environment with a few lines of python (or whatever).
       | 
       | Question for this project - does anyone know the specific
       | regulatory issues of a "commercial" product that calls for an
       | external WiFi antenna? From my little understanding on the topic
       | it seems that ERP, etc could pose a regulatory issue although I
       | think there are exceptions for low scale/hobby products.
        
         | synergy20 wrote:
         | rp2040 might be a good alternative nowadays, esp with its PIO
         | blocks. esp32 might have some other political "risks" these
         | days as it is made in china.
        
           | bonzini wrote:
           | I am not sure why the Raspberry Pi Pico abandoned the 40 pin
           | interface. It would be really cool to be able to develop C or
           | Python code both under Linux, for ease of editing and
           | debugging, and then run it on a microcontroller.
        
         | pjmlp wrote:
         | I love it, because the ESP32 is more powerful than this little
         | one,
         | 
         | https://en.m.wikipedia.org/wiki/PC1512
         | 
         | Many folks don't have a real perception of how powerful these
         | little computers happen to be.
         | 
         | Although not the same, everything from around MS-DOS 3.3 - 5.0
         | time that could fit onto 512KB would be a possible application,
         | plus the extra cores and connectivity options.
        
           | taneq wrote:
           | The ESP32 is stronk. I wasted a bunch of time implementing
           | fixed point maths and lookup table trig functions because "of
           | course" before testing it and finding that for our purposes
           | just calling sin/cos wasn't an issue.
           | 
           | Edit: If you're doing 'real' real-time stuff then make sure
           | you get a dual core model and use core 2 for time sensitive
           | things, though. The wifi stack uses up some solid chunks of
           | time.
        
             | pjmlp wrote:
             | To be fair, back in the day most likely you have had to use
             | fixed point math. :)
        
               | taneq wrote:
               | Yep, I think the last proper embedded project I worked on
               | before this one was on an i386EX running at 40MHz, trying
               | to eke 40KHz sample rate processing the output of a line
               | scan CCD. I, a brash 22yo, declared it impossible to
               | process ~250 pixels in 10 clock cycles (there was DMA and
               | cool dual-port RAM stuff going on). My boss at the time
               | explained the obvious way to approach it and I tried
               | again, I think I got to 36KHz or something after pulling
               | out all the stops. Fun times.
               | 
               | The idea that you could just use trig functions and get
               | away with it on a micro is still kinda foreign. :P
        
           | jacquesm wrote:
           | You could stick the equivalent of a BBC micro in a matchbox
           | and have room for a battery. Whole generations of programmers
           | cut their teeth on platforms like that.
        
         | epx wrote:
         | Wish there was an ESP64 with just enough RAM to run a Debian
         | distro, even slowly, so we could stop waiting for Zeros to get
         | cheaper.
        
           | squarefoot wrote:
           | You can run Armbian and DietPI (both Debian derivatives) on
           | most small boards; some like the NanoPI NEO are in the same
           | price ballpark as the Pi Zero, but are in stock.
           | 
           | https://www.friendlyelec.com/index.php?route=product/product.
           | ..
           | 
           | https://www.armbian.com/download/?device_support=Supported
           | 
           | https://dietpi.com/#download
        
           | kevin_thibedeau wrote:
           | BeagleBone has always been an option. The cool kids just
           | choose to ignore it.
        
             | epx wrote:
             | It is quite expensive (US$ 50-ish). In 2023 we should have
             | plenty of $2-5 chips capable of running a normal distro of
             | Linux.
        
       | anigbrowl wrote:
       | I <3 ESP32, working on microcontrollers is fun and there's a
       | decent variety of tools available. You can run Linux on one ( s l
       | o w l y ) but running on bare metal is more fun. There's a good
       | package ecosystem for working in C or micropython.
        
       | pmontra wrote:
       | > writing permanent its log files and swap partition
       | 
       | If this is the problem, the solutions are no swap and log2ram
       | https://github.com/azlux/log2ram
       | 
       | I also noticed that Armbian logs to a ramdisk. I didn't
       | investigate the implementation and if its contents survive a
       | reboot.
       | 
       | The only real problems for me are that the SD card will
       | eventually fail no matter what (I mean, much sooner than a SDD or
       | HDD) and that there are basically no Pis at sale at a reasonable
       | price. As a platform it is nearly dead.
        
         | jccooper wrote:
         | They also have a built-in ramdisk overlay, which basically
         | solves the problem (so long as you don't need persistence!)
        
           | jbuzbee wrote:
           | I use this in a little raspberry pi project. For persistence,
           | I occasionally copy data to a writable partition and then at
           | boot, after the ram overlay is mounted, I copy it back.
        
         | tracker1 wrote:
         | I have mostly relied on SSD over USB for my RPi stuff, which
         | takes up more space... With the price hikes on RPi 8GB, I've
         | started just getting the small intel boxes N5000/6000 series
         | mostly, since the cost became not much different than RPi +
         | encloser + power anyway.
         | 
         | Thinking about trying to sell my 3x RPi 4b 8gb in DeskPi cases
         | with ~480gb ssds while prices are still pretty inflated.
        
         | sneak wrote:
         | This seems like a bug in the SSD firmware? I should be able to
         | write zillions of times to the same logical sector, they don't
         | map 1:1 to physical blocks on the flash.
         | 
         | I've also run tons of RPis off of SSD root and never had this
         | problem. I hear about it constantly though, so maybe it's urban
         | legend?
        
       | nevi-me wrote:
       | How does one get PCBs with all the components wired in? I've been
       | prototyping for a while, and it would be great for me to learn
       | how to start putting stuff in cases instead of having wires
       | dangling around.
       | 
       | I was looking at PBCWay just yesterday, and the process is
       | unclear. If I say that I need some parts, do I have to source
       | them, or can PCBWay/alternative do so for me?
       | 
       | EDIT: what software does one use to draw PCBs for production too?
       | I've seen a few options online, perhaps a better question is what
       | preferences there are. One thing I'm curious about is whether
       | that software will say "you need this much resistance between
       | these 2 components".
        
         | _Microft wrote:
         | _Speedrun_
         | 
         | KiCad[0] is an open source tool for electronics CAD/EDA [1].
         | You will use it to create a schematic in the schematics editor,
         | assign a "footprint" [2a] to each component (that's the size
         | and shape of a components) and then import it into the PCB
         | editor to lay these components out. The board outline goes onto
         | the Edge.Cuts layer, the traces [2b] onto the copper layers,
         | e.g. F.Cu for the front layer and B.Cu for the backside layer.
         | You will also place your components on these outer layers (You
         | won't need inner layers for a while). You can switch your
         | traces between layers using a "via" [3].
         | 
         | Generate Gerber and drill files then using the "Plot" dialog,
         | zip them and upload them to a service like JLCPCB (very
         | cheap!), OSHPark, PCBWay, e.g. Aisler [4] if your based in
         | Europe. I'd choose leadfree HASL [5] as surface finish. It's
         | cheaper then ENIG and perfectly fine for the beginning.
         | 
         | If you are fine with soldering, then source the parts from e.g.
         | Mouser or Digikey [6] and solder them yourself. That will save
         | you the trouble of having to generate a list of which parts go
         | where for the manufacturer. Make sure you order the parts with
         | exactly the footprint that you put on the PCB.
         | 
         | Start small, ideally with a circuit of which you already know
         | that it's working. This way you can concentrate on getting the
         | details of the PCB manufacturing process right.
         | 
         | [0] https://www.kicad.org/
         | 
         | [1] https://en.wikipedia.org/wiki/Electronic_design_automation
         | 
         | [2a] https://en.wikipedia.org/wiki/Footprint_(electronics)
         | 
         | [2b] https://en.wikipedia.org/wiki/Signal_trace
         | 
         | [3] https://en.wikipedia.org/wiki/Via_(electronics)
         | 
         | [4] https://jlcpcb.com/, https://oshpark.com/,
         | https://www.pcbway.com/, https://aisler.net/
         | 
         | [5] https://en.wikipedia.org/wiki/Hot_air_solder_leveling
         | 
         | [6] https://www.mouser.com, https://www.digikey.com/
        
         | bonzini wrote:
         | The PCB can be prepared with KiCad or Eagle for example. Then
         | you do a lot of preparation work. You have to prepare the bill
         | of materials, be super careful about the annotation layers on
         | the PCB to prepare a PDF of the components.
         | 
         | Finally you pay. :) PCB assembly services exist from various
         | places, for example Seeedstudio is very reliable but pretty
         | expensive. Note that different factories have different formats
         | for the BOM and annotation PDFs.
        
         | dghlsakjg wrote:
         | Jlcpcb has the easiest and most affordable service. They have a
         | library of pre selected parts that you have to choose from, but
         | it is pretty comprehensive (300k or so to choose from). They
         | are the only ones that do the pre-selected parts library thing,
         | but it also makes them SO much cheaper and faster.
         | 
         | They also have their own free eda software to design the
         | schematic and pcb that links up with their parts library. Easy
         | eda. It puts out a generic gerber file and bom too so you can
         | shop around if you want to double check what the cost will be
         | at another producer. Kicad is another alternative for PCB
         | design.
        
         | sebazzz wrote:
         | I'm also curious how people come from the level "I know C, C++,
         | Arduino, I understand what capacitors, resistors, transitors
         | and diodes do" to the level of "I can integrate a 3.3V Arduino
         | Nano with 5V or more circruitry with logic level shifters, I
         | know when to use certain capacitor types, understand when
         | inrush current conditions can happen, etc". And I mean just for
         | hobby. Not interested in anything pro.
        
           | jnovek wrote:
           | I'm also a hobbyist and I think it's just slow and
           | incremental.
           | 
           | This year I decided to expand my electronics hobby into synth
           | stuff. I was by no means prepared for this, but after a year
           | of studying various synth module circuits I'm starting
           | recognize certain patterns when I look at a schematic.
           | 
           | Perhaps the hardest part of this process was learning enough
           | to start asking good questions. Everything has gotten so much
           | easier in the last 2 or 3 months because I've finally built
           | enough confidence, knowledge and intuition to ask my EE
           | friends why something was designed a certain way. I've also
           | learned that they are often equally puzzled. :-)
           | 
           | I think it helps if you have a project you're working
           | towards.
        
       | matthews2 wrote:
       | > The EsPiFF V3 will bring the following > an RP2040 IO-processor
       | additional to the ESP32
       | 
       | It's a shame that the RP2040 doesn't have a good low power sleep
       | mode. Not really appropriate for battery powered applications.
        
         | dragontamer wrote:
         | > RP2040
         | 
         | There's a lot of shame with the RP2040 in my opinion.
         | 
         | 1. No internal oscillator. Always requires external clock.
         | 
         | 2. No internal flash. Always requires external flash + somewhat
         | complex startup sequence.
         | 
         | 3. ~500uA per MHz current consumption. Much higher than
         | competitors (ex: STM32L1 has 180uA per MHz). This is a
         | relatively power-hungry chip both in active, and sleep, modes.
         | 
         | -------
         | 
         | I think RP2040 is some kind of bridge device between the
         | microcontroller and microprocessor worlds. But the M0+ core is
         | an odd choice for this. Real world uCs / processors utilizing a
         | Cortex M7 (or similar) would probably be a better idea?
         | 
         | That being said, the ESP32 is high-power (~100mA) due to the
         | radio. Radios always use lots of power, especially during
         | transmit. So the RP2040 probably is fine for this use case.
        
       | gregwebs wrote:
       | > While it was easy to get a (RPI) solution up and running in a
       | short time, over time we got a lot of problems resulting from
       | using the Pi. A key problem of the Pi's design is, to rely on an
       | SD-card.
       | 
       | > after some months the SD-card broke and the application
       | crashed. High-end industrial SD-card lasted longer, but finally
       | still broke.
       | 
       | > So we made the decision, to build a replacement, which is
       | focused on high-reliability, but still enable the use of
       | Raspberry Pi universum of add-ons, like HATs and enclosures. We
       | choose the ESP32 dual core, 2x240MHz WROVER module with 8MB PSRAM
       | and 16MB Flash. The EsPiFF, the Esp32 in Raspberry Pi Form Factor
       | was born.
       | 
       | > After the EsPiFF is now mature enough, we we are preparing a
       | campaign at Crowd Supply.
        
         | karteum wrote:
         | Yeah I also though the same : this justification is the wrong
         | one (just configure your system or use a distro doesn't log on
         | disk... e.g. OpenWRT doesn't log on NOR/NAND flash !).
         | Regardless of logs, I totally understand that SD-cards are
         | often unreliable (noting that RPi CM4 and also some
         | alternatives such as some Orange Pi include an eMMC which is a
         | bit more resilient). More generally, other justifications (more
         | convincing than this logfile-on-SD issues) could be 1deg/ the
         | power consumption of the Pi, 2deg/ the complexity of a Linux
         | system (hence vulnerability / attack surface), 3deg/ the supply
         | chain shortages on Pis (and costs)...
         | 
         | Anyway, kudos to this board designers ! :)
        
         | jicksaw wrote:
         | The campaign is at: https://www.crowdsupply.com/mdc-service-
         | wittenburg-gmbh/espi...
         | 
         | Personally I'm interested in running ADC daughter boards on it.
         | Current solution is to hook an eMMC Pi-clone to a separate co-
         | processor board, but having both on a single board is easier.
         | An alternative would be to run a RTOS on the Pi-clone, but I
         | don't know any that support clones with eMMC (I have Tinker
         | Boards and RockPis)
        
         | moffkalast wrote:
         | They decided to design this whole thing instead of just going
         | with a read only SD partition or one of the CM4 docks with
         | eMMC?
         | 
         | Don't get me wrong, the end result is really cool and if just
         | an ESP can cover their entire use case then the Pi was
         | definitely overkill, but it just seems like inventing a flying
         | car because you once got a flat tire.
        
           | cracrecry wrote:
           | We also depend on RPys.
           | 
           | Right now the supply chain problems RPys are so big,that they
           | are reselling RP 4s for over 300 euros!!
           | 
           | Imagine that over night the price of cars go 3x and you have
           | to wait a long time for them.
           | 
           | Different people are finding different alternatives. We also
           | created a very convoluted solution.
        
             | mytailorisrich wrote:
             | I think that when the dust settles RPi will have lost a
             | lot.
             | 
             | Lots of alternatives available and superior for most
             | specific use cases, which people are discovering and/or
             | transitioning to because of RPi's availability issues. Once
             | this happens it'll be difficult to win those people back.
        
               | moffkalast wrote:
               | Depends on how well those alternatives bank on the
               | situation. I've always been disappointed by the lack of
               | support and functionality on any non-Pi board I bought.
        
             | ajsnigrutin wrote:
             | The problem here is, that an esp32 is not an alternative
             | for a RPi,... it's a totally different kind of a device,
             | that is only suitable in cases, where rpi was a clear
             | overkill. This is like replacing a truck with a bicycle...
             | if a bicycle was enough in the first place, there's no
             | point in even using a truck for such a simple task.
             | 
             | The real alternatives are many other linux-based single-
             | board computers (from <other fruit>Pis onwards)... sadly
             | most of them come and go, and trying to find a recent OS
             | image (with working binary blobs) for eve a 6 months old
             | devices is proving to be hard.
        
               | NoboruWataya wrote:
               | > if a bicycle was enough in the first place, there's no
               | point in even using a truck for such a simple task.
               | 
               | Right, but people still use the truck, because it's what
               | they know, and maybe because they like the form factor. A
               | lot of Pis _are_ overkill for the projects they 're used
               | in. If those projects could start using this, freeing up
               | Pis for projects that actually need them, that would be
               | helpful.
        
               | tracker1 wrote:
               | I think form factor and reliability account for a lot...
               | I've tried using other arm boards, and they just haven't
               | been as reliable in terms of support/drivers/reliability
               | as the RPis have been in general... With the inflated
               | pricing, I've actually just jumped up to the tiny intel
               | systems, since I'd usually be getting a separate
               | enclosure and ssd anyway. I can see others going to esp32
               | if their original use was a bit overkill, if easier to
               | work against.
        
               | woile wrote:
               | Where the price of the truck is almost the same as the
               | bike
        
               | le-mark wrote:
               | The other fruit pis also have supply issues and the
               | boards themselves can be quite buggy. Design your own
               | with parts you can get in sufficient quantity seems to be
               | the way, unfortunately.
        
           | jvanderbot wrote:
           | For most, I'm sure the WiFi integration was the main driver
           | for rpi, which was just plain easier to use than Arduino+wifi
           | thanks to python on-device.
           | 
           | That's probably why the esp series caught on so quick: way
           | cheaper than rpi, Arduino+wifi, way smaller than both, and
           | still had int wifi.
           | 
           | They saw this, and the RPI2040 has all of the above. Python,
           | low power, low cost, integrated WiFi.
           | 
           | The smaller BOM should also make this less likely to sell out
           | permanently.
        
           | ajsnigrutin wrote:
           | ...or a case with a place for an ssd an a usb3.0->sata or
           | whatever interface...
           | 
           | RPi4 supports usb boot for some time now.
        
             | moffkalast wrote:
             | Yeah, but it's not something you'd really want to use in
             | production though.
        
               | tracker1 wrote:
               | Why not? There are plenty of RPi enclosures that will
               | bridge to USB and hold the SSD for you. For me, the cost
               | of an RPi 8gb + enclosure + ssd + power is now close to
               | the micro intel boxes.
        
               | geerlingguy wrote:
               | It's both many times faster than booting from microSD,
               | and unless you buy the absolute cheapest SSD from a no-
               | name manufacture, many times more reliable.
               | 
               | Additionally, if you have a good power supply and don't
               | write tons of data on a daily basis to the microSD card,
               | it will be quite reliable as long as it's a name-brand,
               | high quality card.
               | 
               | Source: I've deployed about 50 RPis in various
               | conditions, all but two booting off microSD cards, and
               | have only had one failure requiring swapping in a new
               | microSD card, over the past 8 years of use.
               | 
               | Industrial microSD cards are especially robust and are
               | now available from a variety of manufacturers with
               | environmental and wear ratings that rival decent SSDs.
        
               | moffkalast wrote:
               | It's not so much about the SSD, but the USB cable being
               | quite easy to unplug accidentally, though I suppose if
               | you used something like one of those short Samsung Fit
               | drives or a NVMe dock and had a custom enclosure that
               | holds it in place after the Pi is screwed in, then maybe
               | yeah.
        
         | geek_at wrote:
         | I try to never rely on the Pi's SD card. Either I use a system
         | which uses RAM disk like Alpine Linux or a modified Raspbian.
         | You can even PXE boot with later Raspberry Pi3b+ and 4
         | 
         | But yes, then you need network storage or USB SSDs or something
        
       | andrewstuart wrote:
       | Does it fit precisely into a raspberry pi case?
       | 
       | I don't see the TRRS audio/composite video connector.
       | 
       | It would be good if it also had a VGA output port using USB
       | microB.
       | 
       | Esp32 supports these things so it would be nice to see them on
       | this pi "clone". You might consider the more powerful WROVER-E
       | which has 8MB psram and 16MB flash.
       | https://www.espressif.com/sites/default/files/documentation/...
       | 
       | Add 2 CH599's for only $1 each and you could add 4 USB ports,
       | like the RPi.
       | 
       | Fit it into a genuine case then you'd pretty much have a feature
       | match - VGA video, composite NTSC/PAL video, audio, USB ports,
       | sdcard.
        
       | timonoko wrote:
       | "All I want for Christmas is SD-card reader on my ESP32."
       | 
       | - Finds micropython library. Ok.
       | 
       | - Finds schematics for physical connection. Ok
       | 
       | "But where do I find that fiddly SD-card bracket?"
       | 
       | - _Opens a drawer, sees a mound of useless MicroSD-adaptors_. Ok.
        
         | dvh wrote:
         | Esp32-cam has sdcard reader
        
       ___________________________________________________________________
       (page generated 2022-12-18 23:01 UTC)