Does anyone know if there is a small PIC controller board that is offered
by any companies? I know about the Basic Stamp but that 8 bit I/O is a huge
disadvantage for medium level work. I am thinking of something along the lines
of the F1 or miniboard type of stuff.

I know the PIC might not be the best chip for the job, but I just wanted to
know if anyone done it before.

>I have purchased a locally made stamp clone that has all the
>possible IO combinations on the board (relays, a/d d/a RS422 and PSU)
>I am having a bit of a funny problem with it and perhaps someone could
>point out the culprit.
>
>The unit corrupts the EERAM program memory at times, notably after
>a power cycling. The reset circuit seems to be that of the new
>recommended brown-out safe transistor design that in published in
>the Parallax docs. I have not traced it out to compare as yet.
>
>The puzzling thing is the failure mode in the EERAM, byte 07 of a
>Microchip 93LC56 is corrupted, in some programs this caused one of my
>delay loops to change and in others the BASIC hangs up. The change
>in that byte is not constant with nore than one wrong number appearing.
>
>I have an idea that the right number may even have re-appeared. I have
>been reading the data out with an universal programmer than recognises
>the EERAM.
>
>Is the PIC faulty, there may have been trauma to some of the portB pins
>as the A/D and D/A chips were transposed (serial 8 bit a/d and op amp)
>when I received the unit. They are dead but the PIC seems happy.
>
>Or otherwise the EERAM as I have removed all other ICs from the board,
>the 5V supply is supplied by a 12V regulator after a bridge. Is the
>PIC programming the data into the EERAM or is the EERAM corrupting itself,
>with the right data in the EERAM everything seems to opperate correctly.
>
>Is there a detokeniser for the Parallax EERAM data?
>
>Kalle
>--
>Kalle Pihlajasaari spam_OUTkalleTakeThisOuTdata.co.za
>A
>Kalle Pihlajasaari .....kalleKILLspam@spam@data.co.za

Your problem is complicated by the fact that the board has a lot of extras,
which may or may not affect the operation of the basic circuitry. We have no
knowledge of the Stamp-like product you mentioned, but they are (hopefully)
getting the BASIC chip from us or one of our distributors. If the chips are
somehow bad, we'd be happy to replace them.

As to the EEPROM data problem itself, we did have some problems with the
original Stamp. Perhaps 5% of customers reported problems when power was
cycled. When we changed to the improved brown-out circuit, the problems
dropped to almost none (one or two per thousand Stamps). Any problems that we
do see are always related to power cycling.

I have looked at several ways to make PC boards at home/office
with varying levels of success. From your post, it sounds like
you are having some problems with transferring the toner to
the copper. I tried a couple of products "designed" for this
approach and I was not very impressed with the results. I wound
up using 3m CG300 Laser printer transparency film. Print the
PCB on the film & heat transfer (with clothes iron on cotton
setting) it to the copper (BTW place a piece of paper over the
plastic film so the plastic does not melt onto the iron!) This
works pretty well.

If you want higher quality than this, you can treat the PCB
with a UV curable photo-resist. This is more time consuming
as it requires coating the PCB, exposing it under UV light for
20 minutes or so, and then etching. Plus, you may like working
around UV light; I don't! Accidents can and do happen!

Another approach, which is a little more expensive but is faster
than all the above is to print the design directly onto the
copper. You may be wondering how the PCB wraps around the drum.
It doesn't. There is a company called Bit Bangers in Florida
(no affiliations, kickbacks, etc... for me) which make 1/2 copper
sheets which have a thin silicone adhesive backing. So, you place
the copper sheet in the manual feed tray (the manual feed should
be a fairly straight shot through your laser printer) and hit print.
The toner is printed directly to the copper. Peel the backing off
and place on the FR4 (or whatever material you want to use as a
base) and place into your normal etch bath. Works great!

The cost is US$15.00 for a single 8.5x11 inch copper sheet. They
have "LaserPCB" packs which contain copper sheets with FR4. They
are US$30.00, US$70.00, and US$130.00 for 2-pack, 5-pack, 10-pack,
respectively. Their phone number is 800.251.7776 or outside the US
407.745.9321.

I am constructing a PIC design which will consist of three pc
boards stacked directly on top of each other. I need signal interconnect
between the boards (in the center of the boards, not on the edges).
Design requirements space the boards 0.328 inches apart for the final
interconnect. During prototyping and troubleshooting I want to extend the
space between the boards so that I can use ZIF sockets for the PICs (on the
center board as you may have guessed).
[snip]
Thanks in advance,

Martin Kirk
----- End Included Message -----

Martin, you might consider using a short ribon cable, with DIP headers, or
some other arrangement on the ends. This does not give you the mechanical
mounting, but it would allow removal and extension appropriately. If you
can afford the board space, then you could use other spacer
technology (nylon bolts and spacers, etc.)

I am using a custom elastomeric connector from Elastomeric Technologies
to stack PC boards. There are a number of different vendors of
elastomeric connectors, but most of them do custom designs for each
application. I believe AMP has a line of standard products that might
fit the bill, but I don't know anything about buying them in small
quantities. You might get away with a few samples, depending on how
many you need.

In any case, using elastomeric connectors is wonderfuly simple. Put
identical land pads on top and bottom of the boards, and then clamp
them together with bolts or some other mechanism. Alignment of
multiple independant connectors on each board is greatly simplified, as
the nature of elastomeric connectors allows much greater leeway than
pin and socket connectors.

For those unfamiliar, elastomeric connectors have alternating stripes
of conductive and nonconductive materials, with these stripes being at
a much tighter pitch than the land pads they need to connect. This
allows for significant misalignment of the connector to board, although
the board-to-board alignment must be held fairly well, relative to the
pad size. This is a big advantage over the use of surface mount
connectors if you have multiple connectors between boards, as it can be
difficult to hold these connectors in the land pads at tolerance during
reflow. Using alignment pins on the connectors is complicated by the
fact that you're stacking multiple boards, so you need to share holes
in many cases, and then each pin can only stick halfway through the
board. Not to say that you couldn't come up with a good solution using
SMT connectors, but for my application, elastomeric connectors were a
great alternative.

Im programming a system that needs to interface with a VT100 or VT52 compatible
terminal.

Now i wonder what the command set of these terminals is. what do you have to
send to the terminal to move the cursor , clear the screen etc. ...
And what does the terminal send if you press the arrow keys etc ...

I have no access yet to such a terminal.

Second question ( a tough one i guess )

What does an IBM AT ! keyboard transmit when you press a key ?
I monitored this on a scope and it looks like a synchronous 11 bit signal.
Anyone who has a list of the codes emitted for all keys in a 101 or 102 key
keyboard ? (i'm not talking about the scancodes here. Because they are generated
inside the PC by the keyboard controller on the motherboard.)

I figuered out that each key has 2 codes. One of the bits seems to indicate Key
pressed or Key released. There also seems to be something like parity control.

The target application is a small process controller that can either interface
to a VT52 terminal. Or interface to an IBM-PC (AT !) keyboard and LCD display.

> Im programming a system that needs to interface with a VT100 or
> VT52 compatible terminal.
>
> Now i wonder what the command set of these terminals is. what do you have to
> send to the terminal to move the cursor , clear the screen etc. ...
> And what does the terminal send if you press the arrow keys etc ...

The VT52 was the last (main stream) terminal that DEC built using
the concept of the Escape character, <ESC>, introducing a sequence
with unique terminators and encoding that varied with each pattern.
Commonly available documentation used to be had in the Heathkit
H-19, H-89, and H-29 manual sets. I think enough years have finally
passed that the VT100 has essentially made it obsolete (at least for
any new designs).

Basically, each VT100 sequence starts with a <CSI> character (for
Control Sequence Introducer). This is an 8-bit C1 control character.
It maps, in a 7-bit environement, into <ESC>[ (Escape followed by a
left square bracket). The sequence terminators fall in a specific
range of the ASCII character set. Other portions of the set are
used to build parameters and seperate fields. It's a very nice, rich
terminal control system. Even sketchy details of all the sequences
would take dozens of pages.

Both of these terminals were designed and built by Digital Equipment
Corporation (DEC). They kind of became defacto standards in the world
of ASCII async comm terminals. DEC (now preferring the Digital moniker)
has continued to evolve these terminals into the current VT520 series.
The new ones are, basically, upward compatible.

You can get manuals from DEC. They used to supply them with their
terminals. Now they're seperately available items which have gotten
pricey. You'd probably want the Programmer's Reference manual.

The VT100 sequence spawned, or agreed with, the early ANSI standard
for terminal control. I don't know which came first, but I suspect
the DEC product preceded the standard. Maybe they were developed
simultaneously since DEC has representatives on the X3 committees.

For full reference, you want copies of the X3.4, X3.41, and X3.64
standards. They're available from the American National Standards
Institute, Inc; 1430 Broadway Avenue; New York, New York 10018. They
are not cheap. ANSI usually requires prepayment from small companies

You might get enough information to control a VT100 terminal from
documentation of the PC's ANSI.SYS driver (if you have anything
describing what it recognizes).

> I have no access yet to such a terminal.

There's a terminal emulator called Kermit. It's available from Columbia
University (ftp to watsun.cc.columbia.edu, cd kermit). It will support
both VT52 and VT100 terminal types on PC, Macs, Amigas, and lots of other
machines (big & small). Source is available, so if you can't get the
terminal reference manuals, you should be able to sweat out the sequences
from that.

> Second question ( a tough one i guess )
>
> What does an IBM AT ! keyboard transmit when you press a key ?
> I monitored this on a scope and it looks like a synchronous 11 bit signal.
> Anyone who has a list of the codes emitted for all keys in a 101 or 102
> key keyboard ?

I'd recommend the "IBM Technical Reference, Personal Computer AT".
It includes the description of the interface as published by IBM.
Was running about $80-100(US) but may be hard to find.

You can also check "PC Keyboard Design" by Gary J Konzak. It's
$249(US) and includes a diskette with royalty-free source code.
Gary also wrote the "PC 8042 Keyboard Controller" book; $199(US).

These books are available, along with lots of other PC reference
works, from:

For less cost, you might want to check out the Ed Nisley's Firmware
Furnace column in the #59 June 1995 issue of Circuit Cellar Ink magazine.
It's entitled "How the PC Keyboard Got its Bits". It might answer all
your current questions.
Lee Jones

> There is a bit of a trick involved with what you're doing - the clock and
> data line at each end are driven with open collector outputs, if you want to
> use an IBM keyboard without the IBM, you will have to emulate the PC's
> keyboard controller. You may want to verify this - its all a little fuzzy
> for me. The emulation won't be too difficult, but will take a little
> checking into, it probably all boils down to just a couple of things.

The PC sets the Caps Lock LED (and the rest) on/off and also issues
initialization strings, and others. They are all listed in the IBM
technical reference. One does not really need them in simplier
applications. Actually, I can REALLY recommend the Philips
Microcontroller Application Notes -- one of them is a IBM keyboard to
I2C converter using a 8051. It has all the data you need, scan codes, controller
codes, alles... If you need copies of the IBM tech reference, or the
exact number of the Philips app note, e-mail me, and I'll try to organize someth
ing.

>
> Second question ( a tough one i guess )
>
> What does an IBM AT ! keyboard transmit when you press a key ?
> I monitored this on a scope and it looks like a synchronous 11 bit signal.
> Anyone who has a list of the codes emitted for all keys in a 101 or 102 key
> keyboard ? (i'm not talking about the scancodes here. Because they are
> generated
> inside the PC by the keyboard controller on the motherboard.)
>
> I figuered out that each key has 2 codes. One of the bits seems to indicate
> Key
> pressed or Key released. There also seems to be something like parity
> control.
>
> The target application is a small process controller that can either
> interface
> to a VT52 terminal. Or interface to an IBM-PC (AT !) keyboard and LCD
> display.
>
> Regards
> Vincent
>
> Fwd=by:=Mike=Fahrion========================================================
> Fwd to:
> PICLIST @ AUUCP {PICLIST%RemoveMEMITVMA.BITNETTakeThisOuTuga.cc.uga.edu} (pic
> microcontroller discussion list)
> ............................................................................
>
> I've developed a product that receives data from the ibm keyboard (which is
> connected to a PC) using a RC oscillator PIC. Receiving isn't a problem
> (could save yourself a lot of headaches by running faster than 4 MHz tho').
>
>
> If memory serves - the keyboard transmits 1 "make" code (start bit, 8 data
> bits, parity & stop) and two "break" codes. The first byte of the break
> code is F0h, and the second is the same as the make.
>
> There is a bit of a trick involved with what you're doing - the clock and
> data line at each end are driven with open collector outputs, if you want to
> use an IBM keyboard without the IBM, you will have to emulate the PC's
> keyboard controller. You may want to verify this - its all a little fuzzy
> for me. The emulation won't be too difficult, but will take a little
> checking into, it probably all boils down to just a couple of things.
>
> At any rate, I have about all the information that was to be had about the
> IBM keyboard interface (which is not exactly as much as i'd like) -
> definately plan on beg/borrowing a digital scope.
>
> Feel free to email me & pic(k) my cloudy mind.....
>
> -mike
> ---------------------------------------------------------------------------
> Mike Fahrion |
> B&B Electronics Mfg. Co. | email: spamBeGonemfahrionspamBeGonebb-elec.com
> 707 Dayton Road | phone: (815) 433-5100 ext.215
> PO Box 1040 | fax: (815) 434-7094
> Ottawa, IL 61350 |
> ---------------------------------------------------------------------------
>
> ----------------------------------------------------------------------------
>

The deal about the code being an 11-bit code is correct, I
believe (my memory is a little fuzzy on that). The keyboard will send
out a byte synchronously (it provides the clock) corresponding to the key
pressed, and then a F0, and then the same key. Some keys on the AT
keyboard send out SEVERAL codes, and so it can get kind of hairy decoding
them. XT keyboards are nicer, and send only one byte per key. I wrote
down all the actual codes, if anyone is interested. I also have code
which will receive and send data for the 8051 and 68000 (the 68000 code
uses two pins on a 68230). The nice thing about the code is that it
doesn't require the use of a real serial port to work.

> What does an IBM AT ! keyboard transmit when you press a key ?
> I monitored this on a scope and it looks like a synchronous 11 bit signal.
> Anyone who has a list of the codes emitted for all keys in a 101 or 102 key
> keyboard ? (i'm not talking about the scancodes here. Because they are
> generated
> inside the PC by the keyboard controller on the motherboard.)
>
> I figuered out that each key has 2 codes. One of the bits seems to indicate
> Key
> pressed or Key released. There also seems to be something like parity
> control.
>
> The target application is a small process controller that can either
> interface
> to a VT52 terminal. Or interface to an IBM-PC (AT !) keyboard and LCD
> display.
>

In the Philips Semiconductors book "Application Notes for 80C51-Based
8-Bit Microcontrollers" there is an application note AN434 "Connecting
a PC keyboard to the I2C-bus".

It has a description of what comes out of it, how to connect to it
as well as a software listing.

Has anyone out there heard of a system for installing barrels
(the electrical path through multi-layer boards) in home-built pc
boards. At Honeywell I was used to the high-quality plated through
barrels (and even 12-layer boards) but this project is at a slightly lower
budget (2-layer boards, no benefits). It occurs to me that it would be
possible to have press-fit grommet system which could
be pressed onto pads on either side of the board giving electrical
connectivity through the board.

Does anyone know of a company making this product? Other ideas
for the through hole connections are welcome. Drilling and jumpering has
already been suggested.

Hi again...This isn't quite what you asked for, but there's a company
that'll let you FTP CAD files to them and they'll have your board out
to you in a few days. They've got good rates, good turnaround times,
and from the example I've seen they do good work. Their web page is:

> I came across a reference to a "2 of N" keyboard scanning method, which
> uses less io thant the typical xy system.

> Maybe I am in the dark ages here, but can anyone tell me the
> hardware/software basis for this?

Let preface this by saying that I'm guessing.

Connect a switch between each pair of I/O pins. With N pins, you can pair up
the pins .5 * N * (N-1) different ways. With 6 pins, that is 15 switchs. An
XY system would only allow 9 switches.

Scanning is somewhat more complex, but it's only software.

For each pin
Set all other pins as input
Set selected pin as output
Output 0 (assuming pull up resistors)
For each input pin
If 0; Key pressed, do something usefull
Next input pin
Next pin

If you add a diode with a large voltage drop, ie. a green LED, to each
switch, you can do N key rollover. The diode's voltage drop has to be big
enough so that two diodes in series have a combined voltage drop too large to
pull an input pin down to a logic zero.

For slightly more switches: connect the pullup resistors to an output pin,
such that they can be pull up or pull down. Now you connect 2 switches (with
2 diodes) between each pair of outputs, except the resistor driver. This is
good for (N-1) * (N-2) switches. 6 pins can handle 20 switches. With this
mechanism, you can also read the state of any switch independently of the
state of any other switch. The PIC inputs draw too little current to
make the LEDs glow visibly.

++++++++++++++++

I was thinking of using a similar circuit to control many devices from a PIC.
Alas the devices used too much current. But, if you want to drive green LEDs
one at a time, you can control 30 with 6 pins, 42 with 7 pins, or 56 with 8
pins. You'll also need a current limiting resistor for each LED.

I've seen and used this scheme before: both in a stone-age Motorola
remote-control transmitter chip and in a stone-age DTMF encoder chip.

Both chips required (any) two pins to be brought to ground to send the
corresponding code. At the time, I assumed the Motorola chip did it as
a power-saving measure: no keyboard scan is required. I assume the DTMF
chip did it that way because that's how ancient DTMF keypads were wired.
(back in the days when they used big inductors and capacitors, and
were expensive, heavy and huge: circa '73-75 or so)

> On Sat, 22 Jul 1995, jory bell wrote:
>
> > I came across a reference to a "2 of N" keyboard scanning method, which
> > uses less io thant the typical xy system.
>
> > Maybe I am in the dark ages here, but can anyone tell me the
> > hardware/software basis for this?
>
> Let preface this by saying that I'm guessing.
>
> Connect a switch between each pair of I/O pins. With N pins, you can pair up
> the pins .5 * N * (N-1) different ways. With 6 pins, that is 15 switchs. An
> XY system would only allow 9 switches.
>
> Scanning is somewhat more complex, but it's only software.
>
> For each pin
> Set all other pins as input
> Set selected pin as output
> Output 0 (assuming pull up resistors)
> For each input pin
> If 0; Key pressed, do something usefull
> Next input pin
> Next pin
>

This method is very interesting! I have an idea which involves a little
additional hardware, but, I think, is simpler for use (I hope). The idea is to
use a N to 2^N selector (output, active low), and if neccessary, a 2^M to 1 MUX
(input). Using a 3 to 8 selector and 6 pins in total, you have the array of
24 (8 * 3) keys, or, using a 4 to 1 MUX, 32 keys (8 * 4).

What about this solution : Use I2C. You can have enormous keyboards hooked up
with only 3 pins.

Using unscanned keys. Attach a 8574 or 8574a for every 8 keys you need.
You have no software overhead except for a small routine to read the chips.
Hook up the interrupt lines of the chips to your cpu. If a statechange occurs of
one of the inputs the chps will assert an interrupt to the pic. The pic then
quickly scans the keyboard and presto. Instant keyboard scan without waisting
cpu time when no key is pressed. You can attach 16 of these in total ending up
with 128 keys. Ennoug to scan a complete ibm pc keyboard.(of course heavily
modified)

Other solution. Use one PCF to drive and one to receive. Again use the same
trick. In the programs dead time generate scancodes. When no interrupt comes
from the pcf8574 nothing happens. when a key is pressed : interrupt : the pic
reads the second 8574 and can calculate the key pressed. This gives you 64 keys
with only 3 lines. How's that for a bargain ?

If you extend this further you can have a total of 8 drivers and 8 receivers
giving you a keyboard which can occupy 64*64=4096 keys with only 3 pins and
still minimal software overhead. Who can do better ? :-).
( who will need that kind of a keyboard ? Maybe a japanese wordprocessor :-) )

Note: With PCF and 8574 i am referring to the PCF8574 or PCF8574A from philips.
This is an i2c 8 bit parallel i/o port. with interrupt generator on status
change of the inputs.

Software routines to handle i2c are very easy. with about 100 bytes or less you
can handle the 4096 key keyboard.

At 06:14 PM 7/24/95 +0200, Vincent Himpe wrote:
>From: NAME: Vincent Himpe <DE_HIMPE@AM@WODAN>
>To: "spamBeGonepiclistSTOPspamEraseMEmitvma.mit.edu"STOPspamEraseMEoberonSTOPspamEraseMEmrgate
>
>What about this solution : Use I2C. You can have enormous keyboards hooked up
>with only 3 pins.
>
>Using unscanned keys. Attach a 8574 or 8574a for every 8 keys you need.
>You have no software overhead except for a small routine to read the chips.
>Hook up the interrupt lines of the chips to your cpu. If a statechange
occurs of{Quote hidden}

>one of the inputs the chps will assert an interrupt to the pic. The pic then
>quickly scans the keyboard and presto. Instant keyboard scan without waisting
>cpu time when no key is pressed. You can attach 16 of these in total ending up
>with 128 keys. Ennoug to scan a complete ibm pc keyboard.(of course heavily
>modified)
>
>
>Other solution. Use one PCF to drive and one to receive. Again use the same
>trick. In the programs dead time generate scancodes. When no interrupt comes
>from the pcf8574 nothing happens. when a key is pressed : interrupt : the pic
>reads the second 8574 and can calculate the key pressed. This gives you 64 keys
>with only 3 lines. How's that for a bargain ?
>
>If you extend this further you can have a total of 8 drivers and 8 receivers
>giving you a keyboard which can occupy 64*64=4096 keys with only 3 pins and
>still minimal software overhead. Who can do better ? :-).
>( who will need that kind of a keyboard ? Maybe a japanese wordprocessor :-) )
>
>Note: With PCF and 8574 i am referring to the PCF8574 or PCF8574A from philips.
> This is an i2c 8 bit parallel i/o port. with interrupt generator on status
> change of the inputs.
>
>Software routines to handle i2c are very easy. with about 100 bytes or less you
>can handle the 4096 key keyboard.
>
>
>Regards
>Vincent Himpe
>KILLspamvi_himpespamBeGonemietec.be
>EraseMEvincent.himpeEraseMEping.be
>
>

