Firmware (PIC)

LED Toy main page Hardware design files Host software Images

 ledtoy-fw-10 (31-JAN-2006)
ledtoy-fw-10.tar.gz (30 kB)


  • usage now contains detailed syntax description
  • usage confused $ARGV[0] with $0
  • added option -A to produce assembler output for an image file
  • pgm.asm, Makefile: build default image on the fly instead of using a hard-coded version

 ledtoy-fw-9 (29-JAN-2006)
ledtoy-fw-9.tar.gz (30 kB)


  • wait 1 ms before checking online status to let line settle
  • moved illumination sensor experiment into new file
  •, added experimental code for capacitive sensor
  • Makefile: experimental modules can now be selected
  • object type is now implicit, indicated by image width (item is a sequence if the width is zero)
  • the gap can now be extended by adding an image-specific flyback interval
  • image specification can now contain flyback gap, as trailing number of pixels separated with two slashes (e.g., //100)
  • display of gap and wide image is now interrupted if there is a pending button down change
  • don't turn off pull-ups if not reading the button (revert to version 3 behaviour)
  • added support for V4 hardware
  • new option "-c 0x" to cut the firmware at address 0x
  • pgm.asm: hard-coded a smiley, such that there is something to see even with only the initial programming

 ledtoy-fw-8 (26-DEC-2005)
ledtoy-fw-8.tar.gz (28 kB)


  • made display loop show 4*80% light, instead of 3*70%+90%
  • correctly adjusted the delays in the read-from-Flash display loop
  • display memory usage statistics
  • use "wide" image format if the image has white lateral borders
  • load "wide" images into RAM if they are less than 24 pixels wide
  • type 0 objects (regular images) now have the width in the lower word of the header, just like "wide" images
  • "open" used $_ instead of $_[0], which worked by sheer coincidence
  • recalculated nap ramp to range from 80-2680 us instead of 20-2000 us
  • pgm.asm: changed default nap from 600 us to 940 us
  • new script to calculate the nap ramp
  • Makefile: clean up after failed build with "rm -f" instead of "rm -rf"
  • changed file mode from 644 to 755
  • new script to make a debugging dump of a compound firmware binary
  • images can now be combined with the bit operators & (and), | (or), ^ (xor), and ~ (not)
  • si*.xbm: redesigned the symbols and removed entries above three
  • changed timeout in "run" when button is never released from T_CONFIG to T_IDLE
  • Makefile: made pgm.bin "phony", so that "make download" will always rebuild the compound firmware
  • README: described how to replace dead firmware
  • added support for image sequences (see README and faces.seq)

 ledtoy-fw-7 (25-DEC-2005)
ledtoy-fw-7.tar.gz (24 kB)


  • Makefile: added $(IMAGES) to "dist" dependencies
  • pgm.asm: removed tovec[hl] left over from earlier versions
  • added environment variable LEDTOY_IMAGES to set user-provided list of images
  • modified display loop to never activate unwanted pixels

 ledtoy-fw-6 (23-DEC-2005)
ledtoy-fw-6.tar.gz (23 kB)


  • renamed "*_image*" and "*_IMAGE" to "*_select*" and "*_SELECT", respectively
  • added support for "wide" images
  • xbm parser now also accepts xv's "X11 bitmap" format
  • ufo.xbm: example "wide" images

 ledtoy-fw-5 (20-DEC-2005)
ledtoy-fw-5.tar.gz (21 kB)


  • now directly converts X bitmaps to binary data
  • removed bitmap2asm.c
  • Makefile: removed rule for
  • pgm.asm: fixed LLB24V1 typos (should be only one L)
  • moved image conversion (pin swapping and polarity inversion) from to

 ledtoy-fw-4 (19-DEC-2005)
ledtoy-fw-4.tar.gz (22 kB)


  • turn off pull-ups if not reading the button
  • pgm.asm: removed some unused constants
  • pgm.asm: removed padding before the image
  • use image number instead of pointer position to detect last image
  • bitmap2asm.c: added option -b to produce binary output
  • new script to merge firmware with images
  • README: added step-by-step instructions for downloading new firmware and images
  • added support for V3 boards (software is identical to V2)

 ledtoy-fw-3 (4-DEC-2005)
ledtoy-fw-3.tar.gz (20 kB)


  • cleaned up hardware property handling
  • added support for V2 boards
  • Makefile: clarified warning why we pretend to use an 16F819
  • Makefile: added -bp option for recent versions of picp (using 0.6.7)
  • README: user should no longer configure IMAGES
  • Makefile: made pgm.hex depend on "Makefile"
  • timeout 0 is now infinite
  • to avoid ambiguities, menu items are now indicated with two adjacent LEDs instead of one
  • pgm.asm, did a bit of cleanup

 ledtoy-fw-2 (25-NOV-2005)
ledtoy-fw-2.tar.gz (20 kB)


  • initial public release
  • moved cover.fig to the hardware package

Last update: 31-JAN-2006   Werner Almesberger