Blue Flower Technical Reference
Blue Flower/Flor Azul is a public art project by Federico Muelas, to be
constructed at the University of New Mexico's Albuquerque campus. The
main web page for the project can be found at
www.federicomuelas.com. Concept and objectives there should be reviewed
before continueing here.
The purpose of these pages is to be a place where people taking part
in the construction, and later operation, of the project to find specifications,
instructions, and to download programs.
The display screen is NPD-LCD film pixels arranged as a disc 70 pixels
high by 70 pixels wide, with a diameter of about 28 feet. See
www.scienstry.us/technology.htm for information about the film. A
Windows XP (™ Microsoft) PC controls the on/off state of the pixels via
EIA-485 serial link to PIC (™ Microchip) microcontrollers. The PICs select
the bytes from the asyncronous stream and generate clock and strobe pulses for
shift registers. Parallel outputs of the shift registers drive TRIAC
triggers to apply power to the pixels.
- Display Specifications - Pixel layout, PC to
display serial packet format and timing, etc. This data is common to
the PC program that generates the serial packets, the PIC/shift register/TRIAC
control PCBs at display, and to pixelated video to the PC.
- BluFlwrPlay Help - The program that sends
pixel control packets to the display. Use instructions, error codes.
- place holder
- place holder
- Display Controllers - PIC, A6818, TRIACs
and other hardware at display panels.
- Pixelating Video In - One of the objectives
is driving the display with video of something called "ink".
note - Virus scan the archive file before continuing! My PC does a weekly
scheduled scan, and I scan files before uploading to server. After that they're out
of my control. Also, your scanner may find something mine missed.
- BluFlwrPC_Setup081022.zip -
The contents of this archive creates directories and configuation files on the
PC. Test sequences and sample data are also saved to the disk drive.
Run the BluFlwrPC_Setup program contained in this archive
before running before programs in following archives.
Instructions for running BluFlwrPC_Setup
(also included in archive). If you ran BluFlwrPC_Setup081004.exe, there
is no need to run this setup. The only change was making the error
codes compliant with Windows' API rule for user created codes.
- BluFlwrPlayInstall081005.zip -
Installs the program that sends pixel on/off data to the display. Only needed
on PC that is connected to the display, backup PCs, or PCs used for testing
panels. Requires BluFlwrPC_Setup before
installation. Installations done with versions before 081004 must be redone.
Instructions for running
BluFlwrPlayInstallyymmdd (also included in archive).
- BluFlwrBuildInstallyymmdd.zip -
Installs BluFlwrBuild.exe, a program that makes a sequence file from a group of
bitmap files each containing one frame.
(Short Packet Test) -
Requested by Rob. Currently contains BluFlwr1ChTest.exe which
continuously sends packets of break, a mark and one data byte. To get
correct timing for the break and mark I had to use assembly count down loops
instead of Windows API functions. Unfortunately, this means that the
starting values for the loops are dependent on CPU clock.
The user has
to change the "Break Timer Count" until the "Start Data Break" is 572uS. To
ensure that the break is not shorter than 572uS, adjust till the break is
575uS to 580uS on the oscilloscope. When you get close, setting the
oscilloscope horizontal to 100uS per division will make the measurement easier
to do. This procedure only needs to be done once per
computer if you remember to write the number down. For the full program
this number will stored in the configuration file. Mark after
break time is calculated in the program when Start button is
clicked. A break is supposed to be 22 bit times, and the mark 3 bit
times; so mark count is break count multiplied by 3 divided by 22.
This was tested with the oscilloscope at work using a borrowed
Pentium III laptop that didn't list the CPU clock speed in My Computer |
Properties. A "Break Timer Count" of 125000 gave a break time of
585uS, so I EWAGed the 300000 default for newer computers.
Value of the data byte can be set, the default 85 is alternate "1"s
Default packet time of 25mSec should give stable display on an
oscilloscope with horizontal sweep speeds of 2mSec per division and
faster; even if break time is much, much too long. As break time
gets closer 572uS, sweep speed should be adjusted so one or two packets
are a stable display (to 100uS/div as mentioned above). As sweep speed is
increased, packet time can be decreased. Shorter packet times results
in more sweeps per second. With more sweeps, intensity can be decreased
and still have a bright enough trace. With intensity turned down, sharper
focus is possible, making accurate reading easier.
Packet time can be set from 3mSec to 2147483647mSec; a warning box, with
"OK" and "Cancel" buttons, pops up for times over 10 Seconds (which would be
ridiculous). A 3mSec minimum ensures a 1.75mSec idle (Mark) after the
1.25mSec of break plus data. If 0, 1 or 2 is in the textbox when Start
button is clicked, you will get a popup telling you to change it.
One more note about oscilloscope setup. If scoping RS-232 output
of computer or RS-485 "A" line; use positive slope trigger, and remember that
the signal is inverted. If scoping at logic (TTL/CMOS/PIC) pins or
RS-485 "B" line, use negative slope trigger.
Decompress BluFlwr1ChTest.exe to any folder you like. It not dependent
on any other files. The port is compiled in to use COM1, but I can easily
recompile if a different port is needed.
Sorry to anyone who knows how to use an oscilloscope, I'm
trying to include enough detail for beginners.
This collection of pages contain, or refer to, material not created by
Dale Yarker; these items are identified as such on the page where the item or
reference appears. These items are not subject to the copyright notice
below. Permission to include an item in this collection of pages
was granted by the item's creator; this permission may, or may not,
include copying the item outside the context of the project. Permission
to include references via URL links is considered implicit by their
presence on the Internet.
Copyright © 2008 Dale Yarker.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled
"GNU Free Documentation License".