We recently heard it said of a hacker who pulled off a particularly nice VGA hack on an 8-bit microcontroller: “He knows all the bits, personally.” High praise, indeed. If you want to get on a first-name basis with a ton of transistors, then have a look at [Heinz D]’s Vacation Course in ATtiny13 Assembler (original in German, translated into English by robots here).
But be warned, this isn’t the easy way to learn AVRs. Not content with simply stripping away every layer of abstraction, this month-long “course” in AVR assembly starts off programming the chip initially with just two pushbuttons in its native machine language of high and low voltages. But still, especially if you can get a few assignments done in one sitting, you’re writing in the relative splendor of assembly language and uploading code with a proper programmer before long, because there’s a real limit to how much code one can toggle in before going mad.
There’s a beautiful minimalism to this entirely ground-up approach, and maybe it’s an appropriate starting point for learning how the machine works at its lowest level. At any rate, you’ll be able to lord it over the Arduino crew that you were able to get
blink.ino up and running with just a pair of mechanical contacts and a battery. Real programmers…
And once you’ve mastered AVR assembly language, you can recycle those two buttons to learn I2C or SPI. What other protocols are there that don’t have prohibitive timeouts? What’s the craziest code that you’ve ever entered bit by bit?
If your eyes are 20/20, you probably do not spend much time thinking about prescription eyeglasses. It is easy to overlook that sort of thing, and we will not blame you. When we found this creation, it was over two years old, but we had not seen anything quite like it. The essence of the Bear Paw Assistive Eating Aid is a swiveling magnet atop a suction cup base. Simple right? You may already be thinking about how you could build or model that up in a weekend, and it would not be a big deal. The question is, could you make something like this if you had not seen it first?
Over-engineered inventions with lots of flexibility and room for expansion have their allure. When you first learn Arduino, every problem looks like a solution for that inexpensive demo board and one day you find yourself wearing an ATMEGA wristwatch. Honestly, we love those just as much but for an entirely different reason. When all the bells and whistles are gone, when there is nothing left but a robust creation that, “just works,” you have created something beautiful. Judging by the YouTube comments of the video, which can be seen below the break, those folks have no trouble overlooking the charm of this device since the word “beard” appears 95 times and one misspelling for a “bread” count of one. Hackaday readers are a higher caliber and should be able to appreciate its elegance.
The current high-tech solution for self-feeding is a robot arm, not unlike this one which is where our minds went when we heard about an invention about eating without using hands, and we will always be happy to talk about robot arms.
Continue reading “Overlooked Minimalism In Assistive Technology”
The ATtiny85 microcontroller doesn’t have all that much of anything: 8 KB of flash, an 8-bit architecture, and only eight pins (three of which are taken up with power and reset duties). And that’s exactly what makes it a great fit for tiny little projects.
[Mimile]’s Tea Timer has a switch, a button, eight LEDs, and a buzzer. Flip the switch to “set” and button presses run through the desired steeping times. Flip it to “run” and you’re timing. The LEDs blink and the buzzer plays “Tea for Two” in squawky square waves. Wonderful!
But wait, how to control all of this I/O with just five pins? With one pin each for the two switches and one for the buzzer, that leaves only two pins for the eight LED display. [Mimile]’s fun solution is to use a binary counter (a 74HC393) and the remaining two lines to count and reset. That means toggling a pin very fast 255 times to light up all the LEDs. That’s a bizarre way to go, but we like it!
Hackaday has proven unable to resist the siren song of the ATtiny85. Whether teaching it to swear, to speak I2C, or to transmit analog TV signals, there’s just something about this cute little chip that invites you to test your mettle.
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”
[Mitxela] wanted to build a different kind of mouse, one that worked like an Etch-a-Sketch toy with one X knob and one Y knob. Armed with some rotary encoders and a microcontroller, that shouldn’t be hard. But when you use a pin-limited ATtiny85, you are going to need some tricks.
The encoders put out a two-bit Gray code and close a button when you depress them. Plus you need some pins for the V-USB stack to handle the USB interface. [Mitxela] decided to convert the encoders to output analog voltages using a simple resistor DAC. That would only require two analog inputs, and another anlaog input could read both switches.
One problem: there still wasn’t quite enough I/O. Of course, with AVRs you can always repurpose the reset pin as an analog pin, but you lose the ability to program the device at low voltage. And naturally, there’s a workaround for this too, allowing you to keep the reset pin and still read its analog value. You just have to make sure that value doesn’t go below about 2.5V so the device stays out of reset. Once that was in place, the rest went easy, as you can see in the video below.
Continue reading “USB Etch-a-Sketch-Style Mouse Is More Analog Than You’d Think”
We love squeezing every last bit of silicon goodness out of a tiny chip, or at least we delight in seeing it done. Today’s analog/digital hack is one of the sweetest we’ve seen in a while. And it’s also a little bit of a puzzle, so don’t scroll down to the answer until you’ve given the schematic a good think-over.
Continue reading “Craziest Pin-Saving LCD Trick Ever!”
DUO BINARY is a very, very small computer system in every possible sense. It runs on an ATtiny84, which has even got “tiny” in its name. The user interface is a single button for data entry and a single LED for feedback, making this binary keyboard look frivolously over-complicated. It uses a devilish chimera of Morse code and a truncated ASCII to enter data, and the LED blinks the same back at you.
We’re guessing that [Jack Eisenmann] is the only person in the world who can control this thing, and you can watch him doing so in the video embedded below. Continue reading “Minimal Computer And Operating System: One Button, One LED”