List of demodulator interfacing modes for JVFAX 6.0: ==================================================== A) asynchroneous data acquisition ================================= Serial port: ============ This is the standard method for data acquisition in JVFAX. Because nearly every PC has a built in serial interface I've chosen this to be to be the standard. In order to keep the demodulator as simple as possible, not the serial data input line RxD is used for data acquisition, but instead the four incoming handshake lines (DCD,RI,CTS and DSR) are used. These four input lines look to the program like a 4 bit parallel port. In order to expand tthe data input capability via these 4 lines to 8 bit, a multiplexing technique is used by the programme. The program fist reads in the 4 most significant data bits with the RTS line set to high. Then, the RTS line is toggled to the low state and after a (very) short delay the lower 4 bits are read. If your interface delivers less than 8 data bits, these must be left (MSB) aligned within the 8 bit word. When using this interface method you must enter the >base< address of your serial port in the address field. Standard port base addresses for serial ports are 03F8h (COM1), 02F8h (COM2), 03E8h (COM3) and 02E8h (COM4). No interrupt from the serial port in used, so the IRQ-field in the configuration screen is meaningless. The data rate field is as well meaningless, unless you're using a demodulator that can be remotely controlled by JVFAX. In such cases, control bytes are sent to the interface via the TXD line with the baud rate specified in the baud rate field. (8N1) Some more 'intelligent' interfaces such as the "EASYFAX" can interpret these control bytes and be set to the appropriate deviation, etc. You should set the "bits" field to the number of significant bits that your interface can actually deliver. To receive SSTV, your interface must either deliver a SSTV-sync pulse information in the two least significant bits of the input data byte (active low) or it must be set to 800 Hz deviation. In the first case, the LSB-SSTV-sync entry in the configuration menu must be set to "yes", else to no. Two bits of data are used for SSTV sync identification to keep the program open for future extensions, especially VIS-code (=vertical interval signalling) interpretation. If you're planning to design a new demodulator that would detect the SSTV sync pulses individually, it should deliver the following bit patterns in bit 0 and 1: Bit 1 0 identifies: ======================== H L 1050-1100 Hz L L 1150-1250 Hz L H 1250-1350 Hz At the moment however, it would be sufficient to set both bits to low whenever a 1200 Hz sync pulse (+/- bandwidth) is present. When LSB-SSTV sync is set to no, the program assumes that your demodulator is set to 800 Hz deviation and will try to identify the sync pulses itself. Serial port/ser =============== Works exactly like the above method with the difference that data is read in serially via the RXD-line of the serial port. In this case, the baud rate field must be set to the correct baud rate of your interface. The interface must deliver data in the 8N1 format, and its baud rate should be set preferably to 57600 in order to achieve a good picture resolution. Comparator: =========== This is by far the easiest way of getting a FAX-signal into the computer. Audio frequency from the receiver is shaped to a rectangular waveform by means of a comparator and fed directly to one handshake line (DSR) of a serial port. Because the computer itself has to do all the signal decoding, this is a very timing sensitive method that will fail on slow computers. Even more, this method in some cases conflicts with some memory managers such as EMM386. (But most interestingly not on every machine) Results obtained with such a 'software demodulation' are from very poor up to excellent. Generally, you can prevent yourself from lots of frustrations when not trying this kind of signal demodulation on a 8088/86 or similarly slow computer. A comparator circuit that could be used for software demodulation might look like this one: RS232 (25-pin) 100 nF 741 o.„. 1N4148 ÚÄÄÄÄÄÄÄ´ÄÄÄÄÄO RTS 4 ³³ 3 ³\ ³7 OÄÄÄÄÄ´ÃÄÄÄÛÄÄÄÄÄÄÄÄÄ´+\³ ³³ ³ ³ \ 6 AF in ³ ³ >ÄÄÄÄÄÄÄÄÄÄÄÄO DSR 6 ³ 2 ³ / OÄÄÄ¿ ³ ÚÄÄÄÄ´-/³ ³ ³ ³ ³/ ³4 ÄÁÄ ÚÁ¿ ³ ÀÄÄÄÄÄÄÄÃÄÄÄÄÄO DTR 20 ³ ³ ÄÁÄ 1N4148 47k ³ ³ ÀÂÙ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄO GND 7 ÄÁÄ ÄÁÄ RTS and DTR are programmed to serve as power supply leads for the comparator, so that no external power supply is needed. The 'bits' field can be set to 7 bits, but in some cases better results are obtained when reducing this value to 6, or 4. The port base address and the IRQ level of the serial port must be enterd. Normally, IRQ is 4 for COM1 or COM3, and 3 for COM2 or COM4. The program will not accept IRQ's above 7. The data rate and baud rate fields are meaningless. HAMCOMM: ======== This is just the same as the comparator interface with the difference that the DTR and RTS lines are toggled to serve as a transmit/receive switch. The HAMCOMM interface is very popular for the reception of RTTY etc. in conjunction with the famous HAMCOMM shareware program. Parallal port: ============== Data is being read from the specified port address periodically. There's no handshake and all the timing is done by the program. Despite the fact that this is by far the easiest way of interfacing, as seen from the demodulator side, the problem is, that normally there's no parallel input port available on PC's. Of course one could use the game port or the 'modem status' port of any serial port, but these all are only capable to deliver a 4-bit information. The optimum solution would be a bidirectional printer port, where the 8 data lines could be used for input. On some computers this is standard. (e.g. on Toshiba laptops, where you can enable this option in the setup, or on some IBM-PS/2 models) Fortunately, most older printer port cards (equipped with standard TTL components) can be modified very easily for data input by simply cutting the output enable pin of the data output latch. No interrupt from the parallel port in used, so the IRQ-field in the configuration screen is meaningless. The baud rate field and the data rate field are as well meaningless. Standard port addresses for printer ports are 0378h (LPT1:), or 0278h (lpt2:). If your interface delivers less than 8 data bits, these must be left (MSB) aligned. You should set the "bits" field to the number of significant bits that your interface can deliver. In order to make a printer port bidirectional, or to prepare it for input, bit 5 of the printer control port is set to high. before reading any data from the data port. Additionally, to get some IBM PS/2 machines set the printer port for bidirectional operation, the follwing operations are performed whenever JVFAX initializes: 020h is output to port 94h, then bit 7 of port 0102h is reset, then 0A0h is output to port 94h. Alternatively on a IBM Model 30, bit 7 of Port 065h is reset. A&M design board, MEFAX: ======================== both are plug in cards which allow for the reception of both AM- and FM-FAX signals. Not all options of these cards are fully supported by the program, especially regarding the A&M-board which allows for a synchroneous buffered data acquisition. Faxellite: ========== is the interface that SSB-electronics supplies with their excellent DIGISAT program. I don't know whether they changed their interface design in the meantime, so it might be that my program will not work with the up-to-date version of this interface. BPF2 (8 bit): ============= is to interface to the BPF2 FM demodulator interface offered by Ingenieurbro Becker & Poth (see below) B) synchroneous data acquisition ================================ While all the above interfaces leave the complete signal timing up to the program's task, the following drivers are to support interfaces that can deliver some kind of pixel clock, besides the data itself. This gives some advantages when, for example, receiving polar orbiting satellites or when replaying tape recordings of such satellite passes. All these drivers haven't been tested yet, and I'm not sure if they will work at all. SYNCHRON SERIAL: ================ works quite the same way as the serial port/ser interfacing with the difference that the program timing is derived from the data rate of the interface. (not the baud rate!!) The correct data rate must be entered in the data rate field of the configuration screen. the baud rate must be at least ten times the data rate, because for every pixel to be read there are 10 bits to be transferred (8 data bits and one stop bit). The data rate itself normally is determined by the signal source, e.g. 2400 or 4800 pixels/s for polar orbiting satellites. Use af an 16550 FIFO UART is strongly recommended. BidPrintPortIRQ: ================ same interfacing method as parallel port (see above). Will only work on a bidirectional printer port (or a printer port modified for data input). Additionally, the ACK-line serves as a data strobe signal which must be fed with the synchroneous clock delivered from the interface (active low). BidPrintPortPoll: ================= same interfacing as parallel port. You need a parallel printer port that is bidirectional or that has been made bidirectional. To use this option your demodulatormust be capable of buffering at least 2 (or better more) complete picture lines. Data is read in aperiodically by the program. The program will read data from the the data port whenever and as long as the ACK line is kept low by the interface. For every byte read, a short pulse is generated on the strobe line. Because no tests have ever been made with this driver (due to the lack of an appropriate interface) I'm in doubt if it will work as it should. If anyone would develop an interface that meets these specifications and would leave it to me for some tests I would try to get the whole thing running. This interfacing technique should enable the use of the JVFAX program under WINDOWS or OS/2, so it could become more and more interesting in the future. List of modulator types that can be selected for JVFAX 6.0: =========================================================== In general, every transmission done by JVFAX has a maximum intensity resolution of 64 levels (6 bit). When outputting digital intensity data via a serial or a parallel port, these bits are right (LSB) aligned within the output byte, just in oppposite to the demodulator seide, where every data is MSB aligned. You can use the following 'modulators': Speaker: ======== audio is generated through the PC's built in speaker. you can use a simple low pass filter to obtain a signal that can be fed to your transmitter's microphone input jack: 100 nF to 220 10k speaker ³³ ÚÄÄÄ¿ ÚÄÄÄ¿ OÄÄÄÄÄ´ÃÄÄ´ ÃÄÛÄ´ ÃÄÛÄÄÄÄÄ¿ ³³ ÀÄÄÄÙ ³ ÀÄÄÄÙ ³ ³ 10k ³ ³ ÚÁ¿ v: depends on your TX's (use the lead) ³ ³ ³ ³ ÚÄÄÄ¿input characteristic (that gives maximum) ³4n7 ³4n7 ³ ³ÄÄÄ´ ÃÄÄÄO (audio output) ÄÁÄ ÄÁÄ ³ ³ ÀÄÄÄÙ to ÄÂÄ ÄÂÄ ³ ³ 1k-100k transmitter ³ ³ ÀÂÙ ÚÄÄÄÄÄÄÄO OÄÄÄ¿ ³ ³ ³ ³ 100 nF means .1 æF ³ ³ ³ ³ ³ 4n7 means .0047 æF GND ÄÁÄ ÄÁÄ ÄÁÄ ÄÁÄ ÄÁÄ Serial audio: ============= works like the above one, but audio is generated on the TxD line of a serial port. You must enter the base assress of your serial port into the address field. Please notice that only a reduced amount (abt. 13) of intessity levels will be generated when using this option, since the baudrate generator of the serial port is used to generate the audio frequency. The problem is, that the input clock frequency for the baud rate generator is only about 115 kHz, which leads to very coarse frequency steps being programmable. You can use the same low pass filtering as above to connect the TxD pin of the serial port to your transmitter's input. Serial port: ============ when having selected this option, no audio is generated by the computer. Instead, the digital intensity information is being output to the TxD line of the serial port (0 for black, 63 for white, etc.) The format 8N1 is used, with the baud rate selected in the baud rate field. Your modulator must parallelize this information, convert it to an analogue signal and feed a voltage controlled audio generator with it. An example modulator that works this way is shown in the file "MODULAT.GIF" Output values above 63 indicate a remote control command to a demodulator being eventually connected to the same port, with the exception of the following: 125: generate 1100 Hz audio ;as SSTV sync signal 126: " 1200 Hz " ;all values are in decimal 127: " 1300 Hz " The differentiation between 1100,1200 and 1300 Hz is for future releases of JVFAX to enable VIS signalling. to simplify things, you can generate a 1200 Hz tone whenever values greater than 63 and less then 128 are being output. If you don't want to transmit in SSTV you can forget about all that 1200 Hz stuff. Parallel port: ============== like above, but data is being output via a parallel port, e.g. a printer port. IBM parallel port 25 pin connector: =================================== /Strobe 1 ÄÄÄO D0 2 ÄÄÄO OÄÄÄ 14 /Auto feed D1 3 ÄÄÄO OÄÄÄ 15 /Fault D2 4 ÄÄÄO OÄÄÄ 16 /Reset D3 5 ÄÄÄO OÄÄÄ 17 /Select in D4 6 ÄÄÄO OÄÄÄ 18 GND D5 7 ÄÄÄO OÄÄÄ 19 GND D6 8 ÄÄÄO OÄÄÄ 20 GND D7 9 ÄÄÄO OÄÄÄ 21 GND /ACK 10 ÄÄÄO OÄÄÄ 22 GND Busy 11 ÄÄÄO OÄÄÄ 23 GND PE 12 ÄÄÄO OÄÄÄ 24 GND Select 13 ÄÄÄO OÄÄÄ 25 GND Signals which are preceeded with a "/" are active low. IBM serial port 25 pin connector: ================================= Prot.GND 1 ÄÄÄO TXD 2 ÄÄÄO OÄÄÄ 14 RXD 3 ÄÄÄO OÄÄÄ 15 RTS 4 ÄÄÄO OÄÄÄ 16 CTS 5 ÄÄÄO OÄÄÄ 17 DSR 6 ÄÄÄO OÄÄÄ 18 GND 7 ÄÄÄO OÄÄÄ 19 DCD 8 ÄÄÄO OÄÄÄ 20 DTR 9 ÄÄÄO OÄÄÄ 21 10 ÄÄÄO OÄÄÄ 22 RI 11 ÄÄÄO OÄÄÄ 23 12 ÄÄÄO OÄÄÄ 24 13 ÄÄÄO OÄÄÄ 25 IBM serial port 9 pin connector: ================================ DCD 1 ÄÄÄO RXD 2 ÄÄÄO OÄÄÄ 6 DSR TXD 3 ÄÄÄO OÄÄÄ 7 RTS DTR 4 ÄÄÄO OÄÄÄ 8 CTS GND 5 ÄÄÄO OÄÄÄ 9 RI Configuration hints on some demodulators ======================================== Here is shown what you should enter in the demodulator/modulator field of the configuration menu when using the following devices: EASYFAX: ======== Demodulator: 8 bits on serial port; Baud rate 57600 Modulator: 6 bits on serial port LSB-SSTV-sync: yes Do not use the "serial port/ser" option for demodulator. This would work too, but using the "serial port" interfacing gives better results. Port addresses depend on what serial port your Easyfax is connected to. HARI-FAX: ========= Demodulator: 8 bits on serial port/ser. Baud rate 38400 LSB-SSTV-sync: no Modulator: use Speaker or serial audio with the circuit described above Port address for "demodulator" depends on what serial port your HARI-FAX is connected to. DL5JM demodulator/modulator: ============================ Demodulator: 7 bits on serial port Baud rate 38400 LSB-SSTV-sync: no Modulator: 6 bits on serial port Port addresses depend on what serial port your demodulator/ modulator is connected to. WRAASE MR-9202: =============== Demodulator: 8 bits on serial port; Baud rate: doesn' matter LSB-SSTV-sync: doesn't matter Modulator: use Speaker or serial audio with the circuit described above Port address for "demodulator" depends on what serial port your WRAASE RECEIVER is connected to. NSK-demodulator: ================ Demodulator: 7 bits on serial port Baud rate: doesn't matter LSB-SSTV-sync: no Modulator: use Speaker or serial audio with the circuit described above Port address for "demodulator" depends on what serial port your NSK demodulator is connected to. BPF2 (8 bit version): ===================== Demodulator: 7 bits on BPF 2 (8 bit) Baud rate 57600 LSB-SSTV-sync: no Modulator: use Speaker or serial audio with the circuit described above Port address for "demodulator" depends on what serial port your BPF 2 is connected to. Becker & Poth deliver a "8 bit" version of the BPF 2, specially designed for use with JVFAX. There is a "9 bit" version of the BPF 2, too, which will currently not work with JVFAX. A short list of (german) demodulator/modulator suppliers known to me: ===================================================================== This list will certainly be incomplete, and the ordering of the addresses will not tell anything about the quality of the interfaces being offered. All these interfaces should co-operate with JVFAX, but in no case I can guarantee for that. PCBs and kits from DL5JM: Achim Kndahl, DL5JM in Wetter, has PCBs and kits for both a 16 grey scale FM and a 64 grey scale AM/FM interface as well as for a modulator circuit. His address: Achim Kndahl DL5JM Grnewalder Str. 21 58300 Wetter Tel.: 02335/60572 "Easyfax" kit from Ulrich Bangert, DF6JB: Ulrich developed a superb æP-based transmit/recieve interface that is easy to assemble and that needs absolutely no alignment. It can handle up to 256 intensity levels, AM and FM FAX as well as SSTV. The interface is offered as a complete kit including a preassembled case and can be easily updated by EPROM exchange. Ulrichs address: Ulrich Bangert DF6JB Weddigenstr. 28 42389 Wuppertal Tel.: 0202/602537 "MMI" by C-Data: This interface should co-operate with JVFAX, too. However, C-data offers a FAX program of their own for this interface. Address: C-Data Hohenwarter Str. 6 85276 Pfaffenhofen Tel.: 08441/6145 "DK8JV-FAX-Konverter" by NSK: A 64 grey scale demodulator for AM and FM FAX Address: Ingenieurbro fr Satellitentechnik Dipl.-Ing. B. Ewert Mhlenweg 11 24217 Stakendorf Tel.: 04344/6758 "Meteosat-Empfangs-Set" Complete rig for the reception of geostationary weather satellites such as Meteosat, including receiver, antenna and interface. Available from Fa. Bogerfunk Funkanlagen GmbH Grundesch 15 88326 Aulendorf Tel.: 07525/451 "WX-Satelliten-Empf„nger MR-9202" A 137-Mhz receiver for polar orbiting satellites with a built-in interface. Available from: Volker Wraase Elektronik Kronsberg 10 24161 Altenholz Tel.: 0431/32528 "BPF 2" A æC controlled subminiature FM demodulator is supplied by Ingenieurbro Becker & Poth GmbH Dsselthaler Str. 49 40211 Dsseldorf Tel: 0211/9061340 "HARI-FAX" A æC controlled AM/FM fax demodulator that can deliver up to 256 intensity levels. Available as kit or as assembled board. Fa. Siegfried Hari Spessartstr. 80 63448 Seligenstadt Both the Easyfax and the Hari-Fax interface support remote control of the interface by the JVFAX program.