Home       Guestbook

Section   Top      Instructions       Adjust Nano Buffer       Schematic      Verboard Layout      3D Printer Files     Code

 

 

 

ARDUINO SERIAL TERMINAL

Serial terminal using an Arduino NANO and an ILI9341 2.8" TFT display

 Arduino Nano serial terminal with 3D printed case.

Standalone serial monitor with USB connection or with Tx Rx connection via test clips.

Built in battery with 4 x AAA batteries.

About

I needed a portable device to monitor the serial output from my projects insitue.

This project works with the ILI9341 TFT 240x320 display and uses the hardware scrolling feature of the display.

It also uses a modified Serial Buffer to allow serial date above 9600 to be used.

 

 

Instructions

Can be connected via the Nano mini USB port or via the serial in terminals.

Baud rate is set by selecting the baud rate with the rotary selector.

Once the board rate is selected pressing "SET BAUD RATE" restarts the device then starts it at the new baud rate.

The baud rate is indicated on op of the TFT display.

 

Arduino NANO Serial Buffer size change

The Arduino core code contains a  small  data buffer where you can keep throwing data at it and the Arduino code will read the data and process it in order.

However, this data buffer is by default only 64 bytes in size. This value is hard coded in the Arduino core source code and applies to all Arduino boards, even those with a vast amount of RAM available.

The 64 byte limit meant that sending a burst of data longer than 64 bytes would cause data to be truncated as the ATmega328 could not process the data sent fast enough.

The solution is easy, increase the buffer size to 1024 bytes.

The solution below was based on Hobby Electronics Arduino UNO serial buffer mod.


Go to C:\Users\”your name”\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\cores
Copy the arduino folder and paste a copy.
Rename to copied folder to “arduino_1024_serialbuf”.
 
 



Open this folder and edit the file USBAPI.h .
Find “#define SERIAL_BUFFER_SIZE 64” in this file.
Change it to “#define SERIAL_BUFFER_SIZE 1024” and save it.

We now have to add a new NANO board with 1024 buffer value.
Go to C:\Users\”yourname”\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Edit the “boards.txt” file

 



Paste the new text below under the original NANO section in this file and save it.

nano1024.name=Arduino Nano (1024 Serial Buffer)

nano1024.upload.tool=avrdude
nano1024.upload.protocol=arduino

nano1024.bootloader.tool=avrdude
nano1024.bootloader.unlock_bits=0x3F
nano1024.bootloader.lock_bits=0x0F

nano1024.build.f_cpu=16000000L
nano1024.build.board=AVR_NANO
nano1024.build.core=arduino_1024_serialbuf
nano1024.build.variant=eightanaloginputs


## Arduino Nano w/ ATmega328P
## --------------------------
nano1024.menu.cpu.atmega328=ATmega328P

nano1024.menu.cpu.atmega328.upload.maximum_size=30720
nano1024.menu.cpu.atmega328.upload.maximum_data_size=2048
nano1024.menu.cpu.atmega328.upload.speed=115200

nano1024.menu.cpu.atmega328.bootloader.low_fuses=0xFF
nano1024.menu.cpu.atmega328.bootloader.high_fuses=0xDA
nano1024.menu.cpu.atmega328.bootloader.extended_fuses=0xFD
nano1024.menu.cpu.atmega328.bootloader.file=optiboot/optiboot_atmega328.hex

nano1024.menu.cpu.atmega328.build.mcu=atmega328p

## Arduino Nano w/ ATmega328P (old bootloader)
## --------------------------
nano1024.menu.cpu.atmega328old=ATmega328P (Old Bootloader)

nano1024.menu.cpu.atmega328old.upload.maximum_size=30720
nano1024.menu.cpu.atmega328old.upload.maximum_data_size=2048
nano1024.menu.cpu.atmega328old.upload.speed=57600

nano1024.menu.cpu.atmega328old.bootloader.low_fuses=0xFF
nano1024.menu.cpu.atmega328old.bootloader.high_fuses=0xDA
nano1024.menu.cpu.atmega328old.bootloader.extended_fuses=0xFD
nano1024.menu.cpu.atmega328old.bootloader.file=atmega/ATmegaBOOT_168_atmega328.hex

nano1024.menu.cpu.atmega328old.build.mcu=atmega328p

## Arduino Nano w/ ATmega168
## -------------------------
nano1024.menu.cpu.atmega168=ATmega168

nano1024.menu.cpu.atmega168.upload.maximum_size=14336
nano1024.menu.cpu.atmega168.upload.maximum_data_size=1024
nano1024.menu.cpu.atmega168.upload.speed=19200

nano1024.menu.cpu.atmega168.bootloader.low_fuses=0xff
nano1024.menu.cpu.atmega168.bootloader.high_fuses=0xdd
nano1024.menu.cpu.atmega168.bootloader.extended_fuses=0xF8
nano1024.menu.cpu.atmega168.bootloader.file=atmega/ATmegaBOOT_168_diecimila.hex

nano1024.menu.cpu.atmega168.build.mcu=atmega168

##############################################################


Now when you open the Arduino IDE you should bee the new NANO 1024 buffer option
 
 

 

 

 

Schematic

 

 

 

 

Veroboard Layouts 

 

Layout with modules in place. 

 

 

Rear layout

 

 

 

 

3D Printer Files

 

Part name: TFT_Holder

Fixes to the TFT_HolderRear with 4 M3 bolts.

Front view

 

Rear View showing recess for TFT

 

 

Part name: TFT_Holderrear

Studs for 4x M3 bolts can be seen.

The M3 bolts self tap into the studs.

 

 

 

 

Part name: Base

Top view

 

Underside view

 

 

Part name: correctionspacer

2 off as required.

Glued to the dust strip holders studs protruding from the underside of the base.

Use these if narrow dust strips are used.

Part name: BaseCover

 

Push fit into the base. Veroboard mounting studs for 4 off M2 self tappers can be seen.

 

 

 

Part name: Bezal

This is the bezel for the Panel label.

Fixed to the base with 6 off M2 self tappers.

 

 

 

 

Arduino Code