PDA

View Full Version : 1-pin PS2 Keyboard & 1-pin TV 40x25 - Released on OBEX



Cluso99
12-07-2009, 10:06 AM
This thread will now contain information about both the 1-pin Keyboard and 1-pin TV objects.



Release code: 21st Feb 2010

OnePinKbdTV_demo·· v040
OnePinKeyboard······· v125
OnePinTVText·········· v040
isx_in
isx_out
1-pinTV_calcs·· ······· v001
I have noted that one of my PS2 keyboards does not work. More testing to be done to find out why.
Please report any bugs here.



OnePinKeyboard

Features

Works with a PS2 keyboard using only 1 propeller pin (kbddata)
A 16 character buffer is inside the cog
Keycode conversion takes place inside the cog
Optional keycode conversion for Up/Down/Left/Right/Home/Backspace/ClearScreen(ScrollLock) to ascii video codes
Simple 1 long hub interface (mailbox/rendezvous)
Minimal hub footprint
Designed for SphinxOS, RamBlade, etc where alternate drivers can be loaded or changed on the fly without software changes

Interface

The standard prop keyboard interface can be used (as on the Proto Board, etc)
Simple circuit uses 2 x 10K and 1 x 100R resistors

1 x 100R in series from the propeller pin to the keyboard data pin, with a 1 x 10K pullup to +5V at the keyboard data pin
1 x 10K pullup to +5V at the keyboard clock pin

A simple external cable can be built with·resistors in the plug (see circuit and pictures below)
The keyboard is not initialised, so the keyboard LEDs do not light up
Requires the user to type a <space> to synhronise the keyboard
Some USB keyboards support PS2 mode by a passive converter
A USB socket can be forced into a minidin6 pcb - I need to check if the data pin needs to be rewired on this ???

Operation

Requires the user to type a <space> to synchronise the keyboard
The keyboard is not initialised by the propeller, so the keyboard LEDs do not work

Acknowledgements

Scancode decoding based on original Keyboard.spin·by Parallax
Thanks to Andy (Ariba) for some initial tests and ideas
Thanks to kuroneko for helping me to·understand some features of the counters



OnePinTVText

Features

Works with a TV (composite video) using only 1 propeller pin
B&W display only, NTSC default (PAL requires parameter changes)
25·lines of 40 characters (40x25)
8 x 8 font inside the cog
Simple terminal code inside the cog (ASCII control codes, not VT100 compatible)

Up/Down/Left/Right/Home/Backspace
Enter (Carriage Return) causes scrolling if·on bottom line of screen
Clear Screen is implemented by the ScrollLock key ($00 and $18)

Blinking underline cursor
Inverse video for bit8=1
Simple 1 long hub interface (mailbox/rendezvous)
Screen buffer (1000 bytes) in hub (allows other programs to directly manipulate the screen buffer if required)
Minimal hub footprint
Designed for SphinxOS, RamBlade, etc where alternate drivers can be loaded or changed on the fly without software changes
Also usable for a simple (extra) debug display

Interface

The standard prop·TV (composite video)·interface can be used (as on the Proto Board, etc)
Simple circuit uses 1 x 270R·resistor (other values can be easily used)

1 x 270R in series from the propeller pin to the video pin

A simple external cable can be built with·the resistor in the plug (see circuit and pictures below)

Acknowledgements

Based on original OnePinTVText·by Eric Ball
Uses AiChip 8x8 fonts
Thanks to Phil Pilgrim (PhiPi) for the original hardware concept

The archive contains all programs required for testing including the program to calculation·the TV parameters.

For testing, just connect to your existing propeller with PS2 Keyboard and TV and run the program. The existing circuits will work correctly although the other pins will be ignored. Pin changes in the demo code may be required.

http://forums.parallax.com/attachment.php?attachmentid=67984

Instructions for building the cables and circuits are on the RamBlade thread· http://forums.parallax.com/showthread.php?p=849265

http://forums.parallax.com/attachment.php?attachmentid=67390

