Author Topic: US Source for Authentic Digispark Boards & Clone Help Request  (Read 2521 times)

apt403

  • Newbie
  • *
  • Posts: 4
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:

Code: [Select]
    =========================== 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:

Code: [Select]
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.

MrCookie

  • Newbie
  • *
  • Posts: 21
Re: US Source for Authentic Digispark Boards & Clone Help Request
« Reply #1 on: May 09, 2018, 11:39:22 am »
I'd recommend getting the Digispark Pro instead, more program space, nearly the same size! :)

You could try getting a ISP programmer, and a bunch of bare chips to plug into prototyping boards or breadboards. But then you'd also have to flash the firmware to the chip as well..