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


'Lbit'

Mehrprogrammfähige Firmware für den C-Control I 1.1 Steuercomputer


(Ein Hobbyprojekt)


Diese 3 Varianten des C-Control I 1.1 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:


Die Leertaste startet das jüngst hochgeladene Anwenderprogramm:
      _________________________________       
            ||jüngsten Slot in Liste starten ||            
||_______________________________||
|/_______________________________\|

                
Die L-Taste listet die vorhandenen Slots auf:
_____
|| L ||
              ||___||              
              |/___\|     
         
                
Die Minustaste löscht das jeweils zuletzt hochgeladene Programm:

              

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

_____
|| A ||
              ||___||              
              |/___\|     
         
                
Die Taste 'a' deaktiviert den virtuellen Autostart-Jumper:

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


Die Taste E liest den Fehlerspeicher:

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




Die 'Lbit' Firmware wird per Windows PC über die Serielle Schnittstelle eingespielt (Upgrade).

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



Du nutzt einen Mac oder Linux? Mit dieser Virtuellen Maschine kannst du die 'Lbit' Firmware auch von dort aus einspielen. Bei Bedarf kannst Du den
Desktop der Virtuellen Maschine auf das Display deines Smartphone oder Tablet-Computer spiegeln.

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:


 - Dieses Firmwareupgrade steht in keiner Verbindung zur Conrad Electronic SE  und ist nicht für die C-Control I Unit M2.0, geeignet.

- 'Lbit' ist experimentelle Software und wird "so wie sie ist" zur nicht-exklusiven,  freien Nutzung zur Verfügung gestellt, sofern keine gesetzlichen Vorgaben dies ausschließen..
- Experimentelle Software kann Fehler enthalten und darf nicht in Anwendungen betrieben werden aus deren Versagen Personen-, Sach-, oder Vermögensschäden resultieren können.
- Die Herausgeber übernehmen keine Haftung für mögliche Schäden die aus der Nutzung oder Nichtnutzung der 'Lbit'-Software. Ist der komplette Haftungsausschluß im Gültigkeitsbereich der für dich gültigen gesetzlichen Vorgaben nicht gestattet, darfst du die 'Lbit'-Software nicht nutzen
- Alle Rechte an der 'Lbit' Software verbleiben bei den Herausgebern.

-Achtung:
Der Pin zum Autostart-Jumper darf auf keinen Fall ohne Vorwiderstand  mit der positiven  Versorgungsspannung verbunden werden (Bei einer im Originalzustand    belassenen C-Control I 1.1 ist dies in der Regel gewährleistet).
   
- Mit dem Herunterladen oder der Nutzung der 'Lbit'-Software erkennst du die vorstehenden 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

 - Die 'Lbit' Firmware und das Upgrade-Programm für Windows PC sind experimentelle Software. Für mögliche Schäden hieraus kann das |_ Team keine Haftung übernehmen.

 - Experimentelle Software darf in Anlagen aus deren Versagen Personen- und/oder Sach- und Vermögensschäden resultieren können natürlich nicht angewendet werden.


    Umbauten, 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 'Lbit'
    den Autostart-Pin aktiv auf low zieht).

    

Download:

Mehrprogrammfähige 'Lbit' Firmware für C-Control I 1.1

Noch mehr Software für deine C-Control:
L-E2TEST, das EEPROM-Funktionstest und Prüfprogramm (8...64 KiB)
(Dieses sinnvolle Tool sollte bei keinem Anwender fehlen!)

Installation des Upgrades:

Obigen Download mit Verzeichnisstruktur entpacken und auf der Windows Kommandozeile
ins Verzeichnis wechseln ( Windows -> Start -> Ausführen, dann ' CMD ' eingeben)

Um das Firmwareuprade einzuspielen, bitte " upgrade <COM-Nr> " eintippen.

Beispiel für C-Control an COM1: des PC:

      upgrade 1  


Tipp:

  Das eigene, vor dem Upgrade verwendete, User-Programm kann nach dem Upgrade halbautomatisch
  wieder hergestellt und wie zuvor normal verwendet werden (ohne Gewähr!) Siehe auch "transfer" weiter
  unten im Text.


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).

Für Poweruser interessant ist sicherlich dass auch selbst definerte Tokenbefehle in Tabellenform
nach dem Upgrade weiterhin genutzt werden können. (vgl. hierzu http://ccintern.dharlos.de/tipsutri.txt).

- Die vorliegende Firmware ist kompatibel zur Multitasking Erweiterung für die C-Control I 1.1 von
  Dietmar Harlos. Daraus ergeben sich faszinierende Möglichkeiten, die wir einmal an anderer Stelle
  ausführlicher beschreiben möchten.

- Schon im konventionellen Single-Tasking Betrieb lässt sich via Inter-Modul-Kommunikation eine Art kooperatives Multitasking nachbilden: Slots können zur Laufzeit programmgesteuert aktiviert, als Unterprogramm aufgerufen, und wieder beendet werden. Auch Plugins sind möglich. Siehe am Beispiel User Interface Program, 'UIP'.


- Nach dem Upgrade kann der Autostart-Jumper dauerhaft gesteckt bleiben, auch  während des Uploads
  oder nach bei Hardware-Reset.

- Als Ersatz für die bisherigen Funktionen des Autostart-Jumpers dienen die neuen Kommandos
  'a' und 'A' im Hostmodus.

- Du kannst das System über die Datenleitungen der Seriellen Schnittstelle steuern, ohne die
  Reset- oder Start-Taste zu  betätigen. Mit einem TCP/IP nach Seriell Adapter funktioniert das auch via 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 muss dazu der character mode eingeschaltet sein. Bitte kein RETURN oder LINEFEED verwenden!

Beispiel:

      terminal 2

Zur Signalisierung des Hostmodusbetriebs blinken abwechselnd die rote und gelbe LED,
solange kein Userprogramm ausgeführt wird (Idle-Modus). Per Fernwartung sieht man im
Terminalfenster das neue Eingabefeld (Die jeweilige Darstellung kann sich 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 (Dateiname: Userhost.ocb) mit dem
        der Hostmodus selbst um eigene Funktionen erweitert werden kann.
        Hier ist es ein rudimentärer HTTP-Webserver, eine Reset-Statistik,
        sowie farbig unterlegter Text, wenn ein ANSI-fähiges Terminalprogramm
        zur Darstellung verwendet wird. Programmiert mit 
Open-Control/BASIC, (.ocb)   dem
        BASIC-Dialekt
aus Dietmar Harlos' Open-Micro Projekt 

 


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

Slot 3: Beispiel zur neuen OS-Funktion "Host-ID ändern",   (.ocb)

Slot 4: Software-Reset zum Testen der Reset-Statistik,     (.ocb)

Slot 5: Hardware-Reset zum Testen der Reset-Statistik,     (.ocb)


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 vorhandene Userprogramm zurück in den Programmspeicher des
      C-Control transferiert werden. Ggfs. können einige der Beispielprogramme
      manuell gelöscht werden (Taste: "-"), um ausreichend Platz zu schaffen.

      Zuvor das Terminalfenster wieder schliessen und durch Eingabe von z.B.

      transfer 2  

      das alte Userprogramm hochladen. Hat dies gelappt erscheint das Programm
      nun an unterster Stelle der Liste, nach Eingabe von:
 
      terminal 2
       
      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)