If you spend any time playing with Arduinos, ATtinys or looking at AVR spec sheets, you soon encounter a bewildering smörgåsbord of acronyms for various communication protocols. With examples such as I2C, LIN, SPI, TWI, USI, etc., it can get pretty confusing. What do these terms mean? How do you choose the chip that meets your needs? How do you make use of these protocols? This guide will take the mystery out of all these acronyms, and provide a brief overview of what they mean and how you use them in your projects.
Guide to Arduino Communications - [Link]
The ATTiny Candle is an LED candle. It uses a high brightness LED and some software to mimic the look of a traditional candle without the dangers associated with an open flame. I imagine they could be useful as movie props where you cannot afford to have a candle go out during a take or in your home in places not suitable for traditional candles such as in a wall niche or alcove.
ATTiny Candle - [Link]
If your Arduino project has minimal IO needs, you may want to consider shrinkifying it. This video demonstrates High Low Tech’s method for programming an ATTiny with Arduino code. Maker Randy Sarafan has designed an 8-pin Arduino programming shield to make the task easier. [via]
Shrinkify your Arduino project - [Link]
I’m still waiting for my cheap Bluetooth module from China which will serve as an input interface for my scoreboard project. In the meantime, I’ll show you how to convert your ATtiny microcontroller into a Pong game (with no input so far).
Tiny Pong: More fun with ATtiny45 and VGA - [Link]
Want to play Pong on your Oscilloscope? @ Hack a Day – [via]
I always have! I don’t know why, but I like the idea of using an oscilloscope screen as a general use video display. Why not? In my case it sits on my desk full time, has a large screen area, can do multiple modes of display, and is very easy control. Making an oscilloscope screen do your bidding is an old trick. There are numerous examples out there. Its not a finished project yet, so be nice. It is actually rather crude, using a couple parts I had on hand just on a whim. The code is a nice mixture of ArduincoreGCCish…
The software runs on an Attiny84 micro controller clocked at 16Mhz, paired up with a Microchip MCP42100 dual 100k 8 bit digital potentiometer though the Attiny’s USI (Universal Serial Interface) pins. This is a fast, stable and accurate arrangement, but it requires sending 16 bits every time you want to change the value of one of the potentiometers so its also very piggy. I was just out to have some fun and did not have a proper 8 bit DAC. This was the closest thing outside of building one.
This project has a total resolution of 256x256x1. This sounds like a lot of resolution but don’t get too excited. You can have only a few hundred to maybe 1000 pixels on screen before it starts flickering pretty badly. I am sure this can be solved by someone who is not using GCC commands for almost all of an Arduino script, furiously tying to shove 16 or 32 bits of data out of its SPI port PER PIXEL with an Attiny that has no dedicated SPI.
Want to play Pong on your Oscilloscope? - [Link]
I developed a nifty way to send data from any microcontroller to any PC running any operating system with zero components and hardware you probably already have sitting in front of you. Traditional interface methods (namely serial port and usb port, both have been referenced on Electronics-Lab) have drawbacks. For serial, you need a level converter IC (like a max232) and an archaic PC with a serial port, or a USB serial port adapter (many of which don’t run on Linux or newer versions of windows), and a crystal specifically chosen for transfer at a certain bit rate. FTDI makes a series of USB/serial interfaces, but they’re expensive and SMT only I don’t feel like paying even more for a breakout board just to communicate with a $1 microcontroller. Also, many ATMEL chips (most of the ATTiny series) don’t have rs232 capability built in, so you have to bit bang it in software (not fun). USB is another option, but requires a crystal and some level conversion circuitry, and isn’t supported by most small/cheap ATMEL chips. It’s built in some simple PICs (like some of the 18F series) but I don’t want to switch architecture just to send a few bytes to a PC! The V-USB project helps ATMEL chips bit-bang the USB protocol, and I’ve gotten it to work, but it’s not easy (their hello world program is hundreds of lines of code), and you have to mess with writing USB drivers or interfacing pre-made USB drivers with OS-specific solutions, it’s not fun either.
I’ve long wished there were an easier way! In this post, I demonstrate a simple way to send data from a microcontroller to a PC (and a more advanced second example showing bidirectional communication) using PC a sound card! Although the one built in most PCs would work, I decided to do it with $1.30 sound cards that are all over eBay. The chip sends pulses of data to the PC and a Python script (which can be run on virtually any OS) listens to the sound card with the pyAudio library and waits for data. When it’s received, it measures distances between pulses and dumps data values to the screen (optionally logging them to a CSV file ready for graphing by Excel or some other program). A series of calibration pulses precede the data stream allowing the PC to adapt to incoming data at any speed (no specific clock speed or crystal is required).
Although it’s not a refined method suitable for consumer applications, it sure is a useful hack for anyone looking to quickly exchange data between a microcontroller and a PC!
Sound Card Microcontroller / PC Communication - [Link]
Even upmarket digital multimeters with a built-in capacitance function are useless if you want to check out tiny capacitances, such as 2.7 pF or 5.6 pF. Usually the lowest measuring range is 2000 pF, which is a joke for RF designers and radio amateurs. Although the resolution of a 3.5-digit DMM resolution is 1 pF at this range setting, measurements below 200 pF or so yield results that are rough at best and ridiculous at worst. [via]
Please welcome ATtiny & The Low Picofarads – [Link]
Here is a complete tutorial in 9 easy steps for programming ATtiny chips from Atmel using an Arduino. Fills in missing pieces from other online guides
Program an ATtiny Using an Arduino - [Link]
This handy breadboard header for ATTiny 25/45/85 microcontroller is a new design based on the original idea from Tinkerlog. Maybe the most useful feature is that it can provide power to the vertical breadboard strips while connecting all six port pins to the horizontal strips. Other features are :
Breadboard header for ATTiny 25/45/85 - [Link]