ESP32

959 views
Skip to first unread message

John Taves

unread,
Jun 1, 2020, 9:08:53 PM6/1/20
to electrodacus
Is there a way to send AT commands to the ESP32?

If not, how can I alter the ESP32 so that it can be a client instead of an AP?

Thanks,

jt

Dacian Todea

unread,
Jun 1, 2020, 10:09:40 PM6/1/20
to electrodacus
I know that also but that will not work as I do not have interrupts enabled on my main microcontroller for safety and I can not deal with incoming messages for the ESP when used i client mode.
It will not be safe to use client mode (due to denial of service type attack).
Even the AP mode is implemented in a very nonstandard way transmit only. 

Robert Tagscherer

unread,
Jun 2, 2020, 4:38:26 AM6/2/20
to electrodacus
Hey Dacian,

I understand and share your concerns about the safety of the main controller.
I think it should be possible to change the firmware of the esp32 without needing to transmit anything to it. I'm planning on doing that as soon as I have the BMS in my hands, as I have a lot of experience with the esp8266 boards (using about 20-25 in home automation right now) and also some with the esp32.
For a start I was thinking of just having it react to the AT commands sent by the main microcontroller like now, but also serving the html page itself and keeping track of clients. The webpage can then be extended with options for connecting to an AP and maybe even extended data logging.
Next step for me would be MQTT support and for that I'd need to decode and parse the data in the ESP as I would like to have well readable MQTT packages on the air. The ESP32 is a powerful dual core processor, so none of that should by any problem.
I'll use PlatformIO for all of that, as it is much cleaner and easier to maintain than using Arduino directly. If it were safety critical, I'd probably even go for the bare RTOS.

Alternatively, it is definitley possible to connect the ESP32 to an AP with the default AT-Modem firmware using AT+CWMODE and AT+CWJAP. I guess the settings menu on the main controller would need some more options then, though. For example SSID and password and what IP to send the data to.

Dacian Todea

unread,
Jun 2, 2020, 1:20:49 PM6/2/20
to electrodacus
Robert,

Yes that is the proper solution to change the firmware inside the ESP32 is just not open source enough for my liking so I was never exited to do that work.
The ESP32 hardware was what made me switch from the ESP8266 used on the SBMS100 / SBMS60 a few years ago when ESP32 was just becoming available but the AT firmware was less robust tho I had no time to compile and test the latest version I do not think much has changed.
ESP32 is not critical so is less important if that fails. Is not just that it needs more options for client mode that is easy to implement it needs bidirectional communication meaning the SBMS main microcontroller will need to respond to queries in order to connect to AP. All this should be done on the ESP32 side the main microcontroller can not be involved.
Also do not worry about AT commands I can just send the raw data every second the ESP32 just need to collect those and transit if requested. So he needs a small buffer where it stores the latest set of raw data and replace those every second with the new ones.    

Robert Tagscherer

unread,
Jun 2, 2020, 1:31:18 PM6/2/20
to electrodacus
Hi Dacian,

That sounds fairly straightforward. Do you have easy means to flash the esp32 on hand? I might just start implementing that even before I have the actual hardware. I could provide you a hex file that you could then try out without setting up any development environment. I just need maybe some example of what I should expect to receive over the serial Port.

Dacian Todea

unread,
Jun 2, 2020, 2:11:27 PM6/2/20
to electrodacus
Robert,

You can check what the SBMS transmits on WiFi 192.168.4.1  I will modify to transmit just that without the AT commands and you just need to re transmit that as it is or simpler just the content of the sbms 
Bellow is what I got from my SBMS0
Or maybe same as what I send over serial that will be the sbms var from below so 7)%/'0$+GnGmGwGsGtGvH#H1*o##-##7########################%N(
All this is transmitted at 921.6kbps but can be changed at a lower rate if you prefer especially if is just the sbms variable that contain's actually all that is needed all live readings including all cell voltages and all currents.
This is compressed in base 91 you can find the details in the manual about all this.


 var PV1="#####################################################&&'''()**++,,--..//00012469=AEJOTY_dinsx}J#################################################################################################################################################";
var PV2="################################################################################################################################################################################################################################################";
var Btp="#####################################################''((()*++,--.../0001122357:>BFKPUZ_dinsx}J#################################################################################################################################################";
var Btn="/0000/0000///0000/0000+%################################################################################################><>>>>@>>>===?=>>?????>?>>>>>A@BB>>==???>=?<?=>==>>==?>>>>=@C===7IO7=C=CC7C==CC=77=CC=7I77===C=17==CC========7=77777C17=";
var Ld ="########################################################################################################################%$%%$%&$%%%%%%$$%%&&%&%%%$$%%'&''$%$%%%%%$%$%$%$%%%$$%%%%%$&)####/5##)#))#)##))####))##/#####)#####))###############)###";
var ELd="{||||||||||||||||{||||]3########################################################################################################################################################################################################################";
var sbms="7)%/'0$+GnGmGwGsGtGvH#H1*o##-##7########################%N(";
var xsbms="###L6>N$##n";
var gsbms="#p9#######pZ##B##O#.$##'##5#########";
var eA="###%$H###&#p###############&#p####?2###$v]";
var eW="####S^####mD################mD####*Y####Q?";
var s1=['Ah','A','SBMS0  '];
var s2=[0,0,0,0,0,0,0,0,8,2,1,1];
var dmppt="############################################################";

John Taves

unread,
Jun 2, 2020, 2:19:59 PM6/2/20
to electrodacus
Robert, I want the wifi to be a client on my router. If you are going to make changes that will enable this, I am eager to get them from you if possible. (I am not concerned about a DOS attack on my local network.)

Robert Tagscherer

unread,
Jun 2, 2020, 2:32:19 PM6/2/20
to electrodacus
John,

The project will definitely be open source and will be available on my GitHub. I will also post an update here as soon as there is something to try out.

Is the webpage enough for your needs or would you also like MQTT support?

Jay

unread,
Jun 2, 2020, 3:21:09 PM6/2/20
to electrodacus
I second this.  Have been delaying purchase for a long time trying to decide if not having remote access to the BMS will meet my needs.  Unfortunately there aren't any other options I can find in my price range.  My system will be 'on it's own' for months at a time and I want to be able to check up on it to see that it's maintaining itself and operating properly while travelling.  DOS can be mitigated by firewalls and VPN if I'm not mistaken.  I know Dacian is too busy to to implement remote control of the SBMS and the security layer and additional customer service that could entail, but if anyone decides to take this on I will certainly be interested in helping if I can.  I only have experience programming in PHP, however later in the year I might delve into this more if someone can help me with the rest.  MQTT sounds interesting.

Robert Tagscherer

unread,
Jun 2, 2020, 3:29:08 PM6/2/20
to electrodacus
Security will not actually be a big concern, as long as you don't treat your data as a secret. Any DoS attacks will only make it to the esp32, which will never send anything to the actual BMS. It will only receive periodic data from the BMS and supply it in various ways. Worst thing that could happen is that you can't reach your monitoring anymore.

John Taves

unread,
Jun 2, 2020, 3:51:11 PM6/2/20
to electrodacus
Great. No, I don't need MQTT, but I am not familiar with MQTT so I don't really know what I am missing.

