Electronics Is Fun GURUMODEM User manual

GURUMODEM
RS-232 Wifi Modem
“The Gold Standard in RS-232 WiFi Communications”
From Electronics Is Fun
www.ElectronicsIsFun.com
Febuary 23, 2019

TABLE OF
CONTENTS
GURUMODEM INTRODUCTION ........................................................ 1
Features..................................................................................................................................................2
Getting Started......................................................................................................................................3
Using the GuruModem Card..............................................................................................................4
AT+CONFIG usage............................................................................................................................7
AT+CONFIG Menu options.............................................................................................................8
BBS SUB MENU options...................................................................................................................8
AT+Shell usage.....................................................................................................................................9
Command usage: ............................................................................................................................... 10
Communications................................................................................................................................ 12
Advanced topics................................................................................................................................. 13
FTDI Cable Download ........................................................................................................... 13
Over the Air Download .......................................................................................................... 15
AT Command Reference.................................................................................................................. 16
Schematics .......................................................................................................................................... 24
Board Layout...................................................................................................................................... 29
GLOSSARY............................................................................................... 30

INDEX...................................................................................................... 30

1
GURUMODEM
INTRODUCTION
The GuruModem adds wireless RS-232 modem
communications capability to any microcomputer
with a 9 or 25 pin RS-232 compatible serial port. It
provides wireless connectivity to any 802.11g
network. Unlike other RS-232 WiFI modems, the
GuruModem provides full modem control without
the need for jumpers or switches. Users can connect
to the internet using standard communications
software or custom built serial communications
software. Additionally, the user can also connect to
other computers and BBSs over the Internet or directly to other computers using TelNet.
The GuruModem can be programmed using AT commands that are similar to the Hayes
modem command set used with phone line modems.
The GuruModem also provides on-board storage via a micro SDCARD. The onboard
firmware provides advanced commands for configuration, data storage and retrieval along
with a comprehensive shell. The shell includes commands for file manipulation, FTP,
Xmodem, Zmodem communications.

2
The GuruModem connects easily to the computer’s serial port either directly or over a serial
cable. Power must be supplied to the board from a +5V power adapter with a micro USB
connector (similar to the power adapters used for the Raspberry Pi). The computer can
communicate with the GuruModem over a standard RS-232 serial interface at speeds up to
230.4K baud* with the appropriate software and cable. The maximum speed is dependent
on the computer hardware and software.
Some computers may use a different connector such as a DB-9 or a female DB-25
connector. In these cases, an adapter and/or a gender changer will be required.
FEATURES
• Full standard RS-232 interface with Modem Control
• Integrated WiFi and Bluetooth ESP32 module
• Onboard mini-SD-CARD interface
• On-board low dropout regulator
• Over The Air firmware updating
• Debug interface (3.3V TTL signaling)
• Built shell (with DOS/Linux type commands)
• Support for multiple protocols
• Support for Xmodem and Zmodem transfers.
• Serial port speeds up to 230.4K baud
This manual provides information on how to install and use the GuruModem.
It can be downloaded from:
http://ElectronicsIsFun.com
The GETTING STARTED SECTION provides details on how to connect the
GuruModem to your computer. This section assumes that the user will provide a serial cable
and/or adapter and a suitable power supply.

3
System Requirements
1. A microcomputer with an available RS-232 serial port
2. Serial communications software (User supplied).
3. GuruModem card.
4. +5V power Adapter with micro-USB connector (User supplied).
5. Micro SD-CARD (User supplied).
6. Cable and/or adapter/gender changer. (as required)
GETTING STARTED
Installing the GuruModem card simple and only takes a few minutes.
1. Make sure the computer is off.
2. Find the RS-232 serial port on the rear of the computer.
3. If your computer has a male DB-25 serial connector, you may install the GuruModem directly.
Otherwise, you may need to use a serial cable, adapter, etc.
4. Some computers require using the appropriate serial cable, adapters, etc, Connect one end of the cable
to the serial port on the computer. (Note: On most computers a cable and/or adapters are not
required.)
5. Connect the other end of the cable to the DB-25 connector on the GuruModem.
6. Install a FAT32 formatted mini-SDCARD.
7. Connect the +5V power adapter to the mini USB connector on the GuruModem.
8. Plug the power adapter to an AC power.
9. Turn the system power on.
The GuruModem is now ready to use. It can be used with off the shelf software. Or, user
provided communication software. The GuruModem defaults to 1200 baud. Configure your
software appropriately. Using the “atb” command, the baud rate can be changed later.

