Author Topic: TinyI2C_LCD  (Read 67152 times)

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
TinyI2C_LCD
« on: June 25, 2013, 07:14:11 PM »
Da möchte ich doch auch mitmachen und meinen Versuch ein I2C LCD Backpack auf Basis des ATtiny84 zu erstellen zeigen.

Funktioniert soweit alles wie gewünscht, nur hab ich noch das Problem mit meiner Library, dass alle paar dutzend Zeichen einfach eins verloren geht.
Wer Interesse hat an der Library mitzuhelfen, dem stelle ich gerne ein Kit zur Verfügung.

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #1 on: June 27, 2013, 02:35:02 PM »
Ich wäre interessiert, daran mitzuarbeiten. Wäre mein erstes ATtiny-Projekt, aber daran soll's nicht scheitern.

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #2 on: June 29, 2013, 02:53:41 PM »
Super, danke für das Interesse.
Ein Kit mit allen benötigten Bauteilen + PCB sowie ein 1602 Display geht am Montag (könnte eng werden) oder spätestens Dienstag auf die Post.

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #3 on: June 30, 2013, 12:50:24 AM »
Salut,

ich hätte auch Lust, das Problem anzugehen. LCD ist vorhanden, so dass ich nur das PCB und die Bauteile bräuchte.

Ciao, Mathias

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #4 on: July 01, 2013, 11:32:03 PM »
Es hat heute leider nicht auf die Post gerreicht, aber die beiden Kits (eines mit, eines ohne Display) liegen verpackt bereit und gehen morgen raus.
@Mathias: Nur zur Info, Deines ist als Geschenk mit einstelligem Wert deklariert, geht also hoffentlich gaaanz flink durch den Zoll...

Ich werde in der Zwischenzeit noch den bisherigen Code aufräumen und eine kleine Beschreibung zum Board machen obwohl es eigentlich soweit selbsterklärend sein sollte.


boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #5 on: July 03, 2013, 05:36:49 PM »
Hier wie versprochen der bisherige etwas chaotische Testcode:

tinyLCD_I2C.ino - die Firmware für den ATtiny84
tinyLCD_I2C.tgz - Library für Arduino (mehr oder weniger aufbauend auf einer Kopie von der LCDi2c Library)

Nur wenige Funktionen sind bisher ausimplementiert (scrollen etc.) wobei dies mehrheitlich darauf rausläuft einen 1byte Code zu vereinbaren der als Steuersequenz geschickt wird und auf ATtiny Seite wiederum in den entsprechenden Funktionsaufruf für die dort verwendete Standard LCD Lib übersetzt zu werden (zurzeit Funktion commandByte mit switch-case).

Die Idee ist, dass die Library durch Ersetzen der Initialisierungszeile ein drop-in replacement für die Standard LCD Lib ist.

Hier noch ein kurzer Test für einen Arduino I2C Master der das TinyI2C_LCD ansteuert:

Code: [Select]
#include <Wire.h>
#include <tinyLCD_I2C.h>

tinyLCD_I2C lcd(0x50,16,2);
float vdd;

void setup()
{
  lcd.init();                      // initialize the lcd
  //lcd.backlight();        // not implemented yet
  delay(1);
  lcd.print("HELLO - WORLD!");
  delay(1200);
  lcd.setCursor(0,1);
  lcd.print("B-O-X-T-E-C-1-3");
  delay(1200);
  lcd.showFirmware();
  delay(1500);
  lcd.clear();
  lcd.print("Uptime now (us):");
}

void loop() {
  lcd.setCursor(0,1);
  lcd.print(millis()/1);
  lcd.print(" us");
  delay(10);
}

Dies funktioniert soweit nun auch ganz gut, bis darauf, dass nach einigen Sekunden, teilweise auch Minuten einzelne Zeichen unterwegs verloren gehen, wobei ich bisher nicht rausgefunden habe ob der Buffer überöläuft und die Zeichen zu langsam abegholt werden oder das auf der Leitung passiert etc..

Zusammenbau:
  • Anbei noch ein Foto mit dem aufgebauten Kit, ich empfehle am Board female Headers und am Display male Headers anzubringen, dann kann das Backpack schön aufgesteckt werden
  • Gegenüber dem angefügten Schema fehlt auf Eurem Prototyp R3, dieser ist für die Steuerung der Hintergrundbeleuchtung vorgesehen und ist erst vor kurzem draufgekommen, zurzeit ist das Hintergrundlicht fix an.
  • Ansonsten denke ich sollte der Zusammenbau recht trivial sein mithilfe der Beschriftung, nur als Hinweis dies: Alle Komponenten auf die bedruckte Seite (Silkscreen) ausser den Header (m oder f) der kommt auf die Rückseite



Ich prüfe zurzeit ein öffentliches Source Code Repository aufschalten. Ist Git da für alle ok ?

« Last Edit: July 03, 2013, 05:42:05 PM by boxtec-support »

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #6 on: July 03, 2013, 09:09:43 PM »
Erstmal vielen Dank, das Kit war heute in der Post.

Git ist für mich ideal.

Beim ersten Überfliegen des Codes ist mir aufgefallen, dass Du die Commands im Vergleich zum LiquidCrystal_I2C umdefiniert hast. Bei der jetzigen Definition kriegst Du aber Probleme, da es Überschneidungen gibt. Der Command muss in den oberen 4 Bits definiert sein, die unteren 4 Bits sind für die Optionen reserviert. Kann ich das wieder zurückdefinieren?

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #7 on: July 03, 2013, 09:21:38 PM »
Danke für die Rückmeldung. Freut mich, dass das alles geklappt hat.

Bzgl. der Kommando Defintionen zurückdefinieren: Auf jeden Fall, ich wollte da schnelle Resultate und hab mal eben schnell mangels besseres Wissen ein paar "aus dem Stegreif" definiert.

Update: Ich habe heute gitlab extensiv getestet, da ich es für diesen Zweck vorgesehen hatte. Ich habs aber nicht geschafft einen lesenden Zugang für anonymen Zugriff hinzukriegen und ich glaub, das wär schon noch gut.
Seid Ihr einverstanden wenn ich ein Projekt auf github eröffne ?
« Last Edit: July 04, 2013, 12:54:32 AM by boxtec-support »

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #8 on: July 04, 2013, 02:08:42 PM »
Quote
Seid Ihr einverstanden wenn ich ein Projekt auf github eröffne ?

Auf GitHub habe ich schon ein Konto (pylonsoft), von mir aus also ein Go!

MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #9 on: July 04, 2013, 02:37:50 PM »
Salut,

fast die Hälfte aller libs beziehe ich von Github, die OS tools von sunxi (Cubieboard und pcDuino) sind auch da - kein Problem

Ciao, Mathias

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #10 on: July 05, 2013, 03:25:20 PM »
Ich hab einen Account und auch ein Repo eröffnet:
https://github.com/boxtec/tinyLCD_I2C

Als jemand der zeitlebens mit cvs gearbeitet hat und noch heute subversion für das SCM von übermorgen hält könnte es sein, dass ich hin und wieder etwas Hilfe bei der Verwaltung brauche.

Muss ich Euch jetzt als Collaborators zu dem Projekt einladen oder kann da jetzt erst mal jeder commiten ?


MathiasW

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 614
  • Karma: +13/-0
    • my Arduino page
Re: TinyI2C_LCD
« Reply #11 on: July 05, 2013, 03:30:37 PM »
Salut Christoph,
ich denke, Du musst uns einladen:
Code: [Select]
You are editing a file in a project you do not have write access to.
We are forking this project for you (if one does not yet exist) to write your proposed changes to.
Submitting a change to this file will write it to a new branch in your fork so you can send a pull request.
Meine id ist GastonLagaffe2013

Ciao, Mathias

boxtec-support

  • freakyfriday
  • Hero Member
  • *
  • Posts: 787
  • Karma: +15/-0
    • Boxtec Web
Re: TinyI2C_LCD
« Reply #12 on: July 05, 2013, 03:41:36 PM »
Hallo Mathias,

Danke fürs Testen, ist erledigt, Du bist als Collaborator eingetragen.
Man muss scheinbar Firefox auf WIndows nutzen damit der Add Button Farbe erhält und klickbar wird..

Grüsse - Christoph

pylon

  • freakyfriday
  • Full Member
  • *
  • Posts: 158
  • Karma: +16/-0
Re: TinyI2C_LCD
« Reply #13 on: July 06, 2013, 04:57:31 PM »
Hallo Christoph,

könntest Du mich auch noch einladen? Meine ID ist pylonsoft.

Das Display läuft, der ATtiny kann auch Ausgaben darauf machen, aber auf dem I2C-Bus ist bei mir im Moment noch ziemlich Flaute, ich kriege keinen einzigen Ack vom Tiny. Ich suche weiter nach der Ursache.

Ich hätte aber gleich einen Verbesserungsvorschlag: Können wir die I2C-ID in das EEPROM verlagern, dann können wir auch mehrere Displays ansteuern, ein Kommando zum Ändern der ID genügt. Wenn das auch in Eurem Interesse ist, baue ich das mal ein.

microtherion

  • freakyfriday
  • Full Member
  • *
  • Posts: 163
  • Karma: +13/-0
Re: TinyI2C_LCD
« Reply #14 on: July 06, 2013, 07:31:20 PM »
Muss ich Euch jetzt als Collaborators zu dem Projekt einladen oder kann da jetzt erst mal jeder commiten ?

Typischerweise läuft das anders, nämlich dass sich Interessenten einfach eine eigene Kopie des Projekts “forken”, dann ihre Änderungen zu einem “Pull Request” zusammenfassen & Dir schicken.