I only really need the status on wifi client. I am a software developer, so I will have no trouble modifying the web page to hit the assigned IP and I will probably fiddle with that page to simplify it and make it easier to determine the cost of various loads over time as I turn them on/off (e.g. at what rate does the hot water tank lose heat when not in use).

Thanks for doing this.

Robert Tagscherer

unread,
Jun 2, 2020, 4:24:17 PM6/2/20
to electrodacus
Hi John,

The plan was to have the esp32 serve the HTML page by itself like any other webpage on smart devices as well. You'd only have to point the browser to its IP or hostname and that's it.
Depending on how it turns out, you could probably still use a local HTML page to connect, though. There will be changes to the HTML on the esp32 to manage wifi settings etc.
I think we'll manage something that works for you.

John Taves

unread,
Jun 2, 2020, 4:36:29 PM6/2/20
to electrodacus
Right, I saw that was your goal, and that sounds good. I figured you would make a UI for the wifi settings and plop the current file on the chip for status. And I figure you can make a url/page that delivers the current data stream then someone like me can muck with the js file without having to burn anything in the esp32.

Is it difficult to make it have a webdav or ftp or something similar so that it is trivial to update the files? With that, others could go nuts to make a better status UI and that might provide Dacien with a head start if he decides to make a headless SMBS that would be mounted on the battery and be totally controlled from Wifi. (A solution I would have preferred from having this small 4 button UI).

Robert Tagscherer

unread,
Jun 2, 2020, 7:42:42 PM6/2/20
to electrodacus

Well, I got a start. It shows the dummy data Dacian posted a few mails back. All I had to change in the html was the url to the data. There are a few little quirks with the WiFi config I still have to work out, plus I need to actually read in the data via the serial connection. But that should be done tomorrow around this time.

settings.png

monitoring.png


Dacian Todea

unread,
Jun 2, 2020, 7:47:09 PM6/2/20
to electrodacus
Jay,

The way that SBMS WiFi is implemented is using the default AT firmware (slight modification so it uses UART0) and then the main microcontroller communicate with EXP32 over serial.
The security is only a problem If I write the software on the main microcontroller as if it is attacked with multiple requests it can make it unable to respond to more important tasks like taking care of the battery.
The proper way is to write software on the EXP32 and that is what Robert intends to do that way this will be a completely separate system and there is no security concern other that lost external communication or your data being accessed by someone else but no risk on battery.
I had the intention to write that but I do not like the programming environment available for the ESP32 and the fact that not all is open source so I do not have full control of the hardware.  So this together with the lack of time left the WiFi as AP only.
My future plan will be to have a software written on android or similar tablet or phone and connecting that over USB to the SBMS this will have access to all SBMS data and then the table or phone can act both as a remote display up to 5m should be easily possible over USB and act as a proper webserver is remote access is needed.

Robert Tagscherer

unread,
Jun 2, 2020, 7:55:21 PM6/2/20
to electrodacus
Hi Dacian,

While the usb connection can be a reliable and safe alternative for configuration, I think it is not very practical for everyday monitoring. The esp32 is just a few dollars and adds so much value in my opinion. We could even use Bluetooth low energy instead of wifi to conserve power. I'll be glad to support any development on the esp platform so you can focus on the important stuff ;)

Dacian Todea

unread,
Jun 2, 2020, 8:33:17 PM6/2/20
to electrodacus
Robert,

Yes ESP32 is inexpensive and can stay I just prefer USB for a more reliable connection and people have old tablets that can be used in more convenient places especially in RV's.
So tablet is basically just for a remote display and maybe local datalog that is usually low power consumption and the wired connection makes that more robust.
Has the bluetooth improved on the ESP32? Lat time I checked is was not much better than WiFi in therms of power consumption. Also power consumption is usually not relevant as it is powered by a relatively large battery normally hundreds of Ah.
In many installations people have something like a Raspberry Pi used as the main house or RV automation so in that case they had a webserver there and so that was connected over serial to SBMS.
 
  

Dave Festing

unread,
Jun 2, 2020, 9:31:33 PM6/2/20
to electrodacus
Guys,

I have been looking at MicroPython and considering getting one of the these.  I currently run a RaspberryPi with a 3G dongle for remote access.  Main issue is that it is about 4W/hour, the LilyGo device claim about 1W/hour.

Shouldn't programming this device be quite easy in MicroPython?

Dave

Kohala Jim

unread,
Jun 2, 2020, 10:23:54 PM6/2/20
to electrodacus
I get the "low energy" aspect of BLE, but beyond that I'd think any usable/consumable associated BLE UX (unless you love writing apps) would be an onerous approach.  Web BLE might be a possible scenario, but even that makes me cringe.
MQTT brokers are the way of the home automation realm, and that would provide some awesome automation hooks for Hass.IO or OpenHab controllers.
I'm working on some MQTT hooks for a DC lighting controller I'm developing, so I'd vote for those extensions.
Have yet to fire up my USB port and see how the hardware enumerates on my laptop, and that's my only hook into the SBMS0 (back board has no Espressif SOM)

Dacian Todea

unread,
Jun 2, 2020, 10:40:25 PM6/2/20
to electrodacus
Jim,

The USB will show up as a serial port the baud rate can be set in the SBMS menu so is the frequency the data is transmitted and all you need is to collect the data sent at your chosen interval 1 second to 240 seconds over that standard serial port.

Robert Tagscherer

unread,
Jun 3, 2020, 3:25:27 AM6/3/20
to electrodacus
Bluetooth in general is not much better than wifi, but Bluetooth low energy (BLE) Generally is as it works completely different. There is no permanent connection and no pairing unless you hack that yourself. You can just ask the device for some stats and it will transmit them. Or blindly send the stats like a beacon all the time.
The raspberry pi since version 3 includes BLE capable Bluetooth and would be able to receive that, basically just eliminating the usb wire in that scenario.
If you adhere to the standards, BLE is fairly easy to do, both sending and receiving are.

In most cases I think wifi can work well enough, though. Even with an old tablet.
For remote monitoring it is easily the best way and with MQTT you could push the data anywhere you want without any extra devices apart from some kind of WiFi enabled internet access.

Robert Tagscherer

unread,
Jun 3, 2020, 3:28:27 AM6/3/20
to electrodacus
MicroPython ist nice for a lot of things, like any interpreted language performs worse than the native counterpart. In case of some simple monitoring that would probably not be a problem, though.
I'm almost there with C++, but if you want to give MicroPython a try, go ahead :)

Dmitry Katsubo

unread,
Jun 3, 2020, 8:33:11 AM6/3/20
to electrodacus
Would be nice to hear from you how is it possible to pull statistics from SBMS to MQTT. I am not sure about the concerns with safety/security: the device can be configured on the WiFi router to send/receive TCP traffic only from specific / trusted sender.

Robert Tagscherer

unread,
Jun 3, 2020, 8:43:01 AM6/3/20
to electrodacus
MQTT uses a central "broker" to pass the data to interested clients. The SBMS, in this case, would be a publisher. It would actively connect to and push data to the broker of your choice. If you wanted to make this process secure and encrypted, you could use a TLS connection for connecting the SBMS to the broker. The esp32 is perfectly capable of handling such a connection. I think it even has hardware support for some crypto functions, but I have not looked into that yet. Performance is probably not relevant for the basic monitoring we want to do here anyways.

