{"id":9308,"date":"2020-10-29T22:04:48","date_gmt":"2020-10-29T22:04:48","guid":{"rendered":"https:\/\/wolles-elektronikkiste.de\/digispark-the-convenient-attiny85-alternative"},"modified":"2024-07-07T12:02:29","modified_gmt":"2024-07-07T12:02:29","slug":"digispark-the-convenient-attiny85-alternative","status":"publish","type":"post","link":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative","title":{"rendered":"Digispark &#8211; the convenient ATtiny85 alternative"},"content":{"rendered":"\n<p>In my <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/programming-attiny85-84-45-44-25-24?lang=en\" target=\"_blank\" rel=\"noopener noreferrer\">last post<\/a> I described how to upload your sketches to an ATtiny85 (or 84, 45, 44, 25, 24). To do this, you have to set up your Arduino as a programmer or buy another programmer, such as the USBtinyISP. A more convenient alternative in some respects, which I would like to introduce here, is the Digispark, which originates from the company Digistump.&nbsp;<\/p>\r\n<p>This is a module that is based on an ATtiny85 and that can be programmed directly via the USB port. So neither SPI wiring is necessary for uploading nor a programmer. Since the power supply can also be provided via the USB port, the circuits become very clear.<\/p>\r\n<p>Another advantage of the Digispark over the ATtiny85 is that it masters I2C with the Wire library. Then it should be mentioned that the (original!) Digispark offers six I\/O pins. The ATtiny85 has only five. More on that below.&nbsp;<\/p>\r\n<p>In terms of price, there is no big difference to the ATtiny85. Depending on the source and the quantity of purchase, you have to pay between two and four, sometimes five euros.<\/p>\r\n<p>Disadvantages of the Digispark are the larger space requirement and a slightly smaller storage for sketches. Of the 8k flash memory, about 2k are used for the bootloader. In addition, it requires a very long boot time of several seconds, which is ages in the world of microcontrollers.<\/p>\r\n<p>The Digispark is very well described <a href=\"https:\/\/digistump.com\/wiki\/digispark\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> on the Digistump pages. So what is the point of this post? On the one hand it shall serve as a step-by-step introduction and overview, on the other hand I would like to share my very positive experience with this mini-board. In addition, there is some more specific information on the various clones, which by its very nature is not documented by the manufacturer.<\/p>\r\n\n<p><strong>Update 2024: This article is outdated in that the Digispark pages are no longer accessible. The board package is still available, so in principle you can still work according to the instructions in this article. However, I recommend using the <a href=\"https:\/\/github.com\/SpenceKonde\/ATTinyCore\" target=\"_blank\" rel=\"noopener\">ATTinyCore<\/a> package from Spence Konde instead, which also covers the Digispark. I have described the package <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/strong><\/p>\r\n\n<h2 class=\"wp-block-heading\">Pinout of the Digispark <\/h2>\n\n<div class=\"li\">The Digispark has six programmable pins, named as P0 to P5. In addition to their role as digital inputs and outputs, the pins have the following additional functions:<\/div>\r\n<div>&nbsp;<\/div>\r\n<ul>\r\n<li class=\"level1\">\r\n<div class=\"li\">P0: I2C SDA, PWM (&#8220;without Rev:&#8221; connected to on-board LED)<\/div>\r\n<\/li>\r\n<li class=\"level1\">\r\n<div class=\"li\">P1: PWM (Rev2, 3, 4: connected to on-board LED)<\/div>\r\n<\/li>\r\n<li class=\"level1\">\r\n<div class=\"li\">P2: I2C SCK, analog In<\/div>\r\n<\/li>\r\n<li class=\"level1\">\r\n<div class=\"li\">P3: analog in, USB+<\/div>\r\n<\/li>\r\n<li class=\"level1\">\r\n<div class=\"li\">P4: PWM, analog in, USB<\/div>\r\n<\/li>\r\n<li class=\"level1\">\r\n<div class=\"li\">P5: analog in (this pin delivers 3V if it is HIGH!)<\/div>\r\n<\/li>\r\n<\/ul>\r\n<p>This is very similar to the ATtiny85 Pinout, which is not surprising, since the Digispark is based on this one.<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Attiny25_45_85.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"187\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Attiny25_45_85-1024x187.png\" alt=\"For comparison: pinout of the ATtiny85\" class=\"wp-image-1777\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Attiny25_45_85-1024x187.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Attiny25_45_85-300x55.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Attiny25_45_85-768x140.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Attiny25_45_85.png 1111w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">For comparison: pinout of the ATtiny85<\/figcaption><\/figure>\n\n<h3 class=\"wp-block-heading\">Different versions of the Digispark<\/h3>\n\n<p>There are different versions of the Digispark. Revision 2, 3 and 4 have a corresponding marking on the USB connector (rev<em>x).<\/em> These versions have the on-board LED connected to P1, i.e. it lights up when P1 is HIGH. For the boards without revision number, P0 is connected to the on-board LED. If you have this version, you need to desolder the LED or cut the connection to the LED if you want to work with I2C. More details can be found <a href=\"https:\/\/digistump.com\/wiki\/digispark\/tutorials\/modelbi2c\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.&nbsp;<\/p>\r\n<p>According to Digistump, <a href=\"https:\/\/digistump.com\/wiki\/digispark\/tutorials\/modelbi2c\" target=\"_blank\" rel=\"noopener noreferrer\">revision 3 is a fake<\/a>, which should not be bought for this reason, even though it works fine. On the other hand, Revision 3 is so widespread that you hardly get another one. And so I bought this version myself. It has only one drawback: P5 is configured as a reset pin in this model and therefore cannot be easily used as an I\/O pin. Try it if you have a &#8220;rev3&#8221;. Start a sketch and connect P5 briefly to GND &#8211; the Digispark restarts. Accordingly, the blink sketch below will not work with P5. In the last paragraph of the article I explain how to make the P5 an I\/O pin.&nbsp;<\/p>\r\n<p>To complete the confusion, there are also versions without revision number that are not designed by Digistump. I also had such a board, and it worked like the &#8220;rev3&#8221; model.&nbsp;<\/p>\r\n\n<h2 class=\"wp-block-heading\">Setting up the Arduino IDE for Digispark<\/h2>\n\n<p>Even if working with the Digispark is very easy, you have to make some preparations first. But that&#8217;s done in a few minutes. I assume that you are using an Arduino IDE version &gt; = 1.6.6.&nbsp;<\/p>\r\n\n<h4 class=\"wp-block-heading\">Step 1: Driver installation <\/h4>\n\n<p>You can download the driver installer <a href=\"https:\/\/github.com\/digistump\/DigistumpArduino\/releases\" target=\"_blank\" rel=\"noopener noreferrer\">here.<\/a> If you use Windows (like me), then select the yellow marked link:&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Treiber_herunterladen.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"419\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Treiber_herunterladen-1024x419.png\" alt=\"Download Digispark driver from Github. \" class=\"wp-image-1888\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Treiber_herunterladen-1024x419.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Treiber_herunterladen-300x123.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Treiber_herunterladen-768x314.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Treiber_herunterladen.png 1033w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n<p>Unpack the zip file and run &#8220;Install Drivers.exe&#8221; for a 32-bit system or DPInst64.exe for a 64-bit system:<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/digistump_driver.png\"><img loading=\"lazy\" decoding=\"async\" width=\"795\" height=\"581\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/digistump_driver.png\" alt=\"Driver selection in the zip file. \" class=\"wp-image-1889\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/digistump_driver.png 795w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/digistump_driver-300x219.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/digistump_driver-768x561.png 768w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/a><\/figure>\n\n<h4 class=\"wp-block-heading\">Step 2: Enter board manager URL<\/h4>\n\n<p>Then you go to the Arduino IDE and enter the board manager URL<\/p>\r\n<p>&#8220;http:\/\/digistump.com\/package_digistump_index.json&#8221;<\/p>\r\n<p>in the preferences:<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/digistump_board_mgr_url.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/digistump_board_mgr_url.png\" alt=\"Enter board manager URL for the Digispark in the preferences. \" class=\"wp-image-1891\"\/><\/a><\/figure>\n\n<h4 class=\"wp-block-heading\">Step 3: Install the Digistump package <\/h4>\n\n<p>Then go to<\/p>\r\n<p>Tools &#8211; &gt; Board: xxxx &#8211; &gt; Boards Manager&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Boardverwalter_engl-2.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Boardverwalter_engl-2.png\" alt=\"The way to the boards manager menu.\" class=\"wp-image-1894\"\/><\/a><\/figure>\n\n<p>&#8230; and search for &#8220;digistump&#8221;, install the package and restart the Arduino IDE. That&#8217;s it.<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/digistump_paket_engl.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/digistump_paket_engl.png\" alt=\"Find and install the right package for Digispark. \" class=\"wp-image-1895\"\/><\/a><\/figure>\n\n<h2 class=\"wp-block-heading\">Upload the first sketch <\/h2>\n\n<p>For testing I have chosen a simple blink sketch. It is no different from a blink sketch for Arduino boards. When using digitalWrite the pins are addressed according to their &#8220;P number&#8221;. That means: 0 is P0, 1 is P1, 2 is P2, etc. Sounds trivial at this point, but is different with analogRead (!).&nbsp;<\/p>\r\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-title=\"digistump_blink.ino\" data-enlighter-group=\"digistump_blink,ino\">int\u00a0ledPin\u00a0=\u00a01;\r\n\r\nvoid\u00a0setup()\u00a0{\r\n\u00a0\u00a0pinMode(ledPin,\u00a0OUTPUT);\r\n}\r\n\r\nvoid\u00a0loop()\u00a0{\r\n\u00a0\u00a0digitalWrite(ledPin,\u00a0HIGH);\u00a0\u00a0\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0digitalWrite(ledPin,\u00a0LOW);\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0delay(1000);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\n\n<p>As far as the circuit is concerned, it can&#8217;t be easier. The LED is connected to GND and P1. The Digispark is connected to the PC via USB, but only after being requested when uploading (this becomes clearer soon).<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/blink.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"728\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/blink-1024x728.jpg\" alt=\"Wiring for the blink sketch \" class=\"wp-image-1901\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/blink-1024x728.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/blink-300x213.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/blink-768x546.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/blink.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">Setup for blink sketch<\/figcaption><\/figure>\n\n<p>In the Arduino IDE, choose &#8220;Digispark (Default &#8211; 16.5mhz)&#8221;. The variants with &#8220;no USB&#8221; and different clock also work. &#8220;Port&#8221; is grayed out. Don&#8217;t worry, that&#8217;s the way it is, even if the Digispark is plugged in.&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Boardverwalter_engl-1.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/Boardverwalter_engl-1.png\" alt=\"Choosing the right board.\" class=\"wp-image-1904\"\/><\/a><\/figure>\n\n<p>If you upload the sketch now, you will receive the following message:<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Device_Aufforderung.png\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"143\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Device_Aufforderung.png\" alt=\"&quot;Plug in device now&quot; message\" class=\"wp-image-1908\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Device_Aufforderung.png 820w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Device_Aufforderung-300x52.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Device_Aufforderung-768x134.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/a><\/figure>\n\n<p>Now you connect the Digispark via USB and &#8211; if all goes well &#8211; you&#8217;ll get the following message:<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/hochladen_complete.png\"><img loading=\"lazy\" decoding=\"async\" width=\"821\" height=\"519\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/hochladen_complete.png\" alt=\"Upload completed\" class=\"wp-image-1910\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/hochladen_complete.png 821w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/hochladen_complete-300x190.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/hochladen_complete-768x485.png 768w\" sizes=\"auto, (max-width: 821px) 100vw, 821px\" \/><\/a><\/figure>\n\n<p>The LED should now flash. If you have a Digispark model revision 2, 3 or 4, the on-board LED also flashes, because we have chosen P1 as the ledPin.&nbsp;<\/p>\r\n<p>Likewise, you can use the five other pins for this sketch, with the caveat that P5 delivers three volts instead of five volts or doesn&#8217;t work at all because you have revision 3 or other clones.<\/p>\r\n\n<h4 class=\"wp-block-heading\">Slow booting<\/h4>\n\n<p>It is astonishing that the Digispark takes a good five seconds to start the sketch after switching on the power supply. An ATtiny85 with the standard bootloader is much faster. In my post about <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/radio-sockets-and-hand-transmitters?lang=en\" target=\"_blank\" rel=\"noopener noreferrer\">radio sockets and hand transmitters,<\/a> I had presented a self-made hand transmitter based on an ATtiny85. The radio button was a pushbutton that powered the ATtiny85 and thus started the radio sketch. If I were to build the same with the Digispark, I would have to press my radio button for at least five seconds, which would not be particularly user-friendly. Admittedly, such an application is rather the exception, so in most cases this boot time should not be an issue.&nbsp;<\/p>\r\n\n<h2 class=\"wp-block-heading\">Analog Read with the Digispark <\/h2>\n\n<p>Analog Read is possible with pins 2, 3, 4 and 5. What is confusing, is that, unlike the Digital Read, the physical number of the pin does not match the analogRead number. This property was inherited by the Digispark from the ATtiny85, where it behaves the same. The assignment is:<\/p>\r\n<ul>\r\n<li>P<strong>2<\/strong>: analogRead(<strong>1<\/strong>)<\/li>\r\n<li>P<strong>3<\/strong>: analogRead(<strong>3<\/strong>)<\/li>\r\n<li>P<strong>4<\/strong>: analogRead(<strong>2<\/strong>)<\/li>\r\n<li>P<strong>5<\/strong>: analogRead(<strong>0<\/strong>)<\/li>\r\n<\/ul>\r\n<p>In my small example, the voltage on P2 is checked. If it exceeds a certain value, an LED lights up on P4. The sketch looks like this:&nbsp;<\/p>\r\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-title=\"digispark_analogIn.ino\" data-enlighter-group=\"digispark_analogIn.ino\">int\u00a0ledPin\u00a0=\u00a04;\r\nint analogInPin2 = 1; \/\/ analogRead(1) takes place at P2\r\n\r\nvoid\u00a0setup()\u00a0{\r\n\u00a0\u00a0pinMode(ledPin,\u00a0OUTPUT);\r\n}\r\n\r\nvoid\u00a0loop()\u00a0{\r\n\u00a0\u00a0if(analogRead(analogInPin2)&gt;100){\r\n\u00a0\u00a0\u00a0\u00a0digitalWrite(ledPin,\u00a0HIGH);\u00a0\u00a0\u00a0\r\n\u00a0\u00a0}\r\n\u00a0\u00a0else{\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0digitalWrite(ledPin,\u00a0LOW);\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0}\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n}<\/pre>\r\n<p>&nbsp;<\/p>\n\n<p>And here is the simple circuit:<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/analogIn.png\"><img loading=\"lazy\" decoding=\"async\" width=\"662\" height=\"559\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/analogIn.png\" alt=\"Circuit: Example for using analogRead with the Digispark\" class=\"wp-image-1922\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/analogIn.png 662w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/analogIn-300x253.png 300w\" sizes=\"auto, (max-width: 662px) 100vw, 662px\" \/><\/a><\/figure>\n\n<h2 class=\"wp-block-heading\">I2C with the Digispark<\/h2>\n\n<p>As already mentioned, the control of I2C devices works directly with the Wire library, which is an advantage over the ATtiny85. As an example, I chose the control of the port expander MCP23017. The yellow line at P0 is SDA, the green line at P2 is SCL. These are connected to the corresponding SDA \/ SCL pins at the MCP23017. The 4.7 kOhm pull-up resistors for the I2C lines are essential.&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/i2c_mcp23017.png\"><img loading=\"lazy\" decoding=\"async\" width=\"814\" height=\"586\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/i2c_mcp23017.png\" alt=\"Controlling the MCP23017 with the Digispark - an example of an I2C application\" class=\"wp-image-1928\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/i2c_mcp23017.png 814w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/i2c_mcp23017-300x216.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/i2c_mcp23017-768x553.png 768w\" sizes=\"auto, (max-width: 814px) 100vw, 814px\" \/><\/a><figcaption class=\"wp-element-caption\">Controlling the MCP23017 with the Digispark &#8211; an example of an I2C application<\/figcaption><\/figure>\n\n<p>For the sake of completeness, here is an example sketch (if you want to read more about the MCP23017, you find a post from me <a href=\"https:\/\/wolles-elektronikkiste.de\/en\/port-expander-mcp23017-2\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>). &nbsp;<\/p>\r\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-title=\"digispark_i2c_test_mcp23017.ino\" data-enlighter-group=\"digispark_i2c_test_mcp23017.ino\">#define MCP_ADDRESS 0x20 \/\/ (A2\/A1\/A0 = LOW) \r\n#include &lt;Wire.h&gt;\r\n#include &lt;MCP23017.h&gt; \/\/ my MCP23017 library\r\nMCP23017 myMCP(MCP_ADDRESS,5); \/\/ 5: Reset - not needed here\r\nint wT = 1000; \/\/ wT = waiting time\r\n\r\nvoid setup(){ \r\n  Wire.begin();\r\n  myMCP.Init();  \r\n  myMCP.setPortMode(B11111111, A); \r\n  delay(wT);\r\n}\r\n\r\nvoid loop(){ \r\n  myMCP.setAllPins(A, ON); \r\n  delay(wT);\r\n  myMCP.setAllPins(A, OFF);\r\n  delay(wT);\r\n  myMCP.setPin(0, A, ON); \r\n  delay(wT); \r\n  myMCP.setPin(4, A, ON);\r\n  delay(wT);\r\n  myMCP.setPin(7, A, ON); \r\n  delay(wT);\r\n} <\/pre>\r\n<p>&nbsp;<\/p>\n\n<h2 class=\"wp-block-heading\">Turn P5 into an I\/O Pin<\/h2>\n\n<p>With the ATtiny85, only 5 pins can be used as I\/O pins. Pin 1 (PB5, RESET) of the ATtiny85 can only be used as an I\/O pin via detours. The problem is that you lose the reset function and the ATtiny85 can no longer be easily reprogrammed. You lock yourself out, so to speak. This can also be fixed, but only with programmers that have a high-voltage function.&nbsp;<\/p>\r\n<p>With Digispark you don&#8217;t need the reset function of P5, because the programming is done via USB. Thus, you have 6 I\/O pins available. The developers of revision 3 and other clones, on the other hand, have retained the reset function of P5. If you only need 5 pins or maybe want to use the reset function, then leave everything as it is. If, on the other hand, you want to use all pins as I\/O pins, then you can change that with this guide.&nbsp;<\/p>\r\n<p>For the activation of the P5 as an I\/O pin or the deactivation of the reset function, the corresponding fuse-bit (RSTDISBL) must be set. I would like to present two ways in which this can be done. &nbsp;<\/p>\r\n\n<h3 class=\"wp-block-heading\">Option 1: With WinAVR and Arduino UNO<\/h3>\n\n<p>The beauty of this method is that most of you have an Arduino UNO (Nano, Pro Mini, etc. also work) and the required program WinAVR is free.&nbsp;<\/p>\r\n<p>First of all, download the program WinAVR <a href=\"https:\/\/sourceforge.net\/projects\/winavr\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> and install it.&nbsp;<\/p>\r\n<p>In the next step, you upload the ArduinoISP Sketch from the examples to the Arduino. This measure turns the Arduino into a programmer.&nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/ArduinoISP_example_engl.png\"><img decoding=\"async\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2020\/10\/ArduinoISP_example_engl.png\" alt=\"Choose ArduinoISP from the examples\" class=\"wp-image-1955\"\/><\/a><figcaption class=\"wp-element-caption\">Choose ArduinoISP from the examples<\/figcaption><\/figure>\n\n<p>Then you connect the Digispark to the Arduino as follows:<\/p>\r\n<ul>\r\n<li>P0 &#8212; &gt; 11<\/li>\r\n<li>P1 &#8212; &gt; 12<\/li>\r\n<li>P2 &#8212; &gt; 13<\/li>\r\n<li>P5 &#8212; &gt; 10<\/li>\r\n<\/ul>\r\n<p>Finally, you connect GND to GND, 5V to 5V and place a 10 \u00b5F capacitor between the Arduino Reset and GND (note polarity: minus of the capacitor to GND).<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/ard_programs_digistump.png\"><img loading=\"lazy\" decoding=\"async\" width=\"882\" height=\"581\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/ard_programs_digistump.png\" alt=\"Circuit for programming the Digispark using Arduino\" class=\"wp-image-1956\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/ard_programs_digistump.png 882w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/ard_programs_digistump-300x198.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/ard_programs_digistump-768x506.png 768w\" sizes=\"auto, (max-width: 882px) 100vw, 882px\" \/><\/a><\/figure>\n\n<p>Then you open a prompt window on the PC. Depending on whether you have set paths or not, you may need to switch to the directory in which you installed WinAVR. You enter the following, replacing COM14 with the right port (check in device manager or in the Arduino IDE):<\/p>\r\n<p><code>avrdude -P COM14 -b 19200 -c avrisp -p attiny85 -n <\/code><\/p>\r\n<p>You confirm with enter, enter the next line and confirm again with enter:<\/p>\r\n<p><code>avrdude -P COM14 -b 19200 -p attiny85 -c avrisp&nbsp; -U hfuse:w:0x5F:m<\/code>&nbsp;<\/p>\r\n<p>If all goes well, you should get messages similar to this one:<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/avrdude.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"777\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/avrdude-1024x777.png\" alt=\"Feedback from avrdude when setting the fuse bit in Digispark\" class=\"wp-image-1959\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/avrdude-1024x777.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/avrdude-300x228.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/avrdude-768x583.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/avrdude.png 1052w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n<p>Now you can upload the Blink Sketch from earlier with P5 as ledPin &#8211; now the LED flashes. Just a little less bright than on the other pins, as P5 only delivers 3 volts.&nbsp;<\/p>\r\n\n<h3 class=\"wp-block-heading\">Option 2: with Atmel Studio and suitable programmer<\/h3>\n\n<h4 class=\"wp-block-heading\">What you need<\/h4>\n\n<p>This method is less cryptic, but requires the installation of the rather large but also free software package Atmel Studio (currently version 7). In addition, you need a compatible programmer. Atmel Studio 7 can be downloaded <a href=\"https:\/\/www.microchip.com\/mplab\/avr-support\/atmel-studio-7\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>. If you want to get deeper into the programming of Atmel microcontrollers at register level and in &#8220;C&#8221;, you should deal with this program anyway. To change just one fuse bit, it&#8217;s a little exaggerated to install this powerful tool on your hard drive. In a later article I will go into more detail about Atmel Studio.<\/p>\r\n<p>The programmers for Atmel Studio are relatively expensive. One of the cheaper ones is the USB ISP programmer from Tremex\/Diamex, which you get for about 20 euros at e.g. <a href=\"https:\/\/smile.amazon.de\/gp\/product\/B0068M158K\/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&amp;psc=1\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> at Amazon. I tried it and it works absolutely smoothly with Atmel Studio. You don&#8217;t even need to install a driver when you&#8217;re using Windows 10.<\/p>\r\n<p>Better, but more expensive are the AVR Dragon or the Atmel-ICE. The former is for 50-80 euros, the latter from 120 euros. Debugging is also possible with these two models. In addition, the Dragon masters HVSP (High Voltage Serial Programming) with which you can undo the procedure on the P5. The Atmel-ICE cannot do this, but is delivered in a nice housing.&nbsp;<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Programmer-1.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"487\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Programmer-1-1024x487.jpg\" alt=\"Tremex\/Diamex's AVR Dragon, Atmel-ICE and USB ISP programmer\" class=\"wp-image-1971\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Programmer-1-1024x487.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Programmer-1-300x143.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Programmer-1-768x365.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Programmer-1-1320x628.jpg 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Programmer-1.jpg 1734w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption class=\"wp-element-caption\">From left to right: AVR Dragon, Atmel-ICE, USB ISP programmer (Tremex\/Diamex)<\/figcaption><\/figure>\n<\/div>\n<p>If you invest in a programmer, I recommend you to get a bread board adapter like this one here:<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Breadboardadapter.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"596\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Breadboardadapter-1024x596.jpg\" alt=\"Breadboard adapter - useful for programming the Digispark\" class=\"wp-image-1974\" style=\"width:256px;height:149px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Breadboardadapter-1024x596.jpg 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Breadboardadapter-300x175.jpg 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Breadboardadapter-768x447.jpg 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Breadboardadapter-1320x768.jpg 1320w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>It makes your work easier and avoids errors in the circuit. You can buy such a part e.g. <a href=\"https:\/\/smile.amazon.de\/gp\/product\/B00PZ5HXJG\/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;psc=1\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a> or with 2 x 3 pin headers <a href=\"https:\/\/smile.amazon.de\/Adafruit-Pin-AVR-Breadboard-Adapter-Miniset\/dp\/B00OKJFASY\/ref=sr_1_1_sspa?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3%91&amp;keywords=ip+adafruit&amp;qid=1560974240&amp;s=ce-de&amp;sr=1-1-spons&amp;psc=1\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>.<\/p>\r\n\n<h4 class=\"wp-block-heading\">Wiring<\/h4>\n\n<p>The connection scheme of the programmer and the Digispark looks like this:<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Digispark_breadboardadapter.png\"><img loading=\"lazy\" decoding=\"async\" width=\"549\" height=\"275\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Digispark_breadboardadapter.png\" alt=\"Circuit for Digispark with programmer\" class=\"wp-image-1978\" style=\"width:412px;height:206px\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Digispark_breadboardadapter.png 549w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Digispark_breadboardadapter-300x150.png 300w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\" \/><\/a><\/figure>\n<\/div>\n<p>Note that the AVR Dragon cannot power the Digispark. You need a separate power source. The low-cost USB ISP programmer, on the other hand, can do this, provided the dip switches 1 and 2 are on &#8220;ON&#8221;.&nbsp;<\/p>\r\n\n<h4 class=\"wp-block-heading\">Using Atmel Studio 7<\/h4>\n\n<p>If you are using a Dragon or Atmel-ICE, Atmel Studio should automatically detect it. You must first integrate the Tremex\/Diamex USB ISP programmer. To do this, you can go to the menu<\/p>\r\n<p>Tools &#8212; &gt; Add Target&#8230; &#8212; &gt; Select Tool&nbsp;<\/p>\r\n<p>Select ST500 and the port, then confirm with &#8220;Apply&#8221;.<\/p>\r\n<p>In the menu bar you will find a small icon for &#8220;Device Programming&#8221;. Click on it. &nbsp;<\/p>\r\n\n<figure class=\"wp-block-image\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/AVR-Studio.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"80\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/AVR-Studio-1024x80.png\" alt=\"Menu of Atmel Studio 7\" class=\"wp-image-1962\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/AVR-Studio-1024x80.png 1024w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/AVR-Studio-300x24.png 300w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/AVR-Studio-768x60.png 768w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/AVR-Studio-1320x104.png 1320w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/AVR-Studio.png 1350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n<p>If the tool is not yet selected in the next window, select it here in the drop-down menu. As a device, you choose the ATtiny85. Interface is ISP. Then click on &#8220;Apply&#8221;.<\/p>\r\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><a href=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Select-Tool.png\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"311\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Select-Tool.png\" alt=\"Device programming window - selecting tool and device\" class=\"wp-image-1982\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Select-Tool.png 746w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Select-Tool-300x125.png 300w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/a><\/figure>\n<\/div>\n<p>You can then check the supply voltage and see if the correct signature is displayed. It should be 0x1E930B. Now go to the menu item &#8220;Fuses&#8221;.<\/p>\r\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"745\" height=\"594\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Signature_Voltage_Fuses.png\" alt=\"Device Programming Window - more selections\" class=\"wp-image-1984\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Signature_Voltage_Fuses.png 745w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Signature_Voltage_Fuses-300x239.png 300w\" sizes=\"auto, (max-width: 745px) 100vw, 745px\" \/><\/figure>\n\n<p>Tick the box behind &#8220;HIGH.RSTDISBL&#8221;, click on &#8220;Program&#8221; and on &#8220;Continue&#8221; in the dialog window that pops up. If everything worked out you should see a message at the bottom telling you &#8220;Verify Registers &#8230;. OK&#8221;.<\/p>\r\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"590\" src=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Pin5_als_IO-1.png\" alt=\"Device programming window - selection of fuse bits\" class=\"wp-image-1985\" srcset=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Pin5_als_IO-1.png 744w, https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Pin5_als_IO-1-300x238.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/figure>\n\n<p>P5 should now be operational as an I\/O pin.&nbsp;<\/p>\r\n<p>If you would like to learn more about Atmel Studio 7, keep your eyes open &#8211; in one of the next posts I will provide an introduction.&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>In my last post I described how to upload your sketches to an ATtiny85 (or 84, 45, 44, 25, 24). To do this, you have to set up&#8230;<\/p>\n","protected":false},"author":1,"featured_media":8022,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[543],"tags":[733,740,707,739,720,723,742,666,728,735,725,727,743,731],"class_list":["post-9308","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-boards-and-microcontrollers","tag-atmel-studio-en-2","tag-atmel-ice-en","tag-attiny85-en","tag-avr-dragon-en-3","tag-digispark-en","tag-digistump-en","tag-fuse-bit-en","tag-i2c-en","tag-p5-as-i-o-pin","tag-programmer-en-2","tag-rev3-en","tag-revision-3-en-2","tag-rstdisbl-en","tag-step-by-step-en-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Digispark - the convenient ATtiny85 alternative &#8226; Wolles Elektronikkiste<\/title>\n<meta name=\"description\" content=\"Step-by-step introduction to the Digispark, differences to the ATtiny85, how to program it and how to configure P5 as an I\/O pin.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Digispark - the convenient ATtiny85 alternative &#8226; Wolles Elektronikkiste\" \/>\n<meta property=\"og:description\" content=\"Step-by-step introduction to the Digispark, differences to the ATtiny85, how to program it and how to configure P5 as an I\/O pin.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative\" \/>\n<meta property=\"og:site_name\" content=\"Wolles Elektronikkiste\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-29T22:04:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-07-07T12:02:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Beitragsbild.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1672\" \/>\n\t<meta property=\"og:image:height\" content=\"1242\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Wolfgang Ewald\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wolfgang Ewald\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative\"},\"author\":{\"name\":\"Wolfgang Ewald\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"headline\":\"Digispark &#8211; the convenient ATtiny85 alternative\",\"datePublished\":\"2020-10-29T22:04:48+00:00\",\"dateModified\":\"2024-07-07T12:02:29+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative\"},\"wordCount\":2374,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Beitragsbild.jpg\",\"keywords\":[\"Atmel Studio\",\"Atmel-ICE\",\"ATtiny85\",\"AVR Dragon\",\"digispark\",\"digistump\",\"fuse-bit\",\"I2C\",\"P5 as I\\\/O pin\",\"programmer\",\"rev3\",\"revision 3\",\"RSTDISBL\",\"Step-by-step\"],\"articleSection\":[\"Boards and Microcontrollers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative\",\"name\":\"Digispark - the convenient ATtiny85 alternative &#8226; Wolles Elektronikkiste\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Beitragsbild.jpg\",\"datePublished\":\"2020-10-29T22:04:48+00:00\",\"dateModified\":\"2024-07-07T12:02:29+00:00\",\"description\":\"Step-by-step introduction to the Digispark, differences to the ATtiny85, how to program it and how to configure P5 as an I\\\/O pin.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#primaryimage\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Beitragsbild.jpg\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/06\\\/Beitragsbild.jpg\",\"width\":1672,\"height\":1242},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\\\/digispark-the-convenient-attiny85-alternative#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Digispark &#8211; the convenient ATtiny85 alternative\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#website\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en\",\"name\":\"Wolles Elektronikkiste\",\"description\":\"Die wunderbare Welt der Elektronik\",\"publisher\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/en#\\\/schema\\\/person\\\/b774e4d64b4766889a2f7c6e5ec85b46\",\"name\":\"Wolfgang Ewald\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"url\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"contentUrl\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\",\"width\":512,\"height\":512,\"caption\":\"Wolfgang Ewald\"},\"logo\":{\"@id\":\"https:\\\/\\\/wolles-elektronikkiste.de\\\/wp-content\\\/uploads\\\/2019\\\/03\\\/cropped-Logo-1.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Digispark - the convenient ATtiny85 alternative &#8226; Wolles Elektronikkiste","description":"Step-by-step introduction to the Digispark, differences to the ATtiny85, how to program it and how to configure P5 as an I\/O pin.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative","og_locale":"en_US","og_type":"article","og_title":"Digispark - the convenient ATtiny85 alternative &#8226; Wolles Elektronikkiste","og_description":"Step-by-step introduction to the Digispark, differences to the ATtiny85, how to program it and how to configure P5 as an I\/O pin.","og_url":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative","og_site_name":"Wolles Elektronikkiste","article_published_time":"2020-10-29T22:04:48+00:00","article_modified_time":"2024-07-07T12:02:29+00:00","og_image":[{"width":1672,"height":1242,"url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Beitragsbild.jpg","type":"image\/jpeg"}],"author":"Wolfgang Ewald","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Wolfgang Ewald","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#article","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative"},"author":{"name":"Wolfgang Ewald","@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"headline":"Digispark &#8211; the convenient ATtiny85 alternative","datePublished":"2020-10-29T22:04:48+00:00","dateModified":"2024-07-07T12:02:29+00:00","mainEntityOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative"},"wordCount":2374,"commentCount":0,"publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Beitragsbild.jpg","keywords":["Atmel Studio","Atmel-ICE","ATtiny85","AVR Dragon","digispark","digistump","fuse-bit","I2C","P5 as I\/O pin","programmer","rev3","revision 3","RSTDISBL","Step-by-step"],"articleSection":["Boards and Microcontrollers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative","url":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative","name":"Digispark - the convenient ATtiny85 alternative &#8226; Wolles Elektronikkiste","isPartOf":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#website"},"primaryImageOfPage":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#primaryimage"},"image":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#primaryimage"},"thumbnailUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Beitragsbild.jpg","datePublished":"2020-10-29T22:04:48+00:00","dateModified":"2024-07-07T12:02:29+00:00","description":"Step-by-step introduction to the Digispark, differences to the ATtiny85, how to program it and how to configure P5 as an I\/O pin.","breadcrumb":{"@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#primaryimage","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Beitragsbild.jpg","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/06\/Beitragsbild.jpg","width":1672,"height":1242},{"@type":"BreadcrumbList","@id":"https:\/\/wolles-elektronikkiste.de\/en\/digispark-the-convenient-attiny85-alternative#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/wolles-elektronikkiste.de\/en"},{"@type":"ListItem","position":2,"name":"Digispark &#8211; the convenient ATtiny85 alternative"}]},{"@type":"WebSite","@id":"https:\/\/wolles-elektronikkiste.de\/en#website","url":"https:\/\/wolles-elektronikkiste.de\/en","name":"Wolles Elektronikkiste","description":"Die wunderbare Welt der Elektronik","publisher":{"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wolles-elektronikkiste.de\/en?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/wolles-elektronikkiste.de\/en#\/schema\/person\/b774e4d64b4766889a2f7c6e5ec85b46","name":"Wolfgang Ewald","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","url":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","contentUrl":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png","width":512,"height":512,"caption":"Wolfgang Ewald"},"logo":{"@id":"https:\/\/wolles-elektronikkiste.de\/wp-content\/uploads\/2019\/03\/cropped-Logo-1.png"}}]}},"_links":{"self":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/9308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/comments?post=9308"}],"version-history":[{"count":0,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/posts\/9308\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media\/8022"}],"wp:attachment":[{"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/media?parent=9308"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/categories?post=9308"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wolles-elektronikkiste.de\/en\/wp-json\/wp\/v2\/tags?post=9308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}