OLIMEX ESP32 Ethernet board with external antenna

A lot of users were searching for a way to increase the BLE range of the ESP32, here and here.

I think we have found a good board to achieve that with the EA version of the one below:

With the gateway inside my house and a Mi jia outside 20 meters away, I’m able to get the data.

Here is a focus on the OLIMEX ESP32 gateway with ethernet:

FEATURES

  • ESP32-WROOM32 module
  • MicroUSB connector
  • CH340 USB serial converter
  • Built-in programmer for Arduino and ESP-IDF
  • WiFi, BLE connectivity
  • Ethernet 100Mb interface
  • MicroSD card
  • GPIO 20 pin connector with all ESP32 ports
  • Dimensions: (50 x 62)mm ~ (1.95 x 2.45)"


Note, this antenna is not the original one but an upgrade

Please note that this board has been offered by Olimex.

were you able to use ethernet port instead of wifi ?
Is it needed to change a 0ohm smd resistor to use external antenna ?

Thank you

I’m planning to make OMG compatible with the ethernet port.

I received it with the external antenna and had nothing to change, mine doesn’t have an internal antenna.

Here is some feedback regarding OpenMQTTGateway v0.9.5 with this board:

  • for the moment it is up continuously since 1 month

image

The remaining memory is stable:
image

I’ve tried to flash “read y binaries” (web method) but how to set MQTT broker address for these board? It has no "first setup board (no need to connect to WiFi so also there is no way to set MQTT address.
Is only way to recompile it from source with MQTT address compiled in?

Indeed the ethernet version will need to be built with Platformio so we should remove them from the upload web page I think,
The wifi version should work from the web upload esp32-olimex-gtw-ble-wifi but I suppose you are looking for the ethernet one.
So platformIO is the go-to solution in this case.

How about OTA upgrade? After initial setup can I use precompiled binaries?

If you use esp32-olimex-gtw-ble-wifi you can connect it to your wifi and broker, and after OTA with Platformio.

Maybe it’s a good idea to implement Web service for “all the time” no only during setup?

I think the best idea is it implement MQTT DHCP option: draft-nalluri-dhc-dhcpv6-mqtt-config-options-00

Right if connected to ehternet you should be able to OTA it

Unfortunately it’s NOT working.
I’ve compiled my version using my_env.ini:

[platformio]
default_envs = esp32-olimex-gtw-ble-poe-iso-bilbo

[env:esp32-olimex-gtw-ble-poe-iso-bilbo]
extends = env:esp32-olimex-gtw-ble-poe-iso

build_flags =
${env:esp32-olimex-gtw-ble-poe-iso.build_flags}
‘-DMQTT_SERVER=“192.168.105.22”’

and uploaded with:

pio run --target upload --environment esp32-olimex-gtw-ble-poe-iso-bilbo

So far soo good ale is working fine:

************* WELCOME TO OpenMQTTGateway **************
N: OpenMQTTGateway Version: version_tag
N: Ethernet Connected
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: BTConfig NOT_FOUND
N: BT config loaded
N: BT config: {
“bleconnect”: true,
“interval”: 55555,
“activescan”: true,
“scanbcnct”: 10,
“onlysensors”: false,
“hasspresence”: false,
“presenceTopic”: “presence/”,
“presenceUseBeaconUuid”: false,
“minrssi”: -100,
“extDecoderEnable”: false,
“extDecoderTopic”: “undecoded”,
“filterConnectable”: false,
“pubKnownServiceData”: false,
“pubUnknownServiceData”: true,
“pubKnownManufData”: false,
“pubUnknownManufData”: true,
“pubServiceDataUUID”: false,
“pubBeaconUuidForTopic”: false,
“ignoreWBlist”: false
}
N: BT config loaded
N: BLE scans interval: 55555
N: BLE scans number before connect: 10
N: Publishing only BLE sensors: false
N: Active BLE scan: true
N: minrssi: -100
N: Low Power Mode: 0
N: OpenMQTTGateway modules: [“BT”]
N: ************** Setup OpenMQTTGateway end **************
W: MQTT connection…
N: Connected to broker

Then I’ve updated board with ready binaries sending:

{
“version”: “1.2.0”,
“password”: “OTAPASSWORD”,
“url”: “https://github.com/1technophile/OpenMQTTGateway/releases/download/v1.2.0/esp32-olimex-gtw-ble-poe-iso-firmware.bin
}
to: home/OpenMQTTGateway_ESP32_OLM_POE/commands/firmware_update

After that no connection to MQTT broker:>

W: Starting firmware update
N: Stop BLE processing
N: using config cert
N: using config cert
N: HTTP_UPDATE_OK
[E][vfs_api.cpp:22] open(): File system is not mounted
E: failed to open config file for writing
{
“mqtt_server”: “192.168.105.22”,
[…]
rst:0xc (SW_CPU_RESET),boot:0x1b (SPI_FAST_FLASH_BOOT)
[…]
************* WELCOME TO OpenMQTTGateway **************
N: OpenMQTTGateway Version: v1.2.0
N: Ethernet Connected
[E][Preferences.cpp:472] getString(): nvs_get_str len fail: BTConfig NOT_FOUND
N: BT config loaded
N: BT config: {
“bleconnect”: true,
“interval”: 55555,
“activescan”: true,
“scanbcnct”: 10,
“onlysensors”: false,
“hasspresence”: false,
“presenceTopic”: “presence/”,
“presenceUseBeaconUuid”: false,
“minrssi”: -100,
“extDecoderEnable”: false,
“extDecoderTopic”: “undecoded”,
“filterConnectable”: false,
“pubKnownServiceData”: false,
“pubUnknownServiceData”: true,
“pubKnownManufData”: false,
“pubUnknownManufData”: true,
“pubServiceDataUUID”: false,
“pubBeaconUuidForTopic”: false,
“ignoreWBlist”: false
}
N: BT config loaded
N: BLE scans interval: 55555
N: BLE scans number before connect: 10
N: Publishing only BLE sensors: false
N: Active BLE scan: true
N: minrssi: -100
N: Low Power Mode: 0
N: OpenMQTTGateway modules: [“BT”]
N: ************** Setup OpenMQTTGateway end **************
W: MQTT connection…
W: MQTT client disconnected no BLE scan
[E][WiFiClient.cpp:258] connect(): socket error on fd 55, errno: 113, “Software caused connection abort”

Any ideas how to use ready binaries with these board?

Hello,

I’m not sure I understand why you are doing this step.
If you were able to build and upload the environment yourself esp32-olimex-gtw-ble-poe-iso-bilbo
You can add all the parameters into this environment:

  '-DESPWifiManualSetup=true'
  '-DMQTT_USER="lolin-esp32"'
  '-DMQTT_PASS="your_password"'
  '-DMQTT_SERVER="192.168.1.17"'

I’d like to use ready compiled binaries from github not compile my own every time when it will be released new version. Because there in no way to enter MQTT server without Wifi setup, I’ve expected that I will compile own version once, then MQTT server will be placed into config file and then I can upload ready binary from web page and (if I will use the same “flavor” device binary) my setup survive OTA. It looks that something is wrong because after update I’ve got:

N: HTTP_UPDATE_OK
[E][vfs_api.cpp:22] open(): File system is not mounted
E: failed to open config file for writing