I am thinking of designing a lowcost (< ?10) Kempston joystick interface.
Small, one (double sided) board, throughput edge.
Others need some too?
I would buy one if it were compatible with my 128k toastrack :smile:
The Kempston interface I have at the moment changes the border colour every time I move the joystick! Then again, the toastrack itself might have a fault... :-(
BTW: do you think this one could be made for that final price? If so, I will give you all the information to build it for free:
It's a multi-protocol joystick interface that I developed some months ago. It can handle Kempston, Fuller, Sinclair, and Cursor. Supports autofire (about 3 shoots per second). It's interrupt friendly, which means that the interface won't put data during an INTA bus cycle. The Sinclair and Cursor protocol are keyboard friendly, which means that the keyboard is not inhibited if the joystick is read, and that reading port $00FEh will read the joystick too.
It uses a single XC9536XL CPLD, an LM1117 (a 3.3V reg.), some resistors, and a pair of capacitors. Add a CANON DB9 socket and a ZXBus connector, and that's all. In this prototype, the protocol is chosen by closing a jumper, so it's the autofire.
I have to admit, I am a little envious, I wish my prototypes looked half as good too LOL
btw, whats the 3.3v regulator for?
Thank you very much! :) As for the regulator, this CPLD needs 3,3V for the supply, although its inputs are 5V tolerant. The outputs go from 0 to 3,3V, instead of 0 to 5V, but this is ok for the TTL inputs at the Spectrum. You could use a XC9536 (no XL) which is a 5V-only device and can directly use the regulated 5V supply from the Spectrum, but these are harder to find.
BTW: I made a mistake in this prototype: the CPLD is too close to the ZX connector. If you try to use this prototype to the computer, it won't plug into the rear bus because the CPLD socket is too thick. I fixed that by using a Cheetah bus expander, that places the interface about an inch away from the computer. A revised design should put the CPLD and the DB9 connector on the back side (where the 3,3V regulator is located) to avoid this.
I think it can be done in a single side PCB. Are you using discrete TTL chips or a single GAL chip?
Nope: as the interface will have a throughport, and as I want to be able to assemble it as simple as possible, I have a flat board in mind, so double sided.
This is the idea:
Have to add the reset circuitry.
One thing I'm worrying about is if problems will be created because the wires on the board are not straight but messed up because of the joystick interface parts.
Nope: as the interface will have a throughport, and as I want to be able to assemble it as simple as possible, I have a flat board in mind, so double sided.
This is the idea:
Have to add the reset circuitry.
Aaaah! I see. I thought you wanted to build it as a vertical interface. ;)
About your worries... well, the speed of the signals the Spectrum generate are not critical. Besides, your PCB is small. I don't think it's going to be an issue.
Aaaah! I see. I thought you wanted to build it as a vertical interface. ;)
About your worries... well, the speed of the signals the Spectrum generate are not critical. Besides, your PCB is small. I don't think it's going to be an issue.
It could be a problem when you use a DivIDE or other 'highspeed' device behind it.
Anyone can advise in this?
Comments
Good idea.
What price would be interesting?
I am thinking about a price of 10 euro (8.50 GBP). Is that reasonable?
I can ship it in an envelope, so p&p would be about 2 euro (1.50 GBP).
Ben
I think it can be done in a single side PCB. Are you using discrete TTL chips or a single GAL chip?
I would buy one if it were compatible with my 128k toastrack :smile:
The Kempston interface I have at the moment changes the border colour every time I move the joystick! Then again, the toastrack itself might have a fault... :-(
It's a multi-protocol joystick interface that I developed some months ago. It can handle Kempston, Fuller, Sinclair, and Cursor. Supports autofire (about 3 shoots per second). It's interrupt friendly, which means that the interface won't put data during an INTA bus cycle. The Sinclair and Cursor protocol are keyboard friendly, which means that the keyboard is not inhibited if the joystick is read, and that reading port $00FEh will read the joystick too.
It uses a single XC9536XL CPLD, an LM1117 (a 3.3V reg.), some resistors, and a pair of capacitors. Add a CANON DB9 socket and a ZXBus connector, and that's all. In this prototype, the protocol is chosen by closing a jumper, so it's the autofire.
I made a video-demonstration here:
http://www.youtube.com/watch?v=3_BzV635LNU
Thats a nice, well focused piece of design!
I have to admit, I am a little envious, I wish my prototypes looked half as good too LOL
btw, whats the 3.3v regulator for?
Thank you very much! :) As for the regulator, this CPLD needs 3,3V for the supply, although its inputs are 5V tolerant. The outputs go from 0 to 3,3V, instead of 0 to 5V, but this is ok for the TTL inputs at the Spectrum. You could use a XC9536 (no XL) which is a 5V-only device and can directly use the regulated 5V supply from the Spectrum, but these are harder to find.
BTW: I made a mistake in this prototype: the CPLD is too close to the ZX connector. If you try to use this prototype to the computer, it won't plug into the rear bus because the CPLD socket is too thick. I fixed that by using a Cheetah bus expander, that places the interface about an inch away from the computer. A revised design should put the CPLD and the DB9 connector on the back side (where the 3,3V regulator is located) to avoid this.
That's far to expensive: the Xilinx controller itself will cost over 5 GBP.
Let alone the higher price for the PCB (about 4 GBP).
I'll stick with the Kempston option and reset switch.
Nope: as the interface will have a throughport, and as I want to be able to assemble it as simple as possible, I have a flat board in mind, so double sided.
This is the idea:
Have to add the reset circuitry.
One thing I'm worrying about is if problems will be created because the wires on the board are not straight but messed up because of the joystick interface parts.
Aaaah! I see. I thought you wanted to build it as a vertical interface. ;)
About your worries... well, the speed of the signals the Spectrum generate are not critical. Besides, your PCB is small. I don't think it's going to be an issue.
It could be a problem when you use a DivIDE or other 'highspeed' device behind it.
Anyone can advise in this?
But it's about 2 euro more expensive because a seperate edge pcb is needed.