Hi all,
Can anyone point me to a source that has authentic Digisparks in stock?
I'm working on a project right now, using a Digispark as a dev board. I'd like to use a real one, but Digistump is understandably a little busy with other ventures at the moment.
I purchased a clone on eBay - One of the shoddy rev3 boards. I can't get any code to upload - The unit does have the Micronucleus bootloader installed (v1.6/1.06), and it enumerates properly as a USB device (I believe). Output from USBDeviceTreeViewer:
=========================== USB Port1 ===========================
Connection Status : 0x01 (Device is connected)
Port Chain : 1-1
======================== USB Device ========================
+++++++++++++++++ Device Information ++++++++++++++++++
Device Description : Digispark Bootloader
Device Path : \\.\usb#vid_16d0&pid_0753#5&32aa5a04&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
Device ID : USB\VID_16D0&PID_0753\5&32AA5A04&0&1
Hardware IDs : USB\VID_16D0&PID_0753&REV_0106 USB\VID_16D0&PID_0753
Driver KeyName : {eb781aaf-9c70-4523-a5df-642a87eca567}\0001 ({EB781AAF-9C70-4523-A5DF-642A87ECA567})
Driver : system32\DRIVERS\libusb0.sys (Version: 1.2.6.0 Date: 2018-04-25)
Driver Inf : C:\Windows\inf\oem35.inf
Legacy BusType : PNPBus
Class : libusb-win32 Usb Devices
Class GUID : {eb781aaf-9c70-4523-a5df-642a87eca567}
Interface GUID : {a5dcbf10-6530-11d2-901f-00c04fb951ed} (GUID_DEVINTERFACE_USB_DEVICE)
Service : libusb0
Enumerator : USB
Location Info : Port_#0001.Hub_#0001
Location IDs : PCIROOT(0)#PCI(1200)#USBROOT(0)#USB(1)
Container ID : {092af939-36c7-11e8-aa85-74d435bfff27}
Manufacturer Info : Digistump
Capabilities : 0x84 (Removable, SurpriseRemovalOK)
Status : 0x0180600A (DN_DRIVER_LOADED, DN_STARTED, DN_DISABLEABLE, DN_REMOVABLE, DN_NT_ENUMERATOR, DN_NT_DRIVER)
Problem Code : 0
Power State : D0 (supported: D0, D2, D3, wake from D0, wake from D2)
---------------- Connection Information ---------------
Connection Index : 0x01 (1)
Connection Status : 0x01 (DeviceConnected)
Current Config Value : 0x01
Device Address : 0x02 (2)
Is Hub : 0x00 (no)
Number Of Open Pipes : 0x00 (0)
Device Bus Speed : 0x00 (Low-Speed)
---------------------- Device Descriptor ----------------------
bLength : 0x12 (18 bytes)
bDescriptorType : 0x01 (Device Descriptor)
bcdUSB : 0x110 (USB Version 1.10)
bDeviceClass : 0xFF (Vendor Specific)
bDeviceSubClass : 0x00
bDeviceProtocol : 0x00
bMaxPacketSize0 : 0x08 (8 bytes)
idVendor : 0x16D0
idProduct : 0x0753
bcdDevice : 0x0106
iManufacturer : 0x00 (No String Descriptor)
iProduct : 0x00 (No String Descriptor)
iSerialNumber : 0x00 (No String Descriptor)
bNumConfigurations : 0x01 (1 Configuration)
------------------ Configuration Descriptor -------------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x02 (Configuration Descriptor)
wTotalLength : 0x0012 (18 bytes)
bNumInterfaces : 0x01 (1 Interface)
bConfigurationValue : 0x01 (Configuration 1)
iConfiguration : 0x00 (No String Descriptor)
bmAttributes : 0x80
D7: Reserved, set 1 : 0x01
D6: Self Powered : 0x00 (no)
D5: Remote Wakeup : 0x00 (no)
D4..0: Reserved, set 0 : 0x00
MaxPower : 0x32 (100 mA)
---------------- Interface Descriptor -----------------
bLength : 0x09 (9 bytes)
bDescriptorType : 0x04 (Interface Descriptor)
bInterfaceNumber : 0x00
bAlternateSetting : 0x00
bNumEndpoints : 0x00 (Default Control Pipe only)
bInterfaceClass : 0x00 (reserved for future standardization)
bInterfaceSubClass : 0x00
bInterfaceProtocol : 0x00
iInterface : 0x00 (No String Descriptor)
-------------------- String Descriptors -------------------
------ String Descriptor 0 ------
bLength : 0x04 (4 bytes)
bDescriptorType : 0x03 (String Descriptor)
Language ID[0] : 0x0409 (English - United States)
Output from Micronucleus (via Arduino IDE) is as follows:
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
> Starting to upload ...
writing: 70% complete
writing: 75% complete
writing: 80% complete
> Starting the user app ...
running: 100% complete
>> Micronucleus done. Thank you!
However this doesn't have any appreciable affect on the board itself - The default blink sketch is still on the board.
I've also tried to update the firmware via Micronucleus.exe, similar output to above, but no change in version number.
I switched out the USB protection diode (D3) on the board after finding the thread that covers that, no change.
Any ideas? My fall back to to switch development over to a modified Adafruit Trinket (I would need to reflash it w/ Micronucleus and disable reset functionality because I need every I/O pin for this application). That's a cludgy solution, however. The Digispark is preferable, because it can be soldered directly to the prototype PCB and installed in the enclosure I've designed. I might be able to cram a green-wire connected Trinket in there, but it's not ideal.