The Stack Overflow podcast is back! Listen to an interview with our new CEO.

Hot answers tagged

40

The datasheet shows that current decreases at lower frequencies. Around 1 mA at 1 MHz running at 5 V. More like 5 mA at 8 MHz running at 5 V. You can save quite a bit by using lower voltages as well, as you can see. For really big savings use a sleep mode. Read about Power saving techniques for microprocessors. (Edited to add) To amplify on my remarks, ...


11

I soldered wires to pads to be sure the connection was good, and used those wires for programming from the Uno. Then the programmer worked, without any edits to the command lines as posted in the question. I ran a few variations and was able to answer all my questions, and a few more besides: The "Yikes! Invalid device signature" error was being caused by ...


9

This schematic shows a complete connection of a blinking led. Red cable = +5V (pin 8) White cable = Ground (pin 4) Resistor = 1 end at pin 5 (IO 0) and the other in the LED anode (+) Led anode (+) in the resistor, cathode (-) (small leg) in the ground Resistor = 330 Ohms The arduino in the picture is not necessary, just used to give power. But in the video ...


9

There is a lot you are missing. Such as: SoftwareSerial is using RAM. The system stack is using RAM. The Arduino core software is using RAM. There's plenty more going on than just your sketch. For instance, where do you think it stores the current millis() and micros() counts? Where do you think incoming serial data gets buffered? Where do you think your ...


8

Digispark made a lot of these as part of a "cheap Arduino USB interface" project a while back. This is my Digispark, it's pretty cute: They have a web page here. I got them for about $2 each. The board has the ATtiny85, a voltage regulator, and a handful of other parts. Schematic (courtesy of Digistump Wiki): More information about the Virtual USB idea ...


8

The Arduino EEPROM library is compatible with the ATTiny range of AVR microcontrollers as the library itself is built on the standard Atmel AVR avr/eeprom.h 'library' so it is compatible with all the AVR microcontrollers. The EEPROM also doesn't take to being written or read to often as EEPROM can wear very quickly. Reading though does not cause much damage ...


7

You can download a version of arduino-tiny for IDE 1.5.x from here.


7

You can't change the pins. ArduinoISP uses the SPI interface on pins 10-13 which is provided by the underlying AVR hardware.


7

Since the ATTiny can easily run at 5V I don't see any problem with programming it at 5V levels and then run it at 3.3V. Is that correct? Yes. But if there are any components on the board that can't run at 5V then you must provide some way of protecting them from the excessive voltage. If I change the fuses on Tiny to run it at 3.3V can I still use the 5V ...


7

This is absolutely nothing to do with "why can't the atmel attiny family delay over a minute?". It is all to do with the way that C++ works. See my page about Integer arithmetic and overflow. To excerpt from that: On the Arduino (Uno) platform, what do you think will be printed here? void setup () { Serial.begin (115200); Serial.println (); ...


6

Put the address in EEPROM. It's still "on the chip" but it can be programmed independent of the flash, and can be changed on the fly if deemed appropriate.


6

Ignacio Vazquez-Abrams has already outlined the schematics. There must be a C program compiled and uploaded to it, just like an Arduino board would have. There are however some differences between a fully equipped Arduino board with an ATMega328P and a bare ATtiny85 you would have to care for in your code: A bare ATtiny85 runs at 1 MHz (8 MHz internal ...


6

Short answer - no. It's not left out, on the contrary. But before addressing to the compiler error you mentioned, a small clarification: I downloaded the hardware from https://code.google.com/p/arduino-tiny/ The link you provided is not hardware, but software called the ATtiny core files. It contains the necessary files that will help you compile and ...


6

See the analogPinToChannel function. static const uint8_t A0 = 6; static const uint8_t A1 = 7; static const uint8_t A2 = 8; static const uint8_t A3 = 9; ... #define analogPinToChannel(p) ( (p) < 6 ? (p) : (p) - 6 ) Using A2, which is 8, will return 2 (8-6) from the analogPinToChannel function. Using 4 will give 4. There is no (useful) analog ...


5

attiny is missing an option required to allow the Manchester library to function properly on ATtinyX5 devices, specifically definition of __AVR_ATtinyX5__ when a device is selected. In fact, it's missing quite a few things. The package I use for ATtinyX5 support is arduino-tiny. I have verified that it defines that symbol properly. I recommend that you ...


5

Yes. As given in the datasheets, normal ATtinyX4/X5 chips can run with a supply between 2.7 and 5.5V inclusive, whereas the low-power versions can run between 1.8V and 5.5V. Mind the speed restrictions when running at lower voltages though; see the "Electrical Characteristics" section of each datasheet to determine the maximum characterized speed for a ...


5

Assuming the lock bits on the device haven't been set, sure. Simply prepare the Arduino for ArduinoISP, hook up the ATtiny45, and perform a read using AVRDUDE instead of a write (-U flash:r:foo.hex:i).


5

You can setup interrupts on the Attiny with some different code, but it works the same way. It's important to note that PIN Change Interrupts are triggered at BOTH Rising and Falling Edge Pins: Using the Arduino-Tiny Cores Below is a sample code which used a Pin Change Interrupt on PB1 which switches an LED on and off on PB4. //Includes #include <avr/...


5

Here is the absolute minimal schematic required to blink a LED beyond power and decoupling: Refer to "Which resistor to use for this LED" to calculate the appropriate value for R1.


5

There are several problems with your program as shown that make a good answer impossible. After I list those problems, I'll then proceed to give an answer, partly good, partly bad. The good part is that the 432-bytes-of-code program shown below should send all the indicated text strings, in the proper order and separated by appropriate delays. The bad ...


5

You get this error, because the ATTiny85 doesn't have full I2C hardware. It only as an USI (Universal Serial Interface). This can be utilized to do the rest of the I2C protocol via software. There are some libraries out there to do that, most of them are somewhat named TinyWire. There were dedicated libraries for master and slave operation named TinyWireM ...


5

2.9V doesn't sound too bad. See a datasheet for the CR2032 I found: It looks like slightly more than 2.9V would be the expected voltage for up to 600 hours. 3.2V looks like it is fully charged, and won't stay at that level for long. Having said that, 200 µA current sounds like a lot. You should be able to get it down to 6 µA. Perhaps post your schematic? ...


4

I had exactly this problem. If the ATtiny is set for external clock, then the ArduinoISP will not be able to program it without an external crystal. Connected a 16 MHz crystal and 2 capacitors and worked perfectly. (I was then able to set ATtiny to internal clock, remove the crystal, and then worked perfectly without the crystal.)


4

Yes, it is possible. Note that the FTDI chip (assuming that is what you have) can be accessed as either Virtual Com Port VCP or D2XX. Where VCP is the traditional method of using them as Serial Ports with avrdude calling "-c arduino -P COM3 -b115200". However the later D2XX method allows for the pins to be Bit Bang'ed. One can see in this tutorial it is ...


4

Having struggled through this myself, I can confirm that Joel's solution works. There are quite a lot of posts around that suggests that you can't get the Manchester to work with Arduino1.0x and you need 0020. But you can. The key is to use the arduino-tiny from the link above, put the tiny folder which you get from there in /hardware and then rename it ...


4

The issue you face is that RCSwitch does not seem to support receive mode for ATtiny. This is what you can find in RCSwitch.h: // At least for the ATTiny X4/X5, receiving has to be disabled due to // missing libm depencies (udivmodhi4) #if defined( __AVR_ATtinyX5__ ) or defined ( __AVR_ATtinyX4__ ) #define RCSwitchDisableReceiving #endif Then all methods ...


4

Shown below is a KY-040 test program that in my tests doesn't lose any counts and is more accurate than some other software; it picks up the counts between detents as well as those at detents. You may be able to adapt it to your DigiKeyboard ATtiny system. /* roto_jw4.ino -- JW, 29 September 2015 -- * A 4-state state-machine implementation of rotary * ...


4

The cause is most likely the fact that you "... do not use any resistors, capacitors etc." Connect a 100nF capacitor between Vcc and GND. Connect a 10KΩ resistor between RESET and Vcc.


4

As shown in the detailed information for the ADMUX register in the ADC section of the datasheet, the ATtiny88 has no external voltage reference. Consider using a ATmega8 or ATmega88PB instead.


4

I've also had good results with using the Mchr3k - Arduino Manchester Encoding library with those 315mhz RF kits. It has support for ATTiny85 as well.


Only top voted, non community-wiki answers of a minimum length are eligible