Giter Site home page Giter Site logo

nauti-control / stwirelessremote Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 5.0 2.26 MB

Open Source Wireless remote for Raymarine ST1000/ST2000 autopilots as well as ST60 speed timer.

Home Page: https://nauti-control.com/nauti-control-st-wireless-remote-controller/

License: GNU General Public License v3.0

HTML 10.44% JavaScript 9.31% CSS 4.74% C++ 73.11% C 2.40%
433mhz autopilot boat esp32 nmea0183 opencpn raymarine sailing seatalk

stwirelessremote's Introduction

Alt text

ST Wireless Remote Controller

Open Source Wireless remote for Raymarine Seatalk autopilotsincluding ST1000/ST2000. Compatible with all devices that work with the Raymarine S100, also controls other insturments such ST60 speed timer. Allows controlling of autopilot and various raymarine displays using 433mhz remote as well as mobile/tablet using built in WIFI Access Point.

Aside from the remote functionality the connection to the seatalk bus allows us to read signals and decode other instrument data such as wind, speed , depth etc . Currently developing Seatalk -> NMEA 183 TCPIP transposer to allow Open CPN (and other such applications) to use the seatalk data , this would be done again over the wireless connection. This is currently under development . Other ideas for the future include a man over board mode where it'll set the heading nose to wind . These will be documented once completed on the main https://www.nauti-control.com website.

See how to setup box and demo on our youtube channel.
https://youtu.be/EBTYceL7NpY

V2 Firmware is in a private repo while in Beta available to top level sponsors and supporters who buy a premade box directly from our shop.
https://github.com/sponsors/nauti-control

Compatibility

Works with all auto pilots that use classic Seatalk interface.

ST4000,ST4000+,ST5000,ST5000+,ST6000,ST6000+,ST6001,ST6001+,ST6002,ST6002+,ST7000,ST7000+,ST7001+,ST7002,ST7002+,ST8001,ST8001+,ST8002,ST8002+RayPilot 650

ST1000,ST1000+,ST2000,ST2000+

ST3000,ST4000,ST5000,ST6000,ST7000,Autohelm Sport pilot,Autohelm Sport pilot +

Type 100,Type 300,Type 150,Type 400,S1000,Sport pilot,sport pilot +,Smartpilot: S1,S1G,S2,S2G,S3,S3G,SP1,SPX5,SPX10 ,SPX30,SPX40,ST70P

ST60 Speed + Tri Data Displays (Timer)

Also works with newer autopilots with additional adapter for Seatalk 1 to Seatalk NG

https://www.raymarine.com/en-us/our-products/networking-and-accessories/seatalk/seatalk-1-to-seatalk-ng-convertor

Evolution EV100 , 150, 200 , 300 & 400

Software

The code is written in C++ using platform IO . I use Visual Code as my editor . The firmware uses soft serial with the parity bit acting at the 9th bit that seatalk protocol uses. The seatalk datagrams I have been using an excellent technical guide by Thomas Knauf http://thomasknauf.de/rap/seatalk2.htm . There is two parts to the code 1. The main firmware 2. A mini web application for settings the button mapping settings as well as allowing the device to be controlled from a mobile device . This is written to the esp32 spiffs. These get built and uploaded to the ESP32 seperately from with the platform IO extension in Visual Code.

Hardware

The PCB design is fairly simple and uses an ESP32 devkit 30 pin board along with optocouplers to provide some isolation between the seatalk 12v and 3.3v of the ESP32 . A 7805 is used to drop the 12v down to 5v to feed the ESP32 . I found using 12v directly on the vin caused major issues and burnt out the onboard regulator on certain boards . The 7805 does get quite hot but i've done a burn in test for several weeks continious use and no issues on the bench. The receiver is a RXb6 and the current firmware has support for mapping to 8 buttons the different remote functionality.

THe circuit design was created using the open source fritzing tool and source file is available in the repo along with generated gerbers used for making the PCBs .

Alt text

The case design was created using tinker cad and you can view the original here https://www.tinkercad.com/things/47GMuNnkxJl-nauticontrol-seatalk?sharecode=v9_ytJjsey86pV6xQheSngRRn7UYJ45ZI_IGC7HBws0

STLS are included in the repo and ready to 3D print.

Alt text

You can purchase a fully hand built Wireless Controller from our online store which will help support ongoing development and new features
https://nauti-control.com/product/st-wireless-controller-fully-built-with-4-button-remote/
This includes a remote , 3d printed case and fully built PCB with latest firmware pre-installed , just plug into your seatalk system and go.

Bill Of Materials with links that will support on going development through affiliation or direct purchase.

