diy-VT100 - A Miniature hardware terminal

Miniature VT100 with all the bells and whistles

Similar projects worth following
A small VT100 that you can carry in your hands, connect to any hardware that provide serial interface.
- Bell (Speaker - 800Hz - Generated via DAC)
- USB and PS/2 Keyboard
- UART 3.3V (5V tolerant pins & Multiple speeds)
- LCD (80x48 characters)
- Accept VT100 commands (most of them - at the moment)
- EEPROM to store configuration
- Uses STM32F767 (ARM uC M7)

Design files and firmware will be released under GNU GPLv3 or later
(Please give me sometime :)

View all 8 project logs

Enjoy this project?



Gravis wrote 04/17/2017 at 23:14 point

If any, which kernel are you using?  The upside of using a pre-ported kernel is that you can replace the MCU with something cheaper/nicer/freer/etc.  If none, consider ChibiOS/RT or NuttX!

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 04/18/2017 at 08:50 point

Im UniCore-MX for hardware abstraction (no OS) and there is a seperation between uC specific code and general code (so porting is easier with changes to hardware code or adding a new target). also, code is compile-time configurable with number of rows and columns (and other parameter) to accomodate different sizes lcd and RAM.

  Are you sure? yes | no

Gravis wrote 04/18/2017 at 13:21 point

Sounds like a unikernel.  It's limited to ARM so I recommend taking a look at the two I listed.   I'm not insisting you switch, I just think you should consider other options that could make your project more flexible.

  Are you sure? yes | no

Daniele Lacamera wrote 6 days ago point

@Gravis baremetal programming is not the same as a unikernel. Besides, since you are a supporter of Open Source POSIX kernels for ARM, you should also have a look at frosted which is also based upon unicore-mx

  Are you sure? yes | no

jupdyke wrote 04/07/2017 at 23:34 point

I designed and install a data logger that I designed. If something is not working, I have to connect my laptop. I am very interested in this. I would buy a prototype from you, or a kit, or whatever you wanna offer. I would trade you services too. I do mechanical design and have access to a lot of equipment. Maybe I could help you with a laser cut case to go with it. Let me know.

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 04/08/2017 at 15:04 point

Im working on the new design.
You probably want to get that one.

Wait for some time, i will be adding a log for the new design.

  Are you sure? yes | no wrote 04/07/2017 at 13:13 point

Have you thought about adding a rs232 interface ? there is lots of space you could add a max232 and db9 footprints on board as options.

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 04/08/2017 at 15:09 point

Yes, in the new design -EXTension connector is provided. 

Also UART/TIMER/GPIO/I2C/SPI pins are in EXT for anything that people want to attach/extend. Perfectly fullfil your usecase: attach a MAX232 and DB9.

  Are you sure? yes | no

Felix Richter wrote 04/06/2017 at 21:14 point

Hey, is there a way to adjust the BAUD rate without re-flashing the STM? I was thinking about some kind of "universal" serial Terminal for quick debugging of other uCs.

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 04/07/2017 at 01:07 point

Yes, the baud rate can be changed without flashing  (see SETUP-B picture "T SPEED" "R SPEED").

Just like original VT100, one has to goto SETUP-B and change UART speed. alot of speeds are support. 

also, the setting (which includes uart speed data) can be saved on EEPROM. on power up it read settings from EEPROM.

  Are you sure? yes | no

cooheneliezer wrote 03/27/2017 at 17:34 point

I still don't understand what it is usefull for.

Can u plz explain

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 03/30/2017 at 14:08 point

This is a hardware based text terminal.

You can send VT100 compatible command (via UART) to write text on screen.

VT100 also support graphical drawing [ex: line, pixel] (will be implemented in future)

This project act as a quick screen to any project that output/input via UART.

  Are you sure? yes | no

Duke Circuit Co.,Ltd wrote 03/26/2017 at 05:29 point

How to use this item?

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 03/27/2017 at 08:09 point

Send over UART {RX, TX} with power from {5V, GND} ready!

Accept VT100 commands.

  Are you sure? yes | no

Luis Diaz wrote 12/30/2016 at 18:39 point


This is a very nice project. Thanks for sharing.

Do you have BOM for the project? Will love to build one for myself :)

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 12/30/2016 at 19:58 point

Hi Luis,

The design has few problem that im planning to fix soon.

And then upload the complete improvised design. :)

  Are you sure? yes | no

Luis Diaz wrote 01/02/2017 at 11:47 point

Nice! Thanks!

  Are you sure? yes | no

Craig Hissett wrote 12/30/2016 at 15:06 point

This is fantastic. So many uses for a handy terminal such as this.

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 12/30/2016 at 15:21 point

Thank you!

  Are you sure? yes | no

Craig Hissett wrote 12/30/2016 at 16:03 point

You're more than welcome!

If you ever start selling these get in touch; I'd love to get one.

I currently use and arduino with lcd shield and a few buttons to pass commands to devices via serial,  but it involves having to hardcode commands into the menu to be senylon hen selected . The keyboard support on this would make life so much easier!

  Are you sure? yes | no

ethan.dicks wrote 12/22/2016 at 20:04 point

Very nice for many things, but I still use vintage dumb terminals attached to real and emulated vintage machines (mostly PDP-8, PDP-11, etc., but a few others), and there are plenty of programs that aren't just writing to stdout (that use curses or just raw VT100 control sequences) that expect a minimum screen size of 80x24.  Some vintage apps check, but they are really only checking for 80x24 vs 132x24.  The screen layouts assume a minimum of 80 cols wide.

Great start though.  Definitely clean and minimal, and I do appreciate the support for both USB and PS/2 keyboards.

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 12/23/2016 at 20:59 point

@ethan.dicks I agree, I have felt the same.

Need to find a LCD that is appropriate in number of pixel, screen area and price (and still "fit" on the palm).
Thank you for your inputs.

  Are you sure? yes | no

Wenting Z. wrote 12/24/2016 at 01:57 point

80x24 text using  5x7 text requires a resolution of 480*192, I think these 3.2 IPS 480*320 screens worth a try. I'm currently in China and planning go back to the U.S. next month. And I got a LOT of different screens here with very low price (3.2 IPS 480*320 for $1 each, 4.0 IPS 800*480 for $2 each)! If you are interested, I can send you some screens :)

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 12/25/2016 at 14:17 point

@Wenting Z. Interesting! lets talk on this more. :)

  Are you sure? yes | no

Kuldeep Singh Dhaka wrote 03/20/2017 at 17:01 point

@ethan.dicks Please see update on the rev 3!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates