Page 1 of 1

pyboard with a VGA display

Posted: Mon Feb 13, 2017 6:54 pm
by s_hatch
I have developed what I call a SuperPyBoard. It is a board for the pyboard that lets you have a high resolution VGA monitor connected to the pyboard with a UART. This frees up the pyboard to do what you really want it to do without spending a lot of time refreshing a display. Send out the character at 9600 baud and the external circuitry handles the display. It also incorporates a PS2 keyboard port that allows data to be entered in an embedded application.

The VGA display can be made into a 32 line by 80 character high resolution display, or change the software and it becomes a 14 x 32 character display with big characters that can be read from a long distance. I am currently running it on a 7" display from Adafruit, and the low resolution characters are 5mm tall, with highly visible white characters on a blue background.

My motivation came from a project that I built for a company. I couldn't find a serial display nor a reasonable keyboard so I delivered it with a laptop and the pyboard connected via USB. The company doesn't like the computer on the factory floor for a couple of reasons. One, you have to navigate to the terminal emulator package on boot up and then the process of ejecting the pyboard before shutting the machine down. Also, many of the factory floor workers are not computer experts. They wanted the pyboard to boot right into their application and begin operating immediately without having to mess around with the laptop. Now I have rectified the problem with this board. With my application in, it immediately displays the application and the machine starts working immediately. This works much better.

Of course, program development still takes place on the host computer over USB, however when the program is done, it works real well on the display and with the keyboard. The board is 2.5 inches by 3.8 inches and it allows the pyboard to be stacked right on this board.

Re: pyboard with a VGA display

Posted: Wed Feb 15, 2017 5:21 pm
by danielm
Do you have some photos of the board and working display to show us?

Re: pyboard with a VGA display

Posted: Fri Feb 17, 2017 3:34 am
by s_hatch
I have some pictures that show both the high resolution displays and the high resolution display. Also, you can get a pic of the circuit board I have had made. I can't figure out how to get them pasted into this message on the forum. I will send them to anyone who contacts me on

Re: pyboard with a VGA display

Posted: Fri Feb 17, 2017 3:37 am
by s_hatch
Looks like my two attempts were somewhat successful. Here is the high res display
High Res Display.jpg
High Res Display.jpg (208.47 KiB) Viewed 1484 times

Re: pyboard with a VGA display

Posted: Fri Feb 17, 2017 3:39 am
by s_hatch
Here is the circuit board. I am waiting for my pyboard from Adafruit.
SuperPyBoard.jpg (189.3 KiB) Viewed 1484 times

Re: pyboard with a VGA display

Posted: Fri Feb 17, 2017 3:41 am
by s_hatch
I just completed the cursor positioning and screen clear in uPython. I also have an expansion board made up for it so it can stack on top or bottom of the SuperPyBoard.

Re: pyboard with a VGA display

Posted: Tue Feb 21, 2017 2:26 am
by s_hatch
Would anyone be interested in a board like this? I would like to put this board on the market. I am surprised that there are no posts to this. Am I not reading things correctly?

Re: pyboard with a VGA display

Posted: Tue Feb 21, 2017 2:58 am
by dhylands
I guess it depends on what the board costs, etc.

I've switched almost everything to use HDMI, so I don't have much VGA lying around any more.

Re: pyboard with a VGA display

Posted: Sat Apr 22, 2017 10:01 am
by evbaarle
Very interesting.
What hardware/chip are you using to generate the VGA signals?
What time does a clear screen/ the most time consuming operation take?

Re: pyboard with a VGA display

Posted: Wed May 17, 2017 9:41 am
by openfablab

This is very interesting! I met the sam problem just now. I build control panel for assembly line and did not want a PC for the same reasons. Currently I use Arduino Mega with TVout library (it takes two pins and two resistors to generate monochrome RCA signal, and have basic functions for text and graphics like on very old PCs).

There was example with TVout library - rotating 3D wireframe cube. I suddenly noticed that for real-world equipment interfacing with a display, a few MHz Arduino+TV have about similar speed as few GHz modern PC (i tried to build animated graphics of voltages). Thus all that stuff - operation system, drivers, interfaces, etc scale down system productivity by 2-3 orders of magnitude.

Pyboard and ESP chips have a lots of MHz, ten times more than Arduino Mega, ESP32 have even more, thus we can easily imagine tiny embedded computer with cool graphics. I'm not sure 9600 is a good speed for it.

May be there we need three types of boards (similar or not) to be happy:

A) board with real-time loop and IO pins for managing equipment (common pyboard or similar)
B) board that manage interfaces (user interface events, and video output) at about 100 Hz frequency. It look logical to integrate input to graphic board beacuse most user acions are about changing graphical objects. Every B board has its own display but no physical input.
C) board that shares variables between dozens of A and B type boards (not in realtime, again 100 Hz will be OK). This board have input for user interface (keyboard, mouse, custom physical control panels - and send these events to active B boards) and able to connect to Internet.

Fast realtime processes should be managed inside single A board. All other is just for convenience. All types of boards can be connected wirelessly because there is no need to high-speed datd transfer between them. B boards can be attached to low-level inputs of displays (e.g. 40 pin).

With this stuff one can do all things engineer or scientst ever dream of. For example:

1) Use A+B+C boards in come equipment like, e.g. CNC milling machine. And you can add there on-the-fly two extra B boards: one for programming all other boards (e.g. Jupyter style) and one for displaying debug information.
2) Use A+B+C to build homebrew high-speed multichannel oscilloscope/signal generator and datalogging systen
3) Use 3A+9B+C to build 9-display workstation with 3 real-time boards interfacing with equipment an doing hard calculations
4) Use 100A+2B+C to build supercomputer with one display for entering data and other for showing results.

This sounds like an alternative computer architecture - cheap and highly suitable for industrial & scientific as far as hobby and education use.

B board - video interface - is most mystical for me, because I know a very few about video chips. I thinkit should have not only VGA (or other) output, but alse integrated library with funcionality like matplotlib-tk-qt - i.e. not pyboard video interface, but kind of pyboard video card.