31Mar2010: I have just posted v050 of the Debug version of the 1pin TV & 1pin KBD demo code. Please be warned... I used a twisted pair to bring the TV & KBD pins from my RamBlade to a breakout board and the interference caused the keyboard code not to work. It was bad practice and I paid the price in lost time to debug!!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://www.google.com/advanced_search?q=+site:forums.parallax.com&num=20&hl=en&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Post Edited (Cluso99) : 3/31/2010 6:11:32 AM GMT

Mike Green
12-07-2009, 10:21 AM
My feeling is that you need to be able to initialize the keyboard. It ought to be pretty easy to use a cheap, simple co-processor to handle the PS/2 keyboard and send the raw scancodes or possibly the fully processed ANSI codes plus shift codes as pairs of bytes to the Prop via a 1-pin asynchronous serial connection. The keyboard LEDs would be set automatically based on shifting.

Here's one example that uses a full duplex serial channel, but the microcontroller to keyboard link is primarily for flow control.
www.multilabs.net/Files/ezKEY_User_Manual_Rev_B.pdf (http://www.multilabs.net/Files/ezKEY_User_Manual_Rev_B.pdf)

The keyboard initialization sequence would be done on a reset. The Prop would need to reset the keyboard controller to reinitialize the keyboard. That would be easy to do if there were an extra pin, but the keyboard controller could also just be tied to the Propeller's reset pin.

Cluso99
12-07-2009, 11:43 AM
Nice find Mike. That is similar to my alternative. However, the pcb is only half the size of my RamBlade.

I was trying to see if I could avoid the micro. I have a PIC10F222 (SOT23-6) and a MC9RS08KA1 & KA2 (SOIC8) coming for the job, just in case. Both are about 50c but they have to be programmed. The code is simple enough.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Toby Seckshund
12-07-2009, 05:07 PM
About a year and a half ago I was messing with a 8052 MCS Basic board. I ended up putting one AVR on as a KBD to serial, one AVR for serial input/output controls and another for the 40x25 VDU.

4 cores = half a Prop.

Anyway, I am sure that it didn't do any thing complicated to reset anything and certainly the LEDs never lit. (bascom AVR)

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point

Ariba
12-08-2009, 12:17 AM
Cluso99

Your Keyboard driver code works for my PS/2 Keyboard !
I have made some exeperiments with the Keyboard last week, and found that it needs no initialization. It sends keypresses
just with it's default settings after Power on.

Attached is a short Spin code, with the results I found on my experiments.
You can poll a keyboard with Spin only, and no additional Cog. Waiting for a keypress or abort a loop by keypress is very
simple with only some lines of Spin. But it is also possible to receive the scancodes with a short Spin loop.

Andy

Cluso99
12-08-2009, 12:26 AM
Ariba: Many thanks for this info *jumps for joy*

Now I should be able to do a 1-pin keyboard and 1-pin 80x25 video. Nice, simple circuit.

Thanks for the code. I will have to digest the counter use. Looks good.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Cluso99
12-08-2009, 09:38 PM
I have been examining the keyboard protocol some more.

The keyboard uses a 10-16.7KHz clock (~30-50us low and ~30-50us high) and sends the data serially, LSB first, with start, parity and stop, so 11 bits. The prop samples the data 15-25us after the falling clock edge.

How can we use this? If we were to wait for a·specific keycode, just like modems used to autobaud with the "AT", we could determine the clock frequency (close enough) to then just clock in the data without reference to the clock pin at all. The interface would actually be simpler than the current interface. 1 x 100R and 2 x 10K pullups.

Now to prove this can be done http://forums.parallax.com/images/smilies/roll.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Sapieha
12-08-2009, 09:52 PM
Hi Cluso99


All PC KeyBoard send only ROW-COLUMN codes to PC and some status data on LED´s and Control tangents
That must be translated to valid KEY´s. One KEY is 2 DATA bytes.
If I mind correctly some can be 3 Bytes if not all.
Third Byte have next all bit´s dedicated ..... LED´s CTRL, ALT, ALT-GR, Caps Lock, Shift, and some other I don´t mind ....
Are not at Home to Look in tables for that.


Regards
Christoffer

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nothing is impossible, there are only different degrees of difficulty.
For every stupid question there is at least one intelligent answer.
Don't guess - ask instead.
If you don't ask you won't know.
If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


Sapieha

Mike Green
12-08-2009, 10:56 PM
I re-read a detailed description of the PS/2 protocol (www.computer-engineering.org/ps2protocol/ (http://www.computer-engineering.org/ps2protocol/)) and it definitely looks like you can just leave the clock line floating if you don't need to re-initialize the keyboard. I like your idea of auto-Baud testing, particularly give that the Baud is constrained in a fairly narrow range.

Cluso99
12-08-2009, 11:05 PM
Sapieha: Yes, I am aware of the codes and the translation required. I am only concentrating in being able to read the codes using 1-pin. The prop will decipher the codes as the obex keyboard.spin does now.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Sapieha
12-08-2009, 11:12 PM
Hi Cluso99


With AutoDetect baudrate ... I not see any problem to READ data from it.
And as You stated ... only problem ... It will be not posible to set LED states.

My concern are ..... Some of USB to PS2 KeyBoards ... ned initialisation to send as PS2 type data.
If You can organise that in reset state ..... KB controler can see it as PS2 ... You are done

Regards

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Nothing is impossible, there are only different degrees of difficulty.
For every stupid question there is at least one intelligent answer.
Don't guess - ask instead.
If you don't ask you won't know.
If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


Sapieha

BradC
12-08-2009, 11:17 PM
Cluso99 said...

How can we use this? If we were to wait for a specific keycode, just like modems used to autobaud with the "AT", we could determine the clock frequency (close enough) to then just clock in the data without reference to the clock pin at all. The interface would actually be simpler than the current interface. 1 x 100R and 2 x 10K pullups.



My gut feeling says this has the potential to be unreliable. Most keyboards I've seen have used either a cheap resonator (not so bad) or an r/c circuit to derive the cpu clock. My experience with other such devices is that the clock frequency can vary not insignificantly with ambient temperature. If this was a device left on for long periods it would have to cope with the drift. Now, if you could talk to the keyboard from time to time then you could always re-measure the bit time edges and compensate on the fly.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
If you always do what you always did, you always get what you always got.

jazzed
12-08-2009, 11:38 PM
This is a good thing ... with the YMMV user disclaimer of course. Good work guy.

Ariba
12-09-2009, 12:26 AM
Here is my Idea for a 1 pin PS/2 circuit:

Every negative edge of the clock puls generates a short negative puls on the Prop-pin.
If the Data Line is high (= open, because of the open collector output of keyboard), the puls is short: 10k * 100pF
if the Data Line is low, then the puls is a bit longer, because the 15k resistor builds a voltage divider with the 10k,
and the 100pF C needs longer to charge up to the threshold voltage of the prop pin.

Changes on data without a clock transition have no effect, because the voltage stays well over the threshold input voltage.

The software gets a puls for every bit and needs just to measure the puls length to determine if its a '0' or a '1'. This
can be made with the neg-detector mode of a counter very easy.

Andy

http://forums.parallax.com/attachment.php?attachmentid=65726
Edit: pulses in the timing diagram are inverted shown.
This is not tested. And when I rethink it, it needs perhaps additional pullups direct at the clock and data pin.

Post Edited (Ariba) : 12/8/2009 4:57:00 PM GMT

Cluso99
12-09-2009, 01:36 AM
Mike: It gets out of sync pretty quickly as the spec is for 10-16.7KHz, but I am sure I can cater for this. The shortest time for a complete character is 11 x 60 = 660us and the longest is 11 x 100us = 1100us.

Brad: Drift over time is not an issue. I have done bit resyncing and autobaud before. The Apple //c was out of spec when initially released. I designed an Apple branded modem which had to work with both correct and incorrect clocks. I wrote a soft-coded autobaud bit resyncing UART for the MC68705 (no onboard UART).

Andy: My original thoughts were along similar lines to create a pulse on the negative going clock edge. It will require a pullup at the clk pin but I think the data pin will be fine as there is an effective pullup via your 10K (probably needs to be to +5V with a higher R value) & 15K. It think a 100R series to the PropPin will be required to prevent overshoot to 5V.

However, I think I will try the simpler hardware version as it only requires 3 resistors.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Cluso99
12-09-2009, 02:42 PM
Andy: Would you mind doing something for me please. Could you check what codes the keyboard sends when it starts. I believe that it should send an $AA indicating it passed POST checks. If this is correct, I can use this to calculate timing. Otherwise, I think I should look for the shift key sequence. The second choice would be used where the prop was reset or keyboard code loaded later, since there would be no way to reset the keyboard.

Certainly your method will work otherwise, so thanks. http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Cluso99
01-01-2010, 01:21 PM
Andy: I have been thinking further. Your circuit is great.

Do you have the time to get this working? I think it would be a great addition to the OBEX http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Cluso99
01-03-2010, 09:57 PM
Proof of Concept working http://forums.parallax.com/images/smilies/yeah.gif http://forums.parallax.com/images/smilies/yeah.gif http://forums.parallax.com/images/smilies/yeah.gif http://forums.parallax.com/images/smilies/yeah.gif http://forums.parallax.com/images/smilies/yeah.gif

Thanks Ariba (Andy) for the circuit idea. Works a treat.

Here is the concept code, with the circuit in the spin file.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Dr_Acula
01-03-2010, 10:10 PM
You crazy genius *grin*. Well done!

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller (http://www.smarthome.viviti.com/propeller)

Ariba
01-04-2010, 02:09 AM
Sorry Clusso, for not answering your questions. I just not have watched this thread in the last weeks.

Glad to see, that you have made it by yourself!

Andy

Cluso99
01-04-2010, 10:47 AM
There are some small glitches when the data is changed, but this can be debounced out quite simply.

I think ultimately I will remove the need for the rc circuit altogether by working out the timing, but that will be a job for later.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)
· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBladeProp is: www.bluemagic.biz/cluso.htm (http://www.bluemagic.biz/cluso.htm)

Cluso99
01-29-2010, 07:27 PM
Just had some time to get back onto this.

Here is working code using the RC circuit (also shown in the spin file). http://forums.parallax.com/images/smilies/tongue.gif

Currently it only sends·the keycodes received from the keyboard. No translation is done in the pasm code yet. I intend to use the translation done in the keyboard.spin code by Parallax. The code retimes for every start bit received.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Cluso99
01-30-2010, 12:11 AM
The keycode translation is now working http://forums.parallax.com/images/smilies/yeah.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Bill Henning
01-30-2010, 01:20 AM
VERY nice work!

Now we just need 1 pin mouse...


Cluso99 said...
Just had some time to get back onto this.

Here is working code using the RC circuit (also shown in the spin file). http://forums.parallax.com/images/smilies/tongue.gif

Currently it only sends the keycodes received from the keyboard. No translation is done in the pasm code yet. I intend to use the translation done in the keyboard.spin code by Parallax. The code retimes for every start bit received.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com (http://www.mikronauts.com) E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock! (http://forums.parallax.com/showthread.php?p=852195)
Morpheus (http://mikronauts.com/products/morpheus/) dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95 (http://mikronauts.com/products/serplug/)
Propteus (http://mikronauts.com/products/propteus/) and Proteus (http://mikronauts.com/products/proteus/) for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz (http://mikronauts.com/products/mikronauts-625mhz-crystal/)
Las (http://mikronauts.com/software-products/largos/) - Large model assembler Largos (http://mikronauts.com/software-products/largos/) - upcoming nano operating system

Cluso99
01-30-2010, 01:43 AM
Thanks Bill.

1-pin mouse should work without the keycode conversion.

I am just playing with using only the data pin (i.e. no RC network). Hopefully tomorrow I may get this bit running.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Ariba
01-30-2010, 12:09 PM
A Mouse needs to be initalized. Nothing is sent out until the right mode is set. To set the mode you need Data and Clock signals.
Perhaps it's possible to do Mouse and Keyboard with 3 pins (Keyboard also with initialization): CLK to Mouse and Keyboard, DATA1 to Keyboard data, DATA2 to Mouse data.

Andy

Cluso99
01-30-2010, 01:49 PM
Next update: Running with only the keyboard data pin connected (via the normal 10K pullup to +5V and 100R series - i.e. no RC network). The 10K pullup on the keyboard clock line is probably still required. http://forums.parallax.com/images/smilies/jumpin.gif

Notes:

There are issues with the locks (shift/num, etc) and I have not tracked this down yet You must type an "F1" (or right-hand Shift key, or indeed any keycode with a value of %xxxxxxx1 i.e. lsb=1) so the code can synchronise to the keyboard speed. The keycodes seem to be read correctly but as I said there are lock issues. It could just be that I have not set them correctly since I cut and pasted some of the Parallax keyboard.spin code directly in without much thought.
Mouse: Andy, it's a shame that the mouse must be initialised http://forums.parallax.com/images/smilies/cry.gif· The clk cannot be combined since the device (kbd or mouse generates the clk). I think this will require the small micro if anything is to be achieved here. And there is no point using 3 combined pins.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Dr_Acula
01-30-2010, 01:52 PM
Amazing effort! Popping a bottle of virtual champagne now...

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller (http://www.smarthome.viviti.com/propeller)

Cluso99
01-30-2010, 02:21 PM
Drac: I am just looking at a 0-pin keyboard driver and 0-pin TV driver.

Just cannot figure a way to drill the prop chip and attach·aerial wires to the silicon. http://forums.parallax.com/images/smilies/idea.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Ariba
01-30-2010, 03:22 PM
Cluso99 said...
Mouse: Andy, it's a shame that the mouse must be initialised http://forums.parallax.com/images/smilies/cry.gif The clk cannot be combined since the device (kbd or mouse generates the clk). I think this will require the small micro if anything is to be achieved here. And there is no point using 3 combined pins.


The idea is to use the clk only for initilization. After that keyboard and mouse will only receive in 1 pin mode (so the clk can be used for something else, perhaps I2C?)


The new 1 pin version sound promising, and this one I can test without additional hardware.

Can you not use the Break code ($F0) to measure the speed? This is sent always as first Byte on key release.
- wait for the first Low bit, this is the begin of the pressed key message (1..3 byte)
- wait 20 miliseconds to ignore this message
- the next byte will be a $F0 (first byte of the break code)

Andy

Cluso99
01-30-2010, 04:21 PM
Andy: The problem with using a common clock is that both the mouse and keyboard output the clock, not the prop. So you have 2 competing deviced outputting the clock.

I used F1 or othe keys that have a single 0 bit as the start bit followed by the lsb bit which is a 1 bit. This way I can check it is a valid start bit by being <100us. The spec says it can be 60-100us (10-16.7KHz). With 2 x 0-bits the timing could be 200us which can also represent 3 x 0-bits for the faster keyboards at 180us. So I must look for a single start bit as this is the only one that I can tell is a single bit.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Toby Seckshund
01-30-2010, 05:10 PM
Clusso

Use a nail gun through the top. Carefully locate it so that you are directly over the third letter of the part number.

As always "X" marks the spot !

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point

Cluso99
01-30-2010, 05:35 PM
Toby: Always wondered what that "X" was for in the partno. http://forums.parallax.com/images/smilies/smile.gif

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Cluso99
01-31-2010, 09:43 PM
Working Alpha test version v115 attached.

The code requires a <space> key to be pressed to synchronise to the keyboard speed. Until that happens all keyodes are stripped. Resynchronisation occurs each time a keycode with the LSB (bit 0) = 1 is received.

Currently there is no buffering as I am going to fit the buffers into the cog so that it will work with SphinxOS.

Anyone wishing to test this can do so with no hardware changes to an existing keyboard circuit. This code totally ignores the keyboard clock pin, so only the keyboard data pin is used and utilises the exact same keyboard circuit (10K pullup and 100R series on the keyboard data pin, and a 10K pullup on the keyboard clock pin).

Note: bst is not required for compiling.

Postedit: v116 (code tidyup - no new features)

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Post Edited (Cluso99) : 1/31/2010 3:17:18 PM GMT

tonyp12
02-01-2010, 01:21 AM
If you gone do one pin, do it the smart way by using a programmable ic.
·
You can have one pin for both keyboard and mouse.
·
This 50cents·pdip-8, have 4 inputs/outputs
So 2 pins for keyboard and 2 for mouse.
·
It also have on fixed output, this is the one you use as one wire serial to the prop.
Some custom·Tx UART or·Manchester·will do.
·
http://www.mouser.com/ProductDetail/Freescale-Semiconductor/MC9RS08KA1CPC/?qs=N2XN0KY4UWUndDgeHLAsxA%3d%3d (http://www.mouser.com/ProductDetail/Freescale-Semiconductor/MC9RS08KA1CPC/?qs=N2XN0KY4UWUndDgeHLAsxA%3d%3d)
·
I'm up for the task of programming 25 units when I have the time.

Post Edited (tonyp12) : 1/31/2010 5:27:46 PM GMT

Cluso99
02-01-2010, 01:28 AM
tonyp12: That was my altenative (or the PIC12F2xx which is a 6pin SOT23) but since it works with no IC why add another part that needs programming.

BTW Cog buffer is now working. Next is to add the interface for SphinxOS.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Cluso99
02-01-2010, 08:19 PM
Here is a Beta test release v120. http://forums.parallax.com/images/smilies/jumpin.gif

It is currently in the form of a standalone test program which requires the serial pc connection to display the keystrokes and a PS2 keyboard connected to P26/P27 although P27 is not used.

The buffer is internal to the cog and it is ready to add into SphinxOS.

Please report any problems. Can be compiled with PropTool.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Cluso99
02-07-2010, 05:59 AM
Here is a picture of making a cable with resistors inside the socket shell (see pics A-H). The picture also shows how to make a 1-pin TV/video cable.

For more info, see the RamBlade thread http://forums.parallax.com/showthread.php?p=849265

Keyboard cable (PS2 1-pin version)

I used an old computer CD cable. I cut the extra mounting clips off the 4-pin plug. My 4-pin plug had another set of finer cables connected to another smaller plug. I carefully cut those wires off. A: The white wire has 100R soldered with yellow heatshrink covering the joint. The other end of the 100R is soldered to a 10K. A 10K is also soldered to the PS2 socket (clock pin) and then covered with heatshrink. B: A larger piece of red heatshrink is ready to be placed over the 2 resistors. C: Red heatshrink is fitted over the 100R & 10K resistors but not shrunk yet. D: The resistors are then soldered to the PS2 socket (data pin) and the red heatshrink is slid over the joint and shrunk. E: Next the black (GND) and red (+5V) wires are soldered to the PS2 socket. F: The exposed leads from both the 10K resistors are then bent back ready to be soldered to the red wire/PS2 socket. G: The 10K resistors are soldered to the red wire at the PS2 socket (+5V). H: Completed cable.
http://forums.parallax.com/attachment.php?attachmentid=67390

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Cluso99
02-20-2010, 06:55 PM
Here is a beta version of the 1-pin Keyboard and 1-pin TV drivers combined in one demo program.

The keyboard requires a the space key (spacebar) to be pressed to synchronise to the program. When this is done, the keyboard sends a <cr> (Enter) to the program to indicate all is well. Characters typed on the keyboard are sent to the TV. Carriage return and scrolling works from the keyboard. Cursor control keys also work. ScrollLock is used for ClearScreen.

Most of the control and cursor movement keys are not being sent (except <cr>) so I will look into this. fixed

The keyboard driver has an internal 16 byte buffer within the cog.

Information regarding the 1-pin TV Driver is here http://forums.parallax.com/showthread.php?p=822453

Simply put, the 1-Pin TV driver has the 8x8·font and screen control code·inside the cog. It generates composite video in B&W. The screen buffer is in hub which can be directly accessed by other·programs if required. Basic screen control functions use ASCII commands, not VT100. They are left/right/up/down/backspace/carriage-return/linefeed/home, plus scrolling. Inverse characters are displayed if the bit8=1. A flashing underline cursor is displayed. The format is 40x25 but other combinations are possible by changing the constants inside the source program. A program is included which calculates these constants for you.

Both programs are intended for both the RamBlade and for·SphinxOS, but can just as easily be used to save pins on other prop boards. The demo will run on most standard propboards·using the TV on pins 12-15 and Keyboard on pins 26-27. You do not need to change any of the hardware to test this as the prop will just not output on the unused pins.

An extremely good use for the·TV driver would be for debugging as it only uses 1 pin on the prop and a cog.

I believe all is working as it should be http://forums.parallax.com/images/smilies/yeah.gif· If you find any bugs please let me know.

There is a translate table in spin in the demo program to translate the keycodes into ascii command codes for the screen control functions. I am not sure where this should go - perhaps in the keyboard driver. There is almost no space in the video, so I don't wnat 2 sets of control characters. Any ideas???

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Post Edited (Cluso99) : 2/20/2010 2:06:37 PM GMT

Cluso99
02-21-2010, 07:17 PM
Release for both OnePinKeyboard & OnePinTVText with demo program (v040 & v125) at top of thread·· http://forums.parallax.com/images/smilies/turn.gif

http://forums.parallax.com/attachment.php?attachmentid=67984

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://search.parallax.com/search?site=parallax&client=parallax&output=xml_no_dtd&proxystylesheet=parallax&proxycustom=<HOME/>&ie=&oe=&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Cluso99
03-31-2010, 02:11 PM
I have just updated the top post with the latest 1pin TV & 1in KBD code. It as been tested up to 6.5MHz overclocking on my RamBlade.

Do not use a twisted pair for the TV & Kbd cable (combined) as it will fail with interference to the keyboard.

This code can be used for a 2pin minimal debug terminal.

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:

· Home of the MultiBladeProps: TriBlade (http://forums.parallax.com/showthread.php?p=786418),·RamBlade (http://forums.parallax.com/showthread.php?p=849265),·SixBlade (http://forums.parallax.com/showthread.php?p=780033), website (http://bluemagic.biz/cluso.htm)
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator) (http://forums.parallax.com/showthread.php?p=790917)
· Prop Tools under Development or Completed (Index) (http://forums.parallax.com/showthread.php?p=753439)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) (http://forums.parallax.com/showthread.php?p=778427) ZiCog (Z80) (http://forums.parallax.com/showthread.php?p=788511) , MoCog (6809) (http://forums.parallax.com/showthread.php?p=811043)·
· Prop OS: SphinxOS (http://forums.parallax.com/showthread.php?p=819353)·, PropDos (http://www.orrtech.us/propdos/) , PropCmd (http://obex.parallax.com/objects/440/)··· Search the Propeller forums (http://www.google.com/advanced_search?q=+site:forums.parallax.com&num=20&hl=en&lr=)·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz (http://www.bluemagic.biz)·· MultiBlade Props: www.cluso.bluemagic.biz (http://www.cluso.bluemagic.biz)

Alexis64
04-11-2011, 11:57 AM
I have just updated the top post with the latest 1pin TV & 1in KBD code. It as been tested up to 6.5MHz overclocking on my RamBlade.

Do not use a twisted pair for the TV & Kbd cable (combined) as it will fail with interference to the keyboard.

This code can be used for a 2pin minimal debug terminal.



Cluso99, just a quick note to let you know that the 1pin driver in obex has an error in the pasm code ... it caused flickering when gotoxy is used. The error looks like a typo to me. fixing it as below removes the flicker. Thank you for the driver - great stuff ...


'do blank lines (top & bottom) doblank MOV VSCL, xsync ' horiz sync (line)
WAITVID xFFOO, #0
MOVI CTRB, #0 ' turn off blank
MOV VSCL, xblank ' line
WAITVID xFFOO, #0
MOVI CTRB, #_iCTRB ' turn on blank
jmpret taskret, taskptr ' to vt100 code
' jmpret taskret, taskptr ' to vt100 code <---- EXTRA LINE TO BE REMOVED
DJNZ rownum, #doblank
doblank_ret RET

Cluso99
04-11-2011, 03:37 PM
Alexis64: Thanks. I will take a look in a few days time and post an update on obex.

Cluso99
07-02-2011, 08:54 AM
I just realised that this extra line was to permit more time for the VT100 style driver. However, my later testing was done with higher clock speeds and overclocking. Just remove this line if you are running at 80MHz.

Seeker
06-09-2012, 02:52 AM
Sorry to bump an old thread, but I have a question about the 1-pin video driver...

I found the 1-pin video driver was perfect for what I am working on. The inverse video (and gotoxy which wasn't in the original 1-pin video from what I remember) was what finally drew me away from color. For what I was doing, color would have just been for contrast with the background. I am going to overlay the output over a camera image and the basic TV output would have worked fine, but using the extra resources was a problem. 1-pin video was the answer!

But now I am working with a 16x9 format... so 1-pin video at 40x25 has become 1-pin video at 64x28. And at 80Mhz.... hmmm... I lose inverse video. I know I can overclock... but so many other things are already timed to 80 Mhz. Is there any way to get inverse video at 80 Mhz at 64x28? I am willing to give up other features if it is a timing issue. I have already removed the flashing cursor since I don't need it. That gained me approx. 5 assembly instructions! Hee-hee... Yeah, I know... that won't help. But I am open to suggestions.

I even toyed with the idea of just changing the fonts to their inverse which works, but gives up "normal" video out which I might want to use. I would like to keep that option open and sacrifice other options first.

I will change the crystal if I have to but I will be kicking and screaming the whole way! ;) I have 12 sensor inputs and 12 outputs that all are written around 80 Mhz and time dependent.

Any possibility?

Thanks,

-John

Cluso99
06-09-2012, 03:37 AM
seeker: The timing is all in a little loop (outputting the actual video section) and from what I recall, I did everything possible to reduce that loop.

However, your comment that everything is timed to the standard clock shouldn't be true. Everything SHOULD be timed to CLKFREQ which is a value loaded into the hub location $0 by the compiler. So, things such as waitcnt (clkfreq/xxx +cnt) will work as stated. The serial objects do the same thing.
BTW I do recall that some of the video code did not comply but that timing could be fixed.

What other objects are you using that you think are not timed correctly?

What resolution are you after? What prop board are you using? Perhaps 96MHz (6MHz) overclocking might work for you - not all boards have been built for overclocking although some could be modified.

Seeker
06-09-2012, 04:35 PM
I hadn't thought of it that way... I forgot it is all based off of clkfreq, not hard coded time. I am using a 6 channel R/C input, 8 channel PWM servo output, 4 I2C sensors (altimeter, compass, gyro and accelerometer), 2 Pings, TV/audio output, and (as a future option) GPS. Looking at the code closer, you are right. Everything is based off of a divisor of clkfreq. I was over-thinking it and relating to past experience where these things were hard coded timings and even changing one instruction could throw things off.

I want to get 64x28 resolution. It looks great on the 7" TV I use for debugging and the aspect ratio is closer to the 720p video camera signal I want to overlay it on. I am using a Propstick so swapping out the crystal shouldn't be a problem.

Now, where to get a 6 or 6.5 Mhz crystal in Tampa? Hmmmm... I will probably have to order it on line. I was hoping for instant gratification but I guess I will have to wait.

Thanks for the reminder that I am working with a Propeller and not a 6502. :)

Cluso99
06-10-2012, 01:26 AM
For 6MHz & 6.5MHz xtals - DigiKey carries them. 18pF-20pF is fine and HC49U/S package. 6.25MHz are available from Bill Henning and Parallax.

Seeker
06-10-2012, 03:23 AM
I decided to order from Parallax. I needed a few other things anyway.

Thanks for your help... and for a great video driver!

Cluso99
06-10-2012, 12:54 PM
Thankyou, but as you can see in the source, I built upon what others had done too. Its a great community here!

kuroneko
05-07-2014, 06:02 AM
Sometimes it's hard to resist.

Cluso99
05-07-2014, 07:46 AM
Sometimes it's hard to resist.
Nice. So what did you do to get this?

kuroneko
05-07-2014, 08:36 AM
So what did you do to get this?
Obviously remove the hubop from the loop (with 80x25 you only have about 44 cycles @80MHz). Then squeeze a bit to make it all fit (don't worry, there is still space left). The scroll code needs more attention, feels like it's too long (picture wobbles even @104MHz, original code).

kuroneko
05-08-2014, 04:15 AM
Attached is a (driver) drop-in replacement for the OBEX package (http://obex.parallax.com/object/196) (1.25). This enables all features (up to 80x25 and inverse video) for 80MHz systems. PAL remains untested.

Update: gotoxy now passes the cursor address as part of the command (speedup)

Mike Green
05-08-2014, 04:35 AM
Wow! Thank you.