JAAAAAAAAAAAAAAAA!!!!! Ich glaube ich habe das Problem mit dem TFT gefunden… bin erst heute wieder dazu gekommen etwas zu basteln…

Bin bei iTead zweimal in den Kommentaren zu den TFT zu Hinweisen betreffend eines falschen 100 Ohm Wiederstandes gestossen. Laut Schema müsste das aber ein 10 Ohm sein, da das Display 3.2 V will und der Arduino 3.3V bringt. Dafür hat das TFT ja extra einen Regler der die Logik und die 5V Spannung auf 3.3V regelt. Wenn ich den Wiederstand kurzzeitig Überbrücke ist das Display um WELTEN heller… das heisst, zumindest mal so hell wie ein Handy-Display. 😀

Hier noch die Links zu den richtigen Schemen zum 3.2 TFT von iTead (SchemaDoku)

Und hier noch ein paar Hinweise zur Thematik:
http://www.firewing.info/forum/viewtopic.php?t=58&p=285
http://forum.iteadstudio.com/viewtopic.php?f=26&t=705

Ich werde jetzt den 100 Ohm durch einen 10 Ohm oder ähnlich anpassen…dann sollte die Display-Helligkeit auch für mich passen 😀

Update: Funktioniert wie erhofft!

IMG_1546

Im Rahmen des Free2Review von boxtec.ch darf ich hier ein DigiX Board von Digistump testen. Vielen Dank an Boxtec für die tolle Möglichkeit.

Unboxing

Board in Anti-Statik-Sack…

IMG_1512
Beschriftung auf der Rückseite teilweise unvollständig, Fingerabdrücke

IMG_1502
2560 Mega Design

IMG_1513

Um die vielen zusätzlichen IOs herauszuführen sind neben den Arduino-Standard-Anschlüssen noch eine parallele Reihe von Anschlüssen angebracht. (Unten Doppelreihe).
Rechts befindet sich der Audio 3.5 Asnchluss, WLAN, Micro USB, Power-Jack (Von Oben nach unten).

Features

  • 99 IOs davon 12 PWM, 12 Analog Input, 2 Analog-Output
  • WLAN mit eigenem Prozessor (Low-Power)
  • Arduino DUE Kompatibel
  • Audio Buchse
  • RTC OnBoard
  • 4KB (32kbit) EEPROM über I2C
  • nRF24L01+ ready (Anschluss vorhanden, Modul muss gekauft werden…)
  • 3.3V, 3.4-5.5V (LiPo Ready), 5V, or 6-16V input (onboard buck regulator)
  • Micro SD
  • 96KB SRAM
  • 512KB Flash
  • 1A @ 3.3V and 1A @ 5V  (Wenn das Board mit mehr als 5V gespiesen wird)

und vieles mehr … http://digistump.com/wiki/digix/overview

Wichtiges für den Anfang

Treiber und Beispiele für die Arduino IDE (Mindestens 1.5): http://digistump.com/wiki/digix/tutorials/software

Das Digix Board hat im Gegensatz zum Arduino Due nur einen USB Anschluss. Dieser wird zum Programmieren, Serielle Ausgaben, und auch als USB Host verwendet. Der DUE hat zwei Anschlüsse, damit sich das Programmieren einfacher gestaltet. Daher gibt es je nach Anwendungsfall einiges zu beachten. Windows macht z.B. für jede USB Device ID an einem Port einen eigenen seriellen COM Port. Da das Divix Board nur ein USB für Programmieren und Host hat, gibt es sich je nach Bootloader-Status mit unterschiedlichen USB-DEV-ID aus. Das heisst, sobald das Board in den Programmier-Modus geht, stimmt der eingestellte Port in der Arduino IDE nicht mehr… 🙂 Dazu gibt es aber eine lange Erklärung inklusive einiger Lösungs-Vorschläge…Auf englisch und sehr umfangreich.http://digistump.com/wiki/digix/tutorials/programming

Das DigiX Board hat noch zusätzliche IOs herausgeführt. Im offiziellen Forum hat ein User mit einer PinMap begonnen. Scheint aber noch nicht ganz fertig zu sein. Ist im Wiki verlinkt. http://digistump.com/wiki/digix/tutorials/pinout

Was mich an dem Board am meisten gereizt hat und warum ich mich für diesen Review gemeldet habe

Das Board ist kompatibel mit den bekannten iTead Touch-TFTs. Und wenn diese aufgesattelt sind, sind noch weitere IOs frei zugänglich. Ausserdem hat das Board WLAN integriert. Alleine WLAN für diesen Preis ist Kauf-Argument. Da ich aktuell noch an einem CAN-Bus Projekt dran bin, hat mich der integrierte CAN-Bus natürlich auch gereizt.

RTC, SD, nRF24L01+ … spätestens da bin ich sowas von… 🙂 Und ich gebe es gerne zu; ich bin auch schon Fan des Mega 2560 von iTead mit Ethernet und RTC usw. onBoard. Da erhalte ich als Kunde fürs Geld doch schon einige coole Features die ich so nicht noch extra anschaffen muss.

Was ich speziell angeschaut habe …

CAN Bus

Als erstes hat mich der CAN Bus gereizt. Da das DigiX Board eigentlich dem Arduino DUE sehr nahe steht, habe ich zuerst nach Infos oder einer Library zum DUE gesucht. Im offiziellen Adruino Forum habe ich dann folgenden Thread gefunden: http://forum.arduino.cc/index.php?topic=131096.0

