Version 2.2 Update

Version 2.2 has been released. Here's what's new.

- Either 2 switches or 4 switches can be used. A long press (half second) on switch 1 is the same as pressing switch 3. A long press (half second) on switch 2 is the same as pressing switch 4.

- New codes - for a space, enter "..--", for a backspace enter "----". For speaking, enter either a period ".-.-.-" or .---.". For clear screen, enter "..-..".

The word that the user is typing now is displayed in a work area near the bottom of the screen (just above the character work area). Once the user accepts this word, it is moved to the top message area and added to the message typed so far.

The duration of a Long Press (default: 0.5 sec) can be changed by the user with a few keystrokes. The voice used by the Text-to-Speech module can also be changed by the user with a few keystrokes. Both of these changes are saved by the M2G for use on the next session.

- The M2G V2.2 User Manual
has been updated to show these changes.

Version 2.1 Update

Version 2.1 has been released. A video shows a demo, as well as detailed instructions on how to build the M2G Version 2.1.

DIY Information

If you want to build your own M2G, you'll need to download the documents below. These documents contain all the technical details needed for this DIY project.

It's a fun project. You'll learn lots about the Arduino and by giving us feedback, you'll contribute to the Adaptive Community. You can contact us at:

M2G V2.2 User Manual

M2G Code Table

M2G Parts List

M2G Template

M2G Acrylic Case

M2G 2.2 on Github

M2G Case on Shapeways

Top of M2G on Shapeways

STL Files on Github

M2G Version 2.1 Video

Fun Facts

What is Morse Code?

History of Morse Code


Morse2Go is a collaborative effort between Jim Wroten and Adaptive Design Association.


What is the M2G - Version 2.2?

The M2G Version 2.2 is a small, low-cost communication device for people struggling with speech and movement. Text can be keyed into the M2G using a finger, foot, head, or mouth switch. Words display on the TFT screen and are converted to audible speech so that another person can understand what is being communicated.

The project cost is about $250 using off the shelf parts readily available online.

Morse Code is the language used to create the text. Morse Code was invented over 150 years ago along with the Telegraph system. This invention enabled people in distant places to communicate in ways that had never before been possible. Morse Code consists of “dots” and “dashes” - short and long signals. When put together, they are used to make words or abbreviated symbols. For example, “... --- ...” is the familiar “SOS” distress call.

In addition to keying in the full text of a message, the M2G has short codes available which produce longer messages. For example, “:WT” produces the message “What time is it?”. The user can create their own codes and messages. Codes can be up to 10 characters long and messages can be up to 80 characters.

— For those wanting to know more about Morse Code, this article on Morse Code provides a good introduction. Even more information about Morse Code is available in the links under "Fun Facts", in the right sidebar.

Open Source and DIY

The Open Source software movement has revolutionized computer software developent. Proprietary solutions limit ownership of software and actively discourage public participation and innovation. By using the Open Source model, the Morse2Go project invites others to contribute to the overall good. The only requirement to use this software is to keep it Open Source; if you build an M2G or a modified version, simply acknowledge where you got it and don't copyright it - release it under the same Open Source License. See the footer on this page for more information about the license.

By using the Open Source concept, we can make this a DIY project. Included on this web page is the complete source code, parts list, instructions, how-to videos and other details that anyone can use to replicate the M2G.

The parts for the M2G cost about $250, including the Text-to-Speech feature and case. You will also need a powered speaker, available online, and a keyboard consisting of four microswitches. Some experience soldering is highly recommended (see to learn how.) Some experience with electronic assembly is recommended or perhaps a friend can help.

Hardware Components - Version 2.2

The M2G consists of several pieces of hardware. If you are building the unit, you will purchase these components from retail or on-line merchants and then assemble them into the M2G. These components will be described here and then we'll see how they fit together. Refer to the complete parts list prior to building the M2G.

Arduino Mega 2560

The Arduino Mega 2560 is a recent product in a series of small computers designed for small scale imbedded products. This is one of the fastest and has sufficient memory for this project. These capabilities are needed for this project because of the amount of data storage and programming code required by the appplication (about $45).


2.8" TFT Touch Shield

The 2.8" TFT Touch Shield is a graphic display with 240x320 resolution, 18-bit (262,000) color. It is a very popular and inexpensive unit (about $45). The TFT shield has a built in SD Card slot, which we use to store the code data for the M2G. The Touch Shield mounts directly on the Arduino Mega, not requiring any additional wiring. This simplifies construction considerably.


EMIC 2 Text to Speech Module

The EMIC2 Text to Speech Module provides a voice for the M2G. This optional component (about $60) extends the usefullness of the M2G considerably, by allowing the user to have the M2G "speak" the text they have entered.



The keyboard provides the user a device to input text using Morse Code dot/dash patterns. Four Single Pole Single Throw (SPST) normally open momentary switches can be used, such as micro-switches. These are readily available online. Shown here is a keyboard assembled onto a acrylic base using 3.5mm TRS plugs for connection.