I can look into secure connections at a later time, for now I have to get the basics done.

David Burton

unread,
Jun 3, 2020, 8:43:19 AM6/3/20
to electrodacus
Just to add a bit to the conversation and share what I tried.  I have been using a Raspberry Pi with a serial connection (USB) to the SBMS0.  The connection has been solid with very stable reporting.  I have a python script configured as a service with the pull every 30 sec.  The script parses the data based on Dacian's provided instructions and then inserted into a simple InfluxDB.  This database is then the source for grafana to create some awesome graphs and altering.  I send a text message to my phone when SOC or voltage get's too low.  Here is a picture of the last 24 hours of data on my grafana dashboard (the raspberry Pi is connected to my home wifi network and has no monitor, so it uses ~2W).  I've documented most of the configuration and python script, but haven't had time to post about it.  Let me know if anyone is interested.  FYI, this did take me the better part of the afternoon to configure as it was my first time setting up Grafana and InfluxDB, but it is very quickly reproduceable.


Robert Tagscherer

unread,
Jun 3, 2020, 8:52:21 AM6/3/20
to electrodacus
That looks very nice! I run influxdb and grafana myself for dozens of various metrics around the house. Node-red is used to bridge most of the incoming data from MQTT to influxdb, but it should also be fairly easy to have the esp32 push to an influxdb directly.
Can you maybe share the python script that parses the data from the sbms? That might save me some work.
I'll make my GitHub repository public as soon as I feel someone could give it a try on their actual hardware.
Do you guys have some 3.3V USB to UART converters and some wires at hand so you can actually flash the esp32?

Barry Timm

unread,
Jun 3, 2020, 9:01:42 AM6/3/20
to electrodacus
That looks great! I would LOVE to have that SOC time graph. It's the thing I most wish the SBMS had as standard. I would spend the time and money to replicate your system.

Would much appreciate as much detail and coding as you can spare. Thx!

Robert Tagscherer

unread,
Jun 3, 2020, 10:20:10 AM6/3/20
to electrodacus
Hey Dacian,

I have a few suggestions for the next revision of the WiFi extension board that came up while thinking about the implementation of the software:
- You already have USB to serial there, just RX and TX are swapped for the purpose of communicating with or programming the ESP32. Maybe have some jumpers to facilitate the swap?
- If that USB to serial chip supports flow control lines, those could be used to automatically reset and put into programming mode the ESP32 at zero extra cost. I can find more detail about this if you're interested.
- Alternatively, create a 6 pin header with GND, 3.3v, RX, TX, GPIO0 and Reset for easy programming of the board when not attached to the main board.
- The two Digital IO lines present on the extension board could also be connected to the ESP, we could maybe later even use them to switch certain functionalities via WiFi without needing the serial backchannel. For example enable/disable load remotely.
- Optionally, there could be a tiny status LED on one of the pins of the ESP, which is off by default if there is no problem.
- Optionally, create a space for a pin header exposing some more of the IO of the ESP. That could be used for some additional environmental monitoring or remote switching.
- Optionally, add (at least the the footprint for) an SD-card holder. We could actually log the data every second for ages with that. The ESP could provide a grafana-like expirence in the web browser to view the historical data. Note: Data can be stored on a regular FAT32 filesystem and read by any PC afterwards.
- Optionally, add a button connected to the ESP32, maybe even just the reset button. OTA updates are notoriously insecure, but if they are disabled unless a button is pressed (or the time since the last reset is less than a minute), that should not be a problem.

Kohala Jim

unread,
Jun 3, 2020, 12:15:37 PM6/3/20
to electrodacus
Nicely done... I'll be leveraging the serial port for similar data scraping when I can finally build and deploy my system.
The Pi route might be a nice bridge for me and others, so certainly point us toward whatever you're willing to share. 
I concur with the configuration fiddle factors you experienced as I don't play often in that sandbox.

Thanks for sharing.

Robert Tagscherer

unread,
Jun 3, 2020, 1:58:02 PM6/3/20
to electrodacus

Here is what I've got so far. It should be working, but I could only test on a different device and with fake data sent over the serial port.

Dacian Todea

unread,
Jun 3, 2020, 4:24:30 PM6/3/20
to electrodacus
Robert,

Thanks I will take a look hopefully this weekend. Is the fake serial data the raw data send by SBMS0 (excluding the AT commands) ?

Robert Tagscherer

unread,
Jun 3, 2020, 4:31:29 PM6/3/20
to electrodacus
Hi Dacian,

The fake data I used to test was the data you posted above in this thread. However, the code actually tries to parse the JS variable definitions and sorts them into an internal map. This is so I can also access only the sbms variable for example and process it for MQTT live output later.
It should be robust against any preceding or trailing characters as long as the part with "var varname=....;" is intact. I tested by adding some garbage to the start and end of lines or even sending everything as a single line. In theory, there should be no changes to the SBMS firmware necessary. I wanted to do it that way so people could try it out without needing to modify the precious SBMS, but just the esp32. The baud rate is set to 921600, so that also matches what's already there. Apart from the usual bootup garbage (at 115200 baud I think), the esp32 never transmits anything on the serial connection.

Dacian Todea

unread,
Jun 3, 2020, 5:04:12 PM6/3/20
to electrodacus
Robert,

I disabled the boot garbage on the AT firmware installed on the ESP32. Is there a .bin file or do I need to compile ? Will make some time this weekend to check how it works.   

Robert Tagscherer

unread,
Jun 3, 2020, 7:01:20 PM6/3/20
to electrodacus
Hi Dacian,

I'll look into the boot garbage topic.

It's easiest to just install platformIO. The instructions are in the github repo readme.md file. Everything should be done in a minute with a few commands and you can easily just reflash updates from the git repo.

I think I'll manage to add MQTT support by tomorrow. I already got the sbms variable parsed. Does this look about right for the example data?

20-06-02 12:04:13  99% C1: 3351mV, C2: 3350mV, 26.3C
-20mA, 0mA, 0mA, 0mA, 0, 0, flags: 20480
OV: 0
OVLK: 0
UV: 0
UVLK: 0
IOT: 0
COC: 0
DOC: 0
DSC: 0
CELF: 0
OPEN: 0
LVC: 0
ECCF: 0
CFET: 1
EOC: 0
DFET: 1

I'll also try to get OTA going soon because I think soldering wires to flash the esp32 is a bit of a hassle.

Dacian Todea

unread,
Jun 3, 2020, 8:16:16 PM6/3/20
to electrodacus
Robert,

Yes the conversion seems to be about right I think I got the example from my SBMS0 so there where no charge discharge currents at that time.
It looks like PlatformIO is supported in Linux so I will install that. Seems to be based on Microsoft visual studio hope download is not to large.

David Burton

unread,
Jun 3, 2020, 8:48:46 PM6/3/20
to electrodacus
I've created an initial post about what I did on my family site: https://familyburton.com/solar-battery-testing-with-electrodacus-part-1/, I put some details in there with some URLs to the code, but here is where I just placed them: https://github.com/Burtond/Electrodacus.  I hope that helps some folks work through some fun dashboarding :)

- SBMS0
- Raspberry Pi
- InfluxDB
- Grafana
- USB cable for serial connection to SBMS0
- Python script for parsing data into InfluxDB

Result...awesome graphs, historic data available on home network, with alerts and great mobile support.

Dacian Todea

unread,
Jun 3, 2020, 9:05:29 PM6/3/20
to electrodacus
Robert,

I started installing PlatformIO but It got stuck at python. I had 2.7.6 version installed and I also compiled and installed the latest 3.8.3 version but it is still stuck there even after a reboot


Screenshot-1083.png

Robert Tagscherer

unread,
Jun 3, 2020, 9:15:27 PM6/3/20
to electrodacus
Hi Dacian,

You actually don't need any IDE for just compiling and flashing. A simple "pip install -U platformio" command should do.
I described the whole procedure here: https://github.com/armageddon421/electrodacus-esp32/blob/master/README.md

Visual studio code is useful for development, but I have not actually used it on Linux. I often work remotely on the command line only ;)

Dacian Todea

unread,
Jun 3, 2020, 10:32:43 PM6/3/20
to electrodacus
Robert,

I wish it was as simple as that but  I get the bellow errors. Apparently the SSL module is missing so it can not install the platformio.
upload the hex somewhere so that at least I can write the to the ESP32. I will not need to do modifications anyway to the code. 
 

WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting platformio
  WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/platformio/
  WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/platformio/
  WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/platformio/
  WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/platformio/
  WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/platformio/
  Could not fetch URL https://pypi.org/simple/platformio/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/platformio/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
  ERROR: Could not find a version that satisfies the requirement platformio (from versions: none)
ERROR: No matching distribution found for platformio
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

Kohala Jim

unread,
Jun 3, 2020, 10:51:17 PM6/3/20
to electrodacus
Thanks for posting this up David...
A good reason to get the latest version Pi... my 3+ is running Hass.io

Dacian Todea

unread,
Jun 3, 2020, 10:52:21 PM6/3/20
to electrodacus
I manually downloaded the 4.3.4 version.

Dacian Todea

unread,
Jun 3, 2020, 11:01:15 PM6/3/20
to electrodacus
Robert,

This is what I get 

Processing nodemcu-32s (platform: espressif32; board: nodemcu-32s; framework: arduino)
--------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
PLATFORM: Espressif 32 1.12.2 > NodeMCU-32S
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
DEBUG: Current (esp-prog) External (esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa)
PACKAGES: 
 - framework-arduinoespressif32 3.10004.200129 (1.0.4) 
 - tool-esptoolpy 1.20600.0 (2.6.0) 
 - tool-mkspiffs 2.230.0 (2.30) 
 - tool-openocd-esp32 1.1000.20190708 (10.0) 
 - toolchain-xtensa32 2.50200.80 (5.2.0)
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 28 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <ESP Async WebServer> 1.2.3
|   |-- <AsyncTCP> 1.1.1
|   |-- <WiFi> 1.0
|   |-- <FS> 1.0
|-- <AsyncTCP> 1.1.1
|-- <WiFi> 1.0
|-- <SPIFFS> 1.0
|   |-- <FS> 1.0
Building in release mode
Building SPIFFS image from 'data' directory to .pio/build/nodemcu-32s/spiffs.bin
/sWifi.txt
/web/settings.html
/web/index.html
/web/SBMS.html
/testdata
Retrieving maximum program size .pio/build/nodemcu-32s/firmware.elf
Checking size .pio/build/nodemcu-32s/firmware.elf
Looking for upload port...

Warning! Please install `99-platformio-udev.rules`. 

Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=         ]  13.5% (used 44224 bytes from 327680 bytes)
Flash: [=======   ]  74.3% (used 973577 bytes from 1310720 bytes)
Configuring upload protocol...
AVAILABLE: esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa

CURRENT: upload_protocol = esptool
Warning! Please install `99-platformio-udev.rules`. 
Looking for upload port...

Auto-detected: /dev/ttyUSB0
Uploading .pio/build/nodemcu-32s/spiffs.bin
Auto-detected: /dev/ttyUSB0
Uploading .pio/build/nodemcu-32s/spiffs.bin
esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting...esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting.............____

A fatal error occurred: Invalid head of packet (0x01)
*** [upload] Error 2

Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: cc:50:e3:ab:c4:d4
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 1507328 bytes to 10998...
Wrote 1507328 bytes (10998 compressed) at 0x00290000 in 0.3 seconds (effective 46808.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
======================================================= [FAILED] Took 14.18 seconds =======================================================

Dacian Todea

unread,
Jun 4, 2020, 12:24:36 AM6/4/20
to electrodacus
Robert,

Ignore the above I wrote the firmware. I see an access point starting with SBMS-(and I think the MAC) but authentication is required and no idea what that is.

Robert Tagscherer

unread,
Jun 4, 2020, 3:16:04 AM6/4/20
to electrodacus
Hey Dacian,

Seems like a lot happened while I was sleeping. I'm happy you could get it to work!

Hcould I have forgotten such a simple thing as telling you the default password? I guess it was late.

The default password is electrodacus

Dacian Todea

unread,
Jun 4, 2020, 3:29:45 AM6/4/20
to electrodacus
Robert,

That is a strong password :) 
Seems it works then what IP do I use I tried the one I seen in your photo 192.168.2.150 but that is not working.
Currently is just a WiFi module in my programmer. I noticed it gets a bit hot so I measured the current and it is 173mA vs when running my default AT firmware drawing just 128mA
  

Robert Tagscherer

unread,
Jun 4, 2020, 3:36:53 AM6/4/20
to electrodacus
If you are connected directly to it, it has the usual IP of 192.168.4.1.
If you connected it to your home WiFi, you should find the IP in your router or maybe even connect to the hostname you configured (but that's not properly working yet)

I can look into power usage, maybe the CPU is clocked higher by default. Also I defninitely use both CPU cores, which the default firmware probably doesn't. I was not concerned about low power modes yet, but I'll add that to the list.

Dacian Todea

unread,
Jun 4, 2020, 4:07:22 AM6/4/20
to electrodacus
Maybe compile was not correct I do not get anything on 192.168.4.1 when connected to ESP32

Auto-detected: /dev/ttyUSB0
Uploading .pio/build/nodemcu-32s/firmware.bin
esptool.py v2.6
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP32D0WDQ6 (revision 1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
MAC: cc:50:e3:ab:c4:d4
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 4MB
Compressed 15872 bytes to 10319...
Wrote 15872 bytes (10319 compressed) at 0x00001000 in 0.2 seconds (effective 519.1 kbit/s)...
Hash of data verified.
Compressed 3072 bytes to 128...
Wrote 3072 bytes (128 compressed) at 0x00008000 in 0.0 seconds (effective 5531.5 kbit/s)...
Hash of data verified.
Compressed 8192 bytes to 47...
Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 26425.5 kbit/s)...
Hash of data verified.
Compressed 973696 bytes to 547637...
Wrote 973696 bytes (547637 compressed) at 0x00010000 in 13.2 seconds (effective 589.2 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
=============================================== [SUCCESS] Took 31.51 seconds ===============================================

Robert Tagscherer

unread,
Jun 4, 2020, 4:09:29 AM6/4/20
to electrodacus
Did you also upload the filesystem? If you used the command from my documentation that should be done. If you used the IDE you need to go to the platformIO tab on the left and click "upload file system image"

Dacian Todea

unread,
Jun 4, 2020, 4:17:19 AM6/4/20
to electr...@googlegroups.com
Your command was "platformio run --target upload --target uploadfs"  but that fails and only the "platformio run --target upload" worked.

This the error
A fatal error occurred: Invalid head of packet (0x08)
*** [upload] Error 2

Robert Tagscherer

unread,
Jun 4, 2020, 4:18:20 AM6/4/20
to electrodacus
Try just platformio run --target uploadfs
That's for uploadinf the filesystem. How does it fail?

Dacian Todea

unread,
Jun 4, 2020, 4:39:37 AM6/4/20
to electr...@googlegroups.com
That worked.  I was able to set the SIDD and password to connect to my Android phone and I got the IP address from there.
I will need to install on a SBMS to see if the data works likely this weekend. 

I connected the module to an SBMS0 but I do not see any data same as when it was not connected.  

Robert Tagscherer

unread,
Jun 4, 2020, 4:41:42 AM6/4/20
to electrodacus
I'm glad it worked! I'll probably have to update the instructions a little bit. I've already incorporated some of your feedback and created issues to work on.

Dacian Todea

unread,
Jun 4, 2020, 4:50:27 AM6/4/20
to electrodacus
I even set SBMS on serial 921.6 and I can see the RX LED on the module blinking very briefly but no data is transmitted.
I was expecting the empty SBMS.html but there is nothing recived tho it shows 192.168.43.4/sbms.html  as if it was supposed to publish that.
Not sure if you loaded that in to ESP32 or just wanted to transmit the raw data.

Robert Tagscherer

unread,
Jun 4, 2020, 4:53:17 AM6/4/20
to electrodacus
You should be able to go to http://192.168.43.4/rawData and see the variables. If that page is empty, something is wrong.

Robert Tagscherer

unread,
Jun 4, 2020, 4:55:48 AM6/4/20
to electrodacus
Also maybe try 192.168.43.4/SBMS.html with capital letters, I may have spotted an oversight on my end there.

Dacian Todea

unread,
Jun 4, 2020, 4:56:13 AM6/4/20
to electrodacus
That is working it sows for fake fixed variables (more like constants :) )

Dacian Todea

unread,
Jun 4, 2020, 4:58:57 AM6/4/20
to electrodacus
Sorry my mistake the rawData shows the live data from the SBMS0 or so it seems I was just set on UART and now switched back to WiFi.

Robert Tagscherer

unread,
Jun 4, 2020, 5:00:54 AM6/4/20
to electrodacus
/dummyData should show the dummy data.

/rawData should actually be updated from what is received on the serial port. If you go there directly (without the html page) you need to manually refresh the page.

Are you on the latest commit of the git repository? I found a bug shortly after I released the link to the repository that would cause the values to not update properly. Try "git pull" in the command line to update.

Dacian Todea

unread,
Jun 4, 2020, 5:04:10 AM6/4/20
to electrodacus
I just changed the SBMS.html file to redirect to 192.168.43.4/rawData and yes it works and displays the correct values.

I will install this in weekend to do a more proper test but it seems to work. Is very late now I will need some sleep before the sun is UP. 

Robert Tagscherer

unread,
Jun 4, 2020, 5:05:26 AM6/4/20
to electrodacus
Great to hear that! Have a good night's sleep. I was up quite late myself.

Robert Tagscherer

unread,
Jun 4, 2020, 5:19:56 AM6/4/20
to electrodacus
I checked the power consumption of my module and it's only 82mA while connected to my home WiFi and there are two bright LED currently lit up on the module. I can barely feel it getting warm. Maybe something's wrong with your module?

Dacian Todea

unread,
Jun 4, 2020, 1:42:24 PM6/4/20
to electrodacus
Robert,

Yes consumption is much lower now after uploadfs it was probably in some sort of loop before when firmware was not complete.

Robert Tagscherer

unread,
Jun 4, 2020, 1:52:36 PM6/4/20
to electrodacus
That makes sense. I have some plans for future power saving options, but I think that's low priority for now.

I also have more insight a out the startup logging. Apparently you have to get rid of it in 3 different places. To silence the bootloader which is permanently installed on the esp32, you have to tie gpio15 to GND. The other output I should be able to silence in the firmware itself.

Dacian Todea

unread,
Jun 4, 2020, 3:07:17 PM6/4/20
to electrodacus
Yes power is now great no need to worry about that.
Are you sure the gpio 15 needs to be connected to GND ? I can do that in the new version as the WiFi board is not fully done but should be done soon.  I see I have gpio2 connected to GND trough a 10K resistor. I can easily connect the GPIO15 also if helpful.
I will also add a header for programming the ESP32  as I can not see how I can simply reverse the RX/TX so that the on board USB can work.  I do not have the height for jumpers.

Robert Tagscherer

unread,
Jun 4, 2020, 4:34:55 PM6/4/20
to electrodacus
I'm fairly positive about pulling low GPIO15. I found numerous forum posts stating that and evidence that it worked. It's only required during bootup and after deep sleep and can still be used as a regular GPIO pin after that. Could add a small LED or so in parallel to the pull down resistor for example. I think the pin also part of the SD-Card interface.

Regarding the flashing procedure I have some input for you:

The esp32 has mutliple UARTs. If we wouldn't have to worry about compatibility to the default AT modem firmware, we could surely figure out something smart there. That's nothing for me to ask for, though.
Basically the idea is to connect both the UARTS together but with RX and TX inverted in such a way that the default UART which is also used for flashing has the right configuration for the USB converter while the other one is used to talk to the SBMS main board.

There should be open space on the unpopulated side of the board right? Maybe create a landing pattern for a 2x2 jumper/pin header on that side that will be unpopulated by default and have cuttable traces going to the default configuration. If flashing is required often (e.g. for development) someone could populate the footprint himself and use jumpers. To go back to regular mode permanently, a solder bridge can be used. Basically like the below image. The jumpers can be added horizontally or vertically. 

swap.png


A programming header is definitely nice to have anyways. The methods above are only really helpful if the USB to UART converter can automatically reset and put the esp32 into bootloader mode (needs extra optoisolators perhaps), or if there are at least easy to reach pins or buttons for that purpose.
I should be able to get OTA updates working soon, so the manual procedure would only have to be done once for each device (or until something's wrong with the firmware update, then you need the cable again). A user would still need additional hardware, though.

I don't know what the best solution is, I think that's for you to decide. In my opinion the goal should be to make flashing the esp32 somewhat easy at least. It would of course be a bonus if no additional or external hardware was needed for that. That would potentially also reduce required support.

The simplest solution: Add the programming header and flash every device you send out with an OTA capable firmware. Probably add a reset or any other button for OTA security.

I won't get anything done today, but I've got all of tomorrow to dedicate to further development of the firmware. Hope I could help you.

Robert Tagscherer

unread,
Jun 4, 2020, 4:40:41 PM6/4/20
to electrodacus
I just noticed that you'd also have to supply power to the esp separately if you could use the usb for flashing. Or have it powered from the sbms, which would probably interfere by sending data itself.

Dacian Todea

unread,
Jun 4, 2020, 5:03:03 PM6/4/20
to electrodacus
Robert,

The use of two UART seems like a good idea I will look at that possibility. Yes the USB is fully isolated from the rest of the SBMS to protect the SBMS and any device you may connect to as there will be no ground loops but that also means the WiFi needs to be powered separately will not be powered by USB.
The WiFi/USB PCB is exposed so I can not add connections there unless are hidden like under the 16pin ribbon cable connecting the main board to the WiFi/USB board.
I think I will add a 6 pin header under that ribbon cable 2x3 that will contain GND,3.3V TX, RX Reset and GPIO0
I need to design board on a single layer mostly so do not want to get to complicated. I appreciate the input as I did not had time to look much in to the ESP32. 

  

Dmitry Katsubo

unread,
Jun 5, 2020, 3:31:32 AM6/5/20
to electrodacus

Looks fantastic, thanks for your effort Robert!

If I may ask: is it possible to compile the project using stock Arduino UI and then upload it to ESP?

On Wednesday, 3 June 2020 19:58:02 UTC+2, Robert Tagscherer wrote:

Here is what I've got so far. It should be working, but I could only test on a different device and with fake data sent over the serial port.

Robert Tagscherer

unread,
Jun 5, 2020, 3:43:43 AM6/5/20
to electrodacus
Hi Dmitry,

In theory it is possible to use the Arduino IDE with some adjustments. I wouldn't recommend that, though. PlatformIO is very simple to use and can be installed in just a minute on any platform that can run python. You don't even need any IDE if you just want to compile and flash a device. PlatformIO makes sure all the settings are right, as they are located in a dedicated configuration file per project. That's the thing I hate most about the Arduino IDE, I always have to select the Board and remember the correct settings whenever switching projects. PlatformIO will also download any libraries and other dependencies needed and that in exactly the versions specified in the configuration. There's just no way to do that consistently with the Arduino IDE.

For those reasons I'd rather help you get PlatformIO to work for you than give any support related to problems with the Arduino IDE.

I hope that clears things up :)

John Taves

unread,
Jun 5, 2020, 2:56:35 PM6/5/20
to electrodacus
What will be required, besides software to burn the esp32, so that I can use it as a client on my network?

Robert Tagscherer

unread,
Jun 5, 2020, 3:05:09 PM6/5/20
to electrodacus

Requirements

You need a USB to Serial/UART converter with an interface level of 3.3V. 5V will destroy your ESP32. And any "PC" with any OS supported by plattformIO with installed python (2.7 should do). Make sure pip works.

Robert Tagscherer

unread,
Jun 5, 2020, 5:46:21 PM6/5/20
to electrodacus
Hey guys,

I got MQTT support working today and made a few tweaks to the software. I think it's pretty stable from what I can test here without the real hardware. I decided to tag a release v0.1 so we have a point of reference for the future. I'm also proud of my unusually good documentation, so make sure to read it if you are interested.

Check it out at https://github.com/armageddon421/electrodacus-esp32

Feel free to leave any suggestions here or at GitHub.

Dacian Todea

unread,
Jun 5, 2020, 5:59:27 PM6/5/20
to electrodacus
Robert,

I will find time this weekend to test the v0.1 on one of the SBMS0 and will let you know how it work.
I'm not familiar with MQTT where will the data be transmitted ? Some sort of cloud service ? 

Robert Tagscherer

unread,
Jun 5, 2020, 6:21:19 PM6/5/20
to electrodacus
Hey Dacian,

I've created sort of a FAQ on the github repo at the bottom of the readme. I also added some notes on MQTT there (pasted below).
Basically you "publish" the data to a "broker", and whoever's interested can "subscribe" and receive any updates. The broker is the key part here. While you can of course use public or "cloud" based brokers, I think most people host their own broker for their home automation setups. The data remains purely local in that case.

Remote monitoring is a very probable use case for the SBMS, though. Encrypted connections are possible and supported by all the big broker softwares. And we can do that on the esp32 as well. That's why it's on my list. The user still has to provide a trustworthy broker of course.

What is MQTT?

MQTT is a publisher-subscriber based message passing protocol that uses a central server called "broker" to relay the messages. Many IoT applications nowadays support MQTT, devices as well as dashboard and home automation solutions. It is easy to locally host your own local MQTT-Broker (for example Mosquitto) for your home automation needs, a raspberry pi is already enough. I personally use node-red as "glue logic" to connect all my sensors and actors, feed my databases and for creating logic.


Dacian Todea

unread,
Jun 5, 2020, 6:38:09 PM6/5/20
to electrodacus
Thanks Robert,

That is what I wanted to know. I was thinking you used by default some free cloud based MQTT broker. I will check the documentation before testing.

Barry Timm

unread,
Jun 5, 2020, 7:59:33 PM6/5/20
to electrodacus
LOL, the more I read these posts between the two of you, the more I'm impressed by your level of expertise and technical knowledge, and, the more depressed I get about my own lack of it! :-)

Just kidding, but as a very old school programmer from the '80s and '90s, I wish I'd kept up with the technical aspects more, as I went up the management structures within the corporate world. All this stuff intrigues me so much now that I'm retired, so have bought an Arduino Starter Kit and am starting to go through a set of training videos on YT, by Paul McWhorter, to try to learn the basics again, before picking up a Raspberry Pi and whatever else may be useful.

My main interest is in Home/RV systems automation and remote management/monitoring functions, with voice control (Alexa, etc).

Thanks for sharing your communications. I find it absolutely fascinating to try to decipher a tenth of what you guys are talking about. :-)