This sounds like a handy chip to have in your toolbox... Any info on sources
for Philips parts of this type?

Also, anyone out there who can identify the manufacturer of a DIP-package
resistor network for me: it's a 20-pin DIP, used to terminate a SCSI bus on
a disk drive, the package is marked "BI" in the top left corner, and is type
number "RM85". I need to get some replacements, either identical or
equivalent... Thanks in advance.
Kevin Fleming, Reliable Networx, Inc.
Phoenix, AZ
Internet: @spam@kpfhome@spam@spam_OUTprimenet.com

>
>This sounds like a handy chip to have in your toolbox... Any info on sources
>for Philips parts of this type?
>
>
>Also, anyone out there who can identify the manufacturer of a DIP-package
>resistor network for me: it's a 20-pin DIP, used to terminate a SCSI bus on
>a disk drive, the package is marked "BI" in the top left corner, and is type
>number "RM85". I need to get some replacements, either identical or
>equivalent... Thanks in advance.
>Kevin Fleming, Reliable Networx, Inc.
>Phoenix, AZ
>Internet: spamBeGonekpfhomeKILLspamprimenet.com
>
>
>"Please, don't change colors while I'm talking to you."
>
>
Kev-man: BI = Beckman Industrial, Phillips parts are available from Newark,
Allied, Hallmark, Marshall
etc. BI should be also.

>>
>>This sounds like a handy chip to have in your toolbox... Any info on sources
>>for Philips parts of this type?
>>
>>
>>Also, anyone out there who can identify the manufacturer of a DIP-package
>>resistor network for me: it's a 20-pin DIP, used to terminate a SCSI bus on
>>a disk drive, the package is marked "BI" in the top left corner, and is type
>>number "RM85". I need to get some replacements, either identical or
>>equivalent... Thanks in advance.
>>Kevin Fleming, Reliable Networx, Inc.
>>Phoenix, AZ
>>Internet: TakeThisOuTkpfhome.....TakeThisOuTprimenet.com
>>
>>
>>"Please, don't change colors while I'm talking to you."
>>
>>
>Kev-man: BI = Beckman Industrial, Phillips parts are available from Newark,
>Allied, Hallmark, Marshall
>etc. BI should be also.
>
>Have fun,
>Steve Schwartz
>TakeThisOuTsesKILLspamspamcts.com

>>
>>This sounds like a handy chip to have in your toolbox... Any info on sources
>>for Philips parts of this type?
>>
>>
>>Also, anyone out there who can identify the manufacturer of a DIP-package
>>resistor network for me: it's a 20-pin DIP, used to terminate a SCSI bus on
>>a disk drive, the package is marked "BI" in the top left corner, and is type
>>number "RM85". I need to get some replacements, either identical or
>>equivalent... Thanks in advance.
>>Kevin Fleming, Reliable Networx, Inc.
>>Phoenix, AZ
>>Internet: spamBeGonekpfhome@spam@spam_OUTprimenet.com
>>
>>
>>"Please, don't change colors while I'm talking to you."
>>
>>
>Kev-man: BI = Beckman Industrial, Phillips parts are available from Newark,
>Allied, Hallmark, Marshall
>etc. BI should be also.
>
>Have fun,
>Steve Schwartz
>TakeThisOuTsesspamcts.com
>
>

I have been having problems with the BBS computer recently so I am considering
shutting down the bbs as it is today. I appologise to any users who have
experienced difficulties connecting.

In it's place, I am in the process of emulating it on the net! The BBS-style
interface page is not ready yet, but it will eventually be connected to my home
page:
"http://helix.net/~lekei/"

Just between you and me, Jory (the rest of you close your eyes)... ;^)

The schematics so-far have only been available to registered users, but for the
next few days they may be available to anyone at:
"ftp://helix.net/helix-users/lekei/" since I haven't yet figured out how to
restrict access, or decided if I will just make them publicly available.

HARD HAT AREA! Mind the dust. The "virtual bbs" is being built over this
weekend.

I recently ordered PICProto-18, PICProto-Dual, and PICProto-64
from Micro Engineering. I was disappointed that the board layout
of all three does not lend itself to installing ZIF sockets. I'm
currently using Aries 28 and 40 pin sockets and AMP (Textool) 18 pin.

Here's what I've found:

PICProto-18 and AMP 18 pin ZIF: Forget it. The socket covers
the regulator, both power caps, and crouds the header pins.
It would have been nice if provisions were made for a pull-up
resistor for RTCC. A traces for brown out protection is
probably asking too much since the board is so small, but a
pull-up for this would have been nice.

PICProto-Dual, AMP 18, and Aries 28: You cannot mount both
sockets at the same time. Individually the following happens:
AMP 18 covers cap C6, Aries 28 covers resistor R1. This can
be worked around, but it is annoying. Either ZIF socket crouds
it's header pins making connection to a ribbon cable impossible

PICProto-64 and Aries 40: when ZIF is mounted correctly it
covers the regulator REG1, cap C4, and resistor R2. Mounted
backwards it still covers R2 and partially obscures C4.

If you don't intend to use these ZIF sockets the boards are great.
I will probably buy more in the future. If there are smaller sockets
(w/lever is a big plus) that someone has used sucessfully with these
boards I'd love to hear about it.

> I recently ordered PICProto-18, PICProto-Dual, and PICProto-64
> from Micro Engineering. I was disappointed that the board layout
> of all three does not lend itself to installing ZIF sockets. I'm
> currently using Aries 28 and 40 pin sockets and AMP (Textool) 18 pin.

I guess I'm totally confused. Why would you wish to permanently mount a ZIF
socket
to a Picproto board? I can see that during development you will be inserting and
removing
the PIC a lot but I've found the way to do this easily is to get a ZIF socket,
solder it into a
machine tooled "extender" socket. These look like wirewrap sockets but have
round pins.
They are used to mount LED displays and such near the front surface of a
project. Anyway
then solder a machine tooled socket in the pic protro. No plug the ZIF extender
in during
development (it is "over" the regulator etc) and pop it out and plug the PIC in
directly when
your done. You need only make one extended ZIF since you reuse it on all your
projects.
--Chuck

I recently ordered PICProto-18, PICProto-Dual, and PICProto-64
from Micro Engineering. I was disappointed that the board layout
of all three does not lend itself to installing ZIF sockets. I'm
currently using Aries 28 and 40 pin sockets and AMP (Textool) 18 pin.

You could try the multi-socket hack used for debugging large chips (I
think this was invented for dealing with the 68000 64-pin .9inch DIP.)
You pile up sockets in each other until it's high enough off the board
to attach the ZIF socket. It could also be done with WW socket:

I recently ordered PICProto-18, PICProto-Dual, and PICProto-64
from Micro Engineering. I was disappointed that the board layout
of all three does not lend itself to installing ZIF sockets. I'm
currently using Aries 28 and 40 pin sockets and AMP (Textool) 18 pin.

You could try the multi-socket hack used for debugging large chips (I
think this was invented for dealing with the 68000 64-pin .9inch DIP.)
You pile up sockets in each other until it's high enough off the board
to attach the ZIF socket. It could also be done with WW socket:

You could try the multi-socket hack used for debugging large chips (I
think this was invented for dealing with the 68000 64-pin .9inch DIP.)
You pile up sockets in each other until it's high enough off the board
to attach the ZIF socket. It could also be done with WW socket:

> I recently ordered PICProto-18, PICProto-Dual, and PICProto-64
> from Micro Engineering. I was disappointed that the board layout
> of all three does not lend itself to installing ZIF sockets. I'm
> currently using Aries 28 and 40 pin sockets and AMP (Textool) 18 pin.

I know I have posted similar articles before and I agree with the machine
pin 'stack' to get up above offensive components, but to add to the info
on ZIF use, you can convert any DIP socket into a ZIF very easily.

The Aries type will plug straight into a machine pin socket. This will
then plug into any target socket. No soldering, no drama.

The TEXTOOL (Green) ZIF has larger pins. This can be inserted into most
'single wipe' el-cheapo sockets, which will in turn plug into a machine
pin socket. Again, no soldering.

When you have finished with the target board, you remove the ZIF socket
assembly. Best if you solder good quality machine pin sockets to the CPU
position of your proto boards. I make mention of these types of hardware
tips on my Promo Disk.

I use lots of sacrifical machine pin sockets for my 'VIP Chips' so that
when the pins finally let go, it's only an add on socket that I lose, not
my 'VIP Chip' pin.

I got the logic analyzer from ProBoard today. This is the $199 24 channel
device discussed here in the Piclist before. I ordered the 8K sample
upgrade ($39) and they threw in for free an extruded aluminium box (listed
as a $39 value).

My impressions: basically it's exactly as advertised - it is well made, uses
pretty standard components (the memory is not FIFO chips, but 20ns 6264
skinny-dips). The on-board clock is a 50MHz canned oscillator in a socket.

I did not get (and they told me this in advance) the 115200 baud feature - this
is apparently coming imminently - they did supply an extra crystal apparently
to replace the 8051's current crystal for the new baud rate when I get the
new software. Printed doco is sketchy, but there is a much more extensive
read.me file on the disk, along with 3 different user interfaces.

I've only briefly played with it, but it came up with no trouble, and appears
to do just what it's supposed to. The user interface is VGA graphics, but
ran happily in a full-screen DOS box under Win95 (haven't tried it under NT
'cos my NT machine has no spare serial ports).

A couple of gripes; the case is of limited value since with the board in
it, you can't readily get at the reset button (== terminate capture) nor
can you get at the external clock input (it's just a pad on the board - you
have to solder a connector to it). There appears to be provision for pre-
rather than post-trigger sampling, but the doco says it's not a supported
feature yet.

Overall I'd say that it's good value for money, and if, like me, you have
occasional use for logic analyzer but can't justify spending $000's on
one, this would be a good buy.

> I got the logic analyzer from ProBoard today. This is the $199 24
> channel device discussed here in the Piclist before.
> ....
> Overall I'd say that it's good value for money, and if, like me, you
> have occasional use for logic analyzer but can't justify spending
> $000's on one, this would be a good buy.

Clyde:

Good info... Maybe I'll pick one up.

By the way, I notice that no one's mentioned another really good
source for high-ticket test equipment: Electronics swap meets.

There's one in TRW's parking lot in Los Angeles, for instance, where
all sorts of equipment can be had VERY cheaply. For instance, there
was an Arium ML-4100C logic analyzer just like my old one ($8000 new)
for $150 INCLUDING a couple of $900-retail pods.

Most of the stuff at these swap meets is sold as-is, but there are a
lot of vendors who run their operations as real businesses and will
take returns if the equipment doesn't work. At TRW, there are
usually a few people with generators set up so that you can actually
plug the equipment in and test it before you buy.

If you don't know of any local swap meets in your area, find a
ham-radio operator and ask him (I know, I know... Those guys ARE a
little weird, but if you're lucky, you won't have to talk to them for
very long).

That's a lot like asking, "Who's the best-looking woman?" or "What's
the fastest car?"

The choice of an algorithm depends on your particular application
and how you define "fast"; a flip response to your question is, "A
lookup table," but constructing a large-enough one for all 24-bit
floating-point inputs is about as practical as (getting back to the
car analogy) building a car with top-fuel dragster acceleration,
Formula-1 handling, and Bonneville top speed... Not likely.

What's the range of inputs to your square-root function? What sort
of precision do the outputs need? How much code/data space are you
willing to trade for speed? Is it possible that you can solve your
problem without doing square roots at all?

>Clyde Smith-Stubbs <spamBeGoneclydeKILLspam@spam@hitech.com.au> wrote:
>
>> I got the logic analyzer from ProBoard today. This is the $199 24
>> channel device discussed here in the Piclist before.
>> ....
>> Overall I'd say that it's good value for money, and if, like me, you
>> have occasional use for logic analyzer but can't justify spending
>> $000's on one, this would be a good buy.
>
>Clyde:
>
>Good info... Maybe I'll pick one up.
>
>By the way, I notice that no one's mentioned another really good
>source for high-ticket test equipment: Electronics swap meets.
>
>There's one in TRW's parking lot in Los Angeles, for instance, where
>all sorts of equipment can be had VERY cheaply. For instance, there
>was an Arium ML-4100C logic analyzer just like my old one ($8000 new)
>for $150 INCLUDING a couple of $900-retail pods.
>
>Most of the stuff at these swap meets is sold as-is, but there are a
>lot of vendors who run their operations as real businesses and will
>take returns if the equipment doesn't work. At TRW, there are
>usually a few people with generators set up so that you can actually
>plug the equipment in and test it before you buy.
>
>If you don't know of any local swap meets in your area, find a
>ham-radio operator and ask him (I know, I know... Those guys ARE a
>little weird, but if you're lucky, you won't have to talk to them for
>very long).
>
>-Andy
>
>Andrew Warren - fastfwdspam_OUT@spam@ix.netcom.com
>Fast Forward Engineering, Vista, California
>http://www.geopages.com/SiliconValley/2499
>
>They are weird, but they can also read capacitor codes; be nice to them,

>What's the range of inputs to your square-root function? What sort
>of precision do the outputs need? How much code/data space are you
>willing to trade for speed? Is it possible that you can solve your
>problem without doing square roots at all?

I need it to take and receive a float (7-bit precision). I need it for
figuring out the magnitude of a frequency after an FFT. I remember someone,
like Newton, having an algorithm that gave closer and closer
approximatations. The Greeks also had an algorithm that was a little bit
simpler, but I can't remember it now.

Sorry I can't quote but here's my 2 cents worth. Ben is right, John
Dybowski's two-part article is very thorough although part 2 tacks on a
desccription of how to fake your PC into thinking it is getting keystrokes
when in fact it is really reading a Dallas Semi. Touch Memory. A bit too
convoluted.

A shorter route might be the following (although I highly recommend reading
Dybowski if you have access to back issues of CC Ink): (1) find just about
any edition of Peter Norton's Programmer's Guide to the IBM PC and pull a
xerox of Chapter Six, "Keyboard Basics" and, maybe Chapter Eleven, as well.
These will demystify scan codes. Scan codes are nothing new. Every matrix
scanned keyboard emits scan codes, which are translated into more civilized
and useful codes like USASCII. It's just that IBM decided that you need two
for each key: one for the downstroke and one for the upstroke, which most
programs I've seen just throw away.

A second and ultimately more useful source is Philips Semiconductor's
application note AN434, which shows you how to kludge a simple electrical and
software interface a la I2C with an additional line for data to/from the
keyboard. (Don't let the I2C part scare you: it's basically just a
synchronous serial link. Philips is just pushing I2C.) Electrically you need
any two bidirectional pins on a PIC, two diodes, and two pull-ups, power, and
ground. Something like this:

PIC pin* ------>|---------- Keyboard Clock (pin 5)**

PIC pin* ------>|---------- Keyboard Data (pin 3)**

+5V ------------------ Keyboard Vcc (pin 2)**

DC Rtn ------------------ Keyboard GND (pin 4)**

* You need a 10K ohm pull-up on the PIC side of the
diode ( --->|--- this thing).
** You can also control the keyboards RESET (pin 1), or
leave it disconnected. The keyboard resets itself at
power up. The pin numbers shown are from AN434. Alway
double check. They are for the standard big old 5-pin
connector. (The PS/2 has a 6th pin that's not used,
I don't know if the pinout is the same.) Please take
all this with a large grain of something medicinal as
I left my glasses upstairs!

Hope this helps. If you have trouble finding this stuff,
give me a shout at EraseMEdeberlRemoveMESTOPspamlocalnet.com along with your
mailing address. It's not at all hard to interface any of the matrix-only $10
keyboards with a from mux/demux. Don Lancaster shows how in his CMOS
Cookbook. I prefer
the way they did it in the Otrona Attache (a CP/M machine I wish was before
my time). Actually, two 4051 counting up off of six pins of a PIC will do
just fine (8 x 8 = 1 of 64 scan codes each time a key is pressed).
You need an additional line to the pick for keypress, etc. Actually, this
could be made even simpler - 2 lines from the PIC with a 3rd or 4th for SHIFT
and CTRL if you want. Hope this helps. Nice lose my "lurker" status and
finally contribute something to this SIG.

With the recent discussion on interfacing to the PC keyboard, does anyone
know where I can find the scan codes for the XT and AT keyboards?

I have an old Portable PC that I would like to upgrade to a 3/486
system. I'd like to use a PIC as a "wedge" to convert the different scan
codes; I could also use a PIC to replace the intelligence in the original
keyboard.

Does anyone know of a source for low-cost prototyping boards for
PIC's? What I have in mind is a bare board (something like
Microchip's PICDEM) with solder holes for a PIC plus various
other likely parts such as pull up/down resistors for the i/o
ports, serial interface such as Max-232, pin headers for flat
cable connectors, etc.

> Does anyone know of a source for low-cost prototyping boards for
> PIC's? What I have in mind is a bare board (something like
> Microchip's PICDEM) with solder holes for a PIC plus various
> other likely parts such as pull up/down resistors for the i/o
> ports, serial interface such as Max-232, pin headers for flat
> cable connectors, etc.
> Thanks, D.M.

Yes, I have aboard that does all of that mentioned above. It's called a
PIGMY board and not only has provision for a MAX-232 but also a pair of
MAX-485's. It's the same size as a 3.5" floppy diskette, supports 18 and
28(5x) pin chips, basic stamp 1 and 2, ETI Pic Basic, In-circuit load
and go 84 programming and lots more.

At 02:35 PM 4/1/96 -0800, you wrote:
>Does anyone know of a source for low-cost prototyping boards for
>PIC's? What I have in mind is a bare board (something like
>Microchip's PICDEM) with solder holes for a PIC plus various
>other likely parts such as pull up/down resistors for the i/o
>ports, serial interface such as Max-232, pin headers for flat
>cable connectors, etc.
>
>Thanks, D.M.

Have you seen Micro-Engineering Lab's bare boards? They are available from
Parallax, Inc. - (916) 624-8333.

At 2:35 PM 4/1/96, Doug Manzer wrote:
>Does anyone know of a source for low-cost prototyping boards for
>PIC's? What I have in mind is a bare board (something like
>Microchip's PICDEM) with solder holes for a PIC plus various
>other likely parts such as pull up/down resistors for the i/o
>ports, serial interface such as Max-232, pin headers for flat
>cable connectors, etc.
>
>Thanks, D.M.

Parallax has some. I believe they are reselling another companies
boards (from somewhere in Colorado). Take a peek at their
web page at http://www.parallaxinc.com.

At 02:35 PM 4/1/96 -0800, you wrote:
>Does anyone know of a source for low-cost prototyping boards for
>PIC's? What I have in mind is a bare board (something like
>Microchip's PICDEM) with solder holes for a PIC plus various
>other likely parts such as pull up/down resistors for the i/o
>ports, serial interface such as Max-232, pin headers for flat
>cable connectors, etc.
>
>Thanks, D.M.

Have you seen Micro-Engineering Lab's bare boards? They are available from
Parallax, Inc. - (916) 624-8333.

> Does anyone know of a source for low-cost prototyping boards for
> PIC's? What I have in mind is a bare board (something like
> Microchip's PICDEM) with solder holes for a PIC plus various other
> likely parts such as pull up/down resistors for the i/o ports,
> serial interface such as Max-232, pin headers for flat cable
> connectors, etc.

Doug:

There are numerous sources for this sort of thing... microEngineering
Labs makes a whole family of what they call "PICProto" boards, Depew
Engineering makes a very similar product called the "PICDEV", Farsoft
Computers makes the "Proto-1", etc.

They're all in Microchip's "Third-Party Guide"... Until you get a
copy of the book from your local Microchip sales rep, here are a few
phone numbers:

The '74 is such an integrated, glue-less, stand-alone device
that if you already have a programmer for it, there really
isn't much of a need for a development board.

However, if it's a demonstration board you're after then the
PICDEM-2 from Microchip is the simple choice. It's got a few
pushbuttons, RS232 interface, potentiometer, serial EEPROM
(I2C), connection headers for an LCD module & keypad, as well
as a prototyping grid area. It comes with a few sample
programs as well. Contact your local Microchip rep for more
info.

If you are looking to do some in-circuit emulation, the
PICMaster from Microchip wins hands-down in terms of features &
performance, but not price (a few thousand US bucks). For
under a grand US, you could go for the ICEPIC emulation system,
which is pretty good but misses out on a lot of the features
many developers consider essential. And there are probably a
dozen or so third-party in-circuit emulators out there on the
market by now.

The Microchip 8-bit PIC's are interesting devices and fun to play
around with. They're a family of almost completely self-contained
microcontrollers: code space, working RAM and other resources such
as timers, A/D, UART, etc (depending on device) are all on board;
just add a crystal or even an RC. Prices and availability are
reasonable and support from the manufacturer is excellent (other
vendors take note!).

Anyone can get started with PIC's without any cost at all beyond
an IBM-PC running Windows, as a complete software development
system (MPLAB) is available free from the manufacturer. It
includes an assembler and a software simulator with breakpoints,
single stepping and stimulus files to emulate real-world input.
There's also a large library of application notes with sample
projects and programming hints.

However as things stand now, to experiment with the real thing you
need either a hardware emulator or a PIC programmer and a reusable
test device (either a UV-erasable windowed part or the 16C84 with
code in reprogrammable EEPROM). You'll also need a test target
environment, and there are various demo boards available, both the
PICDEM from Microchip as well as third party products.

In all of this I think there's something missing: ie. some
convenient, inexpensive way to check out a new design or evaluate
the PIC with real hardware and at least a few emulator facilities.
There are in-circuit emulators like the PICMASTER but they all
seem to be in a serious price range.

This is a proposal for such a low-cost PIC evaluation system. For
writing firmware, even the most minimal development equipment is a
vast improvement over nothing at all. The board, which for want of
a more elegant name I'll call the PIC-Eval, could offer some or all
of the following:

Using external code ties up 3 ports (C, D and E), ie. 19 i/o pins,
leaving only ports A and B (14 pins) available for the user.
However, this is roughly equivalent to the 18-pin PIC's in the
16CX families and is enough to give an experimenter an idea what
the PIC will do, while offering a fast design/test cycle. In
fact, the board should be useful for testing a 16CX program as the
opcodes are (almost) a subset of the 17CX instruction set and the
architecture is only slightly different.

The user program would share code space with a monitor program for
communication with the host, and which would require a few bytes
of RAM, although this would be minimized by using table read/write
to the code space where possible. The advantage of a "soft"
monitor (as opposed to EPROM) is that it can be changed
conveniently as needed.

Although the chip can address 64k, some address space is needed
for host communication as the concept calls for all of the port A
and B pins to remain uncommitted. The part count could be reduced
by not fully decoding the address lines; for example A15 could be
dedicated for this use leaving a maximum range for user code/data
and monitor of 32k. This seems like a reasonable compromise, at
least for an evaluation board, and 32k x 8 SRAM's are a standard
size.

However, for reasons relating to the chip's architecture a more
practical size is 8k for both the user code and monitor pgm. If
the monitor took as much as 2k that would still leave 6k for the
user. 6k is a comparatively large program for a PIC, considering
that the high-end part in the 14-bit series, the 16C74 has only a
4k code space. For people used to megabyte applications on a PC
it's amazing how much functionality can be packed into a tiny PIC;
for instance Microchip's app note AN531 describes a PID motor
control program using only 1k of code and 25 bytes of RAM.

Off-chip code requires some external address/data demultiplexing
as per Microchip's 17C4X data book. Latched address line 15
(normally 0 for the user area) gated with OE- and WR- would be
available to read and write an 8-bit tristate latch in each
direction plus one extra bit each way for handshaking.

Downloading to the static RAM would be done through a second PIC,
which would control the 17C42's reset line as well as tristate
buffers for ALE, WR- and OE- (these signals are active even in the
reset state). This arrangement provides more flexibility and a
lower part count than a boot EPROM which has to be deselected with
hardware.

Breakpoints could be implemented by replacing the user's opcode
with a GOTO instruction jumping to monitor. GOTO is limited to a
jump within an 8k code page, which is the main reason for that
size limitation. The user could still use the space outside that
range for table data and fully tested code not needing
breakpoints, etc.

Single stepping could be done by copying each instruction in turn
to the address 1 location below monitor entry and allowing it to
execute. However, any conditional branch or opcode that modifies
the program counter would be handled in the host. For convenience
there would be a "step over subroutine" command, equivalent to
placing a breakpoint 1 location after the call.

In conclusion, I think that although the design puts severe
constraints of the power of the 17Cx processor it still leaves
enough functionality to serve well for evaluation purposes.

-----------------

Here's where I need some advice. I'd like to design and build a
prototype of the PIC-Eval as I think it would be an interesting
project. However, before I get out the soldering iron I need some
design suggestions. For instance, is write-protecting banks of
RAM worth the extra hardware? Is 32K enough space? Any obvious
omissions or mistakes? (How to do everything at minimal cost is
another consideration).

One issue I haven't resolved is host communication. I like the
idea of using a parallel printer port, but it would have to be
bidirectional which is not a problem with modern PC's. It would
communicate with the target PIC through the high-address latches,
and with the 2nd PIC directly through an 8-bit port.

This would also be faster than serial but would need a more
specialized cable, with enough lines to bring out all the data and
handshake signals. Also, it looks like this method would need an
extra 8-bit port on the 2nd PIC, probably a 16C64 which I've
roughly allocated this way:

I've gotten some interest in USENET about my proposed PIC
evaluation board; here are some responses from different readers
with my replies:

> Couldn't one just feed the PIC 4 clock pulses (or 8 for a
> conditional) to do a single-step?... The only little flaw is that
> the regs can't be examined, but there way be a workaround.

Exactly the problem that ruled out this approach for me, since
the whole point is to be able evaluate the performance of the PIC
in several ways including examine registers. However, you did give
me the idea that clock cycles could be run through a binary counter
to get an instruction count between events.

> I agree with you there's something missing, but I think what it is
> [and I've been tempted to fix this myself] would be a
> PC-compatible board which would emulate a PIC's I/O (port pins,
> RTCC, and clock input) and allow the 8x88 to access it
> conveniently.

Something like this has been suggested to Microchip already and I
don't think they're overly thrilled with the idea. The thing is,
it seems like a big programming effort to get an IBM-PC to emulate
a PIC, compared to the real thing running in a test environment.
For instance, could you duplicate *exactly* the interrupt latency
of a real PIC? (And therein could lurk a tricky bug).

> Why not make up a 16c84 based board. Have the '84 hooked up to
>the parallel port in 'In System Programming mode', provide a cheap $0.84
>4Mhz ceramic resinator. Sure you could only reprogram the chip 1000 or
>so times (100 minimum, 1000 typical), but for about $10, whoe cares? The
>entire device (minus power-supply) could be built for about $20 or less.

I have all the hardware to do this, but it's not quite enough.
Sure I can program an '84 and run it in a PICDEM or proto
board, but the problem is, how do I verify its performance -- even
if all the LED's and bells and whistles seem to work correctly?
With that setup I can't, say, run just one subroutine (in real
time, in a real target environment) and make sure it's working
correctly.

