USB Concept Keyboard

classic non-acorn hardware, software & languages
Post Reply
User avatar
Phipli
Posts: 96
Joined: Sun Sep 16, 2012 8:12 pm
Location: Derby
Contact:

USB Concept Keyboard

Post by Phipli » Sat May 30, 2020 7:24 pm

Good afternoon folks,

I was thinking about those weird tablet things we had connected to BBC micros in primary school and decided to investigate. Having found that they were called "Concept Keyboards" and connected to the user port, I got intrigued. Looking on ebay, there was someone selling new old stock for more money than I should be spending and so I bought one with a plan. It arrived this week, wonderfully with all the original documentation and some Arch software. The manual helpfully included the pinout and I happened to have the correct 20 pin IDC connector in a drawer upstairs to make interfacing with the existing cable for the userport nice and easy...

At work I get frustrated sometimes at having to type obscure symbols and units with super and sub scripts a lot. My current solution is a USB numeric keypad and software that intercepts the key presses from that device and runs macros. There are only a limited number of buttons and the stickers I put on the keys are already wearing off. My thought was... the Concept Keyboard costs less than a modern fancy "Macro Keyboard", and has way more buttons - as well as helpfully letting you place an overlay on top to help find selections. The nice simple parallel 5v interface should make connecting it to a modern USB enable microcontroller fairly easy. A few hours later (not since it arrived, but since I started the project) and I now have a USB Concept Keyboard. At the moment it is set up so that it outputs standard keyboard keypresses - this keeps the adapter's firmware nice and simple as it just reads the 7 (8 if you count the shift lock button) bit value sent by the device and translates it into USB Keyboard Speak.

Given how easy it was, I'm considering getting a PCB made to make something that looks a bit nicer.

Anyone interested in the project? Anyone done something similar to connect some classic BBC peripherals to a modern machine?

Image

Image

User avatar
roland
Posts: 3862
Joined: Thu Aug 29, 2013 9:29 pm
Location: Born (NL)
Contact:

Re: USB Concept Keyboard

Post by roland » Sat May 30, 2020 8:42 pm

Phipli wrote:
Sat May 30, 2020 7:24 pm
Anyone interested in the project? Anyone done something similar to connect some classic BBC peripherals to a modern machine?
I don't connect classic peripherals to a modern machine, but more the opposite: connect modern things to classic machines. I see however a nice project that looks a bit like this and IMHO it will be easy for you to make:

Use your design to send the (ASCII) printer output of a Beeb, Elk or Atom (they have almost the same interface) as keystrokes to an editor. Considering the U(niversal) SB approach this might work on Linux, Mac OS X and (perhaps also on :mrgreen: ) Windows without any additional drivers.

Just a simple 26 pin ribbon cable into the printer port and connect the USB to the host computer. Also suitable for uploading programmes to the host computer if you send a (base64?) coded file from the Beeb, Elk or Atom to the host and then convert it back to a binary.

Other fun usages includes using your Beeb, Elk or Atom as keyboard for a Raspberry Pi by simply sending the ascii values directly from keyboard to printer. Lots of possibilities here :lol:
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
Phipli
Posts: 96
Joined: Sun Sep 16, 2012 8:12 pm
Location: Derby
Contact:

Re: USB Concept Keyboard

Post by Phipli » Sat May 30, 2020 9:14 pm

Shouldn't be difficult - more of a wiring issue and perhaps filtering out some control signals...

My main issue is a lack of working machines, my elk just needs reassembling though :p

User avatar
roland
Posts: 3862
Joined: Thu Aug 29, 2013 9:29 pm
Location: Born (NL)
Contact:

Re: USB Concept Keyboard

Post by roland » Sat May 30, 2020 9:47 pm

Phipli wrote:
Sat May 30, 2020 9:14 pm
My main issue is a lack of working machines, my elk just needs reassembling though :p
Well, this is a community. When you post your diagram there sure will be some one who picks it up and converts it to a printer-to-USBkeyboard circuit and make the PCB. In the mean while you can adjust the software for the controller.
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
Phipli
Posts: 96
Joined: Sun Sep 16, 2012 8:12 pm
Location: Derby
Contact:

