ESP All-in-one with WT32-Eth01 (pcb+sw)

I have a v4.4 Standard board with a UM982 GNSS module, BNO085 IMU, ADS1115 & CAN bus chips on-board. Attached are the configs and reboot messages. Seems somewhere between .3 and 10 seconds before reboot. The Teensy serial connection disconnects during the reboot.

Edited: PCB is v4.4. v4.5 is in production at JLCPCB.

WT32-Teensy-Logs.zip (2.8 KB)
WT32_Reboot_Messages.txt.zip (2.0 KB)

Ooops. I edited the PCB version number.

Thanks, I have seen the files briefly, there are a few things I would need to fully understand the issue:
1- I assume that those Was and Panda lines formed, omitted on the report, are correctly formed, correct?
2- I see the configuration file has the same pin assigned twice (39), no idea yet if that is the root of the issues
3- You are using Mac? I have only tested in windows, no idea if that causes any trouble with serial
4- the pins configuration on your pcb, I haven’t got the definition for the teensy pinout on that v4.4 pcb, is it any different of the v3? if it is the same there are a few pin assignments that I do not fully understand (for instance the cytron pin definition, or the was resolution, or the buttons/switch pin definition) are you 100% sure they are the correctly defined in your configuration.json?

  1. Yes the WAS and PANDA lines were well formed. AgIO showed position, etc.
  2. All I changed from the repo config was IP address and IMU type.
  3. Tried compiling it on a Windows 11 machine. Same compilation errors as Mac.
  4. I managed to get the pins changed to PCB v4.4 assignments I think. It won’t stay running long enough between reboots to be sure.

I seems like the issue with Teensydino 1.58. Perhaps try installing Teensydino 1.57.x or 1.56.x and compiling against one of those.

Thanks chri5k,
My bet would go for a memory leak, probably on gnss parsing, not suro though, I will try to replicate the issue in my pc, it does not show any problem in my v3 micro pcb with teensy…
As for the ide set up, the lib verioin need to be mached, and probably the AsyncWebserver for teensy completly replaced, I guess the rduino ide is not taking the icluded versions as the correct reference, just a guess.

Changing the GNSS port to one without a GNSS attached or unplugging the GNSS from the board stopped the reboots.

Still perplexed by the IDE issue. Got past not finding the directory by installing the versions of the libraries in the IDE vice linking to the ones in the repo. Now running into issues with STD:: functions not being found. Does your IDE environment have some Standard Template Libraries installed?

The Arduino IDE is not my favorite. By trying to make it simple, the developers make it hard to track down complicated issues. They flat out refuse to add a “clean” function to the IDE. They locked the thread with users articulating why having a “clean” function would be useful. Very strange.

VSCode with PlatformIO is my preferred IDE.

1 Like

I do not know about what could happent to the ide configuration in your pc, all I can offer is to make a video conference through teams to see if together we could play to find the 7 differences game between your environment and mine… would you think that could be of any help?

On the other hand, I can not duplicate your rebooting issues, I attach the serial dump just done trying to find the problems without success
putty-20241213.txt (880.9 KB)

just in case it is something related with the configuration.json file, i include again the teensy hex file and the json file with the correct config for the AiO Micro v3.0 (shoul be very close to the v4.5, but may be some pins to review indeed)
Fwa-og.zip (338.9 KB)

The output from the UM982 has 1 more decimal digit than the F9P. Could that cause an issue with parsing the GNSS messages?

I’ll try wiping the IDE from the PC and redoing the install. Maybe I missed something. If that doesn’t work, we can arrange a screen share call.

I don’t think so, gnss precission does not matter, the nmea message is split by “,” and latter the string to double function would take any number of decimals (any number that the gnss is able to handle of course). Perhaps the frequency may had an effect if you were using higher that 10Hz, the last version should not care about that either. Ok to the screen sharing connection, just let me know, please for suitable timing, keep in mind that I am in europe (Spain to be precise)

Finally managed to get it to compile with the Arduino IDE. Removed all the libraries that came with the repo. Installed all the latest versions of the dependancies. Only issue now is for some reason I get these two errors. Every other Teensy sketch those two lines work fine. There is even a serial->begin(baudrate) right before those two lines that does not produce an error. Very bizarre. I commented those to lines out and it compiles and works fine.

C:\Users\chris\Documents\code\Fwa-aog\GNSS.h:317:13: error: ‘class HardwareSerial’ has no member named ‘addMemoryForRead’
317 | serial->addMemoryForRead(rxBuffer, 512);
| ^~~~~~~~~~~~~~~~
C:\Users\chris\Documents\code\Fwa-aog\GNSS.h:318:13: error: ‘class HardwareSerial’ has no member named ‘addMemoryForWrite’
318 | serial->addMemoryForWrite(txBuffer, 512);

I was also able to get it to compile with VSCode & PlatformIO. Interestingly, the above errors did not show up.

Finally I have my MF back from the dealer, and it is up and running with the esp32 (WT32) it works well. The firmware has also been tested on the teensy Aio version 3, without any trouble in my pcb and my tractor. In a near future I will see if the esp over wifi does also a good job.
here some videos:

3 Likes

Excellent work, is it possible to add a PCB design but with the normal version of the f9p?
A question in the video, are you using the ADS1115 or is it working with the ESP32 internal ads? The truth is that it looks quite stable, the ADS1115 could almost be eliminated.

ESP32 adc is non linear.

indeed it is posible, the thing is I will not build it as I do not need it, If you like I could provide a design proposal and you finish the layout according to your needs…
Regarding the was reading, I have not noticed much difference in the use case that I have (I am reading the original was signal from the tractor) I guess it all relies on the sw management on the firmware, as I said no much difference in my case.

1 Like

I am afraid I do not understand what do you mean by this post. I do not get if you think it is positive, negative, easy/difficult to handle…

Difficult to handle, esp will not give linear output over 0-3.3v range. So to every person esp will read different value when its at 2.5v or 0deg. Even if 0 that, non linear nature is problem for precision, adc1115 is cheap and much better.

If I were you, I would not be worried about that, because of many reasons, to name a few:

  • to interact with AOG you always play in the middle of the range of the sensor, and that is by far a linear part, the only non linear bit is in the extremes, and does not have a real impact in the autosteering algorithm.
  • to handle 5v input you need a resistor bridge, taking the correct resistors values you could avoid the extreame 3% which is the non linear part.
  • depending on the hw that you use, it is more than likely that you do not use the extremes of your sensor, therefore you wouldn’t reach the non linear part of the esp32.
  • on the AOG you set up the max turning angle you allow, again this could imply that you never reach the 3% of non linear behaviour.

There are many more if you want me to provide more, but you are right, the ads1115 is cheap, and the sw already supports both options, so I guess is up to personal preferences. I always try to do more with less, but if you prefer to use it and has a good result… why not.

1 Like

as commented on previous post, here is the link to a project ready to modify the layout if needed:

In addition to the position of modules, I would recomend to change the 3.3v regulator for another 5v one, as only the BNO i using this 3v3 in this design and you may be a bit short on the 5v net.

1 Like