Schachcomputer.info Community

Zurück   Schachcomputer.info Community > Schachcomputer / Chess Computer: > Die ganze Welt der Schachcomputer / World of chess computers


Antwort
 
Themen-Optionen Ansicht

  #1  
Alt 26.08.2016, 22:05
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto London 68030
 
Registriert seit: 26.08.2016
Land:
Beiträge: 373
Abgegebene Danke: 165
Erhielt 443 Danke für 175 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
1/20 8/20
Heute Beiträge
0/3 ssssss373
Neuer Schachcomputer: CT800

Hallo zusammen,

es gibt einen Neuzugang aus der Bastelfraktion - nach Art des AVR-basierten "Schachzwerges", nur mit modernerer Hardware und völlig anderem Programm. Wenn ich "Schachcomputer" technisch so definiere, daß er kein Betriebssystem hat, weil er eben nur als Schachcomputer gebaut wurde, dann fallen PCs, Notebooks/Linuxrechner in Holzbrettern, Tablets und Smartphones raus. Übrig bleiben sämtliche klassischen Schachcomputer sowie natürlich auch der Schachzwerg und mein neues Projekt.

Gab's nicht Beschwerden, daß man immer nur die ewig selben Programme in neuem Gehäuse angeboten bekommt, oder diverse Raspberries mit recompiliertem Stockfish? Habe ich nicht auch mal den Wunsch nach einem Brikett mit modernerer Hardware gelesen? Naja, kleine Wünsche erfüllt das Universum zwar sofort, aber für Debugging/Modifikation von 7.000 Zeilen fremdem Ausgangscodes plus 15.000 Zeilen zusätzlichen Quelltexts nebst Aufbau der Hardware braucht es auch schonmal ein wenig länger.

Hier die Eckdaten:

Bezeichnung: CT800

Hardware:

CPU: ARM Cortex M4 (STM32F405)
Takt: 168 MHz (nur während der Computer rechnet), übertakteter Turbomodus auf 200MHz einstellbar
ROM: 1 MB
RAM: 192 kB + 4 kB Backup-RAM
Anzeige: Textdisplay mit 4x20 Zeichen (Hintergrundbeleuchtung zuschaltbar), außerdem eine grüne und eine rote LED sowie ein Piepser
Eingabe: 4x4-Tastatur, Koordinaten-Notation
Energieversorgung: 4xAA-NiMH-Akkus oder über Netzadapter. Alkali-Batterien (nicht aufladbar) gehen auch, rechnen sich aber nicht.
Batterielaufzeit: 38 Stunden (ohne Turbo), 34.5 Stunden (mit Turbo)
Stromaufnahme bei 5 V:
Spieler am Zug: 16 mA
Rechner am Zug: 78 mA (Turbomodus: 88 mA)
(jeweils +45mA, wenn die Hintergrundbeleuchtung des Displays aktiviert ist)

Software:

Autor des ARM-Ports: meine Wenigkeit
Basisprogramm: NG-Play v9.86 (mit meinen umfangreichen Verbesserungen und Bugfixes als v10.0)
Autor des Basisprogramms NGplay v9.86: George Georgopoulos
Autor der KPK-Endspieltabelle: Marcel van Kervinck
Eröffnungsbuch: 17.000 verschiedene Halbzüge in 9.000 unterschiedlichen Positionen. Zugumstellungen und Transpositionen werden erkannt.
Hashtabellen: zusammen 117 kB
Pondering: keines
Spielstärke: ~2100 ELO (Colditz: 2344 -> zu leicht, BT-2450: 2135, BT-2630: 2144. Alles ohne Übertaktung.)
Programmiersprache: C (der beste portable Makro-Assembler überhaupt!)
Lizenz: GPLv3+

Die Lizenz bedeutet: freie/offene Software. Mit Quelltexten also.

Es gibt auch eine Onlinepräsenz, allerdings ausschließlich auf englisch, was allerdings besonders für die niederländischen Poster hier vielleicht schneller zu lesen ist.

http://www.ct800.net

Sofern gewünscht, kann ich aber auch gerne auf deutsch hier die Zusammenfassung mit Features usw. posten - das wird allerdings ein etwas längeres Posting, und ich möchte Euch ja hier nicht gleich erschlagen.

viele Grüße, Rasmus
Mit Zitat antworten
Folgende 16 Benutzer sagen Danke zu Rasmus für den nützlichen Beitrag:
Boris (09.01.2021), Chessguru (26.08.2016), Drahti (27.08.2016), Egbert (26.08.2016), Fluppio (27.08.2016), iuppiter (27.08.2016), Mapi (26.08.2016), mclane (27.08.2016), Michael (27.08.2016), Mythbuster (26.08.2016), pato4sen (25.11.2018), RetroComp (26.08.2016), Robert (27.08.2016), Solwac (28.08.2016), Theo (26.08.2016), Wolfgang2 (27.08.2016)
  #2  
Alt 26.08.2016, 22:42
Benutzerbild von Chessguru
Chessguru Chessguru ist offline
Administrator
 
Registriert seit: 29.06.2004
Ort: Rostock
Alter: 55
Land:
Beiträge: 6.474
Bilder: 1
Abgegebene Danke: 1.589
Erhielt 4.575 Danke für 1.377 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
9/20 20/20
Heute Beiträge
0/3 sssss6474
AW: Neuer Schachcomputer: CT800

Hallo Rasmus,

ja klar, also ich bin interessiert. Ich habe mir dein Projekt bereits etwas näher angesehen, besonders die Partien haben mich natürlich interessiert. Und ich bin positiv überrascht, sehr gute Arbeit. Einen Vancouver 68000 (richtig?) schlägt nicht mal so nebenbei in 36 Zügen.

Das Gerät ist wirklich mal was Neues. Respekt. Ein Schachcomputer im klassischen Sinne.

Gruß
Micha
Mit Zitat antworten
  #3  
Alt 26.08.2016, 22:47
Benutzerbild von Mythbuster
Mythbuster Mythbuster ist offline
Forengrinch
 
Registriert seit: 06.04.2008
Ort: UNESCO Welterbe
Land:
Beiträge: 6.906
Bilder: 257
Abgegebene Danke: 1.462
Erhielt 4.614 Danke für 1.522 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
8/20 16/20
Heute Beiträge
0/3 sssss6906
AW: Neuer Schachcomputer: CT800

Hi,
ganz ehrlich, denk mal drüber nach, was Du für so eine Kiste wie den Prototypen haben willst ... Brikett 2016 reloaded ... ich wäre interessiert!

Gruß,
Sascha
__________________
This post may not be reproduced without prior written permission.
Copyright (c) 1967-2024. All rights reserved to make me feel special. :-)
Mit Zitat antworten
  #4  
Alt 26.08.2016, 23:01
Benutzerbild von RetroComp
RetroComp RetroComp ist offline
Schachcomputer Koryphäe
 
Registriert seit: 20.04.2016
Ort: NRW
Land:
Beiträge: 1.037
Bilder: 2
Abgegebene Danke: 4.566
Erhielt 1.046 Danke für 503 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
5/20 8/20
Heute Beiträge
1/3 sssss1037
AW: Neuer Schachcomputer: CT800

Hallo Radius,

das ist ja eine super Vorstellung hier mit einem selbst entwickelten Schachcomputer - klasse!

Mein Englisch ist nicht so ganz toll, vieles kann ich auf der Seite aber gut verstehen. Nicht ganz verstehe ich, ob Du den nun in größeren Stückzahlen produzieren willst?

Viele Grüße und herzlich willkommen,
Jürgen
Mit Zitat antworten
  #5  
Alt 26.08.2016, 23:01
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto London 68030
 
Registriert seit: 26.08.2016
Land:
Beiträge: 373
Abgegebene Danke: 165
Erhielt 443 Danke für 175 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
1/20 8/20
Heute Beiträge
0/3 ssssss373
AW: Neuer Schachcomputer: CT800

@ Chessguru: das war der Vancouver 020 mit 12MHz.

Die älteren Geräte haben mitunter Probleme mit dem Eröffnungsbuch des CT800 - das geht sehr in die Breite, oftmals auch leicht suboptimal, aber abwechslungsreich. War übrigens eine Heidenarbeit, von 1.000 Zügen auf 17.000 Züge zu kommen. Jeder einzelne per Hand eingegeben und mit DeepShredder gegengecheckt.


@ Mythbuster: Der ist so nicht bezahlbar, weil ich für den Prototypen nicht aufs Geld gesehen habe. Die Tasten alleine liegen bei 400 Euro Materialkosten, weil das vandalismussichere, wasserdichte Piezotaster sind. Aber sie sehen halt cool aus. Die Frontplatte mit 55 Euro war auch nicht direkt günstig.

Und dann noch zig Tage Arbeit, weil der ganze Aufbau ja auch alles von Hand gelötet ist. Nicht zu vergessen, wenn ich diese Teile verkaufen wollte, würden mir CE-Laborprüfungen und Elektrogesetz das Genick brechen.

Die Idee wäre eher, daß man die Kiste für eine annehmbare Serienproduktion umstrickt, das sollte sich für vielleicht 30 Euro machen lassen, industriell gefertigt. Da hier ja auch Hersteller mitlesen und sich auch Kundenanregungen zu Herzen nehmen, könnte sich da vielleicht etwas ergeben. Deswegen habe ich auch die Hardware ausgiebig dokumentiert, damit Hersteller das leicht umstricken können.

Aber gut, dann mal das Folgeposting mit den ausführlicheren Features, weil nicht jeder gerne auf englisch lesen mag.
Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu Rasmus für den nützlichen Beitrag:
Boris (03.02.2021), Chessguru (27.08.2016)
  #6  
Alt 26.08.2016, 23:07
Benutzerbild von RetroComp
RetroComp RetroComp ist offline
Schachcomputer Koryphäe
 
Registriert seit: 20.04.2016
Ort: NRW
Land:
Beiträge: 1.037
Bilder: 2
Abgegebene Danke: 4.566
Erhielt 1.046 Danke für 503 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
5/20 8/20
Heute Beiträge
1/3 sssss1037
AW: Neuer Schachcomputer: CT800

Hallo Rasmus,

meine Frage wurde durch Deinen letzten Beitrag schon beantwortet.

Danke
Jürgen
Mit Zitat antworten
  #7  
Alt 26.08.2016, 23:07
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto London 68030
 
Registriert seit: 26.08.2016
Land:
Beiträge: 373
Abgegebene Danke: 165
Erhielt 443 Danke für 175 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
1/20 8/20
Heute Beiträge
0/3 ssssss373
AW: Neuer Schachcomputer: CT800

Features (das wurden irgendwie immer mehr?!):

- Zugeingabe:
Über die Tastatur; eingegeben wird Ausgangsfeld und Zielfeld des Zuges. Das wird, ebenso wie die Antwort des Computers, bei der angezeigten Zugliste dann noch in die lange algebraische Notation konvertiert. Diese Konvertierung gilt allerdings nur für das normale Spiel, nicht für die Analysestufe und die angezeigte Hauptvariante. Grund ist, daß die ausführliche Notation eben mehr Platz in der Anzeige kostet.

- Zeitkontrollen:
Zeit pro Zug (Sekunden): minimal, 5, 10, 20, 30, 60, 120, 180 (wahlweise hart, oder aber mit gelegentlichem Spielraum - jedoch nie mehr als das Dreifache der eingestellten Zeit, und bei Zeiten über 60s wird nur ein Zuschlag von maximal 60s gewährt)
Zeit pro Spiel (Minuten für jeden Spieler): 5, 10, 15, 20, 30, 45, 60, 90
Hierbei kann der Nutzer auch einen Faktor zwischen 1 und 4 einstellen, um den seine anfängliche Bedenkzeit erhöht wird. Man kann also z.B. mit 60 Minuten für den Menschen und 15 für den Computer spielen.
Turniermodi (Züge/Minuten+Minuten): 40/90+30, 40/120+30, 40/120+60, 40/120,20/60+30
Analysestufe: 9 Stunden pro Zug, unterbrechbar.
Fischerzuschlag (Sekunden): aus, 10s, 20s, 30s.
Spielerzuschlag (Sekunden): aus, 15s (für die Bedienung; unabhängig vom Fischerzuschlag).
- Bei den Zeitmodi "Zeit pro Spiel" und "Turnier" startet die Zeitberechnung erst nach dem ersten Halbzug von Weiß. Das vereinfacht z.B. Turniere.
- Nach Verlust durch Zeitüberschreitung kann die Partie im "Zeit pro Zug"-Modus weitergespielt werden.

- Wenn der Computer denkt, prüft er, ob sich der Start der nächsten Tiefen-Iteration überhaupt noch lohnt, also im Hinblick auf die verbleibende Bedenkzeit für seinen Zug. Wenn nicht, spart er sich die Zeit lieber. In den Zeitmodi "Zeit pro Spiel" und "Turnier" wird diese Zeit dann zusammen mit der Zeitersparnis aus dem Eröffnungsbuch für das Endspiel aufgehoben. Im entspannten "Zeit pro Zug"-Modus wird damit kompensiert, daß er gelegentlich auch mal das Dreifache der eingestellten Zeit denken kann.

- Analysestufe: angezeigt wird die Zugnummer der Partie, automatisch aktualisiert wird die Bewertung, die Suchtiefe, die Zeit bis zum aktuellen Startzug der Hauptvariante, die laufende Bedenkzeit und die Hauptvariante mit bis zu 8 Halbzügen. Allerdings ist die Stellungsbewertung nicht darauf getrimmt, eine Bewertung für den Menschen abzugeben, sondern um brauchbare Züge zu bekommen. Daher ist die Hauptvariante einigermaßen verläßlich (bezogen auf die verfügbare Spielstärke), aber die absolute Bewertung ist mit Vorsicht zu interpretieren. Außerdem ist die Bewertung in Teilen asymmetrisch, damit das Programm tendentiell Stellungen anstrebt, die ihm liegen.

- Farbwahl zu Beginn: Fest (Weiß/Schwarz), zufällig, zwei menschliche Spieler.
- Farbwechsel jederzeit möglich (bei Partien mit Zeitkontrollen unter Umschaltung nach "Zeit pro Zug").
- Man kann im Spiel auch zu "zwei menschliche Spieler" umschalten, um Züge einzugeben (in den Zeitmodi "Zeit pro Spiel" und "Turnier" kann man dann allerdings nicht mehr auf Computergegner zurückschalten - der Wechsel zu "Zeit pro Zug" wird aber automatisch vorgeschlagen).

- Dialoge, Menüaufrufe, Ansehen der Position usw. gehen nicht von der Bedenkzeit des Spielers ab.

