Firefly cap has no battery and is meant for indoor light harvesting

[Michael Ossman] wrote in to show off his newest project. He calls it the Firefly cap, which we think is something of a play on words. You can see that it serves as the cap of a Mason jar, but it also uses a supercap instead of a rechargeable battery.

Posts about firelfly jars go way back. And [Michael] mentions that a similar firefly project was his first embedded project. The concept uses LEDs suspended in a jar. When a light detector senses the target level of darkness, the lights inside begin to twinkle like their insect namesakes.

We like this design for two reasons. It’s aimed at collecting light in an indoor environment so you don’t have to worry about placing it in the sun. And it uses a super capacitor instead of a battery so this should truly keep going and going without wearing out the energy storage components. We also like the fact that although this is a Kickstarter project, everything you need to build your own is already available at the Github repository.

16FUSB — it's like V-USB for the PIC 16F628

If you have an idea for a fairly simple USB device but don’t want to invest in the more expensive microcontrollers, this library will be of interest to you. It’s a software implementation of the low-speed USB protocol for PIC 16F628. You can pick these up for around $2, and it just takes a few other components to complete the circuit. And hey, you don’t even need a proper PIC programmer to flash the code. This is the same chip for which we just saw an Arduino act as the programmer.

The circuit design looks exactly the same as the V-USB stack, which provides USB functionality to lower-end AVR microcontrollers. In addition to the chip you need a crystal oscillator, a couple of 3.6V zener diodes, and a handful of passive components. There are a couple of LEDs in the design, but we assume these are for feedback and are not crucial to the functionality of the circuit.

There’s no shortage of data included in the project post so you may want to bookmark this one for later reference.

Creating a multimedia elevator ride

[Ben Peoples] works in theatrical electronics. Sounds like fun, and here’s an example of the kind of stuff he does. We’re not sure what event this installation was used for, but if the elevator ride needed something flashy just think of what the party room must have looked like. These HDTV screens on the ceiling of the elevator play different clips when the elevator is moving up or down. The challenge for [Ben] was to find a way to make it work without tapping into the elevator electronics or requiring any button presses.

The first attempt at sensing the elevator’s travel was done with an accelerometer. The problem with this approach is that an accelerometer only senses change in acceleration and this method proved to be fairly error prone. [Ben] switched over to a reflective sensor which performed quite well. Since most of these sensors will only work within about an eighth of an inch he ended up building his own with a LDR and a couple of amber LEDs.

[via Reddit]

Arduino PIC programmer writes to 18F family

[Kirill] wrote in to share his Arduino-based PIC programmer. It is capable of writing to the 18F family of chips, including 18F2XXX and 18F4XXX. We think that’s pretty exciting because this line of chips has USB functionality and there are bootloaders out there that let you program them via USB. So if you wanted to build your own PIC dev-board (like this one) you can use your Arduino to flash the bootloader.

This post comes hot on the heels of the Arduino being used as a PIC 16F programmer. That hack has a rudimentary programming GUI, something that [Kirill] admits his lacks but has no plans to implement himself. Perhaps someone will do a little porting work to merge the projects, adding to the range of chips supported by this programming technique.

TI Launchpad as AVR ISP programmer

[Minifloat] is using his TI Launchpad development board as an In-System Programmer for AVR chips (translated). There are a ton of homebrew AVR programmers out there, and using an Arduino for ISP is quite popular. But recently we searched for a way to use the Launchpad as a programmer and didn’t find one. We’d venture to say this is the first.

There is one hardware modification that must be made. An external clock crystal (32.768 kHz) must be populated on the board. But since it was designed with the feature in mind that’s a pretty quick process. [Minifloat] followed Atmel’s ISP app note, and extended some of the code written for a different programmer to get things up and running. At first the device wouldn’t communicate with AVRdude, but that turns out to be a problem with the initialization conversation. AVRdude polls the connected programmer to see if it supports block mode, and the firmware on the MSP430G2211 wasn’t expecting this query. The problem was fixed and it now works.

It sounds like there are a couple of bugs left in the system. The first time AVRdude accesses the programmer after it has been plugged into the USB port it will fail. Subsequent attempts will succeed until the MSP430 chip is reset, or the USB connection is replugged. But if you’re just getting into the AVR line, this will let you figure out if you want to invest in a proper programmer.

BASIC for some beefy AVR chips

klBASIC is a BASIC interpreter written in C for AVR microcontrollers. [Karl Lunt] developed the project based on an assembly language BASIC interpreter for 68HC11 chips written by [Gordon Doughman]. The transition from assembly to C bulked up the code, so you’ll need a beefy AVR chip in order to store all of it.

The idea is that one AVR chip can run BASIC with just a serial monitor. But like this Arduino BASIC interpreter build, it would be a snap to run this with a keyboard and small LCD screen. We see binaries available for several different AVR devices including ATmega128, ATmega1284, and Xmega128. They range from 1.5k to 16k of program memory. We didn’t find a link to the source code (just these precompiled files) so we inquired with [Karl] to see if that is available. He’s reluctant to release the code because it’s “pretty much a mess” and doesn’t live up to his normal standards. If he codes for a living we can see how that may be embarrassing. If you’d like to lend a hand cleaning up the code, let him know by leaving a comment here and maybe he’ll release it for that purpose.

We find this interesting, but it’s tough to get excited about building one of our own. If this has inspired you, we’d love to hear some of your plans in the comments after the break. Perhaps we’d be prodded into another programming adventure based on your enthusiasm.