I'm always amazed at the sheer variety of disguises that bugs come
in; some deceptively simple while others are fiendishly subtle.
And the same goes for their discovery. Sometimes it takes days of
testing with sophisticated instruments while other times you just
stumble over a nasty one while reviewing the code for some other
reason. On one recent project I noticed a small (but unusual) time
lag between pulses on a scope, but was busy with something else at
the time and didn't pay much attention (uh-oh!). I only found out
what was going on some time later when a senior associate asked,
"Why are you missing a break in this switch statement?" (The
source code had gotten scrambled while being sent as e-mail.)

So what I'd like to see are facilities for several levels of
testing. For instance the PIC-Eval could have a few extra features
such as scope trigger points that don't take up any of the user's
i/o pins. This could be done at almost no cost (with some
diagnostic code in the user's pgm) or with a bit more hardware to
monitor the instruction bus.

My last posting left out a method of resetting the output
handshake bit (to host). Here's an idea - run the latched versions
of A15 and A14 into both sides of an LS139 dual 2-4 decoder. OE-
enables one side and WR- the other. Y0 and Y1 aren't used on
either side (corresponds to A15 low). Y2 with WR- sets the output
data latch as well as the 1-bit handshake latch. Y3 with WR-
clears the handshake bit. (A hex inverter will be needed to get
the right polarity on some of these signals).

Y2 with OE- reads the input latch and handshake. Y3 with OE- is
spare, and could be used as a scope trigger point for the user.

If more trigger points or other functions are wanted then A15
through A13 could be used with a pair of 3-to-8 deocders.

A few developers have suggested a serial interface, rather than
parallel which I suppose is too much like a hardware hack.
However, if I build a proto it's probably going to be parallel as
it's faster and requires less debugging of the loader PIC since
the host communicates with the target more directly. The
difference in speed starts to get significant with functions such
as multi single step with instruction trace.

> > Couldn't one just feed the PIC 4 clock pulses (or 8 for a
> > conditional) to do a single-step?... The only little flaw is that
> > the regs can't be examined, but there way be a workaround.
>
> Exactly the problem that ruled out this approach for me, since
> the whole point is to be able evaluate the performance of the PIC
> in several ways including examine registers. However, you did give
> me the idea that clock cycles could be run through a binary counter
> to get an instruction count between events.
>

Okay, you've said that this idea won't work. Have you any other ideas for
single-stepping? I had thought of supplying 4 clock pulses myself. And to
read the registers, could they not be displayed sequentially on a port in
a predefined format, including the initial state of WREG, which could
then be written back in, so that the state is the same. Not exactly
real-time, but do you think it would suffice?

>On Mon, 24 Jun 1996, Doug Manzer wrote:
>
>> > Couldn't one just feed the PIC 4 clock pulses (or 8 for a
>> > conditional) to do a single-step?... The only little flaw is that
>> > the regs can't be examined, but there way be a workaround.
>
>Okay, you've said that this idea won't work. Have you any other ideas for
>single-stepping? I had thought of supplying 4 clock pulses myself. And to
>read the registers, could they not be displayed sequentially on a port in
>a predefined format, including the initial state of WREG, which could
>then be written back in, so that the state is the same. Not exactly
>real-time, but do you think it would suffice?
>
>J.W.

I guess we really need a single-step interrupt.

Say we've got a gate on the clock line.
How about turning the clock on, counting 4 clocks (to allow one instruction
to execute) then force an interrupt (clock continues to run). The interrupt
is caught by a routine that does a trace, register dump, whatever, before
returning and gating the clock back off (might have to delay a few cycles to
be sure to finish up the return instruction). Wouldn't this put us back at
the next instruction in line?
Would interrupt latency cause problems? You could sync the generated
interrupt to the main clock, so you could be sure the interrupt would happen
after just one instruction, right? Am I missing something?

Now, single-stepping inside an interrupt without blowing the stack might get
tricky!

> What's wrong with Microchip's bond-out package? Will they sell them
> to third parties?

Mark:

That first question has two possible interpretations... I'll assume
that you meant, "What's wrong with using Microchip's bondout chips
for the PIC-Eval board?" since to assume otherwise would mean that
I'd have to write a REALLY long reply.

Microchip doesn't seem real enthused about selling those bondout
chips to anyone who isn't already an established emulator
manufacturer. There are at least a couple people on the list who've
been unsuccessful in their attempts to get small quantities of them.

>
> Mark K Sullivan <RemoveMEPICLISTspamMITVMA.MIT.EDU> wrote:
>
> > What's wrong with Microchip's bond-out package? Will they sell them
> > to third parties?
>
> Mark:
>
> That first question has two possible interpretations... I'll assume
> that you meant, "What's wrong with using Microchip's bondout chips
> for the PIC-Eval board?" since to assume otherwise would mean that
> I'd have to write a REALLY long reply.
>
> Microchip doesn't seem real enthused about selling those bondout
> chips to anyone who isn't already an established emulator
> manufacturer. There are at least a couple people on the list who've
> been unsuccessful in their attempts to get small quantities of them.

What are Microchip bondout chips? Are all emulators based on these?

We have a couple of Picmasters and several ICEPICs from RF Solutions, are
the chips on "daughter" boards for similar pics likely to be the same?
Some of the numbering would seem to suggest so.

----------- cut------------
>
> I guess we really need a single-step interrupt.
>
> Say we've got a gate on the clock line.
> How about turning the clock on, counting 4 clocks (to allow one instruction
> to execute) then force an interrupt (clock continues to run). The interrupt
> is caught by a routine that does a trace, register dump, whatever, before
> returning and gating the clock back off (might have to delay a few cycles to
> be sure to finish up the return instruction). Wouldn't this put us back at
> the next instruction in line?
> Would interrupt latency cause problems? You could sync the generated
> interrupt to the main clock, so you could be sure the interrupt would happen
> after just one instruction, right? Am I missing something?
>
> Now, single-stepping inside an interrupt without blowing the stack might get
> tricky!
>

I assume that:
1. You have a second cpu to control the target cpu.
2. The target cpu runs its software from external RAM (mapped to code space).
3. You can count/control the clock.

How about the following setup:
You count 2 clocks and then insted of letting the target cpu to fetch the next
instruction from the RAM/ROM you send the opcodes from your control CPU,
send the taget 2 more clocks to compleate the instruction, and then continu to
send instruction for a program that read the registers. The start address can be
saved to an external leatch and the written to the PC at the end of the control
program.

> Have you considered learning a little DSP with TI's $99.00 320 demo
> board? I seen ads all over but haven't made that leap yet.

I bought one of these a few years ago with the TMS320C26 on it. It was
very easy to hook up and use, and I definately got my money's worth
out of it. It's got a mono A/D and D/A. I think it samples around 8
kHz or so, but I won't swear to it; it's been over a year since I used
it last. It will implement real-time audio spectrum analyzers, and
VERY nice FIR/IIR filters. I've done some basic adaptive filtering
that turned out pretty good for an amateur!

If you want to play around with DSP, it's got the power to do a lot,
and you can't beat the price. I think they've come out with more demo
kits for even less money in the last couple of years, too.

Ray Crampton wrote:
>
> > Have you considered learning a little DSP with TI's $99.00 320 demo
> > board? I seen ads all over but haven't made that leap yet.
>
> I bought one of these a few years ago with the TMS320C26 on it. It was
> very easy to hook up and use, and I definately got my money's worth
> out of it. It's got a mono A/D and D/A. I think it samples around 8
> kHz or so, but I won't swear to it; it's been over a year since I used
> it last. It will implement real-time audio spectrum analyzers, and
> VERY nice FIR/IIR filters. I've done some basic adaptive filtering
> that turned out pretty good for an amateur!
>
> If you want to play around with DSP, it's got the power to do a lot,
> and you can't beat the price. I think they've come out with more demo
> kits for even less money in the last couple of years, too.
>
> Ray Crampton
> KN4SK
> EraseMErcramptonSTOPspamRemoveMEgtc.itt.com

I also bought on of these and I was a bit disappointed. The memory is really
limited
and the instruction set of the c25/26 is, in my opinion, terrible. However,
texas has
a new DSK with a c3x on it and that is a much nicer chip. (32 bit and floating
point). Also Analog Devices has a DSK for one of their chips with 32K on chip
ram
and stereo AD at 48 KHz for $89. More info at:http://www.analog.com/publications/press/products/ADSP-2100_051695.html

>
> > Have you considered learning a little DSP with TI's $99.00 320 demo
> > board? I seen ads all over but haven't made that leap yet.
>
> I bought one of these a few years ago with the TMS320C26 on it. It was
> very easy to hook up and use, and I definately got my money's worth
> out of it. It's got a mono A/D and D/A. I think it samples around 8
> kHz or so, but I won't swear to it; it's been over a year since I used
> it last. It will implement real-time audio spectrum analyzers, and
> VERY nice FIR/IIR filters. I've done some basic adaptive filtering
> that turned out pretty good for an amateur!
>
> If you want to play around with DSP, it's got the power to do a lot,
> and you can't beat the price. I think they've come out with more demo
> kits for even less money in the last couple of years, too.
>
> Ray Crampton
> KN4SK
> spam_OUTrcramptonRemoveMEEraseMEgtc.itt.com

Pelle wrote:

I also bought on of these and I was a bit disappointed. The memory is really
limited
and the instruction set of the c25/26 is, in my opinion, terrible. However,
texas has
a new DSK with a c3x on it and that is a much nicer chip. (32 bit and floating
point). Also Analog Devices has a DSK for one of their chips with 32K on chip
ram
and stereo AD at 48 KHz for $89. More info at:http://www.analog.com/publications/press/products/ADSP-2100_051695.html

I agree to a certain extent. Like I said, it had the power to do a lot of neat
stuff, and was great for learning some DSP. I worked on signal processing for
amateur radio applications, and this chip is fairly common in ham radio
commercial boxes. If I remember correctly, the Analog Devices chips had a much
nicer instruction set, that was easier to use and let the programmer more
easilly exploit the abilities of the processor.

I worked on a couple of Motorola DSP chips, I don't even remember which ones,
both 16 bit fixed point, one with a Codec with a comb filter on the input. The
instruction for those was OK, but I would have preferred the Analog Devices
chips.

I'm sure there's a lot better DSKs available now, as it's been a few years since
I bought mine. Pelle's right, the x30 is a neat chip...

>I need to implement an interface to read a bunch of switches, and
>communicate the fact as a character code to a PC via the keyboard port.
>This is a great app. for a '5X.
>
>Rather than doing the wheel invention bit, could someone point me in a
>direction, or is someone willing to share their experiances/resources.

A couple of weeks ago I tested this with a BASIC Stamp II so feel free
to take a look at the code and convert it to ASM, but beware it's not
fancy at all <g>...

There are some general information about the AT-keyboard protocol in
the ZIP-archive that I found on the net that may be usefull for you.

Wow... I was practically bombed with requests about my AT keyboard
routines. Anyway, I just want to say that this 'famous' code is now
available at my home page. The url is http://www.arne.si/~mauricio.

Sorry for the dalay, but I had much work to do other than setting up
my improvised homepage.

I hope you'll find that code usefull. Please let me know if you encunter
any problems using it (incompatibility or whatever), so that I can
correct it for my applications also.

for a small PIC-controlled terminal (LCD-Display), I got a "older"
mimi-keyboard (53 key) with a AY-5-2376 KB controller. Unfortunately, I did
not find any documentation about this chip. It has a label "GI" which is
probably General Instruments, however, as far as I know they have sold a
portion of their semiconductors. I also did not get any answer from their
technical support ... I am not a interessting client, probably ...

Does somebody have a data sheet or a pointer to it, or know this chip somehow ?

At 12:05 PM 10/02/96 +0200, you wrote:
>Hi all,
>
>for a small PIC-controlled terminal (LCD-Display), I got a "older"
>mimi-keyboard (53 key) with a AY-5-2376 KB controller. Unfortunately, I did
>not find any documentation about this chip. It has a label "GI" which is

Hi Herve,
I have information on this chip in the form of a booklet published by
SouthWest Technical Product Corporation called "Keyboard and Encoder". This
10 page booklet includes a full schematic with pin numbering that should
help you find the info you need. It also has all the code assignment chart
for lower and upper case mode. I do not have a scanner handy but if you are
interested I will fax it to you.
As a quick overview, the 40 pin IC requires 5 volt on pin 1, -12 volts on
pin 18, ground on pin 17 and pin 20. Shift and Control are at pin 4 and 5
respectively. Matrix input from the keyboard goes to pin 21 to 37. Outputs
are: 7 - parity, B1 - 15, B2 - 14, B3 - 13, B4 - 12, B5 - 11, B6 - 10 or 8
depending on case and B7 - pin 9. The keypress (or strobe) comes from pin
7. Pin 19 is connected to an RC combination consisting of a 0.01mf
capacitor and a 680k res.

Please let me know if you want the full booklet, I will gladly fax it to you.

In message <RemoveME2.2.32.19961002100509.00697c88KILLspamRemoveMEelwood.ethz.ch>>
TakeThisOuTPICLISTMITVMA.MIT.EDU writes:
> Hi all,
>
> for a small PIC-controlled terminal (LCD-Display), I got a "older"
> mimi-keyboard (53 key) with a AY-5-2376 KB controller. Unfortunately, I did
> not find any documentation about this chip. It has a label "GI" which is
> probably General Instruments, however, as far as I know they have sold a
> portion of their semiconductors. I also did not get any answer from their
> technical support ... I am not a interessting client, probably ...
>
> Does somebody have a data sheet or a pointer to it, or know this chip somehow
?
>

For what its worth, I used to use this chip some years ago, but it has
been obsolete for at least 8 years.

I know 'cos I spoke to a GI rep before designing it in to the product
and asked specifically if it was safe to design it in. I was told it was.

Six months later when trying to place pre-production quantity orders I
was given the news that it was no longer available. We had good success
it from some of the difficult to find IC suppliers though.

Hi folks,
I am new to the list and also new to the Pic processors, however to get
up to speed with the processor I purchased the Pic demo-2 PCB and whilst running the demo software supplied for the keyboard - LCD routine found that keyboard interrupts were not working... now I thought that as I was new to the Pic processor, the Pic demo board, MP-Labc, and the ice, that the problem was mine. However after hours of checking software etc. I found that the two resistor packs installed on the Picdem-2 board installed between the keyboard input and port b ( resistor packs RN4 & RN5 (1k value)) were limiting the current to well, and acting as a voltage divider (with the internal pull-up resistors on port b), the end result is that the keyboard cannot take port b bits 4 to 7 down to ground, and therefore no interrupt was seen by the processor. I haven't tested this on silicon yet, maybe its the ice, or maybe Microchip have installed the incorrect value of resistance for this circuit.

Can anybody give me an idea as to the approximate value of resistance when enabling the internal pull up on the Pic devices, as this may prove useful knowledge for future development on my side.

I hope that this information may save other's testing development on the Picdem-2 time.

