
Hello, Guest the thread was viewed3.7M times and contains 31744 replies
last post from manfred.moser at the
Heute so gebastelt ...
- Killerchicken
- Thread is Unresolved
-
-
-
Tastatur Umbau in C64 II Gehäuse Fortsetzung
Aus dem abgeschnittenen Unterteil 2 Verbinder ausgesägt um die Rückfront mit dem Tastatur Gehäuse zu verbinden.
jeweils 4 1mm Löcher in die Verbinder gebohrt und dann an die Rückwand geschraubt, Aussschnitt für die Sub D 25pol Buchse
angefertigt und mit 2 2,5mm Spax befestigt, vorher das 20pol Kabel angelötet zur Platine mit der 20pol Stekerleiste, Tastur bleibt also Original erhalten. Die Tastatur habe ich von einem ehemaligen C64 II Gehäuse ( sieht noch gut aus, wird anderweitig zum Einsatz kommen) das mal als externens Tasturgehäuse gedient hat, ist zwar eine Gilb Tastatur, aber für den Zweck gut genug. Tastatur eingebaut mit Original C64 II Haltewinkeln. Nun Rückwand noch mit 2 Mini Schrauben am oberen Gehäusedeckel befestigt. Jetzt ein 20pol Kabel mit 25pol Stecker versehen und am anderen Ende eine 20pol Steckerleiste angelötet. Testlauf gemacht, funktioniert mit der Kabellänge. Die LED über Pin 1(GND) und Pin 4 über 470Ohm angeschlossen
-
Vorgestern war ja der Kollege hier angekommen: Heute so angekommen ...
Die ] Taste oben rechts hat nicht funktioniert. Stell auch heraus, dass offenbar eine Leiterbahn an irgendeiner Stelle sehr hochohmig wird. Da, wo die Schwestertasten 1 bis 3 Ohm haben, sind es bei dieser Taste 5 MOhm.
Habe jetzt ein Botchwire verlegt und siehe: Die Taste funzt wieder!
-
Im Garten ne neue Kompostabteilung geschustert.
So jetzt kann man auch zu machen
-
Tapduino gebastelt.
Prinzipiell geil. Aber ich hab im Code rumgefummelt. Irgendwie wird jetzt Taste "Vorwärts" nicht abgefragt. Jedenfalls funktioniert
sie nicht - aber den Taster (Anschluss) hab ich
durchgemessen. Der tut...
Mach ich die Tage noch fertig.
Stefan
-
Tapduino
Du meinst Tapuino!
-
Die Teile dafür lagen hier gefühlt schon seit Jahren herum, heute habe ich den A/V Adapter von svenpetersen1965 endlich mal aufgebaut.
-
Tapduino gebastelt.
Prinzipiell geil. Aber ich hab im Code rumgefummelt. Irgendwie wird jetzt Taste "Vorwärts" nicht abgefragt. Jedenfalls funktioniert
sie nicht - aber den Taster (Anschluss) hab ich
durchgemessen. Der tut...
Mach ich die Tage noch fertig.
Stefan
Was ist den "Aboard"??
-
Heute mal ein wenig Flechtarbeiten, war Handarbeit als Wahlpflichtfach doch noch nützlich...
Eine BiColor-LED für das Mok im "neuen" 425er, der Farbwechsel zeigt den Betriebsmodus:
- Rot, SuperKernal aktiv
- Grün, Default-Kernal aktiv
Ausserdem musste ich das Kabel verlängern weil das 425er in ein Brotkasten-Gehäuse soll.
Leider benötigen die runden China-LEDs ganz andere Strom-Werte als die Eckigen, deshalb
habe ich eine PWM-Regelung für die LED vorgesehen, natürlich war das Mok für die eckigen
LEDs vorkonfiguriert.
C- #include <EEPROM.h>
- #include <FastLED.h> //https://github.com/FastLED/FastLED
- #include <ClickButton.h> //https://github.com/marcobrianza/ClickButton
- //Constants
- #define NUM_LEDS 20 //Const (Number of LED's)
- #define DATA_PIN 0 //LED-Stripe (PB0, Pin 5 - MOSI)
- #define KERNAL_OUT 1 //Kernal Select (PB1, Pin 6 - MISO)
- #define RESET_OUT 2 //Reset to C64 (PB2, Pin 7 - SCK)
- #define POWER_LED 3 //Power LED C64 (PB3, Pin 2)
- #define RESTORE_PIN 4 //Restore von C64 (PB4, Pin 3)
- #define WAIT_TIME 100 //Const Delay for Reset
- #define LED_RED 90 //Square = 20 //LED Brightness, 100% means PWM off
- #define LED_GREEN 30 //Square = 100 //LED Brightness, 100% means PWM off
- //#define LED_RED 20 //Round = 90 //LED Brightness, 100% means PWM off
- //#define LED_GREEN 100 //Round = 30 //LED Brightness, 100% means PWM off
- #define EEPROM_ADDR 0 //Memory - Configuration
- volatile boolean Kernal = false; //C64 Kernal or Superkernal
- volatile boolean Toogle = false; //Toogle Flag for Power-LED (blinking)
- volatile boolean Stripe = false; //Toogle Flag for LED Stripe (Animation)
- ClickButton Restore(RESTORE_PIN, LOW); //Restore Button
- CRGB leds[NUM_LEDS]; //Array for LED-Stripe
- void setup() {
- pinMode(RESET_OUT, INPUT); //Input without pullup, emulate open collector
- pinMode(RESTORE_PIN, INPUT); //Input without pullup, Restore from C64
- pinMode(KERNAL_OUT, OUTPUT); //Output, Select Kernal
- pinMode(POWER_LED, OUTPUT); //Output, Power LED for C64
- FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
- FastLED.setMaxPowerInVoltsAndMilliamps(5, 25);
- SetKernal(EEPROM.read(EEPROM_ADDR));
- SetStripe(EEPROM.read(EEPROM_ADDR+1));
- Restore.debounceTime = 35; //Debounce timer in ms
- Restore.multiclickTime = 250; //Time limit for multi clicks
- Restore.longClickTime = 3000; //time until "held-down clicks" register
- cli(); // disable global interrupts
- TCCR1 = 0; //Delete Timer 1 Control Register
- TCCR1 = (1 << CTC1) | (1 << CS12); //Timer 1 = Compare Match, Prescaler = 8
- OCR1C = 49; //Compare Match = (8Mhz/8/49+1 = 20khz)
- GTCCR |= (1 << PSR1); TCNT1 = 0; //Zero Timer1 8-bit up counter value
- TIMSK |= (1 << OCIE1A); //enable Timer1 compare interrupt
- sei();
- }
- void wait(uint32_t period) {
- uint32_t time_now = millis();
- while(millis() < time_now + period){
- //wait approx. [period] ms
- }
- }
- //Kapselung für Schreibzugriff auf volatile Variable (Interrupt sperren)
- void SetStripe(boolean Value) {
- noInterrupts();
- Stripe = Value;
- EEPROM.update(EEPROM_ADDR+1, Stripe); //save Animation Mode
- interrupts();
- }
- //Kapselung für Schreibzugriff auf volatile Variable (Interrupt sperren)
- void SetToogle(boolean Value) {
- noInterrupts();
- Toogle = Value;
- interrupts();
- }
- //Kapselung für Schreibzugriff auf volatile Variable (Interrupt sperren)
- void SetKernal(boolean state){
- noInterrupts();
- Kernal = state; //true means Superkernal
- digitalWrite(KERNAL_OUT, Kernal); //switch Kernal
- EEPROM.update(EEPROM_ADDR, Kernal); //save current Kernal
- interrupts();
- }
- //Soft-PWM für LED-Steuerung und RGB-Stripe Effekt
- ISR(TIMER1_COMPA_vect) {
- static byte cnt = 0; byte Brightness = 0;
- if (Kernal) {
- Brightness = map(LED_RED, 0, 100, 0, 255);
- } else Brightness = map(LED_GREEN, 0, 100, 0, 255);
- if (cnt <= dim8_raw(Brightness)) { //78Hz+2200µs=66.66Hz
- digitalWrite(POWER_LED, Toogle);
- } else digitalWrite(POWER_LED, HIGH);
- switch (cnt++) { //LED-Stripe
- case 0xFF: //RGB-Stripe //adds 2200µs per cycle
- if (!Stripe) { //check for Animation
- if (Kernal) { //true means Superkernal
- fill_solid(leds, NUM_LEDS, CRGB::Red);
- } else fill_solid(leds, NUM_LEDS, CRGB::Lime);
- } else Rainbow(25, 10);
- FastLED.show();
- }
- }
- void Rainbow(uint8_t thisSpeed, uint8_t deltaHue) {
- uint8_t thisHue = beat8(thisSpeed, 255);
- fill_rainbow(leds, NUM_LEDS, thisHue, deltaHue);
- }
- void loop() {
- SetToogle(false);
- Restore.Update();
- switch (Restore.clicks) {
- case 2: //doubleClick
- Restore.clicks = 0;
- if (Kernal) { //true means Superkernal
- for (int i=0; i <= 1; i++) { //Double-Reset
- pinMode(RESET_OUT, OUTPUT);
- wait(WAIT_TIME);
- pinMode(RESET_OUT, INPUT);
- wait(WAIT_TIME);
- }
- }
- break;
- case -1: //Longpress (3000 ms)
- uint8_t cnt = 0;
- Restore.clicks = 0;
- pinMode(RESET_OUT, OUTPUT);
- uint32_t time_now = millis();
- while (!digitalRead(RESTORE_PIN)) {
- SetToogle(!Toogle);
- if (millis() > time_now + 1000) {
- SetKernal(!Kernal);
- if (cnt++ >= 5) {
- SetStripe(!Stripe);
- cnt = 0;
- }
- time_now = millis();
- }
- wait(WAIT_TIME);
- }
- pinMode(RESET_OUT, INPUT);
- break;
- default: Restore.clicks = 0;
- }
- }
Somit kommt mein ISP-Shield wieder zum Einsatz, direkt aus der Arduino-Ide programmieren
ist schon praktisch!
Oben im Bild die alten (falschen) PWM-Werte, unten nach der Korrektur.
Kommt auf den Bildern aber schlecht rüber...
Mfg Jood
-
-
-
Nach die meisten noch fehlenden Teile mittlerweile angekommen sind (siehe hier), konnte ich heute wieder etwas an dem LittleSixteen-Board weiterbasteln.
Ausgangspunkt:
Und ja, ich weiß: niedrige Bauteile zuerst, etc. pp. - ich wollte aber mal schauen, was ich noch im Keller habe und was ich noch bestellen muss. Und bei dieser Gelegenheit habe ich dann alles auch gleich eingelötet, weil der Lötkolben vom Entlölten noch warm war.
Ergebnis nach diesem Abend:
Jetzt fehlenden neben dem TED und dem EPROM "nur" noch gefühlte 1,5 Millionen EMI-Filter, und man könnte das Board einmal testen. Das einzige, was ich bisher noch nicht gefunden habe, ist die 50-polige Expansionsport-Buchse. Aber vielleicht hat Bobbel ja da noch etwas im Lager?
-
Nach die meisten noch fehlenden Teile mittlerweile angekommen sind (siehe hier), konnte ich heute wieder etwas an dem LittleSixteen-Board weiterbasteln.
Ausgangspunkt:
Und ja, ich weiß: niedrige Bauteile zuerst, etc. pp. - ich wollte aber mal schauen, was ich noch im Keller habe und was ich noch bestellen muss. Und bei dieser Gelegenheit habe ich dann alles auch gleich eingelötet, weil der Lötkolben vom Entlölten noch warm war.
Ergebnis nach diesem Abend:
Jetzt fehlenden neben dem TED und dem EPROM "nur" noch gefühlte 1,5 Millionen EMI-Filter, und man könnte das Board einmal testen. Das einzige, was ich bisher noch nicht gefunden habe, ist die 50-polige Expansionsport-Buchse. Aber vielleicht hat Bobbel ja da noch etwas im Lager?
das thema gabs doch erst vor kurzem incl tipps für die emi
Little Sixteen Board (C16/Plus4) "Starthilfe"
-
Nachdem das DTV wieder funktioniert, erste Ernüchterung:
Angeschlossen am „VIDEO IN“ vom Radio kam zunächst weder Bild, noch Ton. Etwas später hatte ich zwar Ton, aber das Bild fehlte. Ob da noch was im DTV „klemmt“? Jetzt habe ich jedenfalls jedesmal sofort (mieses) Signal.Der BASIC-Prompt kurz vor dem Spiele-Menü sieht zwar schattig, dafür farblich korrekt aus, alles andere…
Edit: Am Küchen-TV sieht’s normal aus: -
theincredib13 Dein Auto hat NTSC ?
Oder der DTV ist Ntsc und Dein Fernseher schaltet automatisch um?
Stefan
-
theincredib13 Dein Auto hat NTSC ?
Oder der DTV ist Ntsc und Dein Fernseher schaltet automatisch um?
Stefan
Was sich IIRC mit dem Wrestlingspiel oder Summer Games prüfen lässt; bei PAL ist der Kontrast zwischen Weiß und Hellblau falsch (kaum was erkennbar), der NTSC DTV hat dieses Problem nicht.
-
Wurde seinerzeit bei „Plus“ gekauft (hatte den Bon dazu), dürfte also PAL sein. Radio weiß ich nicht. Ist ein Chinakracher und es gibt keine verlässlichen Infos zu irgendwas. Habe aber auf die Schnelle auch nichts anderes, was ich ans Radio anklemmen könnte…
-
Bootscreen von Summer Games:
Ich kann umständlich über mehrere Menüs die Einstellungen anpassen. Wahlweise AHD 25/30, TVI (25/30) oder ntsc/pal (was wohl cvbs ist). Letzteres bringt obiges Ergebnis, die ersten vier liefern flackern und flimmern.
Edit:Der Aufbau ist jetzt mit einem baugleichen Radio zuhause unter Laborbedingungen, da die Batterie im Auto das nicht so mag.
-
Die beiden heute angekommenen Ghostbuster-Platinen von OliverW. aufgebaut, den 27W512 programmiert, belabelt und in Betrieb genommen
Erst die beiden 74HC02 und 74HC273 in SMD bestückt. Den Widerstand für die LED auf der Oberseite und den "C64" auf der Unterseite ebenfalls in SMD bestückt.
Dann die 28polige Fassung für den 27W512 und die Blink-LED aufgelötet
Als nächstes das EEPROM programmiert. Eins mit der Version von GiJoe , das andere mit dem Image von CapFuture1975
Anschließend die Label ausgedruckt und aufgeklebt.
Sieht dann so aus
Jetzt kam der FirstRun... Beide Cartridges funktionierten auf Anhieb
Die Cartridge sieht richtig geil aus. Danke nochmal an OliverW.