picoAC1 – Reference Design

Bei diesem Projekt geht es um den picoAC1 [1], eine moderne Version des AC1 (Abkürzung für „Amateurcomputer 1“) [2], welcher 1983 erstmals in der DDR-Zeitschrift „Funkamateur“ als 8-Bit-Computer-Bausatz veröffentlicht wurde.

Da ich mit dem Z80-Prozessor praktisch aufgewachsen bin, suche ich schon eine Weile nach einem passenden Z80-Board. Und das picoAC1 erfüllt all meine Wünsche:

  • Kompatibilität zum originalen AC1 mit dem Monitor 3.1 in der Ausbaustufe mit 64 KByte RAM – und damit auch CP/M-fähig
  • Micro-SD-Karte als Massenspeicher
  • Übliche USB-Tastatur und VGA-fähiger Monitor als Peripherie
  • Stromversorgung über 5V-USB-C-Steckernetzteil
  • Einplatinenlösung im Europakartenformat (100 mm x 160 mm)
  • Erweiterungssteckverbinder
  • Verwendung aktuell handelsüblicher Bauelemente, Budget ca. 80 €
  • Aufbau mit Lötstation (Ü65-tauglich)
  • Aufbau und Inbetriebnahme soll an einem Wochenende möglich sein

Den picoAC1 bauen

Der picoAC1 ist kein Bausatz, aber der Aufbau ist dank bereitgestellter Ressourcen unkompliziert.

  • Platinenherstellung: Die Gerber-Datei für die Leiterplatte ist auf GitHub verfügbar: picoAC1_V1.0_03.zip [3].

  • Bauteilbeschaffung: Tipps zur Beschaffung und Montage der Komponenten sind dokumentiert: Amateur(funk)computer AC1 – 40th anniversary
    Projekt picoAC1 [4]. Hier in Deutschland bietet es sich an die Komponenten bei Reichelt zu beschaffen und Amazon. Eine entsprechende Bauteile-Liste findet sich weiter unten.

  • Gehäuse: STL-Dateien für den 3D-Druck eines Gehäuses stehen bereit: Case [5]. Zusätzlich werden 10 x M2,5×10 mm Schrauben und 10 x M2,5 Muttern benötigt.
  • Firmware: Die Firmware für die beiden Raspberry PI Pico wird über ein USB-Micro-Kabel hochgeladen, ohne spezielle Hardware: pico_IO_v1.3.1.uf2 [6] und picoVDU_v1.3.0.uf2[7].

  • EPROM: Der EPROM-Inhalt kann als BIN-File (picoMon_all_1.1.0.bin [8]) oder HEX-File (picoMon_all_1.1.0.bin [9])  heruntergeladen werden und mit einem EPROM Brenner (wie z.B. dem MiniPRO) gebrannt werden. Es können EPROMs der Typen 27C64, 27C128, 27C256 oder 27C512 gewählt werden, oder EEPROMs der Typen 29C64, 29C128 und 29C256.

Die Platine lässt sich mit einem einfachen Lötkolben zusammenbauen. Auf der Unterseite sind einige SMD Bauteile die etwas mehr Fingerspitzengefühl benötigen aber sonnst machen die durchsteckmontierten Bauteile den Prozess auch für Hobbyisten mit mäßiger Löt-Erfahrung zugänglich. Der 3D-Druck des Gehäuses verleiht dem Projekt ein professionelles Aussehen.

Bauteile-Liste

Inbetriebnahme

