Autor Thema: Arduino und Firmata -- keine Netzwerkverbindung  (Gelesen 1496 mal)

Offline Joskafa

  • New Member
  • *
  • Beiträge: 5
Arduino und Firmata -- keine Netzwerkverbindung
« am: 31 März 2016, 20:13:36 »
Hallo zusammen,
ich hoffe ich schreibe dass hier an der richtigen Stelle im Forum :o . Der erste Versuch war wohl nicht richtig... :o Wenn nicht bitte ich um entschuldigung.  ::)

habe ein Problem mit der configurable Firmata. Ich kann den Arduino noch nicht einmal anpingen. Daher denke ich das dies erstmal das Grundproblem ist. Habe schon sehr viel im Forum gelesen. Einige haben auch das gleiche Problem gehabt. Leider konnte ich zu keiner erfolgreichen Lösung kommen.

ich habe das ganze mit verschiedenen Setups probiert (Uno/enc28j60, nano/ejc28j60, Uno/Ethernet Schield)(Alles Clone) -- keines funktioniert daher denke ich dass ich was grundsätzliches falsch mache.

ich benutze IDE1.6.8 und Firmata.h - Firmata library v2.6.2 - 2015-2-7
Ist das die richtige libary?

Meine Vorgehensweise war folgendermaßen:
- Standart Firmate Ordner gelöscht und durch ConfigurableFrimata ersetzt. ( Name Firmata beibehalten)
- ConfigurableFirmata Sketch geöffnet und unter neuem Namen gespeichert
- Ethernet Konfiguration gemacht
- Unveränderten Firmata Sketch geöffnet und übersetzt
- geänderten Sketch übersetzt und übertragen.

Muss ich vielleicht noch im Sketch was an PinMode anpassen?

Hier mal der Sketch wie ich ihn bei dem Setup Uno/Ethernet Schield verwendet habe:



/*
 * Firmata is a generic protocol for communicating with microcontrollers
 * from software on a host computer. It is intended to work with
 * any host computer software package.
 *
 * To download a host software package, please click on the following link
 * to open the download page in your default browser.
 *
 * http://firmata.org/wiki/Download
 */

/*
  Copyright (C) 2006-2008 Hans-Christoph Steiner.  All rights reserved.
  Copyright (C) 2010-2011 Paul Stoffregen.  All rights reserved.
  Copyright (C) 2009 Shigeru Kobayashi.  All rights reserved.
  Copyright (C) 2009-2013 Jeff Hoefs.  All rights reserved.
  Copyright (C) 2013 Norbert Truchsess. All rights reserved.
  Copyright (C) 2014 Nicolas Panel. All rights reserved.

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  See file LICENSE.txt for further informations on licensing terms.

  formatted using the GNU C formatting and indenting
*/


#include <Firmata.h>

/*
 * by default Firmata uses the Serial-port (over USB) of Arduino.
 * ConfigurableFirmata may also comunicate over ethernet using tcp/ip.
 * To configure this 'Network Firmata' to use the original WIZ5100-based
 * ethernet-shield or Arduino Ethernet uncomment the includes of 'SPI.h' and 'Ethernet.h':
 */

#include <SPI.h>
#include <Ethernet.h>

/*
 * To configure 'Network Firmata' to use an ENC28J60 based board include
 * 'UIPEthernet.h' (no SPI.h required). The UIPEthernet-library can be downloaded
 * from: https://github.com/ntruchsess/arduino_uip
 */

//#include <UIPEthernet.h>

/*
 * To execute Network Firmata on Yun uncomment Bridge.h and YunClient.h.
 * Do not include Ethernet.h or SPI.h in this case.
 * On Yun there's no need to configure local_ip and mac in the sketch
 * as this is configured on the linux-side of Yun.
 */

//#include <Bridge.h>
//#include <YunClient.h>

#if defined ethernet_h || defined UIPETHERNET_H || defined _YUN_CLIENT_H_
/*==============================================================================
 * Network configuration for Network Firmata
 *============================================================================*/
#define NETWORK_FIRMATA
//replace with ip of server you want to connect to, comment out if using 'remote_host'
#define remote_ip IPAddress(192,168,1,9)
//replace with hostname of server you want to connect to, comment out if using 'remote_ip'
//#define remote_host "server.local"
//replace with the port that your server is listening on
#define remote_port 3030
//replace with arduinos ip-address. Comment out if Ethernet-startup should use dhcp. Is ignored on Yun
#define local_ip IPAddress(192,168,1,6)
//replace with ethernet shield mac. It's mandatory every device is assigned a unique mac. Is ignored on Yun
const byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0x07, 0x02};
#endif

// To configure, save this file to your working directory so you can edit it
// then comment out the include and declaration for any features that you do
// not need below.

// Also note that the current compile size for an Arduino Uno with all of the
// following features enabled is about 22.4k. If you are using an older Arduino
// or other microcontroller with less memory you will not be able to include
// all of the following feature classes.

//#include <utility/DigitalInputFirmata.h>
//DigitalInputFirmata digitalInput;

#include <utility/DigitalOutputFirmata.h>
DigitalOutputFirmata digitalOutput;

//#include <utility/AnalogInputFirmata.h>
//AnalogInputFirmata analogInput;

//#include <utility/AnalogOutputFirmata.h>
//AnalogOutputFirmata analogOutput;

//#include <Servo.h> //wouldn't load from ServoFirmata.h in Arduino1.0.3
//#include <utility/ServoFirmata.h>
//ServoFirmata servo;

//#include <Wire.h> //wouldn't load from I2CFirmata.h in Arduino1.0.3
//#include <utility/I2CFirmata.h>
//I2CFirmata i2c;

//#include <utility/OneWireFirmata.h>
//OneWireFirmata oneWire;

//#include <utility/StepperFirmata.h>
//StepperFirmata stepper;

#include <utility/FirmataExt.h>
FirmataExt firmataExt;

//#include <utility/FirmataScheduler.h>
//FirmataScheduler scheduler;

//#include <utility/EncoderFirmata.h>
//EncoderFirmata encoder;


// dependencies. Do not comment out the following lines
#if defined AnalogOutputFirmata_h || defined ServoFirmata_h
#include <utility/AnalogWrite.h>
#endif

#if defined AnalogInputFirmata_h || defined I2CFirmata_h || defined EncoderFirmata_h
#include <utility/FirmataReporting.h>
FirmataReporting reporting;
#endif

// dependencies for Network Firmata. Do not comment out.
#ifdef NETWORK_FIRMATA
#if defined remote_ip && defined remote_host
#error "cannot define both remote_ip and remote_host at the same time!"
#endif
#include <utility/EthernetClientStream.h>
#ifdef _YUN_CLIENT_H_
YunClient client;
#else
EthernetClient client;
#endif
#if defined remote_ip && !defined remote_host
#ifdef local_ip
EthernetClientStream stream(client, local_ip, remote_ip, NULL, remote_port);
#else
EthernetClientStream stream(client, IPAddress(0, 0, 0, 0), remote_ip, NULL, remote_port);
#endif
#endif
#if !defined remote_ip && defined remote_host
#ifdef local_ip
EthernetClientStream stream(client, local_ip, IPAddress(0, 0, 0, 0), remote_host, remote_port);
#else
EthernetClientStream stream(client, IPAddress(0, 0, 0, 0), IPAddress(0, 0, 0, 0), remote_host, remote_port);
#endif
#endif
#endif

/*==============================================================================
 * FUNCTIONS
 *============================================================================*/

void systemResetCallback()
{
  // initialize a defalt state

  // pins with analog capability default to analog input
  // otherwise, pins default to digital output
  for (byte i = 0; i < TOTAL_PINS; i++) {
    if (IS_PIN_ANALOG(i)) {
#ifdef AnalogInputFirmata_h
      // turns off pullup, configures everything
      Firmata.setPinMode(i, ANALOG);
#endif
    } else if (IS_PIN_DIGITAL(i)) {
#ifdef DigitalOutputFirmata_h
      // sets the output to 0, configures portConfigInputs
      Firmata.setPinMode(i, OUTPUT);
#endif
    }
  }

#ifdef FirmataExt_h
  firmataExt.reset();
#endif
}

/*==============================================================================
 * SETUP()
 *============================================================================*/

void setup()
{
#ifdef NETWORK_FIRMATA
#ifdef _YUN_CLIENT_H_
  Bridge.begin();
#else
#ifdef local_ip
  Ethernet.begin((uint8_t *)mac, local_ip); //start ethernet
#else
  Ethernet.begin((uint8_t *)mac); //start ethernet using dhcp
#endif
#endif
  delay(1000);
#endif
  Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION, FIRMATA_MINOR_VERSION);

#if defined AnalogOutputFirmata_h || defined ServoFirmata_h
  /* analogWriteCallback is declared in AnalogWrite.h */
  Firmata.attach(ANALOG_MESSAGE, analogWriteCallback);
#endif

#ifdef FirmataExt_h
#ifdef DigitalInputFirmata_h
  firmataExt.addFeature(digitalInput);
#endif
#ifdef DigitalOutputFirmata_h
  firmataExt.addFeature(digitalOutput);
#endif
#ifdef AnalogInputFirmata_h
  firmataExt.addFeature(analogInput);
#endif
#ifdef AnalogOutputFirmata_h
  firmataExt.addFeature(analogOutput);
#endif
#ifdef ServoFirmata_h
  firmataExt.addFeature(servo);
#endif
#ifdef I2CFirmata_h
  firmataExt.addFeature(i2c);
#endif
#ifdef OneWireFirmata_h
  firmataExt.addFeature(oneWire);
#endif
#ifdef StepperFirmata_h
  firmataExt.addFeature(stepper);
#endif
#ifdef FirmataReporting_h
  firmataExt.addFeature(reporting);
#endif
#ifdef FirmataScheduler_h
  firmataExt.addFeature(scheduler);
#endif
#ifdef EncoderFirmata_h
  firmataExt.addFeature(encoder);
#endif
#endif
  /* systemResetCallback is declared here (in ConfigurableFirmata.ino) */
  Firmata.attach(SYSTEM_RESET, systemResetCallback);

  // Network Firmata communicates with Ethernet-shields over SPI. Therefor all
  // SPI-pins must be set to IGNORE. Otherwise Firmata would break SPI-communication.
  // add Pin 10 and configure pin 53 as output if using a MEGA with Ethernetshield.
  // No need to ignore pin 10 on MEGA with ENC28J60, as here pin 53 should be connected to SS:
#ifdef NETWORK_FIRMATA
  // ignore SPI and pin 4 that is SS for SD-Card on Ethernet-shield
  for (byte i = 0; i < TOTAL_PINS; i++) {
    if (IS_PIN_SPI(i)
        || 4 == i
        // || 10==i //explicitly ignore pin 10 on MEGA as 53 is hardware-SS but Ethernet-shield uses pin 10 for SS
       ) {
      Firmata.setPinMode(i, IGNORE);
    }
  }
  //  pinMode(PIN_TO_DIGITAL(53), OUTPUT); configure hardware-SS as output on MEGA
  pinMode(PIN_TO_DIGITAL(4), OUTPUT); // switch off SD-card bypassing Firmata
  digitalWrite(PIN_TO_DIGITAL(4), HIGH); // SS is active low;

  // start up Network Firmata:
  Firmata.begin(stream);
#else
  // start up the default Firmata using Serial interface:
  Firmata.begin(57600);
#endif
  systemResetCallback();  // reset to default config
}

/*==============================================================================
 * LOOP()
 *============================================================================*/
void loop()
{
#ifdef DigitalInputFirmata_h
  /* DIGITALREAD - as fast as possible, check for changes and output them to the
   * stream buffer using Firmata.write()  */
  digitalInput.report();
#endif

  /* STREAMREAD - processing incoming messagse as soon as possible, while still
   * checking digital inputs.  */
  while (Firmata.available()) {
    Firmata.processInput();
#ifdef FirmataScheduler_h
    if (!Firmata.isParsingMessage()) {
      goto runtasks;
    }
  }
  if (!Firmata.isParsingMessage()) {
runtasks: scheduler.runTasks();
#endif
  }

  /* SEND STREAM WRITE BUFFER - TO DO: make sure that the stream buffer doesn't go over
   * 60 bytes. use a timer to sending an event character every 4 ms to
   * trigger the buffer to dump. */

#ifdef FirmataReporting_h
  if (reporting.elapsed()) {
#ifdef AnalogInputFirmata_h
    /* ANALOGREAD - do all analogReads() at the configured sampling interval */
    analogInput.report();
#endif
#ifdef I2CFirmata_h
    // report i2c data for all device with read continuous mode enabled
    i2c.report();
#endif
#ifdef EncoderFirmata_h
    // report encoders positions if reporting enabled.
    encoder.report();
#endif
  }
#endif
#ifdef StepperFirmata_h
  stepper.update();
#endif
#if defined NETWORK_FIRMATA && !defined local_ip &&!defined _YUN_CLIENT_H_
  if (Ethernet.maintain())
  {
    stream.maintain(Ethernet.localIP());
  }
#endif
}

Habe heute auch mal versucht das Webserver Beispiel aus der Ethernet Libary anzupingen.  --> Ohne Erfolg. Ist das überhaupt anpingbar? Habe ich ein Grundsätzliches Netzwerk Problem?
Als einziges habe ich das das BackSoon Beispiel aus der Ethercard libary mit dem ENC28j60 ans laufen bekommen. Hier musste man cs auf Pin 8 schalten. Bei Firmata und enc muss ja Pin 10 benutzt werden.

Kann es sein dass mein Switch hier Probleme macht? Habe keinen Router. Alle Teilnehmer hängen direkt an einem Netgear FS205.

Vielleicht hat jemand auch diese Erfahrung gemacht und kann mir helfen...wäre super. Ich bin für absolut jede Hilfe dankbar.

Gruß
Jo

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #1 am: 31 März 2016, 20:39:05 »
Hallo Joskafa,

eigentlich sollten alle von dir aufgeführten Hardwarekombinationen zum Laufen zu bekommen sein. Am einfachsten geht es mit Standard-Adruino-Komponenten, also z.B. einem Uno mit W5100 Ethernet Shield. Da der ENC28J60-Chip ein bisschen weniger kann, muss der Treiber mehr machen und das braucht mehr Platz. Deshalb verwenden die meisten auch mit dem ENC28J60 ConfigurableFirmata. Das ist aber nicht die einzige Möglichkeit. Wenn man sich Standard-Firmata genauer ansieht, kann man auskommentieren, was man nicht braucht und dann passt es auch wieder in kleinere Chips.

Einen Fehler, den man z.B. machen kann, ist MOSI und MISO zu vertauschen. Auf den Ethernet-Modulen stehen manchmal nur Abkürzungen: SO=MI=MISO und SI=MO=MOSI.