nogueira <EraseMEnogueira.....KILLspammandic.com.br> wrote:
<snip>
>the routine to read the keyboard is ok, I can receive the scan
>codes.
>
>What I need is a easy way to transform the scancode to ASCII,
>i.e. 0X1c --> 'A'.

Octavio

I have some code to convert PC AT keyboard codes to acsii chr,
but it gives a 3 ascii chr description for non alphanumeric keys.
(for displaying on an LCD)

As the routine is in a file of 27K, and will have to be cut down
to give only 1 ascii code, I'll send it direct

At 06:19 PM 10/31/96 -0200, you wrote:
>Hi,
>
>I'm developping an PIC aplication that use an IBM AT keyboard,
>the routine to read the keyboard is ok, I can receive the scan
>codes.
>
>What I need is a easy way to transform the scancode to ASCII,
>i.e. 0X1c --> 'A'.
>
>I'll apreciate any help and if anyone need the routine to
>read the keyboard I can post it, but it's a little crude yet.
>

Here is some C code that I use to do what you want. You can convert it to
PIC yourself. This comes directly from Visual C++ Help.

You DRC are sending a code that only works on a PC not inside of a PIC (or
AMI have PC BIOS for PIC? ;-).
Octavio needs an easy way to translate scancodes into ASCII codes, in the PCs
that's made by the BIOS with huge tables (Well not so huge, but for a PIC ...).
Octavio, I don't know any easy way, the scan codes reflect the position of
the key in the keyboard (Q and W have adjacent codes), so the only way is a
look-up table, but that's a relative huge table.

>At 06:19 PM 10/31/96 -0200, you wrote:
>>Hi,
>>
>>I'm developping an PIC aplication that use an IBM AT keyboard,
>>the routine to read the keyboard is ok, I can receive the scan
>>codes.
>>
>>What I need is a easy way to transform the scancode to ASCII,
>>i.e. 0X1c --> 'A'.
>>
>>I'll apreciate any help and if anyone need the routine to
>>read the keyboard I can post it, but it's a little crude yet.
>>

>Here is some C code that I use to do what you want. You can convert it to
>PIC yourself. This comes directly from Visual C++ Help.

> >I'm developping an PIC aplication that use an IBM AT keyboard,
> >the routine to read the keyboard is ok, I can receive the scan
> >codes.
> >What I need is a easy way to transform the scancode to ASCII,
> >i.e. 0X1c --> 'A'.
>
> Here is some C code that I use to do what you want. You can convert it to
> PIC yourself. This comes directly from Visual C++ Help.
> unsigned key, scan, ascii;
> /* Split key into scan and ascii parts. */
> scan = key >> 8;
> ascii = key & 0x00ff;
> ....etc.

I'm sorry to say that this code won't work, it works with the output of
the keyboard controller placed on the motherboard and what is needed here
is code to do the job that controller does.

I did this program, it's about two days work (if you use the full keyboard,
caps-lock, leds, etc...) and I'm sorry but I don't want to give it away to
the public domain... But I have no problem in trying to answer any question.

Hi Cameron,
I'm in a big trouble with my computer and my internet provider, yesterday i
have received your message (some days after) and i send your zif socket by
air mail i hope it arrive as soon as possible.
Please write me when it arrive.
Thanks

>I'm developping an PIC aplication that use an IBM AT keyboard,
>the routine to read the keyboard is ok, I can receive the scan
>codes.

>What I need is a easy way to transform the scancode to ASCII,
>i.e. 0X1c --> 'A'.

I worked out a way to do this - it's not very elegant and basically just uses an
enormous lookup table to translate the code from the keyboard into ASCII. It
works, though!

I had a lot of fun getting it all to work!

I use the keyboard with a Hitachi LCD, so I have other routines to handle the
shift and delete keys too, + handling keys being 'unpressed' + reading the data
from the keyboard - email me if you need these.

Octavio:
I recently built a small interface based on the PIC to use an IBM AT class
keyboard and wrote a small interpreter program to convert keyboard scan
codes to another proprietary (read 'bizarre') system. I found that the
keyboard scan tables in the books were the output of the internal PC
keyboard interface (typically an 8042 I think), and not from the keyboard
itself. Fortunately, I had access to some nifty test equipment and came up
with a list of scan codes for each key on press and release.
I used a simple table for the keypress (using RETLW), ignored the key-up and
everything worked great. It was a proof of concept project and did not go
any further, but did provide some great data on the keyboard itself.
If you need the scancode list and the format, I can post them for you. BTW,
there was a great article in Circuit Cellar Ink from May 96 (I think) that
provided the background information to start my project. CCI is an
excellant publication.

>Hi,
>
>I'm developping an PIC aplication that use an IBM AT keyboard,
>the routine to read the keyboard is ok, I can receive the scan
>codes.
>
>What I need is a easy way to transform the scancode to ASCII,
>i.e. 0X1c --> 'A'.
>
>I'll apreciate any help and if anyone need the routine to
>read the keyboard I can post it, but it's a little crude yet.
>
>Cheers,
>Octavio
>--
>========================================================
>Octavio Nogueira
>e-mail: KILLspamnogueiraspam_OUTmandic.com.br
>homepage: http://ourworld.compuserve.com/homepages/tato
>voice/fax: +55 11 240-6474
>"ProPic" The first Production PIC Programmer running in
>Windows and under US$ 20.00.
>========================================================
>
>

If anyone has any other keyboard type links, please mail me, and
I'll add them.
I'm also hoping to get a copy of my PIC based PC keyboard to LCD
code viewer on, but it depends....(on my mood, level of work etc, etc)

Hope this helps somebody,

Steve Lawther

PS - why do I get nasty messages from piclist about having sent a mail
twice???

-
-> From: "W. Lee Vick, Jr." <spam_OUTwlvickTakeThisOuTmicro.ti.com>
->
-> PIC.gurus,
->
-> I also have a little LED project and was looking for some help with
-> it. I'd like to build a box which determines the order of finish of a pine
-> box derby (small wooden cars about 7" by 3" which run down a slotted track)
-> race. [Details edited for brevity. ]
->
-Forget wire wrapping! Making a PCB is so easy these days. But first,
-prototype the circuit on a breadboard.

Well this is a religious argument. Each has their advantages and disadvantages:

Wirewrapping: Quick to throw together presuming you have the equipment. Sockets
cost more than PCB sockets. Too much extension from the bottom of the board.
Fairly stable and generally easy to modify.

PCB: Please tell me how to make an inexpensive, consistent PCB. While it
may be easy to do, many of us have not set up the design tools and equipment
to put it together. I'll gladly take a lesson in easy PCB making.

Pre-etched PCBs: Been experimenting with these lately. Shows promise. I'm
talking about the Rat Shack boards that are etched to look like breadboards.
Simply solder in the sockets, components, and wire.

Each has advantages and disadvantages. Generally while I'm designing and
testing I wire wrap. Easy to put together a semi-permanent board that can
be changed if necessary. I'm willing to examine PCBs but all I read in the
sci.electronics newsgroups is how difficult it is to get good boards....

By the way, what PCB package do you use, and have you seen WinBoard and
WinDraft? I talked with this company and you can get a 100 pad
vertion via the internet, and upgrade the pads by paying them (cheap). O'h I
also understand that the founder of this company is also the
founder of Orcad, and he is no longer with Orcad. Just thought I would mention
this seeing as a lot of people might want free software for
making small projects like LED-somethings... I will post the Inet address when I
get to work, got Jury service today! (drat)
Giles L. Honeycutt

Byron A Jeff wrote:
> Well this is a religious argument. Each has their advantages and
disadvantages:
>
> Breadbording: Quick to throw together. Easy to change. Entirely too easy to
> change.
>
> Wirewrapping: Quick to throw together presuming you have the equipment.
Sockets{Quote hidden}

> cost more than PCB sockets. Too much extension from the bottom of the board.
> Fairly stable and generally easy to modify.
>
> PCB: Please tell me how to make an inexpensive, consistent PCB. While it
> may be easy to do, many of us have not set up the design tools and equipment
> to put it together. I'll gladly take a lesson in easy PCB making.
>
> Pre-etched PCBs: Been experimenting with these lately. Shows promise. I'm
> talking about the Rat Shack boards that are etched to look like breadboards.
> Simply solder in the sockets, components, and wire.
>
> Each has advantages and disadvantages. Generally while I'm designing and
> testing I wire wrap. Easy to put together a semi-permanent board that can
> be changed if necessary. I'm willing to examine PCBs but all I read in the
> sci.electronics newsgroups is how difficult it is to get good boards....

When I need a prototype I combine the Radio Shack breadboard and the
Radioshack "pre etched" board together.

Take the pre etched board secure it to the top of the breadboard the pattern
matches perfectly. Now build your stuff. I use wire wrap sockets for the I.C.s
due to the long pins. When your circuit is finished, flip the works over
and seperate the board from the breadboard, now solder using the breadboard
as a guide.

Joseph D. West
Electronics Lab. Supervisor
College of Mechanical Eng.
Ohio State University

At 07:46 AM 11/15/96 -0500, you wrote:
>
>PCB: Please tell me how to make an inexpensive, consistent PCB. While it
>may be easy to do, many of us have not set up the design tools and equipment
>to put it together. I'll gladly take a lesson in easy PCB making.
>
>

This may not be the best way to make PCBs, but for a hobbyist doing low
volume, it works for me.

1.) Use Window's Paintbrush to design your artwork. It is not difficult to
create a library
of reusable patterns that are easily cut-and-pasted. The hardest part
is making sure the
the hole spacings are accurately spaced when printed. A few printings
on paper make an easy
test of this.

2.) When satisfied with your work, print the artwork on a Laser printer
using clear acetate as
the paper. This is the stuff we use at work for creating overhead
projector transparencies.

3.) Get pre-sensitized PCB material from Circuit Specialists and sandwich
the clear acetate (with
printed artwork) between the PCB material and a piece of glass. Be
careful not to put the artwork
over the PCB material upside down or you will get a useless mirror image
of your work. Been there,
done that - oops.

4.) Expose the sandwich to a flourescent light for about 15-20 minutes.

5.) Develop and etch the board. (Developer and etchant are also available
from Circuit Specialists).

This makes very acceptable PCBs and you don't need any specialized software
or equipment (assuming you
have Windows or some other painting program, and running water). Cost is
minimal - about $10 per
board or less depending on board size. The true costs are in your time
spent developing the artwork.

Circuit Specialists can be found on-line, but I can't remember the address.

>By the way, what PCB package do you use, and have you seen WinBoard and
> WinDraft? I talked with this company and you can get a 100 pad
>vertion via the internet, and upgrade the pads by paying them (cheap). O'h I
> also understand that the founder of this company is also the
>founder of Orcad, and he is no longer with Orcad. Just thought I would mention
> this seeing as a lot of people might want free software for
>making small projects like LED-somethings... I will post the Inet address
when I
> get to work, got Jury service today! (drat)
> Giles L. Honeycutt

I tried out the IVEX (free) product and while they work very well on a small
test board I did, they upchucked something fierce on a 94 Pin board. (Lot's
of GPFs with the product).

I'm running Windows/95 on a brand-new AST Computer. I did call IVEX to ask
about it and they said they were aware of the problem under Windows/95.

>Byron A Jeff wrote:
>> Well this is a religious argument. Each has their advantages and
> disadvantages:
>>
>> Breadbording: Quick to throw together. Easy to change. Entirely too easy to
>> change.
>>
>> Wirewrapping: Quick to throw together presuming you have the equipment.
> Sockets
>> cost more than PCB sockets. Too much extension from the bottom of the board.
>> Fairly stable and generally easy to modify.
>>
>> PCB: Please tell me how to make an inexpensive, consistent PCB. While it
>> may be easy to do, many of us have not set up the design tools and equipment
>> to put it together. I'll gladly take a lesson in easy PCB making.

I used to do it and finally gave up and got boards made. The problems I had
included: Getting top and bottom side layers to line up (or I would go with
one layer and lots of jumpers), Chemical storage and disposal (it's illegal
to put in the garbage here in Toronto AND you have to pay somebody to take
them), film manufacturing (although I got pretty good at it towards the end
with a laser printer that could do transparencies), board developing (Again
Chemicals and their disposal as well as making a lightbox to hold the film
against the card) and drilling (the drills cost a fortune and break so
easily). I once (note the "once") made a board using tape, stencils, and a
PCB marking pen.

For the past two years, I've done a number of Hobby boards using AP Circuits
in Calgary, Alberta, Canada. I've had excellent results each time with a
cost generally about $60 Canadian for two boards - the only problem I've had
is with a bad socket (not the raw card's fault). The cost is dependant on
the size of the card and the number of holes (good incentive to keep the
boards small), you can do multiple up panels which will drop the cost per
board significantly (last year, I did 8 "Frosty the Snowman" Boards at a
final cost of $12.00 Canadian each). The three day turnaround doesn't hurt
either.

>> Pre-etched PCBs: Been experimenting with these lately. Shows promise. I'm
>> talking about the Rat Shack boards that are etched to look like breadboards.
>> Simply solder in the sockets, components, and wire.

I think you're talking about "Vero"/"Vector" (I'm not sure of the right
term/manufacture) Boards (the boards with the long copper strips on the
backside), which is . They come out about 2x as large as the final,
embedded version, but at $5.00 for a 6x6 board (which I usually cut up into
smaller boards), the price is hard to beat.

One hint, I just got a Vector "Pad Cutter Tool" from Digi-Key (Digi-Key P/N
V1056-ND, Price $16.38). I know the price is a bit high, but it really make
working with the boards a joy, compared to cutting the traces with a drill
or an olfa knife and a soldering iron (like you do with a Surfboard).

Now, does anybody know of any layout tools for these boards?

>> Each has advantages and disadvantages. Generally while I'm designing and
>> testing I wire wrap. Easy to put together a semi-permanent board that can
>> be changed if necessary. I'm willing to examine PCBs but all I read in the
>> sci.electronics newsgroups is how difficult it is to get good boards....

Steve Ciarcia, when he was creating projects for Byte, used to create
semi-embedded cards for his projects. He would put on Connectors and such
and wire Vcc and Gnd and then Wire-Wrap the rest. Maybe if somebody's
energetic, they could do this for the PIC?

myke

Being a stealth pilot is one of the most labour intensive and time
constrained types of flying that I know. We have very strict time
constraints: to be where you are supposed to be all the time, exactly on
time, and that has to be monitored by the pilot. For example, during a bomb
competition in training in the U.S., I dropped a weapon that landed 0.02
seconds from the desired time, and finished third!

D. R. Chicotel wrote:
>
>PCB: Please tell me how to make an inexpensive, consistent PCB. While it
>may be easy to do, many of us have not set up the design tools and equipment
>to put it together. I'll gladly take a lesson in easy PCB making.
>

You can get a good but free PCB layout program called easytrax by
Protel. It is the little brother of there autotrax program. It runs
under MSDOS and is more than adequate for most boards. You should be
able to get a copy from Alberta Circuits at http://www.apcircuits.com/

If you have a laser printer, you may want to consider the toner transfer
systems. One is from a company called DynaArt Designs. You can access
their web page at http://www.dynaart.com. With this system you print the
artwork 1:1 to a laser printer, and then transfer the toner on to the
PCB using heat and pressure. The toner acts as a resist, so the board
can be directly etched. The advantage is the quick turn around. The
disadvantage is inconsistent results. I think this can be remedied if
you buy one of their 'SuperFuser' devices. Has anyone used a
'SuperFuser' ? If so what results did you get.

> >> Well this is a religious argument. Each has their advantages and
> > disadvantages:
> >>
> >> Breadbording: Quick to throw together. Easy to change. Entirely too easy to
> >> change.
> >>
> >> Wirewrapping: Quick to throw together presuming you have the equipment.
> > Sockets
> >> cost more than PCB sockets. Too much extension from the bottom of the
board.
> >> Fairly stable and generally easy to modify.
> >>
> >> PCB: Please tell me how to make an inexpensive, consistent PCB. While it
> >> may be easy to do, many of us have not set up the design tools and
equipment{Quote hidden}

> >> to put it together. I'll gladly take a lesson in easy PCB making.
>
> I used to do it and finally gave up and got boards made. The problems I had
> included: Getting top and bottom side layers to line up (or I would go with
> one layer and lots of jumpers), Chemical storage and disposal (it's illegal
> to put in the garbage here in Toronto AND you have to pay somebody to take
> them), film manufacturing (although I got pretty good at it towards the end
> with a laser printer that could do transparencies), board developing (Again
> Chemicals and their disposal as well as making a lightbox to hold the film
> against the card) and drilling (the drills cost a fortune and break so
> easily). I once (note the "once") made a board using tape, stencils, and a
> PCB marking pen.

This kind of testimony seems to debunk the original primise that making
PCB's are so easy that wire-wrapping is unnecssary.

>
> >> Each has advantages and disadvantages. Generally while I'm designing and
> >> testing I wire wrap. Easy to put together a semi-permanent board that can
> >> be changed if necessary. I'm willing to examine PCBs but all I read in the
> >> sci.electronics newsgroups is how difficult it is to get good boards....
>
> Steve Ciarcia, when he was creating projects for Byte, used to create
> semi-embedded cards for his projects. He would put on Connectors and such
> and wire Vcc and Gnd and then Wire-Wrap the rest. Maybe if somebody's
> energetic, they could do this for the PIC?

I'm still trying to find a good argument for using PCB's for development.
The statement that PCB's are trivally easy to do started this thread.

Breadboards are good if the project is extremely small. But their instability
and cost generally makes them unusable for anything other than fiddling.

PCB's are the way to go once the project is developed, tested, and working.
But for development? I don't think so.

So that leads me right back to wire wrap. Inexpensive (tool and wire for
less than $20), can be used in permanent situations, and simple modifications.
Gives nearly instant gratification like breadboards, but can be thrown in a
box and expect to work.

BTW I learned by hard experience that auto wire wrap tools like Slit-N-Wrap
and guns are generally bad news. Hand strip - Hand wrap is the way to go.
Every board I've ever had wrapped worked, can't say the same for the auto
tools.

myke predko wrote:
>
> >By the way, what PCB package do you use, and have you seen WinBoard and
> > WinDraft? I talked with this company and you can get a 100 pad
> >vertion via the internet, and upgrade the pads by paying them (cheap).

I've used WinBoard for 3 designs, mostly in the neighborhood of 180 pins
SMT. I had some problems early on that were fixed with the installation
of a newer driver for my PCI display adapter.....obviously not Ivex's
fault. I use the $29.95 version that gets you 220 pin limit.

The big issue with any board layout software is: How much work do you
have to do to get the library in shape for your work? WinBoard comes
with a fairly big library of modules, but most of them are for through
hole parts. Many of the SMT modules use pad geometries that don't match
up with the design rules preferred by my clients. So, I found myself
modifying or creating most needed modules in the early going.
Fortunately, their module creation stuff is easy to use.

Ivex documentation is pretty good. It's helpful to print it out in
color (at this price, you print it out yourself). My main complaint is
that you need to refer to 3 books to get the whole picture: Getting
Started, Tutorial, and Reference.

I use the Rat Shack boards for some things. Bit of a pain to work with,
but I found that if I use the chemical tin-plating solutions that you
can buy, and dip the board in that first, it solders better. You can get
rather obscene component density on these things, since you are using
insulated wire. You can more-or-less build multi-layer boards ... wires
can cross, etc.

I ONCE did wire wrap. Years ago, I had an evaluation kit for a Fairchild
F8 processor (meant to be used as an imbedded controller). I built 1K of
static RAM for it, with 256 bit RAM chips. It worked. But it was a long
job. Used manual wrap tool.

Just started building PCs the "easy" way. I've used the freeware
packages, and they work fine. I'm now using a package from Ultimate
Technologies in the Netherlands ... they have a 500 pin version for $79
US with schematic capture, autorouter, etc. Very nice.

If you use a package that lets you draw the schematic, then create the
board layout from that, you are guaranteed to have a board that works.
With the Rat Shack stuff, wiring it all by hand, you can (and will) make
mistakes on larger projects.

I use the Toner Transfer System (sold by digikey ... $15 for 5 81/2 x 11
sheets). I've only built a couple of boards so far, and they work fine.
You use a laser printer to put the pattern on the TTS paper (you can use
this for decals, etc as well). The you use the heat of an iron to
tramsfer the pattern to the board. Following their instructions,
everything has worked just fine for me.

Just don't make the traces or the pads too small, as this stuff is not
as precise as the photo methods.

You can make double sided boards ... I have not yet tried.

Drilling is a pain. Digikey sells special bits for this ... they have an
1/8 shank to make it easier to fit into a drill, and are tapered to the
proper bit size. They are designed for use on fibreglass (which will
destory normal bits rapidly, I gather). You only need a couple of sizes.
A bit that is just right for IC holes is also fine for most other
components. It may be a bit too big, but that isn't a problem. You can
use a normal electric drill ... a drill press accessory makes life
easier. I Dremel tool with it's accesory drill press stand is handy as
well. In fact, the Dremel tool (I just got one a month ago) has been
great for a lot of this stuff. It's "cut-off wheels" are great for
cutting up copper-clad boards into smaller pieces (I tend to make lttle
boards, not huge ones). Real handy tool.

Summary:

The Rat Shack boards with the copper patterns are cheap, easy to use,
and require no special tools, but are a pain to wire with lots of
components.

