Hey Amigos,
As mentioned about a year or more ago, I finally replaced the
crappy WiFi iChip with an ESP32 (with on-board SD card reader)
The code can be found on
https://github.com/neuweiler/GEVCU/tree/develop for GEVCU 4.x and
https://github.com/neuweiler/GEVCU-ESP32Web for the ESP32. The
ESP32 will work with the web-site files on SPIFFS or an SD card.
The live data communication between GEVCU and ESP32 is no longer done via json as the 115200 baud of the serial interface are too limmiting. I switched to binary data which requires only 3, 4 or 6 bytes per value instead of 16-30 bytes. The ESP32 converts the data to json before sending it via websocket to the browser.
Advantages:
* The dashboard is much more responsive and updates values 10x per
second (instead of 1-2x)
* The ESP32 doesn't freeze up while driving (like the ichip did)
* 2MB (SPIFFS) or 64GB (SD card) space for website. Don't know
what to do with that much space yet
* Much better reception/discovery of AccessPoint (my iPhone
sometimes could not see the ichip AP).
* Full power over connection, server behaviour, etc.
* Lots of spare CPU power for other fancy stuff.
* No electronics parts needed.. it's only wiring. (refer to
https://raw.githubusercontent.com/neuweiler/GEVCU-ESP32Web/master/docs/Adapter%20Breadboard.png)
Prototye with GEVCU2:

Adapter board:

In GEVCU 4:

I placed it a bit the wrong way.. could not solder a plug to the antenna on the left for an external antenna. But it works fine like that (with a plastic cover for GEVCU, not metal).
Cheers,
Michael