Hier zur Übersicht die notwendigen Schritte zur Inbetriebnahme, welche ebenfalls auf Amateur(funk)computer AC1 – 40th anniversary Projekt picoAC1 [4] beschrieben sind:

  1. picoIO-Firmware flashen
    • pico_IO_v1.3.1.uf2 [6]
  2. picoVDU-Firmware flashen
    • picoVDU_v1.3.0.uf2[7]
  3. EPROM brennen
    • picoMon_all_1.1.0.bin [8] oder picoMon_all_1.1.0.bin [9]
  4. Inbetriebnahmeschritt 1
    • Keine steckbaren Bauelemente auf dem Board.
    • Spannung anlegen und an den Fassungen messen.
      Stromaufnahme: ca. 4 – 10mA
  5. Inbetriebnahmeschritt 2
    • 74HCT-ICs, die beiden Picos und RN2 stecken
    • VGA-Kabel anschließen und Versorgungsspannung anlegen
    • Auf dem Monitor sollte dieses Muster erscheinen
  6. Inbetriebnahmeschritt 3
    • EPROM stecken
    • Jumper J6 und J7 je nach EPROM-Typ stecken
    • SRAM, PIO und CTC stecken
    • Versorgungsspannung anlegen
    • Nach Anlegen der Spannung sollte die Monitorausschrift und der blinkende Cursor zu sehen sein.
      Stromaufnahme: ca. 70mA
  7. Inbetriebnahmeschritt 4
    • USB-Buchse des picoIO mit der Stiftleiste J8 verbinden
    • USB-Tastatur anschließen
    • Auf dem picoIO muss nach kurzer Zeit die Onboard-LED leuchten. Ist das nicht der Fall, sollte die Polarität des Adapters geprüft, ggf. gedreht und der Reset-Taster betätigt werden. Wenn das nicht hilft, funktioniert vielleicht eine andere Tastatur.
      Nun sollte der picoAC1 auf Tastenanschläge reagieren.
      Stromaufnahme:
      – ca. 75mA (kabelgebundene Tastatur)
      – ca. 90mA (USB-Dongel drahtlose Tastatur)

Bedienung

Die Bedienung des picoAC1 erfolgt per Tastatur auf zwei Bedienebenen:

  1. picoIO-Ebene
    Hier können einige Tastenkombinationen eingegeben werden um Systemkommandos abzusetzen.
  2. AC1-Ebene
    Hier werden die bekannten AC1 Monitor-Kommandos eingegeben und zusätzlich die neuen erweiterte Kommandos für den picoAC1.

Systemkommandos

Folgende Tasten bzw. Tastenkombinationen werden im picoIO verarbeitet und lösen spezielle Funktionen aus. Bei Shift und Strg wird zwischen linker und rechter Taste unterschieden.

Reset

  • LStrg + Alt + Entf → Z80-Reset

Betriebssystem-Varianten

  • LStrg + Alt + F1 → Monitor 1: Ur-AC1 V3.1 und picoAC1 Erweiterung
  • LStrg + Alt + F2 → Monitor 2: Ur-AC1 V3.1 und Minibasic (das Original)
  • LStrg + Alt + F3 → Monitor 3: SCCH V1088
  • LStrg + Alt + F4 → Monitor 4: SCCH V11

Zeichengeneratoren

  • Alt + F5 → AC1 – 6 × 8 Pixel (das Original)
  • Alt + F6 → AC1 – 9 × 12 Pixel
  • Alt + F7 → AC1 – 10 × 14 Pixel
  • AltGr + F5 → SCCH – 6 × 8 Pixel
  • AltGr + F6 → SCCH – 9 × 12 Pixel
  • AltGr + F7 → SCCH – 10 × 14 Pixel

Z80-Taktfrequenz

  • Alt + F9 → 2 MHz
  • Alt + F10 → 4 MHz
  • Alt + F11 → 6 MHz
  • Alt + F12 → 8 MHz
  • LStrg + Alt + F12 → 12 MHz (Overclocking, experimentell)

Print to File

  • LStrg + Alt + P → Druckdatei initialisieren / abschließen

Lock-Tasten (alternierend)

  • Caps Lock → Umschaltung A-Z (Ä, Ö, Ü) ↔ a-z (ä, ö, ü)
  • Scroll Lock → Tastaturausgabe – Dauer bzw. Einzelimpuls (aktiv)
  • Num Lock → frei

Hilfsfunktionen

  • LStrg + Caps Lock → virtuelle Scroll-Lock-Funktion für Tastaturen ohne Scroll-Lock-Taste
  • LStrg + LWin + ? → Speichern der aktuell verwendeten Scancode-Tabelle auf SD-Karte
  • LShift + LWin + … → Anzeige des von der jeweiligen Taste erzeugten Scancodes in der Statuszeile (2-stellig hex), nur: 01h .. 67h

Diese Kombinationen werden direkt vom picoIO-Pico verarbeitet und funktionieren jederzeit – auch während laufender Programme. Die Änderungen (z. B. Taktfrequenz oder Zeichensatz) sind sofort in der Statuszeile oben rechts sichtbar.

Monitor-Kommandos des picoAC1 (picoMon V3.1 plus)

Der picoAC1 verwendet eine erweiterte Version des originalen AC1-Monitors 3.1. Die originalen Kommandos sind meist Großbuchstaben (oder Zeichen), während die neuen/erweiterten Kommandos für den picoAC1 (insbesondere SD-Karten-Zugriff, Farben, Zeit usw.) Kleinbuchstaben verwenden. Das Minibasic ist weiterhin mit Z erreichbar.

Kommandos werden mit einem Buchstaben/Zeichen eingeleitet, gefolgt von bis zu drei Hex-Argumenten (1–4 Stellen, Großbuchstaben A–F) und ggf. einer Zeichenkette.

Originale AC1-Monitor-Kommandos (Auswahl der wichtigsten, basierend auf klassischem Monitor 3.1)

Diese sind weitgehend identisch mit dem Ur-AC1:

  • D <Start> [<Ende>]: Speicher-Dump (Hex/ASCII-Anzeige)
  • M <Adresse>: Speicher modifizieren (Byte für Byte ändern)
  • G <Adresse>: Programm starten (Go)
  • F <Start> <Ende> <Byte>: Speicherbereich füllen
  • S <Start> <Ende> <Ziel>: Speicher verschieben (Move)
  • R: Register anzeigen/modifizieren (Z80-Register)
  • I <Port>: Input von Port
  • O <Port> <Byte>: Output an Port
  • C: Calculate (Hex-Rechner)
  • H: Hilfe/Anzeige der originalen Bedienung (Ur-Monitor)
  • Z: Start des Minibasic-Interpreters

Eine vollständige Liste der originalen Kommandos findest du in alten Funkamateur-Arbeitsblättern oder auf ac1-info.

Neue/erweiterte Kommandos im picoAC1 (picoMon V3.1 plus)

Diese ersetzen teilweise den Platz des alten Minibasics und dienen vor allem dem modernen Komfort (SD-Karte, VGA-Farben, RTC):

  • c [<Vordergrund>:<Hintergrund>:<Rahmen>]: Bildschirmfarben setzen (aus 0–7: 0=schwarz, 1=rot, 2=grün, 3=gelb, 4=blau, 5=magenta, 6=cyan, 7=weiß). Ohne Parameter: Farbliste anzeigen. Beispiel: c 7:0:3 (weiß auf schwarz mit gelbem Rahmen).
  • d: Verzeichnis der SD-Karte anzeigen (Directory, wie DIR).
  • l <Dateiname>: Datei von SD-Karte laden (Load, z. B. Programm oder Spiel).
  • s <Dateiname> <Startadresse> [<Länge>]: Speicherbereich auf SD-Karte speichern (Save).
  • t <hh:mm:ss>: Systemzeit setzen (UTC-Basis, wichtig für korrekte Zeitstempel auf SD-Karte).
  • h: Hilfe/Anzeige der erweiterten picoAC1-Bedienung (neue Kommandos).

Weitere mögliche Erweiterungen (je nach Firmware-Version): Kommandos für Verzeichniswechsel (cd-ähnlich), Dateilöschen oder Hotkeys über .hklist-Datei auf der SD-Karte.

Fazit

Zusammenfassend lässt sich der picoAC1 in einem entspannten Wochenende aufbauen und in Betrieb nehmen – ein tolles Projekt für alle, die Retro-Computing mit modernem Komfort verbinden möchten. Die Gesamtkosten belaufen sich bei mir auf rund 85 € (61 € für Platine und Bauteile, 17,50 € für das 3D-gedruckte Gehäuse sowie 6,20 € Versand), was für ein voll funktionsfähiges, erweiterbares Z80-System mit SD-Karte, VGA-Ausgabe und USB-Tastatur absolut fair ist. Der Reiz liegt nicht nur im Nostalgie-Faktor des originalgetreuen AC1-Monitors, sondern auch in den praktischen Erweiterungen wie höheren Taktraten, flexiblen Zeichensätzen und einfachem Dateizugriff. Wer Lust auf klassische 8-Bit-Programmierung hat oder CP/M ausprobieren möchte, findet hier ein ideales Spielfeld. Viel Spaß beim Nachbauen – es lohnt sich!

Links

  1. AC1-INFO.DE
    http://www.ac1-info.de/index.htm
  2. Wikipedia Artikel zum AC1
    https://de.wikipedia.org/wiki/AC1
  3. Gerber-Datei der Leiterplatte
    https://codeberg.org/bw38/picoAC1/src/branch/main/Hardware/PCB/Gerber/picoAC1_V1.0_03.zip
  4. Amateur(funk)computer AC1 – 40th anniversary
    Projekt picoAC1
    https://www.bw38.de/picoac1
  5. STL Dateien für das Gehäuse
    https://codeberg.org/bw38/picoAC1/src/branch/main/Case
  6. pico_IO_v1.3.1.uf2
    https://codeberg.org/bw38/picoAC1/src/branch/main/Firmware/picoIO/pico_IO_v1.3.1.uf2
  7. picoVDU_v1.3.0.uf2
    https://codeberg.org/bw38/picoAC1/src/branch/main/Firmware/picoVDU/picoVDU_v1.3.0.uf2
  8. EPROM-Inhalt kann als BIN-File (picoMon_all_1.1.0.bin)
    https://codeberg.org/bw38/picoAC1/src/branch/main/Firmware/EPROM/picoMon_all_1.1.0.bin
  9. EPROM-Inhalt kann als HEX-File (picoMon_all_1.1.0.hex)
    https://codeberg.org/bw38/picoAC1/src/branch/main/Firmware/EPROM/picoMon_all_1.1.0.hex

Bilder-Galerie

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

4 Antworten zu picoAC1 – Reference Design

  1. willi sagt:

    Hallo!
    Ich habe den Pico AC-1 nachgebaut. Er funktioniert soweit. Was mich stutzig macht ist die hohe Stromaufnahme des Pico. Ich messe zwischen 310 und 350 mA Aufnahme. Im Projekt ist eine gesamte Stromaufnahme von 90 mA angegeben. alleine durch das Aufstecken der beiden Picos und CPU+ Logik IC’s fliessen 210 mA. Es wird nichts warm oder schmort vor sich hin. Habt Ihr euch geirrt bei der strommessung , oder woran liegt das??.
    Willi

    • admin_mb sagt:

      Hallo Willi,
      herzlichen Glückwunsch zu deinem erfolgreichen Aufbau.

      Deine Messungen klingen plausibel – bei mir liegt der Verbrauch auch eher bei 250–350 mA im Betrieb (je nach Takt und SD-Aktivität). Die 90 mA aus dem Projekt sind wohl ein Minimalwert (z. B. mit Dongle-Tastatur und niedriger Takt). Die beiden Picos ziehen allein schon 100–200 mA, weil sie VGA, Tastatur und SD permanent bedienen. Nichts schmort, also alles im grünen Bereich. Hast du mal mit niedrigerer Takt (Alt+F9/F10) probiert?
      Grüße, ManiB

  2. Willi sagt:

    Hallo
    Eine geringere Stromaufnahme ist auch bei 2 MHZ nicht festzustellen!. Ein Problem gibt es noch mit der SD-Karte. Sie kann nicht gelesen werden. Es kommt dann Timeout. Die AC1 bin und die config wird allerdings auf die Karte geschrieben, das hab ich ausprobiert. Kennst Du die Lösung des Problems
    Mit freundlichem Gruß, Willi

  3. Willi sagt:

    Hallo
    Nachtrag: hat sich erledigt. Die PIO wars!. Ich habe versuchsweise eine andere PIO aufgesteckt, und das war es dann. Ich hatte est einen UB 855 gesteckt. Entweder ist der nicht ganz io, oder er läuft nicht in dieser Konstellation. Eine SHARP Z-80 PIO hat es dann getan. läuft sogar bis 8MHZ. Die Stromaufnahme bei 6 MHZ ist dann jedoch auf 390 -410 mA gestiegen.
    Frohes Weihnachtsfest nächst Woche
    Mit freundschaftlichem Gruß, von Willi !

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert