30 septembrie 2024

Meshtastic ESP_32 DevBoard

Everyone know MESHTASTIC!

It is the promise of a new communication meaning over long distances and without any infrastructure needed.




Somethink preppers love!

This communication system has two important features that make it particularly effective for facilitating message communication over long distances:
-LoRa type modulation;
-Self-configuration of devices in a MESH network.
 

I will not go into details, Google is your friend and you will learn everything about LoRa modulation and MESH networks.


In this post I want to talk about how I made my own devices, using cheap modules available on various sites in China.

Things are not so simple; you need some knowledge in electronics to deal with the ready made modules on the market or you can order some 100% finished products. Then you need to program them but that's pretty straightforward as it can be done via a web flashing tool that work with Chrome browser.

But if you are a BRAVE HAM like I am and you already have some modules in the junk box, you may want to make it more flexibile from more basic components.

First, the ESP-32 to SX-1278 module (LoRa Transceiver) is this:


Pretty straightforward; the LoRa TRX communicate with ESP32 via SPI interface.

As we're gonna use the already compiled firmware "Meshtastic DIY", I used the connection from that firmware:

MISO > D19

MOSI > D27

NSS/CS > D18

SCK > D5

RST > D23

DIO0 > D26

But, if I was going to design the board, I must do there something to have some features for future experiments...

So, a number of GPIOs were provided.

A special circuit to activate or deactivate the GPS to save some power was added; the special High-Side switch circuit AP2151 was put into design.

Because, sometime, the circuit is not available, U3 can be tied to 3V3 to keep GPS permanently powered.


Then, two 18650 LiIon battery holders were provided, and a TP4056 module to charge them.


 

Some users complained about unstable operation when the voltage of the battery drop beyond 3V so, a watchdog circuit was added. This monitor the voltage of the battery and, if the voltage drop under 3V (or any other voltage of the user's choice), the ESP32 will be kept into RESET mode until the battery is recharged.

The circuit of choice was TLV840MADL30DBVRQ1.

 

 

What other features the board have?

Well, maybe I want to have an external antenna; the SX1278 module came with some kind of short antenna at the end of a thin coaxial pigtail but an external one increase the range of the radio link.  I sometime want to use SMA antennas but to be able to use BNC ones if I want to!

Being a BRAVE but sometimes UNDECIDED ham, I provided the PCB for both kind of connectors. Just a small cut-and-solder of that coaxial and the problem is solved!


 

The GPS of choice ISN'T a uBlox but the but, when designing the PCB, the footprint of the Neo6M was satisfactory to allow installation of several types.


What other feature? Well, a voltage divider to measure the battery voltage, I2C connectors provided for an OLED and for a BME80 pressure/temperature monitor and, of course, a lot of GPIOs spreaded all around the board but some grouped together for some sort of a future expansion board on pogo pins...

In the development process, I ordered the PCB's with some componentes mounted directly in China.

I hoped to solve three problems simultaneously: make the PCBs, buy the components and, if they have to come together, they'd better come mounted on the board! But the count at the fair doesn't match the count at home so, when I received the first version of the PCB, I realized that I had made some major mistakes, which could only be corrected by redesigning it. So, I redesigned it, changed its color from black to blue, made it thinner, from 2mm to just 1mm and ordered it without the components mounted because I was going to transfer them from the V1 boards to the V2 boards...


Then, after I had done the transfer on the ten boards, I realized that in the selection process I had ordered the wrong circuit... AP2141 instead of AP2151. The difference? Well, the former commands the GPS when the command pin is grounded and the latter, correctly, commands the GPS when it receives the positive voltage command. So I've hit the wall again...

Fortunately (remember?) I provided a hardware mean to permanently power the GPS... :-)



Next comes the correct circuit, then will be another hassle with correcting the mistake... That's when ham radio bravery goes out after midnight, that's when I get these ideas! 

You can find all the relevant documentation on my Github repository.


Cheers!


Niciun comentariu:

Most viewed posts in last 30 days