PC boards are not hard to make at home, with a modest investment. And
there is a certain amount of satisfaction at admiring your work. These I
put in frames and hang on my living room wall!. I can't say the same for
the Rat Shack boards. These I put in boxes and hide somewhere.

If you are building something just once and have analog or high speed
digital circuits, then use point to point wiring techniques and a
ground plane prototype board like Vector 8003.

If you have relativly low speed circuits (ie. digital less than 25
MHz) then by all means use wire wrap. It will get you there faster.

But, if you ever think that the device will be produced in any
quantity, then get a PCB/Schematic package (I use HIWIRE II). You may
make mistakes on your first Prototype run, but you can easily cut and
jumper your mistakes. And besides, you will be much closer to the
final design PCB.

> >> Well this is a religious argument. Each has their advantages and
> > disadvantages:
> >>
> >> Breadbording: Quick to throw together. Easy to change. Entirely too easy to
> >> change.
> >>
> >> Wirewrapping: Quick to throw together presuming you have the equipment.
> > Sockets
> >> cost more than PCB sockets. Too much extension from the bottom of the
board.
> >> Fairly stable and generally easy to modify.
> >>
> >> PCB: Please tell me how to make an inexpensive, consistent PCB. While it
> >> may be easy to do, many of us have not set up the design tools and
equipment{Quote hidden}

> >> to put it together. I'll gladly take a lesson in easy PCB making.
>
> I used to do it and finally gave up and got boards made. The problems I had
> included: Getting top and bottom side layers to line up (or I would go with
> one layer and lots of jumpers), Chemical storage and disposal (it's illegal
> to put in the garbage here in Toronto AND you have to pay somebody to take
> them), film manufacturing (although I got pretty good at it towards the end
> with a laser printer that could do transparencies), board developing (Again
> Chemicals and their disposal as well as making a lightbox to hold the film
> against the card) and drilling (the drills cost a fortune and break so
> easily). I once (note the "once") made a board using tape, stencils, and a
> PCB marking pen.

This kind of testimony seems to debunk the original primise that making
PCB's are so easy that wire-wrapping is unnecssary.

>
> >> Each has advantages and disadvantages. Generally while I'm designing and
> >> testing I wire wrap. Easy to put together a semi-permanent board that can
> >> be changed if necessary. I'm willing to examine PCBs but all I read in the
> >> sci.electronics newsgroups is how difficult it is to get good boards....
>
> Steve Ciarcia, when he was creating projects for Byte, used to create
> semi-embedded cards for his projects. He would put on Connectors and such
> and wire Vcc and Gnd and then Wire-Wrap the rest. Maybe if somebody's
> energetic, they could do this for the PIC?

I'm still trying to find a good argument for using PCB's for development.
The statement that PCB's are trivally easy to do started this thread.

Breadboards are good if the project is extremely small. But their instability
and cost generally makes them unusable for anything other than fiddling.

PCB's are the way to go once the project is developed, tested, and working.
But for development? I don't think so.

So that leads me right back to wire wrap. Inexpensive (tool and wire for
less than $20), can be used in permanent situations, and simple modifications.
Gives nearly instant gratification like breadboards, but can be thrown in a
box and expect to work.

BTW I learned by hard experience that auto wire wrap tools like Slit-N-Wrap
and guns are generally bad news. Hand strip - Hand wrap is the way to go.
Every board I've ever had wrapped worked, can't say the same for the auto
tools.

I don't think anyone has yet mentioned the use of plain perfboard,
"vectorbord"(their spelling, not mine). It comes in a few different grades
and hole patterns, I usually get the 0.1" spacing epoxy glass. It's just
board with holes in it, no copper, like you'd use for wire-wrapping.

Use regular sockets, dab a little hot glue on them before putting them on
the board. Hand wire it, using small solid wire. You can use wire-wrap wire
if you like, but the insulation doesn't like the heat of a soldering iron.
Did I say soldering was involved?

If you want a reliable, durable project, put all the components and
connecting wires on the top side and do all the soldering on the bottom
side. You can make a relatively compact project that will last for years.

If there's a part of your circuit that will require a lot of trial and
error, do that part of the circuit on a solderless breadboard, and after
you've gotten everything figured out, unhook the breadboard and finish
building your perfboard circuit.

This is not a method for mass-production, just an alternative to wire-wrapping.

>Pre-etched PCBs: Been experimenting with these lately. Shows promise. I'm
>talking about the Rat Shack boards that are etched to look like breadboards.
>Simply solder in the sockets, components, and wire.

In the PCB / Prototype board section of the Digi-Key catalog, there's a
family of devices which essentially clamp a pre-etched breadboard PCB to the
top of a real breadboard. When you insert your parts and wires, they go
clear through the PCB and into the breadboard. You get your circuit working
and debugged to your satisfaction, then a piece of foam rubber hinges down
on top of the parts and wires and holds them in place. You can then remove
the breakboard to expose the foil side of the pre-etched PCB with the wires
and component leads sticking out, all ready to solder!

> PCB: Please tell me how to make an inexpensive, consistent PCB. While it
> may be easy to do, many of us have not set up the design tools and equipment
> to put it together. I'll gladly take a lesson in easy PCB making.

This is correct, there is a high initial investment. You can use EZTrax for free
(you can get it from ftp://oak.oakland.edu) but I discovered that having a PCB
layout program, doesn' t necessarily make for good PCBs. If you don't know
how big a hole to drill for a component, or how big a pad to use, then you are
liable to build a board that isn't very satisfactory. The good news is that you
can send you GERBER files to places like APCircuits and for about $100 they
will send you back a couple of double sided boards.

> Pre-etched PCBs: Been experimenting with these lately. Shows promise. I'm
> talking about the Rat Shack boards that are etched to look like breadboards.
> Simply solder in the sockets, components, and wire.

These are nicer, but I've sworn of the radio shack ones. The ones to get have
plated through holes and copper on both sides. You can even make "psuedo"
pcbs with these by laying wire down along the hole lines. The one RS board I
like is the one with the same drill pattern as a solderless breadboard. These,
while inefficient space wise, allow you to transfer a circuit easily.

Bob Blick wrote:
>
> I don't think anyone has yet mentioned the use of plain perfboard,
> "vectorbord"(their spelling, not mine). It comes in a few different grades
> and hole patterns, I usually get the 0.1" spacing epoxy glass. It's just
> board with holes in it, no copper, like you'd use for wire-wrapping.
>
> Use regular sockets, dab a little hot glue on them before putting them on
> the board. Hand wire it, using small solid wire. You can use wire-wrap wire
> if you like, but the insulation doesn't like the heat of a soldering iron.
<snip>

We have used this technique for years (more than 20) with one major
difference: we use machine pin soldertail sockets, and we drill the
board (I forget exactly what size, I think its #54; write if you want
details) so the socket will sit down into the hole tightly. Usually
there's no glue needed. We hand wire using wire-wrap wire, but get the
good Kynar insulated stuff; the heat wont bother it. We use 20 or 24 ga.
bus bar with Teflon tubing for insulation to distribute power; put the
power grid in first, with all the bypass caps, then wire the signals.
You can daisy-chain by using a standard wire-wrap stripper at the
desired intermediate point and stretching enough of a gap in the
insulation to get a wrap around the pin. Solder as you go.

You can be surprisingly close to the final pc layout, and you can work
over a ground plane for fairly high speed stuff. We've also used a
hybrid approach, with power and ground and critical signals on a simple
etched or mechanically prepared board with sockets and hand wiring for
the rest. Done a lot of 16 & 32 bit stuff this way; PIC stuff is a
breeze.

At 10:33 15/11/96 EST, myke predko wrote:
>I think you're talking about "Vero"/"Vector" (I'm not sure of the right
>term/manufacture) Boards (the boards with the long copper strips on the
>backside), which is . They come out about 2x as large as the final,
>embedded version, but at $5.00 for a 6x6 board (which I usually cut up into
>smaller boards), the price is hard to beat.
>[...]
>Now, does anybody know of any layout tools for these boards?

An autorouter for these boards, that would be a challenge! :-)

>Steve Ciarcia, when he was creating projects for Byte, used to create
>semi-embedded cards for his projects. He would put on Connectors and such
>and wire Vcc and Gnd and then Wire-Wrap the rest. Maybe if somebody's
>energetic, they could do this for the PIC?

Wouldn't that be a great idea: make boards for every PIC (or even every
popular micro), with the basic standard circuitry and connectors, and a
field for custom stuff like those boards mentioned above? Once designed,
that's a cheap thing, and many small (hobby) projects could use them. Or is
there something similar already for sale?

It seems to me that one problem is with current packaging technology. Wire
wrap works nicely with DIPS and even PGAs, but as soon as you start dealing
with PLCC packages, WW sockets seem to get prohibitively expensive, and if
you're using SIOC, VSOP, or other explicitly surface mount technology, the
sockets are hard to find and use in ADDITION to being very expensive. In
these cases, using a PCB becomes nearly a necessity (especially if you NEED
the small size features of soic/etc in the first place.)

I've heard that the computer-operated mechanical milling (routing?) machines
designed for making PCBs can be had for as little as $3-5K (used.) It'd be
cool if someone would set one up for doing "hobbyist" PCBs, but it's hard to
imagine that you could make money doing so (The advantages would include
small setup charges and teh ability to do small boards very easilly.)

> BTW I learned by hard experience that auto wire wrap tools like Slit-N-Wrap
> and guns are generally bad news. Hand strip - Hand wrap is the way to go.

Agreed, except do yourself a favour and buy some pre-stripped wire. It saves a
lot
of work. It comes in various lengths and colours.

Having said that, after many years of wire-wrapping one-off boards, I have
now gone to getting PCBs made - it costs a little more, but with the right
software it's less work. The right software in my case is Protel Advanced
Schematic/PCB/Route. The software cost some significant money, but the
Advanced Route 3 in particular is brilliant. It can fully route boards I
have trouble completing, and can do in 5 minutes what would take me 8
hours or more.

>Well this is a religious argument. Each has their advantages and
>disadvantages:

> I'm still trying to find a good argument for using PCB's for development.
> The statement that PCB's are trivally easy to do started this thread.
>
> Breadboards are good if the project is extremely small. But their instability
> and cost generally makes them unusable for anything other than fiddling.

> PCB's are the way to go once the project is developed, tested, and working.
> But for development? I don't think so.

What if the PIC and main support circuitry were done on a very cheap
readily available double sided plated through solder masked board about
the same size and thickness as a 30 pin Simm Memory module?

Connection to proto or bread boards would be done via 30 pin .025" posts
or standard 30 pin Simm Sockets. This would allow you to use your 'Core
PIC circuit' over and over, and develope I/O circuits using your own
preferred method.

(I do a little wire wrap too BAJ)

At around $5 USD each in small quantities, the 'Core PIC circuit' could
even be integrated into your final design.

There is such a device. It's called SimmStick(tm). Documentation is
nearing completion.
Boards are available for all 18 pin PICs and 28 pin (55)57. Two
prototype boards are also available.

According to Gerhard Fiedler:
>
> Wouldn't that be a great idea: make boards for every PIC (or even every
> popular micro), with the basic standard circuitry and connectors, and a
> field for custom stuff like those boards mentioned above? Once designed,
> that's a cheap thing, and many small (hobby) projects could use them. Or is
> there something similar already for sale?
>
> Gerhard
>

These boards are GREAT! Instant PIC circuits, the PICProto18 (for 18 pin pics)
uses any kind of PIC, brings all pins out to a line of connectors, and has a
plated through breadboard area to boot. For one larger project I soldered a
wirewrap sip connector through the "PICbus" (the line of connectors) and then
simply inserted it through a larger perfboard to "mount" the PIC circuit to the
rest of the circuit.

> Wouldn't that be a great idea: make boards for every PIC (or even
> every popular micro), with the basic standard circuitry and
> connectors, and a field for custom stuff like those boards mentioned
> above? Once designed, that's a cheap thing, and many small (hobby)
> projects could use them. Or is there something similar already for
> sale?

Gerhard:

MicroEngineering Labs already make exactly what you want... They have
versions for all the PICs (except maybe the 8-pin devices). You can
reach them at 719 520-5323 (fax: 719 520-1867) or on the web at:

>components. It may be a bit too big, but that isn't a problem. You can
>use a normal electric drill ... a drill press accessory makes life
>easier. I Dremel tool with it's accesory drill press stand is handy as
>well. In fact, the Dremel tool (I just got one a month ago) has been
>great for a lot of this stuff.

Where did you get your Dremel drill press accessory? And, how much did it
cost?

At 15:35 15/11/96 -0800, Andrew Warren wrote:
>MicroEngineering Labs already make exactly what you want... They have
>versions for all the PICs (except maybe the 8-pin devices). You can
>reach them at 719 520-5323 (fax: 719 520-1867) or on the web at:
>
> http://www.melabs.com

I _knew_ it -- it's too obvious. I wonder why in the previous discussions
nobody mentioned this solution (which might work for many cases where space
is not critical, and only one or two devices are needed). Thanks a lot!

>Just started building PCs the "easy" way. I've used the freeware
>packages, and they work fine. I'm now using a package from Ultimate
>Technologies in the Netherlands ... they have a 500 pin version for $79
>US with schematic capture, autorouter, etc. Very nice.

Larry,

How 'bout sharing a little more info about this gem with the rest of us?
I've downloaded WinDraft and WinBoard, but WinDraft locks my system, and
WinBoard is seemingly unstable-- if you click on a part in the module loader
that *would* bring your board over the (100) pin limit, *if* it were placed
on the board, but instead click on cancel, WinBoard thinks that there are
more than 100 pins and won't let you save your file. Same thing if you go
over the limit then delete a module which brings you back under the limit--
won't let me save or print my board. This has caused me to get into the
habit of saving my file after placing EACH module.

Anyway, I'd like to know more about this program that you're using. Sounds
like a good deal.

Matthew Mucker wrote:
>
> >Just started building PCs the "easy" way. I've used the freeware
> >packages, and they work fine. I'm now using a package from Ultimate
> >Technologies in the Netherlands ... they have a 500 pin version for $79
> >US with schematic capture, autorouter, etc. Very nice.
>
> Larry,
>
> How 'bout sharing a little more info about this gem with the rest of us?

I'm using this software too. Ulticap (schematic capture) has some nice
feature's that even orcad (386+) can't give you. It's very easy to make new
components, easy to make connections (it works like an autorouter) etc.
Since i am using this package for a very short time now i can't tell much
about the ultiboard part right now. But it looks allright to me.
In ultiboard it's also easy to make your own shape. For placement of the
shape's you get help from a force vector, traces, and a histograms which
shows the routing density. Pin and gate swapping is supported and so is
forward/back annotation.

Bert Koerts wrote:
>
> Matthew Mucker wrote:
> >
> > >Just started building PCs the "easy" way. I've used the freeware
> > >packages, and they work fine. I'm now using a package from Ultimate
> > >Technologies in the Netherlands ... they have a 500 pin version for $79
> > >US with schematic capture, autorouter, etc. Very nice.
> >
> > Larry,
> >
> > How 'bout sharing a little more info about this gem with the rest of us?

>I've heard that the computer-operated mechanical milling (routing?) machines
>designed for making PCBs can be had for as little as $3-5K (used.) It'd be
>cool if someone would set one up for doing "hobbyist" PCBs, but it's hard to
>imagine that you could make money doing so (The advantages would include
>small setup charges and teh ability to do small boards very easilly.)
>
>BillW
>
>
The problem with these is the tooling cost. The drills are OK but the
special mills that outlinre the traces are expensive. They do last quite a
while. The tools with a short life are if you want to do a board rubout of
unused copper or another "outline" with the end mill to make a wider
isolation path. The end mills in that size are expensive and wear out fast.

I hesitate to stoke the off-topic boiler, but seeing as I started this
off with a contentious point please indulge me...

> From: Byron A Jeff <spambyron@spam@STOPspamCC.GATECH.EDU>
>
> [SJH wrote:]
> -Forget wire wrapping! Making a PCB is so easy these days. But first,
> -prototype the circuit on a breadboard.
> Well this is a religious argument. Each has their advantages and
disadvantages:
>
> Breadbording: Quick to throw together. Easy to change. Entirely too easy to
> change.
>
> Wirewrapping: Quick to throw together presuming you have the equipment.
Sockets
> cost more than PCB sockets. Too much extension from the bottom of the board.
> Fairly stable and generally easy to modify.
>
> PCB: Please tell me how to make an inexpensive, consistent PCB. While it
> may be easy to do, many of us have not set up the design tools and equipment
> to put it together. I'll gladly take a lesson in easy PCB making.

Yes, consistency is a good point. After much weeping and gnashing of teeth
I have found a routine which works for me. I recommend anyone considering
making PCBs to spend a whole day working out a good routine then sticking
to it.

I use precoated positive photo board. Saves worrying about the zillions
of variables which can affect the process of making your own (thickness,
baking temp, dust, hairs, dust, resist-eating moths, dust etc. etc.)

1. Draw the board on white bond paper. Use a laser printer or use
a 0.5mm drafting pen. Print/draw mirror image so that the pattern will be
correct when the ink side is pressed against the board. I use Protel
but have also used drafting techniques. To draw nice pads, I drilled
a DIP pattern into my square so that running the pen around each of the
holes results in a nice round pad complete with drill guide hole. (Relieve
the underside of the template to prevent ink smears).
2. Sandwich board and pattern between 2 sheets of glass with ink side
against the board. Expose to white fluorescent lights (4 x 20W tubes
about 200mm from board) for about 1 hour. Yes, this is slow but it gives
time for the finer things in life such as preparing the developer and
etchant.
3. Develop in commercial developer (or NaOH in a pinch). Etch in hot
ammonium persulphate, preferred for its transparency and non-staining
which is always an advantage when sharing the kitchen with the boss of
the house. Don't leave developer in glassware - I etched a good erlenmeyer
flask by not rinsing immediately. Throw away developer after use.
4. Drill then solder. I find that removal of the resist is not
required before soldering and in fact forms a nice barrier against
my sweaty little fingers. (Be nice if it was actually flux, wouldn't
it?)

Note on using laser printers: since the paper is not gripped by punched holes
etc. don't expect the laser to produce perfectly dimensioned artwork. This
is especially a problem when doing long edge connectors or trying to
register two patterns for double-sided work. 75mm boards are about the
upper limit for my HP laserjet. 15mil traces and clearances are the limit
for a 300DPI printer and 10mil for a 600DPI.

If you know a little PostScript (TM) then post-processing of the artwork
can be quite easy. A favourite of mine is to change the output from
Protel so that it a) sets a black page, b) outputs the pattern in white
with everything oversize by 30mils and c) outputs the original pattern
in black. This gives a pseudo ground plane for SS boards. Optionally,
you can connect all the copper islands left by this process using the
drafting pen.

If cutting the board to size using an angle grinder, leave a 10mm zone
around the edge where no copper will be required. The heat of grinding
ruins the resist for about 6mm either side of the cut.

Fluoro lights should be mounted to give a perfectly even illumination
over the board. If the board is tilted slightly to the tube axis or
at one end of the tube, you will be surprised how unevenly the resist
will develop. If in doubt, move the board to twice the original distance
and quadruple the exposure.

Heating the etchant is recommended unless you like watching paint dry.
I used to heat up ferric chloride in the microwave oven. Since ammonium
persulphate is made up as required then discarded, just use boiling
water when making it. Don't use at over 80 deg C otherwise the resist
can get damaged.

Hairline breaks in the traces are a severe annoyance. They can be
minimised by ensuring that the printer toner is in good condition, and
examining the backlit pattern for breaks. Such breaks are repaired
with the drafting pen. Filled-in drill guide holes are another pest.
Cured by ensuring the resist is fully developed!

Many a good DS board has been damaged by using blunt drills. When the
drill breaks through the other side it lifts the pad there. Tungsten
carbide drill bits last more than 10 times as long as HSS but must be
used in a drill press. They also cost ten times as much. It's a pity,
but I've never seen nitride coated HSS in PCB sizes.

>
> Pre-etched PCBs: Been experimenting with these lately. Shows promise. I'm
> talking about the Rat Shack boards that are etched to look like breadboards.
> Simply solder in the sockets, components, and wire.
>
> Each has advantages and disadvantages. Generally while I'm designing and
> testing I wire wrap. Easy to put together a semi-permanent board that can
> be changed if necessary. I'm willing to examine PCBs but all I read in the
> sci.electronics newsgroups is how difficult it is to get good boards....
>

Single sided with min. 20mil traces is easy. Double sided and/or 12mil
is a pain. However, by dint of much practise my boards are turning
out so well that I wouldn't consider wire wrapping or solder tags (remember
them in the days when components were big enough to see?).

When I started making PCBs I found that using a normal electric drill in a
drill stand to be too cumbersome, resulting in many off-centre holes.
I personally find that the best tool to use is a modelmakers archimedian
screw drill. These can take up to a 1mm drill shank size, although it's so
precise I drill 0.6mm holes for most components. Cost about 6 UK pounds.

Geoff

> >You can use a normal electric drill ... a drill press accessory makes life
> >easier. I Dremel tool with it's accesory drill press stand is handy as
> >well. In fact, the Dremel tool (I just got one a month ago) has been
> >great for a lot of this stuff.
>
> Where did you get your Dremel drill press accessory? And, how much did it
> cost?
>
> -- Hank
>

When I build an electronic device, I have two considerations:
If I don't want the circuit later, how much of the stuff can be recycled?
How easy is it to modify, (improve, fix, etc?)

I have tried everything from "ugly construction" to printed circuit
boards and wire wrap. As one who was born blind, I can't read or write
schematics, but IC's provide a convenient graph-like reference for circuit
design as in:
1 +input
2 -input
3 NC
4 v-
etc

I tried making PC boards in the early seventies and found the
experience interesting, but frustrating. I would use tape and decalls to lay
out a circuit on a piece of un-etched board and then dunk it in ferric
chloride. I then discovered two awful truths. First, I couldn't feel the
traces on the board after stripping off the tape and second, the liquid
has a nasty habit of flowing under any little bubble or break in the tape
and etching where it shouldn't. Sometimes, dirt or other contamination
would act as random resist and leave a little copper fly speck where there
should have been nothing. I found out about wire-wrapping and that technology
solved enough of my problems that I have been content with that for almost
20 years.

What works for me is to do a usual wire-wrap on any square pins such
as IC sockets or any other devices that don't have round leads. I wrap the
wire on the round leads and then solder it since it will slowly unwrap
if not secured.

I am looking forward to using PIC's for the same reasons everybody
else likes them plus one more. If I come up with a good application that
either might have a market value or is simply good and I would like another
one like it, documentation will be much easier since most of the circuit is
the program itself. The source file shows what pins should be what in the
circuit. After all, there are many different ways to connect digital logic
and linear devices that accomplish the same purpose so it is nice to be able
to keep track of what one did so that it can be revisited years later without
having to just start over again because the documentation is too poor to
follow.

I am dreading the day when the only components will be surface mount
devices and we must all build our circuits under a microscope.

I didn't buy the press accessory, (I have an very old tiny drill press
designed just for PC boards that I picked up in a surplus place), but
they are a standard Dremel accessory and I've seen them at several
places where Dremel tools are sold (such as Canadian Tire up here in
Canada ... a large chain store). The cost is about $60 CDN ($1.29 US :)
)

The package has a schematic capture module, a PCB layout module, with an
autorouter built in, plus a separate fancier autorouter. It is a DOS
package (the separate autorouter is Windows ... I've not even fired it
up), but comes with a reasonable set of video drivers. But the standard
SuperVGA ones work fine for me.

It's biggest flaw comes from the documentation. They send a tutorial
manual, and a getting started manual, but no user manual. And no on-line
help. But with some experimenting, you can figure out what a lot of the
things do.

For example, since I use the laser printer/iron-on method, I like traces
and pads that are a bit larger than normal. It was relatively easy to
figureout how to change the default trace and pad sizes.

It has an impressive library of components (no PICs, but building a
library component is quite easy). One caution ... being a European
package, it uses Eurpoean schematic symbols by default. HOWEVER, there
is an American symbol library set as well ... you just have to make sure
that you select from the proper library.

The schematic package is easy to use, and produces high-quality
drawings. Same with the PCB package. If you want to do anything other
than what is in the tutorial manual, be prepared to experiment.

The printing subsystem supports laser printers, plotter, and Gerber
photoplotter stuff. The printing can be customized (again, via
experimentation) to your needs. For example, I don't make two-sided
boards, but I use the ability of the PCB package to put traces on the
top side to place wire jumpers. I modified the printing of the top-side
silk screen (which I use a component layout guide) to print the
top-side traces as well, then I just install jumpers where those traces
show up.

I'm very impressed. I too played around with Winboard, and this is much
better. It is a professional package with a 500 pin limit.

They said that when they ship version 5, the Windows 95 version,
purchasers of Challenger Lite will get an upgrade to that version free.
I'm anxiously awaiting it.

> The problem with these is the tooling cost. The drills are OK but the
> special mills that outlinre the traces are expensive. They do last quite a
> while. The tools with a short life are if you want to do a board rubout of
> unused copper or another "outline" with the end mill to make a wider
> isolation path. The end mills in that size are expensive and wear out fast.

Actually, what you need to do is learn to sharpen the things. I used a
diamond hone and a "vision aid" to see the edge. Most of the machines
I've seen use a pointed bit, and the tip geometry is so simple that
sharpening is pretty easy.

At 11:21 AM 11/18/96 -0500, terogers wrote:
>Larry G. Nelson Sr. wrote:
>
>> The problem with these is the tooling cost. The drills are OK but the
>> special mills that outlinre the traces are expensive. They do last quite a
>> while. The tools with a short life are if you want to do a board rubout of
>> unused copper or another "outline" with the end mill to make a wider
>> isolation path. The end mills in that size are expensive and wear out fast.
>
>Actually, what you need to do is learn to sharpen the things. I used a
>diamond hone and a "vision aid" to see the edge. Most of the machines
>I've seen use a pointed bit, and the tip geometry is so simple that
>sharpening is pretty easy.
>
>-- Tom Rogers Time Tech Inc.
>
>
This is true for the main mill from T-Tech for example but the end mills are
too tiny.
Larry G. Nelson Sr.spam_OUTL.Nelson@spam@ieee.orghttp://www.ultranet.com/~nr

> From TakeThisOuTprashbspam_OUTrta.nsw.gov.au Wed Dec 18 18:02:49 1996
>
> I have just begun to make my own PCBs for the first time and am facing a few
> problems. Wonder if you can help me out...
>
> At 12:49 PM 18/11/96 EST, you wrote:
> >I use precoated positive photo board. Saves worrying about the zillions
> Where do you get it from? I've tried RS and Dick Smith. The Dick Smith
> resist just gets dissolved in the developer and most of the tracks are half
> gone. The resist on RS PCBs does not dissolve completely - no copper is
> exposed. I am using the Riston developer from Dick Smith.

I got mine from a small business in Canberra called Electronic Components.
Unfortunately, they seem to have disappeared from the face of the earth.
Most pre-coated boards that use positive transparencies (i.e. opaque where
copper is required) will use the same developer. The photoresist is
green, and uses an alkaline developer. Not sure about Riston, though.

I don't think Riston developer is the right stuff, unless you use it
with Riston boards. In any case there's no real advantage to using
commercial developers if you can make your own from household chemicals.

If you are having trouble with over- or under-development you will need
to systematically explore the parameters. This only needs to be done
once and you can use the results forever (or at least until you need to
use different supplies). Consistency is the key!

The following may seem like a PITA but will save you from wailing and
gnashing your teeth down to the gums (like I used to).

1. Make a small test transparency with a mix of tracks (10 - 50 mil)
running in vertical and horizontal directions. Make a 1/2" x 1/2" solid
area. Add some pads with 13 mil guide hole size. The complete pattern
should fit in about 1" x 1". Duplicate this pattern so there are 4
copies spread in a line over about 5". This is your test pattern (1" x 5").

2. Cut a strip of PCB 1.5" x 5.5". This is the sacrificial test piece.

3. Now we expose each of the 4 patterns for a different time. The UV
light should be allowed to warm up for 5 min, since the tubes take a
while to develop full output. The patterns are exposed for 2min, 4min,
8min and 16min respectively, at the same (take a note!) distance from
the lamp. This is best done using an old photographer's trick: place
an opaque mask over the three rightmost patterns, leaving the leftmost
uncovered. Expose this for 8min. Move the mask to the right, exposing
the next pattern as well as the first. Expose for 4min. Move mask
again and expose leftmost 3 patterns for 2min. Finally remove the mask
altogether and expose for another 2min. Now the total exposure times
will be 16, 8, 4 and 2 mins from left to right.

4. Now create various concentrations of developer to use. Make 4
solutions, each in 100ml of water. Dissolve various quantities of
developer depending on the manufacturer's recommendation. The minimum
amount, 'D' grams, would be about 5g for commercial powdered developer
or washing soda (see below). If using NaOH, try 2g. The 4 solutions
should contain D, 2D, 3D, 6D grams of developer. Allow all solutions
to reach room temperature (20-25 deg C). Since these are rather small
amounts of developer (less than a teaspoon) you might like to use larger
amounts of water and nominate your standard 'developer measuring
teaspoon'.

5. Develop the test board. In a container which could contain at
least 500ml, add the first solution. Agitate for 2min and observe the
results. If this is only just starting to develop the 16min exposure,
then the developer is too weak. In this case, remove the board, mix in
the second solution. The mix will have a concentration 1.5 times
higher (3D in 200ml). The board must be removed to prevent exposure to
temporarily higher concentrations. Replace the board and agitate for
further 2min. Continue increasing the concentration in this manner, if
necessary, until one of the exposed patterns is completely developed.
Remove the board, rinse for 30sec and examine closely. The development
is successful if all traces of resist have been removed from exposed
areas. The copper should be uniformly very bright, and the remaining
traces should be sharply defined. Examine the guide holes carefully to
ensure that all resist has been removed (there's nothing more annoying
than missing guide holes - the drill skips everywhere but the centre of
the pad!) If traces of resist remain in unwanted areas, replace in the
same developer and agitate for another 2min. If this still doesn't
work, then go to the next higher concentration of developer.

6. Etch then remove the remaining resist with methylated spirits.
Examine the copper traces for clarity and definition. Preferably test
each trace for continuity with a multimeter. Check for short-circuits
caused by thin film of resist. Note: when etching with ammonium
persulphate, small bubbles appear over the resist area. The bubbles
indicate the presence of pinholes which seem to catalyse the formation
of oxygen from the etchant. If the bubbles are not disturbed they help
to protect the pinholes as much as possible. Of course, this is not
desirable for the pad guide hole 'pinholes', so on balance it is
probably better to brush the bubbles off occasionally.

6. Summarise: note down the exposure time and equivalent
concentration for the developer, which will be D, 1.5D, 2D or 3D grams
per 100ml depending on how many additions were made. Make note of the
finest traces and separations which may be reproduced reliably.

>
> The RS PCBs are pretty good - after UV exposure I can see the pattern in
> crisp detail. The are a little dearer. They are glass epoxy as opposed to
> DS which is paper epoxy. This may be a disadvantage as glass epoxy is a
> pain to drill.

I am surprised. I can never see any pattern after exposure, at least when
using fluoro lights, but perhaps the RS boards use a different resist.

>
> >1. Draw the board on white bond paper. Use a laser printer or use
> >a 0.5mm drafting pen. Print/draw mirror image so that the pattern will be
> I use the TurboCAD CAD package. This lets me fuss over every pad and every
> hole :-) I am using a HP 5MP 600 dpi laser printer to print on overhead
> transparencies. When I put the transparency toner side on the PCB I get
> a mirror image. So I draw looking from the top of the PCB. Any problems at
> this stage are too subtle to detect yet.

The trouble with printing on transparencies with a typical laser
printer is that the toner doesn't stick as well as it does on bond
paper. I have tried this and it tends to leave scratches and pinholes
all over the place. Pinholes are OK, but scratches can leave really
tiny breaks in the tracks. It is best to closely examine the
transparency under a bright backlight (photographer's light table is
ideal) and touch up any defects. Only try this with a printer in
tip-top condition.

>
> >2. Sandwich board and pattern between 2 sheets of glass with ink side
> >against the board. Expose to white fluorescent lights (4 x 20W tubes
> *>about 200mm from board) for about 1 hour. Yes, this is slow but it gives
> >time for the finer things in life such as preparing the developer and
> >etchant.
> I am using a 16W UV-C tube by Phillips in a wooden box. It does(?) Dick Smith
> PCBs in 4 mins and RS PCBs in 7-8 mins. I don't know if I am messing this
> stage up.
>
> >3. Develop in commercial developer (or NaOH in a pinch). Etch in hot
> What developer are you using? This is the biggest problem I have. I use
> the Riston developer from Jaycar/Dick Smith(?). Overdoes things on Dick
> Smith PCBs and does not create much of an impression on RS PCBs(resist
> gets slightly discoloured on the UV exposed parts but bare copper is not
> exposed). I am using it at room temprature. Where do you get NaOH(I am
> in a pinch)?

NaOH is common caustic soda which you should be able to get in
supermarkets etc. A better alternative (which I haven't tried) is
Na2CO3 (sodium carbonate or 'washing soda') which I think is the major
constituent of the commercial developer and has the advantage of being
safer than NaOH since it is a much milder alkali.

>
> >ammonium persulphate, preferred for its transparency and non-staining
> That is what I am using. Worked kinda OK with a badly developed DS PCB.
>
> >4. Drill then solder. I find that removal of the resist is not
> WOW! You actually reach a stage where you get to drill? And solder?
>
> >If cutting the board to size using an angle grinder, leave a 10mm zone
> >around the edge where no copper will be required. The heat of grinding
> >ruins the resist for about 6mm either side of the cut.
>
> I usually try to fit multiple copies or some other useful PCB so that
> the whole board is almost used up.

I do this too - saves wastage. If the board is too large it may be
difficult to get even exposure.

>
> >water when making it. Don't use at over 80 deg C otherwise the resist
> >can get damaged.
> I'll keep that in mind.
>
> >Many a good DS board has been damaged by using blunt drills. When the
> >drill breaks through the other side it lifts the pad there. Tungsten
> >carbide drill bits last more than 10 times as long as HSS but must be
> >used in a drill press. They also cost ten times as much. It's a pity,
> >but I've never seen nitride coated HSS in PCB sizes.
>
> Where do you get the bits? I've seen HSS sold by Jaycar, DS, et al. RS
> sells 5 bits at 3 bucks a bit or a set at 20 bucks. I'll buy the set if
> I ever get that far. What hole sizes are needed? I'm thinking of 0.8mm
> for IC holes, 1mm for most components and 1.3 for big resistors or 0.2"
> terminal strips.

RS sells at about $3.00 each however if you look around for tungsten
carbide (WC) suppliers you should be able to find a cheaper source.
The advice to use a PCB drill press should be taken seriously, because
WC is extremely brittle and won't take very much side force at all.
For one-off boards you can get away with 0.8mm and 1.2mm. Anything
bigger just use HSS twist drills. 0.8mm gets used the most - all those
vias and IC holes. If doing a lot of ICs, I think a 0.6 or 0.7mm is
about optimum. The smaller the hole, the smaller the pad, hence you
can fit more traces between IC pads.

> >> Simply solder in the sockets, components, and wire.
>
> That's what I've been using all my life.
>
> >Single sided with min. 20mil traces is easy. Double sided and/or 12mil
> >is a pain. However, by dint of much practise my boards are turning
> >out so well that I wouldn't consider wire wrapping or solder tags (remember
> >them in the days when components were big enough to see?).
>
> Single sided is good enough for me. And if it is just a matter a perserving
> I'll give that a go as well. Problem is I've got a deadline of mid-Feb...
>
>
> Thanks in advance
>
> Prashant

One project I have in the pipeline is to use an X-Y table in
conjunction with a nitrogen laser to directly expose the board without
the intermediate transparency step. The X-Y table is driven by HPGL
plotter commands, with 'pen up/down' replaced with 'laser off/on'. N2
lasers are easy to build, but a bit more difficult when a high
repetition output is required. Another problem is the fact that the
laser is guided over the copper which will be _removed_, hence a
'negative' of the board will need to be plotted. An alternative, of
course, would be to use negative resist.

With the latest talk about PICs and IR communication (Sony CTRL-S in
particular), I would suggest that you take a look at the MIT Media Lab
iRX 2.0 board, which looks like a very sensible board for several PIC
applications. This might be an old project for all I know, but I can't
recall that it has been mentioned on the PIC list lately and the docs
have been updated only a few weeks ago. Schematics, documentation,
PCB layout and software is found at:

I would like to build a PIC based device to "trick" a laptop into thinking
an AT style keyboard is plugged into it's external keyboard port on power
up or on wake-up from standby.

Does anyone have any code, or pointers to help me with this. I don't need
to send any key's, just have it behave as if it's there. A keyboard
"ghost". I know a company that makes a device to do this, but I'd like to
make one myself.

>
> I would like to build a PIC based device to "trick" a laptop into thinking
> an AT style keyboard is plugged into it's external keyboard port on power
> up or on wake-up from standby.

Not difficult at all. In fact my project this weekend is to build an AT
style keyboard using a miniature 5x8 keypad. I need it for my new Toshiba
pen top.

>
> Does anyone have any code, or pointers to help me with this. I don't need
> to send any key's, just have it behave as if it's there. A keyboard
> "ghost". I know a company that makes a device to do this, but I'd like to
> make one myself.

1) send the POST OK byte (AA) on power up.
2) Provide a clock to the host upon request because a PC keyboard is
bi-directional and stuff like typematic rate and setting the LEDs.
3) Send proper acknowledge if host request a command.

The data format, commands, and response can be found at the web page above.
You can even get power from the keyboard port.

>
> Thanks VERY much in advance for any help.

Well I hope this helps, I'll let you folks know how the mini keyboard is
going...

>I would like to build a PIC based device to "trick" a laptop into thinking
>an AT style keyboard is plugged into it's external keyboard port on power
>up or on wake-up from standby.
>
>Does anyone have any code, or pointers to help me with this. I don't need
>to send any key's, just have it behave as if it's there. A keyboard
>"ghost". I know a company that makes a device to do this, but I'd like to
>make one myself.
>
>Thanks VERY much in advance for any help.
>
>Scott

Why don't you just disable the checking for a keyboard in the BIOS ?

Turn off keyboard 'installed' and the machine should boot up whether a
keyboard is installed or not !

=->>Scott
=->
=->Why don't you just disable the checking for a keyboard in the BIOS ?
=->
=->Turn off keyboard 'installed' and the machine should boot up whether a
=->keyboard is installed or not !

First of all, I can't in a Compaq Laptop (or at least I don't know how
<g>). Second and mainly, the whole reason for doing this is so I can use a
scanner that is a keyboard wedge adn requires the use of a keyboard. The
PC won't recognize that anything is attached to the port unless I have a
keyboard attached. I don't need an external keyboard for entry, thus the
desire to have a keyboard faker.

Scott Horton wrote:
>
> I would like to build a PIC based device to "trick" a laptop into thinking
> an AT style keyboard is plugged into it's external keyboard port on power
> up or on wake-up from standby.
>
> Does anyone have any code, or pointers to help me with this. I don't need
> to send any key's, just have it behave as if it's there. A keyboard
> "ghost". I know a company that makes a device to do this, but I'd like to
> make one myself.
>
> Thanks VERY much in advance for any help.
>
> Scott

I hope that someone on the PIC list can help me to help someone else. I
design units (using PICs) to try and assist handicapped people in a
Sheltered Workshop environment.

BACKGROUND
One person has severe muscular dystrophy - his muscles have completely
wasted away. He now cannot walk, move his arms or sit up. It really is
sad and upsetting to see him. The only thing he can do is to watch TV or
try to use a computer. Unfortunately he cannot move his arms properly in
order to fully operate a mouse or the keyboard. He can just move his
fingers.

I am therefore trying to use a small rotary encoder connect to a PIC, to
send ASCII characters to his PC's com port. I have sorted out the PIC side
and can read the rotary encoder and send out ASCII ok.

However, I need to write a PC utility which needs to read the PC's serial
port and display the received character on a small window on the PC (always
in front). It is not useful to display the ACSII character on a separate
LCD connected to the PIC as this would require him to move his head
unnecessarily - hence the reason for displaying the character on the PC.

When this PC utility receives, eg $03 ASCII (which will be sent when he
presses a big button connected to the PIC) it is to drop the current
character displayed in the small PC window into the PC keyboard buffer. If
he was in a word processor that character should then be picked out of the
keyboard buffer and dropped into his document.

I therefore need software source (so that it can be modified) or guidance
on how
to write a PC utility for Windows 95 to:

- Create a small resizable window always in front.
- To always run even in the background.
- To keep looking and receiving data from a com port
(which is user selectable)
- To display the received char in the window (font and size selectable).
- When ASCII $03 (or another special char, which is user selectable) is
received, to drop the last ASCII character, as currently displayed in the
small window, into the keyboard keyin buffer.
- To signal to the PC low level keyin routines that a 'keyboard' key press
has occurred and the character is in the buffer.
- The other standard program should then pick up the character and use it
as normal, thus dropping it into the document being written.

I have done the PIC program OK.

I really need help with the PC side as I simply have not got a clue. ( I
have just bought Borland Delphi for the PC and I am struggling as I have
never programmed a PC before - I have only used Macintosh).

I would like to help this unfortunate person hence my request to the LIST
for assistance, even though the PIC side has been done.

:
: I hope that someone on the PIC list can help me to help someone else. I
: design units (using PICs) to try and assist handicapped people in a
: Sheltered Workshop environment.
:
: BACKGROUND
: One person has severe muscular dystrophy - his muscles have completely
: wasted away. He now cannot walk, move his arms or sit up. It really is
: sad and upsetting to see him. The only thing he can do is to watch TV or
: try to use a computer. Unfortunately he cannot move his arms properly in
: order to fully operate a mouse or the keyboard. He can just move his
: fingers.
:
: I am therefore trying to use a small rotary encoder connect to a PIC, to
: send ASCII characters to his PC's com port. I have sorted out the PIC
side
: and can read the rotary encoder and send out ASCII ok.
:
: However, I need to write a PC utility which needs to read the PC's serial
: port and display the received character on a small window on the PC
(always
: in front). It is not useful to display the ACSII character on a separate
: LCD connected to the PIC as this would require him to move his head
: unnecessarily - hence the reason for displaying the character on the PC.
:
: When this PC utility receives, eg $03 ASCII (which will be sent when he
: presses a big button connected to the PIC) it is to drop the current
: character displayed in the small PC window into the PC keyboard buffer.
If
: he was in a word processor that character should then be picked out of
the
: keyboard buffer and dropped into his document.
:
:
: I therefore need software source (so that it can be modified) or guidance
: on how
: to write a PC utility for Windows 95 to:
:
: - Create a small resizable window always in front.
: - To always run even in the background.
: - To keep looking and receiving data from a com port
: (which is user selectable)
: - To display the received char in the window (font and size selectable).
: - When ASCII $03 (or another special char, which is user selectable) is
: received, to drop the last ASCII character, as currently displayed in
the
: small window, into the keyboard keyin buffer.
: - To signal to the PC low level keyin routines that a 'keyboard' key
press
: has occurred and the character is in the buffer.
: - The other standard program should then pick up the character and use it
: as normal, thus dropping it into the document being written.
:
: I have done the PIC program OK.
:
: I really need help with the PC side as I simply have not got a clue. ( I
: have just bought Borland Delphi for the PC and I am struggling as I have
: never programmed a PC before - I have only used Macintosh).
:
: I would like to help this unfortunate person hence my request to the LIST
: for assistance, even though the PIC side has been done.
:
: Many thanks
:
: ----- from Stephen H Alsop, JP at -----
: email: spam_OUTs.ssystemsRemoveME.....easynet.co.uk
: www : http://easyweb.easynet.co.uk/~s.ssystems
: S&S Systems Ltd, Bretton Court, Manor Road
: Wales Village, Sheffield, S31 8PD, England.
: Tel: 01909 773399 * Fax: 01909 773645 * Mobile: 0973 305527
:

> However, I need to write a PC utility which needs to read the PC's serial
> port and display the received character on a small window on the PC
(always

Well, delphi seems like a good place to start except that your not going to
have the low-level access to actually place the character in the keyboard
buffer unless you write a DLL and/or .ASM driver. However, a quick/dirty
way of doing this might be to use 2 serial ports, and spit the character
bakc out of the PC (using .com drivers built into Delphi) and into the PC's
now empty Keyboard port (Just a serial port in itself). But I think you
should be able to use it as it is and spit the character back at the PIC's
serial port, then have the PIC bit-bang it into the PC's Keyboard port.
Protocol for the PC's keyboard port may not even have to be learned if you
get the right adapter--- (RS232 ---> keyboard, IO ---> keyboard, etc....)

Stephen H Alsop wrote:
>
> I hope that someone on the PIC list can help me to help someone else. I
> design units (using PICs) to try and assist handicapped people in a
> Sheltered Workshop environment.
> Huge Great Snip

OK Steve following our telephone conversation I have also enlisted the
help of a fellow programmer of mine called Phill Cozens who will be
emailing you also.
Now as I said on the telephone the method of getting a char from the
com port and placing it into the keyboard buffer is quite simple.
The big problem you will face is that what ever application cas the
current focus will be the one to process it.
This can also be worked around by getting the instance of all running
applications and selecting the one of interest and sending the
WM_KEYDOWN message to that window.
I will put together a rough prototype over the next few days and get it
to you. just to confirm the protocols will be 9600,8,n,1 (with no H/W
handshaking) the "commit" char will be ASC 03.

What you are describing sounds an awful lot like a mouse or trackball. Is
there some reason that you are not using a miniature trackball ???

If you want to "replace" the keyboard with your PIC based device, you could
have it emulate a keyboard (send out scan codes when the big button is
pushed) and just plug it into the keyboard port on your PC. If there is a
requirement for limited eye movement, I would consider simply mounting a
small LCD display on the edge of the monitor with velcro. The advantage of
this approach is that the pseudo keyboard device would work with almost any
PC or PC application...

>> However, I need to write a PC utility which needs to read the PC's serial
>> port and display the received character on a small window on the PC
>(always
>
>Well, delphi seems like a good place to start except that your not going to
>have the low-level access to actually place the character in the keyboard
>buffer unless you write a DLL and/or .ASM driver. However, a quick/dirty
>way of doing this might be to use 2 serial ports, and spit the character
>bakc out of the PC (using .com drivers built into Delphi) and into the PC's
>now empty Keyboard port (Just a serial port in itself). But I think you
>should be able to use it as it is and spit the character back at the PIC's
>serial port, then have the PIC bit-bang it into the PC's Keyboard port.
>Protocol for the PC's keyboard port may not even have to be learned if you
>get the right adapter--- (RS232 ---> keyboard, IO ---> keyboard, etc....)
>
>

I think the problem here is that as the potential user has limited
control over his hands and fingers, he needs to be able to see
which character will be sent to the keybaord buffer before it is
sent. Other wise he will have a lot of back-spacing to do.

I can only give you ideas on part of the problem you are trying to
solve. Several people have written routines to allow one to put a PIC
in the electrical path between the keyboard and the P.C. The PIC can then
exercise the keyboard data lines to fake key presses. Another factor you will
need to think of when trying to stuff the keyboard buffer is that there are
two characters that get stuffed. One is a byte called a scan code and the
other, supplied by the operating system, is the character. Different
keyboards such as the 83-key type or the AT-style keyboard generate totally
different scan codes for the same keys so you will have to design your
system for the right style keyboard or even several styles. You could
still use a com port for the letter preview function, but the actual sending
process to the buffer is probably easier if you can actually fake key strokes
to the keyboard input port.

>
> I hope that someone on the PIC list can help me to help someone else. I
> design units (using PICs) to try and assist handicapped people in a
> Sheltered Workshop environment.
>
> BACKGROUND
> One person has severe muscular dystrophy - his muscles have completely
> wasted away. He now cannot walk, move his arms or sit up. It really is
> sad and upsetting to see him. The only thing he can do is to watch TV or
> try to use a computer. Unfortunately he cannot move his arms properly in
> order to fully operate a mouse or the keyboard. He can just move his
> fingers.
>
> I am therefore trying to use a small rotary encoder connect to a PIC, to
> send ASCII characters to his PC's com port. I have sorted out the PIC side
> and can read the rotary encoder and send out ASCII ok.
>
> However, I need to write a PC utility which needs to read the PC's serial
> port and display the received character on a small window on the PC (always
> in front). It is not useful to display the ACSII character on a separate
> LCD connected to the PIC as this would require him to move his head
> unnecessarily - hence the reason for displaying the character on the PC.
>
> When this PC utility receives, eg $03 ASCII (which will be sent when he
> presses a big button connected to the PIC) it is to drop the current
> character displayed in the small PC window into the PC keyboard buffer. If
> he was in a word processor that character should then be picked out of the
> keyboard buffer and dropped into his document.

--- snip ---
>
> I would like to help this unfortunate person hence my request to the LIST
> for assistance, even though the PIC side has been done.
>
> Many thanks
>

Win95 has in-built access features for people with disabilities. On is the
ability to take ASCII from a serial
port and insert it into the keyboard stream. I know this is not exactly what
you want as it would then need an
external display, but is an alternative if your project bogs down.

Another option is an on-screen keyboard such as WiViK. This lets you use
switches (1 to 5) or a pointing
device(mouse, pad) to select functions via a scanning method, dwelling on the
key or clicking the mouse. It is
not a cheap option (about AUD$1200-000 but is excellent. I have worked with a
number of people with
disabilities using WiViK, in particular, one man with very advanced MND who used
a BBS for communication and
wrote a book using one finger.

I'm actually working in a similar project. The person here is a girl (Maria)
and has similar muscular problems as you describe.

Some time ago I posted a message in EDESIGN mail list. Didn't want to make
it in the PICLIST because of the off-topic matter. I got a real bunch of
messages offering good ideas to make the interface and also a lot of very
useful URLs to have a look.

There are a few companys manufacturing computer interfaces for disables
people. They do also provide the Windows drivers and all the programs you
will need, so think is real worth to have a look around in the web and see
what's already in the market.

Richard Jackson wrote:
>
>
> > BACKGROUND
> > One person has severe muscular dystrophy - his muscles have completely
> > wasted away. He now cannot walk, move his arms or sit up. It really is
> > sad and upsetting to see him. The only thing he can do is to watch TV or
> > try to use a computer. Unfortunately he cannot move his arms properly in
> > order to fully operate a mouse or the keyboard. He can just move his
> > fingers.
> Another option is an on-screen keyboard such as WiViK. This lets you use
> switches (1 to 5) or a pointing
> device(mouse, pad) to select functions via a scanning method, dwelling on the
> key or clicking the mouse. It is
> not a cheap option (about AUD$1200-000 but is excellent. I have worked with a
> number of people with
> disabilities using WiViK, in particular, one man with very advanced MND who
used
> a BBS for communication and
> wrote a book using one finger.
>
> Richard Jackson
>
> Adelaide S. Aust
I also have a friend that has big problems (because a broken neck): can
You indicate me a place where is possible to get more information about
those or similar devices .
Do know other ways to get information about such systems to let people
communicate with computer ???
thanks in advance!!!
gaspare

> I'm looking for information about the MIDI-standard. Anybody seen it
> on the net?

I found a very nicely done "INF" version of the standard, though I no
longer know where. ("INF" is the OS/2 format used for useful help files
and documentation, as opposed to the "Book reader" format which is useful
only as a boat anchor. I think I've heard of a Windows-hosted INF reader,
but never bothered to dig it up.) And I have a less wonderful plain text
version - well, I used to have it - that I think came off the net. Ask
around the web search engines of your choice and you'll probably find it.

> I here have a keyboard with some old soundcreation-ic and want to be
> able to connect it to my PC (MIDI of course). It can't be to hard to
> implement the interface on a 16C84, can it?

Depends on the keyboard. If you can get at the raw switch closures then
it should be fairly straightforward, and the MIDI data formats for a
simple keyboard are very easy. Where I would think you might have
problems would be if you wanted to retain the existing hardware to
generate sound independently of the PC. If it doesn't already have MIDI
out, then there's not likely to be any way to tap into it except by doing
your own keyboard scanning, and for that the existing hardware will be an
interference, I'm afraid.

That page should have everything you need to know or at least link to
somewhere that does.

I have built a midi sender, once, with a 16c84, all it does is send program
change info. Let me know if you want the source.

Lets see, with 8 x 4 inputs for keyscaning you could have 32 notes, and a
midi send output to the computer. Of course you don't get any pressure
sensing, aftertouch, continuous controllers, mod wheel, pitchbend, ect. but
it would be a great project!

>Hello people.
>
>I'm looking for information about the MIDI-standard. Anybody seen it
>on the net?
>
>I here have a keyboard with some old soundcreation-ic and want to be
>able to connect it to my PC (MIDI of course). It can't be to hard to
>implement the interface on a 16C84, can it?
>
>Any information is welcome
>
>-Henrik
>
>

I'm working on a project that i use a PIC to decode magnetic card's. My
question is when i use an emulator on circuit board the PIC works OK,
but when i program a PIC and put the PIC on the board we dont't work.
Why, is my question. Please help me.

At 11:44 24/02/97 +0100, you wrote:
>Hello,
>
>I'm working on a project that i use a PIC to decode magnetic card's. My
>question is when i use an emulator on circuit board the PIC works OK,
>but when i program a PIC and put the PIC on the board we dont't work.
>Why, is my question. Please help me.
>
>Best Regards
>Paulo Figueiredo

I'm afraid nobody can answer your question if you are not a bit more
precise. But let me share an experience I had, perhaps it gives you a clue.

When I was working on a project with a 'C64 on a PC add-on card, I used the
Parallel data bus feature of the 'C64 to communicate with the PC via the ISA
bus. Everything worked very well with my emulator (Parallax ClearView).
However, the customer complained that 'sometimes', a certain command from
the PC to the PIC was ignored. After a long time of desperate search, I
discovered that the interrupt flag of the parallel port was inadvertently
cleared by any 'return' instruction! (two weeks after that, Microchip added
the errata sheets to their web page, sigh..)

The bound-out PIC used in my emulator had that bug fixed .....

Perhaps you're encountering the same kind of problem. So check the errata
sheet of the PIC you're using and check whether there are differences
between the emulator PIC (a special version of the chip with more
connections) and the 'real' one you're using

I'm working on a project that i use a PIC to decode magnetic card's. My
question is when i use an emulator on circuit board the PIC works OK,
but when i program a PIC and put the PIC on the board we dont't work.
Why, is my question. Please help me.

>Hi Paulo,
>
>At 11:44 24/02/97 +0100, you wrote:
>>Hello,
>>
>>I'm working on a project that i use a PIC to decode magnetic card's. My
>>question is when i use an emulator on circuit board the PIC works OK,
>>but when i program a PIC and put the PIC on the board we dont't work.
>>Why, is my question. Please help me.
>>
>>Best Regards
>>Paulo Figueiredo
>
>I'm afraid nobody can answer your question if you are not a bit more
>precise. But let me share an experience I had, perhaps it gives you a clue.
>
>When I was working on a project with a 'C64 on a PC add-on card, I used the
>Parallel data bus feature of the 'C64 to communicate with the PC via the ISA
>bus. Everything worked very well with my emulator (Parallax ClearView).
>However, the customer complained that 'sometimes', a certain command from
>the PC to the PIC was ignored. After a long time of desperate search, I
>discovered that the interrupt flag of the parallel port was inadvertently
>cleared by any 'return' instruction! (two weeks after that, Microchip added
>the errata sheets to their web page, sigh..)
>
>The bound-out PIC used in my emulator had that bug fixed .....
>
>Perhaps you're encountering the same kind of problem. So check the errata
>sheet of the PIC you're using and check whether there are differences
>between the emulator PIC (a special version of the chip with more
>connections) and the 'real' one you're using
>
>Good luck, I know how you're feeling
>
>Jeroen
>+---------------------------------------------------------------------+
>| Jeroen Ommering Cordless Systems Development |
>| Ericsson Business Mobile Networks BV |
>| Institutenweg 25 |
>| P.O. Box 645, 7500 AP Enschede Tel: +31 53 45 05 420 |
>| The Netherlands Fax: +31 53 45 05 148 |
>| |
>| E-mail: RemoveMEJeroen.OmmeringTakeThisOuTemn.ericsson.se |
>+---------------------------------------------------------------------+
>

I have had similar problems and it is important to recognise the differences
between the two. In the case of the emulator I use(Advanced Transdata), it
does not look at either the external frequency ot the reset line. So I would
first check and ensure that the oscillator is woking and secondly that the
MCLR line is not being forced low at any time or has noise on it. I found
this to be the problem most of the time when I had this sort of problem.
Other problems may arise because of timing or some other exotic sources.

<<
Hi Peeps,
I have just downloaded the Windraft V1.26a and Winboard V2.12
drafting
tools. Does anybody have or can anybody point me to a source for
Libraries for the PIC series.

--

Cheers Peter ..........

==================================
New Ideas come from those who
didn't know it wasn't possible
==================================
>>
Peter,
Lots O Luck with those to pieces of S____. I struggled with WinDraft and
WinBoard for several months and I came to several conclusions:
1) The writers of these applications (and they barely qualify as
applications) have not now or ever have written Windows code. (and this
includes these two things)
2) These two programs started out as a high school fortran project on a
comadore PET. and later ported to Windows.
3) The writers of these two programs have sighed a serect pact with all of
the other low cost PCB packages on the market with the net effect of making
everyone else look good, including other high school fortran projects!

Seriously though, I hope they fixed a whole lot of bugs. After loosing all
your changes to a dialog box that presents you with an error mesage with one
option namley CLOSE, you may change your mind. They were helpful at first
when I called them but they promised me a new version would be comming out
soon (It never did) and then they started to flat out ignore me.
I quickly changed to SuperCad and Super PCB by mental automation. Not bug
free but a whole lot better.

In answer to your original question: Check out the IVEX web site. They
used to have a FTP section from users. One of the files was PIC libraries.

>Peter,
>Lots O Luck with those two pieces of S____. I struggled with WinDraft and
>WinBoard for several months and I came to several conclusions:
>1) The writers of these applications (and they barely qualify as
>applications) have not now or ever have written Windows code. (and this
>includes these two things)
>2) These two programs started out as a high school fortran project on a
>comadore PET. and later ported to Windows.
>3) The writers of these two programs have sighed a serect pact with all of
>the other low cost PCB packages on the market with the net effect of making
>everyone else look good, including other high school fortran projects!
>

I thought you were joking until I spent half a day reviewing these two
programs. Now I know you weren't joking. In fact, you may have been too
kind. No wonder they're free. (I guess you get what you pay for.)

>Peter,
>Lots O Luck with those two pieces of S____. I struggled with WinDraft and
>WinBoard for several months and I came to several conclusions:
>1) The writers of these applications (and they barely qualify as
>applications) have not now or ever have written Windows code. (and this
>includes these two things)
>2) These two programs started out as a high school fortran project on a
>comadore PET. and later ported to Windows.
>3) The writers of these two programs have sighed a serect pact with all of
>the other low cost PCB packages on the market with the net effect of making
>everyone else look good, including other high school fortran projects!
>

I thought you were joking until I spent half a day reviewing these two
programs. Now I know you weren't joking. In fact, you may have been too
kind. No wonder they're free. (I guess you get what you pay for.) >>

