OBP Keypad 
==========

- Stromversorgung über M12-Anschluß über NMEA2000
    - Eingangsbereich 6~21V
- Konfigurationsmodus durch langen Tastendruck auf DST
    - Tiefschlaf und Reset aus Konfigmodus heraus auswählbar
- Konfiguration über Web-Interface
- Buzzer für Tastendruck-Feedback
  passiv, damit können die Töne mit PWM programmiert werden
- I²C Temp/Hum-Sensor SHT31

Optionen für später
- Helligkeitssensor z.B. zum automatischen LED dimmen
  Pins umbelegen:
    I²C -> D0, D1 (GPIO 44, 43)
    LEDs umsortieren: A0 bis A5 für die 6 LEDs
    A6 als analoger Input für Sensor
    A7 ist frei als Reserve
- Version 2
  - Seatalk1 Anschluß für Fernbedienung Raymarine Pinnenpilot
- Version X, immer als Option
  - EPaper-Display 2.9" zur Anzeige der Tastenbelegung
    bedeutet auch: viel komplizierteres Gehäuse

Damit die LEDs nicht stören, kann umgeschaltet werden zwischen
permanentem Leuchten und nur kurzem Aufblinken bei Betätigung:
Tag- und Nachtmodus

Einschaltvorgang
----------------

  - Status leuchtet kurz rot auf
  - Es erfolgt ein "Lampentest": Alle LEDs werden einmal durchgeschaltet.
  - Sind alle Tests erfolgreich ertönt ein Buzzer-Signal.

Beschreibung
------------

Die zu verbindenden Geräte müssen über die Weboberfläche ausgewählt
werden. Eine NMEA2000-Geräteliste wird dargestellt.

Die Destination-LEDs leuchten nur, wenn ein entsprechendes 
N2K-Zielgerät konfiguriert und erkannt wurde.


Gehäuse
-------

Bohrung Taster: 12mm
Taster Außenmaß: 17.5mm

Verbindungskabel CPU-Platine 
  JST 2.54 XH 7 Pin Steckverbinder -> LEDs + GND

Anschlußmöglichkeiten
---------------------

  für Stromversorgung +12V und NMEA2000
    2pin Terminalblock

  für I²C-Module
    2x 4pin Buchsenleiste weibl. 
    1x qwiic-Buchse (JST_SH_BM04B-SRSS-TB_04x1.00mm)

  für CAN-Transceiver-Modul: 4fach buchse liegend

  für mechanische Taster
    1x Terminalblock 8fach, 7 Tasten und GND


Bemerkungen
-----------

Bei den aktuell verwendeten Tasten sind die Anschlußdrähte extrem
filigran. Leichtes Brechen und schlechte Verarbeitung.

Es gibt verschiedene Varianten mit unterschiedlicher Federkraft.
Auswahl muß noch erfolgen


Beschaltung MCU Nano
--------------------

Wiki: https://www.waveshare.com/wiki/ESP32-S3-Nano

Der Nano hat 30 Pins.

Stromversorgung über VIN. Lt. Spezifikation können dort 6 bis 21V
anliegen. Vmtl. ist ein Betrieb mit 5V auch möglich.
Den 3.3V-Pin nicht benutzen. Dieser ist als Ausgang gedacht! 

Das Mapping von Nano-Pin zu GPIO muß noch überprüft werden.
Der nano kann in zwei verschiedenen Mapping-Modi betrieben
werden!

Die Pins für SPI (D11, D12, D13) sind absichtlich
nicht belegt um frei für Erweiterungen zu sein. An SPI kann
ggf. ein E-Paper angeschlossen werden.


 Key   Color   Pin      Remarks 
----- ------- -------- --------------------
 1      B       D2      GPIO5
 2      B       D3      GPIO6
 3      B       D4      GPIO7
 4      B       D5      GPIO8
 5      B       D6      GPIO9
 6      Y       D7      GPIO10 Illumination
 DST    Y       D8      GPIO17 Destination, On/Off

 LED    Pin        Remarks
------ ---------- ---------------------- 
 A      A0         GPIO1 
 B      A1         GPIO2
 C      A2         GPIO3
 RGB-R  A3         GPIO4
 RGB-G  A6         GPIO13
 RGB-B  A7         GPIO14

 CAN    Pin        Remarks
------ ---------- ---------------------- 
 TX     D9         GPIO18
 RX     D10        GPIO21

BUZZER
  TBD

Bauteilliste (WIP)
------------

  1x ESP32-S3 Nano (Waveshare)
     berrybase.de
     eckstein-shop.de
  6x Taster schwarz (1-6)
  1x Taster farbig (DST)
  1x M12 Micro-C Einbaubuchse
  1x RGB LED (gemeinsame Kathode), diffus
  3x LED grün, diffus
  6x Widerstand 330 Ohm
  1x SN65HVD230 CAN Transceiver
  1x Buzzer 12V, passiv
  1x MOSFET 2N7000
  1x Widerstand 150 Ohm
  1x Kabelsatz für Tasten, 0,25 bis 0,5 mm²
  1x Terminalblock 2pol. 2,54mm schraubbar
  1x 3D-Gehäuse bestehend auf Front- und Rückseite
  1x Mutternwerkzeug 3D-Druck
  4x Befestigungsschraube M4 Senkkopf
  4x Gehäuseschraube M2,5, lang
  8x Platinenschraube M2,5, kurz
  1x Silikondichtschnur 2mm
  1x SHT31 I²C-Modul
     Buchsenleiste 2,54 mm
     Stiftleiste 2,54mm
  2x Jumper
  1x Polyfuse 

Konfiguration
-------------

- Instanz-Nummer, es können mehrere Keypads im System sein
- Namen des gekoppelten Geräts, an dieses werden die Tasten gesendet
- Tastencodes Tasten 1 bis 6
- Tastennamen
- Web-AP

NMEA2000
--------

Es werden keine eingehenden Pakete verarbeitet bis auf die ISO-Pflichtpakete

Es wird eine Geräteliste geführt

Aus der Geräteliste können 3 Geräten den Zielen A, B und C zugeordnet werden

Die Tastencodes werden an das jeweils aktive Gerät gesendet

Ist ein Temp./-Feuchtesensor vorhanden werden die gemessenen Werte
regelmäßig auf den Bus gesendet
Description
OBP NMEA2000 Keypad with 6+1 keys
https://open-boat-projects.org/de/obpkeypad-6-1/
Readme 129 KiB
Languages
JavaScript 61.2%
C++ 25.5%
CSS 4.4%
HTML 3.8%
Python 3.7%
Other 1.4%