Hallo an alle Sympathisanten des frickelns. Es gab schon sehr lange kein Update mehr von meinem fr3Aknome bau, dabei hat sich soooo viel getan. Der Grund für die ausbleibenden Updates ist einfach.. ich war so sehr mit frickeln beschäftigt, das für essen, trinken und mein blog kaum Zeit blieb. Ich habe so ziemlich jede freie Minute in das “DING” gesteckt um endlich weiter zu kommen und fertig zu werden.
Da sich so viel getan hat wird dieses Update vielleicht etwas durcheinander, also querdenken nicht vergessen
.
Im Prinzip war ich mit meinem fr3Aknome soweit vom technischen aspekt so ziemlich fertig. Ich habe alle Platinen mit LEDs und Dioden bestückt, und sie untereinander verbunden. Durch einen witzigen Zufall und ein damit verbundenes grösseres Drama mit der Deutschen Post ( Jah möge sie gewaltig von hinten ficken! ) hatte ich das Glück relativ günstig nochmal an die Sparkfun Buttonpads und die PCBs zu kommen. Was liegt da näher anstatt ein fr3Aknome 64 (8×8 buttons/leds) ein fr3Aknome 128 zu bauen. –> gedacht ….getan 8 Reihen á 16 Buttons passt eh viel besser für einen Step-Sequenzer und und und…. . Da ich von allen anderen Teilen alles doppelt besorgt habe stand dem 128er also eigentlich nichts mehr im Weg.
Blos wie baut man ein arduinome 128, wenn die Jungs an deren Weg ich mich orientiert habe, alle nur ein 64er gebaut haben?! Naja.. ist doch ganz easy, einfach die anderen Boards zusammen löten und der rest wird schon so halbwegs passen. –> FAIL!
Das Problem ist folgendes: Alle anderen die am Ende auf ein arduinome 128 kamen haben einfach 2 komplett autonome 64er gebaut, mit 2 arduinos und deswegen auch 2 usb ports belegt. Die Software arduino Serial, wird einfach 2 mal gestartet un die zweite Instanz bekommt ein offset eingetragen und alles leuft. Alle warmduscher können das gerne machen, doch ich komm darauf nicht klar. Erstens wird noch ein extra Arduino gebraucht, dann die Stromverschwendung UND noch ein USB Bus.. no way!
Jetzt wollte ich mich so nah wie möglich an das orginal Arduinome Projekt halten, damit evtl. auch andere davon Profitieren können.
Hätte ich mich mal besser gleich in die ganzen elektronischen Komponenten eingearbeitet, hätte ich mir vielleicht knapp 150 Stunden debugging, nachvollziehen, umlöten etc sparen können, aber nein ich wollte es ja schnell und easy. Das Problem ist, dass auf dem Unsped shield jeweils 1 mal der Max7219 und die 164/165 Shiftregister verbaut sind. Um die mal eben so miteinander zu verbinden muss man schon verstanden haben was sie wie genau machen. –> Ich habe das bis heute nicht 100% aber ich habe in der zwischenzeit so einiges gelernt.
Der Max Chip und die Shift register können jeweils nur eine Matrix von 8×8 Elementen bediehnen. Das bedeutet man muss die Chips untereinander mit den serial out <–> serial in ports verbinden. Stichwort daisy chain. Hierzu sind die Datenblätter der Chips sehr sehr hilfreich, und viel Zeit zum lesen und verstehen.
Das zweite Päckchen der 8×8 Boards wird einfach neben das erste gelegt und in den Reihen werden die Switches durchverbunden. Wichtig ist hier die richtige Orientierung der Boards. Ich habe das natürlich falsch gemacht und konnte nach langen debugsessions alles nochmal neu verbinden und verlöten. Dabei geht hier dieses und dort jenes Kabel ab, was die Siutation insgesamt nicht erleichtert.
Genug geheult, ich habe es hinbekommen, die boards sind richtig miteinander Verbunden (mehr seht ihr auf den Bildern). Genauso habe ich ziemlich Ghetto mässig die unsped Shields einfach an den Wichtigen und richtigen stellen miteinander verbunden.
Zwischendurch habe ich versucht mir eine Faceplate für die Buttonpads selbst zu bauen. Das kann man bei 128 Knöpfen ganz vergessen. So akkurat kann mensch mal eben nicht arbeiten. Deshalb habe ich mir ein gelasertes faceplate kit von machinecollective.org gegönnt.
Die fr3Aknome Firmware
Damit der SerialRouter ArduinomeSerial, das gerät als 64er erkennt muss der FTDI Chipsatz noch geflasht werden. Bei einem 64er mit der Serial Number A40h-xxx (xxx=belibige serial). Damit der ArduinomeSerial das ganze als 128er erkennt wird die Serial auf A128-xxx geflasht.
Soweit so gut, das Teil wird als 128er erkannt, allerdings ist die Firmware nur für ein 40h (64er) designed. Wäre die Firmware von den arduinome freakz mal konsequent umgesetzt worden, dann wäre hier auch ein Support für andere Modelle drinnen. Der Unterschied, neben der größe ist das die monome geräte 128, 256 im Gegensatz zu dem 40h nicht mit dem 40h Protokoll angesprochen werden, sondern dem Series Protokoll. Die Protokolle sind auf http://docs.monome.org dokumentiert und beschrieben.
Der wesentliche unterschied ist das unterschiedliche Messages zu dem arduinome/monome gesendet werden und buttonpresses anders registriert werden. Mein Plan war die orginal arduinome Firmware einfach etwas anzupassen konnte nicht so umgesetzt werden. Ich habe es hinbekommen die einkommenden serial messages für die LEDs zum implementieren um nun alle 128 Leds korrekt anzusteuern. Bei den Buttons bin ich nicht viel weiter gekommen. Ich bin nur in der Lage mit dem Arduino code eine Seite (64 buttons) zu registrieren. Zusammen mit einem Kollegen haben wir den code neu geschrieben, und nun bin ich soweit das ich fast alle Buttons abfragen kann. Es gibt noch ein paar Fehler im code die ich z.Zt nicht finde und bewirken, dass ich jeweils die erste Reihe gar nicht abfragen kann. Zusätzlich sind neue Probleme dazugekommen, dass verschiedene Buttons in der ersten Reihe hin und wieder einen Button Press für die komplette Reihe auslösen.
Mal sehen wie es weitergeht.
Ich halte euch auf dem Laufenden sobald es neuigkeiten gibt.
Greetz
der fr3Ak