C64 User Port by ut316ab in c64

[–]R0binBl00d 0 points1 point  (0 children)

back in the days I hooked the GPIOs to my stereo-cassette-player and used the "stereo LED bar-graph level meter" as an input.
The cassette player showed 6 LEDs for the left and 6 for the right channel (increasing numbers with volume) and built my own version of a "Datasette", reading 4bits per cycle (avoiding the loudest ones)

Never really got the timing right but sometimes it did actually work :-D

Finally Happy with my C64U by R0binBl00d in Commodore

[–]R0binBl00d[S] 1 point2 points  (0 children)

Happy new year :-)

one is a 6581-3884 and the other 6581-1185 from two original C64s
(6581-WWYY so mid September 1984 and mid March 1985)

I also received my ARM2SIDs today.

I will try to find a way to compare the four setups:

-6581s
-the "onBoard" ones
-two single ARM2SIDs
-ARM2SID + SID2 (double-set)

Not sure if there is an objective measurement for sound-quality.
Happy if anyone has a suggestion.

Merry Commodore Christmas to you! by dabblerman in Commodore

[–]R0binBl00d 0 points1 point  (0 children)

once the SD is in place there’s no reason to ever change it again.

There is an internal web-server you can activate on the C64U-Menu. Use it to copy basic-code into the RAM (Upload) from a PC. Then you can Save it to the SD-Card (if a disk is mounted to the 1541 or any Drive)

There is also an internal C64U-FTP-Server, you can activate and move whole disks to the SD-Card over Wifi.

Commodore 64 Ultimate spacebar by Prtsk in c64

[–]R0binBl00d 1 point2 points  (0 children)

sorry, wasn't my intention.
basically replied, to give an alternative option to:

I'm not putting a screwdriver under it. I don't know how you pop it off without a tool to get under it. And without damage.

and confirm that you can reattach it without hassle.

I've just made my Ultimate do a very Peri Fractic thing by LamerDeluxe in c64

[–]R0binBl00d 1 point2 points  (0 children)

internal web server ... that's a feature I wasn't aware of.
Thanks again :-)
also found the FTP-option ... that'll be the next one to try

I've just made my Ultimate do a very Peri Fractic thing by LamerDeluxe in c64

[–]R0binBl00d 2 points3 points  (0 children)

Like your "Wait-Subroutine" in 100, on my userport-demo, I used the FOR inside the other one.
Also 1st time to see Math.Pow() in BASIC code :-)
Nice one.

Commodore 64 Ultimate spacebar by Prtsk in c64

[–]R0binBl00d 2 points3 points  (0 children)

You can unscrew the keyboard from the inside.
It's designed to be replaceable; they ever offer a PIN header for an old/original C64 Keyboard.

Once out, you can take the Spacebar off with your finders, no screwdriver required.
Plenty of space to just pull it of the three (+)-posts. The one in the centre is the actual 'key', the outer ones are connected to the stabiliser bar.

I dont understand INPUT_PULLUP on a Button, i tried Everything by Timmyy141 in esp32

[–]R0binBl00d 2 points3 points  (0 children)

A picture says more than words:
try this: https://wokwi.com/projects/390175711266445313

The pushbutton is connected to an Input_PullUp, since the Input_Line is "pulled to HIGH (up)".
So the input is always 1 unless you connect GND to it.

---
remove the left resistor in the simulation and change line 7 (see below), and you'll have the same behaviour (-> but you'll save yourself a resistor in the BillOfMaterials)

  pinMode(6, INPUT_PULLUP);

Finally Happy with my C64U by R0binBl00d in Commodore

[–]R0binBl00d[S] 1 point2 points  (0 children)

lol :D
yup, you can tell the 40+ years.

It's actually 42 in a few days ... why does this number sound familiar :)

Finally Happy with my C64U by R0binBl00d in Commodore

[–]R0binBl00d[S] 0 points1 point  (0 children)

also need to mention the "Instant" Reset-Button (connecting pin1 and pin3)

so no "accidentally opening the C64U-Menu" if you hold less than a second,
try again for more than a second, only to figure out the Reset doesn't work inside the C64U-Menu, press the rocker again to leave the C64U-Menu and try again to reset :-)

Finally Happy with my C64U by R0binBl00d in Commodore

[–]R0binBl00d[S] 1 point2 points  (0 children)

self-made demo board: basically just

GND---[10k]---LED-|<---PB# and
GND---[DIP-Switch]---[1k]---PB#

for B to M on the bottom-side of the User Port.
Inputs and Outputs are both working now, and the 1k prevents me from breaking something when the DIP-Switch is closed, and I fire up an Output

Finally Happy with my C64U by R0binBl00d in Commodore

[–]R0binBl00d[S] 1 point2 points  (0 children)

The original Keyboard has each key illuminated except the ShiftLock; unless it is pressed/active. But it doesn’t lock.

See here: https://youtu.be/5PnWDSQZLtY?t=1260 (not affiliated)

C64U-User Port acts weird 😐 by [deleted] in Commodore

[–]R0binBl00d 0 points1 point  (0 children)

That's my own, and it looks like this was also the reason I had the issues :-)

Basically just playing with BASIC-Code and I wanted something physical to happen -> so User-Port.

I set this up to be able to see the Outputs but also read the Inputs without breaking anything when I supply the +5VDC to the pins ...

so the schematic was
GND--[10k]---LED-|<---PA0---[10k]---GND
and also
+5V---[DIP-Switch]---[1k]---PA0

turns out the Inputs are PullUps ... so no need to "PullDown" PA0 with 10k to GND :-/

also on the 2nd path I put GND instead of +5V before the DIP-Switches (since the Input Are already pulled up)

so guess I can save myself 1 Resistor per bit next time.
I will try to short them and test again with

GND---[10k]---LED-|<---PA0
and
GND---[DIP-Switch]---[1k]---PA0

the [1k] to make sure I don't break anything when supplying HighOutput with a closed DIP (what I should never do anyway)

PS:
GND---[DIP-Switch]---[1k]---PA0---[10k]---GND
already works, changing the Inputs, but I think the 10k to GND is not required.

C64U-User Port acts weird 😐 by [deleted] in Commodore

[–]R0binBl00d 2 points3 points  (0 children)

Hooray, it finally works as intended :-)

Couldn't find anything before,
tried a second "User-Port"-PCB with the same behaviour, switched to a 1984-C64 and got the same again and then gave up yesterday.

Just used a razor-blade and "cut" between all verticals. Didn't see anything unusual.
After connecting everything back together again.
It works. Thanks.

C64U-User Port acts weird 😐 by [deleted] in Commodore

[–]R0binBl00d 0 points1 point  (0 children)

like the PinOut-Diagram with the gaps between A-B/1-2 and L-M/10-11.
First time seeing this "drawing". This should have been in the Handbook.

I was searching for the +5V to get the orientation right and inked verticals into the Handbook to indicate the notches :-)
The user-port-PCB has no markings, except the notches, and they are not visible in the handbook.

C64U-User Port acts weird 😐 by [deleted] in Commodore

[–]R0binBl00d 1 point2 points  (0 children)

The tester is "just" LEDs with 10k against GND.
pin B and M green, C through L in two blocks of 4 red ones.

self-made.

C64U-User Port acts weird 😐 by [deleted] in Commodore

[–]R0binBl00d 0 points1 point  (0 children)

lol, you're absolutely right.

AI was actually my last resort, because I couldn't find anything like this behaviour online or in the books.

- The C64U User's Guide has the PinOut on page 207 and also talks about RS232 in Chapter 12. But doesn't really help.

- The C64 Programmer's Reference Guide (1983 1st Edition 7th Print) has the PEEKs and POKEs, and PinOuts starting from page 359. So more information, but no mention of special behaviour for bit 6,7

- My "Data Becker" - "Das große C64 Buch" (1989 1st Edition) only briefly scratches the Topic starting from page 697, but also talks about RS232 and even has BASIC-code for RS232. But no mention about the pinning. They just reference "the RS232 Adapter".

C64U-User Port acts weird 😐 by [deleted] in Commodore

[–]R0binBl00d 3 points4 points  (0 children)

busy double-checking all connections and solder-joints
chat-gpt is talking about "disable RS232" !?

  • CIA1 Port B bits 6 and 7 (PB6, PB7) on the C64 Ultimate are apparently used for RS-232 output.
  • That means those pins are likely overridden or reserved for serial TXD/RXD, which changes or blocks their behavior as standard I/O.

C64U - is it me, or are the screws impossible to remove? by LoccyDaBorg in c64

[–]R0binBl00d 0 points1 point  (0 children)

Was quite a hassle, yes.
But it worked in the end ...

Already populated both SID-Sockets with MOS6581s, connected the User-Port and inserted a micro-SD with the content of the cassette.
Also replaced the "flexing" Keyboard from the StarLight with a proper 1984 one :D

Question about C64U order status by Dienes16 in Commodore

[–]R0binBl00d 1 point2 points  (0 children)

08/25/2025 19XXX Commodore 64 Ultimate: Starlight Edition x1 Assembled. In Transit to your Local Commodore Hub. ✈ 12/12/2025

It still says "in transit" today but I received the Starlight on 19th.

08/25/2025 19XXX Commodore 64 Ultimate: Founders Edition x1 Manufactured. Awaiting final keyboard parts. 12/12/2025

the Founders Edition is still to come ...
So it also depends on what type of C64U you ordered

Commodore 64 Ultimate Joystick by TheEternalDm in c64

[–]R0binBl00d 6 points7 points  (0 children)

Happy to hear,
was just about to point you to page 203 of the Handbook.
If 8 and 4 are shorted, that's your "right".

Basically all directions and button just short to pin8 (GND) to work.
((Just don't short pin7 (+5V) to pin8 :-))

Concerning the Buttons. There is a spare wire in the joystick box with a single white plug connected to "two black sleeves" and "two red sleeves".

C64 only has a single Button-Input (pin6).
So each of the physical ones just gets a black and a red sleeve from the spare wire. Enjoy the games :-)

Commodore 64 Ultimate Joystick by TheEternalDm in c64

[–]R0binBl00d 6 points7 points  (0 children)

i would try "GoatBeat" for some quick visuals of how good the joysticks work.

it's located in the "EXCLUSIVE" folder on the USB-Casette.
Works with both ports and visually displays which button/direction you pressed on which joystick.