TinyISP-Tuner Old

Updated: All, TinsyISP-Tuner 14 Comments

Current Version: 1.1

Purchase: Tindie and Friedcircuits

Assembly: Here

TinyISP-Tuner Diagram

TinyISP-Tuner Diagram

  1. FTDI Connection
  2. ATmega328p – Runs TinyISP Sketch configured with Tuning enabled. (Pre-programmed)
  3. 20pin Socket for ATtiny2313\4313
  4. 14pin Socket for ATtiny84\44\24
  5. 8pin Socket for ATtiny85\45\25
  6. Status LED controlled by ATmega328p and TinyISP Sketch on pin 9
  7. ATmega328p ICSP Program header

 Versions:

1.0 Development

1.1 Initial Shipping – Adds 0.1uF Cap and 10K Resistor to reset line


Guide:

The TinyISP-Tuner makes programming and tuning ATtiny Microcontrollers a snap. Before you begin there are few things you need to download

A few notes about using the TinyISP-Tuner

  • Never have more than 1 ATtiny in one of the sockets.
  • Always check the orientation before powering up.
  • Always power down before inserting\removing an IC.
  • If you don’t want the hassle of removing the IC you can slightly push it in the socket instead of all the way.
  • You can use this just to program ATtinys without tuning them or if you have already tuned them.

Setup: (At this point, TinyCore should be installed)

Once you extract and run the Arduino IDE it creates a project folder. In that folder extract the TinyISP(if needed, see configuring TinyISP below) and TinyTuner2.

<Picture of connections>

Open the Arduino IDE and open File|Examples|TinyTuner2|WriteToEEPROM

Only thing you need to modify that helps is after

void setup(void)
{

add

delay(4000);

This gives you some time to open the serial monitor and enable debug monitoring so you can see the output.

You can also use the other example if you don’t want to save tuner value to EEPROM. Its called PrintUsingKnockBang

Hardware Setup:

Attach the ATtiny you want to program\tune into one of the sockets with the notch facing the LED. To make it easier to remove you don’t have to push the ATtiny all the way down.

Plug the FTDI cable with the Black\GND at the bottom of the header.

Programming:

Under Tools|Programmer make sure it is set to Arduino as ISP.

Set Board to Attiny your are using and the speed, I would use 8Mhz.

Select Tools|Burn Bootloader

Once it is done

Select Upload|Upload using programmer

Open the serial monitor and make sure speed is 19200 and send a “!”. Now you should see the output of the tuning status. If you used the write to EEPROM version it will say when it has saved. If you used the PrintUsingKnockBang version it will print the value you need for tuning and how to add to your code.

How to read from EEPROM

Once you have saved the tuned value to EEPROM you need to load it for each sketch you use. Using EEPROM is helpful so you don’t have to change your code for each different ATtiny you use.

At the top add:

#include <EEPROM.h>

Then in your setup function add:

If using :

8Mhz

OSCCAL = EEPROM.read(E2END);

1Mhz

OSCCAL = EEPROM.read(E2END-1);

 16Mhz(Not sure which ones support internal 16Mhz)

OSCCAL = EEPROM.read(E2END-2);

Configuring TinyISP

Here is the settings that are used in TinyISP. This is useful if you want to reprogram the ATmega328p with TinyISP.

Once the TinyISP sketch is opened

Switch to the tab called _TinyISP_BuildOptions.h and make sure the following is set.

  • #define PROGRAMMER_SPI_CLOCK  NORMAL
  • #define RELAY_KNOCK_BANG_ENABLED  1
  • #define TUNING_SIGNAL_ENABLED  1

Example code and design files available on Github: https://github.com/FriedCircuits/FC-TinyISP-Tuner

Comments 14

  1. Hello, I recently ordered and have been using this programmer. I am very happy with it, it is very well designed. I followed your instructions to calibrate the tiny chips and I see there is a sort of serial monitor functionality used to get data back and forth from the tiny chips to the computer. Could this allow me to do serial debugging through the programmer from the tiny chips? If so, do you have a sample sketch a and configuration for how this could be done?
    Thanks,
    -Marco

  2. mellamanjefe Hi, yes there is. If you send a ! to the serial port it will toggle monitor mode.  Here is a link with a good example. http://www.ernstc.dk/arduino/tinycom.html Use the TinyKnockBang example which is how the serial monitors works to get serial output via the programmer.

    Let me know if that works. You can also email support@friedcircuits.us

    -William

  3. William,
    It worked like a charm. The only issue I had was that in line 52 of TinyKnockBangDebug.h I had to comment out the definition for fstr_t as per a post in the arduino.cc forums in order for the compiler to build the library. I mention this in case someone else runs into a similar issue.
    Thanks,
    -Marco

  4. Is there a way to use this with a barebones Arduino kit that has the full blown Atmel AVR 168/328p. There is no provision for a x’tall or resonator, and I need accurate timing… Thanks!

  5. I am struggling trying to get this to work.  I am getting errors in the Arduino IDE on the WriteToEEPROM sketch when I select Upload using Programmer.  I have totally removed and reinstalled the Arduino IDE.  The instructions above are not very clear and some of the files seem that they might be outdated?  For example, the README file in the tiny-tuner-2-0100-002 extract is empty so I am not sure if I have this in the right place.  Right now I have it in a TinyTuner2 folder under libraries in the Arduino install location. Any help to get this resolved would be greatly appreciated.

  6. MobileWill I think I figured out my problem.  There were no files in the libraries called TinyDebugKnockBang.h or .cpp  I found them on Google and created them and the errors went away.  Where would one normally get these files?

Leave a Reply