- Position:
- Anschauen, Anschauen mit gedrehtem Brett, Materialliste. Dabei werden die obere und die untere Hälfte des Brettes nebeneinander angezeigt, was bei 4 Zeilen Display noch am meisten Übersicht bietet. Scrolling wäre eher schlechter.
- Eingabe: inkl. Vorgabe von Rochaderechten, sofern Rochaden denkbar wären, sowie der Angabe, welche Seite in der eingegebenen Position am Zug ist. Sofern nicht Spieler gegen Spieler eingestellt ist, übernimmt der Rechner dann zunächst die Seite, die nicht am Zug ist. Mit der "go"-Funktion kann er aber auch hier die Seiten wechseln. Das Eröffnungsbuch funktioniert auch für eingegebene Positionen, sofern die Rochaderechte entsprechend ausgewählt wurden. Allerdings geht dann die gesonderte Eröffnungsbehandlung nach Buchende nicht, was die Mobilitätswerte der Figuren betrifft.
- Partie-Notation: erreichbar über das Menü oder nach Partieende über den Positionsdialog. Gibt die Partie in algebraischer Notation wieder. Jeweils vier Halbzüge auf einmal werden mit Zugnummer angezeigt, man kann dann durchblättern. Das funktioniert auch für Partien, in denen Schwarz den ersten Zug hatte (eingegebene Position), dann wird der erste, fehlende Halbzug von Weiß wie in Büchern auch üblich mit "..." angezeigt.

- Anzeige von Stellungsbewertung und Hauptvariante (6 Halbzüge) über aufrufbare Dialogboxen. Die Rechentiefe wird dabei in Halbzügen angezeigt. Wenn die selektive Rechentiefe (Quiescence usw.) höher als der brute-force-Sockel ist, wird das im x/y-Format angezeigt - x Halbzüge brute force, y selektiv. Andernfalls wird die Rechentiefe nur als "x Halbzüge" angezeigt.

- Hat eine Seite einen deutlichen, aber nicht entscheidenden Vorteil (ab +/- 0.5 Bauerneinheiten), wird automatisch + bzw. - angezeigt, also in der Übersicht ohne extra Dialogbox. +, wenn der Rechner sich im Vorteil sieht, andernfalls -.
- Ein entscheidender Vorteil (ab +/- 3 Bauerneinheiten) wird mit ++ / -- angezeigt.
- Ein erzwingbares Matt wird mit +m bzw. -m angekündigt.
- Hat der Rechner seinen letzten Zug aus dem Eröffnungsbuch bezogen, wird 'b' angezeigt.
- Sieht der Rechner sich um mehr als 9.5 Bauerneinheiten im Nachteil, dann verkündet er seine Aufgabe per Dialogbox und bietet eine neue Partie an. Die Aufgabe kann aber abgelehnt werden, z.B. wenn man es bis zum Matt ausspielen möchte. Dann gibt er in dieser Partie nicht mehr auf.

- Man kann im Spiel auch zu "zwei menschliche Spieler" umschalten, um Züge einzugeben (in den Zeitmodi "Zeit pro Spiel" und "Turnier" kann man dann allerdings nicht mehr auf Computergegner zurückschalten - der Wechsel zu "Zeit pro Zug" wird aber automatisch vorgeschlagen).

- Verrauschte Stellungsbewertung: aus, leicht (+/- 0.10), mittel (+/- 0.30), stark (+/- 0.50) - jeweils in Bauerneinheiten. Um diesen Unsicherheitsbetrag wird die Bewertung verrauscht (nur im Mittelspiel, nicht im Endspiel). Je mehr Rauschen, desto mehr Abwechslung, aber mit negativen Auswirkungen auf die Spielstärke. Andererseits kann man damit die Spielstärke auch etwas drosseln.

- Undo/Redo: Über die gesamte Partie bei Zeitkontrolle "Zeit pro Zug" oder im Analysemodus, sonst 40 Halbzüge (die Bedenkzeiten bei Partien mit Zeitkontrolle werden dabei ebenfalls zurück- bzw. vorgebucht, inklusive eventuellem Fischer- und Spielerbonus).

- Eröffnungsbuch mit 17.000 Halbzügen in 9.000 Positionen. Zugumstellungen werden erkannt. Außerdem wird auch erkannt, wenn man mit Weiß logisch die schwarze Seite nimmt (mit einem Zug Tempoverlust). Manche Spieler tun das, um Computer aus dem Buch zu werfen und dennoch Eröffnungstheorie zu haben - das geht aber nicht, wenn der Computer den Trick auch kennt.
- Eröffnungsbuch abschaltbar (außer zum ersten Halbzug von Weiß, wegen der Zeitverwaltung).

- Jenseits des Eröffnungsbuches werden Stellungstypen mit geschlossenem oder blockiertem Zentrum (c-f) erkannt und möglichst vermieden. Quasi ein simpler anti-human-mode.

