richardJG / APRemote

Web based autopilot control using ESP32 and Seatalk1
8 stars 7 forks source link

Sea Talk pcb - esp32 challange #2

Open SenSpirit opened 1 year ago

SenSpirit commented 1 year ago

Hello Richard, esp32_SeaTalk_scetch esp32_SeaTalk_board

Your provided code is excellent and works well - thanks for that! But I'm struggling with the pcb. I've used that attaches schematic in EAGLE. For having it compacet and home madeable, I've decided to use an 8-pin DIL comperator and SMD resistors. Don't stumble above the LM358N - the LM293 was not in the libary - so I took the pin-equal-alternative. But running an ST1000+ from Raymarine it fails with the short cut alarm beep. To get it running I used the interface based on AK-Homberger with an additional 5.0V<>3.3V standrad-leveshifter (not smart - but working). Do you see my mistake or can you share your approved pcb layout?

DavidCBarrett commented 1 year ago

Hi SenSpirit, I am interested in making this remote also. I have been struggling to compile the code. I am using platform IO and am struggling to find libraries that compile.

Did the compile go well for you? what tools & libraries did you use please?

Thanks, David.

SenSpirit commented 1 year ago

Hi SenSpirit, I am interested in making this remote also. I have been struggling to compile the code. I am using platform IO and am struggling to find libraries that compile.

Did the compile go well for you? what tools & libraries did you use please?

Thanks, David.

Hello David, Yes Richard's code works fine for me. I just upgraded form arduino & aID to esp32 & PID at Christmas time. I recompiled the code this morning with no errors.

  1. In your new project replace your platformIO.ini with: these lines:

[env:esp32doit-devkit-v1] platform = espressif32 board = esp32doit-devkit-v1 framework = arduino monitor_speed = 115200 lib_deps = https://github.com/dok-net/espsoftwareserial

  1. be sure, your system can access the internet and the espsoftwareserial-URL

  2. write an easy code like this: Screenshot 2023-03-17 052653

  3. and it should work on your simple esp32 dev 1 - as discussed in #1

  4. have fun.

DavidCBarrett commented 1 year ago

Thank you,. I'll give those PlatformIO settings a try. I seem to remember I was getting compile errors around WebSocketsServer_Generic.h & . The code is a few years old, and there are many libraries at many versions for those libraries. I played around with various ones but still had compile / library compatibility trouble. The only way I could move forward was to do a partial re-write to get it to compile, and am playing with the electronics at the moment.

My current platformIO.ini is:

[env:esp32dev] platform = espressif32 board = esp32dev framework = arduino lib_deps = plerup/EspSoftwareSerial@7.0.0 esphome/AsyncTCP-esphome@^1.2.2 esphome/ESPAsyncWebServer-esphome@^2.1.0 alanswx/ESPAsyncWifiManager monitor_speed = 115200

rntmnz commented 1 year ago

I am trying to compile the code with some problem would any one tell me in arduino or visualcode platformio the library and the proper revsion to be selected to compile the code ? Would you be so kind to suggest a way to test the hardware interface ? Many thanks to whom will find some times to help me

DavidCBarrett commented 1 year ago

Nowadays i'm exclusivly using Platfrom IO, i didn't try the Arduino IDE.

At first I could not get the code to compile in Platform IO, I could not identify libraries that matched the code. The code is a few years old, and i guess libraries have moved on. I tried to find older compatible versions but failed. I got close, but the problem was with with websockets. I swapped out WebSockets_Generic (which caused me lots of comple problems), for the Web Socket Server already in ESPAsyncWebServer. I took inpiration / info for the changes from the tutorial at https://m1cr0lab-esp32.github.io/remote-control-with-websocket/ .

So, i'm succesfully compling using PlatformIO, and the (relevant to you) libararies I'm now using are:

plerup/EspSoftwareSerial@7.0.0
esphome/AsyncTCP-esphome@^2.0.0
esphome/ESPAsyncWebServer-esphome@^2.1.0

You should be able to see the above in my branch, but be warned, I have gone a little crazy with this project, updating and extending it for my needs/desires, and as a learning platform - Mostly adding a TFT touch screen, and playing with the WebUI, and adding some WiFi Management, and using the raymarine seatalk interface electronics. I havent tested the unit on my boat yet.

Hope some of that that helps.

rntmnz commented 1 year ago

Thanks for the time and for help, I finaly compiled the code and tested it on my boat. It receive all data from my seatalk1 but no way to send comand out, more over if I try, my seatalk send error msg and stop to work, to solve the issue I had to switch off the sistem and restart it. Simeone had same issue ?

DavidCBarrett commented 1 year ago

Hi rntmnz,