Peter,
Yeah I might have padded the truth a bit but I didn't want to hurt your
feelings. After all you may have been one of the people (like me) that paid
$29.95 for it.
I know it costs a bit more than free but SuperCad and SuperPCB from Mental
Automation (the're on the net) worked out great for me. I couldn't quite
muster the $5000+ for OrCad. I got both packages in the professional version
for about $800. They have a scaled down version for low end use (4"X4" and
two layer) for around $150(?). Its not without bugs but then what is. At
least I have used it to produce 8 PCB's to date and some were up to 6 layers.
No complaints from the board house. I hate to get those condesending calls
from the head layout guy at the PCB house telling me 25 different ways that
my layout sucks!
Good luck
Dave Duley
V.P. DreiTek inc.

I am currently working on a PIC project with my best friend (there are two
of us!) which will be able to record and play keyboard data. This will be
a useful module for keyboard diagnostics (where keyboard data is read and
played on another machine), hardware macro recording (so nobody need see me
type in a system password etc), PIC data input (a large keyboard with
serial output is pretty useful) and even a far off idea of a typewriter
where eventually data would be read, displayed on an lcd and when ready
played back to a pc. Unfortunately, all we have come up with between us is
that there are two types of connector, 5 pin standard din and ps/2 and also
that data is transmitted with a clock and data line. We think they stay at
0v normally and use ttl.

We want to know: Pinouts of both connectors, data transmission protocol
(the actual key to data is not crucial yet but we want to know how a byte
of info is transmitted), voltage levels and any other details.

The keyboard protocol is BIZARRE at best. I designed a project very
similar to the one
which you are talking about using an HC11. (In retrospect, I should have
used an 8051 because you can get code that already does the protocol for
it.)
To get the actual protocol, I called IBM and got them to fax me a few pages
out of a reference manual. (Although I think I remember now that Circuit
Cellar did an article on it a year or two ago, you might want to ask there.http://www.circellar.com)

There are actually three different ways of doing the protocol. I wish you
the best of luck.

Send a blank message to helpspamTakeThisOuTdontronics.com for more info.
SLI, the serial LCD that auto detects baud rates from 100 to 125K bps.
SimmStick(tm) A PIC proto PCB the size of a 30 pin Simm Memory Module.

> We want to know: Pinouts of both connectors, data transmission protocol
> (the actual key to data is not crucial yet but we want to know how a byte
> of info is transmitted), voltage levels and any other details.

>We want to know: Pinouts of both connectors, data transmission protocol
>(the actual key to data is not crucial yet but we want to know how a byte
>of info is transmitted), voltage levels and any other details.

Is the PC/AT keyboard interface patented by IBM? I think so.
There was an article in a computer magazine, that reported IBM's
practice, to ask for money from manufacturers, that use their patents.
There are: Keyboard interface, "Floppy seek test", and a lot of other
"useful" things in a PC.

I am interested in making custom signboards out of LED modules (5x7)
using PIC uC's. Signboards are those scrolling displays or marquees seen
wherever advertisers want their message observed. Is there a schematic /
program for this project? Useful features would be expandable character
table, string length, panning, scrolling, .... Any information would be
helpful.
J Kaminski

>I am interested in making custom signboards out of LED modules (5x7)
>using PIC uC's. Signboards are those scrolling displays or marquees seen
>wherever advertisers want their message observed. Is there a schematic /
>program for this project? Useful features would be expandable character
>table, string length, panning, scrolling, .... Any information would be
>helpful.
>J Kaminski

In a nutshell, you need more horsepower than you might think for projects
like this. These displays are typically scanned, and that imposes a lot of
overhead on your CPU to keep the display refreshed properly. If you don't
go fast enough, you get flickering. It's important to note that the flicker
can be acceptable if you're looking straight at it, but can be very annoying
if your eyes are moving around (as in our industry, where we make these
kinds of signs for use in casinos).

As the sign increases in size, you need to make some hard decisions regarding
the kinds of information you want to present. If you're only interested in
character data, then you can store font images and assemble a display screen
with fairly small amounts of storage. If you plan to display graphics, you'll
need more space. If you want animations, plan on *lots* of space, since you
won't have time to do any clever mathematical transformations in real time.
You'll need to just store every frame of the animation, then play them back
sequentially.

Most manufacturers use high-current drivers like the Allegro parts, which
combine a shift register and output drivers. You need to work out a column
and row scanning system that will refresh your display, and then send the
appropriate clock, enable, data and strobe signals to the driver chips. It's
not a trivial amount of work. We have several people devoted full-time to
display development.

After you've got all that stuff working right, then you can start worrying
about the higher-level issues of scrolling, flashing, blinking and the
types of information you'll present. Note that you may have to modify your
display refresh algorithm depending on the kind of motion or effects you're
trying to achieve.

They aren't cheap to build, either. LED modules go for $5-6 each in small-ish
quantities, and you can easily put several hundred dollars into the display
modules alone. Good luck with your project.

> >I am interested in making custom signboards out of LED modules (5x7)
> >using PIC uC's. Signboards are those scrolling displays or marquees seen
> >wherever advertisers want their message observed. Is there a schematic /
> >program for this project? Useful features would be expandable character
> >table, string length, panning, scrolling, .... Any information would be
> >helpful.
> >J Kaminski
>
> In a nutshell, you need more horsepower than you might think for projects
> like this. These displays are typically scanned, and that imposes a lot of
> overhead on your CPU to keep the display refreshed properly. If you don't
> go fast enough, you get flickering. It's important to note that the flicker
> can be acceptable if you're looking straight at it, but can be very annoying
> if your eyes are moving around (as in our industry, where we make these
> kinds of signs for use in casinos).

"That depends". For scrolling text applications, a simple PIC may be
quite sufficient (even a 12C508 plus EEPROM for very small signs like the
42x5's that seem popular on fast food menus). As for refresh rate, that
depends a lot upon whether you're displaying static or scrolling images.
For static images, the faster the better; for scrolling images, you want
to scroll an integer number of pixels per frame [typically one] unless
you're doing tricky fractional-dot techniques.

> As the sign increases in size, you need to make some hard decisions regarding
> the kinds of information you want to present. If you're only interested in
> character data, then you can store font images and assemble a display screen
> with fairly small amounts of storage. If you plan to display graphics, you'll
> need more space. If you want animations, plan on *lots* of space, since you
> won't have time to do any clever mathematical transformations in real time.
> You'll need to just store every frame of the animation, then play them back
> sequentially.

Here again, "that depends". If your animation merely consists of sliding
sprites around, where each sprite has 2-4 frames, you can do the motion in
code with just the sprites in RAM/ROM.

> Most manufacturers use high-current drivers like the Allegro parts, which
> combine a shift register and output drivers. You need to work out a column
> and row scanning system that will refresh your display, and then send the
> appropriate clock, enable, data and strobe signals to the driver chips. It's
> not a trivial amount of work. We have several people devoted full-time to
> display development.

Need anyone to do some contract for you? I've been itching to do one of
those things for years; at present all I have are small 5x28 and 7x40
units I wired myself [the 7x40 was a real pain... I shoulda spent the $100
or so and got a PCB].

> After you've got all that stuff working right, then you can start worrying
> about the higher-level issues of scrolling, flashing, blinking and the
> types of information you'll present. Note that you may have to modify your
> display refresh algorithm depending on the kind of motion or effects you're
> trying to achieve.

Your last point is extremely important, though I think you need to "worry"
about the higher level issues before you design the circuit. For example,
unless you have a single scan which goes from one edge of the screen to
the other, you will need to watch out for "seams". For example, if you
have a 15 dot high display which is wired as three groups of five scanned
rows, you will need to take special measures in your scanning if you wish
to avoid visible seams between these groups.

Also, you should consider the question of whether you want to use a bitmap
buffer to hold the current screen, or whether you wish to generate it
continuously from characters as you're scanning. If you have a "large"
CPU [i.e. something with external RAM] this question is often a no-brainer
(just do it), but when trying to produce a minimal design, it can be a bit
more complicated. For example, the easiest method of avoiding seams
requires that you approximately double your display buffer allocation if
you use a bitmap; if you're converting text-to-bits as you scan, then you
may not require the extra buffering but your algorithms will be more
complex.

> They aren't cheap to build, either. LED modules go for $5-6 each in small-ish
> quantities, and you can easily put several hundred dollars into the display
> modules alone. Good luck with your project.

Depends. Jameco has certain modules available pretty cheap. For example,
a 5x8 module (1.5"x2.4") with anode-column, cathode-row (if memory serves)
is $1.95 for one, $1.75ea for 25, $1.25ea for 100, and $0.99ea for 250. A
40x5 sign would cost less than $10 for the LED's, and even a 64x15 sign
(19.2"x4.5") would only cost you about $44 (along with a spare module)

part 0 1238 bytesI haven't played assembler for about 10 years, so I just bought a PicStart-Plus kit to work on a project in hand - which requires large format animated alphanumeric displays (about 30 panels)

Just doing the preliminary number crunching, I came out with quite respectable results for the multiplexing -

256 columns (8 bits per column)
CPU clock @ 4MHz
100Hz refresh rate

Provides enough time for almost 40 (16Cxx) instructions per column scanned.

If the comms is handled inbetween scans, the interruption should be minimal for most applications.
Say 9600bps / message is 256bytes (close enough), then the comms should happen in about 0.3s

Although I concede that cranking the clock up to 10MHz provides a lot more room for animation etc, where bit patterns need to be processed on the fly for all columns in each scan (updating the contents of the display more than 25 times/sec is pointless, as the viewer will never see it), so there is more time available than appears - if I'm not wrong ???

I think that's what I wanted to say...

Anyway, if anyone feels like sharing some of their source code - feel free... :)

> After you've got all that stuff working right, then you can start
worrying
> about the higher-level issues of scrolling, flashing, blinking and the
> types of information you'll present. Note that you may have to modify
your
> display refresh algorithm depending on the kind of motion or effects
you're
> trying to achieve.

>Your last point is extremely important, though I think you need to
"worry"
>about the higher level issues before you design the circuit. For
example,{Quote hidden}

>unless you have a single scan which goes from one edge of the screen to
>the other, you will need to watch out for "seams". For example, if you
>have a 15 dot high display which is wired as three groups of five scanned
>rows, you will need to take special measures in your scanning if you wish
>to avoid visible seams between these groups.

>For example, the easiest method of avoiding seams
>requires that you approximately double your display buffer allocation if
>you use a bitmap; if you're converting text-to-bits as you scan, then you
>may not require the extra buffering but your algorithms will be more
>complex.

Hmmm, Interresting. I actully just made a LED panel and I'm having some
problems. When the picture is moving the dots seems to be double (is this
what you call "seams"). I fount out that I could remove this by setting
the
refresh rate down to once per frame. But then I get flickker due to the
low
refresh rate.
What can I do to prevent this when I change the refresh rate?
And how these special refresh algorithms working?
Can the problem be solved by double the display buffer, and how?

> Hmmm, Interresting. I actully just made a LED panel and I'm having some
> problems. When the picture is moving the dots seems to be double (is this
> what you call "seams"). I fount out that I could remove this by setting
> the
> refresh rate down to once per frame. But then I get flickker due to the
> low
> refresh rate.
> What can I do to prevent this when I change the refresh rate?
> And how these special refresh algorithms working?
> Can the problem be solved by double the display buffer, and how?

I'd suggest that you--either in your imagination or in reality--place a
piece of acetate or other transparent material over the signboard and move
it right to left at the rate the dots will be moving. Every time a dot
flashes, mark it on the acetate. [obviously, doing this for real would
require the ability to step through the frames unless you've got a REALLY
fast hand with that Sharpie(r)].

If you do this with a display that's shown twice per, you will observe
that each dot will appear twice on the acetate; the second appearance will
be 1/2 dot to the right of the first. There is no way to rid yourself of
this phenomenon other than by speeding up the scrolling, slowing down the
refresh, or both so as to be at a rate of one dot per frame. If neither
of these options is acceptable, you can try instead to take advantage of
the phenomenon by doubling the width of your display buffer and showing
the even pixels on one flash and the odd ones on the other. This will
allow you to double the perceived resolution of your display, and may help
to reduce the annoying double-dottiness of the scroll.

Additionally, if you are using discrete LED's you may improve the
appearance of *scrolling* text by staggering the LED's in alternate rows.
You then scan the rows in even/odd order, so that the flicker will be less
noticeable than on a straight scan. Unfortunately, this will be a bit of
an annoying display layout for anything other than text which is scrolling
at the proper speed, but such is life.

>Hmmm, Interresting. I actully just made a LED panel and I'm having some
>problems. When the picture is moving the dots seems to be double (is this
>what you call "seams"). I fount out that I could remove this by setting
>the
>refresh rate down to once per frame. But then I get flickker due to the
>low
>refresh rate.
>What can I do to prevent this when I change the refresh rate?
>And how these special refresh algorithms working?
>Can the problem be solved by double the display buffer, and how?

>Thanks in advance

> Lars

At a previous employment, we exclusively made custom LED signboards. The trick
to a smooth scroll is to have each dot of every column or row ( depends on which
way you are scanning), to be illuminated for the same length of time. My guess
is that you are doing a column scan refresh. These columns extend from column 1
to n. When a pixel moves from column 1 in one section to column n in an
adjacent section, that dot will be illuminated for two consecutive scans. The
visual effect is that characters seem to distort only at the seam boundaries.
The fix we used was some fairly complex rules to "predistort" the characters as
they crossed the boundaries. It worked fine until you tried to pause a
scrolling message, then distorted characters were visible. I no longer work for
that company, so I do not have the details on the distortion any more.

If your pixels are doubled across the entire signboard during a scroll, then you
are not moving you characters in memory correctly. The character MUST advance
one pixel for each refresh field. If the character advances slower that one
pixel for each refresh field, then smearing of doubling occurs. Remember in a
scrolling message display the scroll rate determines the refresh rate. The
faster you scroll, the faster you must refresh and vice versa. Slow scroll
rates always flicker, its the nature of the beast.

In message <EraseME199705171625.SAA11626RemoveME@spam@nis.student.dtu.dk>, DTU- No Proxi
<RemoveMEljspamEraseMEPOBOXES.COM> writes
>Hmmm, Interresting. I actully just made a LED panel and I'm having some
>problems. When the picture is moving the dots seems to be double (is this
>what you call "seams"). I fount out that I could remove this by setting
>the
>refresh rate down to once per frame. But then I get flickker due to the
>low
>refresh rate.
>What can I do to prevent this when I change the refresh rate?
>And how these special refresh algorithms working?
>Can the problem be solved by double the display buffer, and how?

The double dots sound like "temporal aliasing", similar to the effect
you get when you move a mouse rapidly - you see several copies of the
pointer. It's caused by the persistence of vision.

I have just completed the prototype hardware and software for my
first PIC based project, but cannot seem to find the answer to a
couple of questions.

At the moment I am using the windowed CERDIP package of the PIC16C63,
but in the final product would like to use surface mount and serial
programming. The number of boards is small (< 100), and although the
PICStart Plus programmer documentation does not recommend its use for
production I'm wondering if I can use it at all for serial
programming ? Can I plug a header into the programmer and take the
five lines required to connections on my circuit ? I have nothing
connected to RB7, and will probably need to use a jumper on RB6 for
programming. /MCLR is pulled upto 5V via a 10k resistor, and the
rest of the circuit will not draw significant current during
programming.

Secondly, I tried programming a couple of the windowed 16C63 devices
with the configurations bits set to enable code protection. Now
everytime I try to use them, they are not blank. I thought these
devices were fully erasable, but it would seem I was wrong ? - Have I
now rendered these devices totally useless ?

> Secondly, I tried programming a couple of the windowed 16C63 devices
> with the configurations bits set to enable code protection. Now
> everytime I try to use them, they are not blank. I thought these
> devices were fully erasable, but it would seem I was wrong ? - Have I
> now rendered these devices totally useless ?

Yep, Microchip covers the code protection fuse with some sort of mask to
block out UV. I guess this is to prevent someone from taking a laser and
clearing only the CP fuse, thus unprotecting the PIC. I do not know of
any way to erase that bit now. (IMHO they should actually have omitted
the CP fuse in the JW devices since accidents do happen! You only use
them for devlopment anyway.)

In message <@spam@379487A3827spamBeGonefirga.sun.ac.za> spam_OUTPICLISTspamMITVMA.MIT.EDU writes:
> Hi,
>
> > Secondly, I tried programming a couple of the windowed 16C63 devices
> > with the configurations bits set to enable code protection. Now
> > everytime I try to use them, they are not blank. I thought these
> > devices were fully erasable, but it would seem I was wrong ? - Have I
> > now rendered these devices totally useless ?
>
> Yep, Microchip covers the code protection fuse with some sort of mask to
> block out UV. I guess this is to prevent someone from taking a laser and
> clearing only the CP fuse, thus unprotecting the PIC. I do not know of
> any way to erase that bit now. (IMHO they should actually have omitted
> the CP fuse in the JW devices since accidents do happen! You only use
> them for devlopment anyway.)

Niki,

It is very reassuring to know that the same die is used in the JW
parts as in the OTP parts.

> > Secondly, I tried programming a couple of the windowed 16C63 devices
> > with the configurations bits set to enable code protection. Now
> > everytime I try to use them, they are not blank. I thought these
> > devices were fully erasable, but it would seem I was wrong ? - Have I
> > now rendered these devices totally useless ?
>
> Yep, Microchip covers the code protection fuse with some sort of mask to
> block out UV. I guess this is to prevent someone from taking a laser and
> clearing only the CP fuse, thus unprotecting the PIC. I do not know of
> any way to erase that bit now. (IMHO they should actually have omitted
> the CP fuse in the JW devices since accidents do happen! You only use
> them for devlopment anyway.)

Thanks for the reply. Sadly, I'm not having any luck getting rid of
the configuration bits, so it looks like these devices are now
useless :( I wish Microchip had omitted the CP fuse as well !

During the month of May, DonTronics designed and produced 3 new PIC
based prototyping boards for the SimmStick(tm) platform and these boards
are shipping right now.
All I/O boards also suit the Atmel.001 (AT89C2051) SimmStick(tm) from
SiStudios.
They should suit any future micro migration to the SimmStick building
block.

These are:
DT003: Simmstick 4 slot mini-bus, power supply, and comms port with D-9
and Max-232.

DT101: A PicStic(tm) equivalent circuit on a SimmStick(tm) platform.
PicStic(tm) versions 1, 2, and 3, all rolled up into one, plus a Max-232
and 24LCxx type EEprom. 1" module.

During the month of June, these will be released:
DT204: Expansion board for SimmStick Bus. 2" Module.
1) Can be used just to add 4 slots to a bus. The bus continues through.
2) Used as a right angle or left angle bus connection, so that you can
have a SimmStick facing up or down, or both.
3) Signal Isolation and cross connection using either links or DIP
switches.
4) Convert Simm connector to 30 pin Female.

DT205: Relay board for 4 relays. Carries a partial bus on to the next
module so that a total of 16 relays could be used by cascading four
boards. Uses SimmStick bus signals D0 to D15. Can select a group of 4
bits by placement of a single ULN2803 (or 2003) in one of four
positions. 4 monitor LEDs. Screw terminals for outputs. Suits many Relay
types. This is a 2.5 Inch board.

Andy Kunz wrote:
> If you insist on throwing them away, I have a trash can for them here
> at my deskside - just mail them on over.

Might I too offer my services as the Australian equivalent "trash can"?
I have yet to try it, and need to experiment with exposure etc., but have
a fair idea I could recycle them if indeed the "fuzes" are all EPROM.

Niki Steenkamp:
> Just out of curiosity, would it be possible to erase a PIC with
> something like X-Rays?

Ahh yes, that«s the question isn«t it? OTP ones and all. That said, I
should be surprised if what SHOULD be quite a brief and diffuse exposure
in an airport X-ray unit (presumably using an Image Intensifier) would
have such an effect. I would expect the requirement to be more along the
lines of quite a few seconds close up to the tube.

Typical continuous ("screening") currents of 1 to 2mA at 60KV represent
about 100W, so it is a bit more powerful than your UV tube. Bursts of
about 200mA for a part of a second thus correspond to 10KW peak. I have
no idea of the comparative conversion efficiencies in each case, nor the
effect of the different wavelengths.

Firstly thanks to all those patient peoples who answered my previous
non PIC issues some time back and the interesting tangential social
chats that make life that much more enjoyable :)

Anyone know where I can find a minimal and small keyboard which is PC-AT
compatible (Only needs ASCII/numeric/shift/control etc) - ostensibly for
portable use ? Looking for about 100 over next year in new condition.

> From: Mike
<snip>
> Anyone know where I can find a minimal and small keyboard which is PC-AT
> compatible (Only needs ASCII/numeric/shift/control etc) - ostensibly for
> portable use ? Looking for about 100 over next year in new condition.

We bought a bunch of compact keyboards (236mm by 158mm) a few years ago. I
dug out an empty box and it says:

At the time I think we bought some in black and some in beige. It does not
have the numeric keypad or the block of navigation keys on the right. It
has F keys across the top and digits are in their conventional QWERTY
position on the top row of the keyboard.

>> From: Mike
><snip>
>> Anyone know where I can find a minimal and small keyboard which is PC-AT
>> compatible (Only needs ASCII/numeric/shift/control etc) - ostensibly for
>> portable use ? Looking for about 100 over next year in new condition.
>
>We bought a bunch of compact keyboards (236mm by 158mm) a few years ago. I
>dug out an empty box and it says:
>
>Scorpius 83 Keyboard
>Qtronix
>13th floor Number 207
>Tun Hwa N. RD.
>Taipei, Taiwan, R.O.C.
>TEL 886-2-716-3178
>FAX 886-2-713-7900
>
>At the time I think we bought some in black and some in beige. It does not
>have the numeric keypad or the block of navigation keys on the right. It
>has F keys across the top and digits are in their conventional QWERTY
>position on the top row of the keyboard.
>
>We used them all up so I guess they were OK.
>
>Hope it helps,
>
>Win Wiencke
>Image Logic Corporation
>EraseMEImageLogicEraseMEibm.net
>

Thanks to those who replied about the minimal AT type keyboard, I'll
chase this up over the next few days. I've been involved in a design
project for a Mobile Data Terminal which is now on a web page at the
following URL http://www.memo.com.au and we are likely to use a
small PIC to handle AT keyboard to RS485 to make it compatible with
the MDT's operating system and scripting language. If you have any
queries about the MDT I'd be happy to answer them - incidentally,
the unit uses the 68HC11 as it was the lowest cost one around that
allowed external 32K EPROM, 32K SRAM and has 512 bytes of EEPROM
on the CPU along with lots of A to D and reasonable speed etc...
(Couldn't find a PIC big enough and at that stage it wasn't my
decision either as to which CPU we ended up with).

Thanks again and Regards from

Mike Massen
Perth, Western Australia

Some say there is no magic but, all things begin with thought then it becomes
academic, then some poor slob works out a practical way to implement all that
theory, this is called Engineering - for most people another form of magic.
Massen

> - incidentally, the unit uses the 68HC11 as it was the lowest cost one
> around that allowed external 32K EPROM, 32K SRAM and has 512 bytes of
> EEPROM on the CPU along with lots of A to D and reasonable speed etc...
> (Couldn't find a PIC big enough and at that stage it wasn't my
> decision either as to which CPU we ended up with).

Wise choice. Horses for courses. 68HC11s are used in most of the
more
sophisticated bar code and/ or "keyboard wedge" appliances I have here,
using significant amounts of code space and/ or RAM. Why use PICs?
Only because they may be more AVAILABLE(!) and/ or cheaper than the
68HC11 and MAY execute faster. However, using the serial EEPROM or RAM
devices loses all such speed advantage.

if you see the book by Douglas Hall
(i think its called microprocessors: interfacing hw &sw>
you'll get the schematic. of course he uses a 8088, but the
idea is the same.
if you use a row-column approach, you can even
interface 16 keys using 8 I/O pins.
see the on-linedata sheets for 12C508 also.
they have some info too.

I had to use one of those keypads once. I was also driving three four
phase stepper motors at the same time from an 84. To save pins I used a
74ls138 on porta, three of its ouputs went to the rows of the keypad, and
the 4 data bits it produced went to portb. Portb b has pull-ups and the
74ls138 has low outputs so pressing a key brought the pull-ups low, which
was very convenient. Also i had 5 other outputs on the 74ls138 which i
used to drive 5 seven seg displays and the three stepper motors (using
latches of course).

One of you's guys wrote:
>If you're designing with PICS, your board has to cost less than a
>meal at McDonald's

In my case, less than a Big Mac. Some of our boards cost less than
$1.00 US. A penny is one percent of the cost of these boards.
We are still designing through hole components on single sided copper
because it's the dirt cheapest system. Or is it?

I've been examining the break even point between surface mount and
through hole parts. We've been hanging onto through hole because,
till now, through hole resistors and other commodity parts have been
cheaper. I think the break even point has about arrived, though.

Even in a surface mount design I'll be using some through hole
components - power resistors, relays, aluminum electrolytics,
vertical pots, etc.

One of the arguments against surface mount goes like this: Surface
mount layouts require at least a double sided board. Laying out
surface mount on a single sided board is a fool's errand because it
is difficult to jump across traces using a resistor. You need that
second layer of copper in order to get the thing to route. Two layer
boards are more expensive than single layer boards, ERGO surface
mount would have to be WAY cheaper than through hole to really be
cheaper.

So my question is this: What to you folks think - is surface mount
cheaper than through hole? Does surface mount require a two sided
board in order to route?

<snip>
>
>So my question is this: What to you folks think - is surface mount
>cheaper than through hole? Does surface mount require a two sided
>board in order to route?
>
>
There are some other things to consider as well as the points you
have mentioned.

1. SMT assembly costs are usually less than through hole.
2. SMT with smaller PCB size, packaging can be much less.

Whether or not you can route a single layer SMT board is the
same as for through hole. Only difference is your components
are now on the bottom of the board not the top :-)