Difference between revisions of "VGA Shield"

From Hackstrich
(Rough design notes.)
(Calling this done :))
 
(34 intermediate revisions by the same user not shown)
Line 1: Line 1:
The Arduino VGA Shield will be, as the project name may indicate, an Arduino shield that outputs VGA video.
+
The VGA Shield is, as the project name may indicate, an Arduino-compatible shield that outputs VGA video.
  
 
== Project Status ==
 
== Project Status ==
Initial design phase, chipset selection, BOM assembly.
+
* 2017-02: Calling this completed, Rev3 boards are working and have been sold for some time, if I get around to building the integrated version I'll start it as a new project.
 +
* 2013-02: Putting on hold for now, too many other projects on the go.
 +
* 2012-12: Waiting for a 12MHz crystal (left off of board and BOM) to arrive via Sparrow, once it does will green-wire it in and test.
 +
* 2012-05-01: Received boards, need to assemble/test.
 +
* 2012-04-15: Revision 5 sent off to Laen.
 +
* 2012-03-23: Fixed footprint of SSD1963 in the library, updated board and rerouted traces that broke due to the larger size.  Need to do a final 1:1 printout and check, then CAM and send off for another revision.
 +
* 2012-03-08: Started assembling, found the footprint for the SSD1963 is too small.  No good way to work around this, will need to spin another rev of the board.
 +
* 2012-03-08: SSD chips are here.
 +
* 2012-03-06: Digikey parts and 4D chips are here.
 +
* 2012-03-04: Ordered Digikey parts.
 +
* 2012-02-27: Ordered 2 chips each from 4D and TechToys.  Still need to order Digikey parts.
 +
* 2011-10-13: Received PCBs, still need to order parts.
 +
* 2011-09-17: Completed revision 4 schematic/PCB which will put everything on a single board.  Sent to Laen for PCB manufacturing.  Parts still need to be ordered.
 +
* Pre-September 2011: Schematic and board layout complete, PCBs received, VGA modules received from 4D, parts received from Digikey.  First rev. 1 board has been assembled and is working fine video-wise.  Audio not functioning, left message on 4D forum asking for help on it.  Rev. 2 board changes/re-layout has been done, CAM output sent to Laen 2011-03-20 for production.  Will be working on the library using the rev. 1 board in the meantime, so leaving this project set to Waiting for Time.  Rev 2 boards did not arrive (postal system fail) in time, so rev. 3 will be designed and sent out for production boards, without having rev 2 tested yet.  Revision 3 BOM completed, changes to schematic/board completed, boards sent to MyRO for production.  Boards received 2011-05-02.  15 boards assembled, QA'd, and packaged.  This batch (s/n 0010-0025) will be sold at Mini Maker Faire Toronto, and the remaining ones online.
 +
 
  
 
== Design Overview ==
 
== Design Overview ==
 +
* Using uVGA-II(SGC) module from 4D Systems to generate video
 
* Shield will provide I2C-RS232 bridge so the Arduino doesn't have to use its (only) RS232 UART for this
 
* Shield will provide I2C-RS232 bridge so the Arduino doesn't have to use its (only) RS232 UART for this
* Will provide an on-board speaker (if there is room) and a 3.5mm jack for external speakers
+
* Will provide a 3.5mm jack for external speakers (no room on shield for a speaker)
* The µVGA-PICASO-MD1 has 16 GPIOs, so will pin those out on the standard 2x5 connectors
+
* The µVGA-II(SGC) has 16 GPIOs, so will pin those out on the standard 2x5 connectors
 
* Status LEDs for power, TX, RX, and audio enabled
 
* Status LEDs for power, TX, RX, and audio enabled
  
== Chipset Options ==
+
== Revision 1 Issues ==
* 4D Systems µVGA-PICASO-MD1 module ($54)
+
* Fixed in rev. 2 - <s>Through-holes for all connectors mating with the VGA module are too small!</s>
** Very expensive
+
** Worked around for rev. 1 by modifying VGA module w/ thinner machine pins
** Some complaints about reliability
+
* Fixed in rev. 2 (moved through-holes so that either a cable or modded module can work) - <s>Serial connector doesn't work well at all, need to figure out a better solution for rev. 2</s>
** Only talks RS232
+
** Concave pogo pins?
* '''New 4D Systems uVGA-II(SGC) module ($49)'''
+
*** Would add $10 to the shield, eek!
** Relatively expensive
+
** Connector on wires?
** Only supports up to 800x480 (WVGA) @ 16bpp
+
** Small adapter PCB?
** Very easy to interface with (via an I2C/SPI to RS232 bridge likely)
+
** Mod each shield with straight pins aiming down?
* Propeller chip with custom code ($8)
+
* Fixed in rev. 2 - <s>Pads on audio jack could be a bit larger to make it easier to inspect soldering</s>
** Cheap
+
* Fixed in rev. 2 - <s>Audio Enable is actually an OUTPUT from the module, not an input like the datasheet says</s>
** Unsure how high resolution would be possible given generating VGA video from an MCU
+
** Rev. 2 should remove the two solder jumper sets from this pin, but retain the LED for Audio On
* Custom FPGA solution ($?)
+
* Fixed in rev. 2 - <s>Audio On, RX, and TX LEDs are all backwards (on = idle), need to hook them up to +3.3v instead of GND and flip them</s>
** More work than any other solution
+
* Can't get audio working at all
** Similar cost to propeller chip, likely
+
** Left support request for 4D, suspect a bug/mis-documentation in the module
* Off-the-shelf VGA controller chip
+
* BOM changed in rev. 2 - <s>LEDs for TX/RX are dim, should change to the ones used on the MultiSerial shield for part commonality and because they work better</s>
** The Epson S1D13506 seems promising, you talk to it and it has an internal RAMDAC to generate video.
+
* Fixed in rev. 2 - <s>Spacing on the two GPIO headers doesn't work well, shrouded ones won't fit and two IDC ribbon connectors side by side won't fit and it blocks the microSD slot</s>
*** Supports LCD, VGA, and NTSC/PAL composite output
+
** Be careful on layout as the microSD card slot on the VGA module needs to be accessible
*** Flexible bus to talk to the microcontroller
+
* Fixed in rev. 2 - <s>Really didn't end up needing TPs for RX/TX, can remove them to make routing easier/save space</s>
*** Requires EDO DRAM, which isn't available anymore.
+
* BOM changed in rev. 2 - <s>Should change crystal to be able to run at 256000bps, the fastest that is supported by the VGA module</s>
** The Epson S1D13517 might work, it's like the S1D13506 but takes SDRAM
+
 
*** Supports up to 800x600 16bpp
+
== Revision 2 Issues ==
*** Only supports TFT displays, may be able to make it talk DVI though through timings/TMDS converter?
+
* Fixed by adding FTDI header and run/prog switch on rev 3 - <s>Won't be able to reprogram module as there's no way to connect a serial cable to it</s>
* [[Project Peacock]]
+
* Fixed in rev. 3 - <s>When VGA module is set to 256kbaud, it actually communicates at 282.353kbaud!  Need to change crystal to 22.1184MHz to accommodate this.</s>
** Hybrid CPLD/MCU solution, cheaper than using a softcore in an FPGA
+
* Fixed in rev. 3 - <s>Audio path is not connected to the right pads on the jack, resulting in no audio output.</s>
** Would allow for an easy DVI shield too
+
 
 +
== Revision 4 Plans ==
 +
* Eliminate separate VGA module, embed chips right on the main VGA Shield PCB
 +
* Consider changing pinout of the GPIO headers, as the current pinout makes little sense
 +
 
 +
== Revision 4 Issues ==
 +
* SSD1963 pads are too close together
 +
* Opamp not in BOM
  
 
[[Category:Projects]]
 
[[Category:Projects]]
[[Category:Future Project Ideas]]
+
[[Category:Completed Projects]]

Latest revision as of 15:04, 1 March 2017

The VGA Shield is, as the project name may indicate, an Arduino-compatible shield that outputs VGA video.