Hier wird aktiv an einer Library (Auch von den offiziellen Arduino Entwicklern) gearbeitet. Soweit ich das aber richtig verstehe, braucht es trotzdem noch zusätzliche Hardware um mit dem Bus zu sprechen (Transmitter) Ich habe bereits einen lauffähigen Arduino UNO mit CAN Bus Shield und dieses funktioniert sehr gut und ist relativ günstig. Wenn ich also für den DUE oder das DigiX noch Zusatz-Hardware brauche… naja… dann sehe ich den direkten Nutzen noch nicht so… 🙁

WLAN

Wenn das Board das erste Mal eingesteckt wird, zeigt sich ein neues WLAN mit der SSID DIGIX. Dort bekommt man per DHCP eine Adresse und kann das Board über 10.10.100.254 über ein WebInterface konfigurieren. Alles zum Thema WiFi konfigurieren findet man hier. http://digistump.com/wiki/digix/tutorials/wifi Natürlich will man je nach Programm die WiFi Settings auch aus dem Arduino Sketch programmieren. Dazu können serielle AT Kommandos gesendet werden. Für die meisten Funktionen gibt es aber in der Digifi Library schon fertige Funktionen die hier beschrieben sind. http://digistump.com/wiki/digix/tutorials/wifi/library-functions

Ich habe 4 der Beispiels-Sketchs ausprobiert, nachdem ich das Board über das Webinterface mit meinem WLAN verbunden habe. Genial gelöst: Das Board kann gleichzeitig selbst Access-Point sein UND mit einem lokalen WLAN verbunden sein.

Arduino-Wifi-Success

Juhu … WLAN funktioniert auf Anhieb und der Ping zum Gateway hat auch geklappt. Frohen mutes ans zweite Beispiel, ein kleiner HTML WebServer. Soweit ich die Library verstehe, macht das WLAN Modul den TCP Server.

#include <DigiFi.h>
DigiFi wifi;

void setup()
{
  Serial.begin(9600); 
  wifi.begin(9600);

  //DigiX trick - since we are on serial over USB wait for character to be entered in serial terminal
  while(!Serial.available()){
    Serial.println("Enter any key to begin");
    delay(1000);
  }

  Serial.println("Starting");

  while (wifi.ready() != 1)
  {
    Serial.println("Error connecting to network");
    delay(15000);
  }  

  Serial.println("Connected to wifi!");
  Serial.print("Server running at: ");
  String address = wifi.server(8088);//sets up server and returns IP
  Serial.println(address); 

//  wifi.close();
}

void loop()
{

  if ( wifi.serverRequest()){
      Serial.print("Request for: ");
     Serial.println(wifi.serverRequestPath());
     if(wifi.serverRequestPath()!="/")
       wifi.serverResponse("404 Not Found",404); 
      else
       wifi.serverResponse("<html><body><h1>This is a test</h1></body></html>"); //defaults to 200
  }

  delay(10);  
}

Wie man hier am mitgelieferten Beispiel sieht wird als erstes im Setup Teil auf die serielle Arduino Konsole gewartet. Das hat mit dem Umschalten des USB Ports zu tun. (Siehe Hinweis oben)  Dann wird über das wifi Objekt ein neuer TCP Server auf Port 8088 gestartet. Nach dieser Initialisierung kann man über die Weboberfläche des WLANs (Welches auf Port 80 sitzt…) sehen, dass der Controller einen TCP Server auf 8088 offen hat. Ich denke, dass hier die Digifi Library über die seriellen AT Kommandos alles schön konfiguriert und uns dadurch viel Arbeit abnimmt 🙂

Natürlich hat das Beispiel dann bei mir NICHT funktioniert. Auch nmap hat keinen offenen Port auf der Adresse gefunden. Ein Neustart des Boards hat da aber geholfen. Nach dem es sich frisch mit dem WLAN verbunden hat, klappte es auch mit dem TCP Server. Auch beim Client Beispiel hat es erst nach einem Neustart richtig funktioniert. Danach klappt es aber richtig schnell und sehr sehr einfach.

Ein weiteres cooles Beispiel ist „SetRTCbyNTP“. Es wird über eine Client UDP Verbindung die Zeit eines Internet-Zeitservers geholt und die interne RTC damit abgeglichen. Danach gibt das Board seine Zeit über den seriellen Port aus. Das Beispiel zeigt relativ einfach wie mit der RTC umzugehen ist.

nRF24L01+

Konnte ich noch nicht testen…

TFT + Touch

Wenn man(n) schon so viele IOs hat, wollte ich gleich noch das iTead 3.2 “ TFT mit integriertem Touch testen.

im120417021_1

Die beliebte Library von Henning Karlsen (uTFT und uTouch) sind im Download des DigiX Pakets bereit enthalten. TFT aufstecken und einen der Beispiel-Sketches ausführen, funktioniert auf Anhieb. Naja, ausser bei mir… aber das war mein Fehler. Das Display muss wirklich eine SEHR gute Verbindung zum Board haben, damit alles funktioniert. Dann klappts auch mit Bild. 🙂 Einzig die Display Helligkeit finde ich sehr schwach. Aber vielleicht finde ich hier noch was dazu.

Update: Hier ist die Lösung…

Fazit

Das Board ist sehr schnell. Das Laden eines neuen Sketch, booten usw. Und WLAN zu diesem Preis ist einfach unschlagbar. Funktioniert einwandfrei und auf Anhieb. Ich denke das DigiX wäre mich der logische Nachfolger zum iTead iBoard Pro. Dazu die vielen IOs, der präzisere ADC und 2x DAC … die Möglichkeiten mit dem Board sind meiner Meinung nach sehr gross. Für den ambitionierten Arduino Bastler ein tolles Produkt.