Designing a breakout board for the ESP32 / RFM9X


#1

We got a single channel gateway on ESP8266 running wel. Few more weeks and the ESP32 will be there (ESP site espresiff). This new version has much more power (multi core) and also includes bluetooth.
.
Have some on pre-order aliexpress esp32 and will be using these for my future nodes. Designing a breakout board for the ESP32 / RFM9X which I will put online once tested.

.
Want to make it a full featured node @ 3x4cm board size. Plenty of work todo. Would appreciate any feedback on this route!

Cheers,

Ewoud


Single Channel Gateway part 1
#2

how much power does this new SOC uses .. ? haven't seen that anywhere


#3

hi. thats a very good question i wonder myself. should be low power sleep mode on it and be able to run single core / switch of wifi and bt but still. have to find out and see.


#4

Hi Ewoud,

It looks like the antenna for the ESP module will be underneath the RFM module and there are VIAs underneath the antenna. Usually the specifications of modules with on-board antennas state the PCB they are mounted on should be clear of any copper and parts where the antenna is located.
Might be better to redesign the board with the antenna of the ESP module and the SMA connector at opposite ends of the PCB?

Regards,

Jac


#5

Hi Jac. Good one. Will turn the ESP and will let the antenna stick out of the board. Something like this;


Stil alot of via's beneath the modules. Does this have a negative impact? Turning the module does result in a 4 layer board instead of two layers;(.


#6

VIAs underneath modules should not be a problem as long as the antennas are clear. However I'm wondering if this amount of vias is required. Have you tried solving the puzzle the other way around? (Take the original design, shift the ESP to the top, flip the RFM module and put the SMA connector where the ESP antenna is in the new design)

Are you routing pins of the ESP to the headers? Do they need to be in a specific place? If not you could try to rearrange them (or even route them to the header at the opposite side).


(Arjan) #7

Oops, stupid, I moved unrelated posts earlier; 5 posts were merged back into an existing topic: Single Channel Gateway.


#8

Had turned the esp but not the pinheaders. Did this later and back to a two layer board. Will take some weeks for the esp32 to become available. Check / double check my layout and will order a couple to see if it works.


#9

Any updates on this design? I have some ESP32s on reel to spare and RFM95 modules and would love the give it a spin and tinker with the LMIC ports which are emerging.

cheers,
Martijn


#10

Hi Martijn,

This project has been on hold since release of the module got delayed and havent got the time to pick it up. So it's on the backbench for some time to come.

Greets,

Ewoud


#11

'half the board'


US $0.99 incl. shipping

http://www.ebay.com/itm/For-ESP-32S-Adapter-Board-Pinboard-Convertor-ESP32S-Wireless-WIFI-Module-/201737802740?


#12

Ah yes, that backbench.. Been looking at Osh Park for some shared projects but no dice.

It would be nice to have some design with power (battery clip, usb, LDO), ESP32 footprint, RFM footprint and perhaps some meander and/or uFL for the LoRa antenna. Some GPIOs exposed. Breakout is nice, but when it's an all-in-one I won't be needing the breadboard.

I'm lacking the skills on KiCad, but I have some PCB design at work on the ESP32 without the LoRa part. I'll ask the schematics designer if he's willing to contribute to the community.


#13

https://www.thethingsnetwork.org/forum/t/lorawan-pager-project/6992


(Jose Marcelino) #14

Which LMIC ports are emerging? Is anything working yet?

I guess the easiest is to get a LoPy which is essentially an ESP32 + Sx1276 and just use ESP-IDF directly.


#15

Completely missed this LoPy, but some E30 is not hitting the sweet spot for me by a long shot,

So I'm I able to work in C/C++ on the IDF and skipping Python as I can flash my own IDF code as we do now? As a development board this could be interesting.

I'm looking at https://github.com/berkutta/esp32_lmic with some interest, but could be we will be sponsoring a port throughout the summer as we are moving away from PIC to ESP32 with one particular solution we currently use on a B2B application.


(Jose Marcelino) #16

Yes I meant for development, for deployment I'm considering their OEM version https://www.pycom.io/product/l01/ at €15.

The OEM would need a breakout board but it's a lot simpler - also it's been tested and pre-certified so the cost makes sense to me, it's similar to other LoRa modules but does a lot more.

You can program it with ESP-IDF sure, no restrictions, works like any ESP32 module.

I'll try to find some time to test that LMIC, thanks for linking,


#17

This is indeed something interesting! I'll order some right away. Thanks for this, best find of the day.


#18

Hi All,

So I’ve been working with the WiPy and LoPy boards for some months now. I’ve done some LoRaWAN experiments in MicroPython which are nice. I also flashed the WiPy boards with my own pure C/C++ IDF projects which give me more flexibility running tasks and connectivity (I use AWS IoT a lot when running over WiFi).

I’m still looking for a pure ESP32 LMIC IDF port. Came across the Lua-RTOS-ESP32 project which has an IDF port at first glance.

But before diving in. Are we still short of an ESP32 IDF port of the LMIC stack?


#19

if you’ve installed the ESP32 package in arduino, you just can take the tt-abp, with an RFM95 attached to it
tested with ESP32-DOIT , board: ESP32 Dev Module choosen

/* for ESP32
static const uint8_t SS    = 5;
static const uint8_t MOSI  = 23;
static const uint8_t MISO  = 19;
static const uint8_t SCK   = 18;
*/
// Pin mapping
const lmic_pinmap lmic_pins = {
    .nss = 5,                              //
    .rxtx = LMIC_UNUSED_PIN,
    .rst = 13,                             // 
    .dio = {12, 14, 27},                   // {DIO0, DIO1, DIO2},   DIO2 could be eliminated
};```

#20

Trick is though I’m not running the Arduino port. I’m running C/C++ with FreeRTOS tasks to schedule work and using eventgroups to exchange state among them.