Indrek Ots
by Indrek Ots
2 min read


  • articles


  • sparkfun
  • esp8266
  • IoT
  • linux
  • arduino
  • SoC
  • gtkterm
  • dtr

Notice! This post is more than a year old. It may be outdated.

ESP8266 is a low-cost system on a chip with integrated TCP/IP stack and WIFI. The SparkFun ESP8266 Thing is a breakout and a development board for for the ESP8266 chip that makes it easier to use and provides some additional features.

If you have experience programming Arduino boards, then most likely you have used the serial monitor that’s available in the Arduino IDE to debug your code. It is possible to use the Arduino IDE to program the ESP8266 chip provided that you install the required add-on. Unfortunately using the serial monitor in the IDE is not going to work with the SparkFun Thing.

Why doesn’t the serial monitor work?

SparkFun has a better explanation on it on their website but in short to make it easy to program the ESP8266, they have tied GPIO0 to DTR (along with RST). When your programmer begins to upload a sketch, it’ll pull DTR low, in turn setting GPIO0 low and making the ESP8266 enter bootloader mode. Unfortunately, when you open a serial terminal, DTR usually goes low again. So every time you open the Arduino serial monitor, it’ll cause the ESP8266 to enter bootloader mode, instead of run-program mode and you’re going to see a line of text which does not make any sense at all.

Line of gibberish

How to solve this issue?

There’s two solutions you could use. The first one involves modifying the hardware and the second one is done only using software. We’ll be looking the latter one because it’s easier.

To use a serial monitor with SparkFun ESP8266 Thing on Linux you need to find an alternative serial terminal which allows to control the DTR pin directly. On SparkFun’s website they have pointed out that you can use RealTerm but unfortnunately this is for Windows only. After having done some research I installed gtkterm and it can do the job pretty well.

Open Gtkterm and configure it.

Configuration menu

Toggle DTR with F7 or from the control signals menu. After that you can see the output printed by ESP8266.

Configuration menu

Now you should be able to use a serial monitor with SparkFun ESP8266 Thing on Linux and you don’t have to debug your code with LEDs.

OS X users

Reader Kevin Hoyt pointed out in the comments that on OS X he used CoolTerm to solve the same issue.

Edit 30.06.2016: added solution for OS X users pointed out by Kevin Hoyt in the comments