The information contained in this document is the property of 4D Systems Pty. Ltd., and may
be the subject of patents pending or granted, and must not be copied or disclosed with out
prior written permission. It should not be used for commercial purposes without prior
agreement in writing.
4D Systems Pty. Ltd. Endeavours to ensure that the information in this document is correct
and fairly stated but does not accept liability for any error or omission. The development of
4D Systems products and services is continuous and published information may not be up
to date. It is important to check the current position with 4D Systems.
Contact details are available from the company web site at www.4dsystems.com.au
All trademarks recognised and acknowledged.
Copyright 4D Systems Pty. Ltd. 2000-2007
DISCLAIMER OF WARRANTIES & LIMITATION OF LIABILITY
4D Systems Pty. Ltd. makes no warranty, either express or implied with respect to any
product, and specifically disclaims all other warranties, including, without limitation,
warranties for merchantability, non-infringement and fitness for any particular purpose. 4d
systems' sole obligation and liability for product defects shall be, at 4d systems' option, to
replace such defective product or refund to buyer the amount paid by buyer therefore. In no
event shall 4D Systems' liability exceed the buyer's purchase price.
The foregoing remedy shall be subject to buyer's written notification of defect and return of
the defective product within ninety (90) days of purchase. The foregoing remedy does not
apply to products that have been subjected to misuse (including without limitation static
discharge), neglect, accident or modification, or to products that have been soldered or
altered during assembly, or are otherwise not capable of being tested, or if damage occurs
as a result of the failure of buyer to follow specific instructions.
In no event shall 4D Systems be liable to the buyer or to any third party for any indirect,
incidental, special, consequential, punitive or exemplary damages (including without
limitation lost profits, lost savings, or loss of business opportunity) arising out of or relating to
any product or service provided or to be provided by 4D Systems, or the use or inability to
use the same, even if 4D Systems has been advised of the possibility of such damages.
www.4dsystems.com.au
µVGA-PICASO-MD1
2
Table of contents
1. Introduction 4
2. Features 5
3. Pin Description 6
4. Reference Designs 7
5. Personality Module Micro Code (PmmC) 9
6. Graphics Command Set (Serial) 10
6.1 General Command Set 11
7. Serial Interface (TTL Level) 39
8. Using the µVGA-PICASOMD1-UB 40
9. USB Interface 41
10. Specifications 42
11. Mechanical Details 43
12. Colour Organisation 44
13. Power-Up Reset 45
14. Related Products 46
15. Appendix 47
15.1 Help and Other Information 47
www.4dsystems.com.au
µVGA-PICASO-MD1
3
1 Introduction
The µVGA-PICASO-MD1 is a compact & cost effective ready to go 'drop in' embedded
graphics engine that will deliver ‘stand-alone’ functionality to your project. The ‘simple to
use’ embedded commands not only control background colour but can produce text in a
variety of sizes as well as draw shapes (which can include user definable bitmapped
characters such as logos) in 256 colours whilst freeing up the host processor from the
‘processor hungry ‘ screen control functions. This means a simple micro-controller with a
standard serial interface can drive the module with total ease. For USB operation simply add
a µUSB interface controller.
Figures below show some of the graphics capability of the µVGA-PICASO-MD1.
www.4dsystems.com.au
µVGA-PICASO-MD1
4
2 Features
The µVGA-PICASO-MD1 module is aimed at being integrated into a variety of different
applications using a wealth of features designed to facilitate the designer to quickly and
cost effectively complete a product and thus reduce ‘time to market’. These feature s are as
follows:
Intelligent and fully integrated VGA/SVGA Display Graphics Controller.
Tiny 28 pin module, powered by the 4D LABS PICASO chip. A powerful DSP/Controller
based multi purpose graphics engine.
Low Power design. 3.0Volts to 3.6Volts input supply @90ma.
256 Colours with standard resolution modes for QVGA (320x240), VGA (640x480) and
SVGA (800x600, to be implemented in the near future). The µVGA-PICASO-MD1
supports multiple resolutions with in the same module. Resolutions are selectable during
run time under host control. Resizable viewing window allows partial/full screen control.
The digital video signals, RED0:RED2, GREEN0:GREEN2, BLUE1:BLUE2, HSYNC, VSYNC
and BLANK(R,G,B), facilitate using a simple Resistor-DAC to drive any standard VGA
monitor.
512K bytes of onboard SRAM for video memory allows 8 p ages for QVGA, 2 pages for
VGA and 1 page for SVGA resolutions. Utilising the multiple pages allows double
buffering which can be used for smooth animations and windowing of menu systems.
RX and TX signals (TTL levels) provide a simple serial host interface. The serial interface
allow the µVGA-PICASO-MD1 graphics module to be connected to any host controller
such as a PIC, AVR, STAMP, ARM, Propeller just to name a few as well as a PC. The host
controls the module by sending simple serial commands. Auto baud rate detection from
2400 baud to 1Mbit/sec.
Powerful, easy to use and understand built in graphics functions allow drawing of lines,
rectangles, circles, ellipses, text, images, icons, user defined bitmaps and much more…
SPI signals (SDI, SDO, SCK) allow the module to be connected to a number of SD and
MMC memory cards (from 64Mb up to 4Gb) that can store images, icons, and other
graphics objects.
Future upgrades and enhancements are easily achieved by uploading PmmC
(Personality module micro Code) files. PmmC files allow the PICASO chip to be
uploaded with the latest micro-Code firmware.
System designers can incorporate the µVG
application, saving space and cost. Reference designs enable the user to create a
platform to incorporate the µVGA-PICASO easily.
A-PICASO-MD1 module directly into their
NOTE: Usable resolutions are; QVGA: 310x210, VGA: 620x420 and SVGA: 800x560. These
resolutions are chosen to maximise the number of display pages from the video RAM.
6 BLANK_B BLUE Display Enable blanking signal.
18 RED0 RED intensity bit 0
19 RED1 RED intensity bit 1
22 RED2 RED intensity bit 2
23 GREEN0 GREEN intensity bit 0
12 GREEN1 GREEN intensity bit 1
11 GREEN2 GREEN intensity bit 2
10 BLUE0 BLUE intensity bit 1
9 BLUE1 BLUE intensity bit 2
13 RUN/DEMO
General purpose Input/Output 6. Also used as the Clock signal for external SD/MMC
memory card interface in SPI mode.
General purpose Input/Output 5. Also used as the Data In signal for external
SD/MMC memory card interface in SPI mode.
General purpose Input/Output4. Also used as the Data Out signal for external
SD/MMC memory card interface in SPI mode.
General purpose Input/Output 2. Also used as the Chip Select signal for external
SD/MMC memory card SPI interface.
Serial interface for host processor commands. Also used
for uploading PmmC files into the PICASO module from
the PC for future upgrades.
These form the VGA Control signals.
Connect these along with the Pixel Data
Bus signals to an external Video DAC.
These signals combined form the 8 bit
256 colour Pixel Data bus. Connect
these along with the VGA Control signals
to an external Video DAC.
Internal Demo Mode when Active Low on Power-Up if the module is running the
Serial Command platform. Also runs 4DGL user programs from power-up if the
module is running 4DGL platform.
www.4dsystems.com.au
µVGA-PICASO-MD1
6
4 Reference Designs
The following reference design show how easily the µVGA-PICASO-MD1 module can be
integrated into a wide range of applications with very simple circuitry. Please check the
following link for updated information as it becomes available. This is available from 4D as a
standard option also for general purpose use and testing.
Example: A General Purpose platform for the µVGA-PICASO-MD1 module
www.4dsystems.com.au
µVGA-PICASO-MD1
7
www.4dsystems.com.au
µVGA-PICASO-MD1
8
5 Personality Module Micro Code (PmmC)
One of the important features of the µVGA-PICASO module is the ability to upload its
onboard PICASO processor with a micro-Code firmware which allows the module to take
on a new personality. This is referred to as Personality Module Micro Code (PmmC). The
benefits of this are as follows:
• Allows the module to be easily upgraded by the user at any time with specific PmmC
files as further enhancements are made in the future. This allows the user to benefit
from those latest features.
• Allows the user to upload a new Operating System for example to change the de vice
from a serial command driven platform into a high level language platform such as
4DGL (4D Graphics Language). A built-in higher level language such as 4DGL allows
user programs to be run directly within the PICASO processor where the graphics
operations can be performed much faster than sending the commands serially. This
avoids serial bottle necks for those graphics intensive applications as well as allows
the user to take complete control of all of the internal resources of the module.
The latest PmmC system file for the µVGA-PICASO-MD1 can be downloaded from:
The heart of the µVGA-PICASO-MD1 module is its rich graphics oriented command set.
This comprises of powerful instructions that can draw lines, circles, rectangles, text, images,
etc. to provide a full graphical user interface. The commands can be either sent via the
serial link or called as functions from the built-in library if the pla tform is running a higher
level language such as 4DGL. The command set is divided into 2 groups:
• General Command Set
o These commands are generic and are standard commands that apply across
all applications.
• Extended Command Set
o The µVGA-PICASO-MD1 module supports an external micro-SD (µSD)
memory card. This feature is not implemented yet, but when it becomes
available the revised firmware will be available for download to re-program
the module via PmmC operation. This Extended Command set will be
documented fully when it is implemented. Check the 4D website for details.
The General Command set is described in detail in the following section with its syntax.
Please note that all command examples listed below are in hex (00hex). Due to the high
resolution nature of the µVGA-PICASO-MD1, a pixel horizontal and vertical address
coordinates (x, y) will not fit into a single byte, which can only hold a maximum value of
255. Therefore each of the x and y pixel address data are represent ed as a 2 byte value,
x(msb:lsb) and y(msb:lsb). The most significant byte (msb) is transmitted first followed by
the least significant byte (lsb). This format is called the big endian. So for a 2 byte
coordinate value of 013Fhex the byte order can be shown as (01hex),(3Fhex).
NOTE:
separators such as commas ‘,’ or spaces ‘ ‘ or brackets ‘(‘ ‘)’ between the bytes. The
examples show these separators purely for legibility; these must not be included when
transmitting data to the µVGA.
When a command is sent, the µVGA will reply back with a single acknowledge byte called
the ACK (06hex). This t ells the host that th e command was und erstood and the operation is
completed. It will take the µVGA anywhere between 1 to several milliseconds to reply back
with an ACK, depending on the command and the operation the µVGA has to perform. If the
µVGA receives a command that it does not understand it will reply back with a negative
acknowledge called the NAK (15hex).
If a command that has 5 bytes but only 4 bytes are sent, the command will not be executed
and the µVGA will wait until another byte is sent before trying to execute the command.
There is no timeout on the µVGA when incomplete commands are sent. The µVGA will reply
back with a NAK for each invalid command it receives. For correct operation make sure the
command bytes are sent in the correct sequence.
When transmitting the command and data bytes to the µVGA, do not include any
www.4dsystems.com.au
µVGA-PICASO-MD1
10
6.1 General Command Set
General Command Set Serial 4DGL
(A) Add User Bitmapped Character√
(a) Set Viewing area√
(B) Set Background Colour√
(b) Place Text button √
(C) Draw Circle√
(c) Block copy and Paste (bitmap copy)√
(D) Display User Bitmapped Character √
(E) Erase Screen√
(e) Draw ellipse√
(F) Font Size√
(G) Draw TrianGle√
(g) Draw Polygon√
(I) Display Image √
(L) Draw Line√
(O) Opaque or Transparent Text √
(P) Put Pixel√
(p) Set pen Size√
(R) Read Pixel√
(r) Draw rectangle√
(S) Place String of Text (unformatted/bitmapped)√
(s) Place string of Text (formatted)√
(T) Place Text Character (formatted)√
(t) Place text Character (unformatted/bitmapped)√
(V) Version/Device Info Request √
(v) vsync Lock √
(Y) DisplaY Control functions√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
√
NOTES:
Serial
4DGL : Those commands that can be executed from user application code written in 4DGL via
: Those commands that can be sent via the serial link and executed by the PICASO module.
cmd : 41hex, Aascii
group : selects the appropriate bitmap format
00hex selects the 8x8 bitmap format
01hex selects the 16x16 bitmap format
02hex selects the 32x32 bitmap format
numb : bitmap character number to add to memory:
0 to 63 (00h to 3Fh), 64 characters of 8x8 format when group = 00hex
0 to 15 (00h to 0Fh), 16 characters of 16x16 format when group = 01hex
0 to 7 (00h to 07h), 8 characters of 32x32 format when group = 02hex
data1 to dataN : number of data bytes that make up the composition and format of
the bitmapped character. The 8x8 bitmap composition is 1 byte wide (8bits)
by 8 bytes deep which makes N = 1x8 = 8. The 16x16 bitmap composition is
2 bytes wide (16bits) by 16 bytes deep which makes N = 2x16 = 32. The
32x32 bitmap composition is 4 bytes wide (32bits) by 32 bytes deep hence N
= 4x32 = 128.
Description : This command will add a user defined bitmapped character into the
internal memory. There are 3 different size bitmaps available, 8x8 format, 16x16
format and 32x32 format. The desired format is selected by specifying the appro priate
value in ‘group’.
Serial Syntax : cmd, lineStart(msb:lsb), lineEnd(msb:lsb)
4DGL Syntax : (refer to 4DGL programmers manual)
cmd : 61hex, a ascii
lineStart: specify line start position. 2 bytes.
lineEnd: specify line stop position. 2 bytes.
Description :This command sets the current screen viewing area. The PICASO chip
allocates its resources to its internal graphics engine as well as its processor to
execute user commands. For those applications that requir e fast graphics processing
and do not require full screen area, setting a smaller viewing area will allow the
PICASO chip to allocate more resources for processing the commands. Success is
followed by ACK return. If operation not successful, a NACK is returned.
Power-up or Reset default is full screen size.
www.4dsystems.com.au
µVGA-PICASO-MD1
14
6.1.3 Set Background Colour (B)
Serial Syntax : cmd, colour
4DGL Syntax : (refer to 4DGL programmers manual)