It is useful! As expected, RAM and CPU consumption are major issues. Saving RAM by computing the data to send to the LCD line by line proved to only be possible for text and extremely simple graphics, even with overclocking. The timing requirements are far looser than those involved in generating video signals, but the refresh rate needed to avoid flicker is actually quite high, the LCDs are intended to be driven at 60 Hz. This leaves 260 microseconds to compute each line.
Digging around through some old parts recently, I came across an old Epson graphical LCD display that had on-board drivers, but no controller. The LCD is an Epson EG2401, reflective, no backlight, 256x64 pixels. It has drivers...one SED1190 driving the rows and four SED1180s driving the columns...but no on-board controller. The LCD is supposed to be hooked up to a SED1330 controller and SRAM, but since I didn't have such a thing, this LCD sat around in a junk box for years.
In 2003, George Marsaglia published a pseudorandom number generator based on repeated shift and XOR operations, a relative of the linear feedback shift register generators. The basic 3-shift PRNG is:
int xorshift() {
y ^= (y << a);
y ^= (y >> b);
return y ^= (y << c);
}
Character LCDs with HD44780/KS0066U-compatible controllers are a widespread standard in electronics equipment, and are readily available and accessible to the hobbyist. However, microcontroller I/O pins are a scarce resource, and these LCDs use a parallel interface that requires 11 pins for a full implementation of the 8-bit interface.
Updated the Amazon S3 library. s3tool now compiles (oops...seriously don't know how I missed that), and there's a couple tweaks, plus a new feature for generating index.html files for buckets.
I've put up the first version of my Amazon S3 library, referenced in the previous post. It should be considered early alpha at this point, but is fairly complete.
Amazon S3 is a web storage service by Amazon. Essentially, you get buckets you can store objects (files) in, and others can access those objects directly through the S3 service or via the web. This is particularly useful for hosting images and video...the storage and bandwidth go to their server farms, easing the load on your own server. Space and bandwidth are rather cheap ($0.15/GB for storage and $0.10/GB for bandwidth as of this writing), and you pay only for what you use.
Dug out my old iterated function system generator to make a new logo for the site. Some of the other results are in this gallery:
http://arklyffe.com/gallery/v/cg/chargetraces/
These are simply images of a large number of particle trajectories in a "lumpy" force landscape. In a simple example:
http://arklyffe.com/gallery/v/cg/chargetraces/spark.jpg.html
A second issue with using Xcode for editing Ruby is that it by default does not correctly comment code in Ruby files. This again is easy to fix:
Open the scripts menu, choose Edit User Scripts.
Select Comments: Un/Comment Selection
This will bring up a Perl script that Xcode uses to perform the comment/uncomment function. We need to modify this to recognize Ruby file types:
Replace:
# determine the type of file we have by looking for the #! line at the top
# careful--it might already be commented out!
my $commentString;