The folks at Ivmech recently had a need for some new hardware. They needed a small, cheap device able to sense some analog values, toggle a few digital pins, and log everything to a computer. What they came up with is the IViny, an extremely small data acquisition device built around the ATtiny85, capable of logging data to a computer.
The IViny features two digital channels and two 10 bit analog channels, just like you’d find in any ATtiny85 project. Power is supplied over USB, and a connection to a computer is provided by V-USB. There’s also a pretty cool Python app that goes along with the project able to plot the analog inputs and control the digital I/O on the device.
It’s not exactly a fast device – the firmware only supports 100 samples per second, but an upcoming firmware upgrade will improve that. Still, if you ever need to read some analog values or toggle a few pins on the cheap, it’s a nice little USB Swiss army knife to have.
Most all of us recall the Blinking Screen of Death on original NES systems. This was caused by a bad connection between the cartridge and the NES cartridge connector. For whatever reason, it became a very popular idea to give a quick blow down the cartridge, even though this didn’t really help. [Dale] decided to play on this annoying problem by making the NES Blow Cart!
Inspired by a previous cartridge hack, [Dale] mounted a custom made circuit sporting the ever popular ATtiny85 in a Super Mario / Duck Hunt cartridge. A small microphone sits where the original cartridge connector was, along with the on/off switch and program header. A quick blow triggers the ATtiny85 to play a song.
The most difficult part for [Dale] was to figure out how to get the ATtiny to play “music”. This was solved with the discovery of a library called Rtttl. This allowed him to take old Nokia Super Mario and Zelda ringtones and get them on the Attiny85. All files, including the rtttl library are available on his github. Be sure to stick around after the break for a video of the project in action.
Continue reading “NES Cartridge Hack Makes Great Novelty Gift”
There has recently been a huge influx of extremely small dev board based on the ATtiny85. This small 8-pin microcontroller is able to run most Arduino sketches, and the small size and low price of these dev boards means they have been extremely popular. The Digispark was among the first of these small boards, and now the creator is releasing a newer, bigger version dubbed the Digispark Pro.
The new board isn’t based on the ‘tiny85, but rather the ATtiny167. This larger, 20-pin chip adds 10 more I/O pins, and a real hardware SPI interface, but the best features come with the Digispark Pro package. There’s real USB programming, device emulation, and serial over USB this time, and the ability to use the Arduino serial monitor, something not found in the original Digispark.
There are also a few more shields this time around, with WiFi and Bluetooth shields available as additional rewards. Without the shields, the Digi Pro is cheap, and only $2 more per board than the original Digispark.
Deep in the Colorado foothills, there are two radio transmitters that control the time on millions of clocks all across North America. It’s WWVB, the NIST time signal radio station that sends the time from several atomic clocks over the airwaves to radio controlled clocks across the continent. You might think replicating a 70 kW, multi-million dollar radio transmitter to set your own clock might be out of reach, but with a single ATtiny45, just about everything is possible.
Even though WWVB has enough power to set clocks in LA, New York, and the far reaches of Canada, even a pitifully underpowered transmitter – such as a microcontroller with a long wire attached to a pin PWMing at 60kHz – will be more than enough to overpower the official signal and set a custom time on a WWVB-controlled clock. This signal must be modulated, of course, and the most common radio controlled clocks use an extremely simple amplitude modulation that can be easily replicated by changing the duty cycle of the carrier. After that, it’s a simple matter of encoding the time signal.
The end result of this build is an extremely small one-chip device that can change the time of any remote-controlled clock. We can guess this would be useful if your radio controlled clock isn’t receiving a signal for some reason, but the fact that April 1st is just a few days away gives us a much, much better idea.
Atmel’s ATtiny10 is their smallest microcontroller in terms of physical size – it’s an SOT-23-6 package, or about the same size as surface mount transistors. The hardware inside this extremely bare-bones; three I/O lines, 1kB of Flash, 32 bytes of RAM, and a reduced AVR core with 16 registers instead of 32. With such a minimal feature set, you would think the only thing this micro would be good for is blinking a LED. You’d be right, but [cpldcpu] can blink a LED with the ‘tiny10 over USB.
The V-USB interface usually requires about 1.5kB of Flash in its most minimal implementation, and uses 50 bytes of RAM. This just wouldn’t do for the ‘tiny10, and although [cpldcpu] is working on a smaller, interrupt-free V-USB, there were still some hurdles to overcome.
The biggest issue with putting code on the ‘tiny10 is its reduced AVR core – on the ‘big’ 32-register core, direct memory access is two words. On the ’10, it’s only one word. AVR-GCC doesn’t know this, and no one at Atmel seems to care. [cpldcpu] worked around this problem using defines, and further reduced the code size by completely gutting V-USB and putting it in the main loop.
It’s not much, but now [cpldcpu] can blink an LED with a ‘tiny10 over USB. If you’re wondering, 96.4% of the Flash and 93.8% of the SRAM was used for this project.
[Karl] was in need of a hardware random number generator, but is needs had a few caveats: it needed to be cheap, and sufficiently random. Random number generation can get quite crazy with Geiger tubes, lava lamps, and radioactive decay, but a much smaller solution was found in an 8 pin AVR microcontroller.
The solution uses AVRentropy, a library that uses the watchdog timer’s jitter in AVR microcontrollers to provide cryptographically secure random numbers. Setting up the circuit was easy – an ATtiny45 microcontroller was connected to a cheap chinese USB to serial converter. Three wires, and the circuit is complete. The code was simple as well; it’s just a call to initialize the entropy and write the bits to the serial port.
There are a few drawbacks to this build. Because the entropy library must wait until enough entropy is gathered, it can only produce about two 32-bit numbers per second. That’s all [Karl] needed for his application, though, and with an enclosure made from a wine cork and marble, he has the prettiest and smallest random number generator around.
[Tyson’s] family went with creating rather than buying Christmas presents last month, which gave him the opportunity to build some electronic fireflies for gifts. He drew inspiration from a similar firefly project we featured last year, but expanded on the original model by designing dedicated PCBs and housings for each of his firefly pieces.
Although he’d settled on using ATTiny85’s for this project, [Tyson] was fresh out of through-hole versions. He decided to skip the prototyping phase and go right for fabrication, cranking up the laser-jet printer for some toner-transfer, which successfully produced 4 functioning boards (and 3 failures). The fireflies were [Tyson’s] first attempt at SMD soldering, and we’d have to say it’s a job well done; he reflowed each board with a cheap-o heatgun from Harbor Freight.
After some hiccups with fuse programming, [Tyson] got the code uploaded and the fireflies illuminated. Swing by his site for the nuts and bolts on construction, then snag the project files here. (Direct .zip download)