VGA Shield

From Hackstrich
Revision as of 23:27, 17 September 2011 by SarahEmm (talk | contribs) (Fixing formatting.)

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

Project Status

  • 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