The M2G could be housed in anything, but for convenience, we have designed a case printed on a 3D printer. This case is available at It is in two pieces: M2G Case - $47 and Top of M2G - $22..

If you have access to a 3D printer you can print the case yourself using the STL Files on Github.


Building the M2G

In addition to the parts listed above, you'll need some 3.5mm TRS jacks, 4/40 screws and nuts, two sided tape, hookup wire, heat shrink tubing, and a 6 pin header. Please consult the Parts List for details.

If you've never built an Arduino project, you'll probably want to practice a bit and gain some experience before tackling a project this complex. Once you have gotten an Arduino, try hooking it up to your computer (see software section below) and running one of the many excellent example programs that are provided. The Blink example is an excellent way to get started. Practice with some of the other examples, such as the Button, which shows the principle behind the M2G. You can load an example onto the Arduino from the Arduino Interactive Developement Environment (IDE), expained below in the Software section. From the IDE menu, click File | Examples | 01.Basics | Blink. Then, with the example loaded click File | Upload or press the Arrow Upload button to send the code to the Arduino. Get familiar with an example or two before continuing here.

Once you have gotten your Adruino Mega hooked up to your computer and wired up and tested the Blink and Button examples, you are ready to build the M2G.

First, drill the case for mounting the Arduino and the Text-to-Speech modules. A template is provided. Drill three 6mm (1/4") holes equally spaced on the right side and mount three 3.5mm TRS jacks. These are for the keyboard and Text-to-Speech output.

Mount the Arduino Mega 2560 and the Emics 2 in the case. Use the double sided tape to help align the Arduino. The Emics doesn't have any mounting holes, so make a strap out of acrylic or some other soft non-conductive material to hold it down.

Wire the jacks, the Emics 2 and the Arduino using the schematic provided. Tie all the grounds together and solder onto a single terminal strip held by one of the mounting screws used for the Emics 2.


The build instructions don't include anything about the user keyboard. It consists of four SPST normally open momentary switches. The switches 1/2 (dot/dash) and 3/4 (enter/delete) should be connected to a pair of 3.5mm TRS jacks (1/3 goes to tip, 2/4 goes to ring). Audio connectors can be used to connect the M2G and the keyboard. The switches aren't specified because requirements will vary greatly depending on the user's needs. They could be a simple micro switches or push buttons, pictured here, a foot pedal, an arm connected device or a puff and sip switch. Many examples can be found on the internet - search for "adaptive switches" as an example.  

Before building, you may want to watch the M2G Version 2.1 Demo Video.

Installing Software on the M2G

Before you can install software on the M2G, you'll need to download the Arduino software. From the list of versions, you must pick version 1.6.3 (or greater) because this is compatible with the Arduino Mega 2560. Install the software that you download on your computer. This will install software libraries and the Interactive Development Environment (IDE), the program you use to load the M2G software onto the Arduino Due. Plug your USB cable into the Programming Port - on the left side, frontmost port. Start the IDE and click Tools | Board and click Mega 2560 Programming Port. Click Tools | Port and select the COM port that is used. Test the IDE software installation by running the Blink example (Click File | Examples | 01.Basics). Then, with the example loaded click File | Upload or press the Arrow Upload button to send the code to the Arduino.

Download the M2G software from GitHub. Download and copy the three main files (m2g_2.ino, m2g.cpp and m2g.h) to your hard drive in a separate directory under your "Sketchbook Location" -- In the IDE, click File | Preferences, to locate the "Sketchbook Location". Save the Library directories and files (Adafruit-GFX-Library and Adafruit-ILI9341) in a separate directory (called "Libraries") under your Android "Sketchbook Location".

Download the Morse2Go_Code_Table from Google Docs. After you bring up the link above, click File | Download as | Comma-separated values. Save this file on your hard drive. Change the name of the file to "CODE.CSV". Copy this file to the Micro-SD card that is used by the M2G.

Use this code table file if you're using the M2G 2.0 version of the software. It has the "pcode" values used for timing. Morse2Go Code Table Version 2.0. As above, after you bring up the link above, click File | Download as | Comma-separated values. Save this file on your hard drive. Change the name of the file to "CODE.CSV". Copy this file to the Micro-SD card that is used by the M2G.

Also copy the file m2g.bmp onto the Micro-SD card. This provides the startup graphic and can be changed to meet your needs (320 X 240 X 24 bit depth bitmap).

If you have an account on Google and you are logged in, you can copy the Morse2Go_Code_Table to your Docs. Click File | Make a Copy. You can make changes to this copy of the file and use it on the M2G instead of the original. Be very careful with the format of this file and if the M2G stops working, revert to the original "CODE.CSV" and see if this fixes the problem.

Once you have built the M2G, please give us feedback. Let us know of any problems you had and if you have any suggestions for the build. You can reach us at: