DigiSpark annotated

Digistumped?

Preamble

Following on from A tiny one and Using an ATtiny development board, I figured that it was time to get the DigiStump/DigiSpark ATtiny85 board (that I had ordered over two months ago) to work, seeing as I had failed to get the ATtiny85 and the development board to work previously.

2019-08-09-3992

This time around it was a lot easier…

See also

Links

First use

When you plug the Digistump board into a Mac, it is not recognised.. When plugged into a Windows 7 laptop, the USB plugged-in and unplugged alert sounds play repeatedly, and incessantly, over and over again. The driver tries to install itself, but ultimately fails. Looking in Device Manager just shows a self refreshing Device List. There is clearly some instability with respect to the DigiStump being plugged in.

digistump-not-recognised.png

Note that two Unknown devices are shown above, only the highlighted item is the DigiSpark board. The other was already there.

Here is the device list refreshing itself:

digistump-not-recognised-blank.png

It is best to leave the Digistump unplugged in, for the time being.

Drivers

Download the drivers first:

digistump-not-recognised-install.png

which once installed leave only one unrecognised and unrelated device, which was already there on my machine, and can be ignored for the purpose of this tutorial.

Digistump-not recognised-postinstall1l

However, the constant USB device ping-pong noise alert still sounds. To remove that annoyance it is necessary to install the micronucleus:

  • In the Arduino IDE
    • Preferences > Additional Boards Manager URLs and paste:
      http://digistump.com/package_digistump_index.json
    • Tools > Board > Boards Manager and select:
      Digistump AVR Boards by Digistump.
    • Once installed, select the newly added Tools > Board > Digispark (Default 16.5 MHz)
    • If possible, select the Port, Tools > Port > COMx

Digistump-now recognised.png

Now with the Arduino IDE open, but still without the DigiStump plugged in, compile and upload the following code:

/*
  Ardu-Serie#66
  Project : Digispark - Easy Installations Procedures     
  Ino File: _66_DigiSpark_Blinking_LED_01.ino
*/

void setup() {
  pinMode(1, OUTPUT);
}

void loop() {
  digitalWrite(1, HIGH);  // Turn the LED on
  delay(250);

  digitalWrite(1, LOW);  // Turn the LED off
  delay(250);
}

Only once the code has started compiling/compiled, then plug in the DigiStump board. Immediately after that it is possible to quickly select, in the Arduino IDE, the port to which the DigiStump board is connected, using the menu Tools > Port > COMx, in my case it was COM3.

Once the code compiles, there will be a message stating that the device must be plugged in and that the uploader will timeout after 60 seconds:

Sketch uses 700 bytes (11%) of program storage space. Maximum is 6,012 bytes.
Global variables use 9 bytes of dynamic memory.
C:\Users\davinci\AppData\Local\Arduino15\packages\digistump\tools\micronucleus\2.0a4/launcher -cdigispark --timeout 60 -Uflash:w:C:\Users\davinci\AppData\Local\Temp\build3be22e40742a2d717e3851f1a625e05c.tmp/Digistump.ino.hex:i 
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ... 
> Press CTRL+C to terminate the program.
> Device is found!
connecting: 16% complete
connecting: 22% complete
connecting: 28% complete
connecting: 33% complete
> Device has firmware version 1.6
> Available space for user applications: 6012 bytes
> Suggested sleep time between sending pages: 8ms
> Whole page count: 94  page size: 64
> Erase function sleep duration: 752ms
parsing: 50% complete
> Erasing the memory ...
erasing: 55% complete
erasing: 60% complete
erasing: 65% complete
>> Eep! Connection to device lost during erase! Not to worry
>> This happens on some computers - reconnecting...
>> Reconnected! Continuing upload sequence...
> Starting to upload ...
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!

Once the DigiStump/DigiSpark is inserted thenthe code should upload and a micronucleus message appears at the very end.

Then the LED will flash on the Digistump board… success!!!

Schematics

EagleCAD files for the schematics of both the DigiSpark and the Mini Development Board are on Green online/ATtiny Boards

Applying the DigiSpark configuration to the original ATtiny85

It could be an ideal to wire up the ATtiny using the DigiSpark schematic (although, if the ATtiny is not pre-installed with the micronucleus it still may not work). From Bypass Digispark 5v 500ma current limit?, the schematic for the DigiSpark is (original image (also another image from digispark ATTiny85 not running on independent power))

iv2bq

The board close up:

DigiSpark
DigiSpark

There are no components on the underside.

Annotating the photo of the DigiSpark with the components from the schematic:

DigiSpark annotated
DigiSpark annotated

Component values:

Note on the diode D3

Diode D3 is not in reverse. as suggested in post#2 of digispark ATTiny85 not running on independent power:

Is D3 really connected as per the schematic? I think it should have the anode connected to the USB connector.

as this Bypass Digispark 5v 500ma current limit? post states

we can see that there is a diode that drops the voltage to the VIN pin on the board…as i understand it that pin is there to prevent external power from feeding back into the usb port…

See also Powering the Digispark and Power from USB connector, in particular this post:

I do think the schematic for the original digispark is wrong… the diode is pointing towards, the 5v, not away from it, so it is allowing the USB to provide power to the 5v pin, but preventing any power present on 5v from feeding into the 5v line. Just to be clear, this is the schematic I am looking at for the Digispark…

I have also checked D3 with a multimeter, and it appears that the schematic is in fact correct. Referencing the annotations in the annotated photograph above: the anode is connected to 5V and the cathode is connected to USB 5V.

However, if you look at the schematic of the ATtiny mini development board below, you can see that the diode is placed with the anode to the USB 5V

ATtiny mini development board

From Learn To Use ATtiny85 USB Mini Development Board (original image)

ATtiny development board schematic
ATtiny development board schematic

The ATtiny development board close up:

2019-05-08-3776 crop

There are no components on the underside.

Annotating the photo of the ATtiny development board with the components from the schematic:

Annotated ATtiny mini development board
Annotated ATtiny mini development board

Component values:

  • R1, R2 = 1k
  • R3, R4 = 22Ω not 66.5R as shown in schematic
  • R5 = 1k5
  • C1 probed with DMM, for connection to VIN
  • C2 and C3 are guess work:
    • C2 assumed based on the similarity of physical colouring to C1 and as 4.7µF is close to 1µF
    • C3 is distinct from C1 and C2 in colouring
  • D3 anode is connected to USB 5V and cathode to 5V, so this is the reverse of the DigiSpark

 

 

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s