All Projects → AK-Homberger → Seatalk-Autopilot-Remote-Control

AK-Homberger / Seatalk-Autopilot-Remote-Control

Licence: GPL-3.0 license
This repository shows how to build a Seatalk Autopilot Remote Control device based on an Arduino ProMicro and a simple 433 MHz KeyFob.

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Seatalk-Autopilot-Remote-Control

MobileMouse
An android app that acts as a remote mouse and keyboard for your PC (windows only).
Stars: ✭ 31 (-3.12%)
Mutual labels:  remote-control
autopilot-api
A third-party JavaScript wrapper for Autopilot's REST API.
Stars: ✭ 14 (-56.25%)
Mutual labels:  autopilot
ops channel
命令通道是联接人与机器,人与业务的一座桥.它跟常用的开源运维工具(`ansible`,`saltstack`,`puppet`)有相似之处,但也有着本质的差异。
Stars: ✭ 34 (+6.25%)
Mutual labels:  remote-control
FMT-Firmware
FMT Autopilot Embedded System
Stars: ✭ 207 (+546.88%)
Mutual labels:  autopilot
balena-node-red
a node-red application with balena-supervisor support, can be managed remotely via balena publicURL
Stars: ✭ 54 (+68.75%)
Mutual labels:  remote-control
network-rc
Network Remote Control Car Software For Raspberry Pi.
Stars: ✭ 155 (+384.38%)
Mutual labels:  remote-control
ZeroPilot-SW
Software for WARG custom autopilot
Stars: ✭ 13 (-59.37%)
Mutual labels:  autopilot
XENA
XENA is the managed remote administration platform for botnet creation & development powered by blockchain and machine learning. Aiming to provide an ecosystem which serves the bot herders. Favoring secrecy and resiliency over performance. It's micro-service oriented allowing for specialization and lower footprint. Join the community of the ulti…
Stars: ✭ 127 (+296.88%)
Mutual labels:  remote-control
ondevice
ondevice.io client
Stars: ✭ 32 (+0%)
Mutual labels:  remote-control
CatVision-io-SDK-Android
Use CatVision.io SDK to add screen sharing of your Android application.
Stars: ✭ 16 (-50%)
Mutual labels:  remote-control
vernacular-vnc
A pure Java VNC client library
Stars: ✭ 55 (+71.88%)
Mutual labels:  remote-control
mOSD
modern OSD
Stars: ✭ 64 (+100%)
Mutual labels:  autopilot
fixed-wing-sim
Matlab implementation to simulate the non-linear dynamics of a fixed-wing unmanned areal glider. Includes tools to calculate aerodynamic coefficients using a vortex lattice method implementation, and to extract longitudinal and lateral linear systems around the trimmed gliding state.
Stars: ✭ 72 (+125%)
Mutual labels:  remote-control
RabbitRemoteControl
Remote control. Support VNC, RDP, Terminal, SSH, TELNET etc
Stars: ✭ 82 (+156.25%)
Mutual labels:  remote-control
ConTroll Remote Access Trojan
Created a VERY SIMPLE remote access Trojan that will establish administrative control over any windows machine it compromises.
Stars: ✭ 69 (+115.63%)
Mutual labels:  remote-control
phpMyDomo
The ultimate Domotic web remote for the rest of us
Stars: ✭ 32 (+0%)
Mutual labels:  remote-control
Autopilot-Manager
Autopilot Manager simplifies Windows Autopilot imports by using a small client program and an Azure app service.
Stars: ✭ 24 (-25%)
Mutual labels:  autopilot
Quiescis
Quescis is a powerful Remote Access Trojan for windows 💻 on C++
Stars: ✭ 56 (+75%)
Mutual labels:  remote-control
neko
A self hosted virtual browser that runs in docker and uses WebRTC.
Stars: ✭ 2,266 (+6981.25%)
Mutual labels:  remote-control
cAndroid
cAndroid is tool for control your PC by Android phone
Stars: ✭ 23 (-28.12%)
Mutual labels:  remote-control

Seatalk Autopilot Remote Control

This repository shows how to build a Seatalk Autopilot Remote Control device based on an Arduino Pro Micro and a simple 433 MHz KeyFob. It has been tested successfully with different Raymarine autopilots.

My special thanks to users of www.segeln-forum.de for testing.

With the 433 MHz sender you can send -1 / +1 degree and -10 / +10 degrees. With a 6 key KeyFob or an additional one you can also send Auto/Standby commands.

Since version 1.5 the AP remote control reacts also on commands received via USB-Serial interface. Supported commands: "-1", "+1", "-10", "+10", "A" and "S". Both Newline and or CR are accepted at end of command from serial. This interfcae shall allow external applications like AvNav to control the AP functions.

Autopilot Remote

Autopilot Schematic

Hardware

The circuit diagram and the PCB layout are shown in the hardware section of this repository.

I made the PCB available at aisler.net (https://aisler.net/p/LCDCUVMF). Minimum number is three pieces for about 24 EUR. So it makes sense to buy once and share with others interested in the remote control.

The circuit implements mainly an interface between the Seatalk bus (12 Volt) and the Arduino (5 Volt). The easiest way was to use the 74LS07 open collector driver device. This is much easier than most of the other implementations I have seen so far. The PCB also contains the voltage regulator (12-14 Volt from Seatalk bus to 5 Volt for the Arduino) and a 433 MHz receiver. Please select/buy the right ProMicro device (5 Volt). There are also 3.3 Volt devices available. But the 3.3 Volt devices will not work.

Please also select a high quality receiver which fits to the PCB design (RXB6, Superhet). As antenna please use a short wire (e.g. 17,3 cm).

The PCB also allows the connection of a standard OLED device (SSD1306) to show the current apparent wind speed. But this is optional.

The voltage regulator (7805) may get quite hot (90 mA * 9 Volt = 0,81 Watt). This is usually not a problem, because it within the specification of the 7805 (< 1,4 Watt).

An alternative which is not getting hot is the following replacement which has the same pin layout as the 7805: https://www.reichelt.de/de/en/dc-dc-converter-5-v-1-a-single-r-78e50-10-p177268.html?&nbc=1

A standard 4 button 433 MHz KeyFob is used to send (+1 / -1 degree) and (+10 / -10 degrees) course changes to the autopilot. The used Seatalk codes are derived from Thomas Knauf (http://www.thomasknauf.de/rap/seatalk2.htm ). Many thanks for this excellent piece of work.

The software is sending a beep to the Raymarine devices (Seatalk alarm function). This helps to get a feedback regarding the recognition of of a pressed key. The LED on the PCB blinks in addition if keys are successfully recognised. This should also help with trouble shooting. It is also possible to connect an active 5 Volt buzzer to pin 20 (A2) and GND of the ProMicro.

Since version 1.1 it supports now also Auto and Standby remote control. You have to use a 6 button KeyFob or an additional 2 or 4 button remote for controling Auto/Standby function.

Caution: Lighthouse III does not react on Seatalk Alarm

MFDs with Lighthose II will react on the Seatalk alarm function with a short beep. Unfortunately, Lighthouse III is ignoring this alarm. If you prefer to use Lighthouse III then please connect an additonal buzzer to pin 20 of the ProMicro.

Problem with some 7407 variants

It seems that there are different types of 7407 devices available with slightly different electrical charcteristics. See issue "R3 wrong value?" for details. If you get a "Send Error" problem (with 12 Volt connected) then the solution is to lower the value of R3. It is important to check two voltages. With Seatalk signal line high (12 Volt) the voltage on pin 3 of 7407 (or alternatively on cathode of D1, which is easier to measure) should be above 2 Volt. When Seatalk pulled to GND (low) the voltage on pin 3 should be less than 0.8 Volt.

It's usually better to use the 74LS07 variant of the device, because it needs less power then the original TTL 7407. Alternatively, you can use also the CMOS version of the 7407 device M74HC07. This device does not consume any relevant current on the input.

Software

The Seatalk communication is a 9 bit serial protocol. This is not directly supported from Arduino. But I found a working 9 bit hardware serial implementation. For convenience, I have added the working source code here, because there are different versions available (in github and elsewhere).

Caution: The 9 bit hardware serial implementaion is depending on the version of the Ardunio IDE and the ProMicro board information. IDE 1.6.13 and board version 1.6.15 are working with the files in "NewHWSworking". Later versions (e.g. 1.8.10) changed the hardware serial implementation and the 9 bit changes will work work with files in "HardwareSerial9bit".For the Leonardo board please use the Arduino AVR Boards version 1.8.3. Since version 1.8.4 the code has changed again and the 9 bit implementation is not working.

For newer IDE versions the three files from "HardwareSerial9bit" (or "NewHWSworking" for older IDE) have to be copied into the Arduino directory on your local PC e.g.: "C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino".

As Arduino board for the ProMicro you can either use the standard Arduino "Leonardo" board information or the ProMicro SparkFun implementation: https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide . Both will work.

Make sure that you install the ProMicro Board Addon using the Board Manager as described in the hookup guide: https://learn.sparkfun.com/tutorials/pro-micro--fio-v3-hookup-guide#windows_boardaddon

The software is using several additional Arduino libraries (RCSwitch, Adafruit_GFX, Adafruit_SSD1306). These libraries have to be downloaded and installed. The easiest way is to add the libraries with the IDE Library Manager.

Programming the 433 MHz KeyFob

You should change the four codes in the software to individual random numbers. The same codes have to be copied to the "_433_Programming_New.ino". Only for programming you will also need a 433 MHz sender connected to the ProMicro. I used a ProMicro on a "bread board" to program the codes.

Connections

Send each code individually and programm the keys of the remote according to the programming description of your KeyFob. Press "Send" button in serial console for next key.

Key 1 = button A = -1 degree

Key 2 = button B = +1 degree

Key 3 = button C = -10 degrees

Key 4 = button D = +10 degrees

If you use Auto/Standby function you also have to program the two additional buttons accordingly. After programming you can check directly if codes are programmed correctly. Just press the key on the remote and check if the shown value is correct.

Have fun with the remote control.

Please be aware that this repository is only for educational purpose, to learn how to use the Seatalk protocol. Use it on your own risk and do not use it for critical systems in real life environments.

Parts:

  • J1 Connector, AKL 101-03, 3-pin, 5,08 mm Link
  • J2 RXB6 433 Mhz receiver Link
  • J4 Arduino ProMicro, 5 Volt Link oder Link
  • U1 7805 (alternative: 173950578 MagI3C DC-DC Power Module) Link or Link2
  • U2 7407N (alternative: 74LS07) Link or Link
  • D1 Zenerdiode 5.1 Volt (0.5 Watt) Link
  • D2 LED, rot, 3 mm Link
  • R1,R5 Resistor 10 KOhm, 1/4 watt Link
  • R2 Resistor 68 KOhm, 1/4 watt Link
  • R3 Resistor 27 KOhm, 1/4 watt Link
  • R4 Resistor 270 Ohm, 1/4 watt Link

Optional:

For programming: 433MHz transmitter Link or Link2

Remote Control (KeyFob): Link or Link2 or Link3

Updates:

  • Version 1.5 - 16.12.20: Added command receive from USB-Serial to allow control from AvNav.
  • Version 1.4 - 28.11.20: Changed R2 and R3 back to 68 KOhm / 27 kOhm. 6.8 KOhm would impact the Seatalk high voltage level too much.
  • Version 1.4 - 27.11.20: Changed R2 and R3 to 6.8 KOhm to eliminate problems with some 74LS07 devices (see issue "R3 wrong value?" for details).
  • Version 1.4 - 27.07.20: Use of millis() funtion to avoid delay() and timer counter in loop(). Improved detection of 433MHz keys.
  • Version 1.3 - 13.12.19: Added definition for certain OLED displays that require this to work properly.
  • Version 1.2 - 21.09.19: Added buzzer support on pin 20 (active 5 Volt buzzer works without additional transistor).
  • Version 1.1 - 03.08.19: Added support for Auto and Standby (Key 5 and 6).
  • Added new programming code (_433_Programming_New.ino) to simplify programming of KeyFob without recompiling and upload for each key.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].