4
NOTE: Additional information is required for configuration. For example, you will
need to provide your network SSID (service set identifier) and password.
For initial configuration, the computer must be running serial communications software
configured for serial settings of 1200 baud, 8, N,1.
To configure the Wifi, issue the following command and follow the onscreen instructions.
at+config
Look at the AT+CONFIG section of this document for more details.
Additional commands are available using the AT command set.
USING THE GURUMODEM CARD
Using a communications program in Terminal mode, you can issue commands to the
GuruModem that allow you to change parameters and configuration options. The
AT+CONFIG command provides a series of menus to configure the GuruModem quickly.
In this section we describes some of the more common AT commands and how they can be
used to get the most out of the GuruModem card. Additional commands can be found in
the AT Command Reference
Set the baud rate
The default baud rate is set to 1200 baud. If you want to change this, you need to
understand that once the baud rate is changed, characters will no longer be displayed
properly. This can be corrected by changing the settings in your communications
program after you have set a new baud rate. The baud rate can be set with the
following command.
atb9600
This command will change the baud rate to 9600 baud. Other baud rates are
available. Here is a list of the baud rates available:
1200, 2400, 4800, 9600, …, 115200, 230400.

5
Configuring the SSID and passward for your network
Start the communications program and issue the following command:
atw”your SSID, your password”
Saving your SSID and password
Since most users frequently connect to the same WiFi network, it is best to save the
SSID and password that has been configured. Otherwise, the setting will be lost
when you power down the system.
at&w
Once you issue this command, the GuruModem card will remember the SSID and
password to your network.
PETSCII vs. ASCII
The GuruModem card can understand PETSCII (used by commodore computers)
and ASCII. However, under certain situations sending PETSCII to the GuruModem
can result in an error. This occurs because the GuruModem can only interpret
commands in ASCII. For example, when setting the SSID and password, if the
computer is in commodore graphics (PETSCII) mode an error will be generated. It
is for this reason that the following command was created specifically for use with
commodore computers.
atwp”your SSID, your password”
For non-commodore computers, the user should only use ASCII mode.
Getting help
After you configure the GuruModem, you can display help information by issuing
the following command.
at&h

6
Note: this command will only work if you have configured your SSID and password.
This is because the command will access the help information from the internet.
After this help has been access once, it will remain resident. Issuing the command
again will display a local copy.
Display available hotspots/networks
You can scan for available networks with the GuruModem card by issuing the
following command.
atw
This will display the available hotspots along with their signal strength. This
command is helpful when trying to connect to a different network.
Note: this command only works if you have already configured your SSID and
password.
Reset to factory settings
You can reset the GuruModem card back to factory setting by issuing the following
command.
at&f
This command will erase any settings that were configured by the user back to the
default settings that were set at the factory.
BBS’s
With the GuruModem card, you can access BBS’s all over the world. Access is simple, just
find your favorite BBS. Then use the ATD command to connect. The following pages are
resources for BBS listings on the Internet.
http://www.bbscorner.com/usersinfo/bbslists.htm
https://www.telnetbbsguide.com/

7
The following site contains a list of BBS’s dedicated to the commodore computers. To
access a BBS, you need the name of the website and the port number.
http://cbbsoutpost.servebbs.com/
For example, for CottonWood BBS, the website is cottonwoodbbs.dyndns.org and the port
number is 6502. So, to connect, you would issue the following command:
atd”cottonwoodbbs.dyndns.org:6502”
Most internet connected BBS’s will provide a telnet address. Telnet addresses are in the form
of:
Ipaddress:port
In some cases, the telnet address is the name/URL of the BBS. Also, some telnet address do
not require a port number.
AT+CONFIG USAGE
The easiest way to configure the GuruModem is to issue the AT+CONFIG command. This
command provides features to configure GuruModem using a clear and concise menu. Some
of the meu options have submenus to make addition selections.
To use this menu, type the menu name ([WIFI], [FLOW], [ECHO], [BBS],
[PETSCII], [ADD]) and enter. You will be prompted for your desired setting.
Main Menu
[HOST] name:
[WIFI] connection: Not connected
[FLOW] control: DISABLED
[ECHO] keystrokes: ON
[BBS] host: OFF
[PETSCII] translation: OFF
[ADD] new phonebook entry

8
AT+CONFIG MENU OPTIONS
[HOST]
Set the host name of your machine.
[WIFI]
Set the wifi ssid and password.
[FLOW]
Setup flow control for XON/XOFF, RTS/CTS, and DISABLE.
[ECHO]
Set character echo keystrokes ON or OFF. Modem will echo characters if ON. Otherwise
no characters will be echoed.
[BBS]
This option is used to configure the BBS Host mode. A BBS menu will be displayed to allow
the user to configure host mode parameters. When the BBS option is issued a submenu will
be displayed. Typing ENABLE will show the submenu to configure the BBS parameters
[HOST], [PETSCII], [TELNET], [ECHO], [FLOW], and [DISABLE].
This menu allows the user to setup the modem to accept an internet connection. This is like
a modem that is in auto-answer mode. When an attempt is made to connect to the
GuruModem from the Internet on a specific port, the modem will accept the connection.
BBS SUB MENU OPTIONS
[HOST]
This option allows the listener port number to be entered for BBS listener mode..
[PETSCII]
Allows PETSCII translation to be turned ON or OFF for BBS listener mode.. This
option is a toggle.
[TELNET]

9
Controls Telnet translation ON or OFF for BBS listener mode.. This option is a
toggle.
[ECHO]
Controls local echo ON or OFF for BBS listener mode.. This option is a toggle.
[FLOW]
Controls flow control XON/XOFF, RTS/CTS and DISABLED for BBS listener
mode. This option is a toggle.
[DISABLE]
Disables the BBS host listener mode.
[PETSCII]
This option controls the PETSCII character translation. When this option is ON, PETSCII
characters will be translated from ASCII and displayed. It should only be ON for
Commodore computers or Commodore emulators. It is seldom need because most
computers use ASCII.
[ADD]
Add a new entry to the phonebook to allow quick connections over the internet to BBSes or
Telnet servers. With the ADD option the user can enter a number and the ipaddress:port of
a BBS or server to be accessed. This creates a quick dial number that can be used to quickly
connect to other machines. Some older communications software require a number to be
dialed instead of accepting the ipaddress:port. Once you enter a number, you will be
prompted to enter the ipaddress:port to be saved. Then the user will be prompted with a
submenu to setup the parameters for that connection including [PETSCII], [TELNET],
[ECHO], and [FLOW].
AT+SHELL USAGE
The GuruModem provides local storage. The shell supports commands for manipulating
files on the SDCARD. It also provided tools for performing file transfers over the internet

