FLDIGI Users Manual  4.0
nanoIO Interface

Table of Contents


nanoIO is an Arduino sketch (program) designed to work within the constraints of an "Arduino nano" circuit board. It converts serial ASCII characters to either CW or FSK keyline output. It also performs the functions of a simple Straight key, Iambic-A, or Iambic-B interface. The keyer does not provide any memory or parameter controls via button or paddle input. It is primarily a computer to keyline interface and all control parameters are executed via a simple serial command set.

nanoIO sketch is expanded version of these two GPL programs

FSK Specifications:

CW Specifications:

PTT signal generated by Arduino

Both: an internal buffer of 300 characters is available for buffered transmit.

Hardware requirements:

The power on default configuration is:

Control and configuration commands to nanoIO are issued by the computer program via the built-in Arduino nano USB port.

USB serial command strings all begin with the tilde, ~, character

Cmd ~...
C,c CW mode
F,f FSK mode
T,t CW Tune
Snnns computer wpm 10...100
Unnnu key (user) wpm 10...100
Dnnnd dash/dot 250...350 (2.5...3.5)
In CW incr (1..9)
A,a IambicA
B,b IambicB
K,k Straight key
0 FSK mark = HIGH
1 FSK mark = LOW
4 45.45 baud
5 50 baud
7 75 baud
9 100 baud
? Show config
~ Show cmds

In line special characters are used to control both CW and FSK signalling:



~C~S24s[tu ^^5nn|| k]
  1. Mode is changed to CW
  2. Computer WPM is set to 24
  3. PTT is set ON
  4. the string “tu “ is sent
  5. Computer WPM is increased by 2 increment factors
  6. the string “5nn” is sent
  7. Computer WPM is decreased by 2 increment factors
  8. the string “ k” is sent
  9. PTT is set OFF

PTT would enable before starting the CW transmission. PTT would disable after the last CW character (k) was completed.

nano CW configure

Configure fldigi and the nanoIO interface for CW operation using the configuration tab Modems / CW / nanoCW


Select the USB serial port to which the Arduino is attached and press the "Connect" button.

The WPM rate is separately controlled for the computer and paddle characters. Dash/Dot ratio is adjustable from 2.5 to 3.5. This control effects both the computer and paddle generated CW. Set the two WPM settings, the paddle type to Straight, Iambic-A, or Iambic B. Set the incremental WPM adjuster (see ^ and | characters above).

CW is generated from USB serial input strings and/or the paddle inputs. Paddle input overrides the serial string, but does not clear athe serial buffer.

The text control will show the current state after a successful connect:


FSK configure

Configure fldigi and the nanoIO interface for FSK operation using the configuration tab Modems / TTY / nanoFSK.


Set the state (high/low) of the FSK keyline for the transceiver to generate the MARK signal.
Select the baud rate (45.45 is the one most used).
Press the connect button and in a few seconds the USB Serial I/O text display should show


Return to Top of Page
Return to Main Page