Dacian Todea

unread,
Jun 5, 2020, 8:38:31 PM6/5/20
to electrodacus
Robert,

I just compiled your latest version and uploaded on an SBMS0 (runs from 8s 2.3V supercapacitor bank thus the low cell voltages).
Below are some screenshots. 3 different browser's that I have.
In some the entire data is refresed (blank the repopulated) so maybe a different method of refersing the display data will be needed.
Will need to look in to haw MQTT can be used as I do not have any home automation computer maybe will find a free cloud service to test.

Screenshot-1088.png

Screenshot-1089.png

Screenshot-1090.png

Screenshot-1091.png

Screenshot-1092.png




Robert Tagscherer

unread,
Jun 6, 2020, 8:12:55 AM6/6/20
to electrodacus
Hey Dacian,

Glad everything seems to work.

We could use Ajax or even websockets for refreshing the data. I think it should actually work the same way as before, but I might not understand exactly how it worked before.
I'll probably try writing a completely new page at some point.

Dacian Todea

unread,
Jun 6, 2020, 2:49:21 PM6/6/20
to electrodacus
I tested on 3 browser's each has his own style.
On google chrome it seems page will go blank for a second and fully update both with the html file stored on computer and just receiving the raw data and when delivered by the ESP32
On Firefox it works great just updating the values not the entire page when page is stored on computer but will "blink" blank the data and refresh the entire page if SBMS.html is delivered by the ESP32
On Opera (fairly old version) it works fine for both cases just the values/graphs get updated there is no fraction of a second blank.
It is related to the way browsers process the webpage the older version of chrome I used when designing the html page did not do this sort of full page blank before refresh.
Maybe there is some html function that informs the browser that it should only update the parts that changed not the entire page (I will need to check).
 
