Hive – Das Computerabenteuer der besonderen Art: 24 RISC-Prozessoren, VGA-Grafik, Video-Ausgang, Stereosound, über 1 MB RAM, SD-Card-Laufwerk, LAN, PS/2-Maus und Tastatur, freie Software, einfach und unkompliziert in verschiedenen Sprachen programmierbar… – und das alles auf einer kleinen Eurocard, als minimalistischer Bausatz, keine SMD-Bauelemente, von jedem Bastler in wenigen Stunden aufzubauen. Du hast die Kontrolle über jeden Pin und jedes Byte in diesem System – fühl dich frei und mache etwas Großes damit!
Schon einige Zeit hatte ich den Wunsch ein Board für Experimente mit dem Propeller zu haben. Zwar gibt es diverse fertige Platinen, aber irgendwie hat immer etwas gefehlt. So möchte ich das Board gern auch als Erweiterung am Hive verwenden, sowohl am parallelen Bus, wie auch über den PlexBus an Administra. Unabhängig davon soll es aber möglich sein, völlig autark zu experimentieren, wie zum Beispiel mit dem Demoboard von Parallax. Ach ja: Da es flexibel sein soll, muss auch die Verwendung von Shields wie beim Arduino möglich sein – ich kann ja heut noch nicht sagen was ich morgen für Ideen habe. Also eine Menge Ideen die in der Sache zusammenfließen.
Der März mit dem nächsten KC-Treffen ist nicht mehr fern und es gilt frühzeitig vorzusorgen und zu planen. Ich denke es wäre ganz interessant, einige gemeinsame Aktivitäten zu initiieren – vielleicht beginnend mit einem persönlichen Treffen, Vorträgen und Workshops. Ich habe das einfach mal so im Forum zur Diskussion gestellt, um zu schauen, ob es dafür ein Interesse gibt.
Der erste Meilenstein war Hive 100. Nun, irgendwie habe ich da meine eigene Zählweise, denn Meilenstein 2 ist jetzt der Hive 235. Mit diesem Gerät darf ich mich nun auch offiziell drohne235 nennen und könnte das als virtuellen Geburtstag im Kalender anstreichen. Ich weiß, dass ist mehr etwas für Nerdcore, aber ich bin halt immer wieder erstaunt, wie das so vorwärts geht. Zum Thema Nerd: Immerhin sind das so nebenbei auch 705 Propellerchips und satte 5640 Cores die in Betrieb sind. Und die Meßlatte hängt jetzt übrigens bei Hive 1000…
Vielen Dank an dieser Stelle auch gleich an quix für die Mühe den Staffelstab der Sammelbestellungen zu übernehmen und so professionell über die Bühne zu bringen.
Futter für den Hive. Wie bei der ersten Toolbox genügt es den Inhalt des Ordners “SDCARD” auf ein passendes Medium zu kopieren. Dieses mal ist das Paket durch die Mediendateien allerdings recht groß geworden, aber es lohnt sich. Wie gehabt, sind zu den Programmen wieder alle Quelltexte für eigene Experimente enthalten. Enthalten sind folgende Sachen:
Sounddateien im HSS, DMP (SID), WAV, YM und SFX-Format.
Ich habe gerade R48 von TriOS released. Diese Version enthält nun den Grafikmodus G0 – neben den verschiedenen Textmodi der erste standardisierte Grafikmodus auf dem Hive. Mit dem Tool “g0test” kann der Modus getestet werden und man bekommt dort auch einen Eindruck von den Möglichkeiten. Der G0-Modus ist über das IOS direkt und sehr komfortabel in Anwendungen nutzbar. Als Einstieg für erste Experimente mag der Quelltext von g0test dienen.
So, nun ist also auch Grafik auf dem Hive so einfach wie die verschiedenen Soundformate nutzbar: Egal ob Diagramme, Kurven, Animationen oder Games – das kann jetzt alles sehr einfach und mit ordentlicher Darstellungsgeschwindigkeit realisiert werden. Der G0-Modus ist rasterorientiert, aber mit seiner superschnellen Vektorengine primär in Richtung Vektorgrafik gedacht. Die maximale Leistung erreicht er bei Vektorobjekten (g0_vec) mit einer Leistung von ~18.000 Linien pro Sekunde. Das sind natürlich Maximalwerte, wenn man diese Funktion in einer Schleife mit festen Parametern aufruft. Aber durch entsprechende Parallelisierung kommt man mit den Propchips durchaus auch real in diese Nähe, wenn es nötig sein sollte. Das Testprogramm spricht die G0 Funktionen ganz klassisch in einer einfachen Routine unter Nutzung nur einer COG an.
Momentan werkle ich am Grafikmodus 0 für den Hive. Kurz die Eckdaten:
TV-Modus 256 x 192 Pixel
Farben: Tile (16×16 Pixel) sind 4 aus 64 Farbe wählbar
Einbindung des Graphics-Objektes für schnelle Vektorgrafik
Animation: zwei Screens für flickerfreie Darstellung von Animationen
Einbindung der Grafikfunktionen per IOS
Keyboard ODER Maus verfügbar (beides geht nicht)
Bei der Darstellung von Vektorobjekten spielt der Hive so richtig seine Muskeln aus: über den Bus werden dabei nur Metadaten übertragen und die komplexen Anweisungen werden lokal in Bellatrix verarbeitet. So kann mit einem Befehl von Regnatix ein Vektorobjekt mit beliebigem Drehwinkel und Skalierung gezeichnet werden. Für meine Tests verwende ich ja gern das Vektorobjekt eines sechseckigen Sterns. Der Hive kann dabei ~1500 Sterne pro Sekunde zeichnen. Jeder Stern besteht aus 12 Linien, was eine Zeichenleistung von ~18000 Linien pro Sekunde macht! Na wenn das nicht geil ist, weiss ich auch nicht…
Alle Grafikoperationen sind nun im IOS direkt für die Anwendung verfügbar. Das nicht optimierte Testprogramm im folgenden Video ist nur 5,5 KByte groß und nutzt nur eine einzige COG in Regnatix – es sind also noch sehr viele Ressourcen frei! Zu sehen sind der Reihe nach alle grundlegenden verfügbaren Grafikoperationen und ein paar Gimmicks. Wie gesagt, handelt es sich nur um ein Testprogramm, welches ich bei der Enwicklung verwendet habe, um die Funktionen zu prüfen, weshalb es sicher keinen Schönheitswettbewerb gewinnt, aber es zeigt vielleicht ein wenig, in welche Richtung es geht.
Nach einer gründlichen Aufräumaktion im TriOS ist diese Toolbox 1 das erste Paket einer ganzen Serie von Anwendungen, Democodes, Tools und Mediendateien für den Hive. Viele Fragmente gab es bisher schon auf meiner Festplatte oder sind bei der Programmierung vom TriOS entstanden, aber meist hatten sie mehr einen experimentellen Charakter oder es fehlten noch Kleinigkeiten. Einige wenige Dateien sind Beispiele von Parallax oder aus der Community, die ich an den Hive angepasst habe. In dieser Toolbox enthalten sind Codebeispiele aus folgenden Themenbereichen:
Neuigkeiten von TriOS: Nach einiger Zeit der Arbeit am System erschien mir die allgemeine Struktur der Quelltexte zu unübersichtlich und zu aufgebläht. Viele Fragmente und Programme die eigentlich nichts mit dem System zu tun hatten, haben sich heimlich bei den Experimenten eingeschlichen. Dazu wollte ich endlich ein Bibliothekskonzept für die Quelltexte realisieren, da Brad’s Spin Tool ja nun die entsprechenden Möglichkeiten bietet. Also war eine umfangreiche Aufräumarbeit nötig, um dem Ganzen wieder die nötige Struktur und Klarheit zu geben. Zeit den Softwarebastelkeller aufzuräumen! Was wollte ich also? Continue reading ‘TriOS – Bibliotheken’ »
Im Forum versucht quix eine neue Sammelbestellung für neue Hive-Boards zu organisieren. Interessant wird das natürlich erst ab einer ausreichend großen Anzahl von Bestellern. Wer also noch keinen Hive gebaut hat, oder wer gern einen Zweithive hätte, bitte im Forum in diesem Thread melden: Sammelbestellung HIVE Leiterplatte November/Dezember 2011
Aktuell ist nur das Board als Sammelbestellung angedacht, aber vielleicht findet sich auch wieder die Möglichkeit die Propellerchips (ist ja immer gleich die dreifache Menge zu den Boards) gemeinsam zu bestellen.
Der Hive ist aufgebaut, TriOS läuft und was nun? Wie es scheint ist ein Einstieg in die Programmierung doch recht schwierig, wenn man einen fertigen Hive in seiner Ganzheit vor sich stehen hat. Deshalb möchte ich hier einige grundlegende Ressourcen für einen Einstieg in die Programmierung des Propellerchips zusammenstellen.
Im Prinzip verfolgt auch schon der Artikel Build your OS – Bellatrix-Code und Build your OS – Regnatix-Code dieses Ziel, aber richtet dort den Fokus schon auf den fertigen Hive als Computer. Sinnvoller ist es aber, als erstes mit einem einzelnen Propeller ohne weitere Anbindung anzufangen. Ich werde dabei hier keine 1:1-Anleitung und keinen fertigen Code in den Artikel setzen, sondern vielmehr Links zu diversen Texten und Tutorials zusammenstellen, welche viele Demos mit umfangreicher Erklärung enthalten. Die meisten Texte sind dabei in englischer Sprache, was aber nicht abschrecken sollte – in den meisten Fällen kann man mit minimalsten Kentnissen der Sprache den technischen Hintergrund erfassen. Continue reading ‘Hive und jetzt? – Einstieg in die Propeller- und Hive-Programmierung’ »
Alle Platinenbestände der zweiten Sammelbestellung sind nun aufgebraucht. Aber keine Panik: Bei Bedarf im Forum melden und sich für die nächste Sammelbestellung melden oder diese einfach organisieren.
Der folgende Text hat zwar nur am Rande etwas mit dem Hive zu tun und wahrscheinlich kennen ihn auch viele schon, aber irgendwo passt es doch auch im Kern ein wenig zum Hive-Project, weshalb ich das jetzt mal hier reinstelle. Sehr erstaunlich auch das Datum: bereits 1997 hat Carl Sassenrath gesehen, was jetzt immer schneller in der IT-Realität zum Ausbruch kommt.
…ist Debug-Lite von Parallax eine praktische Sache. Mit wenigen Anweisungen kann man im angeschlossenen Terminal auf dem Host-PC Variablen, Rückgabewerte und die Pegel an den Portpins anzeigen lassen oder einen Haltepunkt setzen. Aber bei Experimenten am Hive ist es natürlich noch schöner, wenn die Portanzeige gleich die richtigen Signalbezeichner bekommt. Ich hab das mal gleich genau so in drei Dateien für Administra, Bellatrix und Regnatix eingearbeitet. Eine kleine Beispieldatei ist auch enthalten, welche in Regnatix auf dem Datenbus fortlaufend Werte ausgibt.
Die Einbindung ist schnell erledigt und völlig unkompliziert. Als Terminal eignet sich hervorragend das PST (Parallax Serial Terminal), welches im Paket vom Propeller Tool enthalten ist.
Praktisch ist das Tool für Experimente unter Spin mit dem Bus vom Hive, vielleicht auch in Verbindung mit dem Tutorial “Regnatix-Code”. Zur Fehlersuche von PASM-Code ist es aber ungeeignet, da der Spincode nicht auf COG-interne Werte zugreifen kann. Dafür ist bestens PASD geeignet.
Debug Lite ist zwar schon uralt, aber da ich es hier noch nicht erwähnt hatte, ist die Info ja doch ganz nützlich.
Für alle Neugierigen, Neuankömmlinge und Jungdrohnen hier einige Bilder zum aktuellen Hive-Board R14. Informationen zu den technischen Details und Änderungen zum Vorgängerboard finden sich hier: Continue reading ‘Bilder vom aktuellen Hive-Board R14’ »
Ein kleiner Etappensieg auf dem Weg zur Weltherrschaft: Ich habe PropForth in TriOS integriert. Klingt nicht sehr spektakulär, ist aber eine ziemlich coole Sache. Das Forth residiert dabei zusammen mit dem Loader im unteren EEPROM und ist somit sofort nach dem Einschalten des Gerätes nutzbar. Für die Nutzung von Forth ist es also nicht mehr nötig, einen ROM mit 64K zu verwenden.
Wie versprochen noch ein paar Impressionen vom KC-Treffen 2011. Ich persönlich habe so den Eindruck, dass der Hive auf diesem Treffen eine kleine Heimat gefunden hat. Ein Termin, den man gut einplanen kann und den auch einige Hive-User wahrgenommen haben. Ist halt doch was anderes neben der ganzen Technik einfach mal gemeinsam ein Bier zu schlürfen und über Gott und die virtuelle Welt zu schwatzen…
Allen voran Volker (drohne040) mit seinem schicken Hive im “Alien-Gehäuse” und passender Funktastatur. Der Clou dabei – das integrierte Display an Administra. Auf den ersten Blick ist das auf den älteren Bildern nicht sehr gut zu erkennen, aber die kleine LCD-Anzeige hat ein wirklich guten Kontrast und Volker hat in Administra eine Routine integriert, die neben dem Hive-Logo auch noch die aktuell vom System geöffnete Datei anzeigt. Sicher könnte man auch noch weitere Meldungen dort ausgeben.
Im Forum eine aktuelle und schon gut funktionierende neue Version von PropForth für den Hive – nennen wir sie mal die “KC-Treffen-Version”, da es exakt jene Version ist, mit welcher ich auf dem KC-Treffen das Forthsystem vorgeführt habe. Der Clou an der Geschichte: Mit einem zweiten Hive unter TriOS konnte man sich mit dem Programm fterm.bin auf dem Forth-Hive “einklinken” und mit einer der sechs verfügbaren interaktiven Forthcogs parallel, wie mit einem Terminal am Forth-Hive arbeiten. Einige Impressionen und Infos gibt es die nächsten Tage, bin ja gerade erst zurück gekommen und habe die Technik wieder ausgepackt.
Allerdings muss man für das Forth-System den Hive umflashen, man also kann das Forth nicht unter TriOS starten, sondern es ist quasi eine Alternative dazu. Aber der Trend geht ja eh zum Zweithive… Und mal ehrlich: mit dem tollen Teko-Gehäuse kann man genauso coole Türme wie mit dem KC bauen… Hier mal so ein “Probeturm” vom KC-Treffen, wobei dort der ForthHive noch als nackte Platine offen liegt, um besser die verwendete R14-Platine zeigen zu können.
Ein kleiner Überblick über die momentan enthaltenen Funktionen:
- Laufwerksfunktionen: ls, lsl, cat, less, mount, unmount, dm? (teilweise in tools.mod)
- Verwaltung von Bibliotheken und Programmen (Module)
- SYS-Verzeichnis auf SD-Card: dort befinden sich alle global nutzbaren Mod’s und Lib’s
- HSS, Wave und SID-Player
- Escape-Manager (Break, Reset und Screens)
- Bellatrix verwaltet jetzt drei Screens; mit jedem Screen ist eine andere Cog gekoppelt
- Gleichzeitiges Arbeiten mit einer ForthCog am Hive UND mit einem angeschlossenen Terminal
- fterm.bin –> Forth-Terminal für TriOS: damit kann man einen zweiten TriOS-Hive als Terminal
nutzen
Und noch vieles mehr…
Wichtig: Bitte install.txt lesen! Die Installation ist jetzt sehr einfach geworden. In dem Text sind auch viele Infos zu Dateien, Lib’s und interessanten Erweiterungen (Module) für das Forth beschrieben.