das |_ Team  präsentiert:
Alle Projekte Kontakt / Impressum


'Lbit'

Nachladbare Firmware für den C-Control I 1.1 Steuercomputer


(ein Hobbyprojekt)


Diese 3 Varianten des C-Control Steuercomputers werden unterstützt:
 C-Control I 1.1 Main UnitC-Control I 1.1 StationC-Control I 1.1 M-Unit
'Lbit' kann mehrere Programme in getrennten Slots verwalten:

Terminalsicht nach Updatevorgang

'Lbit' kann die Slots 1 bis 9 im Terminalmodus direkt starten. In eigenen Anwenderprogramm können die Slots 1 bis 'n' als Unterprogramme aufgerufen werden.

Der neue Host - Modus
 _____   _____   _____   _____   _____   _____   _____   _____   _____
|| 1 || || 2 || || 3 || || 4 || || 5 || || 6 || || 7 || || 8 || || 9 ||
||___|| ||___|| ||___|| ||___|| ||___|| ||___|| ||___|| ||___|| ||___||
|/___\| |/___\| |/___\| |/___\| |/___\| |/___\| |/___\| |/___\| |/___\|
^-------^-------^-- Manueller Start Slot 1-9 ---^-------^-------^


Im Terminalmodus stellt 'Lbit' die nachfolgenden Funktionen bereit:



      _________________________________       
            ||jüngsten Slot in Liste starten ||            
||_______________________________||
|/_______________________________\|

Die Leertaste startet das jüngst hochgeladene Anwenderprogramm
               


_____
|| L ||
              ||___||              
              |/___\|     
        

           Die L-Taste listet die vorhandenen Slots auf 
          
 


_____
|| - ||
              ||___||              
              |/___\|     
         
           
Die Minustaste entfernt das jeweils zuletzt hochgeladene Programm


_____
|| A ||
              ||___||              
              |/___\|     
         
         
Die Taste 'A' setzt den virtuellen Autostart-Jumper auf das zuletzt hochgeladene Programm     


_____
|| a ||
              ||___||              
 |/___\|


Die Taste 'a' deaktiviert den virtuellen Autostart-Jumper


_____
|| E ||
              ||___||              
 |/___\|

Die Taste E liest den Fehlerspeicher



Einspielen der 'Lbit' Firmware erfolgt über die Serielle Schnittstelle des PC (Upgrade).

Zur Originalfirmware des C-Control kann jederzeit zurückgekehrt werden (Downgrade).


Sicherung des im C-Control vorhandenen Anwenderprogramms:

   Das vorhandene Anwenderprogramm kann nach dem Upgrade mit der 'Lbit' Firmware weiterhin benutzt werden. (Ohne Gewähr)

Nach einem Downgrade wird das vor dem Upgrade vorhandene Anwenderprogramm wieder hergestellt. (Ohne Gewähr)





Das Kleingedruckte:


 (1) Die Firmwareerweiterung 'Lbit' steht in keiner Verbindung zur Conrad Electronic SE  und ist nicht für die C-Control I Unit M2.0, geeignet.

 (2) 'Lbit' ist experimentelle Software und wird ohne Gewährleistung zur nicht-exklusiven,  freien Nutzung zur Verfügung gestellt.


 (3) Experimentelle Software kann Fehler enthalten und darf nicht in Anwendungen verwendet  werden aus deren Versagen direkt oder indirekt Personen-, Sach-, oder Vermögensschäden resultieren können.


 (4) Die Herausgeber können keinerlei Haftung übernehmen für Schäden welche aus Nutzung oder Nichtnutzung der 'Lbit'-Firmwareerweiterung und/oder der bereit gestellten Software resultieren.

(5) Ist ein kompletter Haftungsausschluß im Gültigkeitsbereich der für Herausgeber und/oder Nutzer geltenden gesetzlichen Vorgaben nicht gestattet, darf die 'Lbit'-Software nicht genutzt werden.

(6) Alle Rechte an der 'Lbit' Software verbleiben bei den Herausgebern.

(7)-Achtung:
Der Pin zum Autostart-Jumper darf auf keinen Fall ohne Vorwiderstand  mit der positiven  Versorgungsspannung verbunden werden  (Bei der im Originalzustand    belassenen C-Control I 1.1 ist dies in der Regel auch gewährleistet).
   
(8) Mit Herunterladen oder Nutzung der 'Lbit'-Software erkennt Nutzer diese Vereinbarungen an.


Die 'Lbit' Firmware ist nicht für die unten abgebildeten C-Control Systeme geeignet!


'Lbit' Nicht für C-Control I 2.0 geeignet'Lbit' Nicht für C-Control Pro geeignet'Lbit' Nicht für C-Control II geeignet'Lbit' Nicht für Micro geeignet

ACHT'UNG:

Umbauten an der C-Control durch welche der Autostart-Pin auch nur kurzzeitig ohne   Vorwiderstand mit der postiven Versorgungsspannung verbunden wird, könnten in Verbindung
mit der 'Lbit' Firmware zur dauerhaften Beschädigung des Kontrollers führen weil weil die
'Lbit'-Firmwareerweiterung den Autostart-Pin als Ausgang und aktiv auf low schaltet.

    

