[ The following is taken from John Wiseman (G8BPQ)'s excellent BPQ node package. All credit goes to him for all the work he continues to put into that project! I've merely modified and added on to this description where appropriate, to indicate use with JNOS and JNOS40. I've also added a section to describe the use of the WG7JKISS image I am providing. April '94, Johan Reinalda, WG7J ] KISS Proms for use with TheNode and JNOS/JNOS40 Several PROM images are supplied for for use with TNC2 (or clones), and one for use with the TNC220. KISS is as released with the TCPIP package. I have used this code, and it seems to work, but it does have loopholes in its buffer management. As I have experienced buffering problems with other KISS mode TNCs with TheNode, i've done a version which will reset if it runs out. This is a bit drastic, but should keep the system going. (Higher level software will retry the discarded messages). If it improves things, I'll refine it to discard the oldest. The new eprom image is in the file JKISS. 220KISS is a version of JKISS, modified to run on the TNC220. This version only supports the VHF port (port 2) at 1200 baud,and the aync link to the PC is fixed at 2400. The DCD led is driven by software, but is controlled by the DCD signal from the modem (ie DCD processing is the same as with the TNC2 - the SOFTDCD mode of the 220 is not implemented). Other versions are possible if there is sufficient interest - the main problem is that the KISS command set would have to be extended to include commands for port and speed switching. Note the software is now set up to run with the clock speed jumper in the 'Low' speed position - several people have had problems running in the 'Fast' mode. BPQKISS - A Multidropped KISS system. (TNC2 and clones only) I have implemented a system to allow more than one KISS-like TNC to connect to a single Async port. This is primarily for those running machines with little expansion capability, but can also enable the TNCs and transceivers to be located remotely from the PC with a simple 3 wire link. This could be useful on the lower frequencies, where QRM from the PC blocks the receiver ( I have real problems running a 50meg RX near the PC). A simple checksum is also added to each packet, to reduce the risk of corruption if running on long leads (or even over a modem link). The system uses polling to prevent contention on the link. Each TNC must run the BPQKISS program, and each must have a different 'address' byte patched in at location 20hex. In the PORTS section of BPQCFG.TXT, PROTOCOL must be set to KISS, KISSOPTIONS to POLLED,CHECKSUM,ACKMODE and CHANNEL set to correspond to the address in the PROM - CHANNEL Address (in byte 20h of PROM) BPQ (JNOS) A 0 00h B 1 10h C 2 20h D 4 30h etc NOTE: for use with tcp/ip programs such as JNOS and JNOS40, the channels above are numbers. Channel A is 0, B is 1, C is 3, D is 4, etc (wg7j) In theory you can have up to 16, but in practice the maximum will depend on the power of the PC and the speed of the radio ports. Wiring. (PC indicates IBM PC compatibles with DB25 serial port. DE indicates a Kantronics Data Engine (tm).) PC DE TNC 1 TNC 2 GROUND 7 4 ---------------7----------------7----------- etc TXD 2 5 ---------------2----------------2----------- etc RXD 3 6 -------------------------------------------- etc | | - - ^ ^ | | 3 3 - ^ is a diode (1N914 or similar) With some TNCs and serial cards, a pulldown resistor may be required from pin 3 on the PC (10k to -12v is suggested). Thanks to G3ZFJ for this information. The protocol used for this multidropped option was changed from version 3.59a onwards to be compatible with similar software produced by KANTRONICS for their range of TNCs. The new version is called BPQKISS, and replaces the old JKISSP. For those of you unfamiliar with KISS TNCs, the STA led indicates frames being received from the PC and the CON led frames being sent to the PC. On powerup, some LEDS should flash about 3 times - which ones depends on the version and the RAM size in the TNC. CWID I have added CWID to my JKISS and BPQKISS EPROMs. The Callsign to be sent is patched into the EPROM image with the program PATCHID, which takes two parameters, the required callsign, and the file to patch (either JKISS or BPQKISS). Note that the specified file is overwritten, so I suggest you make a copy of the original first. PATCHID G8BPQ JKISS - Note call must be in upper case The CW patttern which will be sent is displayed on the screen - please check it, just in case my translate table is wrong! The ID is sent after one minute, then at 29 minute intervals, with a dot length of 60ms. If my calculations are correct, this equates to 20 WPM The ID is send in AFSK (assuming a normal AFSK modem), but because of the hardware design it is not possible to control which tone corresponds to mark or space - it depends on what was sent just before the ID starts. If you are using a modem with a scrambler (eg G3RUH), then the system wont work - the two tones will sound the same. I'd like to know if a CWID facility for RUH modems would be useful - if there is a significant demand I'll see if I can find a solution. A simple on-off keying may be possible, but would depend on the PTT characteristics of the TX. If you have a better idea, please let me know! The normal SLOTTIME/PERSISTENCE code is used to minimise collisions with other stations (hence the interval of 29 mins, allowing a bit of time for congestion, without going over the statutory 30 mins interval). John Wiseman, G8BPQ 7 March 1991 /***************************************************************************/ WG7JKISS This is a modification of the original KISS-V4 program. It also solves the buffer problem by resetting the tnc (not very graceful, but it works). In addition, it contains serial port contention code, wich will allow multiple tnc's to be connected to a serial 'bus' between the tnc's and the host (either Personal Computer (PC) or Data Engine (DE)) 'Bus' contention is done with a similar scheme used in the popular Net/Rom and TheNet diode matrix approach. However, the PC/DE and the tnc's communicate with a 'master/slave'-alike concept. The PC/DE sends kiss frames that are overheard by all tncs (but only interpreted by the tnc addressed), but a frame sent by a tnc is only received by the PC/DE. The latter is different from the netrom scheme where all sent frames are heard by all tnc's. On the PC/DE, only the ground, receive and transmit are needed. The actual 'bus' scheme is done between the slaves, ie. the tnc's. When a tnc is about to transmit a frame on the serial port, it checks the status of the DTR pin. If the pin is active, the tnc will wait untill it becomes inactive. If the DTR pin is inactive, or the DTR pin becomes inactive after waiting for it, the tnc will wait a random interval of 0, 10, 20 or 30 milliseconds. If after this time the DTR is still inactive, it will activate the CTS pin and start transmitting the frame. However, if the DTR pin is found active again (meaning another tnc started transmitting meanwhile), the tnc will wait until the DTR pin becomes inactive again. By default, each tnc will wait no longer then 20 seconds before transmitting a frame. After this time, it assumes there is a problem, and jams the outstanding frames out the serial port. Each tnc must run the WG7JKISS program, and each must have a different 'address' byte patched in at location 20 hex. Address should be as is outlined above for the BPQKISS rom, and is repeated here: CHANNEL Address (in byte 20h of PROM) (BPQ) JNOS A 0 00h B 1 10h C 2 20h D 4 30h etc NOTE that the WG7JKISS eproms have not been tested with G8BPQ code. However, it should be possible to use them, by configuring multiple kiss ports. The WG7JKISS rom currently does not support POLLED,CHECKSUM or ACKMODE. The connection between PC/DE and tnc's is an extension of the diode scheme described above for polled bpq connections. The following assumes a PC/DE with 3 tnc's connected. It is easily seen how this extends to more tnc's. (The first part, until marked, describes the connections needed to connect multiple tnc's using the G8BPQ polled kiss eproms) PC pins are marked PC-x, Data Engine pins are marked as DE-x, and the TNC pins are marked C-x. (Signal Ground) GND GND |------ C1-7 PC-7/DE-4 ---|------ C2-7 |------ C3-7 (data going from the PC/DE to all tnc's ) TXD RXD |------ C1-2 PC-2/DE-5 ---|------ C2-2 |------ C3-2 (data from the tnc's to the PC/DE) TXD RXD C1-3 ------>|-- PC-3/DE-6 C2-3 ------>|-- PC-3/DE-6 C3-3 ------>|-- PC-3/DE-6 (The above completes the G8BPQ polled kiss connection) NOTE that on the PC/DE no additional lines are needed! Ground, receive and transmit are it! The rest of the 'bus' scheme is done between the slaves, ie. the tnc's . Next is the additional 'bus' handshaking between the tnc's : (tnc 2 telling 3 and 4 it is sending to the PC/DE) CTS DTR C1-20 ----|-->|-- C2-5 |-->|-- C3-5 (tnc 3 telling 2 and 4 it is sending to the PC/DE) CTS DTR C2-20 ----|-->|-- C1-5 |-->|-- C3-5 (tnc 4 telling 2 and 3 it is sending to the PC/DE) CTS DTR C3-20 ----|-->|-- C1-5 |-->|-- C2-2 ( Note that if you only have one tnc, you can still use the WG7JKISS eprom. Simply only connect the ground, transmit, and receive lines between your tnc and the PC/DE. ie: PC-7/DE-4 <-> C-7 PC-2/DE-5 <-> C-2 PC-3/DE-6 <-> C-3 ) Johan Reinalda, WG7J April 7, 1994 /****************************************************************************/