Re: USB Concept Keyboard

Post by Phipli » Sat May 30, 2020 11:16 pm

Just did a bit of reading on parallel ports - the only difference between what is needed for inputting from the Custom Keyboard vs. from the printer port (other than reordering the pins) is the addition of an acknowledge pin. The strobe has the same polarity and everything is 5v.

There is no reason why you wouldn't make a dual purpose board, although you wouldn't be able to have both connected at the same time without additional complexity.

You'd use a straight through IDC to IDC cable though - if I remember correctly, the original Raspberry Pi had a 26pin GPIO header, so a cable designed for that would be fine if you didn't fancy making your own.

I have a Plus 1 so can test with the Elk if needed.

There isn't a scheme yet - I just made it up as I went along this morning - it isn't complex. I used an Arduino Pro Micro and so didn't have a full port available anyway for optimised code, so I just picked the most convenient pins. Other than the strobe and power pins it is effectively just a bus between the IDC connector and the Arduino. Used an interrupt enabled pin for the strobe so I could do that properly at least. After that it is just a bit of bit juggling.

User avatar
Phipli
Posts: 96
Joined: Sun Sep 16, 2012 8:12 pm
Location: Derby
Contact:

Re: USB Concept Keyboard

Post by Phipli » Sun Jun 07, 2020 5:41 pm

Are there any other interesting input (into the beeb) only userport devices that might be fun to bridge to USB? Something that only uses 5v, Gnd, strobe and pb0 to pb7?

I could probably do output to... don't see why not as long as it is just those pins.

I've ordered some PCBs from China. Sadly my usual source JLCPCB has changed their pricing structure and are now effectively double the price. I've gone with Seeedstudio's Fusion service as it works out a bit cheaper. Sadly the higher prices mean I'm going to be hit by VAT and "Postman tax" (the VAT handling fee that costs more than the VAT).

User avatar
roland
Posts: 3862
Joined: Thu Aug 29, 2013 9:29 pm
Location: Born (NL)
Contact:

Re: USB Concept Keyboard

Post by roland » Sun Jun 07, 2020 8:41 pm

Probably too late now but my (favorite) PCB supplier, PCBWay, makes 10 board (up to 10x10cm) for just $5. If you're not in a hurry check delivery from China Post for another $5. That makes $1 per board.... You can't make it cheaper at home, just quicker :lol:
FPGAtom: 512 KB RAM, Real Time Clock and 64 colours
MAN WOMAN :shock:

User avatar
Phipli
Posts: 96
Joined: Sun Sep 16, 2012 8:12 pm
Location: Derby
Contact:

Re: USB Concept Keyboard

Post by Phipli » Sun Jun 07, 2020 10:22 pm

I costed my order on PCBWay too - they were more expensive than Seeed to my surprise. They were about the same price as JLCPCB are now if I remember... note it says $10 for cheapest post when I check.

I got 30x various 100x100 boards from Seeed for £22 including postage. Perhaps it is the specifics of my v-scoring and milled corners.

User avatar
Phipli
Posts: 96
Joined: Sun Sep 16, 2012 8:12 pm
Location: Derby
Contact:

Re: USB Concept Keyboard

Post by Phipli » Mon Jun 29, 2020 11:39 pm

Excellent,

Adapters have arrived and I made one up this evening. Works fine for my intended purpose (connecting the Concept Keyboard to a modern computer). I need to write some more software to implement additional functionality. jms2 and I were discussing a little earlier today and he was correcting my ideas into sensible things that might work. It made me laugh when I realised we'd both spent our lunchtime reading the Advanced User Guide. The board is about 70x50mm (not exactly because it is a multiple of 1/10th inches).

Image
Image
Image
Image

Ultimately we ended up discussing using event vectors for a couple of different event types and making a printer driver that output to the userport - likely to render the printer connection on the board redundant before we even start. If I make a version 2 I might remove the printer connector because If I can get the board smaller, say 33x50, then I'll be able to fit six on one 100x100 board rather than the current two!

We have some example code that will sort most of the inputting into the BBC direction - jms2 kindly pointed out several typos in it that I'd have been weeks or months working out.

Post Reply

Return to “other vintage hardware, software and languages”