- Schnellantworten (gelten nicht für die Analysestufe). Sinn der Sache ist, Bedenkzeit zu sparen in den Zeitpartien und den Benutzer außerdem nicht mit unnötigem Herumgerechne zu nerven:
- Wenn es nur einen legalen Zug gibt, führt der Computer ihn ohne weitere Berechnung aus.
- Wenn der Computer sofort mattsetzen kann, macht er das auch.
- Wenn er im nächsten Zug zwangsläufig mattgesetzt wird, bricht er die Berechnung ab und zieht irgendeinen legalen Zug.
- Wenn es mehrere legale Züge gibt, aber davon nur einer verhindert, daß der Computer im nächsten Zug mattgesetzt wird, führt er den auch einfach aus.
- Die Stellungsbewertung ist dann entweder der vorherigen Hauptvariante entnommen, wenn der Spieler dementsprechend gezogen hat, oder ansonsten der flachen Vorsuche (3 Halbzüge), die zum Vorsortieren der Züge verwendet wird. Außer wenn es nur einen legalen Zug gab, aber der Spieler dabei nicht die Hauptvariante gezogen hat, dann gibt es keine Stellungsbewertung. Kurz gesagt wird die beste verfügbare Datenbasis herangezogen, die trotz der Schnellantwort vorhanden ist.

- Unterverwandlung geht, sowohl seitens des Computers wie auch des Spielers. Gibt man keine Wunschfigur bei der Umwandlung vor, wird automatisch eine Dame gewählt.

- Remis durch dreifache Stellungswiederholung ist implementiert, auch wenn die Stellung sich nicht aufeinanderfolgend wiederholt.
- Remis durch die 50-Züge-Regel ist implementiert. Außerdem wird die Stellungsbewertung nach 20 Vollzügen ohne Schlagzug oder Bauernzug graduell in Richtung Remis abgesenkt, damit das Programm diese Tendenz rechtzeitig erkennt, insbesondere in der Verteidigung. Gilt nicht für Endspiele ohne Bauern.

- Implementierte Endspiele:
- Mattführung gegen alleinstehenden König (mit König plus Dame, Turm, Läuferpaar oder Springer+Läufer).
- König plus Bauer gegen König (Endspieltabelle).
- Remis bei Randbauern und falschem Läufer, wenn der verteidigende König das Umwandlungsfeld beherrscht. Auch dann, wenn der Randbauer ein Mehrfachbauer (doppelt, dreifach, ...) ist.
- Remiserkennung bei König und zwei Springern gegen König.
- Hat eine Seite nur noch eine Leichtfigur, die andere aber noch Bauern, dann wird immer die Seite mit Bauern als vorteilhaft erkannt, auch wenn nach reinem Materialwert die Seite mit der Leichtfigur besser steht (z.B. K+L vs. K+2B).

- Konfiguration auch nach Batteriewechsel verfügbar.

- Die laufende Partie kann man über das Menü speichern, so daß sie nach einem Batteriewechsel zu laden geht (inklusive der Zeiten bei Partien mit Zeitkontrolle). Es kann aus Speicherplatzgründen nur ein Spielstand gespeichert werden.
- Nach jedem Zug wird die Partie automatisch gespeichert. Das gilt nicht, wenn eine Partie manuell gespeichert wurde, die hat dann Vorrang. Es gilt außerdem nicht nach dem ersten Zug von Weiß, falls dieser direkt (also ohne Go-Taste) durch den Computer ausgeführt wurde und aus der Grundstellung heraus stattfindet. Andernfalls käme man nämlich nach einem Stromausfall nicht mehr ins Menü zum Laden der vorigen Partie, wenn konfiguriert ist, daß der Computer Weiß hat, oder bei zufälliger Farbverteilung, wenn er zufällig Weiß bekommt.
- Eine manuell gespeicherte Partie läßt sich per Löschfunktion entfernen, wodurch automatisches Speichern wieder aktiviert wird.

- Watchdog: sollte es zu einer Endlosschleife oder sonstigem "Aufhängen" kommen, wird automatisch neu gebootet.

- RAM/ROM-Test, externer Quarz, Tastatur: Wird beim Hochfahren automatisch geprüft. Ist das Ergebnis nicht OK, gibt's eine Hinweis-Dialogbox, aber keine Abschaltung. Selbst mit nicht bestücktem externen Quarz läuft das Gerät nahezu normal, abgesehen von etwas ungenauerer Zeit.

- Turbomodus: Statt der regulären 168MHz wird die Taktfrequenz auf 200MHz erhöht, während der Computer rechnet. Der Unterschied in der Taktfrequenz beträgt 19%, allerdings ist die Beschleunigung netto (nachgemessen) nur 13%. Per Default abgeschaltet, weil jenseits der Systemspezifikation.

- Displaykontrast über das Menü einstellbar (wird abgespeichert).

