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

Perhaps I am misreading but the graphs look like it was a steady state input. Would be interesting to compare the Kalman filtered ESP32 ADC to the ADS in a time series with a changing input. The WAS is a pretty dynamic sensor output when the tractor is in motion. Rapidly changing inputs can cause the output of a Kalman filter to lag. One would think for calculating steering corrections one would not want much lag. I would defer to some of the AOG devs to see if they have any data on what would be unacceptable lag.

1 Like

You are correct, it was a constant input, to avoid mixing errors/noise with the variable itself. in the following set of data we have test measuring a variable output.
putty-csv-3.txt (16.1 KB)
and again a graph

1 Like

Interesting graph. In some spots the Kalman does appear to lag the Internal and ADS lines. I circled one of the more prominent ones. Hard to tell how much. Is the x-axis millis? systicks?

I assume this is a recording of the output data of each method. Since we don’t have data on the input time, we can’t tell from the data how much the output of any of the methods lags behind the input.

X is millis, collection time of all of them.

If you would like to measure anything,it is the CVS attached. You could see not meaningful lag. Graphs could be a little misleading,as optical illusions are always making a worst analysis that the accurate real numeric data.

I don’t quite follow that one. If the graphs don’t accurately depict the underlying data, one would think something is wrong with the graphing program.
In any case, the real test comes when we put some of these in the field to see how they behave. I have ordered a couple of WT32-Eth01’s to play with so I will follow this topic. Cheers.

Even at the risk of further complicating the already tricky course here. Couldn’t this Olimex ESP32-EVB also be interesting? Olimex ESP32-EVB It also comes with Ethernet on the board. In addition, there are two relays and a CAN interface. The relays can be used to switch linear actuators or on/off functions. Perhaps the UEXT interface also offers potential for further extensions, such as remote joystick. Joystick

MrPoke, is your code talking correctly to AgIO through udp?
After a few weeks off, I have manage to find some time and I have finetuned most of the details on the libraries created, I am able to get everything done: gnss, was, imu (rvc), cytron, pwm… reading udp, the thing is I am not getting the udp sent to agio, and as we both are using th AsyncUdp lib (that has different methods to the native ethernetudp), I understand that the same methods working in your code should work on any other using that lib. Have you tested your udp code against AgIO?

Try <WiFiUdp.h> works with ETH_LAN8720

thanks wland, it was a silly mistake in the checksum calculation. now AIO receives the panda msg correctly.
I am about to test in the field, however there is one concern in the data I see, the IMU information is not read by AIO, the Panda msg contains it but AIO seems not to like it…

1 Like

Try reducing the decimal portion of roll, pitch and yaw rate to two decimal places. I have PAOGI and PANDA sentences with 2 decimal places for a dual setup that work fine. Also, the PANDA messages I have for a single F9P and IMU has 4 digits for the heading. AgIO or AOG multiply the number by 0.1 so AOG displays headings like 322.2.

thanks chri5k, I have tried using as unit deg*10 and limiting to 2 the decimals, but it is not willing to accept the data


Does anyone know if there is a Panda message description to follow? I have seen the excel file in github, and the md file (https://github.com/farmerbriantee/AgOpenGPS_Boards/blob/master/PGN.md) but I found no information on what/how should be the information in that Panda PGN, particulary on the IMU side.

Sorry I was not clear. The messages I have seen are either 4 whole numbers or 2 digit decimal. Not both. Sorry for the confusion.

332.2 degrees as either; 332.23 or 3322

Thanks, with 2 decimals doesn’t like it, without decimals seems to read it

image

Well, I have tried and it seems to work correctly, the sw piece is always updated in the github link, in case anyone is interested.

Now I have to deal with something that I believe is a hw issue, the whole board seems to be too much for a single L7805cv. what I see is that it works for a few minutes fine, but after that the wt32 reboots itself with no reason and the voltage regulator and it heat disipator are very hot, so perhaps the f9p+wt32+bno+boards (capacitors, resistors, regulators on the f9p board…) so I will try adding another L7805cv, fingers crossed :wink:

A second L7805cv has poved to be the solution to th random wt32 reset, now I will see in the tractor, still worried about some angle values that I see on AIO, I hope the panda built is ok.

Hi. Do you have news?

Hi, yes, both good and bad news… :wink:

The concept seems to work, but my MF is under deep maintenance (front axle broken) so no chance for real world testing yet and no date from the dealer :frowning:

On the good side, the FW has been updated to be able to handle both esp32 and teensy 4.X microcontrollers. So almost any all-in-one pcb should be able to work correctly without even having to compile it again (if having the same micro compiled), just going to the configuration web implemented and either upload the config file or filling the form with its parameters. The firmware even includes the keya can controller, for those interested in that; and will include the CAN bus capabilities for autosteering ready vehicles, so potentially able to cope with those pcbs as well.

If anyone is interested in testing, it would be more than welcome to speed up the whole process

1 Like

Looking to help with testing the Teensy part. However, I can not get it to compile. Errors with the library directories. If I remove lwip/ and just make it debug.h it moves on to the next lwip file and produces the same error.

I have Arduino 2.3.0 IDE installed on a MacOS Sonoma system. Tried it on a Windows 10 system with the same result. Any cleus on your IDE setup so I can try to replicate your IDE environment?

In file included from /Users/chris/Code/WT32-aog/lib/vendor/QNEthernet/src/QNEthernetClient.h:10:0,
from /Users/chris/Code/WT32-aog/lib/vendor/QNEthernet/src/QNEthernet.h:19,
from /Users/chris/Code/WT32-aog/WT32-aog.ino:86:
/Users/chris/Code/WT32-aog/lib/vendor/QNEthernet/src/lwip/opt.h:52:24: fatal error: lwip/debug.h: No such file or directory
compilation terminated.
exit status 1

Compilation error: lwip/debug.h: No such file or directory

thanks chr5k, here you have the compiled files (public repo is somehow old). You need to change the name, as otherwise I could not uploaded on this post.
WT32-aog.ino.hex.txt (990.2 KB)
configuration-AIOv3.json.txt (608 Bytes)
to load the configuration file, you either check and update each value in the web form or upload the “configuration.json” it should be that name, please remove that file in the folder before uploading a new one. Web server will be up for 10 min, after that will close to release resources.
The initial ip configuration to access the webserver is “http://192.168.1.123” you may change that from the webserver, just remember to reboot after a meaningful configuration change.

Got it running but the Teensy freezes regularly. The problem was more frequent when I changed the IMU to “petition”. What version of Teensydino are you compiling against? There is a thread here about Teensy disconnects / freezes with Teensydino after v1.5.7.

I use 1.58.1
To be able to reproduce, or trace the freezes you are experiencing: Please, could you tell me a bit more about your test? (like pcb version, components installed, variables values in the set up…) also the timing would be helpful (if it is in 1 min always, or between 2-5 min…), are you connected to serial? what does the reboot log tell you…
It has been more tested on the wt32, and obviously a beta version does always need some corrections, please, let me know if you are interested in digging on the latest github version (it is not public yet, so I would need your github nickname -private message prefered)