1 x PCB - https://nauti-control.com/product/st-wireless-remote-controller-pcb/
1 x ESP32 - https://s.click.aliexpress.com/e/_DD5c10v
1 x RXB6 433Mhz Superheterodyne Receiver - https://s.click.aliexpress.com/e/_DCJstw9
1 x 4 Button Remote https://nauti-control.com/product/4-button-wireless-remote-for-st-wireless-remote-controller/
1 x 7805 Voltage REgulator - https://s.click.aliexpress.com/e/_DBNSCGH
1 x BC547 Transister - https://s.click.aliexpress.com/e/_DCKfQwp
2 x 270ohm 1/4W Resistor - https://s.click.aliexpress.com/e/_DkgFIJ7
1 x 1kohm 1/4 Resistor - https://s.click.aliexpress.com/e/_DkgFIJ7
1 x 3.9kohm 1/4 Resistor -https://s.click.aliexpress.com/e/_DkgFIJ7
3 x 10kohm 1/4 Resistor - https://s.click.aliexpress.com/e/_DkgFIJ7
2 x PC817 Optocoupler -https://s.click.aliexpress.com/e/_DEU20qv
1 x PCB Terminal Block 5.00mm pitch - https://s.click.aliexpress.com/e/_DFGZrcp
1 x 433mhz Antenna https://s.click.aliexpress.com/e/_DDclB9J

Donate to support on going development and features. https://nauti-control.com/donate/

Beta Code for next version is available to top tier sponsors , visit my sponsor page to support ongoing development and gain early access to all updates. https://github.com/sponsors/nauti-control

Disclaimer

I provide all hardware and software without liability or gaurantees as expressed by the GPL licence this has been released under

To avoid risk of damage ensure wiring is done correctly and while the system is off to avoid shorting or reverse polarity.

Follow us on socials.

https://www.facebook.com/nauti-control/
https://www.instagram.com/nauticontrol
https://www.youtube.com/@nauti-control/

Facebook Support Group

https://www.facebook.com/groups/307695028303840

stwirelessremote's People

Contributors

philipb78 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

stwirelessremote's Issues

Port to SignalK SensESP

For more complicated boat networks, where existing NMEA0183, NMEA2000, Seatalk, wifi, USB, and bluetooth devices all live together, SignalK is meant to help bridge the interfaces with a common server.

Info about the SignalK project: http://signalk.org/

In addition to the server, the SignalK project also maintains a framework for ESP-based sensors to communicate with it. It is well thought out, with a dashboard in the default access-point mode for configuring wifi and (optional) connection to the server, and an asynchronous event-based architecture from ReactESP.

GitHub for the SensESP firmware framework: https://github.com/SignalK/SensESP

ReactESP: https://github.com/mairas/ReactESP

Because the rest of SenseESP is quite similar to this project (PlatformIO, Arduino/C++, an ESP32, and ESP Async Webserver), I believe that porting to their codebase will not be difficult, and is the easiest way to gain some important functionality.


For my own part, I need SignalK for my connection to SeaTalk to be useful, as my ultimate goal is to provide the GPS, and course for "track" mode through SignalK. As well, I look forward to finally getting wind and autopilot data into SignalK, so it can be shown in Freeboard (a locally hosted web-based chartplotter) and OpenCPN combined with the AIS data.

I have been trying to do this for several years, and already had a non-functional prototype. I was able to get your firmware on it, but I still have some hardware issues to work out that prevent me from contributing already.

compile error

I get several errors compiling in VS Code. Most of the errors are for missing include files because they're referenced with "" instead of "/" which is easy to fix, but I also got a link error:
Linking .pio/build/nodemcu-32s/firmware.elf
.pio/build/nodemcu-32s/lib1e2/libEspSoftwareSerial.a(SoftwareSerial.cpp.o): in function `std::function<void ()>::operator()() const':
/Users/user/.platformio/packages/toolchain-xtensa-esp32/xtensa-esp32-elf/include/c++/8.4.0/bits/std_function.h:686:(.iram1.66[delegate::detail::DelegateImpl<void*, void>::operator()() const]+0x24): dangerous relocation: l32r: literal placed after use: .literal._ZNK8delegate6detail12DelegateImplIPvvEclEv
collect2: error: ld returned 1 exit status
*** [.pio/build/nodemcu-32s/firmware.elf] Error 1
======================================================= [FAILED] Took 13.16 seconds =======================================================

I don't really understand why, but google turned up this, so I modified platformio.ini and added:

build_flags =
-mtext-section-literals

Let me know if you want a pull request.

Build Issue on fresh install

Error happening on fresh install of VC without platformio plugin installed previously
.pio\build\esp32doit-devkit-v1\lib6e4\libEspSoftwareSerial.a(SoftwareSerial.cpp.o): In function `std::function<void ()>::operator()() const':
C:\ReporOwn\STWirelessRemote/.pio\libdeps\esp32doit-devkit-v1\EspSoftwareSerial\src/SoftwareSerial.cpp:670:(.iram1.54[delegate::detail::DelegateImpl<void*, void>::operator()() const]+0x22): dangerous relocation: l32r: literal placed after use: .literal._ZNK8delegate6detail12DelegateImplIPvvEclEv
collect2.exe: error: ld returned 1 exit status

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.