- Die Displaybeleuchtung kann man konfigurieren: immer aus, immer an oder automatisch. In letzterem Fall ist das Licht 15s lang aktiviert, wenn man eine Taste drückt oder wenn der Computer seinen Zug macht. Im Analysemodus löst eine neue Rechentiefe 30s lang die Beleuchtung aus. Außerdem gibt es einen extra Lichttaster, mit dem das Licht immer für 30s angeht, auch während der Computer rechnet. Eine Ausnahme ist hier der Zustand mit bereits schwächelnden Batterien, dann geht das Licht gar nicht mehr.

- Piepser kann per Konfiguration abgeschaltet werden, emuliert auch einen Tastaturklick.

- Batteriespannung wird überwacht, damit die Akkus nicht beschädigt werden (NiMH sind da empfindlich):
- Eine Dialogbox informiert über die nachlassende Spannung (bei 1.1V pro Zelle).
- Im Display wird bei nachlassender Spannung "BAT" angezeigt.
- Droht Tiefentladung (bei 1.0V), gibt's eine Dialogbox, die zum Abschalten des Gerätes auffordert. Das System fährt sich dann selber runter und kann nur mit einem Ausschalten/Anschalten-Zyklus gestartet werden.
- Nach dem Einschalten und vor jeder neuen Partie wird die Taktfrequenz maximiert, um die Batterien zu testen. Bei weniger als 1.15V pro Zelle ist keine neue Partie möglich (reicht eh nicht mehr), und das Gerät fordert zum Ausschalten auf.
- Der Turbomodus wird bei schwächelnden Batterien ignoriert, und das Licht geht auch nicht mehr.
- Verpolung beim Batterieeinlegen wird per Hardware abgefangen (folgenlos).
- Überspannung wird per Schmelzsicherung abgewendet.
- Die beiden Stromversorgungen (Netzadapter und Batterie) sind separat abgesichert.

Und das Besondere: freie Software. Deswegen stehen die komplette Software, die Tools und das Eröffnungsbuch unter der GNU General Public License (GPL) Version 3 oder höher. Es gibt hier nicht so etwas wie "geistiges Eigentum" in dem Sinne, daß es etwas zu Bewachendes darstellt, sondern in dem Sinne, daß es etwas zu Teilendes ist. Mit der Schachcomputer-Definition von oben dürfte dies einer der stärkeren Schachcomputer mit freier Software sein.

Man kann das Programm auch am PC weiterentwickeln (GCC-x86 unter GNU/Linux oder Windows mit Cygwin), weil die Unterschiede sich, was die Quelltexte angeht, auf eine hardware-abhängige Datei konzentrieren (plus der ARM-Lowlevel-Treiber), während der ganze Rest der Applikation davon unabhängig ist.

Man kann das natürlich auch auf andere Controller portieren; allerdings wäre das einiges an Arbeit, weil ich keine Lowlevel-Bibliotheken benutzt habe. Das funktioniert mit direkten Registerzugriffen nach Datenblatt, also in den ARM-spezifischen Abschnitten. Ich wollte die Geschwindigkeit halt nicht mit einer generischen Bibliothek verheizen. Es gibt auch kein Betriebssystem, kein Threading, kein Dateisystem - nichtmal die C-Standardbibliothek.

Eigentlich wär's ganz cool, wenn sich ein Hersteller fände, der Lust hätte, so ein Brikett in Serie zu bauen. Muß ich mal schauen. Kommerzielle Nutzung ist lizenzmäßig unbedenklich und ebenso kostenlos wie private. Ein kleiner Haken daran ist allerdings, daß es sich um freie Software handelt, d.h. die exklusive Lizensierung der Software ist ausgeschlossen. Es gibt ausschließlich GPLv3+, mitsamt der Verpflichtung zur Aushändigung der Quelltexte an die Käufer. Andererseits ist das ja bei den ganzen GNU/Linux-Rechnern mit Stockfish augenscheinlich auch kein Problem.

In der Version, die ich hier habe, wird das allerdings niemals in Serie gebaut werden - alleine die Tasten belaufen sich im Materialwert auf über 400 EUR, weil es Piezoschalter sind, die eigentlich für wassergeschützte Geräte gedacht sind. Aber die sind cool. ^^ Man kann aber auch eine Matrix-Tastatur anschließen, die Software ist genau darauf ausgelegt. Die einzelnen Schalter habe ich selber sowieso mit einer kleinen Platine so zusammengelötet, wie es einer Matrix-Tastatur entspricht.
Mit Zitat antworten
Folgende 6 Benutzer sagen Danke zu Rasmus für den nützlichen Beitrag:
Boris (03.02.2021), Chessguru (27.08.2016), Mapi (27.08.2016), pato4sen (16.10.2016), RetroComp (26.08.2016), RolandLangfeld (27.08.2016)
  #8  
Alt 27.08.2016, 12:50
Benutzerbild von RetroComp
RetroComp RetroComp ist offline
Schachcomputer Koryphäe
 
Registriert seit: 20.04.2016
Ort: NRW
Land:
Beiträge: 1.037
Bilder: 2
Abgegebene Danke: 4.566
Erhielt 1.046 Danke für 503 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
5/20 8/20
Heute Beiträge
1/3 sssss1037
AW: Neuer Schachcomputer: CT800

Hallo Rasmus,

warum ist das pondern grundsätzlich abgestellt, könnte man nicht auch den Nutzer wählen lassen, ob mit oder ohne pondern gerechnet wird?

Viele Grüße
Jürgen
Mit Zitat antworten
  #9  
Alt 27.08.2016, 15:55
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto London 68030
 
Registriert seit: 26.08.2016
Land:
Beiträge: 373
Abgegebene Danke: 165
Erhielt 443 Danke für 175 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
1/20 8/20
Heute Beiträge
0/3 ssssss373
AW: Neuer Schachcomputer: CT800

Hi Jürgen,

das hat eine Reihe von Gründen.

1) Wenn man mal eine Trefferrate von 100% unterstellt, würde das die Rechenzeit in Partien mit symmetrischer Zeitverteilung verdoppeln. Das wäre dasselbe wie eine Geschwindigkeitsverdoppelung, also ein Zuwachs um die 60 ELO.

Da das Programm anders als die allermeisten anderen Programme kein Verständnis für Eroberung des Raumes hat, sondern nur Mobilität erwägt, sind die Trefferraten typisch nur um die 25%, außer in erzwungenen Situationen. Damit wären dann noch etwa 19 ELO-Punkte gutzumachen, was bei ELO 2100 nicht mehr wirklich ins Gewicht fällt.

2) Der ganz große Haken wäre, daß der gesamte Kontrollfluß dafür umgeschrieben werden müßte. Derzeit geht Usermodus nicht parallel mit Berechnungen, weil der Kontrollfluß nahezu sequentiell ist (abgesehen halt von Interrupts).

Wollte man das ändern, dann wären die Mechanismen dafür auf der Entwicklungsplattform (x86) Multithreading, und auf der Zielplattform wäre es dann mal Zeit für ein kleines Echtzeit-Betriebssystem (es sind aber nur noch etwa 6 kB an freiem RAM verfügbar). Separate Stacks für die Threads wären auch noch ein Problem, weil sich Userthread und Computerthread dann vom Stackbedarf her addieren würden.

Die Codebasis würde auseinanderdriften, ebenso wie die vergleichbare Testbarkeit angesichts von Multithreading. Damit wäre aber eines der Hauptfeatures der Software verloren, nämlich daß man die eigentliche Applikation auch am PC weiterentwickeln und debuggen kann. Sogar Leute, die nichtmal eine Zielhardware haben, können derzeit Anregungen beitragen, weil sie das auf dem PC testen können. Und das auch noch auf jedem Betriebssystem, für das der Compiler GCC verfügbar ist (also alle).

Das vereinfacht außerdem eine mögliche Portierung auf Plattformen, die jetzt noch gar nicht existieren, weil die Unterschiede sich auf den Lowlevel-Treiber konzentrieren.

Es wird sogar PC-seitig noch schlimmer, weil das Thread-Handling unter Windows und Linux nicht identisch ist, so daß sich selbst die PC-Version dann noch in Linux und Windows zersplittern würde. Derzeit ist es egal, weil es eine singlethreaded Kommandozeilen-Anwendung ist. Das würde sogar unter DOS funktionieren.

Ich konnte heute übrigens erst wieder die PC-Version als Testplattform sehr angenehm nutzen. Bislang war der CT800 bei leicht schlechterer Stellung mit Remis durch Stellungswiederholung schnell zu einem Unentschieden zu bewegen. Das macht er jetzt nicht mehr unterhalb von 30 Zügen und wenn er nicht schlechter als -0.4 Bauerneinheiten steht, weil ich ihm die entsprechenden Züge einfach von seiner Zugliste eliminiere. Mit den Debugausgaben war auch schnell zu sehen, ob ich da auch das Richtige wegstreiche.

viele Grüße, Rasmus
Mit Zitat antworten
Folgende 2 Benutzer sagen Danke zu Rasmus für den nützlichen Beitrag:
RetroComp (27.08.2016), RolandLangfeld (27.08.2016)
  #10  
Alt 27.08.2016, 18:36
Benutzerbild von Rasmus
Rasmus Rasmus ist offline
Mephisto London 68030
 
Registriert seit: 26.08.2016
Land:
Beiträge: 373
Abgegebene Danke: 165
Erhielt 443 Danke für 175 Beiträge
Member Photo Albums
Aktivitäten Langlebigkeit
1/20 8/20
Heute Beiträge
0/3 ssssss373
AW: Neuer Schachcomputer: CT800

 Zitat von RetroComp Beitrag anzeigen
meine Frage wurde durch Deinen letzten Beitrag schon beantwortet.
Hi Jürgen,

ja, produzieren plane ich nicht; andererseits ist für Bastler der Eigenbau durchaus drin. Dann müssen es ja auch nicht diese teuren Taster sein. Elektrisch verhalten die sich wie eine 4x4-Matrix-Tastatur, etwa FTAC 3535, für welche auch schon Einlegestreifen vorgesehen sind. Die liegt bei 12 Euro oder so, Reichelt hat die. Alternativ gehen auch Microschalter, z.B. aus Computer-Tastaturen, und die haben dann auch nicht so eine hohe Bedienkraft wie das FTAC-Teil.

Die Hauptplatine mit dem Controller gibt's fertig bei Olimex zu kaufen, das Gehäuse ist um die 15 Euro (gibt's bei Völkner), das Batteriefach gibt's auch dort. Zeitaufwendig daran ist das Gebastel selber. Ist aber alles gut dokumentiert und sollte für Hobbybastler kein Problem sein, wenn man mit dem Lötkolben per Du ist.

Wenn man nur die Durchbrüche und Bohrungen fürs Display hat, kann man das auch noch von Hand mit Bohrmaschine und Feile lösen. Oder man zeichnet sich eine Frontplatte und bestellt die bei Schaeffer in Berlin. Auch die Rückplatte mit dem rausgeführten JTAG-Port zum Flashen und Debuggen braucht man nicht unbedingt, außer natürlich für die Entwicklungsversion.

Ich schätze mal, wenn man das so hobbymäßig macht, wird man dafür schon einen Monat einrechnen müssen. Ich habe länger dafür gebraucht, was aber auch daran lag, daß ich bei der Hardware einige Redesigns dabeihatte und außerdem die ganzen Datenblätter wälzen mußte, um rauszukriegen, ob das überhaupt so geht, wie ich mir das dachte.

/*****/

Für mich ist bei dem ganzen Projekt ja anfangs die Motivation gewesen, etwas über die aktuellen ARM-Cortex-Controller zu lernen und praktische Erfahrung damit zu sammeln. Außerdem macht sich so ein Projekt im Lebenslauf ganz gut, sollte ich mich mal wieder irgendwo bewerben wollen oder müssen, weil ich auch beruflich mit embedded systems arbeite. Auch ein Grund, wieso die Webseite ebenso wie die ganze Doku auf englisch ist, weil englisch in der Branche eine Grundanforderung ist.

/*****/

Und naja, für mich schließt sich hier in gewisser Weise ein Kreis. Damals, es war 1988, bekam ich meinen MM4 und war total fasziniert davon. Ich hatte noch nichtmal einen PC, geschweige denn, daß ich ans Programmieren auch nur dachte. Jetzt, 28 Jahre danach (wie doch die Zeit vergeht) habe ich einen eigenen Schachcomputer hier stehen. Ich glaube, wenn jemand verstehen kann, was das persönlich bedeutet, dann sind es andere Schachcomputer-Freaks.

Zwar ist das Ausgangsprogramm NG-Play nicht von mir, aber der Spielstil der jetztigen Version ist es, weil ich in der Bewertungsfunktion kaum einen Stein auf dem anderen gelassen habe. Außer der Portierung selber habe ich die Software auch noch umgeschrieben. Es spielt in etwa so, wie ich spielen würde, wenn ich taktisch nicht so schlecht wäre - zu meinen besten Zeiten hatte ich mal etwa ELO 1700.

Übrigens hat die Spielstärke in der ARM-Version relativ zur Ausgangsversion nicht wesentlich gelitten. NG-Play v9.86 ist in der PC-Version mit ELO 2173 gelistet bei der CCRL, und die ARM-Version hat bei wesentlich weniger Rechenkraft und viel weniger Speicher für die Hashtables trotzdem noch um die 2100. Was daher kommt, daß sie eine Menge an Wissen mehr hat.

viele Grüße, Rasmus
Mit Zitat antworten
Folgende 3 Benutzer sagen Danke zu Rasmus für den nützlichen Beitrag:
Boris (09.01.2021), Egbert (27.08.2016), RetroComp (27.08.2016)
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du bist nicht berechtigt, neue Themen zu erstellen.
Du bist nicht berechtigt, auf Beiträge zu antworten.
Du bist nicht berechtigt, Anhänge hochzuladen.
Du bist nicht berechtigt, deine Beiträge zu bearbeiten.

BB code ist An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.

Gehe zu

Ähnliche Themen
Thema Erstellt von Forum Antworten Letzter Beitrag
Neuer Millennium Schachcomputer ab heute bei Plus... hmchess Die ganze Welt der Schachcomputer / World of chess computers 52 11.08.2020 11:05
ein Neuer SkobyMobil Vorstellung / Presentation 7 02.07.2015 15:15
Neuer Schachcomputer auf dem Markt... Endspielgott Die ganze Welt der Schachcomputer / World of chess computers 8 15.06.2007 22:11
Wieder ein Neuer Günter Vorstellung / Presentation 0 24.02.2005 17:53
ein Neuer! José Vorstellung / Presentation 4 24.02.2005 15:36


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr.



Powered by vBulletin (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
©Schachcomputer.info