10
and to/from the local computer over the serial port. For a list of available commands, type
“help” or “?”
COMMAND USAGE:
When issuing commands in the shell, some commands do not require parameters and others
do. Parameters in square brackets “[ ]”are optional. The “|” shows mutually exclusive
parameters. For example [/][path]|[..] either the “path” or “..” can be used with cd.
Commands:
ls/dir/list/$ [-r] [/][path] - List files
cd [/][path]|[..] - Change to new directory
md/mkdir/makedir [/][path] - Create a new directory
rd/rmdir/deletedir [/][path] - Delete a directory
rm/del/delete [-r] [/][path]filename - Delete a file
cp/copy [-r] [-f] [/][path]filename [/][path]filename - Copy
file(s)
ren/rename [/][path]filename [/][path]filename - Rename a
file
mv/move [-f] [/][path]filename [/][path]filename - Move
file(s)
cat/type [/][path]filename - View a file(s)
df/free/info - Show space remaining
xget/zget [/][path]filename - Download a file
xput/zput [/][path]filename - Upload a file
wget [http://url] [/][path] - Download url to file
fget ftp://user:password@url/[path]filename
[/][path]/filename - FTP get file

11
fput [/][path]filename ftp://user:pass@url - FTP put file
fdir ftp://user:password@url[path] - ftp url dir
exit/quit/x/endshell - Quit to command mode
Examples of command usage:
Each of the commands available in the shell are similar to commands available in operating
systems like DOS, Windows, and Unix/Linux. Some require parameters that include paths,
filenames and switches like “-r” and –f’.
Getting a file using fget, the user must specify the ipaddress or URL, file source address, and
file destination. If the connection to the ftp server is not anonymous, the user name and
password must also be specified.
The full path along with the filename must be specified as shown below.
ls –r
ls games/action/arcade
cd games
cd ..
mkdir games/strategy
deletedir games/text_adventure
rm –r homework
fget ftp://192.168.0.6/info.zip /info.zip
fput elfish.pdf ftp://192.168.0.6/elfish1.pdf
fdir ftp://192.168.0.11/DataDirectory

12
COMMUNICATIONS
The GuruModem is capable of communicating with other computers on a local network or
across the Internet. The protocol available depend on the types of communications software
provided by the user. Some popular protocols available include but are not limited to the
following list.
XMODEM
YMODEM
ZMODEM
FTP
IRC
TelNet
Etc.

13
ADVANCED TOPICS
The GuruModem card is fully programmable. The tools used to create the firmware include
the Arduino IDE and the ESP32 libraries. The card can be programmed (i.e. firmware
downloaded) by using an FTDI cable or over the air using WiFi.
Developing new firmware or modifying the current firmware will be left as an exercise for
the user. However, this section will provide details on what is required to configure the
hardware and how to download a new version of the firmware.
The README file on the github page provides details on how to configure the
development environment to build the firmware.
The repository for the firmware source is available at:
https://github.com/bozimmerman/Zimodem
The GuruModem card is based on the ESP-WROOM-32 by Expressif. This is a feature rich
WiFI module that contains 4MB of flash onboard. This flash can be updated using the
Arduino IDE. It can also be updated over the air using an AT command. To perform the
updates, the following instructions are provided.
FTDI Cable Download
You must install a 6 pin header in location P1
to connect the FTDI cable. Pin 1 of P1 is
indicated by a square pad with a white box
around it. Pin 1 of the FTDI cable will be the
end with the black wire. The FTDI cable must
be of type TTL-234X-3V3. Using a different
cable or installing the cable incorrectly, will
damage the GuruModem.

14
To perform the firmware update from a batch file. Create a batch file contains the following
line: (NOTE: The Following is a single line)
C:\Users\Carlo\AppData\Local\Arduino15\packages\esp32\tools\esptool\2.3.1/esptool.exe --chip
esp32 --port COM5 --baud 921600 --before default_reset --after hard_reset write_flash -z --
flash_mode dio --flash_freq 80m --flash_size detect 0xe000
D:\Applications\Data\KiCAD\KiCadProjects\GuruModem\firmware\boot_app0.bin 0x1000
D:\Applications\Data\KiCAD\KiCadProjects\GuruModem\firmware\bootloader_qio_80m.bin 0x10000
D:\Applications\Data\KiCAD\KiCadProjects\GuruModem\firmware\zimodem.ino.bin 0x8000
D:\Applications\Data\KiCAD\KiCadProjects\GuruModem\firmware\zimodem.ino.partitions.bin
The paths will need to be changed on your system based on where your Arduino
environment, and your firmware files are stored.
Three files are supplied with the Arduino IDE. esptool.exe boot_app0.bin
bootloader_qio_80m.bin
Two files will be generated from your build of the firmware. zimodem.ino.bin
zimodem.ino.partitions.bin
The FTDI model TTL-232R-3.3V cable is required.
Configuring the hardware for firmware downloading
The GuruModem card must be connected to the computer over an FTDI cable attached to
P1. +5 V must be applied to the GuruModem before programming. Attaching the FTDI
cable to the card incorrectly may result in damage.
1. Build or acquire the firmware file you wish to download to the GuruModem card.
2. Attach the FTDI cable to P1 on the GuruModem card.
3. Connect the +5 V power to the micro USB connector J2.
4. Press and hold the PROG button (SW1).
5. Press and hold the RESET button(SW2).
6. Release the RESET button.
7. Release the PROG button.
8. Start the firmware download.
9. When the download is complete press the RESET button.
10. Disconnect the FTDI cable and power.

15
Over the Air Download
To perform the over the air download, the GuruModem card must be connected to your
computer, powered-up, and your communications program must be running. The default
baud rate is 1200. If you have changes the baud rate of your modem, you must configure
your software to run at the same baud rate.
Issuing the following command will perform the update from the default server.
AT&U6502
Will update the firmware from the
home page on the web.
AT&U=x
Will update the firmware from the
web to custom version x.
The over the air update restricts the size of the update to 512K bytes or less. If you are
building a custom firmware that is larger, then the FTDI Cable download method must be
used.

16
AT COMMAND REFERENCE
Command Set:
-----------
The command set is as follows (not case sensitive):
COMMAND
Description
ATZ
Closes all open socket connections
(preserving the Access Point connection),
stops all listeners, and resets the state
of the Command processor to the saved
configuration, preserving the current baud
rate and Wi-Fi connection.
ATI
Shows the startup banner, including Wi-Fi
connection information.
ATI0
same as ATI
ATI1
Shows the current common variable settings,
common 'S' registers.
ATI2
Shows the modem's current IP address
ATI3
Shows the modem's current Wireless Router
connection
ATI4
Shows only the firmware current version
ATI5
Shows all the current variable settings,
all 'S' registers.
ATA
If a server listener has generated a RING,
then ATA will switch the last rung
connection to Stream mode (see ATD).
ATA/ : Repeats the previous command (no
idea why...)
ATAn
Causes the modem to create a server
listening on port n. When a connection is
received, the terminal will generate 1 or
more RINGs according to the ATS0 register,
followed by a normal CONNECT response. At
this point, all other commands related to
connections may be used normally, unless
ATS41 is > 0, in which case incoming
connections are automatically sent to
Stream mode as per ATD or ATA. Listeners
are listed along with other connections
using ATC0.
ATAPn"[HOSTNAME]:[PORT]"
Adding a P modifier causes all incoming
connection input to be translated to
PETSCII
ATATn"[HOSTNAME]:[PORT]"
Adding a T modifier causes connection
streaming input to be translated per TELNET
when the changed to Stream mode

17
COMMAND
Description
ATAEn"[HOSTNAME]:[PORT]"
Adding a E modifier causes connection
terminal echo to be enabled when the
changed to Stream mode
ATAXn"[HOSTNAME]:[PORT]"
Adding a X modifier causes connection
XON/XOFF flow control to be enabled when
the changed to Stream mode
ATN0
Shuts down all listeners, leaving client
connections open
ATNn : if n > 0 then same as ATAn
ATE0
Turns serial terminal echo off for command
mode.
ATE1
Turns serial terminal echo on for command
mode.
ATV0
Turns off verbose responses mode (Uses
Terse Numeric response mode)
ATV1
Turns on verbose responses mode (Uses Word
response mode)
ATX0
Turns off extended response codes
(1/CONNECT instead of 5/CONNECT 2, etc..)
ATX1
Turns on extended response codes (5/CONNECT
2 instead of 1/CONNECT, etc..)
ATF0
Turns on rts/cts flow control.
ATF1
Turns on xon/xoff flow control.
ATF2
Turns on xon/xoff flow control, sets XON
mode (if necessary), and, in command mode,
will immediately go to XOFF when a single
connection packet is received. This is very
useful when the client wants to ensure it
only receives one packet to process. You
can think of this as an alternative way to
use xon/xoff by having XOFF automatic
between packets.
ATF3
Similar to ATF2 except that the default is
XOFF, and, in command mode, a XON code from
the user will immediately trigger either an
empty packet response [ 0 0 0 ], or a real
packet if one is available. After this, as
in ATF2, XOFF is automatically set.
ATF4 : Turns off flow control for command
mode
ATQ0
Turns off quiet mode (Sends response codes)
ATQ1
Turns on quiet mode (Stops sending response
codes)
ATR0
Suppresses linefeed (\n $0a) in end of
lines. Will only send carriage return (\r
$0d).
Table of contents
Popular Modem manuals by other brands

Huawei
Huawei EchoLife HG510 installation guide

Hiddn
Hiddn coCrypt B Selfkey user manual

SMC Networks
SMC Networks 7804WBRB - annexe 1 Quick installation guide

Bueno Electric
Bueno Electric HFB-FO-LON Series user manual

Zte
Zte MF667 user manual

WM Systems
WM Systems Universal Industrial RS485 Modem user manual