We have provided some computer software to make the Message Machine useful. Some familiarity with Python usage is assumed.
Installation instructions (Windows):
- Download and install Python 2.7 (32-bit) if not already installed.
(Python 2.6 or 2.7 is required; "pyserial" will not work correctly on older versions, and "feedparser" is not supported in 3.x versions.)
- Install the Python module "setuptools" from the Python Package Index. (Needed by other installers. Has a Windows installer.)
- Install the Python module "feedparser" from Google Code. (Unpack ZiP file, run "setup.py install")
- Install the Python module "pyserial" from SourceForge. (Windows installer, but 32-bit only)
- Install the Python module "pygooglevoice" from Google Code. (Requires 7Zip to unpack the .tar.gz file. Then "setup.py install")
- Download "BaudotRSS" from SourceForge. (ZIP file, put in your chosen directory for this program.)
- Run: python baudotrss.py --help
This will check the installation and display the available options.
Command line format:
python baudotrss.py [options] [RSS feed URLs or .cfg files]
||Show this help message and exit.
||Verbose mode - recommended when first trying the program
||Displays nothing on the console unless there are major errors.
||Half-duplex ("loop"). Stops echoing of typed input.
||Prints "RYRYRYRY"... continously, with a CR LF every 72 characters, for testing.
||Prints "ABCDEFG"... continously, for testing.
It's helpful to make a ".sh" or ".bat" file with the appropriate command line and options for your situation.
In addition, a configuration file is required. There is a default configuration file "configdefault.cfg", which is always read by the program. Read that file for instructions on how to configure the system. Additional ".cfg" files can be added on the command line, and will override matching entries in the default configuration file. Below are the most important configuration parameters
# Serial port - either /dev/usbxxx on Linux, or number (0=COM1:, etc) on Windows
# Baud rate - Our USB interface, when set to 600 baud, runs at 45 baud.
# Keyboard - true if keyboard present on TTY.
# LF - if machine does not support hardware LF on CR.
# halfduplex - half duplex
# charset - USTTY, ITA2, or FRACTIONS
This section contains the most important parameters, the ones which describe the Teletype hardware.
The port and baud parameters are the most important. Until they are right, nothing will work. On Windows, port 0 is COM1, port 1 is COM2, port 2 is COM3, etc. If you're using a USB to serial converter, you may have to look at the Windows device list to see what COM port number it was assigned. COM3 is a good first guess, so try using "2". On Linux, the full device path is used.
If the Teletype is a Receive Only machine (no keyboard) set keyboard to False. You can still receive news and SMS messages without a keyboard.
The baud parameter is 45 for a classic desktop-type serial port when talking to a 60-speed Teletype machine from Windows. If you're using our suggested USB to serial converter, set up the way we suggest, use 600 as the baud rate. The USB to serial converter has to be reprogrammed to go at 45 baud when told to go at 600 baud. This is necessary because most modern USB to serial converters won't go slower than 300 baud without reprogramming.
If you have lines typing on top of each other, your machine does not have hardware LF on CR, so set lf to True. If everything is double spaced, set it to False.
If the keyboard and printer are wired so that there's a direct connection between the two (half duplex mode), set halfduplex to True. If not, use False. Full duplex mode (False) works better. In half duplex mode, the computer can send while you're typing and produce garble.
The character sets available are USTTY (most AT&T and military teletypes), ITA2 (most Western Union machines), or FRACTIONS (machines used in finance, with ⅛, ¼, etc.). The letters are the same for all character sets; all the differences are in FIGS shift. In FRACTIONS mode, some substitutions, such as "# # #" for ".", are made for unavailable characters.
|If you have a Google Voice account which accepts SMS messages, you can have baudotrss poll it and print incoming SMS messages on the Teletype. You can also send SMS messages from the Teletype keyboard. This is optional. We do not guarantee that this feature will continue to work if Google changes Google Voice.
|News feeds. Any RSS feed can be followed. Multiple feeds can be read; just give each one a different name, such as "news1", "news2", etc.
city: City of San Jose
|Weather, from US National Weather Service.
Fill in state and city. State and city lookups use a USGS database with every named civic unit in the US but may pick an obscure one when there are multiple matches in the state.
||See the "configdefault.cfg" file for other parameters you can set to customize the output format.
After installing the program, create your own configuration file, and start the program with
python baudotrss.py -v --ryrypat yourconfigfilename.cfg
This will print "RYRY..." etc., and allows checking out mechanical, electrical, and configuration problems. The port and baud parameters have to be right for this to work, but nothing else matters. Once that's working, remove the --ryrypat to operate normally.
Any RSS feed, including Twitter feeds and news feeds, can be followed by putting the appropriate URL on the command line. Multiple URLs are allowed. Each feed will be polled every 90 seconds and new items will be printed. If no RSS feeds are specified, the Reuters World News feed will be used.
The program runs until terminated from the computer.
The program will start and stop the Teletype motor only if the DTR signal from the serial port controls the motor. Our hardware interface does this, but this is not a standard Teletype feature.
With a keyboard, the program is interactive. At startup, the program will print
N, W, S, O, OR CR:
"N": print news, then wait for traffic and stop motor.
"W": print weather (currently, for San Francisco only.)
"S" : Send SMS message
"O" Off - stop polling for traffic and stop motor.
"CR": Wait for traffic and stop motor.
Anything else produces a long prompt as a hint:
TYPE N FOR NEWS, W FOR WEATHER, S TO SEND, O FOR OFF, CR TO WAIT:
The last message printed before the machine goes idle will be either "WAITING..." or "OFF." When "waiting", the program is polling its RSS and SMS feeds for new traffic, and will turn on the machine and print.
Sending and receiving SMS messages requires a Google Voice account. The passwords for the account must be specified on the command line as above. It is suggested that the Google Voice account used for this purpose not be used for other purposes, as the program will delete received SMS messages once they have been printed.
Typing "S" at the prompt will produce the prompt:
and a phone number of a cell phone should be typed in. The next prompt is simply
at which text can be typed. Text can be multiple lines, and there is no length limit. The Teletype's "blank key" can be used as a backspace; the Teletype will print "\" followed by the character deleted. The machine itself, of course, cannot backspace. A blank line terminates and sends the message, and "DONE" will be printed.
Typing "." at the TO NO: prompt will use the phone number from the last SMS message received, to make conversation easier.
Messages sent to yourself are ignored; only incoming messages from other phone numbers will be printed.
Sending a BREAK will interrupt whatever is going on and return to the N, W, S, O, OR CR: prompt.
December 31, 2015