How much game can you get out of a chip with only 1 kB of flash memory and (five or) six free GPIOs? Well, you can get it to play the classic memory game, Simon. [Vojtak] is submitting this project for the 1 kB Challenge, but it looks like it’s already been used to teach simple microcontrollering to teenagers as well, so the code is actually straightforward to read, but full of nice features.
Neat tricks include sharing button-press sensing and LED driving on the same pin, which was necessary to make everything work on such a small chip. A simple linear-congruential pseudorandom sequence provides the variation, and it’s seeded by slow-clock/fast-clock timing jitter, so you’re probably not going to see the same sequence twice. (It’s not the best random number generator ever, but it’ll do.) If that weren’t enough, high scores (and the random seed for the game) are saved to EEPROM so that you can brag to your friends or re-live your previous moments of glory.
The board is easily solderable together as well. This is a fantastic beginner project, with details in the code that everyone can learn from. It’s a great game, and a great demonstration of what you can do with a dollar’s worth of parts and 1 kB of code.
Continue reading “Tiny Game of Simon on an ATtiny13”
When you take a microcontroller class in university, one of the early labs they have you drudge through on your way to, promised, mastery over all things embedded, is a tiny music generator.
It’s a more challenging lab than one would expect. It takes understanding the clock of the microcontroller and its sometimes temperamental nature. It takes a clear mental picture of interrupts, and is likely one of the first experiences a burgeoning designer will have worrying about the execution time of one of their loops. Also tables, data structures, and more. It even requires them to go out of their comfort zone a learn about an unrelated field, a challenge often faced in practicing engineering.
Luckily [Łukasz Podkalicki] has done a great job of documenting the adventure. He’s got everything from the schematic and code to the PWM traces on the oscilloscope.
It’s also worth mentioning that he’s got a few other really nice tutorials for the ATtiny13 microcontroller on his blog. A tiny party light generator and a IR receiver among them.
When [b.kainka] set out to make the world’s simplest RF detector, he probably didn’t realize it would be as easy as it was. Consisting of only a handful of components and thirty eight lines of code, he was able to make an RF detector that works reasonably well.
The microcontroller running the code is an ATtiny13 on a Sparrow board. He’s using an everyday LED as a detector diode and an internal pull-up resistor in the ATtiny13 for the bias voltage. The antenna runs off the LED’s anode. To make it sensitive enough, he switches on the pull-up resistor for a tiny fraction of time. Because an LED can act like a small capacitor, this charges it to a few volts. He then switches the pullup off, and the voltage across the LED will start to discharge. If there is an RF signal present, the discharge voltage will be less than the discharge voltage with no signal present. Neat stuff.
Be sure to check out his Hackaday.io page linked at the top for full source, schematics and some videos demonstrating his project.
Continue reading “Using an LED as a Simple RF Detector”
There are smaller microcontrollers than the ATtiny13. Some ARM chips will fit on the head of a large pin, and even in Atmel world, the ATtiny10 comes in a tiny SOT-23-6 package – a size normally reserved for surface mount transistors. The ‘tiny13, though, can be programmed with just about any ISP and comes in an 8-pin DIP. It’s the bare minimum if you’re looking to break out of the world of Arduino, and you can do some pretty cool things with it, like playing some holiday audio with an SPI Flash chip.
[Vinod] tried opening up a cheap camera pen, but in the course of disassembly a few traces broke. He was now left with a 4Mbit SPI Flash chip. This was obviously the time to investigate what could be done with a small microcontroller and a huge amount of Flash. and the Attiny13 audio player was born.
The circuit uses one PWM for audio out, and reads audio directly from the Flash chip. The UART on board the ‘tiny13 is used to update the Flash, and there’s also a switch to select between play and record. If you’re counting, that means there are 4 pins for the Flash, 2 pins for the UART, 1 for the switch, one for the audio output, and the power and ground rails, all in an 8-pin package. That’s a pretty cool way to use one pin for two different functions.
You can check out a video of the project in action below.
Continue reading “Holiday Cheer From The ATtiny13”
These days they’ve been replaced with character LCD displays or even brightly colored graphical displays, but if you’re trying to display data on one of your projects, there’s nothing like the classic red glow of a red seven segment display. [five volts] got his hands on a few ancient segmented displays, but controlling even one took up more microcontroller pins than he was ready to spare. The solution to this problem was to use a shift register and control multiple segment displays with an 8 pin microcontroller.
[volts] is using an ATtiny13 to control six seven segment displays. Each display is mounted on a hand-etched board, with a shift register and a handful of resistors soldered to the back. By having the microcontroller shift bits down the line, [volts] created an extremely easy to interface 6-digit segment display, and the entire device can be expanded even more.
The board files and schematics are available on [volt]’s project page. A great project if you’re just starting out to etch your own boards.
[Karl Lunt] wrote in to share his LED firefly project. His goals for the project were to develop a low-power, low parts count module that can sense when it’s dark and then mimic the blinking patterns you’d associate with its biological namesake.
We like his design which uses a coin cell battery holder as the chassis for the project. The ATtiny13 driving the hardware is held in place by the two power wires. This lets him flash new firmware by rotating the chip and plugging in a little adapter he build. The LED connection might look a bit peculiar to you. It has a resistor in parallel, which doesn’t satisfy the normal role of a current limiting resistor. That’s by design. [Karl] is driving the LED without any current limiting, which should be just fine with the 3V battery and short illumination time of the diode. The resistor comes into play when he uses the LED as a light sensor. Past firefly projects included light dependent resistors to detect light and synchronize multiple units. [Karl] is foregoing the LDR, using the LED with a resistor in parallel to combat the capacitive qualities of the diode. As we mentioned, this senses ambient light, but we’d love to see an update that also uses the LED to synchronize a set of the devices.
We know exactly what [Dan] is going through. We also bought a cheap wireless doorbell and are plagued by the batteries running down. When that happens, the only way you know is when people start pounding on the door because you’re not answering the bell. Well no more for [Dan]. He built a backup system which monitors the voltage of the batteries on the chime unit.
You can see the small bit of protoboard he used to house the microcontroller and the UI. It’s an ATtiny13 along with a green LED and a single push button. The idea is to use the chip’s ADC to monitor the voltage level of the pair of batteries which power the chime. When it drops below 3V the green LED will come on.
First off, we wish these things would come with better power supply circuits. For instance, we just replaced the CR2032 in an Apple TV remote and measured the voltage at 2.7V. That remote and the chime both run from a 3V source. Can’t they be made to work down to 1.8V? But we digress.
In addition to monitoring voltage [Dan’s] rig also counts the number of times the chime has rung. Every eight seconds it flashes the count in binary, unless he presses the red button to clear the count. This is shown in the video after the break. We guess he wants to know how many times this thing can be used before running the batteries down.
Seriously though, for a rarely used item like this how hard would it be to use ambient light harvesting to help save the batteries? Looking at some indoor solar harvesting numbers shows it might be impossible to only power this from PV, but what if there was a super-cap which would be topped off with a trickle from the panels but would still use the batteries when that runs down?
Continue reading “Wireless doorbell battery monitor”