On Aug 31, 2020, at 6:17 PM, Matt Arabie <mar...@gmail.com> wrote:
Glad this group isn't dead yet.
Michael, I was looking around after dusting off my EV project and noticed you fork and this thread. If it helps you and others, I have seen a module (ESP32 CAM) that has the ESP32-S has a SD card built on to the board and comes with an external antenna pigtail and antenna. Not sure if the pig tail is long enough to reach the stock GEVCU location.
This plus a little circuit board could make this "plug and play" mod.
<esp32cam.jpg>
On Tuesday, July 7, 2020 at 9:39:52 PM UTC-4 Charles Galpin wrote:
Hi MichaelThis way cool! I'll have to try this sometime. I can't even recall exactly where I left off with my GEVCU years ago, but i think I had attempted to switch from my v2 board to my v4.2 board and found the wifi module stopped working and stopped there. So I'll give this a shot since wifi is a must have for me too.Can you point me to an ESP32 dev board that comes with a SD card reader? I can't find one. Ideally one with an antenna connector too :)charles
On Friday, May 8, 2020 at 4:08:52 PM UTC-4, Michael Neuweiler wrote:
Hey Amigos,
As mentioned about a year or more ago, I finally replaced the crappy WiFi iChip with an ESP32 (with on-board SD card reader)
The code can be found on https://github.com/neuweiler/GEVCU/tree/develop for GEVCU 4.x andhttps://github.com/neuweiler/GEVCU-ESP32Web for the ESP32. The ESP32 will work with the web-site files on SPIFFS or an SD card.
The live data communication between GEVCU and ESP32 is no longer done via json as the 115200 baud of the serial interface are too limmiting. I switched to binary data which requires only 3, 4 or 6 bytes per value instead of 16-30 bytes. The ESP32 converts the data to json before sending it via websocket to the browser.
Advantages:
* The dashboard is much more responsive and updates values 10x per second (instead of 1-2x)
* The ESP32 doesn't freeze up while driving (like the ichip did)
* 2MB (SPIFFS) or 64GB (SD card) space for website. Don't know what to do with that much space yet
* Much better reception/discovery of AccessPoint (my iPhone sometimes could not see the ichip AP).
* Full power over connection, server behaviour, etc.
* Lots of spare CPU power for other fancy stuff.
* No electronics parts needed.. it's only wiring. (refer tohttps://raw.githubusercontent.com/neuweiler/GEVCU-ESP32Web/master/docs/Adapter%20Breadboard.png)
Prototye with GEVCU2:
Adapter board:
![]()
In GEVCU 4:
I placed it a bit the wrong way.. could not solder a plug to the antenna on the left for an external antenna. But it works fine like that (with a plastic cover for GEVCU, not metal).
Cheers,
Michael
--
You received this message because you are subscribed to the Google Groups "GEVCU-Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gevcu-developm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gevcu-development/dcf4d6a2-5c94-4a7b-b915-3961da5da1f3n%40googlegroups.com.
<esp32cam.jpg>
Cool stuff!! Where can you buy this board?
When designing an interface PCB, consider the final location of the antenna connector. I made a small error there and the antenna's right at the wall of the box. But it also works approx 10-15m around the car and also inside the car. So an external antenna is not absolutely necessary but certainly helpful.
I had to add some minor changes to get it working reliably but now I'm really happy with it. Software and web site can be updated over the air - no wire connection required.
Cheers,
Michael
--
You received this message because you are subscribed to the Google Groups "GEVCU-Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gevcu-developm...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gevcu-development/1e1c34c4-29b0-4383-83c8-38e37ddea33dn%40googlegroups.com.
Ooops, sorry charles! ;)
An SD card reader is not an absolute must at this moment. The web site can be stored in 2MB SPIFS for now. But when we add some fancy animations, sounds etc. it might be wise to foresee one.
The GPIOs 16 and 17 are correct - these are used by Serial2 in an ESP32 (see HardwareSerial.cpp lines 18, 22 and 50-53). The pins of Serial1 clash with the ones used for the SD card on my board and caused crashes.
Oh I just realized that GPIO is not exposed on your board. Darn.. different setups complicate things. But it's possible to assign different pins via software or use Serial. But another problem is that the EN(able) pin is not exposed. We need that one so GEVCU can reset the ESP32 in case of a crash. I need it in my setup because at start-up the ESP32 sometimes got stuck and I implemented a heart-beat with automatic reset.
The connections to D18 and LED are not mandatory for operation and could be left out.
Cheers,
Michael
To view this discussion on the web visit https://groups.google.com/d/msgid/gevcu-development/2A79F213-2957-4AD8-9DB0-F5602D24031C%40gmail.com.
Maybe the 16MB variant of this would be a good alternative when creating an adapter PCB anyway: https://www.aliexpress.com/item/33000362589.html
Or this one (although it ha no SD card) : https://www.aliexpress.com/item/32807887667.html
On Sep 2, 2020, at 2:28 PM, Matt Arabie <mar...@gmail.com> wrote:
I ordered a ESP32 CAM and dev board that looks like the one Michael is using.
To view this discussion on the web visit https://groups.google.com/d/msgid/gevcu-development/aa716b32-8054-491e-ab55-43771fc61cd6n%40googlegroups.com.
Hey Charles,
Great you got this far! I'm running it without any problem at all
for over 2 months now. I really like the new set-up: 100%
reliable, faster, more space, support for SVG graphics (just
changed all icons).
Ok, from the log it looks like GEVCU gets data from the ESP. I'm
not sure about the other way though... when you open the settings
pages, are the values partially pre-filled or all empty/zero
(check the loglevel on the system tab) ? To me it looks like the
serial buffer of the ESP32 overflows. This might explain why the
loglevel is set and the config is not requested (line 121,
GevcuAdapter.cpp). To see what's sent to ESP32 also arrives there,
remove the comment from line 88 in GevcuAdapter.cpp and check the
log of the ESP32. This should work for the settings as they are
sent in clear-text, not binary.
But line 50 in GevcuAdapter.cpp should fix that:
Serial2.setRxBufferSize(4096);
Check again that you've correctly connected ground between the
two boards and maybe also twist the TX/RX lines to reduce
interference.
Disabled save button: I tried to change the config once while
standing at a red light and the parameters were not properly
pre-loaded (with ichip) - yet I changed only one parameter and
saved. Let me say, I became an traffic obstacle for ~15min until I
had all params set again via serial console. I was lucky I had my
laptop with me because Wifi was also gone (all devices disabled).
So I added this as a safe-guard. If the button is disabled,
something went wrong and it's better it stays disabled.
The LED should blick every 1 sec when no client is connected. When connected it is always on. It doesn't matter if the wiring is not set-up correctly for the LED, it'll still work. It's just a status-indicator.
HardwareSerial: I refer to
.../packages/esp32/hardware/esp32/1.0.4/cores/esp32/HardwareSerial.cpp
, lines 18, 22, 51/52:
...
#ifndef RX2
#define RX2 16
#endif
#ifndef TX2
#define TX2 17
#endif
#if !defined(NO_GLOBAL_INSTANCES) && !defined(NO_GLOBAL_SERIAL)
HardwareSerial Serial(0);
HardwareSerial Serial1(1);
HardwareSerial Serial2(2);
#endif
HardwareSerial::HardwareSerial(int uart_nr) : _uart_nr(uart_nr), _uart(NULL) {}
void HardwareSerial::begin(unsigned long baud, uint32_t config, int8_t rxPin, int8_t txPin, bool invert, unsigned long timeout_ms)
{
if(0 > _uart_nr || _uart_nr > 2) {
log_e("Serial number is invalid, please use 0, 1 or 2");
return;
}
if(_uart) {
end();
}
if(_uart_nr == 0 && rxPin < 0 && txPin < 0) {
rxPin = 3;
txPin = 1;
}
if(_uart_nr == 1 && rxPin < 0 && txPin < 0) {
rxPin = RX1;
txPin = TX1;
}
if(_uart_nr == 2 && rxPin < 0 && txPin < 0) {
rxPin = RX2;
txPin = TX2;
}
_uart = uartBegin(_uart_nr, baud ? baud : 9600, config, rxPin, txPin, 256, invert);
...
I'd love to help somehow and find the problem. We could do a
zoom/skype/slack/whatsapp session together to troubleshoot. I'll
send you my phone number via PM.
BTW: the ESP32 code also contains OTA capabilities: you can
upload code changes over the air with the latest arduino tool.
Cheers,
Michael
To view this discussion on the web visit https://groups.google.com/d/msgid/gevcu-development/2ab3fd8e-b522-4e8f-8ffe-72eb5099e4e8n%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/gevcu-development/20e1a385-a171-45b2-b4ea-98e433d73f59n%40googlegroups.com.
<GEVCU2ESPCAM.png>