While running this tests again just now I observed some artifact's. I will need to check what are those about. I manage to capture one while I was in Opera but I do not think is browser dependent.
First screenshot shows the artifact on PV graph should be no data but it seems it duplicated some of the Load data on to the PV is the same data as in the 1h graph flowed by part of the data in the 1m graphs on load.

Screenshot-1093.png

Screenshot-1094.png



 

Kohala Jim

unread,
Jun 6, 2020, 4:17:35 PM6/6/20
to electrodacus
Dacian -

Could repost the captures such that they are full size or expandable?
I'd like to look at these in more detail and there's no expansion available via the forum post...

Thx in advance.

Dacian Todea

unread,
Jun 6, 2020, 4:21:19 PM6/6/20
to electrodacus
Jim,

Go over the image and right click to open a menu where you select the first option "Open image in a new tab"

Dacian Todea

unread,
Jun 6, 2020, 8:57:11 PM6/6/20
to electrodacus
Here are a few example with correct and wrong rawData.

Example 1 first photo wrong data second photo some seconds later correct data. 
Notice Btp less data and part of the data seems to be copied from Ld
Eld less data points.
dmppt less data points.

Screenshot-1121.png

Screenshot-1122.png


Example 2
PV2 contains more data seems part of it copied from PV1


Screenshot-1117.png

Screenshot-1118.png


Example 3
Less data on Ld and some of the data seems to be from sbms variable.


Screenshot-1116.png


Example 4
PV2 borrowing data from PV1 but 2 seconds in to the future as it contains the "/#" that you can see in the next photo took a few seconds later.

Screenshot-1100.png

Screenshot-1101.png



Not quite sure what the problem is some sort of buffer problem but not sure how it happens.

Robert Tagscherer

unread,
Jun 7, 2020, 8:33:51 AM6/7/20
to electrodacus
Hey Dacian,

For the web refresh problem, I think that refresh mechanic is really meant to refresh the whole page. For dynamic refreshing we should use Ajax or websockets.

Thanks for the detailed testing.
I think I have found the problem and will work on solving it. I intentionally am creating json representations of the data even when MQTT ist disabled in order to not hide issues related to that. Turns out the json library I used is slow enough that I loose data from the serial port in the meanwhile. I think I can provide a fix later today.

John Taves

unread,
Jun 7, 2020, 11:24:05 AM6/7/20
to electrodacus
This should do the trick, right?

https://www.amazon.com/Adapter-Serial-Converter-Development-Projects/dp/B075N82CDL

Then I connect the 6 pins of that board to the appropriate pins on the 10 pin where 4 are already used as extio 5/6

Cool

John Taves

unread,
Jun 7, 2020, 11:31:40 AM6/7/20
to electrodacus

Robert Tagscherer

unread,
Jun 7, 2020, 11:36:52 AM6/7/20
to electrodacus
Don't go for the cheap one, it's a fake and it states so even in the product description.
The other one states compatibility with the esp8266, so you can be sure it is also compatible with the esp32.

John Taves

unread,
Jun 7, 2020, 12:02:34 PM6/7/20
to electrodacus
How did you determine the hiletgo thing would not work?

Robert Tagscherer

unread,
Jun 7, 2020, 12:06:19 PM6/7/20
to electrodacus
Well, it probably can work just fine. But if you ever accidentially plug it into a windows machine and it automatically installs the latest original drivers for it (or you already have them installed) it will brick the device for good. AFAIR there's no way to recover it from that, as FTDI does that on purpose when their driver detects an unoriginal device. I'm not sure how that situation is when using linux or mac.

Kohala Jim

unread,
Jun 7, 2020, 12:34:05 PM6/7/20
to electrodacus
Thanks for that.

Dacian Todea

unread,
Jun 7, 2020, 1:47:01 PM6/7/20
to electrodacus
Robert,

The refresh thing is a cosmetic issue and works different in each browser.
The slow json library seems to make sense.  


John,

The thing is that the USB to UART should have a dedicated 3.3V regulator the one build in is only capable of 50mA not enough to power something like the ESP32
There should be more USB to UART that also have a 3.3V linear regulator to also be able to power the device you are programming.

 

John Taves

unread,
Jun 7, 2020, 2:53:18 PM6/7/20
to electrodacus
Dacien, the board you are using requires the esp32 to be desoldered and placed into this board, right?

The one I ordered: https://www.amazon.com/Adapter-Serial-Converter-Development-Projects/dp/B075N82CDL gets power from the USB, but USB is 5v, so how are they getting the 3.3v?

Jim, did you remove the chip? If not, does your USB/UART have the regulator? What one do you have?

Dacian Todea

unread,
Jun 7, 2020, 3:01:13 PM6/7/20
to electrodacus
No you do not need to desolder the ESP32. You can just connect jumper wires to that board for 3.3V GND, TX, RX and IO0
I do use that board to program the ESP32 before soldering as it is more convenient for me but it can also be used to program an ESP32 already soldered on some other board.

Dacian Todea

unread,
Jun 7, 2020, 4:07:46 PM6/7/20
to electrodacus
Robert,

This is not a priority but if you have time you can allow for another type of raw data to be pass trough when someone wants to download the monthly internal data log from the SBMS.
The format of that data looks like this
You have var hxxx="data"
You will have var h000 to h743 that is how many ours are in a month with 31 days
Each hour contains the sbms variable at every two minutes so there is quite a bit of data about 1.44MB for one month. Internally the SBMS stores this for the past 12 months so one full year worth of data.
This can be downloaded over USB but maybe can be done over WiFi also if is not to much data to deal with. This worked for me with the AT firmware on the ESP8266 but some AT functions where missing on the ESP32 so can only be downloaded over USB or UART on the models that have ESP32
This below is just a short example there is a header containing the SBMS model number and month then the data I only showed h000, h001 that are empty and h238 and h239 that contain data

