<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.openseamap.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Peter.holtermann&amp;*</id>
	<title>OpenSeaMap-dev - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.openseamap.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Peter.holtermann&amp;*"/>
	<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/wiki/Spezial:Beitr%C3%A4ge/Peter.holtermann"/>
	<updated>2026-06-10T12:39:43Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.31.10</generator>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3483</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3483"/>
		<updated>2015-05-04T09:51:19Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: /* Arduino Sketch added working example */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über ein Verbindungskabel direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!|  Pin || Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1   || SCL (serial clock)&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA (serial data)&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SDA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | left |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11). Die Datenbytes 1-5 bleiben konstant, die auszuwertenden Nutzdaten sind in den Bytes 7-11:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Byte  || 0              || 1 || 2   || 3  || 4  || 5  || 6  || 7  || 8  || 9  || 10 || 11      &lt;br /&gt;
|-&lt;br /&gt;
|Bedeutung|| ADDR+WRITE     ||CMD ||CMD ||CMD ||CMD ||CMD ||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|-&lt;br /&gt;
|Inhalt   || 0x3E+W = 0x7C  ||0xCE||0x80||0xE0||0xF8||0x70||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Jedes einzelne Bit in Bytes 7-11 repräsentiert dabei ein Segment der LCD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Clipper LCD segments.png|800px | thumb | center | Segmente des NASA Clipper Depth LCD und Namen.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!  Byte  ||  LCD Bit 7 || LCD Bit 6 || LCD Bit 5 || LCD Bit 4 || LCD Bit 3 || LCD Bit 2 || LCD Bit 1 || LCD Bit 0   &lt;br /&gt;
|- &lt;br /&gt;
|  6      || 2d         || 2c        || 2e        || 2g        || 2f        || 2b        || 2a        || DEPTH   &lt;br /&gt;
|-         &lt;br /&gt;
|  7      || 3a         || SHALLOW   || 3f        || 3b        || 3e        || 3g        || 3d        || 3c   &lt;br /&gt;
|-&lt;br /&gt;
|  8      || N.A.       || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || FEET   &lt;br /&gt;
|-&lt;br /&gt;
|  9      || DEZ. Punkt || METRES    || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.&lt;br /&gt;
|- &lt;br /&gt;
| 10      || N.A.       || PFEIL L   || 1a        || DEEP      || 1f        || 1b        || 1e        || 1g&lt;br /&gt;
|-   &lt;br /&gt;
| 11      || 1d         || 1c        || N.A.      || N.A.      || N.A.      || N.A.      || BLOCK     || Pfeil R&lt;br /&gt;
|-         &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Sketch ==&lt;br /&gt;
&lt;br /&gt;
Der folgende Arduino Sketch zeigt wie man die Daten auslesen und in einen 0183 kompatiblen NMEA String konvertieren kann. Bitte beachten, dass der Sketch die Tiefeneinheit &amp;quot;m&amp;quot; und nicht &amp;quot;feet&amp;quot; annimmt! &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
    NASAClipper_I2C_to_NMEA v0.5&lt;br /&gt;
    Decode the NASA Clipper Data into a NMEA compatible serial string&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    written by Peter Holtermann&lt;br /&gt;
    with additions from Victor Klein&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    This software is distributed under the GPL v3.0 License&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    At the back of your NASA Clipper should be a round connector&lt;br /&gt;
    with 5 pins, looking roughly like this ASCII art:&lt;br /&gt;
      Pin Location          Pin Number&lt;br /&gt;
          |                     2&lt;br /&gt;
      \       /              4     5&lt;br /&gt;
    -           -          1         3&lt;br /&gt;
          &lt;br /&gt;
          O                     6&lt;br /&gt;
          &lt;br /&gt;
  Pin 1: SCL&lt;br /&gt;
  Pin 2: GND&lt;br /&gt;
  Pin 3: SDA&lt;br /&gt;
  Pin 4: 12V&lt;br /&gt;
  Pin 5: GND&lt;br /&gt;
&lt;br /&gt;
  For Detail refer also to:&lt;br /&gt;
  &lt;br /&gt;
  http://wiki.openseamap.org/wiki/De:NASA_Clipper_Range&lt;br /&gt;
  &lt;br /&gt;
  If you connect SCL, SDA and GND with your arduino&lt;br /&gt;
  and upload this sketch you should get the depth&lt;br /&gt;
  information as serial data.&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
const int ledPin =  13;      // the number of the LED pin&lt;br /&gt;
&lt;br /&gt;
void setup() &lt;br /&gt;
{&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
  Wire.begin(0x3e);&lt;br /&gt;
  Serial.begin(4800);&lt;br /&gt;
  Wire.onReceive(&amp;amp;myHandler);&lt;br /&gt;
  Serial.println(&amp;quot;$HELLO SKIPPER! THIS IS NASACLIPPER I2C to NMEA v0.5!\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static bool FLAG_LED_ON = LOW;&lt;br /&gt;
static byte I2C_nrec;&lt;br /&gt;
char data_handler[11];&lt;br /&gt;
char data[11];&lt;br /&gt;
static byte FLAG_NEW_DATA = 0;&lt;br /&gt;
static bool FLAG_VALID_DATA = LOW;&lt;br /&gt;
static bool FLAG_DEPTH = LOW;&lt;br /&gt;
void myHandler(int numBytes)&lt;br /&gt;
{&lt;br /&gt;
  byte i=0;&lt;br /&gt;
  for(i=0;i&amp;lt;numBytes;i++)&lt;br /&gt;
  {&lt;br /&gt;
    data_handler[i] = Wire.read();&lt;br /&gt;
  }&lt;br /&gt;
  I2C_nrec = numBytes;&lt;br /&gt;
  FLAG_NEW_DATA = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// The NASA Clipper sends a 12 byte I2C data packet, this data is directly send to a pcf8566p&lt;br /&gt;
// LCD Driver. The first byte is the address and the write direction, the next eleven bytes is data.&lt;br /&gt;
// The first 5 bytes is a command, the proceeding 6 bytes are data&lt;br /&gt;
// positions and contain the single LCD elements. &lt;br /&gt;
// Example data {0x7c,0xce,0x80,0xe0,0xf8,0x70,0x00,0x00,0x00,0x00,0x00,0x00};&lt;br /&gt;
//               addr   0    1    2    3    4    5    6    7    8    9    10&lt;br /&gt;
//                      com  com  com com   com dta  dta  dta  dta  dta  dta&lt;br /&gt;
// Example depth  : 23.3&lt;br /&gt;
// Digit number   : 12.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char I2C_predata[5] =   {0xce,0x80,0xe0,0xf8,0x70};&lt;br /&gt;
char depth_mask[6] =    {0x01,0,0,0,0,0};&lt;br /&gt;
char decpoint_mask[6] = {0,0,0,0x80,0x0,0x0};&lt;br /&gt;
char metres_mask[6] =   {0,0,0,0x40,0x0,0x0};&lt;br /&gt;
char digit3_mask[6] =   {0,0xbf,0,0,0,0};&lt;br /&gt;
char digit3[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0xbb,0,0,0,0  }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0x11, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0x9e, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0x97, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0x35, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0xa7, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0xaf, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0x91, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0xbf, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0xb7, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
char digit2_mask[6] = {0xfe,0,0,0,0,0};&lt;br /&gt;
char digit2[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0xee, 0, 0,0,0,0  },// zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0x44, 0, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xb6, 0, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0xd6, 0, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0x5c, 0, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0xda, 0, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0xfa, 0, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0x46, 0, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xfe, 0, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0xde, 0, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
&lt;br /&gt;
char digit1_mask[6] = {0,0,0,0,0x2f,0xc0};&lt;br /&gt;
char digit1[10][6] = {                      // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0, 0,0,0x2e,0xc0 }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x04,0x40 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x27,0x80 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x25,0xC0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x0d,0x40 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x29,0xC0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2b,0xC0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x24,0x40 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x2f,0xc0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2d,0xc0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void loop() &lt;br /&gt;
{&lt;br /&gt;
  byte i,j;&lt;br /&gt;
  byte digit_tmp0,digit_tmp1,dig1,dig2,dig3,dec_point,checksum;&lt;br /&gt;
  char dptstr[5],NMEADPTstr[20],cksstr[3],ind_dptstr;&lt;br /&gt;
  static char incomingByte,command[60], DEBUG_MODE=0;&lt;br /&gt;
&lt;br /&gt;
  if(FLAG_NEW_DATA)&lt;br /&gt;
  {&lt;br /&gt;
    // DEBUG, stuff: &lt;br /&gt;
    //Serial.print(&amp;quot;Got &amp;quot;);&lt;br /&gt;
    //Serial.print(I2C_nrec,DEC);&lt;br /&gt;
    //Serial.print(&amp;quot; bytes.\n&amp;quot;);&lt;br /&gt;
    /*&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, HEX);&lt;br /&gt;
      Serial.write('_');&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    */&lt;br /&gt;
    &lt;br /&gt;
    // RAW I2C Data as a NMEA string.&lt;br /&gt;
    Serial.print(&amp;quot;$IIDTA&amp;quot;);&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(&amp;quot;,&amp;quot;);&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, DEC);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;*\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    ind_dptstr = 0;&lt;br /&gt;
    &lt;br /&gt;
    // Copy the rawdata&lt;br /&gt;
    for(j=0;j&amp;lt;11;j++)&lt;br /&gt;
      {&lt;br /&gt;
        data[j] = data_handler[j];&lt;br /&gt;
        data_handler[j] = 0;&lt;br /&gt;
      }&lt;br /&gt;
    // Check if the first 5 byte (the command) are correct&lt;br /&gt;
    // They seem to stay always the same&lt;br /&gt;
    for(i=0;i&amp;lt;5;i++)&lt;br /&gt;
    {&lt;br /&gt;
      dptstr[i] = 0;&lt;br /&gt;
      &lt;br /&gt;
      if( (data[i] &amp;amp; 0xFF ) == (I2C_predata[i] &amp;amp; 0xFF) )&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = LOW;&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if((FLAG_VALID_DATA) &amp;amp; (I2C_nrec == 11))&lt;br /&gt;
    {&lt;br /&gt;
      // Decode the digits&lt;br /&gt;
      dig1 = 'N';&lt;br /&gt;
      dig2 = 'N';&lt;br /&gt;
      dig3 = 'N';&lt;br /&gt;
      dec_point = 'N';&lt;br /&gt;
  &lt;br /&gt;
       // DIGIT 3 &lt;br /&gt;
      digit_tmp0 = data[6] &amp;amp; digit3_mask[1];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit3[i][1] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {&lt;br /&gt;
          dig3 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // decimal point&lt;br /&gt;
      if((data[8] &amp;amp; decpoint_mask[3] &amp;amp; 0xFF) == (0x80))&lt;br /&gt;
      {&lt;br /&gt;
        dec_point = '.';&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      // We only consider data good, when the &amp;quot;DEPTH&amp;quot; symbol appears on the LCD&lt;br /&gt;
      if((data[5] &amp;amp; depth_mask[0] &amp;amp; 0xFF) == (0x01))&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = LOW;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      // DIGIT 2 &lt;br /&gt;
      digit_tmp0 = data[5] &amp;amp; digit2_mask[0];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit2[i][0] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {        &lt;br /&gt;
          dig2 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // DIGIT 1&lt;br /&gt;
      digit_tmp0 = data[9] &amp;amp; digit1_mask[4];&lt;br /&gt;
      digit_tmp1 = data[10] &amp;amp; digit1_mask[5];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if(((digit1[i][4] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF)) &amp;amp;&lt;br /&gt;
        ( (digit1[i][5] &amp;amp; 0xFF) == (digit_tmp1 &amp;amp; 0xFF)  ))&lt;br /&gt;
        {&lt;br /&gt;
          dig1 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      i = 0;&lt;br /&gt;
      // Do we have good data? (FLAG_DEPTH and at least one digit&lt;br /&gt;
      if(((dig1 != 'N') | (dig2 != 'N') | (dig3 != 'N')) &amp;amp; (FLAG_DEPTH == HIGH))&lt;br /&gt;
        {&lt;br /&gt;
          ind_dptstr = 0;&lt;br /&gt;
          if(dig1 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig1;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig2 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig2;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dec_point != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dec_point;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig3 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig3;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          dptstr[ind_dptstr] = '\0';&lt;br /&gt;
          strcpy(NMEADPTstr,&amp;quot;$IIDPT,&amp;quot;); &lt;br /&gt;
          strcat(NMEADPTstr,dptstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;,0.0*&amp;quot;);&lt;br /&gt;
          // Calculate Checksum&lt;br /&gt;
          checksum = 0;&lt;br /&gt;
          i=0;&lt;br /&gt;
&lt;br /&gt;
         while(1)&lt;br /&gt;
          {&lt;br /&gt;
            i++;&lt;br /&gt;
            if(NMEADPTstr[i] == '*')&lt;br /&gt;
              break;&lt;br /&gt;
            checksum = checksum ^ NMEADPTstr[i];&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          sprintf(cksstr,&amp;quot;%X&amp;quot;,checksum &amp;amp; 0xFF);&lt;br /&gt;
          strcat(NMEADPTstr,cksstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
          if(FLAG_DEPTH == HIGH)&lt;br /&gt;
          {&lt;br /&gt;
            Serial.print(NMEADPTstr);&lt;br /&gt;
          }&lt;br /&gt;
          // Toggle the LED&lt;br /&gt;
          if( FLAG_LED_ON == HIGH) {&lt;br /&gt;
            FLAG_LED_ON = LOW;&lt;br /&gt;
            digitalWrite(ledPin, LOW);&lt;br /&gt;
            }&lt;br /&gt;
          else {&lt;br /&gt;
            FLAG_LED_ON = HIGH;&lt;br /&gt;
            digitalWrite(ledPin, HIGH);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
      else&lt;br /&gt;
        {&lt;br /&gt;
          Serial.println(&amp;quot;$bad data&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    // Get rid of old data&lt;br /&gt;
    for(i=0;i&amp;lt;11;i++)&lt;br /&gt;
    {&lt;br /&gt;
       data[i] = 0;&lt;br /&gt;
    }&lt;br /&gt;
    FLAG_NEW_DATA = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Funktionierendes Arduino Beispiel ===&lt;br /&gt;
&lt;br /&gt;
Hier ein Beispiel für eine funktionierende Konfiguration die den Arduino Sketch verwendet. Die Bilder unten zeigen die Pinbelegung eines DIN-A/V-Kabel von [http://www.reichelt.de/AVK-123/3/index.html?&amp;amp;ACTION=3&amp;amp;LA=446&amp;amp;ARTICLE=30527&amp;amp;artnr=AVK+123&amp;amp;SEARCH=din+kabel+5+pol Reichelt]. ACHTUNG: Die Farbkodierung muss bei jedem Kabel neu bestimmt werden! Es besteht keine Garantie, dass diese gleichbleibt! &lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Datei:Plug_connector.png|Steckerbelegung, Farbkodierung und NASA Clipper Range Pins des [http://www.reichelt.de/AVK-123/3/index.html?&amp;amp;ACTION=3&amp;amp;LA=446&amp;amp;ARTICLE=30527&amp;amp;artnr=AVK+123&amp;amp;SEARCH=din+kabel+5+pol DIN-A/V-Kabels]&lt;br /&gt;
Datei:arduni_uno_conn.png| Kabelbelegung des Arduino UNO&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:Plug_connector.png&amp;diff=3482</id>
		<title>Datei:Plug connector.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:Plug_connector.png&amp;diff=3482"/>
		<updated>2015-05-04T09:41:12Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: own photo of DIN cable with color coding and NASA Clipper Range pins.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;own photo of DIN cable with color coding and NASA Clipper Range pins.&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:Arduni_uno_conn.png&amp;diff=3481</id>
		<title>Datei:Arduni uno conn.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:Arduni_uno_conn.png&amp;diff=3481"/>
		<updated>2015-05-04T09:40:23Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Own photos of Arduino uno connection with a NASA Clipper Range

Peter Holtermann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Own photos of Arduino uno connection with a NASA Clipper Range&lt;br /&gt;
&lt;br /&gt;
Peter Holtermann&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3480</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3480"/>
		<updated>2015-05-04T07:33:39Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: /* Arduino Sketch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über ein Verbindungskabel direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!|  Pin || Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1   || SCL (serial clock)&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA (serial data)&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SDA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | left |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11). Die Datenbytes 1-5 bleiben konstant, die auszuwertenden Nutzdaten sind in den Bytes 7-11:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Byte  || 0              || 1 || 2   || 3  || 4  || 5  || 6  || 7  || 8  || 9  || 10 || 11      &lt;br /&gt;
|-&lt;br /&gt;
|Bedeutung|| ADDR+WRITE     ||CMD ||CMD ||CMD ||CMD ||CMD ||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|-&lt;br /&gt;
|Inhalt   || 0x3E+W = 0x7C  ||0xCE||0x80||0xE0||0xF8||0x70||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Jedes einzelne Bit in Bytes 7-11 repräsentiert dabei ein Segment der LCD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Clipper LCD segments.png|800px | thumb | center | Segmente des NASA Clipper Depth LCD und Namen.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!  Byte  ||  LCD Bit 7 || LCD Bit 6 || LCD Bit 5 || LCD Bit 4 || LCD Bit 3 || LCD Bit 2 || LCD Bit 1 || LCD Bit 0   &lt;br /&gt;
|- &lt;br /&gt;
|  6      || 2d         || 2c        || 2e        || 2g        || 2f        || 2b        || 2a        || DEPTH   &lt;br /&gt;
|-         &lt;br /&gt;
|  7      || 3a         || SHALLOW   || 3f        || 3b        || 3e        || 3g        || 3d        || 3c   &lt;br /&gt;
|-&lt;br /&gt;
|  8      || N.A.       || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || FEET   &lt;br /&gt;
|-&lt;br /&gt;
|  9      || DEZ. Punkt || METRES    || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.&lt;br /&gt;
|- &lt;br /&gt;
| 10      || N.A.       || PFEIL L   || 1a        || DEEP      || 1f        || 1b        || 1e        || 1g&lt;br /&gt;
|-   &lt;br /&gt;
| 11      || 1d         || 1c        || N.A.      || N.A.      || N.A.      || N.A.      || BLOCK     || Pfeil R&lt;br /&gt;
|-         &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Sketch ==&lt;br /&gt;
&lt;br /&gt;
Der folgende Arduino Sketch zeigt wie man die Daten auslesen und in einen 0183 kompatiblen NMEA String konvertieren kann. Bitte beachten, dass der Sketch die Tiefeneinheit &amp;quot;m&amp;quot; und nicht &amp;quot;feet&amp;quot; annimmt! &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
    NASAClipper_I2C_to_NMEA v0.5&lt;br /&gt;
    Decode the NASA Clipper Data into a NMEA compatible serial string&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    written by Peter Holtermann&lt;br /&gt;
    with additions from Victor Klein&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    This software is distributed under the GPL v3.0 License&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    At the back of your NASA Clipper should be a round connector&lt;br /&gt;
    with 5 pins, looking roughly like this ASCII art:&lt;br /&gt;
      Pin Location          Pin Number&lt;br /&gt;
          |                     2&lt;br /&gt;
      \       /              4     5&lt;br /&gt;
    -           -          1         3&lt;br /&gt;
          &lt;br /&gt;
          O                     6&lt;br /&gt;
          &lt;br /&gt;
  Pin 1: SCL&lt;br /&gt;
  Pin 2: GND&lt;br /&gt;
  Pin 3: SDA&lt;br /&gt;
  Pin 4: 12V&lt;br /&gt;
  Pin 5: GND&lt;br /&gt;
&lt;br /&gt;
  For Detail refer also to:&lt;br /&gt;
  &lt;br /&gt;
  http://wiki.openseamap.org/wiki/De:NASA_Clipper_Range&lt;br /&gt;
  &lt;br /&gt;
  If you connect SCL, SDA and GND with your arduino&lt;br /&gt;
  and upload this sketch you should get the depth&lt;br /&gt;
  information as serial data.&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
const int ledPin =  13;      // the number of the LED pin&lt;br /&gt;
&lt;br /&gt;
void setup() &lt;br /&gt;
{&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
  Wire.begin(0x3e);&lt;br /&gt;
  Serial.begin(4800);&lt;br /&gt;
  Wire.onReceive(&amp;amp;myHandler);&lt;br /&gt;
  Serial.println(&amp;quot;$HELLO SKIPPER! THIS IS NASACLIPPER I2C to NMEA v0.5!\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static bool FLAG_LED_ON = LOW;&lt;br /&gt;
static byte I2C_nrec;&lt;br /&gt;
char data_handler[11];&lt;br /&gt;
char data[11];&lt;br /&gt;
static byte FLAG_NEW_DATA = 0;&lt;br /&gt;
static bool FLAG_VALID_DATA = LOW;&lt;br /&gt;
static bool FLAG_DEPTH = LOW;&lt;br /&gt;
void myHandler(int numBytes)&lt;br /&gt;
{&lt;br /&gt;
  byte i=0;&lt;br /&gt;
  for(i=0;i&amp;lt;numBytes;i++)&lt;br /&gt;
  {&lt;br /&gt;
    data_handler[i] = Wire.read();&lt;br /&gt;
  }&lt;br /&gt;
  I2C_nrec = numBytes;&lt;br /&gt;
  FLAG_NEW_DATA = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// The NASA Clipper sends a 12 byte I2C data packet, this data is directly send to a pcf8566p&lt;br /&gt;
// LCD Driver. The first byte is the address and the write direction, the next eleven bytes is data.&lt;br /&gt;
// The first 5 bytes is a command, the proceeding 6 bytes are data&lt;br /&gt;
// positions and contain the single LCD elements. &lt;br /&gt;
// Example data {0x7c,0xce,0x80,0xe0,0xf8,0x70,0x00,0x00,0x00,0x00,0x00,0x00};&lt;br /&gt;
//               addr   0    1    2    3    4    5    6    7    8    9    10&lt;br /&gt;
//                      com  com  com com   com dta  dta  dta  dta  dta  dta&lt;br /&gt;
// Example depth  : 23.3&lt;br /&gt;
// Digit number   : 12.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char I2C_predata[5] =   {0xce,0x80,0xe0,0xf8,0x70};&lt;br /&gt;
char depth_mask[6] =    {0x01,0,0,0,0,0};&lt;br /&gt;
char decpoint_mask[6] = {0,0,0,0x80,0x0,0x0};&lt;br /&gt;
char metres_mask[6] =   {0,0,0,0x40,0x0,0x0};&lt;br /&gt;
char digit3_mask[6] =   {0,0xbf,0,0,0,0};&lt;br /&gt;
char digit3[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0xbb,0,0,0,0  }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0x11, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0x9e, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0x97, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0x35, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0xa7, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0xaf, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0x91, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0xbf, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0xb7, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
char digit2_mask[6] = {0xfe,0,0,0,0,0};&lt;br /&gt;
char digit2[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0xee, 0, 0,0,0,0  },// zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0x44, 0, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xb6, 0, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0xd6, 0, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0x5c, 0, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0xda, 0, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0xfa, 0, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0x46, 0, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xfe, 0, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0xde, 0, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
&lt;br /&gt;
char digit1_mask[6] = {0,0,0,0,0x2f,0xc0};&lt;br /&gt;
char digit1[10][6] = {                      // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0, 0,0,0x2e,0xc0 }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x04,0x40 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x27,0x80 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x25,0xC0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x0d,0x40 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x29,0xC0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2b,0xC0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x24,0x40 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x2f,0xc0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2d,0xc0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void loop() &lt;br /&gt;
{&lt;br /&gt;
  byte i,j;&lt;br /&gt;
  byte digit_tmp0,digit_tmp1,dig1,dig2,dig3,dec_point,checksum;&lt;br /&gt;
  char dptstr[5],NMEADPTstr[20],cksstr[3],ind_dptstr;&lt;br /&gt;
  static char incomingByte,command[60], DEBUG_MODE=0;&lt;br /&gt;
&lt;br /&gt;
  if(FLAG_NEW_DATA)&lt;br /&gt;
  {&lt;br /&gt;
    // DEBUG, stuff: &lt;br /&gt;
    //Serial.print(&amp;quot;Got &amp;quot;);&lt;br /&gt;
    //Serial.print(I2C_nrec,DEC);&lt;br /&gt;
    //Serial.print(&amp;quot; bytes.\n&amp;quot;);&lt;br /&gt;
    /*&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, HEX);&lt;br /&gt;
      Serial.write('_');&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    */&lt;br /&gt;
    &lt;br /&gt;
    // RAW I2C Data as a NMEA string.&lt;br /&gt;
    Serial.print(&amp;quot;$IIDTA&amp;quot;);&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(&amp;quot;,&amp;quot;);&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, DEC);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;*\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    ind_dptstr = 0;&lt;br /&gt;
    &lt;br /&gt;
    // Copy the rawdata&lt;br /&gt;
    for(j=0;j&amp;lt;11;j++)&lt;br /&gt;
      {&lt;br /&gt;
        data[j] = data_handler[j];&lt;br /&gt;
        data_handler[j] = 0;&lt;br /&gt;
      }&lt;br /&gt;
    // Check if the first 5 byte (the command) are correct&lt;br /&gt;
    // They seem to stay always the same&lt;br /&gt;
    for(i=0;i&amp;lt;5;i++)&lt;br /&gt;
    {&lt;br /&gt;
      dptstr[i] = 0;&lt;br /&gt;
      &lt;br /&gt;
      if( (data[i] &amp;amp; 0xFF ) == (I2C_predata[i] &amp;amp; 0xFF) )&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = LOW;&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if((FLAG_VALID_DATA) &amp;amp; (I2C_nrec == 11))&lt;br /&gt;
    {&lt;br /&gt;
      // Decode the digits&lt;br /&gt;
      dig1 = 'N';&lt;br /&gt;
      dig2 = 'N';&lt;br /&gt;
      dig3 = 'N';&lt;br /&gt;
      dec_point = 'N';&lt;br /&gt;
  &lt;br /&gt;
       // DIGIT 3 &lt;br /&gt;
      digit_tmp0 = data[6] &amp;amp; digit3_mask[1];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit3[i][1] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {&lt;br /&gt;
          dig3 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // decimal point&lt;br /&gt;
      if((data[8] &amp;amp; decpoint_mask[3] &amp;amp; 0xFF) == (0x80))&lt;br /&gt;
      {&lt;br /&gt;
        dec_point = '.';&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      // We only consider data good, when the &amp;quot;DEPTH&amp;quot; symbol appears on the LCD&lt;br /&gt;
      if((data[5] &amp;amp; depth_mask[0] &amp;amp; 0xFF) == (0x01))&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = LOW;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      // DIGIT 2 &lt;br /&gt;
      digit_tmp0 = data[5] &amp;amp; digit2_mask[0];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit2[i][0] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {        &lt;br /&gt;
          dig2 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // DIGIT 1&lt;br /&gt;
      digit_tmp0 = data[9] &amp;amp; digit1_mask[4];&lt;br /&gt;
      digit_tmp1 = data[10] &amp;amp; digit1_mask[5];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if(((digit1[i][4] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF)) &amp;amp;&lt;br /&gt;
        ( (digit1[i][5] &amp;amp; 0xFF) == (digit_tmp1 &amp;amp; 0xFF)  ))&lt;br /&gt;
        {&lt;br /&gt;
          dig1 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      i = 0;&lt;br /&gt;
      // Do we have good data? (FLAG_DEPTH and at least one digit&lt;br /&gt;
      if(((dig1 != 'N') | (dig2 != 'N') | (dig3 != 'N')) &amp;amp; (FLAG_DEPTH == HIGH))&lt;br /&gt;
        {&lt;br /&gt;
          ind_dptstr = 0;&lt;br /&gt;
          if(dig1 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig1;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig2 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig2;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dec_point != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dec_point;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig3 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig3;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          dptstr[ind_dptstr] = '\0';&lt;br /&gt;
          strcpy(NMEADPTstr,&amp;quot;$IIDPT,&amp;quot;); &lt;br /&gt;
          strcat(NMEADPTstr,dptstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;,0.0*&amp;quot;);&lt;br /&gt;
          // Calculate Checksum&lt;br /&gt;
          checksum = 0;&lt;br /&gt;
          i=0;&lt;br /&gt;
&lt;br /&gt;
         while(1)&lt;br /&gt;
          {&lt;br /&gt;
            i++;&lt;br /&gt;
            if(NMEADPTstr[i] == '*')&lt;br /&gt;
              break;&lt;br /&gt;
            checksum = checksum ^ NMEADPTstr[i];&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          sprintf(cksstr,&amp;quot;%X&amp;quot;,checksum &amp;amp; 0xFF);&lt;br /&gt;
          strcat(NMEADPTstr,cksstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
          if(FLAG_DEPTH == HIGH)&lt;br /&gt;
          {&lt;br /&gt;
            Serial.print(NMEADPTstr);&lt;br /&gt;
          }&lt;br /&gt;
          // Toggle the LED&lt;br /&gt;
          if( FLAG_LED_ON == HIGH) {&lt;br /&gt;
            FLAG_LED_ON = LOW;&lt;br /&gt;
            digitalWrite(ledPin, LOW);&lt;br /&gt;
            }&lt;br /&gt;
          else {&lt;br /&gt;
            FLAG_LED_ON = HIGH;&lt;br /&gt;
            digitalWrite(ledPin, HIGH);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
      else&lt;br /&gt;
        {&lt;br /&gt;
          Serial.println(&amp;quot;$bad data&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    // Get rid of old data&lt;br /&gt;
    for(i=0;i&amp;lt;11;i++)&lt;br /&gt;
    {&lt;br /&gt;
       data[i] = 0;&lt;br /&gt;
    }&lt;br /&gt;
    FLAG_NEW_DATA = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3479</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3479"/>
		<updated>2015-05-04T07:22:24Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: /* Arduino Sketch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über ein Verbindungskabel direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!|  Pin || Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1   || SCL (serial clock)&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA (serial data)&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SDA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | left |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11). Die Datenbytes 1-5 bleiben konstant, die auszuwertenden Nutzdaten sind in den Bytes 7-11:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Byte  || 0              || 1 || 2   || 3  || 4  || 5  || 6  || 7  || 8  || 9  || 10 || 11      &lt;br /&gt;
|-&lt;br /&gt;
|Bedeutung|| ADDR+WRITE     ||CMD ||CMD ||CMD ||CMD ||CMD ||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|-&lt;br /&gt;
|Inhalt   || 0x3E+W = 0x7C  ||0xCE||0x80||0xE0||0xF8||0x70||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Jedes einzelne Bit in Bytes 7-11 repräsentiert dabei ein Segment der LCD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Clipper LCD segments.png|800px | thumb | center | Segmente des NASA Clipper Depth LCD und Namen.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!  Byte  ||  LCD Bit 7 || LCD Bit 6 || LCD Bit 5 || LCD Bit 4 || LCD Bit 3 || LCD Bit 2 || LCD Bit 1 || LCD Bit 0   &lt;br /&gt;
|- &lt;br /&gt;
|  6      || 2d         || 2c        || 2e        || 2g        || 2f        || 2b        || 2a        || DEPTH   &lt;br /&gt;
|-         &lt;br /&gt;
|  7      || 3a         || SHALLOW   || 3f        || 3b        || 3e        || 3g        || 3d        || 3c   &lt;br /&gt;
|-&lt;br /&gt;
|  8      || N.A.       || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || FEET   &lt;br /&gt;
|-&lt;br /&gt;
|  9      || DEZ. Punkt || METRES    || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.&lt;br /&gt;
|- &lt;br /&gt;
| 10      || N.A.       || PFEIL L   || 1a        || DEEP      || 1f        || 1b        || 1e        || 1g&lt;br /&gt;
|-   &lt;br /&gt;
| 11      || 1d         || 1c        || N.A.      || N.A.      || N.A.      || N.A.      || BLOCK     || Pfeil R&lt;br /&gt;
|-         &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Sketch ==&lt;br /&gt;
&lt;br /&gt;
Der folgende Arduino Sketch zeigt wie man die Daten auslesen und in einen 0185 NMEA String konvertieren kann. Bitte beachten, dass der Sketch die Tiefeneinheit &amp;quot;m&amp;quot; und nicht &amp;quot;feet&amp;quot; annimmt! &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
    NASAClipper_I2C_to_NMEA v0.5&lt;br /&gt;
    Decode the NASA Clipper Data into a NMEA compatible serial string&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    written by Peter Holtermann&lt;br /&gt;
    with additions from Victor Klein&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    This software is distributed under the GPL v3.0 License&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    At the back of your NASA Clipper should be a round connector&lt;br /&gt;
    with 5 pins, looking roughly like this ASCII art:&lt;br /&gt;
      Pin Location          Pin Number&lt;br /&gt;
          |                     2&lt;br /&gt;
      \       /              4     5&lt;br /&gt;
    -           -          1         3&lt;br /&gt;
          &lt;br /&gt;
          O                     6&lt;br /&gt;
          &lt;br /&gt;
  Pin 1: SCL&lt;br /&gt;
  Pin 2: GND&lt;br /&gt;
  Pin 3: SDA&lt;br /&gt;
  Pin 4: 12V&lt;br /&gt;
  Pin 5: GND&lt;br /&gt;
&lt;br /&gt;
  For Detail refer also to:&lt;br /&gt;
  &lt;br /&gt;
  http://wiki.openseamap.org/wiki/De:NASA_Clipper_Range&lt;br /&gt;
  &lt;br /&gt;
  If you connect SCL, SDA and GND with your arduino&lt;br /&gt;
  and upload this sketch you should get the depth&lt;br /&gt;
  information as serial data.&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
const int ledPin =  13;      // the number of the LED pin&lt;br /&gt;
&lt;br /&gt;
void setup() &lt;br /&gt;
{&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
  Wire.begin(0x3e);&lt;br /&gt;
  Serial.begin(4800);&lt;br /&gt;
  Wire.onReceive(&amp;amp;myHandler);&lt;br /&gt;
  Serial.println(&amp;quot;$HELLO SKIPPER! THIS IS NASACLIPPER I2C to NMEA v0.5!\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static bool FLAG_LED_ON = LOW;&lt;br /&gt;
static byte I2C_nrec;&lt;br /&gt;
char data_handler[11];&lt;br /&gt;
char data[11];&lt;br /&gt;
static byte FLAG_NEW_DATA = 0;&lt;br /&gt;
static bool FLAG_VALID_DATA = LOW;&lt;br /&gt;
static bool FLAG_DEPTH = LOW;&lt;br /&gt;
void myHandler(int numBytes)&lt;br /&gt;
{&lt;br /&gt;
  byte i=0;&lt;br /&gt;
  for(i=0;i&amp;lt;numBytes;i++)&lt;br /&gt;
  {&lt;br /&gt;
    data_handler[i] = Wire.read();&lt;br /&gt;
  }&lt;br /&gt;
  I2C_nrec = numBytes;&lt;br /&gt;
  FLAG_NEW_DATA = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// The NASA Clipper sends a 12 byte I2C data packet, this data is directly send to a pcf8566p&lt;br /&gt;
// LCD Driver. The first byte is the address and the write direction, the next eleven bytes is data.&lt;br /&gt;
// The first 5 bytes is a command, the proceeding 6 bytes are data&lt;br /&gt;
// positions and contain the single LCD elements. &lt;br /&gt;
// Example data {0x7c,0xce,0x80,0xe0,0xf8,0x70,0x00,0x00,0x00,0x00,0x00,0x00};&lt;br /&gt;
//               addr   0    1    2    3    4    5    6    7    8    9    10&lt;br /&gt;
//                      com  com  com com   com dta  dta  dta  dta  dta  dta&lt;br /&gt;
// Example depth  : 23.3&lt;br /&gt;
// Digit number   : 12.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char I2C_predata[5] =   {0xce,0x80,0xe0,0xf8,0x70};&lt;br /&gt;
char depth_mask[6] =    {0x01,0,0,0,0,0};&lt;br /&gt;
char decpoint_mask[6] = {0,0,0,0x80,0x0,0x0};&lt;br /&gt;
char metres_mask[6] =   {0,0,0,0x40,0x0,0x0};&lt;br /&gt;
char digit3_mask[6] =   {0,0xbf,0,0,0,0};&lt;br /&gt;
char digit3[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0xbb,0,0,0,0  }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0x11, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0x9e, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0x97, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0x35, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0xa7, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0xaf, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0x91, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0xbf, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0xb7, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
char digit2_mask[6] = {0xfe,0,0,0,0,0};&lt;br /&gt;
char digit2[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0xee, 0, 0,0,0,0  },// zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0x44, 0, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xb6, 0, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0xd6, 0, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0x5c, 0, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0xda, 0, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0xfa, 0, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0x46, 0, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xfe, 0, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0xde, 0, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
&lt;br /&gt;
char digit1_mask[6] = {0,0,0,0,0x2f,0xc0};&lt;br /&gt;
char digit1[10][6] = {                      // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0, 0,0,0x2e,0xc0 }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x04,0x40 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x27,0x80 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x25,0xC0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x0d,0x40 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x29,0xC0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2b,0xC0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x24,0x40 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x2f,0xc0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2d,0xc0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void loop() &lt;br /&gt;
{&lt;br /&gt;
  byte i,j;&lt;br /&gt;
  byte digit_tmp0,digit_tmp1,dig1,dig2,dig3,dec_point,checksum;&lt;br /&gt;
  char dptstr[5],NMEADPTstr[20],cksstr[3],ind_dptstr;&lt;br /&gt;
  static char incomingByte,command[60], DEBUG_MODE=0;&lt;br /&gt;
&lt;br /&gt;
  if(FLAG_NEW_DATA)&lt;br /&gt;
  {&lt;br /&gt;
    // DEBUG, stuff: &lt;br /&gt;
    //Serial.print(&amp;quot;Got &amp;quot;);&lt;br /&gt;
    //Serial.print(I2C_nrec,DEC);&lt;br /&gt;
    //Serial.print(&amp;quot; bytes.\n&amp;quot;);&lt;br /&gt;
    /*&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, HEX);&lt;br /&gt;
      Serial.write('_');&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    */&lt;br /&gt;
    &lt;br /&gt;
    // RAW I2C Data as a NMEA string.&lt;br /&gt;
    Serial.print(&amp;quot;$IIDTA&amp;quot;);&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(&amp;quot;,&amp;quot;);&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, DEC);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;*\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    ind_dptstr = 0;&lt;br /&gt;
    &lt;br /&gt;
    // Copy the rawdata&lt;br /&gt;
    for(j=0;j&amp;lt;11;j++)&lt;br /&gt;
      {&lt;br /&gt;
        data[j] = data_handler[j];&lt;br /&gt;
        data_handler[j] = 0;&lt;br /&gt;
      }&lt;br /&gt;
    // Check if the first 5 byte (the command) are correct&lt;br /&gt;
    // They seem to stay always the same&lt;br /&gt;
    for(i=0;i&amp;lt;5;i++)&lt;br /&gt;
    {&lt;br /&gt;
      dptstr[i] = 0;&lt;br /&gt;
      &lt;br /&gt;
      if( (data[i] &amp;amp; 0xFF ) == (I2C_predata[i] &amp;amp; 0xFF) )&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = LOW;&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if((FLAG_VALID_DATA) &amp;amp; (I2C_nrec == 11))&lt;br /&gt;
    {&lt;br /&gt;
      // Decode the digits&lt;br /&gt;
      dig1 = 'N';&lt;br /&gt;
      dig2 = 'N';&lt;br /&gt;
      dig3 = 'N';&lt;br /&gt;
      dec_point = 'N';&lt;br /&gt;
  &lt;br /&gt;
       // DIGIT 3 &lt;br /&gt;
      digit_tmp0 = data[6] &amp;amp; digit3_mask[1];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit3[i][1] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {&lt;br /&gt;
          dig3 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // decimal point&lt;br /&gt;
      if((data[8] &amp;amp; decpoint_mask[3] &amp;amp; 0xFF) == (0x80))&lt;br /&gt;
      {&lt;br /&gt;
        dec_point = '.';&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      // We only consider data good, when the &amp;quot;DEPTH&amp;quot; symbol appears on the LCD&lt;br /&gt;
      if((data[5] &amp;amp; depth_mask[0] &amp;amp; 0xFF) == (0x01))&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = LOW;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      // DIGIT 2 &lt;br /&gt;
      digit_tmp0 = data[5] &amp;amp; digit2_mask[0];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit2[i][0] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {        &lt;br /&gt;
          dig2 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // DIGIT 1&lt;br /&gt;
      digit_tmp0 = data[9] &amp;amp; digit1_mask[4];&lt;br /&gt;
      digit_tmp1 = data[10] &amp;amp; digit1_mask[5];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if(((digit1[i][4] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF)) &amp;amp;&lt;br /&gt;
        ( (digit1[i][5] &amp;amp; 0xFF) == (digit_tmp1 &amp;amp; 0xFF)  ))&lt;br /&gt;
        {&lt;br /&gt;
          dig1 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      i = 0;&lt;br /&gt;
      // Do we have good data? (FLAG_DEPTH and at least one digit&lt;br /&gt;
      if(((dig1 != 'N') | (dig2 != 'N') | (dig3 != 'N')) &amp;amp; (FLAG_DEPTH == HIGH))&lt;br /&gt;
        {&lt;br /&gt;
          ind_dptstr = 0;&lt;br /&gt;
          if(dig1 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig1;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig2 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig2;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dec_point != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dec_point;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig3 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig3;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          dptstr[ind_dptstr] = '\0';&lt;br /&gt;
          strcpy(NMEADPTstr,&amp;quot;$IIDPT,&amp;quot;); &lt;br /&gt;
          strcat(NMEADPTstr,dptstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;,0.0*&amp;quot;);&lt;br /&gt;
          // Calculate Checksum&lt;br /&gt;
          checksum = 0;&lt;br /&gt;
          i=0;&lt;br /&gt;
&lt;br /&gt;
         while(1)&lt;br /&gt;
          {&lt;br /&gt;
            i++;&lt;br /&gt;
            if(NMEADPTstr[i] == '*')&lt;br /&gt;
              break;&lt;br /&gt;
            checksum = checksum ^ NMEADPTstr[i];&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          sprintf(cksstr,&amp;quot;%X&amp;quot;,checksum &amp;amp; 0xFF);&lt;br /&gt;
          strcat(NMEADPTstr,cksstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
          if(FLAG_DEPTH == HIGH)&lt;br /&gt;
          {&lt;br /&gt;
            Serial.print(NMEADPTstr);&lt;br /&gt;
          }&lt;br /&gt;
          // Toggle the LED&lt;br /&gt;
          if( FLAG_LED_ON == HIGH) {&lt;br /&gt;
            FLAG_LED_ON = LOW;&lt;br /&gt;
            digitalWrite(ledPin, LOW);&lt;br /&gt;
            }&lt;br /&gt;
          else {&lt;br /&gt;
            FLAG_LED_ON = HIGH;&lt;br /&gt;
            digitalWrite(ledPin, HIGH);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
      else&lt;br /&gt;
        {&lt;br /&gt;
          Serial.println(&amp;quot;$bad data&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    // Get rid of old data&lt;br /&gt;
    for(i=0;i&amp;lt;11;i++)&lt;br /&gt;
    {&lt;br /&gt;
       data[i] = 0;&lt;br /&gt;
    }&lt;br /&gt;
    FLAG_NEW_DATA = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3478</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3478"/>
		<updated>2015-05-04T07:15:54Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: /* Arduino Sketch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über ein Verbindungskabel direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!|  Pin || Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1   || SCL (serial clock)&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA (serial data)&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SDA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | left |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11). Die Datenbytes 1-5 bleiben konstant, die auszuwertenden Nutzdaten sind in den Bytes 7-11:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Byte  || 0              || 1 || 2   || 3  || 4  || 5  || 6  || 7  || 8  || 9  || 10 || 11      &lt;br /&gt;
|-&lt;br /&gt;
|Bedeutung|| ADDR+WRITE     ||CMD ||CMD ||CMD ||CMD ||CMD ||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|-&lt;br /&gt;
|Inhalt   || 0x3E+W = 0x7C  ||0xCE||0x80||0xE0||0xF8||0x70||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Jedes einzelne Bit in Bytes 7-11 repräsentiert dabei ein Segment der LCD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Clipper LCD segments.png|800px | thumb | center | Segmente des NASA Clipper Depth LCD und Namen.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!  Byte  ||  LCD Bit 7 || LCD Bit 6 || LCD Bit 5 || LCD Bit 4 || LCD Bit 3 || LCD Bit 2 || LCD Bit 1 || LCD Bit 0   &lt;br /&gt;
|- &lt;br /&gt;
|  6      || 2d         || 2c        || 2e        || 2g        || 2f        || 2b        || 2a        || DEPTH   &lt;br /&gt;
|-         &lt;br /&gt;
|  7      || 3a         || SHALLOW   || 3f        || 3b        || 3e        || 3g        || 3d        || 3c   &lt;br /&gt;
|-&lt;br /&gt;
|  8      || N.A.       || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || FEET   &lt;br /&gt;
|-&lt;br /&gt;
|  9      || DEZ. Punkt || METRES    || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.&lt;br /&gt;
|- &lt;br /&gt;
| 10      || N.A.       || PFEIL L   || 1a        || DEEP      || 1f        || 1b        || 1e        || 1g&lt;br /&gt;
|-   &lt;br /&gt;
| 11      || 1d         || 1c        || N.A.      || N.A.      || N.A.      || N.A.      || BLOCK     || Pfeil R&lt;br /&gt;
|-         &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Sketch ==&lt;br /&gt;
&lt;br /&gt;
Der folgende Arduino Sketch zeigt wie man die Daten auslesen und in einen 0185 NMEA String konvertieren kann. Bitte beachten, dass der Sketch annimmt, dass die Tiefeneinheit &amp;quot;m&amp;quot; und nicht &amp;quot;feet&amp;quot; ist! &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
    NASAClipper_I2C_to_NMEA v0.5&lt;br /&gt;
    Decode the NASA Clipper Data into a NMEA compatible serial string&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    written by Peter Holtermann&lt;br /&gt;
    with additions from Victor Klein&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    This software is distributed under the GPL v3.0 License&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    At the back of your NASA Clipper should be a round connector&lt;br /&gt;
    with 5 pins, looking roughly like this ASCII art:&lt;br /&gt;
      Pin Location          Pin Number&lt;br /&gt;
          |                     2&lt;br /&gt;
      \       /              4     5&lt;br /&gt;
    -           -          1         3&lt;br /&gt;
          &lt;br /&gt;
          O                     6&lt;br /&gt;
          &lt;br /&gt;
  Pin 1: SCL&lt;br /&gt;
  Pin 2: GND&lt;br /&gt;
  Pin 3: SDA&lt;br /&gt;
  Pin 4: 12V&lt;br /&gt;
  Pin 5: GND&lt;br /&gt;
&lt;br /&gt;
  For Detail refer also to:&lt;br /&gt;
  &lt;br /&gt;
  http://wiki.openseamap.org/wiki/De:NASA_Clipper_Range&lt;br /&gt;
  &lt;br /&gt;
  If you connect SCL, SDA and GND with your arduino&lt;br /&gt;
  and upload this sketch you should get the depth&lt;br /&gt;
  information as serial data.&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
const int ledPin =  13;      // the number of the LED pin&lt;br /&gt;
&lt;br /&gt;
void setup() &lt;br /&gt;
{&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
  Wire.begin(0x3e);&lt;br /&gt;
  Serial.begin(4800);&lt;br /&gt;
  Wire.onReceive(&amp;amp;myHandler);&lt;br /&gt;
  Serial.println(&amp;quot;$HELLO SKIPPER! THIS IS NASACLIPPER I2C to NMEA v0.5!\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static bool FLAG_LED_ON = LOW;&lt;br /&gt;
static byte I2C_nrec;&lt;br /&gt;
char data_handler[11];&lt;br /&gt;
char data[11];&lt;br /&gt;
static byte FLAG_NEW_DATA = 0;&lt;br /&gt;
static bool FLAG_VALID_DATA = LOW;&lt;br /&gt;
static bool FLAG_DEPTH = LOW;&lt;br /&gt;
void myHandler(int numBytes)&lt;br /&gt;
{&lt;br /&gt;
  byte i=0;&lt;br /&gt;
  for(i=0;i&amp;lt;numBytes;i++)&lt;br /&gt;
  {&lt;br /&gt;
    data_handler[i] = Wire.read();&lt;br /&gt;
  }&lt;br /&gt;
  I2C_nrec = numBytes;&lt;br /&gt;
  FLAG_NEW_DATA = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// The NASA Clipper sends a 12 byte I2C data packet, this data is directly send to a pcf8566p&lt;br /&gt;
// LCD Driver. The first byte is the address and the write direction, the next eleven bytes is data.&lt;br /&gt;
// The first 5 bytes is a command, the proceeding 6 bytes are data&lt;br /&gt;
// positions and contain the single LCD elements. &lt;br /&gt;
// Example data {0x7c,0xce,0x80,0xe0,0xf8,0x70,0x00,0x00,0x00,0x00,0x00,0x00};&lt;br /&gt;
//               addr   0    1    2    3    4    5    6    7    8    9    10&lt;br /&gt;
//                      com  com  com com   com dta  dta  dta  dta  dta  dta&lt;br /&gt;
// Example depth  : 23.3&lt;br /&gt;
// Digit number   : 12.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char I2C_predata[5] =   {0xce,0x80,0xe0,0xf8,0x70};&lt;br /&gt;
char depth_mask[6] =    {0x01,0,0,0,0,0};&lt;br /&gt;
char decpoint_mask[6] = {0,0,0,0x80,0x0,0x0};&lt;br /&gt;
char metres_mask[6] =   {0,0,0,0x40,0x0,0x0};&lt;br /&gt;
char digit3_mask[6] =   {0,0xbf,0,0,0,0};&lt;br /&gt;
char digit3[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0xbb,0,0,0,0  }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0x11, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0x9e, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0x97, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0x35, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0xa7, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0xaf, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0x91, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0xbf, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0xb7, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
char digit2_mask[6] = {0xfe,0,0,0,0,0};&lt;br /&gt;
char digit2[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0xee, 0, 0,0,0,0  },// zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0x44, 0, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xb6, 0, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0xd6, 0, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0x5c, 0, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0xda, 0, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0xfa, 0, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0x46, 0, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xfe, 0, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0xde, 0, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
&lt;br /&gt;
char digit1_mask[6] = {0,0,0,0,0x2f,0xc0};&lt;br /&gt;
char digit1[10][6] = {                      // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0, 0,0,0x2e,0xc0 }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x04,0x40 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x27,0x80 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x25,0xC0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x0d,0x40 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x29,0xC0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2b,0xC0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x24,0x40 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x2f,0xc0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2d,0xc0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void loop() &lt;br /&gt;
{&lt;br /&gt;
  byte i,j;&lt;br /&gt;
  byte digit_tmp0,digit_tmp1,dig1,dig2,dig3,dec_point,checksum;&lt;br /&gt;
  char dptstr[5],NMEADPTstr[20],cksstr[3],ind_dptstr;&lt;br /&gt;
  static char incomingByte,command[60], DEBUG_MODE=0;&lt;br /&gt;
&lt;br /&gt;
  if(FLAG_NEW_DATA)&lt;br /&gt;
  {&lt;br /&gt;
    // DEBUG, stuff: &lt;br /&gt;
    //Serial.print(&amp;quot;Got &amp;quot;);&lt;br /&gt;
    //Serial.print(I2C_nrec,DEC);&lt;br /&gt;
    //Serial.print(&amp;quot; bytes.\n&amp;quot;);&lt;br /&gt;
    /*&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, HEX);&lt;br /&gt;
      Serial.write('_');&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    */&lt;br /&gt;
    &lt;br /&gt;
    // RAW I2C Data as a NMEA string.&lt;br /&gt;
    Serial.print(&amp;quot;$IIDTA&amp;quot;);&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(&amp;quot;,&amp;quot;);&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, DEC);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;*\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    ind_dptstr = 0;&lt;br /&gt;
    &lt;br /&gt;
    // Copy the rawdata&lt;br /&gt;
    for(j=0;j&amp;lt;11;j++)&lt;br /&gt;
      {&lt;br /&gt;
        data[j] = data_handler[j];&lt;br /&gt;
        data_handler[j] = 0;&lt;br /&gt;
      }&lt;br /&gt;
    // Check if the first 5 byte (the command) are correct&lt;br /&gt;
    // They seem to stay always the same&lt;br /&gt;
    for(i=0;i&amp;lt;5;i++)&lt;br /&gt;
    {&lt;br /&gt;
      dptstr[i] = 0;&lt;br /&gt;
      &lt;br /&gt;
      if( (data[i] &amp;amp; 0xFF ) == (I2C_predata[i] &amp;amp; 0xFF) )&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = LOW;&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if((FLAG_VALID_DATA) &amp;amp; (I2C_nrec == 11))&lt;br /&gt;
    {&lt;br /&gt;
      // Decode the digits&lt;br /&gt;
      dig1 = 'N';&lt;br /&gt;
      dig2 = 'N';&lt;br /&gt;
      dig3 = 'N';&lt;br /&gt;
      dec_point = 'N';&lt;br /&gt;
  &lt;br /&gt;
       // DIGIT 3 &lt;br /&gt;
      digit_tmp0 = data[6] &amp;amp; digit3_mask[1];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit3[i][1] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {&lt;br /&gt;
          dig3 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // decimal point&lt;br /&gt;
      if((data[8] &amp;amp; decpoint_mask[3] &amp;amp; 0xFF) == (0x80))&lt;br /&gt;
      {&lt;br /&gt;
        dec_point = '.';&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      // We only consider data good, when the &amp;quot;DEPTH&amp;quot; symbol appears on the LCD&lt;br /&gt;
      if((data[5] &amp;amp; depth_mask[0] &amp;amp; 0xFF) == (0x01))&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = LOW;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      // DIGIT 2 &lt;br /&gt;
      digit_tmp0 = data[5] &amp;amp; digit2_mask[0];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit2[i][0] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {        &lt;br /&gt;
          dig2 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // DIGIT 1&lt;br /&gt;
      digit_tmp0 = data[9] &amp;amp; digit1_mask[4];&lt;br /&gt;
      digit_tmp1 = data[10] &amp;amp; digit1_mask[5];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if(((digit1[i][4] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF)) &amp;amp;&lt;br /&gt;
        ( (digit1[i][5] &amp;amp; 0xFF) == (digit_tmp1 &amp;amp; 0xFF)  ))&lt;br /&gt;
        {&lt;br /&gt;
          dig1 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      i = 0;&lt;br /&gt;
      // Do we have good data? (FLAG_DEPTH and at least one digit&lt;br /&gt;
      if(((dig1 != 'N') | (dig2 != 'N') | (dig3 != 'N')) &amp;amp; (FLAG_DEPTH == HIGH))&lt;br /&gt;
        {&lt;br /&gt;
          ind_dptstr = 0;&lt;br /&gt;
          if(dig1 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig1;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig2 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig2;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dec_point != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dec_point;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig3 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig3;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          dptstr[ind_dptstr] = '\0';&lt;br /&gt;
          strcpy(NMEADPTstr,&amp;quot;$IIDPT,&amp;quot;); &lt;br /&gt;
          strcat(NMEADPTstr,dptstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;,0.0*&amp;quot;);&lt;br /&gt;
          // Calculate Checksum&lt;br /&gt;
          checksum = 0;&lt;br /&gt;
          i=0;&lt;br /&gt;
&lt;br /&gt;
         while(1)&lt;br /&gt;
          {&lt;br /&gt;
            i++;&lt;br /&gt;
            if(NMEADPTstr[i] == '*')&lt;br /&gt;
              break;&lt;br /&gt;
            checksum = checksum ^ NMEADPTstr[i];&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          sprintf(cksstr,&amp;quot;%X&amp;quot;,checksum &amp;amp; 0xFF);&lt;br /&gt;
          strcat(NMEADPTstr,cksstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
          if(FLAG_DEPTH == HIGH)&lt;br /&gt;
          {&lt;br /&gt;
            Serial.print(NMEADPTstr);&lt;br /&gt;
          }&lt;br /&gt;
          // Toggle the LED&lt;br /&gt;
          if( FLAG_LED_ON == HIGH) {&lt;br /&gt;
            FLAG_LED_ON = LOW;&lt;br /&gt;
            digitalWrite(ledPin, LOW);&lt;br /&gt;
            }&lt;br /&gt;
          else {&lt;br /&gt;
            FLAG_LED_ON = HIGH;&lt;br /&gt;
            digitalWrite(ledPin, HIGH);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
      else&lt;br /&gt;
        {&lt;br /&gt;
          Serial.println(&amp;quot;$bad data&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    // Get rid of old data&lt;br /&gt;
    for(i=0;i&amp;lt;11;i++)&lt;br /&gt;
    {&lt;br /&gt;
       data[i] = 0;&lt;br /&gt;
    }&lt;br /&gt;
    FLAG_NEW_DATA = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3477</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=3477"/>
		<updated>2015-05-04T07:09:43Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: /* NASA Clipper Depth Added Arduino Sketch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über ein Verbindungskabel direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!|  Pin || Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1   || SCL (serial clock)&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA (serial data)&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SDA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | left |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11). Die Datenbytes 1-5 bleiben konstant, die auszuwertenden Nutzdaten sind in den Bytes 7-11:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Byte  || 0              || 1 || 2   || 3  || 4  || 5  || 6  || 7  || 8  || 9  || 10 || 11      &lt;br /&gt;
|-&lt;br /&gt;
|Bedeutung|| ADDR+WRITE     ||CMD ||CMD ||CMD ||CMD ||CMD ||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|-&lt;br /&gt;
|Inhalt   || 0x3E+W = 0x7C  ||0xCE||0x80||0xE0||0xF8||0x70||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Jedes einzelne Bit in Bytes 7-11 repräsentiert dabei ein Segment der LCD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Clipper LCD segments.png|800px | thumb | center | Segmente des NASA Clipper Depth LCD und Namen.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!  Byte  ||  LCD Bit 7 || LCD Bit 6 || LCD Bit 5 || LCD Bit 4 || LCD Bit 3 || LCD Bit 2 || LCD Bit 1 || LCD Bit 0   &lt;br /&gt;
|- &lt;br /&gt;
|  6      || 2d         || 2c        || 2e        || 2g        || 2f        || 2b        || 2a        || DEPTH   &lt;br /&gt;
|-         &lt;br /&gt;
|  7      || 3a         || SHALLOW   || 3f        || 3b        || 3e        || 3g        || 3d        || 3c   &lt;br /&gt;
|-&lt;br /&gt;
|  8      || N.A.       || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || FEET   &lt;br /&gt;
|-&lt;br /&gt;
|  9      || DEZ. Punkt || METRES    || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.&lt;br /&gt;
|- &lt;br /&gt;
| 10      || N.A.       || PFEIL L   || 1a        || DEEP      || 1f        || 1b        || 1e        || 1g&lt;br /&gt;
|-   &lt;br /&gt;
| 11      || 1d         || 1c        || N.A.      || N.A.      || N.A.      || N.A.      || BLOCK     || Pfeil R&lt;br /&gt;
|-         &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Arduino Sketch ==&lt;br /&gt;
&lt;br /&gt;
Der folgende Arduino Sketch zeigt wie man die Daten auslesen und in einen 0185 NMEA String konvertieren kann. Bitte beachten, dass der Sketch annimmt, dass die Tiefeneinheit &amp;quot;m&amp;quot; und nicht &amp;quot;feet&amp;quot; ist! &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
&lt;br /&gt;
    NASAClipper_I2C_to_NMEA v0.5&lt;br /&gt;
    Decode the NASA Clipper Data into NMEA Serial string&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    Peter Holtermann&lt;br /&gt;
    Victor Klein&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
  &lt;br /&gt;
    This software is distributed under the GPL v3.0 License&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    At the back of your NASA Clipper should be a round connector&lt;br /&gt;
    with 5 pins, looking roughly like this ASCII art:&lt;br /&gt;
      Pin Location          Pin Number&lt;br /&gt;
          |                     2&lt;br /&gt;
      \       /              4     5&lt;br /&gt;
    -           -          1         3&lt;br /&gt;
          &lt;br /&gt;
          O                     6&lt;br /&gt;
          &lt;br /&gt;
  Pin 1: SCL&lt;br /&gt;
  Pin 2: GND&lt;br /&gt;
  Pin 3: SDA&lt;br /&gt;
  Pin 4: 12V&lt;br /&gt;
  Pin 5: GND&lt;br /&gt;
&lt;br /&gt;
  For Detail refer also to:&lt;br /&gt;
  &lt;br /&gt;
  http://wiki.openseamap.org/wiki/De:NASA_Clipper_Range&lt;br /&gt;
  &lt;br /&gt;
  If you connect SCL, SDA and GND with your arduino&lt;br /&gt;
  and upload this sketch you should get the depth&lt;br /&gt;
  information as serial data.&lt;br /&gt;
&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#include &amp;lt;Wire.h&amp;gt;&lt;br /&gt;
const int ledPin =  13;      // the number of the LED pin&lt;br /&gt;
&lt;br /&gt;
void setup() &lt;br /&gt;
{&lt;br /&gt;
  pinMode(ledPin, OUTPUT);&lt;br /&gt;
  Wire.begin(0x3e);&lt;br /&gt;
  Serial.begin(4800);&lt;br /&gt;
  Wire.onReceive(&amp;amp;myHandler);&lt;br /&gt;
  Serial.println(&amp;quot;$HELLO SKIPPER! THIS IS NASACLIPPER I2C to NMEA v0.5!\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static bool FLAG_LED_ON = LOW;&lt;br /&gt;
static byte I2C_nrec;&lt;br /&gt;
char data_handler[11];&lt;br /&gt;
char data[11];&lt;br /&gt;
static byte FLAG_NEW_DATA = 0;&lt;br /&gt;
static bool FLAG_VALID_DATA = LOW;&lt;br /&gt;
static bool FLAG_DEPTH = LOW;&lt;br /&gt;
void myHandler(int numBytes)&lt;br /&gt;
{&lt;br /&gt;
  byte i=0;&lt;br /&gt;
  for(i=0;i&amp;lt;numBytes;i++)&lt;br /&gt;
  {&lt;br /&gt;
    data_handler[i] = Wire.read();&lt;br /&gt;
  }&lt;br /&gt;
  I2C_nrec = numBytes;&lt;br /&gt;
  FLAG_NEW_DATA = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// The NASA Clipper sends a 12 byte I2C data packet, this data is directly send to a pcf8566p&lt;br /&gt;
// LCD Driver. The first byte is the address and the write direction, the next eleven bytes is data.&lt;br /&gt;
// The first 5 bytes is a command, the proceeding 6 bytes are data&lt;br /&gt;
// positions and contain the single LCD elements. &lt;br /&gt;
// Example data {0x7c,0xce,0x80,0xe0,0xf8,0x70,0x00,0x00,0x00,0x00,0x00,0x00};&lt;br /&gt;
//               addr   0    1    2    3    4    5    6    7    8    9    10&lt;br /&gt;
//                      com  com  com com   com dta  dta  dta  dta  dta  dta&lt;br /&gt;
// Example depth  : 23.3&lt;br /&gt;
// Digit number   : 12.3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
char I2C_predata[5] =   {0xce,0x80,0xe0,0xf8,0x70};&lt;br /&gt;
char depth_mask[6] =    {0x01,0,0,0,0,0};&lt;br /&gt;
char decpoint_mask[6] = {0,0,0,0x80,0x0,0x0};&lt;br /&gt;
char metres_mask[6] =   {0,0,0,0x40,0x0,0x0};&lt;br /&gt;
char digit3_mask[6] =   {0,0xbf,0,0,0,0};&lt;br /&gt;
char digit3[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0xbb,0,0,0,0  }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0x11, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0x9e, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0x97, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0x35, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0xa7, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0xaf, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0x91, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0xbf, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0xb7, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
char digit2_mask[6] = {0xfe,0,0,0,0,0};&lt;br /&gt;
char digit2[10][6] = {                   // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0xee, 0, 0,0,0,0  },// zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0x44, 0, 0,0,0,0 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xb6, 0, 0,0,0,0 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0xd6, 0, 0,0,0,0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0x5c, 0, 0,0,0,0 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0xda, 0, 0,0,0,0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0xfa, 0, 0,0,0,0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0x46, 0, 0,0,0,0 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0xfe, 0, 0,0,0,0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0xde, 0, 0,0,0,0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
                 &lt;br /&gt;
&lt;br /&gt;
char digit1_mask[6] = {0,0,0,0,0x2f,0xc0};&lt;br /&gt;
char digit1[10][6] = {                      // from https://en.wikipedia.org/wiki/Seven-segment_display&lt;br /&gt;
                   { 0, 0, 0,0,0x2e,0xc0 }, // zero, a,b,c,d,e,f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x04,0x40 }, // one /a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x27,0x80 }, // two a,b,/c,d,e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x25,0xC0 }, // three a,b,c,d,/e,/f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x0d,0x40 }, // four /a,b,c,/d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x29,0xC0 }, // five a,/b,c,d,/e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2b,0xC0 }, // six a,/b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x24,0x40 }, // seven a,b,c,/d,/e,/f,/g&lt;br /&gt;
                   { 0, 0, 0,0,0x2f,0xc0 }, // eight a,b,c,d,e,f,g&lt;br /&gt;
                   { 0, 0, 0,0,0x2d,0xc0 }, // nine a,b,c,d,/e,f,g&lt;br /&gt;
                 };&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void loop() &lt;br /&gt;
{&lt;br /&gt;
  byte i,j;&lt;br /&gt;
  byte digit_tmp0,digit_tmp1,dig1,dig2,dig3,dec_point,checksum;&lt;br /&gt;
  char dptstr[5],NMEADPTstr[20],cksstr[3],ind_dptstr;&lt;br /&gt;
  static char incomingByte,command[60], DEBUG_MODE=0;&lt;br /&gt;
&lt;br /&gt;
  if(FLAG_NEW_DATA)&lt;br /&gt;
  {&lt;br /&gt;
    // DEBUG, stuff: &lt;br /&gt;
    //Serial.print(&amp;quot;Got &amp;quot;);&lt;br /&gt;
    //Serial.print(I2C_nrec,DEC);&lt;br /&gt;
    //Serial.print(&amp;quot; bytes.\n&amp;quot;);&lt;br /&gt;
    /*&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, HEX);&lt;br /&gt;
      Serial.write('_');&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    */&lt;br /&gt;
    &lt;br /&gt;
    // RAW I2C Data as a NMEA string.&lt;br /&gt;
    Serial.print(&amp;quot;$IIDTA&amp;quot;);&lt;br /&gt;
    for(i=0;i&amp;lt;I2C_nrec;i++)&lt;br /&gt;
    {&lt;br /&gt;
      Serial.print(&amp;quot;,&amp;quot;);&lt;br /&gt;
      Serial.print(data_handler[i] &amp;amp; 0xFF, DEC);&lt;br /&gt;
    }&lt;br /&gt;
    Serial.print(&amp;quot;*\n&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    ind_dptstr = 0;&lt;br /&gt;
    &lt;br /&gt;
    // Copy the rawdata&lt;br /&gt;
    for(j=0;j&amp;lt;11;j++)&lt;br /&gt;
      {&lt;br /&gt;
        data[j] = data_handler[j];&lt;br /&gt;
        data_handler[j] = 0;&lt;br /&gt;
      }&lt;br /&gt;
    // Check if the first 5 byte (the command) are correct&lt;br /&gt;
    // They seem to stay always the same&lt;br /&gt;
    for(i=0;i&amp;lt;5;i++)&lt;br /&gt;
    {&lt;br /&gt;
      dptstr[i] = 0;&lt;br /&gt;
      &lt;br /&gt;
      if( (data[i] &amp;amp; 0xFF ) == (I2C_predata[i] &amp;amp; 0xFF) )&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_VALID_DATA = LOW;&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if((FLAG_VALID_DATA) &amp;amp; (I2C_nrec == 11))&lt;br /&gt;
    {&lt;br /&gt;
      // Decode the digits&lt;br /&gt;
      dig1 = 'N';&lt;br /&gt;
      dig2 = 'N';&lt;br /&gt;
      dig3 = 'N';&lt;br /&gt;
      dec_point = 'N';&lt;br /&gt;
  &lt;br /&gt;
       // DIGIT 3 &lt;br /&gt;
      digit_tmp0 = data[6] &amp;amp; digit3_mask[1];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit3[i][1] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {&lt;br /&gt;
          dig3 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // decimal point&lt;br /&gt;
      if((data[8] &amp;amp; decpoint_mask[3] &amp;amp; 0xFF) == (0x80))&lt;br /&gt;
      {&lt;br /&gt;
        dec_point = '.';&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      // We only consider data good, when the &amp;quot;DEPTH&amp;quot; symbol appears on the LCD&lt;br /&gt;
      if((data[5] &amp;amp; depth_mask[0] &amp;amp; 0xFF) == (0x01))&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = HIGH;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        FLAG_DEPTH = LOW;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
      // DIGIT 2 &lt;br /&gt;
      digit_tmp0 = data[5] &amp;amp; digit2_mask[0];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if((digit2[i][0] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF))&lt;br /&gt;
        {        &lt;br /&gt;
          dig2 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // DIGIT 1&lt;br /&gt;
      digit_tmp0 = data[9] &amp;amp; digit1_mask[4];&lt;br /&gt;
      digit_tmp1 = data[10] &amp;amp; digit1_mask[5];&lt;br /&gt;
      for(i=0;i&amp;lt;10;i++)&lt;br /&gt;
      {&lt;br /&gt;
        if(((digit1[i][4] &amp;amp; 0xFF) == (digit_tmp0 &amp;amp; 0xFF)) &amp;amp;&lt;br /&gt;
        ( (digit1[i][5] &amp;amp; 0xFF) == (digit_tmp1 &amp;amp; 0xFF)  ))&lt;br /&gt;
        {&lt;br /&gt;
          dig1 = '0' + i;&lt;br /&gt;
          break;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      i = 0;&lt;br /&gt;
      // Do we have good data? (FLAG_DEPTH and at least one digit&lt;br /&gt;
      if(((dig1 != 'N') | (dig2 != 'N') | (dig3 != 'N')) &amp;amp; (FLAG_DEPTH == HIGH))&lt;br /&gt;
        {&lt;br /&gt;
          ind_dptstr = 0;&lt;br /&gt;
          if(dig1 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig1;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig2 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig2;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dec_point != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dec_point;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          if(dig3 != 'N')&lt;br /&gt;
          {&lt;br /&gt;
            dptstr[ind_dptstr] = dig3;&lt;br /&gt;
            ind_dptstr ++;&lt;br /&gt;
          }&lt;br /&gt;
          dptstr[ind_dptstr] = '\0';&lt;br /&gt;
          strcpy(NMEADPTstr,&amp;quot;$IIDPT,&amp;quot;); &lt;br /&gt;
          strcat(NMEADPTstr,dptstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;,0.0*&amp;quot;);&lt;br /&gt;
          // Calculate Checksum&lt;br /&gt;
          checksum = 0;&lt;br /&gt;
          i=0;&lt;br /&gt;
&lt;br /&gt;
         while(1)&lt;br /&gt;
          {&lt;br /&gt;
            i++;&lt;br /&gt;
            if(NMEADPTstr[i] == '*')&lt;br /&gt;
              break;&lt;br /&gt;
            checksum = checksum ^ NMEADPTstr[i];&lt;br /&gt;
          }&lt;br /&gt;
          &lt;br /&gt;
          sprintf(cksstr,&amp;quot;%X&amp;quot;,checksum &amp;amp; 0xFF);&lt;br /&gt;
          strcat(NMEADPTstr,cksstr);&lt;br /&gt;
          strcat(NMEADPTstr,&amp;quot;\r\n&amp;quot;);&lt;br /&gt;
          if(FLAG_DEPTH == HIGH)&lt;br /&gt;
          {&lt;br /&gt;
            Serial.print(NMEADPTstr);&lt;br /&gt;
          }&lt;br /&gt;
          // Toggle the LED&lt;br /&gt;
          if( FLAG_LED_ON == HIGH) {&lt;br /&gt;
            FLAG_LED_ON = LOW;&lt;br /&gt;
            digitalWrite(ledPin, LOW);&lt;br /&gt;
            }&lt;br /&gt;
          else {&lt;br /&gt;
            FLAG_LED_ON = HIGH;&lt;br /&gt;
            digitalWrite(ledPin, HIGH);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
      else&lt;br /&gt;
        {&lt;br /&gt;
          Serial.println(&amp;quot;$bad data&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    // Get rid of old data&lt;br /&gt;
    for(i=0;i&amp;lt;11;i++)&lt;br /&gt;
    {&lt;br /&gt;
       data[i] = 0;&lt;br /&gt;
    }&lt;br /&gt;
    FLAG_NEW_DATA = 0;&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2883</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2883"/>
		<updated>2014-08-20T07:54:52Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: schreibfehler korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über den I2C Bus direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!|  Pin    ||   Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1    ||   SCL&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SDA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | center |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11). Die Datenbytes 1-5 bleiben konstant, die auszuwertenden Nutzdaten sind in den Bytes 7-11:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Byte  || 0              || 1 || 2   || 3  || 4  || 5  || 6  || 7  || 8  || 9  || 10 || 11      &lt;br /&gt;
|-&lt;br /&gt;
|Bedeutung|| ADDR+WRITE     ||CMD ||CMD ||CMD ||CMD ||CMD ||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|-&lt;br /&gt;
|Inhalt   || 0x3E+W = 0x7C  ||0xCE||0x80||0xE0||0xF8||0x70||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Jedes einzelne Bit in Bytes 7-11 repräsentiert dabei ein Segment der LCD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Clipper LCD segments.png|800px | thumb | left | Segmente des NASA Clipper Depth LCD und Namen.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!  Byte  ||  LCD Bit 7 || LCD Bit 6 || LCD Bit 5 || LCD Bit 4 || LCD Bit 3 || LCD Bit 2 || LCD Bit 1 || LCD Bit 0   &lt;br /&gt;
|- &lt;br /&gt;
|  6      || 2d         || 2c        || 2e        || 2g        || 2f        || 2b        || 2a        || DEPTH   &lt;br /&gt;
|-         &lt;br /&gt;
|  7      || 3a         || SHALLOW   || 3f        || 3b        || 3e        || 3g        || 3d        || 3c   &lt;br /&gt;
|-&lt;br /&gt;
|  8      || N.A.       || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || FEET   &lt;br /&gt;
|-&lt;br /&gt;
|  9      || DEZ. Punkt || METRES    || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.&lt;br /&gt;
|- &lt;br /&gt;
| 10      || N.A.       || PFEIL L   || 1a        || DEEP      || 1f        || 1b        || 1e        || 1g&lt;br /&gt;
|-   &lt;br /&gt;
| 11      || 1d         || 1c        || N.A.      || N.A.      || N.A.      || N.A.      || BLOCK     || Pfeil R&lt;br /&gt;
|-         &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2881</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2881"/>
		<updated>2014-08-19T12:15:21Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Aufschlüsselung der LCD Segmente&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über den I2C Bus direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!|  Pin    ||   Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1    ||   SCL&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SCA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | center |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11). Die Datenbytes 1-5 bleiben konstant, die auszuwertenden Nutzdaten sind in den Byte 7-11:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!  Byte  || 0              || 1 || 2   || 3  || 4  || 5  || 6  || 7  || 8  || 9  || 10 || 11      &lt;br /&gt;
|-&lt;br /&gt;
|Bedeutung|| ADDR+WRITE     ||CMD ||CMD ||CMD ||CMD ||CMD ||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|-&lt;br /&gt;
|Inhalt   || 0x3E+W = 0x7C  ||0xCE||0x80||0xE0||0xF8||0x70||DATA||DATA||DATA||DATA||DATA||DATA&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Jedes einzelne Bit in Bytes 7-11 repräsentiert dabei ein Segment der LCD:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:Clipper LCD segments.png|800px | thumb | left | Segmente des NASA Clipper Depth LCD und Namen.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
!  Byte  ||  LCD Bit 7 || LCD Bit 6 || LCD Bit 5 || LCD Bit 4 || LCD Bit 3 || LCD Bit 2 || LCD Bit 1 || LCD Bit 0   &lt;br /&gt;
|- &lt;br /&gt;
|  6      || 2d         || 2c        || 2e        || 2g        || 2f        || 2b        || 2a        || DEPTH   &lt;br /&gt;
|-         &lt;br /&gt;
|  7      || 3a         || SHALLOW   || 3f        || 3b        || 3e        || 3g        || 3d        || 3c   &lt;br /&gt;
|-&lt;br /&gt;
|  8      || N.A.       || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || FEET   &lt;br /&gt;
|-&lt;br /&gt;
|  9      || DEZ. Punkt || METRES    || N.A.      || N.A.      || N.A.      || N.A.      || N.A.      || N.A.&lt;br /&gt;
|- &lt;br /&gt;
| 10      || N.A.       || PFEIL L   || 1a        || DEEP      || 1f        || 1b        || 1e        || 1g&lt;br /&gt;
|-   &lt;br /&gt;
| 11      || 1d         || 1c        || N.A.      || N.A.      || N.A.      || N.A.      || BLOCK     || Pfeil R&lt;br /&gt;
|-         &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:Clipper_LCD_segments.png&amp;diff=2880</id>
		<title>Datei:Clipper LCD segments.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:Clipper_LCD_segments.png&amp;diff=2880"/>
		<updated>2014-08-19T12:10:34Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Naming of the NASA Clipper Depth LCD Segments.


own work Peter Holtermann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Naming of the NASA Clipper Depth LCD Segments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
own work Peter Holtermann&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2879</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2879"/>
		<updated>2014-08-19T10:30:20Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Bildunterschriften DIN Stecker&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über den I2C Bus direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right| Detailaufnahme der Kabelausgänge für den Batterieanschluss (oben) und des 5-poligen DIN-Steckers (unten)]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right| Pin Nummerierung des 5-poligen DIN-Steckers]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!|  Pin    ||   Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1    ||   SCL&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SCA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | center |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11).&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2878</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2878"/>
		<updated>2014-08-19T10:22:57Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Anfang Beschreibung I2C Datenformat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über den I2C Bus direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!|  Pin    ||   Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1    ||   SCL&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SCA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;br /&gt;
&lt;br /&gt;
== Datenformat ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper I2C example byte num.png| 800px | thumb | center |  I2C Daten (Byte Nummern, SCL, SDA) eines NASA Marine Depth Datensatzes aufgenommen mit einem Logik Analysator.]]&lt;br /&gt;
&lt;br /&gt;
Jeder I2C Datensatz besteht aus 7 Adressbits, einem write bit (Byte 0) und 10 Datenbytes (Bytes 1-11).&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_I2C_example_byte_num.png&amp;diff=2877</id>
		<title>Datei:NASA Clipper I2C example byte num.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_I2C_example_byte_num.png&amp;diff=2877"/>
		<updated>2014-08-19T10:14:51Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Logic Data Analyser Data of a NASA Clipper Depth I2C Sentence.


Own work Peter Holtermann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Logic Data Analyser Data of a NASA Clipper Depth I2C Sentence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Own work Peter Holtermann&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_I2C_example_byte_num.svg&amp;diff=2876</id>
		<title>Datei:NASA Clipper I2C example byte num.svg</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_I2C_example_byte_num.svg&amp;diff=2876"/>
		<updated>2014-08-19T10:08:54Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Logic Analyser data of a NASA Clipper Depth I2C sentence.


own work of Peter Holtermann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Logic Analyser data of a NASA Clipper Depth I2C sentence.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
own work of Peter Holtermann&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2875</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2875"/>
		<updated>2014-08-18T21:25:30Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png | Frontansicht&lt;br /&gt;
Datei:NASA Clipper Depth BACK.png | Rückansicht&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über den I2C Bus direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!|  Pin    ||   Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1    ||   SCL&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SCA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2874</id>
		<title>De:NASA Clipper Range</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=De:NASA_Clipper_Range&amp;diff=2874"/>
		<updated>2014-08-18T21:23:25Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Erster Teil der NASA Clipper Depth Seite&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= NASA Clipper Depth =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;NASA Clipper Depth Echolot&amp;quot; widths=&amp;quot;300px&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Datei:NASA Clipper Depth Front.png &lt;br /&gt;
Datei:NASA Clipper Depth BACK.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Vergleich zu den meisten anderen Echoloten ist das Besondere des NASA Clipper Depth Echolots die Datenübertragung der Tiefendaten zu einem Tochterdisplay. Es wird dabei nicht ein standardisiertes Protokoll wie etwa NMEA-0183 oder ähnliches benutzt, sondern ein [[Wikipedia:de:I2c|I2C]] Bus, der über den I2C Bus direkt mit dem LCD-Treiber des Tochterdisplays kommuniziert. Diese Seite zeigt wie man die I2C-Daten dekodieren und in NMEA-0183 umwandeln kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Steckerbelegung ==&lt;br /&gt;
&lt;br /&gt;
[[Datei:NASA Clipper Depth connector.png|200px|thumb|right]]&lt;br /&gt;
[[Datei:NASA Clipper Depth connector pin numbers.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
Der Datenausgang ist ein ein 5-poliger [[Wikipedia:de:DIN-Stecker | DIN-Stecker]], siehe auch [[http://mhv.bplaced.de/test/dinstecker]]. Das Aussehen des Steckers sowie die Nummerierung der Pins sind rechts dargestellt. Die Pinbelegung ist dabei folgende:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!|  Pin    ||   Belegung   &lt;br /&gt;
|-&lt;br /&gt;
|   1    ||   SCL&lt;br /&gt;
|-&lt;br /&gt;
|   2   || GND&lt;br /&gt;
|-&lt;br /&gt;
|   3   || SDA&lt;br /&gt;
|-&lt;br /&gt;
|   4   || 12V&lt;br /&gt;
|-&lt;br /&gt;
|   5   || GND&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Datenübertragung ==&lt;br /&gt;
&lt;br /&gt;
Die Leitungen SCA, SCL sind in dem Tochterdisplay mit einen Komparator (LM393) verbunden. Dieser wandelt die, durch die Abschlusswiderstände abgeschwächten Signale, wieder in 5V Signale um. Die Daten des LM393 werden an einen Microcontroller (PIC16F84A) gegeben, der diese an den LCD-Treiber (PCF8566P) weitergibt. Als Endanwender sind dabei zwei Dinge zu beachten: &lt;br /&gt;
&lt;br /&gt;
* Wenn kein Tochterdisplay angeschlossen ist, sind die Ausgangsspannungen im Bereich 0-5V, es muss also kein Komparator benutzt werden. &lt;br /&gt;
* Das Echolot (der I2C Master) erwartet keinen Empfänger und sendet nach jedem Byte automatisch das ACK-Bit mit. Das Auslesen der Daten kann daher sowohl passiv als auch als ein normaler I2C slave stattfinden.&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_connector_pin_numbers.png&amp;diff=2873</id>
		<title>Datei:NASA Clipper Depth connector pin numbers.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_connector_pin_numbers.png&amp;diff=2873"/>
		<updated>2014-08-18T20:56:34Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Closeup of the DIN Connector of the NASA Clipper Depth with pin numbering.


Private photo Peter Holtermann.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Closeup of the DIN Connector of the NASA Clipper Depth with pin numbering.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Private photo Peter Holtermann.&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_connector.png&amp;diff=2872</id>
		<title>Datei:NASA Clipper Depth connector.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_connector.png&amp;diff=2872"/>
		<updated>2014-08-18T20:54:42Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Closeup of NASA Clipper Depth DIN Connector.

Private photo Peter Holtermann.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Closeup of NASA Clipper Depth DIN Connector.&lt;br /&gt;
&lt;br /&gt;
Private photo Peter Holtermann.&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_BACK.png&amp;diff=2871</id>
		<title>Datei:NASA Clipper Depth BACK.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_BACK.png&amp;diff=2871"/>
		<updated>2014-08-18T20:11:01Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: NASA Clipper Range Echosounder from the back. 

Private photo Peter Holtermann.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NASA Clipper Range Echosounder from the back. &lt;br /&gt;
&lt;br /&gt;
Private photo Peter Holtermann.&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=h:De:Bordnetz&amp;diff=2870</id>
		<title>h:De:Bordnetz</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=h:De:Bordnetz&amp;diff=2870"/>
		<updated>2014-08-18T20:03:54Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: Erweiterte Zusammenfassung NASA Clipper Range, inklusive Bild des Sounders&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;6&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#E3E3E3;&amp;quot; | [[de:Bordnetz|Deutsch]]&lt;br /&gt;
!style=&amp;quot;background:#E3E3E3;&amp;quot; | [[Shipnetwork|English]]&lt;br /&gt;
!style=&amp;quot;background:#E3E3E3; width:100%;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:de:Water_depth}}&lt;br /&gt;
&lt;br /&gt;
[[Datei:NMEA2000 Modified motor yacht.jpg|400px|right]]&lt;br /&gt;
Diese Seite beschreibt wie man Daten aus dem Bordnetz auf dem Laptop sammeln kann.&lt;br /&gt;
&lt;br /&gt;
Die dringenste Frage ist meistens: Wie verbinde ich meine bestehende Infrastruktur mit dem Laptop/Smartphone.&lt;br /&gt;
Die kurze Antwort ist: Jeder Hersteller verwendet unterschiedliche Stecker, kann aber meistens auch mit einem der standardisierten Protokolle umgehen.&lt;br /&gt;
Welche Geräte wie am besten zu verbinden sind wird je nach Hersteller in den folgenden Abschnitten erläutert.&lt;br /&gt;
Es wird erst auf die Computerschnittstellen eingegangen und dann auf die Schnittstellen des Bordnetzes, da diese unterschiedlich funktionieren.&lt;br /&gt;
&lt;br /&gt;
Eine Schnellanleitung findest Du unter [[De:NMEA-Logger anschliessen|NMEA-Logger anschliessen]].&lt;br /&gt;
&lt;br /&gt;
== Sicherheitshinweis ==&lt;br /&gt;
Die Hersteller von Navigationsgeräten achten auf hohe [http://de.wikipedia.org/wiki/Schutzart Wasserbeständigkeitsschutzklassen] (IP67), damit im Falle des Kenterns oder Wassereinbruchs die Elektronik keinen Schaden nimmt. &lt;br /&gt;
Schnittstellen am PC sollten so geschaffen sein, dass ein Kurzschluß am PC nicht zu einem Kurzschluß des gesamten Busses führt. &lt;br /&gt;
Geeignet sind Schnittstellen mit galvanischer Entkopplung (Optokoppler). Bei der Konstruktion eigener Schnittstellen sollte dies ebenfalls beachtet werden.&lt;br /&gt;
&lt;br /&gt;
== Laptop/Smartphone Schnittstellen ==&lt;br /&gt;
Je nach Computer gibt es hier unterschiedliche Schnittstellen. Einige davon sind Funkverbindungen.&lt;br /&gt;
&lt;br /&gt;
=== Serielle Schnittstelle ===&lt;br /&gt;
[[File:SerialPort_ATX.jpg|thumb|RS-232 Anschluss]]&lt;br /&gt;
Diese Schnittstelle ist unter dem Schnittstellennamen [http://de.wikipedia.org/wiki/RS-232 RS-232] oder COM Schnittstelle bekannt.&lt;br /&gt;
&lt;br /&gt;
==== Stecker ====&lt;br /&gt;
Der Stecker am Computer ist meistens ein männlicher 9-poliger Stecker, so dass ein weiblicher Stecker auf Kabelseite benötigt wird.&lt;br /&gt;
Aktuelle Computer besitzen meistens keinen Stecker mehr für diese Schnittstelle, da sie für heutige Anforderungen zu groß sind. Computer ca. aus dem Jahr 2008 und davor könnten diese Schnittstelle noch besitzen. Auch neuere Computer lassen sich leicht mit einer RS-232-Schnittstelle versehen,&lt;br /&gt;
hierfür gibt es billige und kompakte RS-232/USB Adapter.&lt;br /&gt;
&lt;br /&gt;
==== Übertragung ====&lt;br /&gt;
Die Daten werden byteweise über diese Schnittstelle übertragen, das heißt jedes Byte muss üblicherweise einzeln vom Prozessor verarbeitet werden, sobald es ankommt.&lt;br /&gt;
&lt;br /&gt;
=== USB (Universal Serial Bus) ===&lt;br /&gt;
[[Datei:USBConnectors.jpg|thumb|USB Stecker: Mirco, Mini, Typ A]]&lt;br /&gt;
&lt;br /&gt;
Diese Schnittstelle wurde als Nachfolger der seriellen Schnittstelle entwickelt und sollte den Platzbedarf reduzieren und die Übertragungsgeschwindigkeit erhöhen.&lt;br /&gt;
&lt;br /&gt;
==== Stecker ====&lt;br /&gt;
Die verbreitesten Stecker am Laptop sind Stecker vom Typ A. Smartphones haben heutzutage häufig den Mirco USB Stecker. Kleinere Geräte nutzen häufig den Mini USB Stecker, der sich zwischen diesen zwei Steckern einreiht.&lt;br /&gt;
&lt;br /&gt;
==== Übertragung ====&lt;br /&gt;
Die Übertragung der Daten von Sensoren erfolgt über eine Simulation der vorher beschreibenen seriellen Schnittstelle. Ein Hardwaretreiber des Geräts simuliert im Laptop einen COM Port über den die Übertragung läuft.&lt;br /&gt;
Smartphones haben hier das Problem, dass es für sie meistens keine Hardware Treiber für die extern angeschlossenen Sensoren gibt, so dass sie nicht in der Lage sind die Daten auszulesen.&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
[[File:Bluetooth.svg|50px|right]]&lt;br /&gt;
&lt;br /&gt;
Diese Schnittstelle ist eine drahtlose Funkverbindung, die in der Lage ist ebenfalls seriell Daten über kurze Strecken (ca. 10m) auszutauschen. Stecker gibt es daher keine, jedoch kann man meist am Bluetooth Logo auf der Verpackung oder dem Gerät erkennen, ob es diese Übertragung unterstützt wird. Die Schnittstelle bietet unterschiedliche Transfermodi an, die jedoch nicht von jedem Gerät unterstützt werden. Sie heißen Profile. Zum Einsatz kommt das meistens RFCOMM Profil, was wiederum eine serielle Übertragung von Daten ist. Ein IPOD unterstützt dieses Profil beispielsweise nicht, jedoch sind andere vollwertige Smartphones damit ausgestattet.&lt;br /&gt;
&lt;br /&gt;
=== Ethernet/IP/TCP/UDP ===&lt;br /&gt;
[[File:Ethernet switch Atlantis A02-F5P 5 ports backend detail.jpg|thumb|Ethernet-Anschluss]]&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:de:Ethernet|Ethernet]] ist inzwischen ein Synonym für &amp;quot;Netzwerkverbindung&amp;quot; geworden. Der Hauptanteil an Datenaustausch im Internet entfällt auf diese weit verbreitete Schnittstelle. Sie überträgt Daten paketorientiert, d.h. mehrere Bytes werden zu einem Block zusammengefasst und übertragen. Ethernet-Verbindungen sind bei Navigationsgeräten auf Sportbooten noch wenig verbreitet. AIS-Geräte gibt es auch mit Ethernet-Anschluss&lt;br /&gt;
&lt;br /&gt;
=== WLAN (Wireless Local Area Network ===&lt;br /&gt;
[[File:Wifi.png|50px|right]]&lt;br /&gt;
&lt;br /&gt;
Viele Smartphones und Computer unterstützen inzwischen das drahtlose Netzwerkprotokoll. Es basiert technisch auf Ethernet und ermöglicht auch hohe Bandbreiten bei paketorientierter Datenübertragung. Durch die Funkübertragung entfallen aufwändige Verkabelungen an Bord, und die Daten sind überall mit jedem Smartphone und Tablet zu empfangen. Deshalb werden zunehmend Sportboote mit WLAN ausgerüstet, insbesondere Charterflotten und hochpreisige Yachten.&lt;br /&gt;
&lt;br /&gt;
== Hersteller ==&lt;br /&gt;
Die Hersteller werben zwar mit Standardkonformität, setzen diese aber oft nur teilweise um. Es gibt viele herstellerspezifische Varianten beim Protokoll oder bei den Steckersystemen. Das hat vor allem wirtschaftliche Gründe: die Hersteller versuchen, Kunden an sich zu binden und ihren Umsatz zu steigern, indem sie ihre Produkte mit anderen Produkten unkompatibel machen. Ein technischer Grund ist für Alleingänge ist, dass Standardisierungen meist langwierig sind, Hersteller nicht immer auf eine Standardisierung warten mögen. Der Kunde ist der Leidtragende, da er teure Adapterkabel kaufen muss, um mit dem quasi einheitlichen Standard Geräte anderer Hersteller anzuschließen.&lt;br /&gt;
&lt;br /&gt;
=== Raymarine Protokolle ===&lt;br /&gt;
Raymarine Geräte wurden auf vielen europäischen Booten verbaut, auch weil große Serienherstelle wie Bavaria bis vor kurzem standardmässig auf diese Hersteller zurückgriffen.&lt;br /&gt;
&lt;br /&gt;
==== SeaTalk 1 ====&lt;br /&gt;
[[Wikipedia:de:Seatalk|SeaTalk]] ist ein von Raymarine entwickeltes serielles Protokoll, welches von Sensoren genutzt wird um Daten auszutauschen.&lt;br /&gt;
Da das Protokoll nicht offen ist, gibt zwei Optionen: Einen SeaTalk zu NMEA Konverter von Raymarine kaufen oder einen Konverter von einem Drittanbieter kaufen,&lt;br /&gt;
der das Protokoll dekodiert hat. Brookhouse und [http://www.gadgetpool.de GadgetPool] bieten hier unter entsprechende Interfaces.&lt;br /&gt;
&lt;br /&gt;
Mit diesen Gateways lassen sich NMEA-0183 Daten lesen und aufzeichen.&lt;br /&gt;
&lt;br /&gt;
; SeaTalk Verkabelung&lt;br /&gt;
[[Datei:SeaTalkConnectorOnInstrument.jpg|200px|thumb|right|Raymarine Instrument von hinten. Oben ist die Verkabelung mit Klemmen und einem SeaTalk Kabel zu sehen]]&lt;br /&gt;
[[Datei:SeaTalkCable.jpg|200px|thumb|right|SeaTalk Kabel. Maßstab in cm.]]&lt;br /&gt;
&lt;br /&gt;
Die SeaTalk Verkabelung erfolgt in Reihe von Gerät zu Gerät. Jedes Gerät hat mindestens zwei Anschlüsse. Am Ende vom Bus bleibt jeweils ein Anschluß frei, den man nutzen kann. Der Stecker hat drei Pins und ist immer weiblich.&lt;br /&gt;
Für jedes weitere Gerät braucht man ein zusätzliches 2-adriges abgeschirmtes SeaTalk Kabel. Wenn das Gerät nur Schraubklemmen besitzt, muss ein Kabelende abgeschnitten werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot; /&amp;gt;&lt;br /&gt;
==== SeaTalk NG ====&lt;br /&gt;
SeaTalk NG (Next Generation, früher: SeaTalk²) basiert auf [[Wikipedia:de:NMEA 2000|NMEA-2000]] bzw. [[Wikipedia:de:Controller Area Network|CAN]]. Das paketorientierte Protokoll ermöglicht eine Banbreite von 250 kbit/s. Die Daten werden als standardisierten NMEA-2000 / CAN Nachrichten verschickt. &lt;br /&gt;
Durch das ganze Schiff führt ein Backbone-Kabel, dessen Enden mit einem Terminator abgeschlossen sind. Die Geräte werden mit Stichleitungen über T-Stücke mit dem Backbone verbunden. &lt;br /&gt;
Eine Anbindung an den PC kann über einen Raymarine eigenen Konverter erfolgen. Alternativ kauft man sich ein Adapterkabel von &lt;br /&gt;
Raymarine, welches das Backbone Kabel auf Standard NMEA-2000 Verkabelung umrüstet und schließt dort einen NMEA-2000 zu USB oder Bluetooth oder WLAN oder ... an. Der Actisense NGT-1 bietet die notwendige Funktionalität.&lt;br /&gt;
Allerdings muss bedacht werden, dass man dann ein zweites NMEA-2000 zu SeaTalk NG Adapterkabel mit gegensätzlichem PinOut (männlich/weiblich) braucht ODER einen Standard NMEA-2000 Stecker-Terminator benötigt, um den Bus korrekt abzuschließen.&lt;br /&gt;
&lt;br /&gt;
; SeaTalk NG Steckersystem &lt;br /&gt;
[[Datei:NMEA2000 Modified motor yacht.jpg|thumb|Seatalk-NG]] &lt;br /&gt;
[[File:N2K-CABLING.jpg|thumb|Seatalk-NG]]&lt;br /&gt;
&lt;br /&gt;
Raymarine hat ein eigenes [http://www.raymarine.de/view/?id=400 farbkodiertes Steckersystem] für das Bussystem entwickelt. &lt;br /&gt;
Backbone Kabel, Terminatoren, Stecker und Buchsen sind blau markiert. &lt;br /&gt;
Stichleitungen, Stecker und Buchsen sind weiß markiert. &lt;br /&gt;
SeaTalk-1 auf SeaTalk-NG Konverter Kabel, Stecker und Buchsen sind gelb markiert. &lt;br /&gt;
SeaTalk-NG Spannungskabel sind rot markiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SeaTalk HS ====&lt;br /&gt;
SeaTalk HS (High Speed) ist ein [[Wikipedia:de:Ethernet|Ethernet]]-basiertes Protokoll. Es wird eingesetzt, wenn die Bandbreite des CAN Busses / SeaTalk NG nicht mehr ausreicht. Beispielsweise zum Verbinden zweier Raymarine Anzeigen.&lt;br /&gt;
Von diesem Protokoll ist bisher nur wenig bekannt, außer dass es auf Ethernet basiert. Es sind bisher keine Rückwärtsübersetzungen des Protkolls bekannt, die dokumentiert sind.&lt;br /&gt;
Wahrscheinlich ist jedoch, dass es ebenfalls ein IP basiertes Protokoll ist.&lt;br /&gt;
&lt;br /&gt;
=== Raymarine Geräte ===&lt;br /&gt;
&lt;br /&gt;
==== a- c- und e-Serie ====&lt;br /&gt;
[[de:Raymarine-ace|Alle Geräte können direkt einen Track auf eine interne MicroSD-Karte aufzeichnen.]]&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;archive.sfh&amp;quot; Datei kann anschliessend direkt hochgeladen werden. &amp;lt;br&amp;gt;Es sind keine weiteren Vorkehrungen erforderlich.&lt;br /&gt;
&lt;br /&gt;
==== A-Serie ====&lt;br /&gt;
&lt;br /&gt;
==== C-Serie (alt) ====&lt;br /&gt;
Ein häufig verbautes Gerät ist das C-70, welches heute nur in einer neueren Version eingebaut wird.&lt;br /&gt;
Die Installationsanleitung findet sich bei [http://www.raymarine.com/SubmittedFiles/Handbooks/c_series/87020-3.pdf Raymarine]. &lt;br /&gt;
Auf Seite 27 (PDF:33) finden sich die verfügbaren Stecker. Das als SeaTalk² beschriebene Protokoll wurde später in SeaTalk-NG umbenannt.&lt;br /&gt;
Das Gerät kann SeaTalk 1 und SeaTalk NG, welches damals noch SeaTalk² hieß.&lt;br /&gt;
Es bieten sich daher 3 Optionen zum Anschluß an den PC:&lt;br /&gt;
# über SeaTalk 1: am Ende des Busses einen SeaTalk-1 zu NMEA-0183 Konverter installieren&lt;br /&gt;
# in das bestehende SeaTalk²/NG Netz ein NMEA-2000 Konverter installieren. Hierbei muss auf die richtigen Stecker geachtet werden&lt;br /&gt;
# direkt am NMEA-0183 Daten Anschluss (meist schon belegt).&lt;br /&gt;
[[Datei:C702PCViaSeaTalk.png|600px|thumb|left|Beispiel für die Anbindung des PCs über SeaTalk]]&lt;br /&gt;
[[Datei:C702PCViaSeaTalkNG.png|600px|thumb|left|Beispiel für die Anbindung über SeaTalk-NG]]&lt;br /&gt;
[[Datei:RaymarineAutopilot.jpg|600px|thumb|left|Anschlüsse des Raymarine Autopiloten. SeaTalk geht rein und raus (rechts), NEMA-in und NMEA-out sind unbelegt.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ST60 Multidisplay ====&lt;br /&gt;
Das Raymarine ST60 Multidisplay aus der Serie der ST60-Anzeigegeräte hat einen direkten NMEA-0183 Ausgang. Die Seatalk-Protokolle werden auf NMEA-0183 übersetzt. Ausgegeben werden je nach angeschlossenen Gebern: DBT, HDG, HDM, MTW, VHW, MWV.&lt;br /&gt;
&lt;br /&gt;
Auch Raymarine-Radargeräte, -Plotter und -Autopiloten haben einen direkten NMEA-0183 Ausgang. &lt;br /&gt;
&lt;br /&gt;
==== E-Serie (alt) ====&lt;br /&gt;
&lt;br /&gt;
==== E-Serie (neu) ====&lt;br /&gt;
&lt;br /&gt;
==== G-Serie ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== E80 ====&lt;br /&gt;
&lt;br /&gt;
=== Furuno ===&lt;br /&gt;
&lt;br /&gt;
=== Lowrance ===&lt;br /&gt;
Lowrance hat eine Farbkodierung für Anschlusskabel. Das blaue Netz wurde 2005-2006 verkauft. Das rote Netz wurde ab 2006 verkauft. Mit einem Adapterkabel kann das ältere blaue auf das neuere rote Netz umgewandelt werden. &lt;br /&gt;
&lt;br /&gt;
=== Garmin ===&lt;br /&gt;
&lt;br /&gt;
==== NMEA-2000 ====&lt;br /&gt;
Garmin verwendet Standard NMEA-2000 Kabel und Stecker. Mit einem einfachen NMEA-2000-Konverter kann zum PC verbunden werden.&lt;br /&gt;
&lt;br /&gt;
=== NASA ===&lt;br /&gt;
&lt;br /&gt;
==== Clipper Range ====&lt;br /&gt;
[[Datei:NASA Clipper Depth Front.png|100px|thumb|right| NASA Clipper Range Echolot ]]&lt;br /&gt;
&lt;br /&gt;
Das Clipper Range Echolot ist zur Zeit eines der günstigsten Echolote auf dem Markt (ca. 160 € incl. Geber). Es hat einen Daten-Ausgang für den Clipper Range Repeater, die Datenübertragung erfolgt über einen [[Wikipedia:de:I2c|I2C]] Bus, wobei das Datenformat nicht weiter dokumentiert ist. Diese Rohdaten können nicht direkt mit einem Logger eingelesen werden und benötigen eine Umwandlung. &lt;br /&gt;
&lt;br /&gt;
Zur Detaillierten Beschreibung der Steckerbelegung und einem Reverse Engineering des Datenformates siehe [[De:NASA Clipper Range|NASA Clipper Range]], ein Arduino Projekt, das die Clipper Range Daten in NMEA-0183 umwandelt.&lt;br /&gt;
&lt;br /&gt;
== Standards ==&lt;br /&gt;
&lt;br /&gt;
=== NMEA-0183 ===&lt;br /&gt;
siehe [[Wikipedia:de:NMEA 0183|NMEA-0183]]&lt;br /&gt;
&lt;br /&gt;
=== NMEA-2000 ===&lt;br /&gt;
siehe [[Wikipedia:de:NMEA 2000|NMEA-2000]]&lt;br /&gt;
&lt;br /&gt;
== Bus Konverter ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! von || nach || Bi || Gerät kaufen || Hinweise || Preis || Bild&lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || USB || n&lt;br /&gt;
| [http://www.amazon.de/s/ref=nb_sb_ss_i_3_9?__mk_de_DE=%C3%85M%C3%85Z%C3%95%C3%91&amp;amp;url=search-alias%3Daps&amp;amp;field-keywords=usb%20rs232%20converter diverse]&lt;br /&gt;
| nicht galvanisch getrennt&lt;br /&gt;
| 10 €&lt;br /&gt;
| [[Datei:RS-232 to USB Serial Adapter.jpg|100px|center]]&lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || USB || n&lt;br /&gt;
| [http://www.svb.de/index.php?cl=details&amp;amp;anid=2401 SVB]&lt;br /&gt;
| Galvanisch getrennt (lt. Anbieter) &lt;br /&gt;
&lt;br /&gt;
| 25 €&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || USB || y&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=4570 Actisense USG-1]&lt;br /&gt;
| [http://www.actisense.com/products/nmea-0183/usg1/usg-1overview.html Datenblatt] &lt;br /&gt;
| 99 €&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-2000 || USB (NMEA-0183) || y&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=4569 Actisense NGW-1]&lt;br /&gt;
| [http://www.actisense.com/HTML/Products/Gateways/NMEA_2000_PC_Gateway_1/index.php Datenblatt]&lt;br /&gt;
| 179 €&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-2000 || USB (NMEA-2000) || y&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=9362 Actisense NGT-1]&lt;br /&gt;
| [http://www.actisense.com/products/nmea-2000/ngt1.html Datenblatt]&lt;br /&gt;
| 169 €&lt;br /&gt;
| [[Datei:Actisense NGT1 USB.jpg|100px|center]]&lt;br /&gt;
|-&lt;br /&gt;
| SeaTalk-1 || USB (NMEA-0183) || y&lt;br /&gt;
| [http://shop.gadgetpool.de/product_info.php/products_id/70/language/de GadgetPool]&lt;br /&gt;
| Galvanisch getrennt, ungeschirmt &amp;lt;br&amp;gt;(ohne Schirmung kaum verwendbar)&lt;br /&gt;
| 100 €&lt;br /&gt;
| [[Datei:GadgetPoolSeaTalkConverter.jpg|100px|center]]&lt;br /&gt;
|-&lt;br /&gt;
| SeaTalk || NMEA-0183 || &lt;br /&gt;
| [http://www.raymarine.com/ProductDetail.aspx?SITE=1&amp;amp;SECTION=2&amp;amp;PAGE=714&amp;amp;PRODUCT=2976 Raymarine] &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || WLAN || &lt;br /&gt;
| [http://www.digitalyacht.co.uk/product_info.php?products_id=11666 Digital Yacht] &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| ... ||  || &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| SeaTalk, USB, NMEA-0183 und Bluetooth || &lt;br /&gt;
| [http://brookhouseonline.com/ Brookhouse-Multiplexer] &lt;br /&gt;
| [http://brookhouseonline.com/diag_ceseries.htm Anschluss-Diagramme]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wer weiss Genaueres: Einige Billig-Wandler haben die Eigenschaft in eine Art Stromsparmodus zu gehen. &lt;br /&gt;
Hier einfach einen etwas besseren Wandler nehmen und das Problem ist meist beseitigt. &lt;br /&gt;
Einige Wandler aktivieren den Microsoft Ball Pointer Treiber und dann springt die Maus wild auf dem Bildschirm hin und her.&lt;br /&gt;
&lt;br /&gt;
== Adapter-Kabel ==&lt;br /&gt;
Actisense NGW-1 hat einen MicroC-Stecker für NMEA-2000 (Standard). &amp;lt;br&amp;gt;&lt;br /&gt;
Für den Anschluss von Seatalk-NG (Raymarine) oder Simnet (Simrad) brauche man ein Adapterkabel.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kabel || Preis&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=5933 NMEA-2000, MicroC ↔ Seatalk-1] || 17 € &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=5933 NMEA-2000, MicroC ↔ Seatalk-NG] || 27 € &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=2209 NMEA-2000, MicroC ↔ Simnet] || 35 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== einfache RS-232-to-USB-Wandler ==&lt;br /&gt;
Kann man einfache Wandler problemlos einsetzen?&lt;br /&gt;
&lt;br /&gt;
: '''Windows''': &amp;quot;Start&amp;quot; - &amp;quot;Systemsteuerung&amp;quot; - &amp;quot;System&amp;quot; - &amp;quot;Geräte-Manager&amp;quot; - Anschlüsse (COM/LPT öffnen - Rechts-Klick auf &amp;quot;USB Serial Port (COM3)&amp;quot; - &amp;quot;Eigenschaften&amp;quot; - &amp;quot;Anschlusseinstellungen&amp;quot; - Bits pro Sekunde von 9600 auf 4800 setzen - danach auf &amp;quot;Erweitert&amp;quot; klicken - hier Empfangen (Bytes) auf 4096 und Senden Bytes ebenfalls auf 4096 reduzieren und im selben Fenster unter Allgemeine Optionen &amp;quot;PlugPlay für Serielle Schnittstelle&amp;quot; und &amp;quot;Abbrechen der Kommunikation, wenn das Gerät ausgeschaltet wird&amp;quot; jeweils mit Häkchen versehen.&lt;br /&gt;
&lt;br /&gt;
== Optokoppler ==&lt;br /&gt;
Der [[de:Software_logger|OpenSeaMap-Software-Logger]] benutzt zur Absicherung beider Datenkanäle je einen Optokoppler.&lt;br /&gt;
&lt;br /&gt;
The Actisense USB to RS-485 (USG-1-485) Gateway developed out of the requirement to solve 3 fundamental problems with interfacing the industry RS-485 communications to a PC:&lt;br /&gt;
&lt;br /&gt;
=== Ground loops ===&lt;br /&gt;
When the PC and the RS-485 system have different ground potentials (or are totally different ground altogether), data can become corrupted and permanent damage can occur (to the PC and RS-485 device). The primary problem encountered when using a standard USB to serial converter (or a standard RS-232 port) is that the ground of the PC is then shared with the RS-485 system ground. PCs are often powered from a mains inverter, generator set or direct from mains supply when in dock, whereas the marine electronics are normally connected to the current battery set. This means that when you connect the two systems together, you are joining two different power systems. This can result in no visible problems at first, but more often it results in one of three consequences:&lt;br /&gt;
# Data corruption - the data becomes garbled as the electrical data signal now floats on a noisy ground current flowing between two systems.&lt;br /&gt;
# The PC crashes intermittently as ground currents flow across its sensitive electronic circuitry. This can cause permanent damage.&lt;br /&gt;
# In the case of large ground loop faults, some components can melt / catch fire / fuses blow or earth leakage devices trip.&lt;br /&gt;
&lt;br /&gt;
; Solution &lt;br /&gt;
: The USG-1-485 solves all these problems by providing a safe, opto-isolated barrier between the two systems. Because the signal travels across this barrier as light, the signals do not share the same ground, and safety is assured as no current can flow between the two power systems. In addition, a built-in power isolator completes the isolation.&lt;br /&gt;
&lt;br /&gt;
=== Different standards === &lt;br /&gt;
When you buy a standard USB to serial converter, they normally provide PC standard RS-232 port, whereas RS-485 uses a bi-directional signaling system. This means that a standard USB to serial converter is incompatible with RS-485 / IEC 61162-2 that use the RS-485 driver type. PC serial or “COM” ports use the RS-232 standard. This uses a ground and a receive pin to get data from a connected system. Data is sent as voltages referenced to ground on a single transmit line. This type of drive is known as “single-ended”. In contrast, NMEA-0183 systems use a “differential” system, where a “Positive” data line and a “Negative” data line move in opposition to each other. Many installations without isolated outputs have been seen where the negative data line on a differential drive system has been connected to the ground of the PC. If you’re lucky, this may work, but if not, you will either simply get no data, or at worst, damage your equipment.&lt;br /&gt;
&lt;br /&gt;
; Solution&lt;br /&gt;
: The USG-1-485 solves this by using ingenious circuitry unique to Actisense in both it’s “Listener” (receiver) circuit and its ISO-Drive “Talker” (transmitter) circuit. These circuits are compatible with both RS-232 and NMEA-0183.&lt;br /&gt;
&lt;br /&gt;
=== No serial port === &lt;br /&gt;
Most modern PCs do not come with serial ports any more as these are being replaced by the new standard of USB. Furthermore, RS-485 signals are not directly compatible with standard PC serial ports. Many laptop and desktop PCs do not come equipped with RS-232 type serial ports any more (which could be converter to an RS-485 type using a converter). &lt;br /&gt;
&lt;br /&gt;
; Solution&lt;br /&gt;
: The USG-1-485 solves this by creating an industry standard RS-485 port from any PC USB port. This port appears on the PC system as a regular “COM” port, and so can be used with all standard navigation and display software. This allows a connection to be up and running in minutes.&lt;br /&gt;
&lt;br /&gt;
== Yachtbauer und Werften ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Werft || Elektronik || Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Bavaria || bis 2011 Raymarine, seit 2011 Garmin || 2007: 275 Mio, 2009: 90 Mio Umsatz, 2006: 3500 Schiffe&lt;br /&gt;
|- &lt;br /&gt;
| Beneteau || Raymarine || &lt;br /&gt;
|-&lt;br /&gt;
| Jeanneau || bis 2012 Raymarine || &lt;br /&gt;
|-&lt;br /&gt;
| ELAN || Raymarine || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* [http://bymnews.com/news/newsDetails.php?id=101081 2012 Jeanneau wechselt zu Lowrance]&lt;br /&gt;
* [http://www.yacht.de/boote/neue_boote/bavaria-wechselt-zu-garmin/a10265.html 2011 Bavaria wechselt zu Garmin]&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_Front.png&amp;diff=2869</id>
		<title>Datei:NASA Clipper Depth Front.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=Datei:NASA_Clipper_Depth_Front.png&amp;diff=2869"/>
		<updated>2014-08-18T19:33:26Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: NASA Clipper Depth Echo Sounder


Private photo Peter Holtermann&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NASA Clipper Depth Echo Sounder&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Private photo Peter Holtermann&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.openseamap.org/index.php?title=h:De:Bordnetz&amp;diff=2852</id>
		<title>h:De:Bordnetz</title>
		<link rel="alternate" type="text/html" href="https://wiki.openseamap.org/index.php?title=h:De:Bordnetz&amp;diff=2852"/>
		<updated>2014-08-18T07:04:41Z</updated>

		<summary type="html">&lt;p&gt;Peter.holtermann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;6&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
!style=&amp;quot;background:#E3E3E3;&amp;quot; | [[de:Bordnetz|Deutsch]]&lt;br /&gt;
!style=&amp;quot;background:#E3E3E3;&amp;quot; | [[Shipnetwork|English]]&lt;br /&gt;
!style=&amp;quot;background:#E3E3E3; width:100%;&amp;quot; | &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Vorlage:de:Water_depth}}&lt;br /&gt;
&lt;br /&gt;
[[Datei:NMEA2000 Modified motor yacht.jpg|400px|right]]&lt;br /&gt;
Diese Seite beschreibt wie man Daten aus dem Bordnetz auf dem Laptop sammeln kann.&lt;br /&gt;
&lt;br /&gt;
Die dringenste Frage ist meistens: Wie verbinde ich meine bestehende Infrastruktur mit dem Laptop/Smartphone.&lt;br /&gt;
Die kurze Antwort ist: Jeder Hersteller verwendet unterschiedliche Stecker, kann aber meistens auch mit einem der standardisierten Protokolle umgehen.&lt;br /&gt;
Welche Geräte wie am besten zu verbinden sind wird je nach Hersteller in den folgenden Abschnitten erläutert.&lt;br /&gt;
Es wird erst auf die Computerschnittstellen eingegangen und dann auf die Schnittstellen des Bordnetzes, da diese unterschiedlich funktionieren.&lt;br /&gt;
&lt;br /&gt;
Eine Schnellanleitung findest Du unter [[De:NMEA-Logger anschliessen|NMEA-Logger anschliessen]].&lt;br /&gt;
&lt;br /&gt;
== Sicherheitshinweis ==&lt;br /&gt;
Die Hersteller von Navigationsgeräten achten auf hohe [http://de.wikipedia.org/wiki/Schutzart Wasserbeständigkeitsschutzklassen] (IP67), damit im Falle des Kenterns oder Wassereinbruchs die Elektronik keinen Schaden nimmt. &lt;br /&gt;
Schnittstellen am PC sollten so geschaffen sein, dass ein Kurzschluß am PC nicht zu einem Kurzschluß des gesamten Busses führt. &lt;br /&gt;
Geeignet sind Schnittstellen mit galvanischer Entkopplung (Optokoppler). Bei der Konstruktion eigener Schnittstellen sollte dies ebenfalls beachtet werden.&lt;br /&gt;
&lt;br /&gt;
== Laptop/Smartphone Schnittstellen ==&lt;br /&gt;
Je nach Computer gibt es hier unterschiedliche Schnittstellen. Einige davon sind Funkverbindungen.&lt;br /&gt;
&lt;br /&gt;
=== Serielle Schnittstelle ===&lt;br /&gt;
[[File:SerialPort_ATX.jpg|thumb|RS-232 Anschluss]]&lt;br /&gt;
Diese Schnittstelle ist unter dem Schnittstellennamen [http://de.wikipedia.org/wiki/RS-232 RS-232] oder COM Schnittstelle bekannt.&lt;br /&gt;
&lt;br /&gt;
==== Stecker ====&lt;br /&gt;
Der Stecker am Computer ist meistens ein männlicher 9-poliger Stecker, so dass ein weiblicher Stecker auf Kabelseite benötigt wird.&lt;br /&gt;
Aktuelle Computer besitzen meistens keinen Stecker mehr für diese Schnittstelle, da sie für heutige Anforderungen zu groß sind. Computer ca. aus dem Jahr 2008 und davor könnten diese Schnittstelle noch besitzen. Auch neuere Computer lassen sich leicht mit einer RS-232-Schnittstelle versehen,&lt;br /&gt;
hierfür gibt es billige und kompakte RS-232/USB Adapter.&lt;br /&gt;
&lt;br /&gt;
==== Übertragung ====&lt;br /&gt;
Die Daten werden byteweise über diese Schnittstelle übertragen, das heißt jedes Byte muss üblicherweise einzeln vom Prozessor verarbeitet werden, sobald es ankommt.&lt;br /&gt;
&lt;br /&gt;
=== USB (Universal Serial Bus) ===&lt;br /&gt;
[[Datei:USBConnectors.jpg|thumb|USB Stecker: Mirco, Mini, Typ A]]&lt;br /&gt;
&lt;br /&gt;
Diese Schnittstelle wurde als Nachfolger der seriellen Schnittstelle entwickelt und sollte den Platzbedarf reduzieren und die Übertragungsgeschwindigkeit erhöhen.&lt;br /&gt;
&lt;br /&gt;
==== Stecker ====&lt;br /&gt;
Die verbreitesten Stecker am Laptop sind Stecker vom Typ A. Smartphones haben heutzutage häufig den Mirco USB Stecker. Kleinere Geräte nutzen häufig den Mini USB Stecker, der sich zwischen diesen zwei Steckern einreiht.&lt;br /&gt;
&lt;br /&gt;
==== Übertragung ====&lt;br /&gt;
Die Übertragung der Daten von Sensoren erfolgt über eine Simulation der vorher beschreibenen seriellen Schnittstelle. Ein Hardwaretreiber des Geräts simuliert im Laptop einen COM Port über den die Übertragung läuft.&lt;br /&gt;
Smartphones haben hier das Problem, dass es für sie meistens keine Hardware Treiber für die extern angeschlossenen Sensoren gibt, so dass sie nicht in der Lage sind die Daten auszulesen.&lt;br /&gt;
&lt;br /&gt;
=== Bluetooth ===&lt;br /&gt;
[[File:Bluetooth.svg|50px|right]]&lt;br /&gt;
&lt;br /&gt;
Diese Schnittstelle ist eine drahtlose Funkverbindung, die in der Lage ist ebenfalls seriell Daten über kurze Strecken (ca. 10m) auszutauschen. Stecker gibt es daher keine, jedoch kann man meist am Bluetooth Logo auf der Verpackung oder dem Gerät erkennen, ob es diese Übertragung unterstützt wird. Die Schnittstelle bietet unterschiedliche Transfermodi an, die jedoch nicht von jedem Gerät unterstützt werden. Sie heißen Profile. Zum Einsatz kommt das meistens RFCOMM Profil, was wiederum eine serielle Übertragung von Daten ist. Ein IPOD unterstützt dieses Profil beispielsweise nicht, jedoch sind andere vollwertige Smartphones damit ausgestattet.&lt;br /&gt;
&lt;br /&gt;
=== Ethernet/IP/TCP/UDP ===&lt;br /&gt;
[[File:Ethernet switch Atlantis A02-F5P 5 ports backend detail.jpg|thumb|Ethernet-Anschluss]]&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:de:Ethernet|Ethernet]] ist inzwischen ein Synonym für &amp;quot;Netzwerkverbindung&amp;quot; geworden. Der Hauptanteil an Datenaustausch im Internet entfällt auf diese weit verbreitete Schnittstelle. Sie überträgt Daten paketorientiert, d.h. mehrere Bytes werden zu einem Block zusammengefasst und übertragen. Ethernet-Verbindungen sind bei Navigationsgeräten auf Sportbooten noch wenig verbreitet. AIS-Geräte gibt es auch mit Ethernet-Anschluss&lt;br /&gt;
&lt;br /&gt;
=== WLAN (Wireless Local Area Network ===&lt;br /&gt;
[[File:Wifi.png|50px|right]]&lt;br /&gt;
&lt;br /&gt;
Viele Smartphones und Computer unterstützen inzwischen das drahtlose Netzwerkprotokoll. Es basiert technisch auf Ethernet und ermöglicht auch hohe Bandbreiten bei paketorientierter Datenübertragung. Durch die Funkübertragung entfallen aufwändige Verkabelungen an Bord, und die Daten sind überall mit jedem Smartphone und Tablet zu empfangen. Deshalb werden zunehmend Sportboote mit WLAN ausgerüstet, insbesondere Charterflotten und hochpreisige Yachten.&lt;br /&gt;
&lt;br /&gt;
== Hersteller ==&lt;br /&gt;
Die Hersteller werben zwar mit Standardkonformität, setzen diese aber oft nur teilweise um. Es gibt viele herstellerspezifische Varianten beim Protokoll oder bei den Steckersystemen. Das hat vor allem wirtschaftliche Gründe: die Hersteller versuchen, Kunden an sich zu binden und ihren Umsatz zu steigern, indem sie ihre Produkte mit anderen Produkten unkompatibel machen. Ein technischer Grund ist für Alleingänge ist, dass Standardisierungen meist langwierig sind, Hersteller nicht immer auf eine Standardisierung warten mögen. Der Kunde ist der Leidtragende, da er teure Adapterkabel kaufen muss, um mit dem quasi einheitlichen Standard Geräte anderer Hersteller anzuschließen.&lt;br /&gt;
&lt;br /&gt;
=== Raymarine Protokolle ===&lt;br /&gt;
Raymarine Geräte wurden auf vielen europäischen Booten verbaut, auch weil große Serienherstelle wie Bavaria bis vor kurzem standardmässig auf diese Hersteller zurückgriffen.&lt;br /&gt;
&lt;br /&gt;
==== SeaTalk 1 ====&lt;br /&gt;
[[Wikipedia:de:Seatalk|SeaTalk]] ist ein von Raymarine entwickeltes serielles Protokoll, welches von Sensoren genutzt wird um Daten auszutauschen.&lt;br /&gt;
Da das Protokoll nicht offen ist, gibt zwei Optionen: Einen SeaTalk zu NMEA Konverter von Raymarine kaufen oder einen Konverter von einem Drittanbieter kaufen,&lt;br /&gt;
der das Protokoll dekodiert hat. Brookhouse und [http://www.gadgetpool.de GadgetPool] bieten hier unter entsprechende Interfaces.&lt;br /&gt;
&lt;br /&gt;
Mit diesen Gateways lassen sich NMEA-0183 Daten lesen und aufzeichen.&lt;br /&gt;
&lt;br /&gt;
; SeaTalk Verkabelung&lt;br /&gt;
[[Datei:SeaTalkConnectorOnInstrument.jpg|200px|thumb|right|Raymarine Instrument von hinten. Oben ist die Verkabelung mit Klemmen und einem SeaTalk Kabel zu sehen]]&lt;br /&gt;
[[Datei:SeaTalkCable.jpg|200px|thumb|right|SeaTalk Kabel. Maßstab in cm.]]&lt;br /&gt;
&lt;br /&gt;
Die SeaTalk Verkabelung erfolgt in Reihe von Gerät zu Gerät. Jedes Gerät hat mindestens zwei Anschlüsse. Am Ende vom Bus bleibt jeweils ein Anschluß frei, den man nutzen kann. Der Stecker hat drei Pins und ist immer weiblich.&lt;br /&gt;
Für jedes weitere Gerät braucht man ein zusätzliches 2-adriges abgeschirmtes SeaTalk Kabel. Wenn das Gerät nur Schraubklemmen besitzt, muss ein Kabelende abgeschnitten werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot; /&amp;gt;&lt;br /&gt;
==== SeaTalk NG ====&lt;br /&gt;
SeaTalk NG (Next Generation, früher: SeaTalk²) basiert auf [[Wikipedia:de:NMEA 2000|NMEA-2000]] bzw. [[Wikipedia:de:Controller Area Network|CAN]]. Das paketorientierte Protokoll ermöglicht eine Banbreite von 250 kbit/s. Die Daten werden als standardisierten NMEA-2000 / CAN Nachrichten verschickt. &lt;br /&gt;
Durch das ganze Schiff führt ein Backbone-Kabel, dessen Enden mit einem Terminator abgeschlossen sind. Die Geräte werden mit Stichleitungen über T-Stücke mit dem Backbone verbunden. &lt;br /&gt;
Eine Anbindung an den PC kann über einen Raymarine eigenen Konverter erfolgen. Alternativ kauft man sich ein Adapterkabel von &lt;br /&gt;
Raymarine, welches das Backbone Kabel auf Standard NMEA-2000 Verkabelung umrüstet und schließt dort einen NMEA-2000 zu USB oder Bluetooth oder WLAN oder ... an. Der Actisense NGT-1 bietet die notwendige Funktionalität.&lt;br /&gt;
Allerdings muss bedacht werden, dass man dann ein zweites NMEA-2000 zu SeaTalk NG Adapterkabel mit gegensätzlichem PinOut (männlich/weiblich) braucht ODER einen Standard NMEA-2000 Stecker-Terminator benötigt, um den Bus korrekt abzuschließen.&lt;br /&gt;
&lt;br /&gt;
; SeaTalk NG Steckersystem &lt;br /&gt;
[[Datei:NMEA2000 Modified motor yacht.jpg|thumb|Seatalk-NG]] &lt;br /&gt;
[[File:N2K-CABLING.jpg|thumb|Seatalk-NG]]&lt;br /&gt;
&lt;br /&gt;
Raymarine hat ein eigenes [http://www.raymarine.de/view/?id=400 farbkodiertes Steckersystem] für das Bussystem entwickelt. &lt;br /&gt;
Backbone Kabel, Terminatoren, Stecker und Buchsen sind blau markiert. &lt;br /&gt;
Stichleitungen, Stecker und Buchsen sind weiß markiert. &lt;br /&gt;
SeaTalk-1 auf SeaTalk-NG Konverter Kabel, Stecker und Buchsen sind gelb markiert. &lt;br /&gt;
SeaTalk-NG Spannungskabel sind rot markiert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== SeaTalk HS ====&lt;br /&gt;
SeaTalk HS (High Speed) ist ein [[Wikipedia:de:Ethernet|Ethernet]]-basiertes Protokoll. Es wird eingesetzt, wenn die Bandbreite des CAN Busses / SeaTalk NG nicht mehr ausreicht. Beispielsweise zum Verbinden zweier Raymarine Anzeigen.&lt;br /&gt;
Von diesem Protokoll ist bisher nur wenig bekannt, außer dass es auf Ethernet basiert. Es sind bisher keine Rückwärtsübersetzungen des Protkolls bekannt, die dokumentiert sind.&lt;br /&gt;
Wahrscheinlich ist jedoch, dass es ebenfalls ein IP basiertes Protokoll ist.&lt;br /&gt;
&lt;br /&gt;
=== Raymarine Geräte ===&lt;br /&gt;
&lt;br /&gt;
==== a- c- und e-Serie ====&lt;br /&gt;
[[de:Raymarine-ace|Alle Geräte können direkt einen Track auf eine interne MicroSD-Karte aufzeichnen.]]&lt;br /&gt;
&lt;br /&gt;
Die &amp;quot;archive.sfh&amp;quot; Datei kann anschliessend direkt hochgeladen werden. &amp;lt;br&amp;gt;Es sind keine weiteren Vorkehrungen erforderlich.&lt;br /&gt;
&lt;br /&gt;
==== A-Serie ====&lt;br /&gt;
&lt;br /&gt;
==== C-Serie (alt) ====&lt;br /&gt;
Ein häufig verbautes Gerät ist das C-70, welches heute nur in einer neueren Version eingebaut wird.&lt;br /&gt;
Die Installationsanleitung findet sich bei [http://www.raymarine.com/SubmittedFiles/Handbooks/c_series/87020-3.pdf Raymarine]. &lt;br /&gt;
Auf Seite 27 (PDF:33) finden sich die verfügbaren Stecker. Das als SeaTalk² beschriebene Protokoll wurde später in SeaTalk-NG umbenannt.&lt;br /&gt;
Das Gerät kann SeaTalk 1 und SeaTalk NG, welches damals noch SeaTalk² hieß.&lt;br /&gt;
Es bieten sich daher 3 Optionen zum Anschluß an den PC:&lt;br /&gt;
# über SeaTalk 1: am Ende des Busses einen SeaTalk-1 zu NMEA-0183 Konverter installieren&lt;br /&gt;
# in das bestehende SeaTalk²/NG Netz ein NMEA-2000 Konverter installieren. Hierbei muss auf die richtigen Stecker geachtet werden&lt;br /&gt;
# direkt am NMEA-0183 Daten Anschluss (meist schon belegt).&lt;br /&gt;
[[Datei:C702PCViaSeaTalk.png|600px|thumb|left|Beispiel für die Anbindung des PCs über SeaTalk]]&lt;br /&gt;
[[Datei:C702PCViaSeaTalkNG.png|600px|thumb|left|Beispiel für die Anbindung über SeaTalk-NG]]&lt;br /&gt;
[[Datei:RaymarineAutopilot.jpg|600px|thumb|left|Anschlüsse des Raymarine Autopiloten. SeaTalk geht rein und raus (rechts), NEMA-in und NMEA-out sind unbelegt.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== ST60 Multidisplay ====&lt;br /&gt;
Das Raymarine ST60 Multidisplay aus der Serie der ST60-Anzeigegeräte hat einen direkten NMEA-0183 Ausgang. Die Seatalk-Protokolle werden auf NMEA-0183 übersetzt. Ausgegeben werden je nach angeschlossenen Gebern: DBT, HDG, HDM, MTW, VHW, MWV.&lt;br /&gt;
&lt;br /&gt;
Auch Raymarine-Radargeräte, -Plotter und -Autopiloten haben einen direkten NMEA-0183 Ausgang. &lt;br /&gt;
&lt;br /&gt;
==== E-Serie (alt) ====&lt;br /&gt;
&lt;br /&gt;
==== E-Serie (neu) ====&lt;br /&gt;
&lt;br /&gt;
==== G-Serie ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== E80 ====&lt;br /&gt;
&lt;br /&gt;
=== Furuno ===&lt;br /&gt;
&lt;br /&gt;
=== Lowrance ===&lt;br /&gt;
Lowrance hat eine Farbkodierung für Anschlusskabel. Das blaue Netz wurde 2005-2006 verkauft. Das rote Netz wurde ab 2006 verkauft. Mit einem Adapterkabel kann das ältere blaue auf das neuere rote Netz umgewandelt werden. &lt;br /&gt;
&lt;br /&gt;
=== Garmin ===&lt;br /&gt;
&lt;br /&gt;
==== NMEA-2000 ====&lt;br /&gt;
Garmin verwendet Standard NMEA-2000 Kabel und Stecker. Mit einem einfachen NMEA-2000-Konverter kann zum PC verbunden werden.&lt;br /&gt;
&lt;br /&gt;
=== NASA ===&lt;br /&gt;
&lt;br /&gt;
==== Clipper Range ====&lt;br /&gt;
Das Clipper Range Echolot besitzt einen Ausgang für den Clipper Range Repeater. Die Daten sind I2C Daten, die nicht direkt ausgewertet werden können. Siehe [[De:NASA Clipper Range|NASA Clipper Range]] für eine Beschreibung der Daten und ein Arduino Projekt, dass die Clipper Range Daten in NMEA umwandelt.&lt;br /&gt;
&lt;br /&gt;
== Standards ==&lt;br /&gt;
&lt;br /&gt;
=== NMEA-0183 ===&lt;br /&gt;
siehe [[Wikipedia:de:NMEA 0183|NMEA-0183]]&lt;br /&gt;
&lt;br /&gt;
=== NMEA-2000 ===&lt;br /&gt;
siehe [[Wikipedia:de:NMEA 2000|NMEA-2000]]&lt;br /&gt;
&lt;br /&gt;
== Bus Konverter ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! von || nach || Bi || Gerät kaufen || Hinweise || Preis || Bild&lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || USB || n&lt;br /&gt;
| [http://www.amazon.de/s/ref=nb_sb_ss_i_3_9?__mk_de_DE=%C3%85M%C3%85Z%C3%95%C3%91&amp;amp;url=search-alias%3Daps&amp;amp;field-keywords=usb%20rs232%20converter diverse]&lt;br /&gt;
| nicht galvanisch getrennt&lt;br /&gt;
| 10 €&lt;br /&gt;
| [[Datei:RS-232 to USB Serial Adapter.jpg|100px|center]]&lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || USB || n&lt;br /&gt;
| [http://www.svb.de/index.php?cl=details&amp;amp;anid=2401 SVB]&lt;br /&gt;
| Galvanisch getrennt (lt. Anbieter) &lt;br /&gt;
&lt;br /&gt;
| 25 €&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || USB || y&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=4570 Actisense USG-1]&lt;br /&gt;
| [http://www.actisense.com/products/nmea-0183/usg1/usg-1overview.html Datenblatt] &lt;br /&gt;
| 99 €&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-2000 || USB (NMEA-0183) || y&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=4569 Actisense NGW-1]&lt;br /&gt;
| [http://www.actisense.com/HTML/Products/Gateways/NMEA_2000_PC_Gateway_1/index.php Datenblatt]&lt;br /&gt;
| 179 €&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-2000 || USB (NMEA-2000) || y&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=9362 Actisense NGT-1]&lt;br /&gt;
| [http://www.actisense.com/products/nmea-2000/ngt1.html Datenblatt]&lt;br /&gt;
| 169 €&lt;br /&gt;
| [[Datei:Actisense NGT1 USB.jpg|100px|center]]&lt;br /&gt;
|-&lt;br /&gt;
| SeaTalk-1 || USB (NMEA-0183) || y&lt;br /&gt;
| [http://shop.gadgetpool.de/product_info.php/products_id/70/language/de GadgetPool]&lt;br /&gt;
| Galvanisch getrennt, ungeschirmt &amp;lt;br&amp;gt;(ohne Schirmung kaum verwendbar)&lt;br /&gt;
| 100 €&lt;br /&gt;
| [[Datei:GadgetPoolSeaTalkConverter.jpg|100px|center]]&lt;br /&gt;
|-&lt;br /&gt;
| SeaTalk || NMEA-0183 || &lt;br /&gt;
| [http://www.raymarine.com/ProductDetail.aspx?SITE=1&amp;amp;SECTION=2&amp;amp;PAGE=714&amp;amp;PRODUCT=2976 Raymarine] &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| NMEA-0183 || WLAN || &lt;br /&gt;
| [http://www.digitalyacht.co.uk/product_info.php?products_id=11666 Digital Yacht] &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
|-&lt;br /&gt;
| ... ||  || &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|  &lt;br /&gt;
|- &lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| SeaTalk, USB, NMEA-0183 und Bluetooth || &lt;br /&gt;
| [http://brookhouseonline.com/ Brookhouse-Multiplexer] &lt;br /&gt;
| [http://brookhouseonline.com/diag_ceseries.htm Anschluss-Diagramme]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wer weiss Genaueres: Einige Billig-Wandler haben die Eigenschaft in eine Art Stromsparmodus zu gehen. &lt;br /&gt;
Hier einfach einen etwas besseren Wandler nehmen und das Problem ist meist beseitigt. &lt;br /&gt;
Einige Wandler aktivieren den Microsoft Ball Pointer Treiber und dann springt die Maus wild auf dem Bildschirm hin und her.&lt;br /&gt;
&lt;br /&gt;
== Adapter-Kabel ==&lt;br /&gt;
Actisense NGW-1 hat einen MicroC-Stecker für NMEA-2000 (Standard). &amp;lt;br&amp;gt;&lt;br /&gt;
Für den Anschluss von Seatalk-NG (Raymarine) oder Simnet (Simrad) brauche man ein Adapterkabel.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Kabel || Preis&lt;br /&gt;
|-&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=5933 NMEA-2000, MicroC ↔ Seatalk-1] || 17 € &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=5933 NMEA-2000, MicroC ↔ Seatalk-NG] || 27 € &lt;br /&gt;
|-&lt;br /&gt;
| [http://www.busse-yachtshop.de/shop/wbcdirect.php?pid=2209 NMEA-2000, MicroC ↔ Simnet] || 35 €&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== einfache RS-232-to-USB-Wandler ==&lt;br /&gt;
Kann man einfache Wandler problemlos einsetzen?&lt;br /&gt;
&lt;br /&gt;
: '''Windows''': &amp;quot;Start&amp;quot; - &amp;quot;Systemsteuerung&amp;quot; - &amp;quot;System&amp;quot; - &amp;quot;Geräte-Manager&amp;quot; - Anschlüsse (COM/LPT öffnen - Rechts-Klick auf &amp;quot;USB Serial Port (COM3)&amp;quot; - &amp;quot;Eigenschaften&amp;quot; - &amp;quot;Anschlusseinstellungen&amp;quot; - Bits pro Sekunde von 9600 auf 4800 setzen - danach auf &amp;quot;Erweitert&amp;quot; klicken - hier Empfangen (Bytes) auf 4096 und Senden Bytes ebenfalls auf 4096 reduzieren und im selben Fenster unter Allgemeine Optionen &amp;quot;PlugPlay für Serielle Schnittstelle&amp;quot; und &amp;quot;Abbrechen der Kommunikation, wenn das Gerät ausgeschaltet wird&amp;quot; jeweils mit Häkchen versehen.&lt;br /&gt;
&lt;br /&gt;
== Optokoppler ==&lt;br /&gt;
Der [[de:Software_logger|OpenSeaMap-Software-Logger]] benutzt zur Absicherung beider Datenkanäle je einen Optokoppler.&lt;br /&gt;
&lt;br /&gt;
The Actisense USB to RS-485 (USG-1-485) Gateway developed out of the requirement to solve 3 fundamental problems with interfacing the industry RS-485 communications to a PC:&lt;br /&gt;
&lt;br /&gt;
=== Ground loops ===&lt;br /&gt;
When the PC and the RS-485 system have different ground potentials (or are totally different ground altogether), data can become corrupted and permanent damage can occur (to the PC and RS-485 device). The primary problem encountered when using a standard USB to serial converter (or a standard RS-232 port) is that the ground of the PC is then shared with the RS-485 system ground. PCs are often powered from a mains inverter, generator set or direct from mains supply when in dock, whereas the marine electronics are normally connected to the current battery set. This means that when you connect the two systems together, you are joining two different power systems. This can result in no visible problems at first, but more often it results in one of three consequences:&lt;br /&gt;
# Data corruption - the data becomes garbled as the electrical data signal now floats on a noisy ground current flowing between two systems.&lt;br /&gt;
# The PC crashes intermittently as ground currents flow across its sensitive electronic circuitry. This can cause permanent damage.&lt;br /&gt;
# In the case of large ground loop faults, some components can melt / catch fire / fuses blow or earth leakage devices trip.&lt;br /&gt;
&lt;br /&gt;
; Solution &lt;br /&gt;
: The USG-1-485 solves all these problems by providing a safe, opto-isolated barrier between the two systems. Because the signal travels across this barrier as light, the signals do not share the same ground, and safety is assured as no current can flow between the two power systems. In addition, a built-in power isolator completes the isolation.&lt;br /&gt;
&lt;br /&gt;
=== Different standards === &lt;br /&gt;
When you buy a standard USB to serial converter, they normally provide PC standard RS-232 port, whereas RS-485 uses a bi-directional signaling system. This means that a standard USB to serial converter is incompatible with RS-485 / IEC 61162-2 that use the RS-485 driver type. PC serial or “COM” ports use the RS-232 standard. This uses a ground and a receive pin to get data from a connected system. Data is sent as voltages referenced to ground on a single transmit line. This type of drive is known as “single-ended”. In contrast, NMEA-0183 systems use a “differential” system, where a “Positive” data line and a “Negative” data line move in opposition to each other. Many installations without isolated outputs have been seen where the negative data line on a differential drive system has been connected to the ground of the PC. If you’re lucky, this may work, but if not, you will either simply get no data, or at worst, damage your equipment.&lt;br /&gt;
&lt;br /&gt;
; Solution&lt;br /&gt;
: The USG-1-485 solves this by using ingenious circuitry unique to Actisense in both it’s “Listener” (receiver) circuit and its ISO-Drive “Talker” (transmitter) circuit. These circuits are compatible with both RS-232 and NMEA-0183.&lt;br /&gt;
&lt;br /&gt;
=== No serial port === &lt;br /&gt;
Most modern PCs do not come with serial ports any more as these are being replaced by the new standard of USB. Furthermore, RS-485 signals are not directly compatible with standard PC serial ports. Many laptop and desktop PCs do not come equipped with RS-232 type serial ports any more (which could be converter to an RS-485 type using a converter). &lt;br /&gt;
&lt;br /&gt;
; Solution&lt;br /&gt;
: The USG-1-485 solves this by creating an industry standard RS-485 port from any PC USB port. This port appears on the PC system as a regular “COM” port, and so can be used with all standard navigation and display software. This allows a connection to be up and running in minutes.&lt;br /&gt;
&lt;br /&gt;
== Yachtbauer und Werften ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Werft || Elektronik || Bemerkungen&lt;br /&gt;
|-&lt;br /&gt;
| Bavaria || bis 2011 Raymarine, seit 2011 Garmin || 2007: 275 Mio, 2009: 90 Mio Umsatz, 2006: 3500 Schiffe&lt;br /&gt;
|- &lt;br /&gt;
| Beneteau || Raymarine || &lt;br /&gt;
|-&lt;br /&gt;
| Jeanneau || bis 2012 Raymarine || &lt;br /&gt;
|-&lt;br /&gt;
| ELAN || Raymarine || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* [http://bymnews.com/news/newsDetails.php?id=101081 2012 Jeanneau wechselt zu Lowrance]&lt;br /&gt;
* [http://www.yacht.de/boote/neue_boote/bavaria-wechselt-zu-garmin/a10265.html 2011 Bavaria wechselt zu Garmin]&lt;/div&gt;</summary>
		<author><name>Peter.holtermann</name></author>
		
	</entry>
</feed>