Mit deinen Versionen von Arduino und Firmata sollte es funktionieren. Installiere Firmata über "Bibliothek einbinden" und ConfigurableFirmata, indem du den Download in eine eigenen Ordner im Verzeichnis Arduino/libraries legst. Dann kannst du auch schneller zwischen beiden Möglichkeiten wechseln. Das INO trifft über "#include ..." die Auswahl.

Pingen kann erst funktionieren, wenn das Ethernet-Modul vom Arduino konfiguriert wurde. Vergib eine feste lokale IP-Adresse an den Uno mit W5100-Shield und ping noch mal.

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline Joskafa

  • New Member
  • *
  • Beiträge: 5
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #2 am: 02 April 2016, 16:43:52 »
Hiho,
Danke für die Hilfe...
habe die configurable Firmata jetzt mit dem Ethernetshield ans laufen bekommen. Habe ein anderes Switch verwendet.
Allerdings läuft das ganze extrem instabil. Wenn ich z.b den Arduino resete oder das Netzwerkabel ziehe kann dieser sich nicht mehr verbinden. Ich muss die den Sketch neu auf den Arduino  spielen.
Im Normalfall sind ja die LEDs am Shield PWR LINK 100M FULLD und COLL an. Bei Traffic blinkt dann RX und TX. Manchmal kommt der Arduino nach Reset oder Spannung weg gar nicht mehr in diesen Zustand. Dann ist lediglich die PWR LED an und die LED bei AREF/GND blinkt in einem bestimmten Takt.
Das ist alles merkwürdig... ???
Das ganze muss doch stabil laufen oder?

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #3 am: 02 April 2016, 17:46:30 »
Hallo Joskafa,

Stabilität ist möglich und sollte der Normalfall sein. Verwendest du eine fliegende Verkablung, z.B. mit Flachbandkabel oder Breadboard-Verbindern? Wenn ja, dann schau dir mal das hier an.

Zitat
Ich muss die den Sketch neu auf den Arduino  spielen.
... ist aber weit von Normal entfernt und im Normalfall vergisst ein Arduino sein Programm nicht. Wie sieht es mit deiner Spannungsversorgung aus? Arduino und Ethernet-Modul brauchen zusammen knapp 0,5 A. Die erforderliche Spannung hängt vom Arduino und vom Ethernet-Modul ab und beim Arduino auch vom Eingangspin (RAW/VCC). Gerade wenn du Klone verwendest, solltest du noch mal prüfen, was die wirklich brauchen, wie du das verkabelt hast und ob dein Neztteil ausreicht.

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline Joskafa

  • New Member
  • *
  • Beiträge: 5
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #4 am: 02 April 2016, 18:36:08 »
Hallo Jens,
genau an dem Punkt mit der Versorgunsspannung war ich gerade angekommen. Der Arduino  wird über USB versorgt. gerade wenn ich den Nano mit dem enc28j60 verwende bricht die Spannung an 3V3 auf ca 2,1V ein. könnte mir vorstellen das ist zu wenig für den enc und auch den Arduino.
Werde jetzt mal ne externe Spannungsversorgung aufbauen.
Weist du ob man den Arduino einfach über den 5V Pin einspeisen kann?

gruß
Jo

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #5 am: 02 April 2016, 19:09:53 »
Hallo Jo,

wenn du ein stabilisiertes 5V-Netzteil hast und du einen 5V-Nano verwendest, kannst du die 5V an Vcc vom Nano anschließen.

Beim ENC28J60 musst du aber aufpassen: die Bus-Pins sind 5V tolerant, aber der Chip verträgt nur 3.3V und wenn kein Spannungsregler auf dem Modul ist, brauchst du einen eigenen externen 3.3V Spannungsregler. Selbst wenn du einen Arduino mit 3.3V-Ausgang hast, reicht das nicht. Wenn du das Modul schon ein Zeit mit 5V betrieben hast, würde ich mich nach einem neuen umsehen und dann nimm ein W5100 Modul.

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #6 am: 10 Februar 2017, 14:41:26 »
Hallo Zusammen,

ich verzweifele auch gerade an dieser "Paarung"

Ich habe einen nano 328P mit einem Aufsteck Ethernet shield.
Ich habe die configurable Firmata und das UIP Ethernetpaket genommen.

Geflashed bekomme ich den nano, doch ich bekomme es zum verrecken nicht zum laufen, dass ich über das Netzwerk auf den nano zugreifen kann.

Hat jemand eine Idee ?

Offline dieter114

  • Full Member
  • ***
  • Beiträge: 109
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #7 am: 10 Februar 2017, 21:55:30 »
Hallo R1F800

