AK-Homberger / ESP32-Evo-Remote-Pilot-NMEA2000

Remote Control for an Evolution EV-1 Auto Pilot via NMEA2000/SeatalkNG.
GNU General Public License v3.0
20 stars 10 forks source link

EV-100 not found on ng network #2

Closed thomasnisole closed 1 year ago

thomasnisole commented 2 years ago

Hello @AK-Homberger ,

I reproduced your remote system for my Pilot (ACU 200 / EV-100 / P70) on my boat, but i have some trouble with the search of the EV-100. When the ESP32 is connected on the bus, it don't find any EV-100 system.

To get as close as possible to the final assembly and avoid any disturbance, I do not use the USB output of the ESP32, I have installed different colored LEDs on the outputs of the ESP32 in order to know when the sketch has a problem.

Do you have any idea where it could be coming from. I take some picture of P70 diagnostic tool, here data from EV-100 : 1649925192065 1649925192055 1649925013296

Thank you for your reply.

Thomas.

AK-Homberger commented 2 years ago

Hi Thomas,

Is the ESP32 shown in the device list in the MFD? If not then there is a problem with your program or with the hardware.

Can you share your modified program. Then I will have a look.

Regards, Andreas

thomasnisole commented 2 years ago

Hi @AK-Homberger ,

Yes my code is in a github repository, i forked yours to save my remote buttons values :)

Et pour répondre à ta question, non mon ESP32 n'est pas visible dans la liste MFD du P70. For CAN interface, i use this shield. I cut R2 to have 60ohms between L and H when device is connected to NG CAN. I can take a picture of my wiring if you want.

Thank you.

AK-Homberger commented 2 years ago

Hi Thomas,

That will not work. You can't use a delay() in the below function:

void messageSent() { digitalWrite(MESSAGE_SENDET_PIN, HIGH); delay(1000); digitalWrite(MESSAGE_SENDET_PIN, LOW); }

It will block the whole processing. First try without a dalay and the if ot is working do the delay with a millis() construction.

Regards, Andreas

thomasnisole commented 2 years ago

Hi @AK-Homberger ,

I removed usage of delay function in loop scope, but P70 does not found ESP32 in diagnostic tool.

Thank you.

AK-Homberger commented 2 years ago

Then it's probably a problem with the hardware. Did you check if the program is running ata all? E.g. with additional Serial.print() statements in setup()?

thomasnisole commented 2 years ago

Hi @AK-Homberger ,

Last night I added a log at the very beginning of the function getDeviceSourceAddress, and I never go through the for loop, I exit with the return -1.

Here is the stack trace :

rst:0x1 (POWERON_RESET),boot:0x12 (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:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1216
ho 0 tail 12 room 4
load:0x40078000,len:10944
load:0x40080400,len:6388
entry 0x400806b4
NodeAddress=34
NMEA2000 Open
getDeviceSourceAddress
getDeviceSourceAddress
...
AK-Homberger commented 2 years ago

getDeviceSourceAddress() has to exit with the address of the found device. Perhaps Raymarine changed the model string from "EV-1" to "EV-1 Course Computer".

Please add a Serial output to the getDeviceSourceAddress() function to get all found device names: ... String modelVersion = device->GetModelVersion(); Serial.println(modelVersion); ...

thomasnisole commented 2 years ago

Hello @AK-Homberger ,

I finally bought the same component which you used, and good news, it's working !! I can see the remote controller into p70 diagnostic tool ! Thank you so much for your work, i will go to update your Kicad files to add some screw hole to add a step down voltage like this one to fix it above your D24V10F5 (I can't find it in fast delivery from France).

Thank you for your help !

Thomas.