//ElectroDacus SBMS100 Month: 08 
 var h000="ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"; 
 var h001="ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ";
 var h328="3+13##$,GpG}H^H0H<HqHQHY*}##-#/G##%#####################%{* 3+13%#$,GgGsHQH(H5HeHFHO*|##-#/^##$#####################%{* 3+13'#$*FWFpG1EjFwFcFXFQ+<##-'Py$9Z#Yx##################%N( 3+13)#$+EVEoF;E}F$FAFVGX+G##-'U2$:)#Z3##################%N( 3+13+#$+F7FKFcFTFUF^F\FZ+R##-'VO$96#Yd##################%N( 3+13-#$+H$G}GxGyGyGuGxGy+D##+$Gd$0C#UJ##################%N( 3+13/#$+G'G0GZGQGQGSGRGJ+@##+$C7$-B#Ss##################%N( 3+131#$+F]FkF}FqFrFvFvFt+L##-&TB$,F#S:##################%N( 3+133#$+FYFcG6G.G*G'G%Fr+R##-&I=$1D#Ue##################%N( 3+135#$+FAFSFmF\F]FgFmGQ+N##-$+g$0i#UL##################%N( 3+137#$+GoGpGnGqGpGjGkGl+M##-#38$-R#Sp##################%N( 3+139#$+GwGvGsGtGsGnGnGn+J##-#&8$.'#T(##################%N( 3+13;#$+FQF`FxFgFeFmFiFQ+I##-#CJ$-?#SZ##################%N( 3+13=#$,GlGoGnGpGpGjGkGl+J##-#K{$+w#Rp##################%N( 3+13?#$+EkF%FJF2F1F?F?F4+L##-#0>$)j#Qi##################%N( 3+13A#$,GjGiGhGkGjGeGfGg+N##-%d%$)q#Qp##################%N( 3+13C#$+GXGZGWGZGYGRGSGS+T##-&QJ$*^#R7##################%N( 3+13E#$+E\ErFDF8FKFeFiFk+Q##-#er$(d#QC##################%N( 3+13G#$+F%FSFzFrFqFpFjFm+Y##-&O4$)x#Qq##################%N( 3+13I#$,GsGsGpGsGsGoGqGq+M##+$91$&J#P:##################%N( 3+13K#$+GvGNGaGdG^GVG^GL+O##+#%2$%v#O{##################%N( 3+13M$$+GiGiGeGlGkGfGgGg+O##-%b$$'-#PN##################%N( 3+13O#$+F'FIFgFVFSF[FYFX+S##-$RU$$w#OH##################%N( 3+13Q#$+G\G^G^GcGcG`G`G`+P##+#M*$#6#NR##################%N( 3+13S#$+F,F;FUF>F:FBF@F2+R##-#<c$#)#NI##################%N( 3+13U#$+G[G^G]G_G]GYGYG[+S##-$mg#|p#Mi##################%N( 3+13W#$+GfGeGdGgGfGbGeGe+N##-$v@#{f#M/##################%N( 3+13Y#$+GWGqGGG[GWGNGWGD+P##-#Qh#y*#Kt##################%N( 3+13[#$+FaFmG#FsFrFvFbG(+O##-#Q>#x]#K\##################%N( 3+13]#$,GkGnGlGoGnGiGiGj+K##-#.b#wm#K3##################%N( "; 
 var h329="3+14##$,G*FvG-F|F|G&G&G&+H##+$*a#v]#JW##################%N( 3+14%#$+E}F?FXFFFEFOFSFP+S##-&cF#x>#KC##################%N( 3+14'#$+G[G\G^GaG`G[G]G\+N##-#{{#t]#IW##################%N( 3+14)#$+EzF0F?F)F'F5F4F'+N##-$6'#t7#IA##################%N( 3+14+#$+GTGVGWGZGXGTGTGT+O##-$>s#rn#H_##################%N( 3+14-#$+F%F:FXFDF>FGFDF0+M##-$*'#q?#G{##################%N( 3+14/#$+GNGQGTGVGVGPGRGQ+O##-$QS#oI#G4##################%N( 3+141#$+FZFpG$FsFpFqFnFk+M##-#y$#nW#FX##################%N( 3+143#$+GJGLGPGSGTGQGRGQ+O##-$7n#mh#F,##################%N( 3+145#$+EyF.FJF5F5F@F?F5+N##-#6n#jh#D]##################%N( 3+147#$*EoF,FGF4F3F9F3F?+U##-'GJ#R`#8n##################%N( 3+149#$,GTGVGVGYGWGSGTGS+K##+#mt#dn#Ab##################%N( 3+14;#$,G`GbGcGgGeGaGaG`+F##+#q1#fv#Bb##################%N( 3+14=#$,GbGdGgGjGhGbGcGd+A##+#p>#\c#=^##################%N( 3+14?#$,GdGgGjGmGkGeGgGg+>##+#p{#[^#=-##################%N( 3+14A#$,GgGiGlGoGnGhGiGi+<##+#kx#[x#=8##################%N( 3+14C#$,GjGmGoGrGqGlGmGm+9##+#p0#_$#>e##################%N( 3+14E#$,GkGmGpGrGqGmGnGn+7##+#r4#`R#?J##################%N( 3+14G#$,GoGpGrGuGuGoGqGp+5##+#oA#^d#>P##################%N( 3+14I#$,GoGpGuGvGvGpGqGq+3##+#np#]a#>###################%N( 3+14K#$,GpGrGuGxGwGrGtGs+2##+#l]#\,#=7##################%N( 3+14M#$,GqGsGuGwGwGrGtGt+1##+#jO#ZX#<L##################%N( 3+14O#$,GqGuGwGxGxGsGuGu+/##+#gw#Y$#;^##################%N( 3+14Q#$,GsGuGwGxGxGtGuGu+.##+#ed#WH#:p##################%N( 3+14S#$,GtGuGxGzGyGuGvGv+-##+#e-#Uw#:.##################%N( 3+14U#$,GtGvGwGzGxGuGuGu+,##+#b*#T=#9?##################%N( 3+14W#$,GsGvGxGzGyGvGvGv++##+#_d#R\#8M##################%N( 3+14Y#$,GuGwGyG{GzGvGwGw+*##+#^f#Q4#7g##################%N( 3+14[#$,GuGwGxG{GzGvGvGw+)##+#_9#Od#6|##################%N( 3+14]#$,GoGsGvGvGvGqGsGs+(##+#Z;#N3#68##################%N( "; 

Robert Tagscherer

unread,
Jun 7, 2020, 4:43:12 PM6/7/20
to electrodacus
Hey Dacian,

History download should be possible, I've added that to the issue list on github.

Robert Tagscherer

unread,
Jun 7, 2020, 5:08:52 PM6/7/20
to electrodacus
Hey Dacian,

I just updated the github repository with my changes. The serial data is now read and processed properly with a separate high priority rtOS task. I tried to torture test it and could not replicate the issue anymore.
This cost more time than expected, so unfortunately there are no new features today :/

Dacian Todea

unread,
Jun 7, 2020, 5:19:57 PM6/7/20
to electrodacus
Robert,

I will test it tomorrow as today I will be busy.

Dacian Todea

unread,
Jun 7, 2020, 7:59:21 PM6/7/20
to electrodacus
Robert,

Could not wait so I uploaded the latest version and that problem seems to be gone as far I can see from a quick test.

Robert Tagscherer

unread,
Jun 15, 2020, 6:38:25 PM6/15/20
to electrodacus
Hi Dacian,

I switched to the ESP-IDF based build so I have control over the whole operating system. First order of business was disabling all "boot log garbage" as much as I could. Only the output below is left over and I think that will go away by pulling that pin because it's from the hardware bootloader.

ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0018,len:4
load:0x3fff001c,len:852
load:0x40078000,len:10528
load:0x40080400,len:3020
entry 0x400805d4

That's at 115200 baud as per usual with that type of output.

It's currently only on the develop branch on github, but you can test it if you want. Functionally there should not be a difference to the "old" version.

Dacian Todea

unread,
Jun 15, 2020, 7:20:53 PM6/15/20
to electrodacus
Robert,

I have disabled all boot garbage in the AT-firmware that I used. You can first take a look at how that original firmware works before using your version as once you upload your's none of the WiFi menu settings will work other than Power ON/OFF.
Likely most of that menu will be gone as it is not needed.

Robert Tagscherer

unread,
Jun 16, 2020, 6:38:35 AM6/16/20
to electrodacus
Hi Dacian,

Can you elaborate a bit on what you mean by wifi menu settings? I'm really not familiar with the default firmware and I can not find much documentation apart from AT command lists etc.

It is loading more messages.
0 new messages