You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1047 lines
214 KiB

<!DOCTYPE html>
<html class='v2' dir='ltr' lang='en'>
<head>
<link href='https://www.blogger.com/static/v1/widgets/1171200566-widget_css_mobile_2_bundle.css' rel='stylesheet' type='text/css'/>
<meta content='width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0' name='viewport'/>
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>
<meta content='blogger' name='generator'/>
<link href='http://junkplusarduino.blogspot.com/favicon.ico' rel='icon' type='image/x-icon'/>
<link href='http://junkplusarduino.blogspot.com/p/attiny10-resources.html' rel='canonical'/>
<link rel="alternate" type="application/atom+xml" title="Junk + Arduino = - Atom" href="http://junkplusarduino.blogspot.com/feeds/posts/default" />
<link rel="alternate" type="application/rss+xml" title="Junk + Arduino = - RSS" href="http://junkplusarduino.blogspot.com/feeds/posts/default?alt=rss" />
<link rel="service.post" type="application/atom+xml" title="Junk + Arduino = - Atom" href="https://www.blogger.com/feeds/770269670506803247/posts/default" />
<!--[if IE]><script type="text/javascript" src="https://www.blogger.com/static/v1/jsbin/3095134620-ieretrofit.js"></script>
<![endif]-->
<meta content='http://junkplusarduino.blogspot.com/p/attiny10-resources.html' property='og:url'/>
<meta content='ATtiny10 resources' property='og:title'/>
<meta content='UPDATE:  A huge thanks to Keri DuPrey, Nat Blundell and others who have been continually improving the code. The latest version is here: ...' property='og:description'/>
<meta content='http://1.bp.blogspot.com/-tCpXY9M75sU/T8s0rEAQRHI/AAAAAAAAAD0/exMvDDFA8-M/w1200-h630-p-k-no-nu/programmernew.jpg' property='og:image'/>
<!--[if IE]> <script> (function() { var html5 = ("abbr,article,aside,audio,canvas,datalist,details," + "figure,footer,header,hgroup,mark,menu,meter,nav,output," + "progress,section,time,video").split(','); for (var i = 0; i < html5.length; i++) { document.createElement(html5[i]); } try { document.execCommand('BackgroundImageCache', false, true); } catch(e) {} })(); </script> <![endif]-->
<title>Junk + Arduino =: ATtiny10 resources</title>
<style id='page-skin-1' type='text/css'><!--
/*
-----------------------------------------------
Blogger Template Style
Name: Simple
Designer: Blogger
URL: www.blogger.com
----------------------------------------------- */
/* Content
----------------------------------------------- */
body {
font: normal normal 12px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #dddddd;
background: #000000 none repeat scroll top left;
padding: 0 10px 10px 10px;
}
html body .region-inner {
min-width: 0;
max-width: 100%;
width: auto;
}
h2 {
font-size: 22px;
}
a:link {
text-decoration:none;
color: #00dd07;
}
a:visited {
text-decoration:none;
color: #85ff87;
}
a:hover {
text-decoration:underline;
color: #6bf86e;
}
.body-fauxcolumn-outer .fauxcolumn-inner {
background: transparent none repeat scroll top left;
_background-image: none;
}
.body-fauxcolumn-outer .cap-top {
position: absolute;
z-index: 1;
height: 400px;
width: 100%;
}
.body-fauxcolumn-outer .cap-top .cap-left {
width: 100%;
background: transparent none repeat-x scroll top left;
_background-image: none;
}
.content-outer {
-moz-box-shadow: 0 0 10px rgba(0, 0, 0, .15);
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, .15);
-goog-ms-box-shadow: 0 0 10px #333333;
box-shadow: 0 0 10px rgba(0, 0, 0, .15);
margin-bottom: 1px;
}
.content-inner {
padding: 10px 10px;
}
.content-inner {
background-color: #080808;
}
/* Header
----------------------------------------------- */
.header-outer {
background: #292929 none repeat-x scroll 0 -400px;
_background-image: none;
}
.Header h1 {
font: normal normal 60px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #ffffff;
text-shadow: -1px -1px 1px rgba(0, 0, 0, .2);
}
.Header h1 a {
color: #ffffff;
}
.Header .description {
font-size: 140%;
color: #dddddd;
}
.header-inner .Header .titlewrapper {
padding: 22px 30px;
}
.header-inner .Header .descriptionwrapper {
padding: 0 30px;
}
/* Tabs
----------------------------------------------- */
.tabs-inner .section:first-child {
border-top: 1px solid #333333;
}
.tabs-inner .section:first-child ul {
margin-top: -1px;
border-top: 1px solid #333333;
border-left: 0 solid #333333;
border-right: 0 solid #333333;
}
.tabs-inner .widget ul {
background: #222222 none repeat-x scroll 0 -800px;
_background-image: none;
border-bottom: 1px solid #333333;
margin-top: 0;
margin-left: -30px;
margin-right: -30px;
}
.tabs-inner .widget li a {
display: inline-block;
padding: .6em 1em;
font: normal normal 14px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #999999;
border-left: 1px solid #080808;
border-right: 0 solid #333333;
}
.tabs-inner .widget li:first-child a {
border-left: none;
}
.tabs-inner .widget li.selected a, .tabs-inner .widget li a:hover {
color: #ffffff;
background-color: #000000;
text-decoration: none;
}
/* Columns
----------------------------------------------- */
.main-outer {
border-top: 0 solid #404040;
}
.fauxcolumn-left-outer .fauxcolumn-inner {
border-right: 1px solid #404040;
}
.fauxcolumn-right-outer .fauxcolumn-inner {
border-left: 1px solid #404040;
}
/* Headings
----------------------------------------------- */
div.widget > h2,
div.widget h2.title {
margin: 0 0 1em 0;
font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
color: #ffffff;
}
/* Widgets
----------------------------------------------- */
.widget .zippy {
color: #999999;
text-shadow: 2px 2px 1px rgba(0, 0, 0, .1);
}
.widget .popular-posts ul {
list-style: none;
}
/* Posts
----------------------------------------------- */
h2.date-header {
font: normal bold 11px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
}
.date-header span {
background-color: transparent;
color: #cccccc;
padding: inherit;
letter-spacing: inherit;
margin: inherit;
}
.main-inner {
padding-top: 30px;
padding-bottom: 30px;
}
.main-inner .column-center-inner {
padding: 0 15px;
}
.main-inner .column-center-inner .section {
margin: 0 15px;
}
.post {
margin: 0 0 25px 0;
}
h3.post-title, .comments h4 {
font: normal normal 22px Arial, Tahoma, Helvetica, FreeSans, sans-serif;
margin: .75em 0 0;
}
.post-body {
font-size: 110%;
line-height: 1.4;
position: relative;
}
.post-body img, .post-body .tr-caption-container, .Profile img, .Image img,
.BlogList .item-thumbnail img {
padding: 0;
background: #111111;
border: 1px solid #111111;
-moz-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
-webkit-box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
box-shadow: 1px 1px 5px rgba(0, 0, 0, .1);
}
.post-body img, .post-body .tr-caption-container {
padding: 1px;
}
.post-body .tr-caption-container {
color: #cccccc;
}
.post-body .tr-caption-container img {
padding: 0;
background: transparent;
border: none;
-moz-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
-webkit-box-shadow: 0 0 0 rgba(0, 0, 0, .1);
box-shadow: 0 0 0 rgba(0, 0, 0, .1);
}
.post-header {
margin: 0 0 1.5em;
line-height: 1.6;
font-size: 90%;
}
.post-footer {
margin: 20px -2px 0;
padding: 5px 10px;
color: #888888;
background-color: #303030;
border-bottom: 1px solid #444444;
line-height: 1.6;
font-size: 90%;
}
#comments .comment-author {
padding-top: 1.5em;
border-top: 1px solid #404040;
background-position: 0 1.5em;
}
#comments .comment-author:first-child {
padding-top: 0;
border-top: none;
}
.avatar-image-container {
margin: .2em 0 0;
}
#comments .avatar-image-container img {
border: 1px solid #111111;
}
/* Comments
----------------------------------------------- */
.comments .comments-content .icon.blog-author {
background-repeat: no-repeat;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9sLFwMeCjjhcOMAAAD+SURBVDjLtZSvTgNBEIe/WRRnm3U8RC1neQdsm1zSBIU9VVF1FkUguQQsD9ITmD7ECZIJSE4OZo9stoVjC/zc7ky+zH9hXwVwDpTAWWLrgS3QAe8AZgaAJI5zYAmc8r0G4AHYHQKVwII8PZrZFsBFkeRCABYiMh9BRUhnSkPTNCtVXYXURi1FpBDgArj8QU1eVXUzfnjv7yP7kwu1mYrkWlU33vs1QNu2qU8pwN0UpKoqokjWwCztrMuBhEhmh8bD5UDqur75asbcX0BGUB9/HAMB+r32hznJgXy2v0sGLBcyAJ1EK3LFcbo1s91JeLwAbwGYu7TP/3ZGfnXYPgAVNngtqatUNgAAAABJRU5ErkJggg==);
}
.comments .comments-content .loadmore a {
border-top: 1px solid #999999;
border-bottom: 1px solid #999999;
}
.comments .comment-thread.inline-thread {
background-color: #303030;
}
.comments .continue {
border-top: 2px solid #999999;
}
/* Accents
---------------------------------------------- */
.section-columns td.columns-cell {
border-left: 1px solid #404040;
}
.blog-pager {
background: transparent none no-repeat scroll top center;
}
.blog-pager-older-link, .home-link,
.blog-pager-newer-link {
background-color: #080808;
padding: 5px;
}
.footer-outer {
border-top: 0 dashed #bbbbbb;
}
/* Mobile
----------------------------------------------- */
body.mobile {
background-size: auto;
}
.mobile .body-fauxcolumn-outer {
background: transparent none repeat scroll top left;
}
.mobile .body-fauxcolumn-outer .cap-top {
background-size: 100% auto;
}
.mobile .content-outer {
-webkit-box-shadow: 0 0 3px rgba(0, 0, 0, .15);
box-shadow: 0 0 3px rgba(0, 0, 0, .15);
}
.mobile .tabs-inner .widget ul {
margin-left: 0;
margin-right: 0;
}
.mobile .post {
margin: 0;
}
.mobile .main-inner .column-center-inner .section {
margin: 0;
}
.mobile .date-header span {
padding: 0.1em 10px;
margin: 0 -10px;
}
.mobile h3.post-title {
margin: 0;
}
.mobile .blog-pager {
background: transparent none no-repeat scroll top center;
}
.mobile .footer-outer {
border-top: none;
}
.mobile .main-inner, .mobile .footer-inner {
background-color: #080808;
}
.mobile-index-contents {
color: #dddddd;
}
.mobile-link-button {
background-color: #00dd07;
}
.mobile-link-button a:link, .mobile-link-button a:visited {
color: #ffffff;
}
.mobile .tabs-inner .section:first-child {
border-top: none;
}
.mobile .tabs-inner .PageList .widget-content {
background-color: #000000;
color: #ffffff;
border-top: 1px solid #333333;
border-bottom: 1px solid #333333;
}
.mobile .tabs-inner .PageList .widget-content .pagelist-arrow {
border-left: 1px solid #333333;
}
--></style>
<style id='template-skin-1' type='text/css'><!--
body {
min-width: 960px;
}
.content-outer, .content-fauxcolumn-outer, .region-inner {
min-width: 960px;
max-width: 960px;
_width: 960px;
}
.main-inner .columns {
padding-left: 0;
padding-right: 0;
}
.main-inner .fauxcolumn-center-outer {
left: 0;
right: 0;
/* IE6 does not respect left and right together */
_width: expression(this.parentNode.offsetWidth -
parseInt("0") -
parseInt("0") + 'px');
}
.main-inner .fauxcolumn-left-outer {
width: 0;
}
.main-inner .fauxcolumn-right-outer {
width: 0;
}
.main-inner .column-left-outer {
width: 0;
right: 100%;
margin-left: -0;
}
.main-inner .column-right-outer {
width: 0;
margin-right: -0;
}
#layout {
min-width: 0;
}
#layout .content-outer {
min-width: 0;
width: 800px;
}
#layout .region-inner {
min-width: 0;
width: auto;
}
body#layout div.add_widget {
padding: 8px;
}
body#layout div.add_widget a {
margin-left: 32px;
}
--></style>
<link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=770269670506803247&amp;zx=50df704a-f4e3-40b4-bc91-4447fea8e86e' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=770269670506803247&amp;zx=50df704a-f4e3-40b4-bc91-4447fea8e86e' rel='stylesheet'/></noscript>
<script type="text/javascript" language="javascript">
// Supply ads personalization default for EEA readers
// See https://www.blogger.com/go/adspersonalization
adsbygoogle = window.adsbygoogle || [];
if (typeof adsbygoogle.requestNonPersonalizedAds === 'undefined') {
adsbygoogle.requestNonPersonalizedAds = 1;
}
</script>
</head>
<body class='loading mobile variant-dark'>
<div class='navbar no-items section' id='navbar' name='Navbar'>
</div>
<div class='body-fauxcolumns'>
<div class='fauxcolumn-outer body-fauxcolumn-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<div class='content'>
<div class='content-fauxcolumns'>
<div class='fauxcolumn-outer content-fauxcolumn-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<div class='content-outer'>
<div class='content-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left content-fauxborder-left'>
<div class='fauxborder-right content-fauxborder-right'></div>
<div class='content-inner'>
<header>
<div class='header-outer'>
<div class='header-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left header-fauxborder-left'>
<div class='fauxborder-right header-fauxborder-right'></div>
<div class='region-inner header-inner'>
<div class='header section' id='header' name='Header'><div class='widget Header' data-version='1' id='Header1'>
<div id='header-inner'>
<div class='titlewrapper'>
<h1 class='title'>
<a href='http://junkplusarduino.blogspot.com/?m=1'>
Junk + Arduino =
</a>
</h1>
</div>
<div class='descriptionwrapper'>
<p class='description'><span>My adventures with garbage and electronics.</span></p>
</div>
</div>
</div></div>
</div>
</div>
<div class='header-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</header>
<div class='tabs-outer'>
<div class='tabs-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left tabs-fauxborder-left'>
<div class='fauxborder-right tabs-fauxborder-right'></div>
<div class='region-inner tabs-inner'>
<div class='tabs section' id='crosscol' name='Cross-Column'><div class='widget PageList' data-version='1' id='PageList1'>
<h2>Projects</h2>
<div class='widget-content'>
<select id='PageList1_select'>
<option value='http://junkplusarduino.blogspot.com/p/blog-page_16.html?m=1'>A free LCD display</option>
<option value='http://junkplusarduino.blogspot.com/p/blog-page.html?m=1'>FAILURE: Glass kiln from scratch</option>
<option value='http://junkplusarduino.blogspot.com/p/robot-2.html?m=1'>Robot 2 (under $10 version)</option>
<option value='http://junkplusarduino.blogspot.com/p/robot-1.html?m=1'>Robot 1 (under $20 version)</option>
<option value='http://junkplusarduino.blogspot.com/p/tiny10-mosquito.html?m=1'>tiny10 mosquito</option>
<option selected='selected' value='http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1'>ATtiny10 resources</option>
<option value='http://junkplusarduino.blogspot.com/p/diy-sanguino.html?m=1'>DIY Sanguino</option>
<option value='http://junkplusarduino.blogspot.com/p/svg-image-plotter.html?m=1'>SVG image plotter</option>
<option value='http://junkplusarduino.blogspot.com/?m=1'>Home</option>
<option value='http://junkplusarduino.blogspot.com/p/educational-keyboard-toy-under.html?m=1'>Educational keyboard toy (UNDER CONSTRUCTION)</option>
</select>
<span class='pagelist-arrow'>&#9660;</span>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=770269670506803247&widgetType=PageList&widgetId=PageList1&action=editWidget&sectionId=crosscol' onclick='return _WidgetManager._PopupConfig(document.getElementById("PageList1"));' rel='nofollow' target='configPageList1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div>
</div></div>
<div class='tabs no-items section' id='crosscol-overflow' name='Cross-Column 2'></div>
</div>
</div>
<div class='tabs-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='main-outer'>
<div class='main-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left main-fauxborder-left'>
<div class='fauxborder-right main-fauxborder-right'></div>
<div class='region-inner main-inner'>
<div class='columns fauxcolumns'>
<div class='fauxcolumn-outer fauxcolumn-center-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-left-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<div class='fauxcolumn-outer fauxcolumn-right-outer'>
<div class='cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left'>
<div class='fauxborder-right'></div>
<div class='fauxcolumn-inner'>
</div>
</div>
<div class='cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<!-- corrects IE6 width calculation -->
<div class='columns-inner'>
<div class='column-center-outer'>
<div class='column-center-inner'>
<div class='main section' id='main' name='Main'><div class='widget Blog' data-version='1' id='Blog1'>
<div class='blog-posts hfeed'>
<div class='date-outer'>
<div class='date-posts'>
<div class='post-outer'>
<div class='post hentry uncustomized-post-template' itemscope='itemscope' itemtype='http://schema.org/BlogPosting'>
<meta content='http://1.bp.blogspot.com/-tCpXY9M75sU/T8s0rEAQRHI/AAAAAAAAAD0/exMvDDFA8-M/s72-c/programmernew.jpg' itemprop='image_url'/>
<meta content='770269670506803247' itemprop='blogId'/>
<meta content='4877744942622505260' itemprop='postId'/>
<a name='4877744942622505260'></a>
<h3 class='post-title entry-title' itemprop='name'>
ATtiny10 resources
</h3>
<div class='post-header'>
<div class='post-header-line-1'></div>
</div>
<div class='post-body entry-content' id='post-body-4877744942622505260' itemprop='articleBody'>
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><b><span style="font-size: large;"><span style="font-family: Arial, Helvetica, sans-serif;">UPDATE:&nbsp;</span></span></b></span></span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><b><span style="font-size: large;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: small;"> <span style="font-size: large;">A huge thanks to Keri DuPrey, Nat Blundell and others who have been continually improving the code. The latest version is here: </span></span></span></span></b></span></span><br />
<span style="font-size: large;"><a href="https://drive.google.com/file/d/0B--e8M84W8o8UjJsSnI0bkVFT0U/edit?usp=sharing" rel="nofollow">ATtiny4_5_9_10_20_40Programmer.ino</a></span><br />
<b><span style="font-size: large;">And a useful GUI by Keri is here:</span></b><br />
<span style="font-size: large;"><a href="https://drive.google.com/file/d/0B--e8M84W8o8QUJ1TXdpbnNVd2s/view?usp=sharing" rel="nofollow">GUI: ATTiny4_5_9_10_20_40_Programmer.jar</a>
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><b><span style="font-family: Arial, Helvetica, sans-serif;">&nbsp;</span></b></span></span></span><br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif; font-size: large;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><b><span style="font-family: Arial, Helvetica, sans-serif;">Also, avr-libc 1.7 and newer support ATtiny10! I have not tried it, but I reckon you can now use avr-gcc for the tiny10. However, with only 1kB of program memory, assembly is still useful.</span></b></span></span> <br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">The ATtiny10 is an intriguing little thing. It's the size of a grain of rice and has just 6 little SOT23 pins, but inside lies all the capabilities of an 8-bit AVR microcontroller. Everything from 4 analog input channels to a 16-bit timer with 2 possible pwm outputs to all your basic digital functionality. And at 45 yen a piece, there's little reason not to pick one up to play with. Or two... or ten.</span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><b><span style="font-size: large;"><span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"><span style="font-size: small;"></span></span></span><br /></span></span></span></span></span></b></span>
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Then once you get home and sit down at your computer, you realize that you are in for a bit more homework than you expected. ICSP doesn't work, common C compilers don't work, hardly anyone online has done DIY stuff with them.&nbsp;</span><br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">But hark!</span><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"> Do not forsake hope. I am here to aid you on your journey. First, I will guide you to the references that aided me: (</span><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">The most useful of these was the last one, but it is in Japanese.)</span><br />
<ul>
<li style="font-family: Times,&quot;Times New Roman&quot;,serif;"><a href="http://irq5.wordpress.com/2010/07/15/programming-the-attiny10/">http://irq5.wordpress.com/2010/07/15/programming-the-attiny10/</a>&nbsp; </li>
</ul>
<ul>
<li style="font-family: Times,&quot;Times New Roman&quot;,serif;"><a href="http://minisystem.blogspot.jp/2012/01/programming-attiny10-with-avrisp-mkii.html">http://minisystem.blogspot.jp/2012/01/programming-attiny10-with-avrisp-mkii.html</a> </li>
</ul>
<ul>
<li style="font-family: Times,&quot;Times New Roman&quot;,serif;"><a href="https://sites.google.com/site/wayneholder/attiny-4-5-9-10-assembly-ide-and-programmer">https://sites.google.com/site/wayneholder/attiny-4-5-9-10-assembly-ide-and-programmer</a> </li>
</ul>
<ul>
<li><a href="http://d.hatena.ne.jp/pcm1723/20111208/1323351725" style="font-family: Times,&quot;Times New Roman&quot;,serif;">d.hatena.ne.jp/pcm1723/20111208/1323351725</a></li>
</ul>
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><b><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif; font-size: large;">Hardware</span></b> </span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Now let's think about hardware. If you are willing to purchase an AVR programmer, go ahead. It's an easy solution that will definitely work. In that case, you can skip down to the assembly examples.</span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">If you would rather do this the hard way(possibly more educational and satisfying), I'll show you how to program the ATtiny10 with only your Arduino, AVR Studio(or anything that will turn your assembly into a hex file) and a few resistors. Also, if you want to make use of all four I/O pins, you will need a 12V power supply for reprogramming.</span><br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Here is the basic hardware setup. <span style="font-size: large;"><b>Thanks to <a href="http://d.hatena.ne.jp/pcm1723/20111208/1323351725">pcm1723</a></b></span></span> <span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">for this drawing and so much more.</span><br />
<pre class="syntax-highlight"><span class="synComment"> * *</span>
<span class="synComment"> * Arduino ATtiny10 *</span>
<span class="synComment"> * ----------+ +---------------- *</span>
<span class="synComment"> * (SS#) 10 |--[R]-----| 6 (RESET#/PB3) *</span>
<span class="synComment"> * | | * </span>
<span class="synComment"> * (MOSI) 11 |--[R]--+--| 1 (TPIDATA/PB0) *</span>
<span class="synComment"> * | | | *</span>
<span class="synComment"> * (MISO) 12 |--[R]--+ | *</span>
<span class="synComment"> * | | * </span>
<span class="synComment"> * (SCK) 13 |--[R]-----| 3 (TPICLK/PB1) *</span>
<span class="synComment"> * ----------+ +---------------- *</span>
<span class="synComment"> * *</span>
<span class="synComment"> * -[R]- = a few killo-Ohm resistor *</span>
<span class="synComment"> * *</span>
<span class="synComment"> * 2011/12/08 by pcm1723 *</span></pre>
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">&nbsp;Really, some of those resistors may be unnecessary, but they don't hurt. You can see that it is making use of the usual SPI pins, and indeed we are going to make use of the SPI library to handle the communication details. Anyway, I got tired of setting up wires on a breadboard, so I just made this little pcb with 2.2kohm resistors that plugs right into the Arduino.&nbsp; It also has a connector and jumper for applying 12V to the reset pin. This is only necessary if you disable the reset pin for I/O use.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-tCpXY9M75sU/T8s0rEAQRHI/AAAAAAAAAD0/exMvDDFA8-M/s1600/programmernew.jpg" imageanchor="1" style=""><img border="0" height="210" src="http://1.bp.blogspot.com/-tCpXY9M75sU/T8s0rEAQRHI/AAAAAAAAAD0/exMvDDFA8-M/s280/programmernew.jpg" width="280" /></a></div>
&nbsp;<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">&nbsp;</span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Note that pin 1 goes in the top right corner. It</span> <span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">faces the same direction as the chip on the arduino. Also note that the ATtiny10 needs to be on an adapter to plug into the DIP socket. I would like the option of using the chips without an adapter, so I want to make something that clamps the chip onto a breakout board without solder. I'll post again if I make something like that.</span><br />
<br />
<b><span style="font-size: large;"><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;">Software</span></span></b><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Well, that was simple enough. Now for the software.&nbsp;</span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">First, you will need to generate a hex file for your program. One simple and guaranteed to work&nbsp; method is by using AVR Studio, which is free to download from the Atmel website(<a href="http://www.atmel.com/microsite/avr_studio_5/default.aspx">here</a>). Set your device to ATtiny10, make a new assembly file project thing, write your code, and click "build solution" in the build menu. Your hex file will be buried in a folder in the AVR Studio projects folder. Look for a folder with your project's name and somewhere inside will be a debug folder. hex is inside of that one.</span><br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Then we have to get the program onto the chip. </span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">A big thanks again to pcm1723 for getting me started with the code for the arduino. They posted a simple sketch that uses the TPI interface to read all the memory on the chip and send it via serial to a computer. It was then up to me to extend this code to include all the necessary programming functions. You can find the original code on the fourth link up above. Most of it is included in the code below.</span><br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">*EDIT* - Thanks to Keri DuPrey for making some nice changes to the code. See the comments below to find a link to the updated code. Changes: supports tiny20 and 40, read,program and verify in one streamlined command, can handle programs larger than 1024 bytes.&nbsp;</span><br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">*UPDATE* - Thanks to a commenter for pointing out that the fuse setting and clearing didn't work. With their help I have updated the code and it should work now. </span><br />
<br />
<ul style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">
<li><a href="https://docs.google.com/file/d/0B0-PE-lARnk1akRsMjZGVEdpUnc/edit?usp=sharing">ATtiny10Programmer.ino</a><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">(Better yet, use Keri DuPrey's code at the top of the page.)</span></li>
</ul>
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Upload this sketch to an arduino. </span><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">I ran into a very strange problem where </span><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">it just wouldn't work right if the sketch size was much larger than 7,000 bytes. It would just hang or reset while programming an ATtiny10. I cannot fathom why this is. There should be more than ample memory on the arduino. If anyone has an idea, please let me know(leave comment on home page). Anyway, this version compiled to 6,996 bytes and worked</span><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"> fine.&nbsp;</span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Then power off(unplug) the arduino, connect the ATtiny10 as shown, and power up the arduino again. Open</span><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"> up the serial monitor in the tools menu. Set the serial speed to match the one used by the arduino. The default is 38400. If everything is working so far, you should see the message</span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-family: &quot;Courier New&quot;,Courier,monospace;">&nbsp; </span><span style="font-size: small;"><span style="font-family: &quot;Courier New&quot;,Courier,monospace;">NVM enabled</span></span></span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: small;"><span style="font-family: &quot;Courier New&quot;,Courier,monospace;">&nbsp; ATtiny10 connected</span></span></span><br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: small;"><span style="font-family: &quot;Courier New&quot;,Courier,monospace;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">If you don't see this, either you aren't using an ATtiny10 or there could be a hardware problem. After you get this far, you can start using the programming functions. To do this, input the one-character commands described below. Only send one command at a time because some of them require additional input.</span></span></span></span><br />
<br />
<span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: small;"><span style="font-family: &quot;Courier New&quot;,Courier,monospace;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">Commands:</span></span></span></span><br />
<ul>
<li><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: small;"><span style="font-family: &quot;Courier New&quot;,Courier,monospace;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"></span></span></span></span><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">D = dump memory. Displays all current memory on the chip</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">E = erase chip. Erases all program memory</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">R = read program. Sends the program to the arduino. After sending this command&nbsp; you have 20 seconds to copy and paste the entire contents of a .hex file into the serial monitor and send. You can do the whole file at once. If it was successful, you should see "program received".</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">P = write program. After reading the program with the R command, use this to write the program to the ATtiny10.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">V = verify. Verifies that the program was written correctly. If not, it will display the errors.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">F = finish. Not necessary, but this disables further access until the arduino is reset.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">S = set fuse. Follow the displayed instructions to program one of the three fuses.</span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">C = clear fuse. Follow the displayed instructions to UNprogram one of the three fuses.</span></span></li>
</ul>
<span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">The 'D' command is quite a useful and harmless way to test your programmer and the chip. It simply reads all the memory on the ATtiny10 and displays it in the serial monitor in an easy to read way. You may want to avoid the 'S' and 'C' commands unless you are sure you want to mess with the fuses. There are only three fuses. One sends the clock signal to a pin, one enables the watchdog timer, and one disables the reset pin so you can use it for I/O. If you disable the reset pin, I hope you have a 12V power supply, because you will need it the next time you want to program the chip.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">A little caution: if you want to verify after programming, be sure to press shift+v and not ctrl+v as I have done many times. ctrl+v will probably paste your hex file to the monitor again. If you accidentally send it, you will see a lot of strange behavior as the programmer reads 'C', 'D', 'E', 'F' commands along with a bunch of ignored characters. Don't worry, the worst that could happen is that you will erase your chip and disable further programming until you reset the arduino. Just reset and try again.</span></span><br />
<br />
<span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><b><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;"><span style="font-size: large;">Examples</span></span></b></span></span><br />
<span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: small;">OK, now that you can program the chip the hard part begins. Actually making an interesting program. If you are like me and this is the first time you have used assembly for AVRs, just google "AVR assembly tutorial" and you will find everything you need. It takes a little more work than something like C, so I will give you some simple programs that make use of the various functionality of the chip. They are by no means perfect or interesting, but you can use them as building blocks.</span></span></span></span></span></span><br />
<ul>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: small;"><a href="https://docs.google.com/open?id=0B0-PE-lARnk1Z3lnR3VrczZVczg">tinyblink.asm</a><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"> - blinking LED uses delay and digital output</span></span></span></span></span></span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><a href="https://docs.google.com/open?id=0B0-PE-lARnk1aDAwZm5LT3lyR2M"><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;"><span style="font-size: large;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: small;">pwm.asm</span></span></span></span></a><span style="font-size: large;"><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"> - </span></span><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">pulse width modulation uses timer</span></span></span></span></span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: large;"><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><a href="https://docs.google.com/open?id=0B0-PE-lARnk1UXh1TExnMlR1aEE">interrupts.asm</a> - uses three different types of interrupts</span></span></span></span></span></span></li>
<li><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><span style="font-size: large;"><span style="font-family: &quot;Helvetica Neue&quot;,Arial,Helvetica,sans-serif;"><span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><a href="https://docs.google.com/open?id=0B0-PE-lARnk1bVBkM1FSTHl6amM">analog.asm</a> - uses the analog to digital converter &nbsp; </span></span><b><br /></b></span></span></span></span></li>
</ul>
<span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;">&nbsp;Good luck.</span></span><br />
<span style="font-size: small;"><span style="font-family: Georgia,&quot;Times New Roman&quot;,serif;"><br /></span></span>
<div style='clear: both;'></div>
</div>
<div class='post-footer'>
<div class='post-footer-line post-footer-line-1'>
<span class='post-author vcard'>
</span>
<span class='post-timestamp'>
</span>
<span class='post-comment-link'>
</span>
</div>
<div class='post-footer-line post-footer-line-2'>
</div>
</div>
</div>
<div class='comments' id='comments'>
<a name='comments'></a>
<h4>87 comments:</h4>
<div class='comments-content'>
<script async='async' src='' type='text/javascript'></script>
<script type='text/javascript'>
(function() {
var items = null;
var msgs = null;
var config = {};
// <![CDATA[
var cursor = null;
if (items && items.length > 0) {
cursor = parseInt(items[items.length - 1].timestamp) + 1;
}
var bodyFromEntry = function(entry) {
var text = (entry &&
((entry.content && entry.content.$t) ||
(entry.summary && entry.summary.$t))) ||
'';
if (entry && entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
if (entry.gd$extendedProperty[k].name == 'blogger.contentRemoved') {
return '<span class="deleted-comment">' + text + '</span>';
}
}
}
return text;
}
var parse = function(data) {
cursor = null;
var comments = [];
if (data && data.feed && data.feed.entry) {
for (var i = 0, entry; entry = data.feed.entry[i]; i++) {
var comment = {};
// comment ID, parsed out of the original id format
var id = /blog-(\d+).post-(\d+)/.exec(entry.id.$t);
comment.id = id ? id[2] : null;
comment.body = bodyFromEntry(entry);
comment.timestamp = Date.parse(entry.published.$t) + '';
if (entry.author && entry.author.constructor === Array) {
var auth = entry.author[0];
if (auth) {
comment.author = {
name: (auth.name ? auth.name.$t : undefined),
profileUrl: (auth.uri ? auth.uri.$t : undefined),
avatarUrl: (auth.gd$image ? auth.gd$image.src : undefined)
};
}
}
if (entry.link) {
if (entry.link[2]) {
comment.link = comment.permalink = entry.link[2].href;
}
if (entry.link[3]) {
var pid = /.*comments\/default\/(\d+)\?.*/.exec(entry.link[3].href);
if (pid && pid[1]) {
comment.parentId = pid[1];
}
}
}
comment.deleteclass = 'item-control blog-admin';
if (entry.gd$extendedProperty) {
for (var k in entry.gd$extendedProperty) {
if (entry.gd$extendedProperty[k].name == 'blogger.itemClass') {
comment.deleteclass += ' ' + entry.gd$extendedProperty[k].value;
} else if (entry.gd$extendedProperty[k].name == 'blogger.displayTime') {
comment.displayTime = entry.gd$extendedProperty[k].value;
}
}
}
comments.push(comment);
}
}
return comments;
};
var paginator = function(callback) {
if (hasMore()) {
var url = config.feed + '?alt=json&v=2&orderby=published&reverse=false&max-results=50';
if (cursor) {
url += '&published-min=' + new Date(cursor).toISOString();
}
window.bloggercomments = function(data) {
var parsed = parse(data);
cursor = parsed.length < 50 ? null
: parseInt(parsed[parsed.length - 1].timestamp) + 1
callback(parsed);
window.bloggercomments = null;
}
url += '&callback=bloggercomments';
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
};
var hasMore = function() {
return !!cursor;
};
var getMeta = function(key, comment) {
if ('iswriter' == key) {
var matches = !!comment.author
&& comment.author.name == config.authorName
&& comment.author.profileUrl == config.authorUrl;
return matches ? 'true' : '';
} else if ('deletelink' == key) {
return config.baseUri + '/delete-comment.g?blogID='
+ config.blogId + '&postID=' + comment.id;
} else if ('deleteclass' == key) {
return comment.deleteclass;
}
return '';
};
var replybox = null;
var replyUrlParts = null;
var replyParent = undefined;
var onReply = function(commentId, domId) {
if (replybox == null) {
// lazily cache replybox, and adjust to suit this style:
replybox = document.getElementById('comment-editor');
if (replybox != null) {
replybox.height = '250px';
replybox.style.display = 'block';
replyUrlParts = replybox.src.split('#');
}
}
if (replybox && (commentId !== replyParent)) {
replybox.src = '';
document.getElementById(domId).insertBefore(replybox, null);
replybox.src = replyUrlParts[0]
+ (commentId ? '&parentID=' + commentId : '')
+ '#' + replyUrlParts[1];
replyParent = commentId;
}
};
var hash = (window.location.hash || '#').substring(1);
var startThread, targetComment;
if (/^comment-form_/.test(hash)) {
startThread = hash.substring('comment-form_'.length);
} else if (/^c[0-9]+$/.test(hash)) {
targetComment = hash.substring(1);
}
// Configure commenting API:
var configJso = {
'maxDepth': config.maxThreadDepth
};
var provider = {
'id': config.postId,
'data': items,
'loadNext': paginator,
'hasMore': hasMore,
'getMeta': getMeta,
'onReply': onReply,
'rendered': true,
'initComment': targetComment,
'initReplyThread': startThread,
'config': configJso,
'messages': msgs
};
var render = function() {
if (window.goog && window.goog.comments) {
var holder = document.getElementById('comment-holder');
window.goog.comments.render(holder, provider);
}
};
// render now, or queue to render when library loads:
if (window.goog && window.goog.comments) {
render();
} else {
window.goog = window.goog || {};
window.goog.comments = window.goog.comments || {};
window.goog.comments.loadQueue = window.goog.comments.loadQueue || [];
window.goog.comments.loadQueue.push(render);
}
})();
// ]]>
</script>
<div id='comment-holder'>
<div class="comment-thread toplevel-thread"><ol id="top-ra"><li class="comment" id="c7143511391757921255"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">August 25, 2012 at 10:16 AM</a></span></div><p class="comment-content">Great, thank you.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7143511391757921255">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7143511391757921255">Delete</a></span></span></div><div class="comment-replies"><div id="c7143511391757921255-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7143511391757921255-ra" class="thread-chrome thread-expanded"><div></div><div id="c7143511391757921255-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7143511391757921255">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7143511391757921255-ce"></div></li><li class="comment" id="c1848628599495915692"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/10143822564642680848" rel="nofollow">Laura BeFajardo</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">October 3, 2012 at 6:02 AM</a></span></div><p class="comment-content">Great! I started using Tiny10 in february 2012, and there was almost nothing about it. <br>There is information in avr freak too. <br>In addition, if someone hates assembler, another option is to write a C code in CodeVision and copy the asm code in AVRstudio. It is a simple way to avoid asm. </p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1848628599495915692">Reply</a><span class="item-control blog-admin blog-admin pid-1712938675"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1848628599495915692">Delete</a></span></span></div><div class="comment-replies"><div id="c1848628599495915692-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1848628599495915692-ra" class="thread-chrome thread-expanded"><div></div><div id="c1848628599495915692-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1848628599495915692">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1848628599495915692-ce"></div></li><li class="comment" id="c923462765286416515"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">October 3, 2012 at 8:00 PM</a></span></div><p class="comment-content">About the crash issue. After Taking a quick look at the source code, It looks like the problem may be all the strings that are being printed, each one takes space in ram. I had a similar problem with a project, kept resetting on me, once I moved all the strings to program space I had no more crashes.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="923462765286416515">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=923462765286416515">Delete</a></span></span></div><div class="comment-replies"><div id="c923462765286416515-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c923462765286416515-ra" class="thread-chrome thread-expanded"><div></div><div id="c923462765286416515-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="923462765286416515">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c923462765286416515-ce"></div></li><li class="comment" id="c3750218798935938192"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/00784923924208257681" rel="nofollow">Mizotor</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">November 9, 2012 at 8:32 AM</a></span></div><p class="comment-content">Hi I am having problems programming the attiny10 using the arduino and your code. The arduino accepts the code and programs then upon verification it has not been programed, any suggestions would be helpful.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3750218798935938192">Reply</a><span class="item-control blog-admin blog-admin pid-1770413967"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3750218798935938192">Delete</a></span></span></div><div class="comment-replies"><div id="c3750218798935938192-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3750218798935938192-ra" class="thread-chrome thread-expanded"><div></div><div id="c3750218798935938192-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3750218798935938192">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3750218798935938192-ce"></div></li><li class="comment" id="c9035922409375019157"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">November 9, 2012 at 5:31 PM</a></span></div><p class="comment-content">@Mizotor - <br>Thanks for trying my code. Here are some ideas:<br>If the serial monitor says &quot;NVM enabled&quot; and then &quot;ATtiny10 connected&quot; at the top, then your connections are good and you are properly communicating with the chip. If you don&#39;t see these messages, check connections and voltage(needs 5V to program). Once that is working, try the &quot;D&quot; command to dump chip memory to the monitor. If you see something that looks like your program in the program memory space, then you are successfully writing your program. In this case, take a close look at the HEX file. Look at the 8th number of each line. If it is not &#39;0&#39; or &#39;1&#39;(usually near the beginning or end of the file). then it is a special command line, and my code is not set up to do anything with these lines since they are really not necessary for the attiny10. Try deleting the line entirely.<br><br>If all attempts fail, send me the HEX file and I&#39;ll try programming one of mine.<br>Good luck.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="9035922409375019157">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=9035922409375019157">Delete</a></span></span></div><div class="comment-replies"><div id="c9035922409375019157-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c9035922409375019157-ra" class="thread-chrome thread-expanded"><div></div><div id="c9035922409375019157-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="9035922409375019157">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c9035922409375019157-ce"></div></li><li class="comment" id="c1830447440452078214"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/00784923924208257681" rel="nofollow">Mizotor</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">November 11, 2012 at 9:25 AM</a></span></div><p class="comment-content">Hello Again and thanks for the prompt response.<br><br>The arduino replies with NVM enabled and ATtiny10 connected, so as you say i believe the chip is connected correctly. I am using your blink program to test the programming capability and the hex is generated by the atmel studio 6 program and is 5 lines long with the 8th character is either 0/1. This hex is accepted and it states program received, then upon &#39;P&#39; it states Wrote program 62 of 1024 bytes, this is as i expected but with &#39;D&#39; it returns FF in all the program memory and as i stated before the verify fails as to be expected with all FF returned. I have put the TPI Data on a scope and it appears to be toggling so i don&#39;t think it is held at one. <br><br>This is a very confusing problem and i can only think that the reset is not happening so i tried to do a 12v reset but no change.<br><br>Any ideas?<br><br>Regards Mizotor</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1830447440452078214">Reply</a><span class="item-control blog-admin blog-admin pid-1770413967"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1830447440452078214">Delete</a></span></span></div><div class="comment-replies"><div id="c1830447440452078214-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1830447440452078214-ra" class="thread-chrome thread-expanded"><div></div><div id="c1830447440452078214-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1830447440452078214">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1830447440452078214-ce"></div></li><li class="comment" id="c1897456143920791887"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/00328416254823450132" rel="nofollow">Scott8211</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">November 13, 2012 at 11:55 AM</a></span></div><p class="comment-content">Interesting project - I wonder can this be used to reprogram ATtiny20 MPU&#39;s?</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1897456143920791887">Reply</a><span class="item-control blog-admin blog-admin pid-442737980"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1897456143920791887">Delete</a></span></span></div><div class="comment-replies"><div id="c1897456143920791887-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1897456143920791887-ra" class="thread-chrome thread-expanded"><div></div><div id="c1897456143920791887-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1897456143920791887">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1897456143920791887-ce"></div></li><li class="comment" id="c5043171158792968545"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 3, 2012 at 6:14 AM</a></span></div><p class="comment-content">This comment has been removed by the author.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5043171158792968545">Reply</a><span class="item-control blog-admin blog-admin "><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5043171158792968545">Delete</a></span></span></div><div class="comment-replies"><div id="c5043171158792968545-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5043171158792968545-ra" class="thread-chrome thread-expanded"><div></div><div id="c5043171158792968545-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5043171158792968545">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5043171158792968545-ce"></div></li><li class="comment" id="c4709807193859446947"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 3, 2012 at 4:58 PM</a></span></div><p class="comment-content">@Mizotor - <br>Sorry I didn&#39;t reply sooner. I&#39;m afraid I don&#39;t have any idea what&#39;s wrong. You are able to enter programming mode and read the memory, so I don&#39;t know why you can&#39;t write to memory. I really hesitate to suggest a problem with the chip, but if you have another one handy, try a different chip. <br><br>If you figure out the problem, please tell me/us about it.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4709807193859446947">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4709807193859446947">Delete</a></span></span></div><div class="comment-replies"><div id="c4709807193859446947-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4709807193859446947-ra" class="thread-chrome thread-expanded"><div></div><div id="c4709807193859446947-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4709807193859446947">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4709807193859446947-ce"></div></li><li class="comment" id="c293634455135327098"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 3, 2012 at 6:06 PM</a></span></div><p class="comment-content">@Keri DuPrey - <br>Thanks! Putting the strings in program memory is a big improvement. <br><br>This code could actually work with any ATtiny that uses TPI, but the program size would be limited to 1024 bytes unless you made some significant modification to the code.<br><br>The bug concerns me. I have programmed ATtiny10s numerous times without such a problem. I wonder what&#39;s happening.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="293634455135327098">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=293634455135327098">Delete</a></span></span></div><div class="comment-replies"><div id="c293634455135327098-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c293634455135327098-ra" class="thread-chrome thread-expanded"><div></div><div id="c293634455135327098-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="293634455135327098">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c293634455135327098-ce"></div></li><li class="comment" id="c4530653878765095396"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 6, 2012 at 4:47 AM</a></span></div><p class="comment-content">I figured out what the &quot;Bug&quot; is. The Tiny10/20 use the same write opcode of 0x1D, but its for a different word count, Word/Dword. So the chip wont write unless all the words have been sent.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4530653878765095396">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4530653878765095396">Delete</a></span></span></div><div class="comment-replies"><div id="c4530653878765095396-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4530653878765095396-ra" class="thread-chrome thread-expanded"><div></div><div id="c4530653878765095396-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4530653878765095396">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4530653878765095396-ce"></div></li><li class="comment" id="c1922297886065346338"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 6, 2012 at 5:57 AM</a></span></div><p class="comment-content">This comment has been removed by the author.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1922297886065346338">Reply</a><span class="item-control blog-admin blog-admin "><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1922297886065346338">Delete</a></span></span></div><div class="comment-replies"><div id="c1922297886065346338-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1922297886065346338-ra" class="thread-chrome thread-expanded"><div></div><div id="c1922297886065346338-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1922297886065346338">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1922297886065346338-ce"></div></li><li class="comment" id="c543760213629164779"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 6, 2012 at 7:14 PM</a></span></div><p class="comment-content">@ Keri DuPrey - <br>Wow, thanks for that. The programming method is much more streamlined as long as there are no serial buffer issues. I&#39;ll update this post to point out your new code. </p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="543760213629164779">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=543760213629164779">Delete</a></span></span></div><div class="comment-replies"><div id="c543760213629164779-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c543760213629164779-ra" class="thread-chrome thread-expanded"><div></div><div id="c543760213629164779-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="543760213629164779">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c543760213629164779-ce"></div></li><li class="comment" id="c6568824115906104437"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 11, 2012 at 6:20 AM</a></span></div><p class="comment-content">This comment has been removed by the author.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="6568824115906104437">Reply</a><span class="item-control blog-admin blog-admin "><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=6568824115906104437">Delete</a></span></span></div><div class="comment-replies"><div id="c6568824115906104437-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c6568824115906104437-ra" class="thread-chrome thread-expanded"><div></div><div id="c6568824115906104437-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="6568824115906104437">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c6568824115906104437-ce"></div></li><li class="comment" id="c3543317687601783561"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Chris</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 6, 2013 at 2:03 AM</a></span></div><p class="comment-content">Hi there, thanks for all your efforts put into this! I&#39;m attempting to program at ATtiny10 from an Arduino Uno using the methods described and I&#39;m hoping you could offer some troubleshooting tips.<br><br>I have everything wired up and I successfully get the &quot;NVM enabled&quot; and &quot;ATtiny10 connected&quot; when opening the serial monitor. From there, I can send D and it will dump the data from the chip, but will follow the dump with a single &quot;Received unknown command&quot;. If I try R, it simply returns with &quot;Received unknown command&quot; twice.<br><br>Any idea what the issue might be? I&#39;m not quite sure where to start my troubleshooting. Thanks.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3543317687601783561">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3543317687601783561">Delete</a></span></span></div><div class="comment-replies"><div id="c3543317687601783561-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3543317687601783561-ra" class="thread-chrome thread-expanded"><div></div><div id="c3543317687601783561-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3543317687601783561">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3543317687601783561-ce"></div></li><li class="comment" id="c5143039646924860334"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 6, 2013 at 4:29 PM</a></span></div><p class="comment-content">@Chris - <br>Thanks. Are you using my code or the updated version by Keri DuPrey(linked in a comment above)? Also, tell me about your software setup. The &quot;Received unknown command&quot; message appears when any character that is not a command is sent, except when reading in hex data. This includes a newline character. I&#39;m using the current Arduino serial monitor in Windows and I&#39;ve never seen this problem. I&#39;m wondering if you are automatically sending a newline character. But even then the &#39;R&#39; command should be accepted. <br>Unless you are using Keri DuPrey&#39;s code which has slightly different commands. Those are documented at the top of that code. </p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5143039646924860334">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5143039646924860334">Delete</a></span></span></div><div class="comment-replies"><div id="c5143039646924860334-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5143039646924860334-ra" class="thread-chrome thread-expanded"><div></div><div id="c5143039646924860334-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5143039646924860334">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5143039646924860334-ce"></div></li><li class="comment" id="c4221391309324788169"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Chris</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 6, 2013 at 10:09 PM</a></span></div><p class="comment-content">I could have sworn I read the comments at the top at least a couple times! Turns out that&#39;s most of the problem: I am using the updated code and should be using P to program. Also, the automatic newline sending is indeed why I was getting the extra error after normal accepted commands.<br><br>Now I&#39;m successfully able to program it! One last issue I&#39;m running into though: I have to copy/paste the hex file line by line as I think copy / pasting the entire thing incorrectly converts the line endings and only uploads part of the program before outputting a bunch of unknown command errors.<br><br>I am using a mac running 10.7.5, so I&#39;m not sure you would have any suggestions for this sort of issue but I thought couldn&#39;t hurt to ask. Copy/paste in general does not seem to work well in the Arduino IDE. What character should each line be separated by?</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4221391309324788169">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4221391309324788169">Delete</a></span></span></div><div class="comment-replies"><div id="c4221391309324788169-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4221391309324788169-ra" class="thread-chrome thread-expanded"><div></div><div id="c4221391309324788169-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4221391309324788169">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4221391309324788169-ce"></div></li><li class="comment" id="c9136417124880553467"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 7, 2013 at 2:36 AM</a></span></div><p class="comment-content">@Chris - <br>Good, I&#39;m glad you got it working. I don&#39;t really know much about a mac, but the actual line ending character doesn&#39;t matter. Actually, you don&#39;t even need one. The line length info is included in the hex code, so the arduino code does not check for line endings and if there is an extra character that is not &#39;:&#39; it is just ignored. However, if there is more than one extra character, it will cause an error. So maybe you are sending more than one character after the line? Maybe a tab or space character? </p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="9136417124880553467">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=9136417124880553467">Delete</a></span></span></div><div class="comment-replies"><div id="c9136417124880553467-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c9136417124880553467-ra" class="thread-chrome thread-expanded"><div></div><div id="c9136417124880553467-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="9136417124880553467">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c9136417124880553467-ce"></div></li><li class="comment" id="c3745084399836943492"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 7, 2013 at 4:21 AM</a></span></div><p class="comment-content">@Chris -<br>The problem for programming the entire flash at one time may be from a serial buffer overrun. Try dropping the speed to 9600, or less, I don&#39;t have any 10&#39;s to test but they might write/verify slower. </p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3745084399836943492">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3745084399836943492">Delete</a></span></span></div><div class="comment-replies"><div id="c3745084399836943492-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3745084399836943492-ra" class="thread-chrome thread-expanded"><div></div><div id="c3745084399836943492-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3745084399836943492">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3745084399836943492-ce"></div></li><li class="comment" id="c2887308278494453005"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 7, 2013 at 8:52 AM</a></span></div><p class="comment-content">I have dropped the speed down to 9600.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2887308278494453005">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2887308278494453005">Delete</a></span></span></div><div class="comment-replies"><div id="c2887308278494453005-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2887308278494453005-ra" class="thread-chrome thread-expanded"><div></div><div id="c2887308278494453005-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2887308278494453005">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2887308278494453005-ce"></div></li><li class="comment" id="c3839084389116964785"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Chris</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 8, 2013 at 3:07 AM</a></span></div><p class="comment-content">That was it! It gives me one extra &quot;Received unknown command&quot; error after successful programming, but successfully programs none the less.<br><br>Looks like it&#39;s time for me to delve into some assembly, thanks for the help getting this working.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3839084389116964785">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3839084389116964785">Delete</a></span></span></div><div class="comment-replies"><div id="c3839084389116964785-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3839084389116964785-ra" class="thread-chrome thread-expanded"><div></div><div id="c3839084389116964785-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3839084389116964785">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3839084389116964785-ce"></div></li><li class="comment" id="c4871890579093586443"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="http://www.fadvisor.net/blog" rel="nofollow">Fahad</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 26, 2013 at 1:48 PM</a></span></div><p class="comment-content">Thanks for the programmer code guys, awesome work. I haven&#39;t used it yet, but about to as I am making my first ATtiny10 board. I just have a question about the Hex code for the Attiny10, can I use the arduino IDE itself to write a code, compile that code and then use generated HEX to program ATtint10? How about adding information about attiny10 to the arduino board.txt file?</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4871890579093586443">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4871890579093586443">Delete</a></span></span></div><div class="comment-replies"><div id="c4871890579093586443-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4871890579093586443-ra" class="thread-chrome thread-expanded"><div></div><div id="c4871890579093586443-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4871890579093586443">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4871890579093586443-ce"></div></li><li class="comment" id="c8860742493023450283"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="http://www.fadvisor.net/blog" rel="nofollow">Fahad</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 26, 2013 at 2:14 PM</a></span></div><p class="comment-content">What i mean is somehting like this <a rel="nofollow">http://elabz.com/arduino-shrunk-how-to-use-attiny13-with-arduino-ide/</a><br><br>but for ATtiny10/9/5/4 instead of ATtiny13</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="8860742493023450283">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=8860742493023450283">Delete</a></span></span></div><div class="comment-replies"><div id="c8860742493023450283-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c8860742493023450283-ra" class="thread-chrome thread-expanded"><div></div><div id="c8860742493023450283-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="8860742493023450283">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c8860742493023450283-ce"></div></li><li class="comment" id="c5388049845089672721"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 26, 2013 at 3:18 PM</a></span></div><p class="comment-content">@Fahad - <br>Unfortunately you cannot use the Arduino IDE because the C compiler, avr-gcc, does not support the attiny4/5/8/10 yet. I think the reason is that there are only 16 useable registers while the rest of the attiny series has 32. But with only 1kB or less of program memory, you will probably want to do the coding in assembly anyway.<br><br>On the other hand, if you write only assembly code in the arduino IDE in proper C assembly format you may be able to do it. I think it would be simpler to just use AVRStudio which is free on the Atmel website.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5388049845089672721">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5388049845089672721">Delete</a></span></span></div><div class="comment-replies"><div id="c5388049845089672721-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5388049845089672721-ra" class="thread-chrome thread-expanded"><div></div><div id="c5388049845089672721-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5388049845089672721">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5388049845089672721-ce"></div></li><li class="comment" id="c6424450335553130278"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="http://www.fadvisor.net/blog" rel="nofollow">Fahad</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 27, 2013 at 11:44 AM</a></span></div><p class="comment-content">@ME<br>That is actually what I am trying to avoid, learning AVR C or Assembly.<br><br>But you are right with such limited device I think assembly is the way to go. Is there any website that you recommend to start learning about programming those tiny mCUs?<br><br>I also found you mosquito code which will help me a lot since I am planing to use an IR receiver as part of my design.<br>So thank you twice ;)</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="6424450335553130278">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=6424450335553130278">Delete</a></span></span></div><div class="comment-replies"><div id="c6424450335553130278-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c6424450335553130278-ra" class="thread-chrome thread-expanded"><div></div><div id="c6424450335553130278-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="6424450335553130278">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c6424450335553130278-ce"></div></li><li class="comment" id="c7890715782839534291"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 27, 2013 at 6:49 PM</a></span></div><p class="comment-content">@Fahad - <br>Get ready for quite a learning experience. Don&#39;t rely on your knowledge of other languages because you will need very different techniques with assembly. But don&#39;t be discouraged. <br>First, download the AVR instruction set <a href="http://www.atmel.com/images/doc0856.pdf" rel="nofollow">here</a>. It will be your manual. Also, <a href="javascript:void(0);" rel="nofollow">this guide</a> has some useful info and examples. Then download my small example files on this page and go over them carefully till you understand what&#39;s happening.<br><br>As for the IR stuff, my code is designed to record a signal of unknown protocol and length. If you are using a protocol that you know, you can make it vastly, vaaastly simpler. I bet you could do it in 20 lines rather than several hundred. If you have any questions, let me know.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7890715782839534291">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7890715782839534291">Delete</a></span></span></div><div class="comment-replies"><div id="c7890715782839534291-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7890715782839534291-ra" class="thread-chrome thread-expanded"><div></div><div id="c7890715782839534291-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7890715782839534291">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7890715782839534291-ce"></div></li><li class="comment" id="c5056499681637174109"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="http://www.fadvisor.net/blog" rel="nofollow">Fahad</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 28, 2013 at 9:14 AM</a></span></div><p class="comment-content">Thanks a lot.<br>I have two questions:<br>1- AVR-GCC that comes with AVR Studio 6 has support for attiny10, but the one with arduino doesn&#39;t! Don&#39;t they both belong to the same project? and both should be GPL and open source? or simply the arduino people are not interested in including the code since they don&#39;t use that type mcu?<br><br>2- My project will read IR codes sent from any type of IR remote control (so what you did exactly matches what I need) and will compare that code against a code that is stored in the attiny10. I am interested in matching one code only however, I don&#39;t want that code to be hard-coded. I rather want the user to be able to reprogram that code to match any remote control button they want. But the attiny10 doesn&#39;t have EEPROM, so can we store data into the flash from the running code itself? or do I need to use another chip like the attiny13a.<br></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5056499681637174109">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5056499681637174109">Delete</a></span></span></div><div class="comment-replies"><div id="c5056499681637174109-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5056499681637174109-ra" class="thread-chrome thread-expanded"><div></div><div id="c5056499681637174109-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5056499681637174109">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5056499681637174109-ce"></div></li><li class="comment" id="c4624420496704283577"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 28, 2013 at 4:31 PM</a></span></div><p class="comment-content">@Fahad - <br>You&#39;re right! avr-libc 1.7 and newer support ATtiny4/5/9/10. Great, this changes everything. Arduino might not come with the latest version of avr-libc(the libraries used by avr-gcc) yet, but I think you could just replace the appropriate files to use the newest version with arduino.<br><br>As for the memory question, I&#39;m sorry to say that there is no way to write to flash memory from running code. You only have access to SRAM and the registers. If you really need this feature, ATtiny13 and others will be a better choice.<br><br></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4624420496704283577">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4624420496704283577">Delete</a></span></span></div><div class="comment-replies"><div id="c4624420496704283577-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4624420496704283577-ra" class="thread-chrome thread-expanded"><div></div><div id="c4624420496704283577-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4624420496704283577">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4624420496704283577-ce"></div></li><li class="comment" id="c4786001256875138923"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 22, 2013 at 11:49 AM</a></span></div><p class="comment-content">Hi,<br><br>first of all: this is a very useful blog, and gives a &quot;nearly&quot; ;-) perfect solution.<br>Thanks a lot. <br><br>But did you already set a fuse on a tiny10? I want to see the System clock on PB2, therefore i issued command &#39;S&#39; followed by &#39;c&#39;. But nothing changed. The configuration word still says 0xFF 0xFF.<br>I think the code for Setting/Clearing the fuses is wrong, as it only writes the LSB.<br>The mcu waits for the MSB before it really writes the fuses.<br><br>Greetings<br><br>Mic</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4786001256875138923">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4786001256875138923">Delete</a></span></span></div><div class="comment-replies"><div id="c4786001256875138923-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4786001256875138923-ra" class="thread-chrome thread-expanded"><div></div><div id="c4786001256875138923-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4786001256875138923">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4786001256875138923-ce"></div></li><li class="comment" id="c3847422384553106603"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 23, 2013 at 2:03 AM</a></span></div><p class="comment-content">@Anonymous - <br>You&#39;re right! Thanks for telling me. I never tried changing fuses, so I didn&#39;t notice, but I actually left out a few important steps including writing the MSB.<br>I&#39;ve updated the code and it should work. I don&#39;t have time to test it right now, but if it still doesn&#39;t work, let me know.<br><br>Also, this update is only in the file provided on this blog. It is not included in Keri DuPrey&#39;s newer code yet.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3847422384553106603">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3847422384553106603">Delete</a></span></span></div><div class="comment-replies"><div id="c3847422384553106603-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3847422384553106603-ra" class="thread-chrome thread-expanded"><div></div><div id="c3847422384553106603-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3847422384553106603">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3847422384553106603-ce"></div></li><li class="comment" id="c2051600351225331855"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 24, 2013 at 5:29 AM</a></span></div><p class="comment-content">Hi, thanks for your quick reply, i tried your code fix, and Setting the fuse works now fine.<br>Clearing does not. I read the Atmel Manual, and Clearing fuses Needs a SECTION_ERASE instead of WORD_WRITE in NVMCMD Register.<br><br>I changed the code in setConfig<br>to:<br> setPointer(0x3F40);<br> writeIO(NVMCMD, (val ? NVM_WORD_WRITE : NVM_SECTION_ERASE) );<br><br>which works.<br><br>Greetings, <br>Mic</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2051600351225331855">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2051600351225331855">Delete</a></span></span></div><div class="comment-replies"><div id="c2051600351225331855-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2051600351225331855-ra" class="thread-chrome thread-expanded"><div></div><div id="c2051600351225331855-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2051600351225331855">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2051600351225331855-ce"></div></li><li class="comment" id="c1391011892504025634"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 25, 2013 at 8:57 PM</a></span></div><p class="comment-content">@Anonymous - <br>Thanks again. I put your fix into the code. I hope there are no more surprises like that. More importantly I hope it hasn&#39;t caused too many headaches for people using it. </p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1391011892504025634">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1391011892504025634">Delete</a></span></span></div><div class="comment-replies"><div id="c1391011892504025634-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1391011892504025634-ra" class="thread-chrome thread-expanded"><div></div><div id="c1391011892504025634-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1391011892504025634">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1391011892504025634-ce"></div></li><li class="comment" id="c4578728684276316790"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">April 10, 2013 at 4:13 AM</a></span></div><p class="comment-content">I&#39;ve made the changes to the code as well.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4578728684276316790">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4578728684276316790">Delete</a></span></span></div><div class="comment-replies"><div id="c4578728684276316790-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4578728684276316790-ra" class="thread-chrome thread-expanded"><div></div><div id="c4578728684276316790-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4578728684276316790">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4578728684276316790-ce"></div></li><li class="comment" id="c2959214526566607109"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/13495856273395075147" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">April 28, 2013 at 8:13 AM</a></span></div><p class="comment-content">This patch for Keri DuPrey&#39;s code re-enables the ATtiny after each command. This allows faster iterations of development as you don&#39;t need to re-wire the RST line to test.<br><br>Index: ATtiny45910Programmer.ino<br>===================================================================<br>--- ATtiny45910Programmer.ino (revision 2)<br>+++ ATtiny45910Programmer.ino (working copy)<br>@@ -137,6 +137,16 @@<br> SPI.setDataMode(SPI_MODE0);<br> SPI.setClockDivider(SPI_CLOCK_DIV32);<br> <br>+ start_tpi();<br>+<br>+ // initialize memory pointer register<br>+ setPointer(0x0000);<br>+<br>+ timeout = 20000;<br>+ idChecked = false;<br>+} // end setup()<br>+<br>+void start_tpi() {<br> // enter TPI programming mode<br> digitalWrite(SS, LOW); // assert RESET on tiny<br> delay(1); // t_RST min = 400 ns @ Vcc = 5 V<br>@@ -153,13 +163,7 @@<br> // wait<br> }<br> Serial.println(F(&quot;NVM enabled&quot;));<br>-<br>- // initialize memory pointer register<br>- setPointer(0x0000);<br>-<br>- timeout = 20000;<br>- idChecked = false;<br>-} // end setup()<br>+}<br> <br> void loop(){<br> if(!idChecked){<br>@@ -171,6 +175,8 @@<br> while(Serial.available() &lt; 1){<br> // wait<br> }<br>+ start_tpi();<br>+ <br> // the first byte is a command<br> //** &#39;P&#39; = program the ATtiny using the read program<br> //** &#39;D&#39; = dump memory to serial monitor<br>@@ -209,6 +215,8 @@<br> default:<br> Serial.println(F(&quot;Received unknown command&quot;));<br> }<br>+ <br>+ finish();<br> }<br> void ERROR_pgmSize(void)<br> {<br>@@ -552,7 +560,7 @@<br> writeCSS(0x00, 0x00);<br> SPI.transfer(0xff);<br> SPI.transfer(0xff);<br>- // digitalWrite(SS, HIGH); // release RESET<br>+ digitalWrite(SS, HIGH); // release RESET<br> delay(1); // t_RST min = 400 ns @ Vcc = 5 V<br> }</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2959214526566607109">Reply</a><span class="item-control blog-admin blog-admin pid-1741527919"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2959214526566607109">Delete</a></span></span></div><div class="comment-replies"><div id="c2959214526566607109-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2959214526566607109-ra" class="thread-chrome thread-expanded"><div></div><div id="c2959214526566607109-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2959214526566607109">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2959214526566607109-ce"></div></li><li class="comment" id="c9014445275123048043"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 9, 2014 at 5:35 AM</a></span></div><p class="comment-content">what arduino did you used?</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="9014445275123048043">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=9014445275123048043">Delete</a></span></span></div><div class="comment-replies"><div id="c9014445275123048043-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c9014445275123048043-ra" class="thread-chrome thread-expanded"><div></div><div id="c9014445275123048043-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="9014445275123048043">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c9014445275123048043-ce"></div></li><li class="comment" id="c8809500685077895836"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymus</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 9, 2014 at 5:38 AM</a></span></div><p class="comment-content">can i use this software with other programmer wich is capable if ISP? I mean :can I use something different from Arduino ? Something similar into Arduino?</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="8809500685077895836">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=8809500685077895836">Delete</a></span></span></div><div class="comment-replies"><div id="c8809500685077895836-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c8809500685077895836-ra" class="thread-chrome thread-expanded"><div></div><div id="c8809500685077895836-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="8809500685077895836">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c8809500685077895836-ce"></div></li><li class="comment" id="c92974599850306769"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 9, 2014 at 8:36 PM</a></span></div><p class="comment-content">@Anonymous - <br>Of course you can use something instead of Arduino. The arduino is essentially just using SPI to act as a TPI programer. Look at the data sheet to see the differences between SPI and TPI, but they are pretty much the same.<br>Of course the software I have written is specific to arduino, but I imagine it could easily be ported to whatever SPI capable programmer you are using.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="92974599850306769">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=92974599850306769">Delete</a></span></span></div><div class="comment-replies"><div id="c92974599850306769-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c92974599850306769-ra" class="thread-chrome thread-expanded"><div></div><div id="c92974599850306769-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="92974599850306769">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c92974599850306769-ce"></div></li><li class="comment" id="c6530226398623383137"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Jimmus</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 15, 2014 at 6:48 PM</a></span></div><p class="comment-content">You are awesome!<br><br>It took a bit of fixing to get the tinyblink program to work, but the attiny10programmer.ino worked flawlessly.<br><br>I used tavrasm because it was easier for my setup, and I had to change the call instructions to rcall.<br><br>I still have to make sure I can re-program after disabling RESET, but it&#39;s over there blinking away.<br><br>Thank you for your work, and for sharing it with people like me.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="6530226398623383137">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=6530226398623383137">Delete</a></span></span></div><div class="comment-replies"><div id="c6530226398623383137-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c6530226398623383137-ra" class="thread-chrome thread-expanded"><div></div><div id="c6530226398623383137-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="6530226398623383137">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c6530226398623383137-ce"></div></li><li class="comment" id="c8244817904642260499"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 16, 2014 at 3:07 AM</a></span></div><p class="comment-content">@Jimmus - <br>I&#39;m glad I could help.<br>I haven&#39;t tried disabling the reset pin, so good luck.<br>Have fun!</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="8244817904642260499">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=8244817904642260499">Delete</a></span></span></div><div class="comment-replies"><div id="c8244817904642260499-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c8244817904642260499-ra" class="thread-chrome thread-expanded"><div></div><div id="c8244817904642260499-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="8244817904642260499">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c8244817904642260499-ce"></div></li><li class="comment" id="c1829660998764595545"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 17, 2014 at 5:45 AM</a></span></div><p class="comment-content">I had an erratic issue with the nibbles being swapped when programming, and made a change that seemed to clear up the problem. I also added Nat Blundell&#39;s patch to the code.<br><br><br><a href="https://drive.google.com/file/d/0B--e8M84W8o8UjJsSnI0bkVFT0U/edit?usp=sharing" rel="nofollow">ATtiny4_5_9_10_20_40Programmer.ino</a></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1829660998764595545">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1829660998764595545">Delete</a></span></span></div><div class="comment-replies"><div id="c1829660998764595545-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1829660998764595545-ra" class="thread-chrome thread-expanded"><div></div><div id="c1829660998764595545-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1829660998764595545">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1829660998764595545-ce"></div></li><li class="comment" id="c2669988435116376996"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 17, 2014 at 4:17 PM</a></span></div><p class="comment-content">@Keri DuPrey-<br>Thank for doing that and thanks for keeping this code up to date. I haven&#39;t run into that problem, but I&#39;m glad it was easy to fix.<br>Also, thanks to Nat Blundell. I think I forgot to thank you for your patch.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2669988435116376996">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2669988435116376996">Delete</a></span></span></div><div class="comment-replies"><div id="c2669988435116376996-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2669988435116376996-ra" class="thread-chrome thread-expanded"><div></div><div id="c2669988435116376996-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2669988435116376996">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2669988435116376996-ce"></div></li><li class="comment" id="c2173853911232910454"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 18, 2014 at 4:30 PM</a></span></div><p class="comment-content">Keri,<br>sketch : ATtiny4_5_9_10_20_40Programmer.ino<br><br>posted:<br>March 17, 2014 at 5:45 AM<br><br>Line 597 is missing an &#39;else&#39;<br><br>.Causes serial monitor to report TINY and Unknown chip.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2173853911232910454">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2173853911232910454">Delete</a></span></span></div><div class="comment-replies"><div id="c2173853911232910454-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2173853911232910454-ra" class="thread-chrome thread-expanded"><div></div><div id="c2173853911232910454-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2173853911232910454">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2173853911232910454-ce"></div></li><li class="comment" id="c2222647894917166054"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 20, 2014 at 11:00 AM</a></span></div><p class="comment-content">I&#39;ve added the missing else statement and a quick reset option. Also, Added High Voltage Programming, on pin 9, to the code, along with select-able High/low enable, depending on the users design for providing 12v.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2222647894917166054">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2222647894917166054">Delete</a></span></span></div><div class="comment-replies"><div id="c2222647894917166054-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2222647894917166054-ra" class="thread-chrome thread-expanded"><div></div><div id="c2222647894917166054-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2222647894917166054">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2222647894917166054-ce"></div></li><li class="comment" id="c3069423216894121250"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 22, 2014 at 7:22 PM</a></span></div><p class="comment-content">I had to mod the quickReset function to get one of my tiny4&#39;s to reset.<br>I added a SS,HIGH immediately before the existing SS,LOW.<br>Another tiny4 reset without it.<br>The offender is at the end of 10 inches of ribbon cable -- in case that helps.<br><br>void quickReset()<br>{<br><i> digitalWrite(SS,HIGH); //pull /RST high for an instant </i> <br> digitalWrite(SS,LOW);<br> delay(10);<br> digitalWrite(SS,HIGH);<br>}<br><br>Before adding the SS,HIGH line, I could short the /RST pin to GND, while the SS output was HIGH and the tiny would reset. I have 1K5 resistors as per the diagram in sketch, so the output was safe.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3069423216894121250">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3069423216894121250">Delete</a></span></span></div><div class="comment-replies"><div id="c3069423216894121250-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3069423216894121250-ra" class="thread-chrome thread-expanded"><div></div><div id="c3069423216894121250-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3069423216894121250">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3069423216894121250-ce"></div></li><li class="comment" id="c5303166455697847140"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 22, 2014 at 9:37 PM</a></span></div><p class="comment-content">@Anonymous - <br>That&#39;s really strange. I&#39;m not sure what flicking the reset line high like that would change. But if it works, great. Thanks for the idea.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5303166455697847140">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5303166455697847140">Delete</a></span></span></div><div class="comment-replies"><div id="c5303166455697847140-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5303166455697847140-ra" class="thread-chrome thread-expanded"><div></div><div id="c5303166455697847140-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5303166455697847140">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5303166455697847140-ce"></div></li><li class="comment" id="c3822113438751654914"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 23, 2014 at 6:21 AM</a></span></div><p class="comment-content">I&#39;ve added the quick send to high for the reset. Thanks for the tip!</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3822113438751654914">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3822113438751654914">Delete</a></span></span></div><div class="comment-replies"><div id="c3822113438751654914-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3822113438751654914-ra" class="thread-chrome thread-expanded"><div></div><div id="c3822113438751654914-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3822113438751654914">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3822113438751654914-ce"></div></li><li class="comment" id="c5116315487618567294"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Jimmus</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">June 14, 2014 at 9:21 PM</a></span></div><p class="comment-content">So I am back doing a project with my AtTiny10, and I started with a working program, the TinyBlink, of course. I found 2 minor errors, neither of which affects the execution of the small program, but which might affect things if the program is expanded.<br><br>; not really needed, but keep r16-r18<br> push r16<br> push r17<br> push r18<br>...<br> pop r17<br> pop r16<br> pop r18<br> ret<br><br>Yeah, I don&#39;t think that&#39;s going to work.<br><br>; variables<br>.EQU delayMult1 = 0xff ; the delay is delay3*delaymult2*delaymult1 <br>.EQU delayMult2 = 0xff<br>.EQU delayMult3 = 0x0f<br><br>I looked at the code that uses these variables in the delay, and I don&#39;t think that&#39;s the right formula. I think it is:<br><br>delayMult3 * 65536 + delayMult2 * 256 + delayMult1<br><br>Which is better anyway because it gives us highly accurate control of this delay loop.<br><br>I considered using the watchdog timer for my timing needs, but with delays accurate to within 5 clock cycles, and programmed this easily, who needs it?<br></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5116315487618567294">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5116315487618567294">Delete</a></span></span></div><div class="comment-replies"><div id="c5116315487618567294-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5116315487618567294-ra" class="thread-chrome thread-expanded"><div></div><div id="c5116315487618567294-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5116315487618567294">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5116315487618567294-ce"></div></li><li class="comment" id="c5994883459027407209"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">June 15, 2014 at 7:08 AM</a></span></div><p class="comment-content">@Jimmus - <br>Thank you for checking that. That was my first attempt at assembly code for the ATtiny10. Looking back at it, it is awful. You are right about the &quot;pop&quot; order not working. The math for the delay is also wrong. It was just a poorly written piece of code that happens to work. I should probably update all of those files.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5994883459027407209">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5994883459027407209">Delete</a></span></span></div><div class="comment-replies"><div id="c5994883459027407209-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5994883459027407209-ra" class="thread-chrome thread-expanded"><div></div><div id="c5994883459027407209-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5994883459027407209">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5994883459027407209-ce"></div></li><li class="comment" id="c7064725029059663340"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Jimmus</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">June 16, 2014 at 8:28 PM</a></span></div><p class="comment-content">Well, while I was messing with it, I found out some other things. Like how the registers and pins are initially set up. For example, the stack pointer is already set to EndOfRam for us, so we don&#39;t really need that code. And all the pins are set to input mode, but if we set one to output mode, it&#39;s already off. Not that we care, since we&#39;re blinking on and off anyway, but the point is we can remove that code as well. And it works just as well at the default 1 MHz speed if we adjust the timer multipliers, so we could remove that code as well. Which got me to thinking, how small could we really make this blink program? Try this out:<br><br>;<br>; tinyblink<br>; Blinks an LED on pin 4 (PB2)<br>;<br>; Version 1.05<br>; Taken from http://junkplusarduino.blogspot.jp/p/attiny10-resources.html<br>; and modified by Jimmus<br><br>; .DEVICE ATtiny10<br><br>.EQU PORTB = 2<br>.EQU DDRB = 1<br>.EQU PINB = 0<br><br>main:<br> sbi DDRB, 2 ; Set LED pin as output<br> <br>loop:<br> sbi PINB, 2 ; Toggle output<br><br>delayLoop:<br> subi r16, 1<br> sbci r17, 0<br> brne delayLoop<br> rjmp loop<br><br>It does blink a little bit faster--about twice a second, and the interval is not configurable. But 6 instructions is pretty small, I think.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7064725029059663340">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7064725029059663340">Delete</a></span></span></div><div class="comment-replies"><div id="c7064725029059663340-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7064725029059663340-ra" class="thread-chrome thread-expanded"><div></div><div id="c7064725029059663340-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7064725029059663340">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7064725029059663340-ce"></div></li><li class="comment" id="c1068328390114378285"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/02134954837554169935" rel="nofollow">par</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">September 28, 2014 at 12:30 AM</a></span></div><p class="comment-content">Hello,<br><br>Thank you so much for this blog and the source. I&#39;ve learned a great deal. I had unfortunately quite a few problems getting the programmer to upload consistently due to serial overruns.<br><br>I completely rewrote the source over the weekend and it is working better for me now. I&#39;ve uploaded my project to github.<br><br>https://github.com/bdpdx/ATtiny10Programmer</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1068328390114378285">Reply</a><span class="item-control blog-admin blog-admin pid-1570519977"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1068328390114378285">Delete</a></span></span></div><div class="comment-replies"><div id="c1068328390114378285-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1068328390114378285-ra" class="thread-chrome thread-expanded"><div></div><div id="c1068328390114378285-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1068328390114378285">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1068328390114378285-ce"></div></li><li class="comment" id="c6365464584845619001"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">September 28, 2014 at 2:42 AM</a></span></div><p class="comment-content">@par - <br>I&#39;m glad this could be of help. Of course the most educational way is to write your own programmer. Thanks for sharing yours.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="6365464584845619001">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=6365464584845619001">Delete</a></span></span></div><div class="comment-replies"><div id="c6365464584845619001-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c6365464584845619001-ra" class="thread-chrome thread-expanded"><div></div><div id="c6365464584845619001-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="6365464584845619001">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c6365464584845619001-ce"></div></li><li class="comment" id="c4910006644940682814"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">October 4, 2014 at 5:42 AM</a></span></div><p class="comment-content">Thanks for the web site!<br>I made the following changes to the programmer so I didn&#39;t have to unplug, remove wires, and plug back in. The finish command just puts everything in high impedance mode and pulls the reset high. Then it goes into an infinite loop until the Arduino reset button is pressed. It isn&#39;t too sophisticated, but it seems to work.<br><br>void finish(){<br> writeCSS(0x00, 0x00);<br> SPI.transfer(0xff);<br> SPI.transfer(0xff);<br> <br> pinMode(10, OUTPUT);<br> pinMode(11, INPUT);<br> pinMode(12, INPUT);<br> pinMode(13, INPUT);<br> <br> digitalWrite(10, HIGH); // release RESET<br> <br> delay(1); // t_RST min = 400 ns @ Vcc = 5 V<br> while(1) {} // infinite loop until reset<br>}<br></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4910006644940682814">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4910006644940682814">Delete</a></span></span></div><div class="comment-replies"><div id="c4910006644940682814-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4910006644940682814-ra" class="thread-chrome thread-expanded"><div></div><div id="c4910006644940682814-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4910006644940682814">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4910006644940682814-ce"></div></li><li class="comment" id="c3809894237906870799"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">October 4, 2014 at 5:52 AM</a></span></div><p class="comment-content">Sorry, I just noticed that Keri DuPrey&#39;s version did the same thing ... never mind.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3809894237906870799">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3809894237906870799">Delete</a></span></span></div><div class="comment-replies"><div id="c3809894237906870799-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3809894237906870799-ra" class="thread-chrome thread-expanded"><div></div><div id="c3809894237906870799-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3809894237906870799">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3809894237906870799-ce"></div></li><li class="comment" id="c4134763663479550348"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">October 4, 2014 at 6:08 AM</a></span></div><p class="comment-content">@Anonymous - <br>Thanks for contributing. Lots of people have made improvements or different versions. Writing your own is a great way to learn, so keep it up.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4134763663479550348">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4134763663479550348">Delete</a></span></span></div><div class="comment-replies"><div id="c4134763663479550348-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4134763663479550348-ra" class="thread-chrome thread-expanded"><div></div><div id="c4134763663479550348-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4134763663479550348">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4134763663479550348-ce"></div></li><li class="comment" id="c5828048054865432362"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Anonymous</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">October 4, 2014 at 6:48 AM</a></span></div><p class="comment-content">A blink program that uses the timer function. It is a bit larger, but the blink rate is fairly accurate.<br><br>http://www.calebengineering.com/attiny10.html</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5828048054865432362">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5828048054865432362">Delete</a></span></span></div><div class="comment-replies"><div id="c5828048054865432362-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5828048054865432362-ra" class="thread-chrome thread-expanded"><div></div><div id="c5828048054865432362-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5828048054865432362">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5828048054865432362-ce"></div></li><li class="comment" id="c3681708338703135536"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Léo</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 4, 2015 at 4:47 AM</a></span></div><p class="comment-content">Hi there,<br><br>The procedure you described works for the <b>ATTiny4</b> (you can take the &quot;possibly&quot; off your header ;) ).<br><br>This is phenomenal, thank you so much for sharing!!<br><br>Léo.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3681708338703135536">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3681708338703135536">Delete</a></span></span></div><div class="comment-replies"><div id="c3681708338703135536-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3681708338703135536-ra" class="thread-chrome thread-expanded"><div></div><div id="c3681708338703135536-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3681708338703135536">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3681708338703135536-ce"></div></li><li class="comment" id="c8694318871314446573"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/05380379734440098323" rel="nofollow">leo.nerd</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 4, 2015 at 5:37 AM</a></span></div><p class="comment-content">Actually...<br><br>I did the process once and it worked perfectly.<br><br>Now I&#39;m trying to upload some new code, and it&#39;s behaving unexpectedly : <br><br>- When a one-letter command is sent, the chip won&#39;t answer unless the PB3 (reset, connected to Arduino digital #10) is disconnected from the Arduino. So it seems to read input from the serial monitor but not to be able to send info back to it unless PB3 is unplugged.<br>- With PB3 unplugged, E command returns &quot;chip erased&quot; as expected but LED keeps blinking. (LED stops blinking when PB3 is replugged to Arduino #10)<br>- Trying then to upload code with PB3 unplugged, works until &quot;V&quot; command that returns: <br>&quot;<br>program error:<br>byte 00AB expected 95 read 00<br>&quot;<br><br>for all bytes (all zeros because I have reset in the meantime with E command)<br><br>So basically having PB3 connected seems necessary to be able to upload new code but makes communication impossible... ?<br><br>Thanks for your help<br>Léo.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="8694318871314446573">Reply</a><span class="item-control blog-admin blog-admin pid-771558905"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=8694318871314446573">Delete</a></span></span></div><div class="comment-replies"><div id="c8694318871314446573-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c8694318871314446573-ra" class="thread-chrome thread-expanded"><div></div><div id="c8694318871314446573-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="8694318871314446573">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c8694318871314446573-ce"></div></li><li class="comment" id="c2842899374477111896"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">February 27, 2015 at 5:49 PM</a></span></div><p class="comment-content">@Leo<br><br>Its been a few years since I looked at the original &quot;ATtiny10Programmer&quot; code, but it sounds like it holds the reset(PB3) low. you may want to try the &quot;ATtiny4_5_9_10_20_40Programmer&quot; releases reset when programming is finished.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2842899374477111896">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2842899374477111896">Delete</a></span></span></div><div class="comment-replies"><div id="c2842899374477111896-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2842899374477111896-ra" class="thread-chrome thread-expanded"><div></div><div id="c2842899374477111896-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2842899374477111896">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2842899374477111896-ce"></div></li><li class="comment" id="c5452775660719914986"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 5, 2015 at 9:01 AM</a></span></div><p class="comment-content">Just finished a project, and realized that a GUI interface was needed, So I wrote a generic one, in java, for the <a href="https://drive.google.com/file/d/0B--e8M84W8o8UjJsSnI0bkVFT0U/view?usp=sharing" rel="nofollow">ATTiny4_5_9_10_20_40_Programmer.ino</a><br><br><a href="https://drive.google.com/file/d/0B--e8M84W8o8QUJ1TXdpbnNVd2s/view?usp=sharing" rel="nofollow">GUI: ATTiny4_5_9_10_20_40_Programmer.jar</a><br><br>I&#39;ve got plans on combining the programmer and a simple digital I/O firmata together to help with testing tiny programs. I may need some encouragement to get going on that as I have no other tiny projects at the moment.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5452775660719914986">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5452775660719914986">Delete</a></span></span></div><div class="comment-replies"><div id="c5452775660719914986-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5452775660719914986-ra" class="thread-chrome thread-expanded"><div></div><div id="c5452775660719914986-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5452775660719914986">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5452775660719914986-ce"></div></li><li class="comment" id="c1974374984799724229"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/05380379734440098323" rel="nofollow">leo.nerd</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 5, 2015 at 1:27 PM</a></span></div><p class="comment-content">Keri,<br><br>This is great! My ongoing project could totally use all these improvements!<br><br>I just need to make sure it&#39;s not making my chips un-overwriteable.<br><br>I&#39;ll try that this weekend when I have a moment! Thank you so much for following up !!<br><br>Léo.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1974374984799724229">Reply</a><span class="item-control blog-admin blog-admin pid-771558905"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1974374984799724229">Delete</a></span></span></div><div class="comment-replies"><div id="c1974374984799724229-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1974374984799724229-ra" class="thread-chrome thread-expanded"><div></div><div id="c1974374984799724229-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1974374984799724229">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1974374984799724229-ce"></div></li><li class="comment" id="c8428999687696719929"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">ME</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 6, 2015 at 4:51 PM</a></span></div><p class="comment-content">@Keri DuPrey - <br>Wow. Thank you for continuing to develop this. You are doing a great service to all ATtiny fans. Sadly my life has not allowed me to even pick one up for the last year, but I&#39;m sure many people appreciate your effort.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="8428999687696719929">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=8428999687696719929">Delete</a></span></span></div><div class="comment-replies"><div id="c8428999687696719929-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c8428999687696719929-ra" class="thread-chrome thread-expanded"><div></div><div id="c8428999687696719929-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="8428999687696719929">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c8428999687696719929-ce"></div></li><li class="comment" id="c7518170865501755915"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/05380379734440098323" rel="nofollow">leo.nerd</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 7, 2015 at 11:45 AM</a></span></div><p class="comment-content">Hi Keri<br><br>I fail to open the .jar file. It shuts itself down straight away. I&#39;m not sure if it helps that I send you the OS X Console messages?<br><br>Thanks for all your help<br>L.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7518170865501755915">Reply</a><span class="item-control blog-admin blog-admin pid-771558905"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7518170865501755915">Delete</a></span></span></div><div class="comment-replies"><div id="c7518170865501755915-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7518170865501755915-ra" class="thread-chrome thread-expanded"><div></div><div id="c7518170865501755915-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7518170865501755915">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7518170865501755915-ce"></div></li><li class="comment" id="c4579369969379596558"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/05380379734440098323" rel="nofollow">leo.nerd</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 7, 2015 at 2:17 PM</a></span></div><p class="comment-content">Hi<br>Quick update on the initial problem I had with not being able to upload anything else after the initial upload: it was indeed the RESET pin that was not released when finished. <br><br>In void finished(), uncommenting &quot;digitalWrite(SS,HIGH);&quot; does the trick!<br><br>Thanks again<br>Léo.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4579369969379596558">Reply</a><span class="item-control blog-admin blog-admin pid-771558905"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4579369969379596558">Delete</a></span></span></div><div class="comment-replies"><div id="c4579369969379596558-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4579369969379596558-ra" class="thread-chrome thread-expanded"><div></div><div id="c4579369969379596558-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4579369969379596558">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4579369969379596558-ce"></div></li><li class="comment" id="c3736786143831026326"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 7, 2015 at 4:59 PM</a></span></div><p class="comment-content">@Leo,<br>It may help. You can send it to my email <a href="mailto:ksdsksd@gmail.com" rel="nofollow">ksdsksd@gmail.com</a></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3736786143831026326">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3736786143831026326">Delete</a></span></span></div><div class="comment-replies"><div id="c3736786143831026326-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3736786143831026326-ra" class="thread-chrome thread-expanded"><div></div><div id="c3736786143831026326-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3736786143831026326">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3736786143831026326-ce"></div></li><li class="comment" id="c3853481671030411996"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Edwin</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">April 29, 2015 at 7:40 AM</a></span></div><p class="comment-content">Great reading. smallest Atmel chip I used was the attiny13, but sizewise nothing beats the attiny10 I guess. May give that a try. I think my last endavours in assembler ate at least 20 years ago for the 8052/51/32/31 Intel chips, but I might be fun to pick it up again for the attiny10.<br>Only problem.. not sure if i will be able to solder the little buggers into anything, eyesight isnt what it used to be anymore and if i have to put them on a breakoutboard for a DIL socket I might as well stick to bigger chips. Well, I may give it a try. did you ever find a solution to just clamp the Attiny10 to a programmong board? Maybe just some copperpads and a clothespin would work miracles :-)</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3853481671030411996">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3853481671030411996">Delete</a></span></span></div><div class="comment-replies"><div id="c3853481671030411996-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3853481671030411996-ra" class="thread-chrome thread-expanded"><div></div><div id="c3853481671030411996-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3853481671030411996">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3853481671030411996-ce"></div></li><li class="comment" id="c6204808565205688801"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/17995128716915072701" rel="nofollow">bill rowe</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 13, 2016 at 12:10 PM</a></span></div><p class="comment-content">Well thank you very much. I followed the instructions dilligently and it &quot;just worked&quot;. Can&#39;t ask for more than that!</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="6204808565205688801">Reply</a><span class="item-control blog-admin blog-admin pid-1521124524"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=6204808565205688801">Delete</a></span></span></div><div class="comment-replies"><div id="c6204808565205688801-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c6204808565205688801-ra" class="thread-chrome thread-expanded"><div></div><div id="c6204808565205688801-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="6204808565205688801">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c6204808565205688801-ce"></div></li><li class="comment" id="c8246097507815256761"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06533806578932961970" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 9, 2016 at 9:08 PM</a></span></div><p class="comment-content">Your use of SPI for the serial connection with the Tiny10 is brilliant! I have written a avr910 compatible TPI programmer for the ATmega328p so it interfaces directly with avrdude. It worked but I was bit banging the TPI ports and couldn&#39;t get the performance I wanted. Now I have adopted your SPI routines and my programmer is smoking fast running on an Arduino UNO! Thanks very much.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="8246097507815256761">Reply</a><span class="item-control blog-admin blog-admin pid-2135124227"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=8246097507815256761">Delete</a></span></span></div><div class="comment-replies"><div id="c8246097507815256761-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c8246097507815256761-ra" class="thread-chrome thread-expanded"><div></div><div id="c8246097507815256761-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="8246097507815256761">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c8246097507815256761-ce"></div></li><li class="comment" id="c375693806874088208"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/02709277635378957300" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">June 8, 2016 at 10:29 AM</a></span></div><p class="comment-content">Many thanks for providing these resources! I&#39;m a complete newcomer to programming MCUs, so some of my problems may be related to that, however I&#39;m having trouble getting my Arduino Uno (with the sketch you provided at the top of the page successfully uploaded) to recognize my ATTINY20. The serial monitor prints out &quot;NVM enabled, unknown chip connected&quot; and when I dump the memory the Device ID is all zeros. A friend successfully got your code working with an earlier version of Arduino IDE, but not with the version current to June 2016. Any idea what might be going on and why the most recent version(s) of the IDE might be causing errors? Any help would be greatly appreciated.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="375693806874088208">Reply</a><span class="item-control blog-admin blog-admin pid-992413735"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=375693806874088208">Delete</a></span></span></div><div class="comment-replies"><div id="c375693806874088208-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c375693806874088208-ra" class="thread-chrome thread-expanded"><div></div><div id="c375693806874088208-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="375693806874088208">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c375693806874088208-ce"></div></li><li class="comment" id="c1196332639933157431"><div class="avatar-image-container"><img src="//resources.blogblog.com/img/blank.gif" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user">Me</cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">June 8, 2016 at 3:56 PM</a></span></div><p class="comment-content">@Julian Kapoor - <br>I&#39;ve never tried an ATtiny20, but supposedly it should work using Keri Duprey&#39;s code. Which Arduino code are you using? You should be using the one at the top of the page, ATtiny4_5_9_10_20_40Programmer.ino instead of the older file further down. I don&#39;t know what has changed with the new version of Arduino, but if they made changes to the SPI library it might mess things up. Try an older version of Arduino. If that doesn&#39;t work, I&#39;m not sure what&#39;s going on. If I have time later I&#39;ll try an ATtiny10 with the new Arduino.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="1196332639933157431">Reply</a><span class="item-control blog-admin blog-admin pid-649852759"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=1196332639933157431">Delete</a></span></span></div><div class="comment-replies"><div id="c1196332639933157431-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c1196332639933157431-ra" class="thread-chrome thread-expanded"><div></div><div id="c1196332639933157431-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="1196332639933157431">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c1196332639933157431-ce"></div></li><li class="comment" id="c7686988091476834233"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/02709277635378957300" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">June 9, 2016 at 12:11 PM</a></span></div><p class="comment-content">Hold the press! I was working with a couple of chips that I must have fried somehow. The programmer sketch works great on the ATtiny20 using Arduino IDE 1.6.8 now. Thanks again to you and everyone else who has contributed to this project!</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7686988091476834233">Reply</a><span class="item-control blog-admin blog-admin pid-992413735"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7686988091476834233">Delete</a></span></span></div><div class="comment-replies"><div id="c7686988091476834233-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7686988091476834233-ra" class="thread-chrome thread-expanded"><div></div><div id="c7686988091476834233-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7686988091476834233">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7686988091476834233-ce"></div></li><li class="comment" id="c8953886075526699922"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/15398931973348843835" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">June 10, 2016 at 11:38 AM</a></span></div><p class="comment-content">Programming is very interesting and creative thing if you do it with love. Your blog code helps a lot to beginners to learn programming from basic to advance level. I really love this blog because I learn a lot from here and this process is still continuing. <br>Love from <a href="http://www.proprogrammer.net/" rel="nofollow"> Pro Programmer </a></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="8953886075526699922">Reply</a><span class="item-control blog-admin blog-admin pid-269766625"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=8953886075526699922">Delete</a></span></span></div><div class="comment-replies"><div id="c8953886075526699922-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c8953886075526699922-ra" class="thread-chrome thread-expanded"><div></div><div id="c8953886075526699922-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="8953886075526699922">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c8953886075526699922-ce"></div></li><li class="comment" id="c211624525700631757"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/02667351950258553532" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">July 11, 2016 at 11:08 AM</a></span></div><p class="comment-content">This blog awesome and i learn a lot about programming from here.The best thing about this blog is that you doing from beginning to experts level.<br><br>Love from <a href="http://www.pprogramming.com/" rel="nofollow"> Pprogramming </a></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="211624525700631757">Reply</a><span class="item-control blog-admin blog-admin pid-654481771"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=211624525700631757">Delete</a></span></span></div><div class="comment-replies"><div id="c211624525700631757-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c211624525700631757-ra" class="thread-chrome thread-expanded"><div></div><div id="c211624525700631757-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="211624525700631757">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c211624525700631757-ce"></div></li><li class="comment" id="c5167222307986249878"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/07467317909307367511" rel="nofollow">INOUETAICHI</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 18, 2017 at 1:01 PM</a></span></div><p class="comment-content">I notice a bug(maybe)<br><br>Flash Words 0x1D CODE_WRITE of ATtiny40 is Qword.<br>So, it must be &quot;#define Tiny40 4&quot; I think.<br><br>#define Tiny4_5 10<br>#define Tiny9 1<br>#define Tiny10 1<br>#define Tiny20 2<br>//#define Tiny40 3 &lt;- bug<br>#define Tiny40 4<br><br>&gt;&gt; if ( currentByte == 2 * words ) { // is the word/Dword/Qword here?<br><br>&gt;&gt; Serial.println(F(&quot;Current memory state:&quot;));<br>&gt;&gt; if(type != Tiny4_5)<br>&gt;&gt; len = 0x400 * type; //the memory length for a 10/20/40 is 1024/2048/4096<br></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5167222307986249878">Reply</a><span class="item-control blog-admin blog-admin pid-1083700899"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5167222307986249878">Delete</a></span></span></div><div class="comment-replies"><div id="c5167222307986249878-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5167222307986249878-ra" class="thread-chrome thread-expanded"><div></div><div id="c5167222307986249878-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5167222307986249878">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5167222307986249878-ce"></div></li><li class="comment" id="c4049721161182577205"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/07467317909307367511" rel="nofollow">INOUETAICHI</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 19, 2017 at 5:11 AM</a></span></div><p class="comment-content">This comment has been removed by the author.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4049721161182577205">Reply</a><span class="item-control blog-admin blog-admin "><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4049721161182577205">Delete</a></span></span></div><div class="comment-replies"><div id="c4049721161182577205-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4049721161182577205-ra" class="thread-chrome thread-expanded"><div></div><div id="c4049721161182577205-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4049721161182577205">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4049721161182577205-ce"></div></li><li class="comment" id="c4153457653520001955"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/07467317909307367511" rel="nofollow">INOUETAICHI</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 19, 2017 at 10:16 AM</a></span></div><p class="comment-content">I added the standalone programming mode like trinketloader in order to https://codebender.cc/sketch:72538<br>Paste the hex code to image.h and you can program without paste the code into serial monitor.<br>https://www.dropbox.com/s/dvbn3kv3qbci4ah/ATtiny4_5_9_10_20_40Programmer.zip?dl=0<br></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="4153457653520001955">Reply</a><span class="item-control blog-admin blog-admin pid-1083700899"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=4153457653520001955">Delete</a></span></span></div><div class="comment-replies"><div id="c4153457653520001955-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c4153457653520001955-ra" class="thread-chrome thread-expanded"><div></div><div id="c4153457653520001955-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="4153457653520001955">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c4153457653520001955-ce"></div></li><li class="comment" id="c5304785335315526359"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 19, 2017 at 12:41 PM</a></span></div><p class="comment-content">@InoueTaichi<br><br>Nice catch.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5304785335315526359">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5304785335315526359">Delete</a></span></span></div><div class="comment-replies"><div id="c5304785335315526359-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5304785335315526359-ra" class="thread-chrome thread-expanded"><div></div><div id="c5304785335315526359-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5304785335315526359">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5304785335315526359-ce"></div></li><li class="comment" id="c6635681583219539002"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/07467317909307367511" rel="nofollow">INOUETAICHI</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 21, 2017 at 5:55 PM</a></span></div><p class="comment-content">Hi Keri DuPrey. I am respect on your work.<br>How do you think about &quot;#define Tiny40 3 (or 4)&quot; ?</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="6635681583219539002">Reply</a><span class="item-control blog-admin blog-admin pid-1083700899"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=6635681583219539002">Delete</a></span></span></div><div class="comment-replies"><div id="c6635681583219539002-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c6635681583219539002-ra" class="thread-chrome thread-expanded"><div></div><div id="c6635681583219539002-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="6635681583219539002">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c6635681583219539002-ce"></div></li><li class="comment" id="c7121454059110799348"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">January 23, 2017 at 10:01 AM</a></span></div><p class="comment-content">@InoueTaichi<br>You are correct, it should be 4. Thanks for finding that, I&#39;ve applied the change. It&#39;s been quite some time since I&#39;ve done a tiny 20 or 10 project, haven&#39;t done a 40 yet.. And even longer since I&#39;ve actually looked at the programming code.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7121454059110799348">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7121454059110799348">Delete</a></span></span></div><div class="comment-replies"><div id="c7121454059110799348-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7121454059110799348-ra" class="thread-chrome thread-expanded"><div></div><div id="c7121454059110799348-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7121454059110799348">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7121454059110799348-ce"></div></li><li class="comment" id="c7799421116628891301"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/08359398144607813012" rel="nofollow">Bo</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">September 14, 2017 at 9:08 AM</a></span></div><p class="comment-content">Hello, great stuff here,<br><br>I did a read out of ATTiny10 i had here, for extracking the program, and i get the data, however, program 4000 and up is just pure 0&#39;s, so there is no program on?<br><br>SRAM has code, can i clone this to a hex file? so i can make a copy of the chip?<br><br>The code i get is here:<br>http://www.elteq.dk/attiny10.txt<br><br>If anyone can do a hex file for me or tell me how to do so i get a clone of this, would be great :)</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7799421116628891301">Reply</a><span class="item-control blog-admin blog-admin pid-1281175920"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7799421116628891301">Delete</a></span></span></div><div class="comment-replies"><div id="c7799421116628891301-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7799421116628891301-ra" class="thread-chrome thread-expanded"><div></div><div id="c7799421116628891301-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7799421116628891301">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7799421116628891301-ce"></div></li><li class="comment" id="c5742410801743533916"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">November 29, 2017 at 5:27 AM</a></span></div><p class="comment-content">@Bo<br><br>Sorry Bo, haven&#39;t been on for a while. The file you provided is no longer there. But from what you&#39;ve described, there is no way to make a copy. The program needs to be there.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="5742410801743533916">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=5742410801743533916">Delete</a></span></span></div><div class="comment-replies"><div id="c5742410801743533916-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c5742410801743533916-ra" class="thread-chrome thread-expanded"><div></div><div id="c5742410801743533916-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="5742410801743533916">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c5742410801743533916-ce"></div></li><li class="comment" id="c3550100232228782446"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/05801703049552518499" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 7, 2018 at 4:16 AM</a></span></div><p class="comment-content">Hi!<br>Thank you very much for your post, it&#8217;s been really helpful and it&#39;s working pretty well! I&#8217;d like to manipulate lock bits to prevent memory for being read. I&#8217;ve been trying to modify the code with no succed :( Please can you help me?<br>Thanks!<br></p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3550100232228782446">Reply</a><span class="item-control blog-admin blog-admin pid-1047593856"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3550100232228782446">Delete</a></span></span></div><div class="comment-replies"><div id="c3550100232228782446-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3550100232228782446-ra" class="thread-chrome thread-expanded"><div></div><div id="c3550100232228782446-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3550100232228782446">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3550100232228782446-ce"></div></li><li class="comment" id="c2273774290947909881"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06485512025419920044" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">March 28, 2018 at 11:21 PM</a></span></div><p class="comment-content">This comment has been removed by the author.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="2273774290947909881">Reply</a><span class="item-control blog-admin blog-admin "><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=2273774290947909881">Delete</a></span></span></div><div class="comment-replies"><div id="c2273774290947909881-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c2273774290947909881-ra" class="thread-chrome thread-expanded"><div></div><div id="c2273774290947909881-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="2273774290947909881">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c2273774290947909881-ce"></div></li><li class="comment" id="c889924236291655862"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/06013934446580381305" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">April 2, 2018 at 5:35 PM</a></span></div><p class="comment-content">@Manuel<br><br>I&#39;ve added a Lock function to the code and republished... Tested on a tiny10.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="889924236291655862">Reply</a><span class="item-control blog-admin blog-admin pid-1639594691"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=889924236291655862">Delete</a></span></span></div><div class="comment-replies"><div id="c889924236291655862-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c889924236291655862-ra" class="thread-chrome thread-expanded"><div></div><div id="c889924236291655862-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="889924236291655862">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c889924236291655862-ce"></div></li><li class="comment" id="c236407704717623080"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/05801703049552518499" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">April 3, 2018 at 4:20 AM</a></span></div><p class="comment-content">@Keri Thanks! I&#39;ll check it ASAP</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="236407704717623080">Reply</a><span class="item-control blog-admin blog-admin pid-1047593856"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=236407704717623080">Delete</a></span></span></div><div class="comment-replies"><div id="c236407704717623080-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c236407704717623080-ra" class="thread-chrome thread-expanded"><div></div><div id="c236407704717623080-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="236407704717623080">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c236407704717623080-ce"></div></li><li class="comment" id="c7943182945218453501"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/11465296764964796578" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">May 10, 2018 at 9:37 PM</a></span></div><p class="comment-content">Thank you very much for your post, it&#8217;s really helpful and successfuly working well.......<br>actually we are working on ATTiny20..... and this post also useful for ATTiny20 also......<br>$<br>$<br>$<br>Thank you very much........</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7943182945218453501">Reply</a><span class="item-control blog-admin blog-admin pid-2046775239"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7943182945218453501">Delete</a></span></span></div><div class="comment-replies"><div id="c7943182945218453501-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7943182945218453501-ra" class="thread-chrome thread-expanded"><div></div><div id="c7943182945218453501-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7943182945218453501">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7943182945218453501-ce"></div></li><li class="comment" id="c3673490209108090986"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/17662544363095761443" rel="nofollow">Dr. Rajesh Verma</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">November 22, 2018 at 9:37 PM</a></span></div><p class="comment-content">Please guide me that my blink eg. on attiny10 doesn&#39;t work, even though the Arduino detect it as &quot;NVM enabled, ATtiny10 connected&quot; on serial monitor. But on upload it say &quot;avrboy&quot; is not meant for your version of windows. My OS is Window 10 pro.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="3673490209108090986">Reply</a><span class="item-control blog-admin blog-admin pid-1792174197"><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=3673490209108090986">Delete</a></span></span></div><div class="comment-replies"><div id="c3673490209108090986-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c3673490209108090986-ra" class="thread-chrome thread-expanded"><div></div><div id="c3673490209108090986-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="3673490209108090986">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c3673490209108090986-ce"></div></li><li class="comment" id="c7564219064177552509"><div class="avatar-image-container"><img src="//lh3.googleusercontent.com/zFdxGE77vvD2w5xHy6jkVuElKv-U9_9qLkRYK8OnbDeJPtjSZ82UPq5w6hJ-SA=s35" alt=""/></div><div class="comment-block"><div class="comment-header"><cite class="user"><a href="https://www.blogger.com/profile/15665236102294444404" rel="nofollow">Unknown</a></cite><span class="icon user "></span><span class="datetime secondary-text"><a rel="nofollow" href="http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=1">December 22, 2018 at 10:44 PM</a></span></div><p class="comment-content">This comment has been removed by the author.</p><span class="comment-actions secondary-text"><a class="comment-reply" target="_self" data-comment-id="7564219064177552509">Reply</a><span class="item-control blog-admin blog-admin "><a target="_self" href="https://www.blogger.com/delete-comment.g?blogID=770269670506803247&amp;postID=7564219064177552509">Delete</a></span></span></div><div class="comment-replies"><div id="c7564219064177552509-rt" class="comment-thread inline-thread hidden"><span class="thread-toggle thread-expanded"><span class="thread-arrow"></span><span class="thread-count"><a target="_self">Replies</a></span></span><ol id="c7564219064177552509-ra" class="thread-chrome thread-expanded"><div></div><div id="c7564219064177552509-continue" class="continue"><a class="comment-reply" target="_self" data-comment-id="7564219064177552509">Reply</a></div></ol></div></div><div class="comment-replybox-single" id="c7564219064177552509-ce"></div></li></ol><div id="top-continue" class="continue"><a class="comment-reply" target="_self">Add comment</a></div><div class="comment-replybox-thread" id="top-ce"></div><div class="loadmore hidden" data-post-id="4877744942622505260"><a target="_self">Load more...</a></div></div>
</div>
</div>
<p class='comment-footer'>
<div class='comment-form'>
<a name='comment-form'></a>
<p>
</p>
<a href='https://www.blogger.com/comment-iframe.g?blogID=770269670506803247&pageID=4877744942622505260&m=1' id='comment-editor-src'></a>
<iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410px' id='comment-editor' name='comment-editor' src='' style='display: none' width='100%'></iframe>
<script src='https://www.blogger.com/static/v1/jsbin/530446030-comment_from_post_iframe.js' type='text/javascript'></script>
<script type='text/javascript'>
BLOG_CMT_createIframe('https://www.blogger.com/rpc_relay.html');
</script>
</div>
</p>
<div id='backlinks-container'>
<div id='Blog1_backlinks-container'>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class='blog-pager' id='blog-pager'>
<div class='mobile-link-button' id='blog-pager-home-link'>
<a class='home-link' href='http://junkplusarduino.blogspot.com/?m=1'>Home</a>
</div>
<div class='mobile-desktop-link'>
<a class='home-link' href='http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m=0'>View web version</a>
</div>
</div>
<div class='clear'></div>
</div></div>
</div>
</div>
<div class='column-left-outer'>
<div class='column-left-inner'>
<aside>
</aside>
</div>
</div>
<div class='column-right-outer'>
<div class='column-right-inner'>
<aside>
</aside>
</div>
</div>
</div>
<div style='clear: both'></div>
<!-- columns -->
</div>
<!-- main -->
</div>
</div>
<div class='main-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
<footer>
<div class='footer-outer'>
<div class='footer-cap-top cap-top'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
<div class='fauxborder-left footer-fauxborder-left'>
<div class='fauxborder-right footer-fauxborder-right'></div>
<div class='region-inner footer-inner'>
<div class='foot no-items section' id='footer-1'></div>
<!-- outside of the include in order to lock Attribution widget -->
<div class='foot section' id='footer-3' name='Footer'><div class='widget Attribution' data-version='1' id='Attribution1'>
<div class='widget-content' style='text-align: center;'>
Powered by <a href='https://www.blogger.com' target='_blank'>Blogger</a>.
</div>
<div class='clear'></div>
<span class='widget-item-control'>
<span class='item-control blog-admin'>
<a class='quickedit' href='//www.blogger.com/rearrange?blogID=770269670506803247&widgetType=Attribution&widgetId=Attribution1&action=editWidget&sectionId=footer-3' onclick='return _WidgetManager._PopupConfig(document.getElementById("Attribution1"));' rel='nofollow' target='configAttribution1' title='Edit'>
<img alt='' height='18' src='https://resources.blogblog.com/img/icon18_wrench_allbkg.png' width='18'/>
</a>
</span>
</span>
<div class='clear'></div>
</div></div>
</div>
</div>
<div class='footer-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</footer>
<!-- content -->
</div>
</div>
<div class='content-cap-bottom cap-bottom'>
<div class='cap-left'></div>
<div class='cap-right'></div>
</div>
</div>
</div>
<script type='text/javascript'>
window.setTimeout(function() {
document.body.className = document.body.className.replace('loading', '');
}, 10);
</script>
<!--J\u016bs esate atsakingi u\u017e lankytoj\u0173 informavim\u0105 apie tinklara\u0161tyje naudojamus slapukus ir renkamus duomenis. \u201eBlogger\u201c pateikia standartin\u012f prane\u0161im\u0105, kur\u012f galima naudoti tinklara\u0161tyje, o j\u016bs galite j\u012f tinkinti arba pakeisti savo prane\u0161imu. Jei reikia daugiau i\u0161samios informacijos, \u017er. adresu http://www.blogger.com/go/cookiechoices.-->
<script defer='' src='/js/cookienotice.js'></script>
<script>
document.addEventListener('DOMContentLoaded', function(event) {
window.cookieChoices && cookieChoices.showCookieConsentBar && cookieChoices.showCookieConsentBar(
(window.cookieOptions && cookieOptions.msg) || '\u0160ioje svetain\u0117je naudojami slapukai i\u0161 sistemos \u201eGoogle\u201c, kad b\u016bt\u0173 galima teikti paslaugas ir analizuoti sraut\u0105. J\u016bs\u0173 IP adresas ir naudotojo priemon\u0117 bendrinama su \u201eGoogle\u201c kartu su na\u0161umo ir saugos metrika, siekiant u\u017etikrinti paslaugos kokyb\u0119, generuoti naudojimo statistik\u0105 ir aptikti bei spr\u0119sti piktnaud\u017eiavimo problemas.',
(window.cookieOptions && cookieOptions.close) || 'Gerai',
(window.cookieOptions && cookieOptions.learn) || 'Su\u017einokite daugiau',
(window.cookieOptions && cookieOptions.link) || 'https://www.blogger.com/go/blogspot-cookies');
});
</script>
<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/1833189695-widgets.js"></script>
<script type='text/javascript'>
var BLOG_BASE_IMAGE_URL = 'https://resources.blogblog.com/img';var BLOG_LANG_DIR = 'ltr';window['__wavt'] = 'AOuZoY54dobDvP4aN3bK5rAPMPUaK27XMQ:1584939031513';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d770269670506803247','//junkplusarduino.blogspot.com/p/attiny10-resources.html?m\x3d1','770269670506803247');
_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '770269670506803247', 'title': 'Junk + Arduino \x3d', 'url': 'http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m\x3d1', 'canonicalUrl': 'http://junkplusarduino.blogspot.com/p/attiny10-resources.html', 'homepageUrl': 'http://junkplusarduino.blogspot.com/?m\x3d1', 'searchUrl': 'http://junkplusarduino.blogspot.com/search', 'canonicalHomepageUrl': 'http://junkplusarduino.blogspot.com/', 'blogspotFaviconUrl': 'http://junkplusarduino.blogspot.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': false, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': '', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': true, 'isMobileRequest': true, 'mobileClass': ' mobile', 'isPrivateBlog': false, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Junk + Arduino \x3d - Atom\x22 href\x3d\x22http://junkplusarduino.blogspot.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Junk + Arduino \x3d - RSS\x22 href\x3d\x22http://junkplusarduino.blogspot.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Junk + Arduino \x3d - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/770269670506803247/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'ieCssRetrofitLinks': '\x3c!--[if IE]\x3e\x3cscript type\x3d\x22text/javascript\x22 src\x3d\x22https://www.blogger.com/static/v1/jsbin/3095134620-ieretrofit.js\x22\x3e\x3c/script\x3e\n\x3c![endif]--\x3e', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/a52a3d065dd1f10b', 'plusOneApiSrc': 'https://apis.google.com/js/plusone.js', 'disableGComments': true, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'Twitter', 'key': 'twitter', 'shareMessage': 'Share to Twitter', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 300, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'static_page', 'pageId': '4877744942622505260', 'pageName': 'ATtiny10 resources', 'pageTitle': 'Junk + Arduino \x3d: ATtiny10 resources'}}, {'name': 'features', 'data': {'sharing_get_link_dialog': 'true', 'sharing_native': 'false'}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'Simple', 'localizedName': 'Simple', 'isResponsive': false, 'isAlternateRendering': true, 'isCustom': false, 'variant': 'dark', 'variantId': 'dark'}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': true, 'title': 'ATtiny10 resources', 'description': 'UPDATE:&#160; A huge thanks to Keri DuPrey, Nat Blundell and others who have been continually improving the code. The latest version is here: ...', 'featuredImage': 'http://1.bp.blogspot.com/-tCpXY9M75sU/T8s0rEAQRHI/AAAAAAAAAD0/exMvDDFA8-M/s400/programmernew.jpg', 'url': 'http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m\x3d1', 'type': 'item', 'isSingleItem': true, 'isMultipleItems': false, 'isError': false, 'isPage': true, 'isPost': false, 'isHomepage': false, 'isArchive': false, 'isLabelSearch': false, 'pageId': 4877744942622505260}}]);
_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_PageListView', new _WidgetInfo('PageList1', 'crosscol', document.getElementById('PageList1'), {'title': 'Projects', 'links': [{'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/blog-page_16.html?m\x3d1', 'id': '3367182098136133167', 'title': 'A free LCD display'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/blog-page.html?m\x3d1', 'id': '1007198645515456147', 'title': 'FAILURE: Glass kiln from scratch'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/robot-2.html?m\x3d1', 'id': '8354048070919738547', 'title': 'Robot 2 (under $10 version)'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/robot-1.html?m\x3d1', 'id': '866340638259871636', 'title': 'Robot 1 (under $20 version)'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/tiny10-mosquito.html?m\x3d1', 'id': '6287884674780986659', 'title': 'tiny10 mosquito'}, {'isCurrentPage': true, 'href': 'http://junkplusarduino.blogspot.com/p/attiny10-resources.html?m\x3d1', 'id': '4877744942622505260', 'title': 'ATtiny10 resources'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/diy-sanguino.html?m\x3d1', 'id': '8450873996011711180', 'title': 'DIY Sanguino'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/svg-image-plotter.html?m\x3d1', 'id': '4556968694781036507', 'title': 'SVG image plotter'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/?m\x3d1', 'title': 'Home'}, {'isCurrentPage': false, 'href': 'http://junkplusarduino.blogspot.com/p/educational-keyboard-toy-under.html?m\x3d1', 'id': '830827927473215846', 'title': 'Educational keyboard toy (UNDER CONSTRUCTION)'}], 'mobile': true}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'mobile': true}, 'displayModeFull'));
_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer-3', document.getElementById('Attribution1'), {}, 'displayModeFull'));
</script>
</body>
</html>