I am currently on a short sailing holiday and have been testing the APRomote on my boat. I have similar issues ...

IMG_2572

IMG_2573

rntmnz commented 1 year ago

Thanksfor yours feed-back, but I am still lock with same issue, something wrong on my code or in my hardware. I things the issue is on hardware side...

Il Ven 11 Ago 2023, 10:01 DavidCBarrett @.***> ha scritto:

Hi rntmnz,

I am currently on a short sailing holiday and have been testing the APRomote on my boat. I have similar issues ...

-

Good news is using my TFT user interface (see my fork of Richards project) I can receive and send SeaTalk data, and can (mostly) control my ST 2000 from below decks (e.g. it works great in auto mode, but in standby mode the +/- 10 buttons don't extend and retract the ram, in track mode i can't acknowledge a course change). In summary the concept / electronics works great, but for me needs a bit of refinement.

Bad news is when i connect my iphone to the AP Remote, i can see ST data, and can sometimes control the ST2000. I'm thinking it's a timing issue, maybe a conflict between the ESP32's wifi/network tasks and the SeaTalk task (which can block). I didn't like the disabled watchdog, so have enabled that and put a call in to kick it, and yes ... sometimes it fires and resets the ESP32. I read the ESP32 networking runs on core 0 and is time sensitive, so i moved seatalk task from core 0 to core 1 (where our apps normally run). That seems to of improved things but yeah ... I have made a few "fixes" in seatalk.cpp, but currently it's not 100% reliable ... still working on it slow time.

[image: IMG_2571] https://user-images.githubusercontent.com/3719119/259952720-b8a067ee-2d53-485e-9a8b-b2682f67b8c7.JPEG

[image: IMG_2572] https://user-images.githubusercontent.com/3719119/259952526-121fc71a-4d5d-4ba9-93fd-624bdb374138.JPEG

[image: IMG_2573] https://user-images.githubusercontent.com/3719119/259952543-43662e7e-9333-4609-8ae6-7d56cb68cd30.JPEG

— Reply to this email directly, view it on GitHub https://github.com/richardJG/APRemote/issues/2#issuecomment-1674353684, or unsubscribe https://github.com/notifications/unsubscribe-auth/A62JQEHGJMC2S76P7WCRATTXUXRFLANCNFSM6AAAAAAV5YKCB4 . You are receiving this because you commented.Message ID: @.***>

DavidCBarrett commented 1 year ago

What hardware / circuit are you using? I'm guessing the one above? I'm not using that. I'm using the Raymarine Seatalk 1 circuit (from their service manual). I didn't want to cut corners on the Seatalk interface, I'm sure Raymarine knew what they were doing.

One test I did at home was connect a LED to the Seatalk line. When I sent commands I could see the LED flash. A simple but for me effective test before heading to the boat.

breadboard sch.pdf

rntmnz commented 1 year ago

The schematic based on LM293 it was attached to the original project .

Did you use a different ?

Il Dom 13 Ago 2023, 20:15 DavidCBarrett @.***> ha scritto:

what hardware / circuit are you using?

— Reply to this email directly, view it on GitHub https://github.com/richardJG/APRemote/issues/2#issuecomment-1676428371, or unsubscribe https://github.com/notifications/unsubscribe-auth/A62JQEBO7LAPD2T4WS2FBR3XVEKTXANCNFSM6AAAAAAV5YKCB4 . You are receiving this because you commented.Message ID: @.***>

SenSpirit commented 11 months ago

What hardware / circuit are you using?

Based on this great work with the suggestions from this work if have only exchanged R5 from 10k to 1k on my old one-sided arduino-pcb; sikped the wire bridge beween voltage regulator and bottomside and connected 3.3V to the bottomside - that's all :-)

image

rntmnz commented 9 months ago

Hi DavidCBarrett, I am locked at same stage good receeiving signal, but no message send .

I saw on your photo to different seatalk interface once "the classic bideretional based on PNP e NPM transistor " the second once shown on the last msg I supose is derived by https://github.com/AK-Homberger .

Wich once are you using ?

In the second case did you use Arduino or ESP32 ?

Tanks

Renato

DavidCBarrett commented 9 months ago

Hi Renato,

  1. I am using the Raymarine Seatalk interface circuit from here (i changed one resistor for receive to operate at 3.3V). I have not tried the AK-Homberger circuit. It was a personal choice.
  2. I am using an "ESP32 Dev Kit v1 DOIT". I am using Platform IO for coding. I have not tried the Arduino IDE.

You can see the interface circuit and ESP32 in the PDF I attached in my message above. This seatalk interface circuit worked perfectly for me.

i hope this helps.

David.