Möglicherweise ist das was ich dir hier für Dich schreibe total uninteressant, aber ich habe 3 Tage einen Fehler in einer
Arduino-Mega-Ethernetshield Kombination gesucht.
Erstmal das Netzteil: Ich verwende ein stabilisiertes 5V Netzteil 2A mit USB für`n Handy gebaut.
Damit ist auf der Mega Platine auch ungefähr 4,92 - 4,98 V vorhanden.
Dann die Ethernet-Shield Platine: Bei dem Teil musste ich eine MAC (Irgendeine !!!) und eine "feste" IP eingeben.
Soweit - so gut: In der Fritzbox nach einer freien IP gesucht und die MAC angeben die die Box schon beim erstmaligen Verbinden gefunden hatte.
Und genau das war der Fehler: Diese MAC gehörte zu meinem Android Fernseher.
Also wenn TV an, Arduino geht nicht, TV aus, Arduino geht (gelegentlich!).
Wie gesagt: 3 Tage! Dann eine wirklich freie IP und eine nicht vorhandene MAC eingeben und
das Teil läuft auf einmal stabil und ohne Probleme. :)

Fazit: Erst einmal das Hausnetz grünlich durchsuchen und dann programmieren.....

Gruß Wolfdieter
Raspb_Pi I +III, SUSV, OWFS/OWServer,DS2423,DS2401,DS18B20,Solar,Gas,Stromverbrauchswerte,HM Zisterne,CUL HM,CUL868,Sduino433,Sduino868,WH1080, ESPEasy DHT, HTTPMod WU-Upload

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #8 am: 11 Februar 2017, 16:17:35 »
Also IP habe ich korrekt vergeben und auch die MAC passt .... DAs habe ich am Anfang nachgesehen ... 

 ::)

Offline dieter114

  • Full Member
  • ***
  • Beiträge: 109
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #9 am: 11 Februar 2017, 17:48:21 »
Kommt denn überhaupt nichts wenn du im Browser
http://xxx.xxx.xxx.xxx/4444/K eingibst?
Wichtig ist das Passwort "4444" und der "/" an Ende

Gruß Wolfdieter
Raspb_Pi I +III, SUSV, OWFS/OWServer,DS2423,DS2401,DS18B20,Solar,Gas,Stromverbrauchswerte,HM Zisterne,CUL HM,CUL868,Sduino433,Sduino868,WH1080, ESPEasy DHT, HTTPMod WU-Upload

Offline matthias soll

  • Full Member
  • ***
  • Beiträge: 127
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #10 am: 12 Februar 2017, 19:22:01 »
Hallo zusammen, ich hatte auch ein halbes Jahr meinen arduino mega mit dem enc28j60 laufen. War NIE stabil musste ständig neu booten. Am besten immer den 5100 verwenden dann hat man keinen Stress.

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #11 am: 13 Februar 2017, 09:08:06 »
Kommt denn überhaupt nichts wenn du im Browser
http://xxx.xxx.xxx.xxx/4444/K eingibst?
Wichtig ist das Passwort "4444" und der "/" an Ende

Gruß Wolfdieter
was genau bringt das?
gibt es noch mehr undokumentiertes? bzw. kannst du einen link posten zu der Doku auf die Du dich beziehst?

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1285
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #12 am: 13 Februar 2017, 16:13:46 »
Hat jemand eine Idee ?
du schreibst leider nicht  welche Firmata Version du benutzt.
Tipp : Wie schon oft hier im Forum beschrieben, teste zuerst mit der V2.6 ,
alles was neuer ist lief bei mir nie.
Maintainer der Module: MPD, EDIPLUG, UbiquitiMP, UbiquitiOut, SIP

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #13 am: 13 Februar 2017, 16:25:55 »
du schreibst leider nicht  welche Firmata Version du benutzt.
Tipp : Wie schon oft hier im Forum beschrieben, teste zuerst mit der V2.6 ,
alles was neuer ist lief bei mir nie.

Das ist ein guter Hinweis.
Wie kann ich denn eine bestimmte Version definieren, die zum Compile herangezogen wird? Muss ich die im Einsatz befindlichen "Ordner" Löschen und dann Firmata 2.6 in die LIB kopieren ?

Offline fhem-challenge

  • Full Member
  • ***
  • Beiträge: 179
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #14 am: 14 Februar 2017, 14:45:23 »
Hallo zusammen, ich hatte auch ein halbes Jahr meinen arduino mega mit dem enc28j60 laufen. War NIE stabil musste ständig neu booten. Am besten immer den 5100 verwenden dann hat man keinen Stress.



Ich habe seit knapp 3 Jahren Conf.Firmata (V_2_06) mit einem Mega2560 und dem Ethershield (W5100) laufen. Nach anfänglichen Problemen im "Firmata Code" läuft es eben seit dieser Zeit OHNE Ausfälle. Ich habe zwei Arduinos & Firmata im Einsatz.

Einzige Probleme war die Hardware: Da war es insb. das 8-fach.RelaisModul. Das hatte bei durchschnittlich jedem 3-4- Schalten eines Relais den Mega 2560 aufgehängt. Hier musste ich explizit ein Metallgehäuse um das Relais Modul bauen und Abblockkondensatoren an den Leitungen UND auch Ferritringe. Danach lief alles tadellos.


Viele Grüße!

Andreas
« Letzte Änderung: 14 Februar 2017, 14:47:24 von fhem-challenge »

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #15 am: 17 Februar 2017, 19:33:50 »
Hallo R1F800,

die Firmata-Version, die beim Compiliern verwendet wird, findest du in der Arduino-IDE im Bibliotheksverwalter. Da besteht auch die Möglichkeit, die Version zu ändern. Anschließend sollte man den Firmata-Sketch aus den Beispielen mit dem eigenen vergleichen. Je nach ursprünglicher Firmata-Version können sich Details im Beispiel-Sketch verändert haben.

Bei Fimata müssen 2 Versionsnummern unterschieden werden: Die Programm/Firmware-Version und die Netzwerk-Protokoll-Version. Beide finden sich im Firmata-Source. Wie Wzut schon sagte, unterstützt die Standard-FHEM-Installation maximal die Programm/Firmware-Version 2.6. Der schon in anderen Threads erwähnte FHEM-Treiber-Update für Firmata erlaubt es, alle Firmata-Versionen zu nutzen, da bei dann bei Bedarf einfach die größte auf FHEM-Seite implementierte Protokoll-Version (also 2.6) verwendet wird, denn nur die ist für die Funktion relevant.

Von Norbert gibt es die offizielle Treiber-Version 0.61 für FHEM https://github.com/ntruchsess/perl-firmata und von mir die 0.63 https://github.com/jnsbyr/perl-firmata. Die Standard-FHEM-Installation enthält übrigens die Version 0.59 (siehe  FHEM/lib/Device/Firmata.pm).

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #16 am: 13 März 2017, 13:53:11 »
OK. ich werde das nun noch einmal mit der Firmata 2.6 Firmware probieren ...
Den Treiber inkludiere ich dann in FHEM, also kopiere das Din in das Zielverzeichnis??

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #17 am: 14 März 2017, 20:54:59 »
Hallo R1F800!

Vorschlag: Nicht mehrere Sachen gleichzeitig ändern. Wenn du mit Firmata 2.6 weiter machen kannst und willst, dann lass den Treiber erst einmal unverändert.

Den neuen Treiber brauchst du nur für Firmata ab 2.7. Dazu das Zip von Github herunterladen, deine Originale (Datei Firmata.pm und Unterverzeichnis FHEM/lib/Device/Firmata) sichern und den Zip-Inhalt von "lib/Device" in das Unterverzeichnis FHEM/lib/Device kopieren. Der Rest vom Zip wird nicht benötigt.

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #18 am: 15 März 2017, 18:47:51 »
Hallo R1F800!

Vorschlag: Nicht mehrere Sachen gleichzeitig ändern. Wenn du mit Firmata 2.6 weiter machen kannst und willst, dann lass den Treiber erst einmal unverändert.

Den neuen Treiber brauchst du nur für Firmata ab 2.7. Dazu das Zip von Github herunterladen, deine Originale (Datei Firmata.pm und Unterverzeichnis FHEM/lib/Device/Firmata) sichern und den Zip-Inhalt von "lib/Device" in das Unterverzeichnis FHEM/lib/Device kopieren. Der Rest vom Zip wird nicht benötigt.

Grüße,
Jens

Hallo Jens,

kannst Du vielleicht noch einen Link zu der FIRMATA 2.6 reinhängen?
Ich habe bisher die fertige configurable Firmata genommen .... dann die IP und MaC angepaßt und dann noch Funktionen die ich nicht brauchte eliminiert ...


Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #19 am: 15 März 2017, 20:59:53 »
Hallo R1F800,

das neuste Firmata gibt es auf GitHub: https://github.com/firmata/arduino

Die Standard-Version lässt sich aber am einfachsten über die Bibliotheksverwaltung der Arduino-IDE installieren und aktualisieren. Anschließend im Arduino-Menü Beispiele - Firmata - StandardFirmataEthernet(Plus) auswählen.

Zitat
Ich habe bisher die fertige configurable Firmata genommen .... dann die IP und MaC angepaßt und dann noch Funktionen die ich nicht brauchte eliminiert ...
Das geht auch bei Standard Firmata so, nur dass man da bei Bedarf selbst auskommentieren muss. Will man ein ENC28J40 Ethernet mit einem Nano oder MiniPro verwenden ist das auf jeden Fall nötig, bei einem W5100 Ethernet meist nicht.

Ob Standard Firmata überhaupt für dich als Alternative in Frage kommt, liegt an den Funktionen die du brauchst, denn Configurable Firmata kann einfach mehr. Willst du die aktuelle Version 2.9.2 von Configurable Firmata ausprobieren, musst du vorher den Firmata-Treiber von FHEM aktualisieren.

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #20 am: 16 März 2017, 08:37:00 »
OK.
Danke.

Also meine Anforderungen an das Ethernetshield auf dem der Arduino sitzt sind:

1Wire über irgendeinen PIN
GPIO out zum schalten von Relais
und ein SPI SDL/SCL für ein Display

Damit ich das was ich über den Wemos erledige an neuralgischen Punkten über verdrahtetes Netzwerk machen kann.

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #21 am: 19 März 2017, 11:51:10 »
Hallo R1F800,

wenn du 1Wire verwenden willst, führt an ConfigurableFirmata keine Weg vorbei. Also hast du zwei Möglichkeiten: ConfigurableFirmata 2.6X verwenden oder aktuelle ConfigurableFirmata nehmen und FHEM-Firmata-Treiber manuell updaten.

Mit dem W5100 Ethernet kannst du wie gesagt eine ganze Menge Speicher einsparen, falls es nicht passen sollte. Bei Bedarf einfach das Projekt auf W5100 umkonfigurieren und die Speicherangaben des Compilers vergleichen, dazu brauchst du noch keine Hardware.

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #22 am: 19 März 2017, 14:06:40 »
OK. Dann werde ich wohl oder über den GITHUB mir die Cofigurable Firmata 2.9.2 https://github.com/firmata/ConfigurableFirmata nehmen und den Treiber ebenfalls manuell auf dem FHEM anpassen : https://github.com/jnsbyr/perl-firmata

Das habe ich dann doch so richtig verstanden ?

Zum Vorgehen dann:

  • Sketch vom Config Firmata anpassen auf meine Bedürfnisse
  • flashen
  • PERL Firmata Treiber 0.6 (Firmata.pm) auf den FHEM Server nach "opt/FHEM/"  kopieren

und nun ?


Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #23 am: 19 März 2017, 18:38:10 »
Hallo R1F800,

ja das Vorgehen, passt. Beim FHEM-Treiber nicht nur Firmata.pm sondern das ganze Firmata-Verzeichnis aktualisieren.

Auf
Zitat
und nun ?
fällt mir nur der Verweis auf die Commandref und die Wiki ein:

https://wiki.fhem.de/wiki/Arduino_Firmata
https://wiki.fhem.de/wiki/Arduino_mit_OneWireFirmata

Du musst zuerst dafür sorgen, dass dein Arduino die Verbindung mit deinem FRM-Device aufbaut. Sobald das funktioniert, kannst du FRM_OUT und OWX dazu nehmen.

Ein Problem wird dein Wunsch für das SPI Display werden. Derzeit unterstützt Firmata kein SPI. Es ist zwar geplant, aber es steht noch kein Termin fest (siehe https://github.com/firmata/protocol/issues/26. Entsprechend gibt es auch keine Treiber-Untersützung auf der FHEM-Seite. Für ein Display benötigst du fast immer einen zusätzlichen Display-Treiber. Für das Wemos OLED Display gibt es aber sogar mehrere für Arduino. Am einfachsten wäre es daher, wenn du deinen Firmata-Sketch so aufbauen kannst, dass du die Display-Ausgaben selbst auf dem Arduino programmierst und mit Firmata "nur" die Daten zum Arduino überträgst. Ein solches Projekt wird aber wahrscheinlich nicht in einen Nano oder MiniPro passen und außerdem gibt es dafür auch keine fertigen Beispiele.

Das Wemos OLED Display kann aber auch per I2C angesteuert werden und das wird sowohl von Firmata als auch von FHEM unterstützt. Allerdings hast du dann immer noch keinen Display-Treiber und müsstest mit Hilfe des Display-Handbuchs die erforderlichen I2C-Befehlssequenzen in FHEM selbst programmieren, was allein von der Performance her eher suboptimal wäre.

Eine Chance das mit vertretbarem Aufwand umzusetzen hast du nur, wenn du ein I2C-Display verwendest, dass direkt mit Texten angesteuert werden kann, also fallen die Punktmatrix-Displays aus. Vielleicht findest du was passendes.

Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #24 am: 19 März 2017, 18:56:30 »
Soweit so gut ...

das Wiki habe ich schon gelesen. Ich versteh nur die Synthax nicht :
define LANDuino1 FRM ???

Wieso ist in dem Beispiel ein Port als USB angegeben ?
Der Arduino hängt doch auf dem Ethernetboard  :-[

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #25 am: 21 März 2017, 21:42:02 »
Hallo F1F800,

in der Wiki wird ein Überblick über den Gesamtzusammenhang gegeben, aber nicht auf alle Anwendungsvarianten eingegangen, das würde auch nur verwirren.

FRM unterstützt mehre Schnittstellen für die Anbindung von Firmata-Devices. Lies unbedingt die Commandref von FRM (und von jedem anderen Modul, für das du dich interessierst).  Im Abschnitt "define" werden die Verbindungsmöglichkeiten beschrieben, auch die Netzwerkverbindung. Hier ein praktisches Beispiel für einen Arduino mit LAN:

define Arduino FRM 3030 global
Grüße,
Jens
RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe

Offline jnewton957

  • Full Member
  • ***
  • Beiträge: 306
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #26 am: 25 März 2017, 19:35:17 »
Zum Thema mega und Ethernet shield w5100 kann ich noch beitragen, dass man zwischen shield netztwerkanschluss und mega ein Stück Papier klemmen muss. Das ist sehr schnell ein Kontakt eben genau da. Und dann bekommt mein keine ip Adresse und den mega somit nicht ins LAN.

Also Papier (oder was anderes extrem dünnes)  zwischen shield und mega klemmen.

Grüße
Jörg

Gesendet von meinem SM-T800 mit Tapatalk

FHEM5.8 auf Pi3
V 1.65 nanoCUL433 (IT)
nanoCUL JeeLink
V 1.66 nanoCUL868 (HM) (ESA2000WZ)
xELRO AB440, xDECT200, PCA301, xTFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo)

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #27 am: 02 April 2017, 17:10:30 »
Nun ich habe halt die ENC28J60  nano Ethernet shields V1.0 auf Grund Ihrer Bauform gekauft.
( von Deek-Robot )

das flashen etc. läuft, die LAN LED leuchtet, aber ich bekomme partout keine Connection auf das LAN Gerät ....

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #28 am: 11 April 2017, 10:32:48 »
So,
neu geflashed, die Spannungsversorgung statt 5V auf empfohlene 3V3  ... NIX  als wolle das LAN Shield einfach nciht funktionieren.
Das flashen funnktioniert jeweils einwandfrei. Kein Fehler kein gar nichts.

Der Zugriff jedoch auf das Shield ist jedoch nicht möglich.

Die PIN Zuordnungen habe ich mir auch noch einmal eingesehen ... klappt auch nicht ... Vielleicht sind die ENC28J60 tatsächlich unbrauchbar und ich muss zwingend auf den W5100 umschwenken ... ?

aber ich will ja nur einen LAN Schalter / Sensor (Digitial IO)bzw. 1 Wire ans Netzwerk hängen ....

Offline Wzut

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1285
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #29 am: 11 April 2017, 10:46:07 »
Vielleicht sind die ENC28J60 tatsächlich unbrauchbar und ich muss zwingend auf den W5100 umschwenken ... ?
Unbrauchbar sind sie nicht aber halt etwas hungrig nach Speicher.
Mit welcher Firmata Version bist du denn jetzt aktuell am Start ?
Wie ich hier im Forum schon mehrfach geschrieben habe läuft bei mir seit Jahren die alte 2.6 absolut zuverlässig mit dem W5100. Bei den ENC28J60 wird mit den Uno/Nanos verdammt eng mit dem Speicher, der Mega sollte da aber etwas pflegeleichter sein.
Wenn du nicht mal eine einfache Verbindung hin bekommst, blöde Frage : Hast du den auch im Arduino Sketch den UIP reingenommen (# entfernt) und den W5100 komplett auskommentiert ? 
Maintainer der Module: MPD, EDIPLUG, UbiquitiMP, UbiquitiOut, SIP

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #30 am: 11 April 2017, 20:56:55 »
 Hm .. ich glaube ... ich bekomme Stresspusteln ...

Ich glaube ich Stand auf der Leitung .... ich habe wohl die ganze Zeit die Zeilen mit dem # auskommentiert gelassen  .....  :-[ :-X

Ich werde mal versuchen einen funktionstüchtigen Sketch zu kompilieren wenn ich die ganze Kommentareblöcke entfernt habe (IF und ENDIF etc.)


oder hat jemand für mich ein Bespiel, das mit UIPEthernet und einem DigitalOutput bereits läuft und kann mir das mal uploaden ?
« Letzte Änderung: 11 April 2017, 20:58:56 von R1F800 »

Offline R1F800

  • New Member
  • *
  • Beiträge: 19
  • Es gibt keine Probleme - Nur Lösungen
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #31 am: 12 April 2017, 10:36:28 »
So, hier mal ein paar screenshots:


Also das ganze läuft, aber wenn ich die FRM_OUT definieren will ist nach dem ersten PIN OUT Schluss ???

ich will ja nur die 4 auf HIGH / LOW setzen ... mach meinem Verständnis ist das doch DIGITAL OUT  <> FRM_OUT

« Letzte Änderung: 12 April 2017, 14:59:21 von R1F800 »

Offline jensb

  • Developer
  • Full Member
  • ****
  • Beiträge: 296
Antw:Arduino und Firmata -- keine Netzwerkverbindung
« Antwort #32 am: 13 April 2017, 19:31:00 »
Hallo R1F800,

der Output in Firmata.jpg sieht merkwürdig aus (Ungültige Bibliothek ...). Da du aber flashen konntest, ist das zumindest kein Blocker.

Der Fehlerausgaben im Screenshot FRM_OUT.jpg könnten auf die FHEM IODev-Autozuordnung zurück zu führen sein. Setze bei jedem der FRM_OUT-Devices mal das Attribut IODev manuell auf den Device-Namen deines FRM-Devices (ggf. FHEM anschließend neu starten). Außerdem solltest du bei der Modul-Definition von FRM_IN und FRM_OUT nur die Pin-Nummern angeben (also z.B. 1 statt A1).

Grüße,
Jens

RPi 2.0 Raspbian 4.1 FHEM 5.8 + PiTFT
I2C: MMA845X - CUL/FS20 - RTL2882/SDR: Oregon, Alecto - Z-Wave - LAN/Firmata: BMP180, TSL2561, Heatronic 3, Stromzähler (ES-Fer), Gaszähler - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe
Gefällt mir Gefällt mir x 1 Liste anzeigen

 

decade-submarginal