Project Status

  • 2017-02: Calling this completed, Rev3 boards are working and have been sold for some time, if I get around to building the integrated version I'll start it as a new project.
  • 2013-02: Putting on hold for now, too many other projects on the go.
  • 2012-12: Waiting for a 12MHz crystal (left off of board and BOM) to arrive via Sparrow, once it does will green-wire it in and test.
  • 2012-05-01: Received boards, need to assemble/test.
  • 2012-04-15: Revision 5 sent off to Laen.
  • 2012-03-23: Fixed footprint of SSD1963 in the library, updated board and rerouted traces that broke due to the larger size. Need to do a final 1:1 printout and check, then CAM and send off for another revision.
  • 2012-03-08: Started assembling, found the footprint for the SSD1963 is too small. No good way to work around this, will need to spin another rev of the board.
  • 2012-03-08: SSD chips are here.
  • 2012-03-06: Digikey parts and 4D chips are here.
  • 2012-03-04: Ordered Digikey parts.
  • 2012-02-27: Ordered 2 chips each from 4D and TechToys. Still need to order Digikey parts.
  • 2011-10-13: Received PCBs, still need to order parts.
  • 2011-09-17: Completed revision 4 schematic/PCB which will put everything on a single board. Sent to Laen for PCB manufacturing. Parts still need to be ordered.
  • Pre-September 2011: Schematic and board layout complete, PCBs received, VGA modules received from 4D, parts received from Digikey. First rev. 1 board has been assembled and is working fine video-wise. Audio not functioning, left message on 4D forum asking for help on it. Rev. 2 board changes/re-layout has been done, CAM output sent to Laen 2011-03-20 for production. Will be working on the library using the rev. 1 board in the meantime, so leaving this project set to Waiting for Time. Rev 2 boards did not arrive (postal system fail) in time, so rev. 3 will be designed and sent out for production boards, without having rev 2 tested yet. Revision 3 BOM completed, changes to schematic/board completed, boards sent to MyRO for production. Boards received 2011-05-02. 15 boards assembled, QA'd, and packaged. This batch (s/n 0010-0025) will be sold at Mini Maker Faire Toronto, and the remaining ones online.


Design Overview

  • Using uVGA-II(SGC) module from 4D Systems to generate video
  • Shield will provide I2C-RS232 bridge so the Arduino doesn't have to use its (only) RS232 UART for this
  • Will provide a 3.5mm jack for external speakers (no room on shield for a speaker)
  • The µVGA-II(SGC) has 16 GPIOs, so will pin those out on the standard 2x5 connectors
  • Status LEDs for power, TX, RX, and audio enabled

Revision 1 Issues

  • Fixed in rev. 2 - Through-holes for all connectors mating with the VGA module are too small!
    • Worked around for rev. 1 by modifying VGA module w/ thinner machine pins
  • Fixed in rev. 2 (moved through-holes so that either a cable or modded module can work) - Serial connector doesn't work well at all, need to figure out a better solution for rev. 2
    • Concave pogo pins?
      • Would add $10 to the shield, eek!
    • Connector on wires?
    • Small adapter PCB?
    • Mod each shield with straight pins aiming down?
  • Fixed in rev. 2 - Pads on audio jack could be a bit larger to make it easier to inspect soldering
  • Fixed in rev. 2 - Audio Enable is actually an OUTPUT from the module, not an input like the datasheet says
    • Rev. 2 should remove the two solder jumper sets from this pin, but retain the LED for Audio On
  • Fixed in rev. 2 - Audio On, RX, and TX LEDs are all backwards (on = idle), need to hook them up to +3.3v instead of GND and flip them
  • Can't get audio working at all
    • Left support request for 4D, suspect a bug/mis-documentation in the module
  • BOM changed in rev. 2 - LEDs for TX/RX are dim, should change to the ones used on the MultiSerial shield for part commonality and because they work better
  • Fixed in rev. 2 - Spacing on the two GPIO headers doesn't work well, shrouded ones won't fit and two IDC ribbon connectors side by side won't fit and it blocks the microSD slot
    • Be careful on layout as the microSD card slot on the VGA module needs to be accessible
  • Fixed in rev. 2 - Really didn't end up needing TPs for RX/TX, can remove them to make routing easier/save space
  • BOM changed in rev. 2 - Should change crystal to be able to run at 256000bps, the fastest that is supported by the VGA module

Revision 2 Issues

  • Fixed by adding FTDI header and run/prog switch on rev 3 - Won't be able to reprogram module as there's no way to connect a serial cable to it
  • Fixed in rev. 3 - When VGA module is set to 256kbaud, it actually communicates at 282.353kbaud! Need to change crystal to 22.1184MHz to accommodate this.
  • Fixed in rev. 3 - Audio path is not connected to the right pads on the jack, resulting in no audio output.

Revision 4 Plans

  • Eliminate separate VGA module, embed chips right on the main VGA Shield PCB
  • Consider changing pinout of the GPIO headers, as the current pinout makes little sense

Revision 4 Issues

  • SSD1963 pads are too close together
  • Opamp not in BOM