Download:
Nachladbare Firmwareerweiterung 'Lbit'  für C-Control I 1.1

Installation:

(1) Die obige Zip-Datei entpacken.

(2) In das Verzeichnis
mit den entpackten Daten wechseln.

(3)
Dort " upgrade <COM-Nr> " eintippen.

Beispiel, wenn die C-Control am COM-Port Nr.1 (COM:1) angeschlossen ist:

      upgrade 1  


Bestehende User-Programme können in den meisten Fällen ohne Anpassungen mit der neuen
Firmware verwendet werden. Falls es dennoch zu Problemen kommt, sollte zuerst das
Vorhandensein fehlerhaft platzierter Tabellen im Quelltext ausgeschlossen werden:

"...Tabellendefinitionen müssen stets am Ende eines Programms, hinter
dem END Befehl stehen..." (Zitat aus der Original Bedienungsanleitung
zum C-Control/BASIC Steuercomputer Best.-Nr. 95 05 72, 1997, Seite 42).

Auch selbst definerte Tokenbefehle in Tabellenform können mit der 'Lbit'-Erweiterung
genutzt werden können. (siehe auch http://ccintern.dharlos.de/tipsutri.txt).

'Lbit' ist kompatibel mit der Multitasking Erweiterung für die C-Control I 1.1 von Dietmar Harlos.

Im konventionellen Single-Tasking-Betrieb lässt sich via Inter-Modul-Kommunikation ein kooperatives Multitasking nachbilden und Slots können zur Laufzeit programmgesteuert aktiviert, als Unterprogramm aufgerufen werden. Auch Plugins sind möglich. Siehe z.B. das User Interface Program, 'UIP' weiter unten im Text.


Mit 'Lbit' kann der Autostart-Jumper dauerhaft gesteckt bleiben, sogar beim Upload eines neuen Anwenderporgramms. Dank der 'Lbit'-Firmwareerweieterung läßt sich die C-Control jetzt vollständig über die Datenleitungen der Seriellen Schnittstelle steuern, ohne daß noch die Reset- oder Start-Taste betätigt werden müssen (Fernwartung).

Als Er
satz für die bisherige Funktion des Autostart-Jumpers dienen die neuen Kommandos
'a' bzw.'A' im Hostmodus. Beim Anschluß der C-Control an einen TCP/IP nach Seriell Wandler funktioniert das auch über das eigene WLAN/LAN oder das Internet
 

Nach dem Upgrade:

Bedienung des C-Control Upgrades erfolgt via Terminalprogramm mit 9600 baud 8,n,1.
Jede Taste muss direkt gesendet werden (Ein-Byte-Befehle) Unter Telnet sollte hierzu der sogenannte Telnet character mode eingeschaltet sein.

Beispiel:

      terminal 2

Zur Signalisierung, daß im Augenblick der Hostmodus aktiv ist blinken abwechselnd die rote und gelbe LED in langsamer Folge.

Bei Verbindung über ein Terminalfenster sieht man die Benutzeroberfläche der 'Lbit'-Erweiterung. (Die jeweilige Darstellung kann sich je nach Version unterscheiden).


Bild 1: Hostmodus. Mit dem Upgrade wurden 5 kleine Beispielprogramme installiert

Terminalsicht nach Updatevorgang


Die Beispielprogramme in den jeweiligen Programmslots können
mit den 1-Byte Befehlen des Hostmodus gesteuert werden.


print
print "Tastenbelegung im Idle Modus:"
print "  _____   _____   _____   _____   _____   _____   _____   _____   _____"
print " || 1 || || 2 || || 3 || || 4 || || 5 || || 6 || || 7 || || 8 || || 9 ||"
print " ||___|| ||___|| ||___|| ||___|| ||___|| ||___|| ||___|| ||___|| ||___||"
print " |/___\| |/___\| |/___\| |/___\| |/___\| |/___\| |/___\| |/___\| |/___\|"
print "    ^-------^-------^-- Direktstart eines Slots  ---^-------^-------^"
print "                  _____ (mehr Slots sind moeglich)  ____________________"
print "    Fehlernummer || E ||                           ||         Return * ||"
print "       zeigen -> ||___||                           ||______         |  ||"
print "                 |/___\|                           |/_____/|    <---   ||"
print "   _____                    Slot-Liste     _____         | |___________||"
print "  || A ||<- Autostart auf        zeigen ->|| L ||        |/____________\|"
print "  ||___||   letzten Slot                  ||___||   _____"
print "  |/___\|   (A=EIN,a=AUS)      Letzten    |/___\|  || - ||       |"
print "                               Slot aus            ||___||       |"
print "                               Liste entfernen --> |/___\|       |"
print "                   _________________________________             |"
print "                  ||Letzten Slot der Liste starten || <-- oder --"
print "                  ||_______________________________||"
print "                  |/_______________________________\|"
print
print "* Return-Taste evt. ohne Funktion."
print "[Taste]"
define b1 byte
GET b1


Die vorinstallierten Beispielprogramme im Quelltext:
(zum Kompilieren der Quelltexte kannst du
die L Distribution verwenden)

Slot 1: Ein User Interface Programm mit welchem der Hostmodus flexibel
erweitert werden kann. Im Beispiel ist es ein (rudimentärer) HTTP-Webserver,
eine Reset-Statistik, und farbig unterlegter Text, sofern ein ANSI-fähiges Terminalprogramm zur Darstellung verwendet wird.


Slot 2: Eine ansonsten recht nutzlose Schleife mit PRINT in CCBASIC (.bas)

Slot 3: Beispiel zur 'Lbit'-Funktion "Host-ID ändern"  (.ocb)

Slot 4: Programm Software-Reset (zum Testen des 'Lbit' Reset-Zählers)

Slot 5: Programm Hardware-Reset (zum Testen des 'Lbit' Reset-Zählers)


Das User-Programm unter der neuen Firmware wieder verfügbar machen

 
TIPP: Sofern genügend freier Speicherplatz verbleibt, kann das vor dem Update
      im C-Control genutzte Userprogramm nun zurück in den Programmspeicher des
      C-Control transferiert werden. Ggfs. vorher einige der Beispielprogramme
      mit der Taste "-" entfernen, um ausreichend Platz zu schaffen.

      Dann das Terminalfenster schliessen und durch Eingabe von z.B.

      transfer 1

      das alte Userprogramm hochladen. Hat dies gelappt erscheint das Programm
      nun an unterster Stelle der Liste, nach Eingabe von:
 
      terminal 1
       
      Durch Senden der Leertaste kann es gestartet werden. Es ist ratsam jetzt
      genau zu prüfen, ob das Userprogramm  mit der neuen Firmware in allen Punkten
      noch immer wie vorgesehen funktioniert.

      Blinkt die rote LED in schneller Folge während sich das System im Hostmodus
      befindet, liegt eine Systemmeldung vor.

      Der zugehörige Kode mit der Taste 'e' ausgelesen werden.

      Systemmeldungen sind derzeit folgende:
       
     255  Firmwareupgrade wurde erfoglreich durchgeführt. Slots sind noch keine geladen.
       20  Freier Speicherplatz weniger vorhanden als vom Uploadprogramm gefordert.
       18  Das EEPROM kann gar nicht beschrieben werden, weil es z.B. defekt oder schreibgeschützt ist (geplant)
        5  Es gab eine längere Unterbrechung beim Hochladen ins interne EEPROM, 'Timeout'
        4  Es gab eine längere Unterbrechung beim Hochladen ins externe EEPROM, 'Timeout'
        3  Es kam zu einem sonstigen Fehler während der Programmierung.

       
        Bei Systemmeldungen 4 & 5 kann der Upload direkt neu gestartet werden, ohne dass es etwas zu beachten gibt.
   
        Meist ist hier die Ursache eine Kombination aus der (eigentlich überflüssigen) Timeout-Routine im
        Uploadprogramm auf dem PC und so manch einer real existierenden, nach Tarif gedrosselten, TCP/IP Leitung.

        Wenn du dir jetzt selbst ein Uploadprogramm für TCP/IP schreibst, kannst du immer mehrere Bytes zu einem Paket zusammenfassen
        und auf einmal senden. Wie viele Bytes pro Paket deine Lbit Firmware max. verarbeiten kann findest du heraus, indem
        du einmal vor Beginn der Übertragung den Wert '5' an den Kontroller sendest.

         Beispiel:  <STRG-E>  (Du drückst im Terminalfenster erst die Taste 'STRG' und dann zusätzlich noch die Taste 'E')
        
         Die Antwort lautet wahrscheinlich: 00008 RxBufSze

         In diesem Fall können also immer Pakete zu maximal je 8 Bytes zum Kontroller geschickt werden. Aber auch mehr
         oder weniger Bytes könnten vorkommen.




Die obigen Beispielprogramme im Quelltext bearbeiten und erweitern.


       Zum Kompilieren und Übertragen der oben verlinkten Quelltexte haben wir
       unser Projekt die L Distribution verwendet.

       Natürlich können alle für das C-Control I -System geeigneten Programmierumgebungen
       und Programmiersprachen auch nach dem Einspielen des Firmwareupgrades weiterhin
       verwendet werden.


Downgrade (zurück zur Originalfirmware und User-Programm)

      Wem die neue Firmware nicht zusagt kann den ursprünglichen Zustand
      mittels restore <COM-Nr> wieder herstellen. Hierbei kann es erforderlich
      werden das User-Programm noch einmal aus der BASIC oder CC-Plus
      Entwicklungsumgebung IDE hochzuladen, falls das automatische Backup
      während des Upgrades aus irgendwelchen Gründen nicht vollständig war.




(wird fortgesetzt)