Navtex is a service intended for ships at sea
and carries textual navigational warnings, weather forecasts and similar
information.
Some sources of information about Navtex are |
The unit is built on 0.1 inch stripboard mounted in a Verobox.
View/Download JPEG image: small(195KB) medium(496KB) large(1.4MB)
The radio receiver portion consists of a tuned 518kHz RF amplifier using two J310 JFETs feeding a mixer and tuned 18kHz IF amplifier and FM demodulator based on a MC3357 IC. The local oscillator is tuned by a 500kHz ceramic resonator.
The coil cans with the red painted adjustable ferrite cups visible on top are for the 518kHz RF tuned circuits, the white ones are for the 18kHz tuned circuits for the IF and FM demodulator. You can see the pairs of 3300pF polystyrene capacitors near each white topped coil can which make 6600pF which tunes them to around 18kHz.
Between the RF circuitry and IF coils is the MC3357 which has a ceramic decoupling
capacitor laying over the top of it. It's soldered directly into the
stripboard to minimize possibility of instability.
The small orange rectangular thing to the lower right of the MC3357 is the 500kHz
ceramic resonator.
Further down, working left to right are five more ICs fitted in turned pin IC sockets:
1) A LM358 dual op-amp. One half of this buffers the FM demodulator output from the MC3357 and drives a low pass RC filter. The other half acts as a comparator and compares the unfiltered output of the buffer with the filtered output to produce a fully demodulated 100 bits per second serial stream. This is intended to cancel any drift in the output of the FM demodulator and only works because the SITOR-B protocol used by Navtex has a fixed ratio of 1 bits to 0 bits over each transmitted character including the idle characters sent continuously between messages. The comparator output feeds into 2) below.
2) An Hitachi HD637B01V0C microprocessor/microcontroller.
This is an Hitachi CMOS version of the Motorola 6801. It includes 4KB of
EPROM, 192 bytes of RAM, a UART and a slightly expanded instruction set.
To the left of the top of the HD637B01V0C is a vertically mounted 4.9152MHz crystal and further to the left a green trimmer enables the crystal oscillator to be trimmed so that a software real time clock keeps good time.
3) A 32K static RAM (I used a NEC D43256C but it's equivalent to the more well known HM62256).
4) A 74HCT273 octal latch.
5) A 74HC14 hex inverter. Only four of the inverters are used and they form a crude way of interfacing to a RS232 port but using 0V and 5V instead of the normal -12V and +12V. This is usually accepted by the RS232 port on a terminal or PC.
Further to the right is a 7805 regulator which provides regulated 5V DC to power everything.
I am able to put the processor and other digital circuitry near the analogue radio section because the main address bus and data bus with lots of high speed activity and everything connected to them (ROM, RAM, ports) are all completely internal to the HD637B01V0C chip. The external 32K RAM is connected to port pins on the HD637B01V0C and the software is written so that minimal activity is needed on those pins as the software runs.
The connectors at the bottom are left to right:
1) A 3.5mm Jack socket for aerial and earth (or ground plane) connection. I know this is not a proper RF connector but this isn't VHF or even HF, just MF and the aerial is typically just a random length of wire.
2) A 25 pin D connector for the asynchronous serial input and output to a computer terminal, or printer at 9600 bits per second.
3) A 2.1mm power connector for 8-15VDC to power the unit. Connected with red and black leads to the 7805 voltage regulator. A smoothing capacitor is connected directly to the connector.
The software I wrote to go in the HD637B01V0C was written in assembler on a CP/M 80 computer I owned at the time. I assembled it with a Motorola 6800 assembler written in C which was available from the archives of the C Users group CUG. I modified the assembler to include the extra 6801/6803 instructions (but not the 6301/6303 instructions). Since then I have modified and compiled the assembler to make MSDOS and Win32 command line versions.
As with the FEC program on my software page the method used to sync to the SITOR-B bit stream is largely based on descriptions in "The Radio Hackers Code Book" by George Sassoon. Published by Duckworth. 1986. ISBN 0 7156 2068 1
I wrote two versions of the software:
1) Intended for my own use in Navtex DXing (seeing what very distant Navtex
stations could be received).
It just buffers up everything received using the 32K RAM chip as a kind of
circular buffer. Timestamps are also stored in the buffer so that when
reviewing what has been received one can tell what time it was received.
It was written to be used with a terminal emulator capable of capturing to a log file which could be viewed in detail in a viewer
or editor.
There is a command line interface that accepts simple commands to do things
like set and check the software real time clock, clear the buffer, print the
buffer, or view text as it is received.
2) The second version was a bit of an experiment. It was intended to be the beginning of what would might be desirable for an actual in ship Navtex receiver unit. It was designed to be connected directly to a serial printer and included a database of message ids of messages recently received which it used to automatically illuminate duplicates. It uses a large hash table stored in the external 32K RAM.
Both versions were written using a small co-operative multitasking system I wrote for this project.
The source files (written in 6801 assembler) are available for download here:
NAVTEX-1989.zip
(45KB, ZIP file).
The original source files are the ones ending .68H but I've also included .TXT files
with the tabs expanded to spaces and without the CP/M 80 style CTRL/Z
characters at the end of the file.
1) Modify the software (both versions) and add an LED to indicate when the
software is locked on to a valid SITOR-B signal.
I've started work on this.
20th February 2012: Here's what I've coded for this NAVTEX-2012-SYNCLED.zip.
(46KB, ZIP file)
It's seems to be working well and I've fitted two LEDs to the front panel a
red one for sync and a green one that just shows that power is on.
2) Improve the multi-tasking system to a full pre-emptive system. This wouldn't add any extra functionality in this case other than that the microprocessor could be put into it's low power mode when no tasks are runable, rather than the present situation where control is just passed back and forth until a task has some work to do. There might not be enough ROM space to do this.
3) Swap the MC3357 for the more recent MC3372 which includes a logarithmic signal strength meter output which would make alignment of the various tuned circuits much easier. I did try this briefly once but it didn't seem to work and I noted that the 500kHz oscillator was off frequency by around 2kHz so some experimentation would be needed to work out what was going on. A more stable 500kHz source would be a good idea anyway since the frequency stability of the 500kHz ceramic resonator is only barely adequate. One could change the frequency a little to match what standard parts were available.
4) Do something about the fact that at present all memory is lost and the time clock is reset if you lose power.
5) Improve the second version software, in some as yet undecided way, to produce something that would be more useful at sea.
6) Add extra hardware, perhaps an LCD display and a small keyboard to again produce something that would be more useful at sea.
Click this advert, and sign up and you and Brian should both get a gift card or a free month.
Brian uses this plan: