Digispark is an ATtiny85 based microcontroller development board come with USB interface. Coding is similar to Arduino, and it use the familiar Arduino IDE for development.

Digispark is copyrighted by Digistump LLC (digistump.com) and the full license is here: http://digistump.com/wiki/digispark/policy

Support for the Arduino IDE 1.0+ (OSX/Win/Linux)
Power via USB or External Source - 5v or 7-35v (automatic selection)
On-board 500ma 5V Regulator
Built-in USB (and serial debugging)
6 I/O Pins (2 are used for USB only if your program actively communicates over USB, otherwise you can use all 6 even if you are programming via USB)
8k Flash Memory (about 6k after bootloader)
I2C and SPI (vis USI)
PWM on 3 pins (more possible with Software PWM)
ADC on 4 pins
Power LED and Test/Status LED (on Pin0)

Step 1: Prerequisite

AVRISP MKII In-System Programmer
ATTINY85 Microcontroller
2 x 3.6V zener diode
2 x 68 ohm resistor
1 x 1.5K resistor
USB cable (get from broken mouse or keyboard)
Some wires

<p>I flashed the bootloader but if i connect the device to my windows 10 computer I get this error: </p><p>A request for the USB device descriptor failed.</p>
<p>I'm getting the same error on Windows 10, I've tried everything I can think of to get it working with no success. If you figure it out please let me know.</p>
<p>Sweet! :D</p>
<p>Never mind, got it working, 1.5k and 68R resistances were swapped.</p>
<p>Tried building this, but device is not detecting, unknown usb error is shown, is schematic correct?, in micronucleus firmware folder in bootloaderconfig.h file, it says to connect D+ line to INT0. So we need to connect PB4 to PB2 also? </p>
<p>Hi, I think that I have much smaller arduino than you <a href="https://www.tindie.com/products/bobricius/picoduino/" rel="nofollow">https://www.tindie.com/products/bobricius/picoduino/</a></p>
<p>I am all for self built, for the sheer joy and the sense of learning. But I am also cost conscious. You guys know this thing costs 2 euro's at Aliexpress right? Ready made, good to go: <a href="http://www.aliexpress.com/item/Free-shipping-Digispark-kickstarter-CJMCU-Micro-Attiny85-module-Mini-USB-Development-Board-for-Arduino-usb/32240912786.html" rel="nofollow">http://www.aliexpress.com/item/Free-shipping-Digis...</a><br><br>Also, a pro mini costs only 1.60 euro's there and has a lot more pins</p>
<p>Only just... I'm working on an even smaller one, if it works, It'll litterally fit inside a usb plug lol</p>
<p>how's that goin?</p>
<p>Apart from accidentally shorting my data wires on the first attempt (lucky it wasnt power...)its worked like a dream :)</p><p>uses SMD components. The difficult bit is pulling out the reamaming IO pins without shorting stuff...</p><p>Once I've got it working, I'll share the instructable :)</p>
Did you manage to get it working?
Hi mate, I know it's a long time ago but wondered how the project went. We have a real problem in my industry and I think your idea would solve it. I would like to present it to my seniors at head office.
<div> <br><div> <br><div> <br><div> <br><div>I'm the Ardulink creator. Ardulink is a java open source library that can control and coordinate several Arduino boards.If you are interested in have PicoDuino supported by Ardulink, please contact me and send to me a board. I've already made a test with a Digispark.<br><a href="http://www.ardulink.org/digispark-supported/" rel="nofollow">http://www.ardulink.org/digispark-supported/</a><br><br></div></div></div></div></div>
<p>Hi,</p><p>just wanted to thank you and throw in a pic of my attempt :)</p><p>the upper one is a usbTinyISP and the lower one the Digispark. I added a capacitor (10uF i think, but just used the next one laying around) to get usb-connection to work.</p>
<p>Once you use Burn Bootloader, you can never program that chip again using an ISP programmer.</p><p><a href="http://digistump.com/board/index.php/topic,1051.0.html" rel="nofollow">http://digistump.com/board/index.php/topic,1051.0....</a></p>
Well! No problem! Thanks for warning me
Can you explain this process whit arduino as ISP instead&nbsp;AVRISP mkII
<p>Would it work, If I connect P3 and P4 directly to USB+ and USB- on my micro USB connector?</p><p>What are the potential downsides of not using the zenor diode and the pull-up resistors for Level converting? Would my communication still work without those two? Could it fry my processor or the usb port on my host device?</p>
<p>It wouldn't work without the Zener didoe &amp; the pull-up resistor.</p><p>The USB power uses 5V, but the dataline (USB+ &amp; USB-) uses only 3.6V for high, attempt to fed 5V from ATTiny85 to computer will cause the communication failed.</p>
<p>Has anyone tried to use an ATtiny84 instead with usb capabilities? It would be very helpful</p>
<p>Please check with Digispark Pro</p><p>https://www.kickstarter.com/projects/digistump/digispark-pro-tiny-arduino-ready-mobile-and-usb-de</p>
<p>What chip uses the Digispark Pro? I am actually more interested in making the ATtiny84 usb like the first Digispark</p>
<p>Tiny Arduino based on ATTiny84</p><p><a href="https://github.com/digistump/DigisparkArduinoIntegration/tree/master/hardware/digispark" rel="nofollow">https://github.com/digistump/DigisparkArduinoInteg...</a></p>
<p>At first I thought it is ATtiny84 because it is discussing in the post related to ATTiny84:</p><p><a href="https://digistump.com/board/index.php?topic=997.105" rel="nofollow">https://digistump.com/board/index.php?topic=997.10...</a></p><p>By comparison the pin configuration and specification, I think it must be ATTiny167.</p>
Hello what can i do with this board perform?
<p>Digispark has 6 digital outputs, you can control LED, relays. It has 3 PWM outputs, you can control motor and fade the LED. It has 4 Analog inputs and can be connect to sensors.</p><p>Please refer to Digispark project forum for more details:</p><p>https://digistump.com/board/index.php/board,2.0.html?PHPSESSID=rmkknm79gl308nsk4tmhr4g9i6</p>
<p>Select the fuse RSTDISBL. That disables the reset function of the pin, and enables it as I/O. Note, you will need an HVSP to reset the fuse (or reprogram the AVR) after you do that.</p>
PD, is there a way to communicate between the uC and the computer via the integrated USB?
<p>You could try with my java library Ardulink. I've developed a connection for Digispark. It works also if some messages get lost.</p><p><a href="http://www.ardulink.org/digispark-supported/" rel="nofollow">http://www.ardulink.org/digispark-supported/</a></p>
Communicate between Digispark &amp; computer is not easy via USB. You can refer to&nbsp;<a href="http://digistump.com/wiki/digispark/tutorials/debugging" rel="nofollow">Debugging with the Digispark<br> <br> I</a>&nbsp;would&nbsp;suggest to sending the data as keyboard keystrokes using the digispark keyboard emulation, it is very simple and easy. Otherwise you can use Softserial<br> <br> <br>
<p>Silly question. Whats the purpose of the 2 zener diodes?</p><p>I'm guessing its to stop a back flow from gnd to the data pins (or visa versa)?</p><p>thanks</p><p>Dan</p>
<p>The host(computer) sends 0V(0.8V min.) for a low level and 3.3V(3.6V max.) for a high level.</p><p>The zener diode acts as the level convertor, the 3.6V zener diodes yield 3.3V in conjuction with an 1.5K resistor.</p>
<p>Ah i see. Thanks for that :) my electronics knowledge is a bit rusty lol</p>
<p>Cool!</p><p>Could you upload the fritzing file (.fzz)?</p>
<p>Just ordered myself 10 ATtiny84's to make these :D (well, one for a usb programmer, the rest for this) I cant wait to be able to develop USB devices and similar without the hefty pricetag of the arduino...</p><p><br>one set of fuses that will let the rest pin be used for io is<br>Low: 0xe1<br>High: 0x5d<br>Extended: 0xff</p><p>But I've not tested it yet, so cant guarantee it </p>
I get a &quot;USB device not recognized&quot; message. I try with 1,8k and 1,2k on D- and on D+ and all on work. My 2 zener are two 1n4729.
i miss spell, &quot;all not work&quot;. I have no idea why it don't work
Reverse the D+ and D- may cause &quot;USB device not recognized&quot; too. <br> <br>I'm also facing &quot;USB device not recognzed&quot; when using an ordinary USB mouse cable, <br> <br>Please use a good quality USB cable. The USB cable must be as short as possible. <br>
Thank you for sharing
FUSEOPT_t85_DISABLERESET = -U lfuse:w:0xe1:m -U efuse:w:0xfe:m -U hfuse:w:0x5d:m <br> <br>Use High fuse 5D this was taken from the digispark bootloader make file <br> <br>Cheers <br> <br>Rupert
I plugged in my digispark and instead of the wizard popping up, I get a &quot;USB device not recognized&quot; message. Any ideas?
Did you reverse the USB signals (D+ and D-)? Get the<a href="http://my.element14.com/jsp/search/productdetail.jsp?SKU=1700904" rel="nofollow"> lowest wattage zener diodes</a> you can.<br> <br> <a href="http://digistump.com/board/index.php/topic,74.msg2058.html#msg2058" rel="nofollow">Read here</a> for more details.
Thank you smching. I did as you suggested. The sketches uploaded onto the Digispark ONLY on ONE computer running OSX 10.7. It still did not work on two other computers running OSX 10.4 and 10.6 (both of these were Intel Core Duo's running at 1.83 GHz). The one running OSX 10.6 gave a different error message than the one that I listed, above: <br> java.io.IOException: Cannot run program &quot;/Applications/DigisparkArduino-MacOSX-1.0.4-May19/DigisparkArduino-MacOSX-1.0.4-May19/DigisparkArduino.app/Contents/Resources/Java/hardware/tools/avr/bin/avrdude&quot;: error=86, Bad CPU type in executable <br> at java.lang.ProcessBuilder.start(ProcessBuilder.java:470) <br> at java.lang.Runtime.exec(Runtime.java:593) <br> at java.lang.Runtime.exec(Runtime.java:466) <br> at processing.app.debug.Uploader.executeUploadCommand(Uploader.java:125) <br> at processing.app.debug.AvrdudeUploader.avrdude(AvrdudeUploader.java:331) <br> at processing.app.debug.AvrdudeUploader.uploadUsingPreferences(AvrdudeUploader.java:64) <br> at processing.app.Sketch.upload(Sketch.java:1671) <br> at processing.app.Sketch.exportApplet(Sketch.java:1627) <br> at processing.app.Sketch.exportApplet(Sketch.java:1599) <br> at processing.app.Editor$DefaultExportHandler.run(Editor.java:2380) <br> at java.lang.Thread.run(Thread.java:680) <br>Caused by: java.io.IOException: error=86, Bad CPU type in executable <br> at java.lang.UNIXProcess.forkAndExec(Native Method) <br> at java.lang.UNIXProcess.(UNIXProcess.java:53) <br> at java.lang.ProcessImpl.start(ProcessImpl.java:91) <br> at java.lang.ProcessBuilder.start(ProcessBuilder.java:452) <br> ... 10 more <br> <br>Apparently the DIgispark IDE has a problem with the &quot;Bad CPU type&quot; (in two of the computers?). <br>Are these CPU chips too old to be compatible with the Digispark IDE? <br> <br>FYI, the blog did not let me insert this message into the reply box because it asked for the two code words to be entered, but a brown box to do so did not appear under the reply box.
I only use MS Windows, I may not able to help you on this problem. <br>Anyway you can post your question to Disispark forum <br>http://digistump.com/board/index.php/board,4.0.html
Your website gives the most complete description and set of procedures for Digispark in one single location that I have yet seen. I am very new to Digispark and am confused by the bootloader part. I thought that Digispark came 1) with its own ATTiny85 hardwired on the board 2) pre-programmed, in that when inserted into USB port (Mac OSX 10.4) the LED flashed on and off @ 1Hz (if using the RGB LED shield, it flashes red, blue then green). <br>I cannot download either the Digispark &quot;Start&quot; or the &quot;RGB&quot; sketch because it will not compile (an therefore will not download). It gives the following error message: <br>dyld: unknown required load command 0x80000022 <br>avr-gcc: Internal error: Trace/BCP trap program ld <br>Please assist me in correcting this situation. Thanks.
You must configure your Didispark software (Arduino IDE) <br>From the Tools menu select Board&rarr;Digispark (Tiny Core) <br> <br>You need to your programmer to Digispark if you want to upload sketch <br>From the Tools menu select Programmer&rarr;Digispark <br> <br>Refer to Digistump Wiki for more details: <br>http://digistump.com/wiki/digispark/tutorials/connecting
I like the intent behind this Instructable, but I have a couple issues with how it was presented. You're using &quot;Digispark&quot; as if it were your name, and there's no reference to to the actual Digispark product after reading through the whole writeup. You use the Digispark schematic, but removed the creative commons license, and didn't mention where it came from. It would be nice if you gave your project a unique name, e.g. &quot;DIYspark - a Digispark clone&quot;, and at least put some links to Digispark in your writeup. <br>
Ha Ha! This is my mistake. Thanks for reminding me. I had updated the license info to this instructable.

About This Instructable


433 favorites


Bio: A place for DIY projects
More by smching: L298N Motor Driver Controller Board BASH Dropbox Uploader on OpenWRT Arduino based Electronic Queuing System
Add instructable to: