Updated PIC32 based VT100 ASCII Video Terminal

After build­ing the ASCII Video Terminal Kit, I decid­ed to cre­ate an updat­ed cir­cuit board based on the orig­i­nal Geoff Graham ASCII Video Terminal project, which was then lat­er updat­ed by Peter Hizalev and sold on Tindie.

VT100 ASCII Terminal assem­bled w/Jumpers RA

The orig­i­nal board by Geoff, described in the July 2014 issue of Silicon Chip mag­a­zine, includ­ed a com­pos­ite video out­put con­nec­tor, and emu­lat­ed most fea­tures of the DEC VT100 and VT52 ter­mi­nals. But it required the baud rate to be select­ed by jumpers, and had a lim­it­ed menu.
The updat­ed design by Peter did away with the com­pos­ite video con­nec­tor and changed the oscil­la­tor crys­tal from 8 MHz to a 20MHz Crystal, has a 25MHz pix­el clock and 640x480 res­o­lu­tion at a 60Hz refresh rate. Another sig­nif­i­cant improve­ment is the extend­ed set­up menu, with baud rate selec­tion and many con­fig­urable options.

While the updat­ed design and firmware was a sig­nif­i­cant improve­ment over the orig­i­nal by Geoff, the phys­i­cal board lay­out had many design issues in my opinion.

Original VT100 ASCII Terminal board Version 3 from kit
VT100 ASCII Terminal board top Rev. 1.4

My board design uti­lizes as many of the orig­i­nal com­po­nents from the V3 kit board as pos­si­ble to retain com­pat­i­bil­i­ty with the exist­ing excel­lent firmware. But it adds what I con­sid­er sev­er­al need­ed fea­tures that the orig­i­nal design did­n’t pro­vide, such as a TTL to RS232 ser­i­al con­vert­er IC and con­nec­tor, and a bar­rel jack for DC pow­er. I also added a pair of sin­gle-bit non­in­vert­ing bus trans­ceivers to the TTL ser­i­al con­nec­tion for volt­age trans­la­tion and to pre­vent pow­er back-feed­ing from an exter­nal device.

Other com­po­nent changes were:

  • Changing the val­ue of R5 from 220 to 270 Ohms for a 75 ohm imped­ance match on the VGA signal.
  • Adding 82.5 Ohm resis­tors on the HSYNC and VSYNC lines to the VGA con­nec­tor to reduce ringing.
  • Changing the USB VBUS resis­tor from 4.7K to 100 Ohms.
  • Changed the 3.3 volt reg­u­la­tor out­put capac­i­tor from 10 uF to 47 uF.
  • Additional bypass capac­i­tors on U1 (PIC32) and the 3.3 volt regulator.
  • Added a 250 mA Polyfuse and 470 uH induc­tor on the USB pow­er VBUS.
  • Changed the pullup resis­tors for data and clock on the PS2 key­board con­nec­tor to 5.6K Ohms.
VT100 ASCII ter­mi­nal board lay­out Version 1.4 with­out ground pours

The revi­sion 1.4 board lay­out has changed con­sid­er­ably from the orig­i­nal ver­sion 3 board by Peter. Some of this was nec­es­sary due to the addi­tion of new com­po­nents, but most­ly due to opti­miz­ing com­po­nent place­ment and the cir­cuit traces between them.
The first thing I want­ed to improve upon was the pow­er traces to all com­po­nents, and to include a ground pour instead of the orig­i­nal daisy-chain point to point ground of the orig­i­nal V3 lay­out. The next improve­ment was reduc­ing the length and increas­ing the iso­la­tion of the video traces from oth­er dig­i­tal and pow­er traces.
I also did my best to imped­ance match the USB data traces, which was like­ly not nec­es­sary due to the short con­nec­tion dis­tance.
Bypass capac­i­tors were placed as close to the pow­er con­nec­tions of devices as pos­si­ble to reduce induc­tance. Also the crys­tal was placed next to the micro­proces­sors OSC pins using wide traces to reduce induc­tance, and iso­lat­ed from oth­er traces with ground pours.
The board is now slight­ly larg­er and mea­sures 2″ x 4″ (5.08 x 10.1cm) which is a half inch wider than the orig­i­nal V3 board.

Pair of Rev. 1.4 pro­to­type boards with dif­fer­ent com­po­nents for testing

The updat­ed revi­sion 1.4 boards worked very well, with less pix­el smear­ing on the dis­play and a pow­er con­sump­tion of 45 mA at 5 volts with­out the PS2 key­board attached.
The only issue that I ran into was when try­ing to reorder the 74LVC1T45 buffer IC’s. No one had them in stock, and lead times were over 9 months long.
That drove my deci­sion to design anoth­er revi­sion of the board using a Maxim MAX12931EASA+ 2‑channel, dig­i­tal gal­van­ic iso­la­tor. The MAX12931 is avail­able in a SOIC‑8 pack­age which makes it a lit­tle eas­i­er to sol­der for a sur­face mount pack­age and only requires one IC. When I redesigned the board, Mouser Electronics had quite a few in stock so I ordered 10 of the IC’s.
As I am writ­ing this post most of the sup­pli­ers are out of stock of this part also.

Revision 1.8 of the VT100 ASCII Terminal pro­to­type board with Maxim MAX12931

If the board will be used sole­ly for RS-232 ser­i­al com­mu­ni­ca­tions, then the TTL buffer IC is a non-issue. I am still wait­ing on my Rev. 1.8 boards, and there are only minor changes with trace width and swap­ping the TTL buffer IC’s so I am not expect­ing any issues with the new boards.

EagleCAD 7.7 schemat­ic and board ZIP files for Revision 1.4
BOM for Revision 1.4 board
OSH-Park project page for ASCII VT100 Terminal Rev. 1.4

EagleCAD 7.7 schemat­ic and board ZIP files for Revision 1.8

4 Replies to “Updated PIC32 based VT100 ASCII Video Terminal”

  1. Looks like a worth­while update. Do you have any spare (bare) boards? Don’t need five of them, so pre­fer not to order anoth­er set from OSHPark if pos­si­ble. I will only be using RS232 input, so indif­fer­ent to buffer style. 

    Thanks!

    1. That’s a pret­ty broad and defin­i­tive state­ment. I’m pret­ty sure that there is at least one oth­er per­son still using Eagle Cad.
      I actu­al­ly paid for my ver­sion of the soft­ware, and have over 600 designs in Eagle Cad format.
      I have tried in the past to con­vert some of my designs over to KiCad with very poor suc­cess. KiCad is get­ting bet­ter and bet­ter, but the import func­tion is severe­ly lacking.
      So far Eagle Cad meets all my needs and the files can eas­i­ly be con­vert­ed over to Gerbers, so I will stick with it for now unless some­one wan­t’s to donate a copy of Autodesk Fusion.

      Greg (Barbouri)

Leave a Reply

Your email address will not be published. Required fields are marked *