Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
990 Views

Can't detect ttyACM0 with new Intel Curie chip

Hi

I got my new PCBA with intel curie that I designed at first time.

When I plug my design with USB cable to Linux machine, it detects Vendor and Product IDs like below, but after few seconds, USB disconnect.

When I connect Arduino 101 board, I could see it as in 2nd below, it successfully registered as ttyACM0.

If I compare "lsusb -v" log between my design and Arduino 101, interface sub-class of Arduino 101 is Abstract which is correct for ttyACM0, but for my design is "Application specific Interface".

I think this is the reason why when I connect my board, I was not registered as ttyACM0.

I successfully compiled A-tree and now I am trying to flashing it to my board, but because of this problem, I can't flash image of A-tree to my board.

https://software.intel.com/en-us/node/675512 Installing and Using the A Tree | Intel® Software

what I am not sure is whether reading below information(254 Application Specific interface for interface class and Device firmware update for sub-class) with brand new Curie is correct or

it should be read as same as when I read with Arduino??

can you help me whether information that I read with my design with new Curie is correct?

Since this is new board as first time, I am also wondering whether this is because there is problem with USB signaling because of circuit design or PCB layout?

I suspect this might be HW problem, but since I could read ID correctly, I also guess HW should be ok, but not sure.

I could see some comment here - , "The Curie chip comes with manufacturing bootloader and allows USB flashing for x86, ARC and BLE. .

that means I could see USB flashing by following instruction and I should see ttyACM0 when I connect new Intel Curie to Linux machine as similar as Arduino 101.

But still not 100% sure.

Do I have to flash image with JTAG(J-link) for new Intel curie or I can use USB as same as Arduino 101?

 

I can get some clear information about my question, I can get some clue what would be problem of my board and how to debug.

<< Arduino 101 >>

bInterfaceClass 2 Communications

bInterfaceSubClass 2 Abstract (modem)

<< My design >>

bInterfaceClass 254 Application Specific Interface

bInterfaceSubClass 1 Device Firmware Update

<< log when connect my board >>

[179433.688023] usb 5-1: new full-speed USB device number 47 using uhci_hcd

[179433.890055] usb 5-1: New USB device found, idVendor=8087, idProduct=0a99

[179433.890059] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[179433.890061] usb 5-1: Product: CURIECRB

[179433.890063] usb 5-1: Manufacturer: Intel

[179433.890065] usb 5-1: SerialNumber: 00.01

==>

[179443.280068] usb 5-1: USB disconnect, device number 47

<< when I connect Arduino 101 >>

[22108.484018] usb 5-2: new full-speed USB device number 25 using uhci_hcd

[22108.671305] usb 5-2: New USB device found, idVendor=8087, idProduct=0ab6

[22108.671308] usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[22108.671310] usb 5-2: Product: ARDUINO 101

[22108.671313] usb 5-2: Manufacturer: Intel

[22108.671315] usb 5-2: SerialNumber: AE6642EK61801Z7

[22108.910239] cdc_acm 5-2:1.0: ttyACM0: USB ACM device

[22108.911612] usbcore: registered new interface driver cdc_acm

<< lsusb -v when I connect my design >>

Bus 005 Device 045: ID 8087:0a99 Intel Corp.

Couldn't open device, some information will be missing

Device Descriptor:

bLength 18

bDescriptorType 1

bcdUSB 2.00

bDeviceClass 0 (Defined at Interface level)

bDeviceSubClass 0

bDeviceProtocol 0

bMaxPacketSize0 64

idVendor 0x8087 Intel Corp.

idProduct 0x0a99

bcdDevice 80.87

iManufacturer 1

iProduct 2

iSerial 3

bNumConfigurations 1

Configuration Descriptor:

bLength 9

bDescriptorType 2

wTotalLength 117

bNumInterfaces 1

bConfigurationValue 1

iConfiguration 0

bmAttributes 0xc0

Self Powered

MaxPower 100mA

Interface Descriptor:

bLength 9

bDescriptorType 4

bInterfaceNumber 0

bAlternateSetting 0

bNumEndpoints 0

bInterfaceClass 254 Application Specific Interface

bInterfaceSubClass 1 Device Firmware Update

bInterfaceProtocol 2

iInterface 4

Interface Descriptor:

bLength 9

bDescriptorType 4

bInterfaceNumber 0

bAlternateSetting 1

...

Tags (1)
0 Kudos
6 Replies
Highlighted
Community Manager
17 Views

Hi hahadoo,

 

 

Thank you for contacting us and providing such a detailed description. Please allow us to investigate further on your question so we can provide the best suggestion possible.

 

We appreciate your patience.

 

 

Regards,

 

-Sergio A

 

0 Kudos
Highlighted
Beginner
17 Views

Thanks for reply.

by looking at more information about below, it looks Curie was in DFU mode.

bInterfaceClass 254 Application Specific Interface

bInterfaceSubClass 1 Device Firmware Update

bInterfaceProtocol 2

But somehow it fail to open it, I used "dfu_util -l" to check interface and the it returned "Cannot open DFU device 8087:0a99"

See below logs.

It looks this is related with the problem of "USB disconnect" after few seconds it detects idVonder and idProduct.

since it looks it is read DFU information correctly, it may not HW problem, but no idea why.

it looks boot loader in new Curie chip is not same as Arduino 101.

=======================================================================

hahadoo@hahadoo-64bit:~/workspace/intel-curie/CODK/CODK-A/flashpack/bin$ ./dfu-util -l

dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.

Copyright 2010-2014 Tormod Volden and Stefan Schmidt

This program is Free Software and has ABSOLUTELY NO WARRANTY

Please report bugs to mailto:dfu-util@lists.gnumonks.org dfu-util@lists.gnumonks.org

dfu-util: Cannot open DFU device 8087:0a99

=======================================================================

Thanks

0 Kudos
Highlighted
Beginner
17 Views

Below is syslog when I reset Curie board, it looks it couldn't find some module that for Curie.

is there any dev rule that I have to add or other setup??

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: Execute 'load' 'usb:v8087p0A99d8087dc00dsc00dp00icFEisc01ip02in00'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: No module matches 'usb:v8087p0A99d8087dc00dsc00dp00icFEisc01ip02in00'

========================================================================================================================

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: Reading rules file: /lib/udev/rules.d/99-systemd.rules

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: rules contain 393216 bytes tokens (32768 * 12 bytes), 31086 bytes strings

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: 20260 strings (167756 bytes), 17017 de-duplicated (139914 bytes), 3244 trie nodes used

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: seq 2674 forked new worker [11629]

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: seq 2675 queued, 'add' 'usb'

May 2 22:33:46 hahadoo-64bit mtp-probe: checking bus 5, device 72: "/sys/devices/pci0000:00/0000:00:1d.3/usb5/5-1"

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: seq 2674 running

May 2 22:33:46 hahadoo-64bit mtp-probe: bus: 5, device: 72 was not an MTP device

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: value '[dmi/id]sys_vendor' is 'Shuttle Inc'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: value '[dmi/id]sys_vendor' is 'Shuttle Inc'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: IMPORT builtin 'usb_id' /lib/udev/rules.d/50-udev-default.rules:13

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: IMPORT builtin 'hwdb' /lib/udev/rules.d/50-udev-default.rules:13

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: MODE 0664 /lib/udev/rules.d/50-udev-default.rules:41

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: PROGRAM 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.3/usb5/5-1 5 72' /lib/udev/rules.d/69-libmtp.rules:1923

May 2 22:33:46 hahadoo-64bit systemd-udevd[11630]: starting 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.3/usb5/5-1 5 72'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.3/usb5/5-1 5 72'(out) '0'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: Process 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.3/usb5/5-1 5 72' succeeded.

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: handling device node '/dev/bus/usb/005/072', devnum=c189:583, mode=0664, uid=0, gid=0

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: set permissions /dev/bus/usb/005/072, 020664, uid=0, gid=0

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: creating symlink '/dev/char/189:583' to '../bus/usb/005/072'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: created db file '/run/udev/data/c189:583' for '/devices/pci0000:00/0000:00:1d.3/usb5/5-1'

May 2 22:33:46 hahadoo-64bit org.freedesktop.fwupd[792]: (fwupd:1804): As-CRITICAL **: as_store_get_app_by_provide: assertion 'value != NULL' failed

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: passed device to netlink monitor 0x556794bdcb70

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: seq 2674 processed

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: passed 297 byte device to netlink monitor 0x556794bd8460

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: seq 2675 running

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: value '[dmi/id]sys_vendor' is 'Shuttle Inc'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: value '[dmi/id]sys_vendor' is 'Shuttle Inc'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: IMPORT builtin 'hwdb' /lib/udev/rules.d/50-udev-default.rules:15

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: IMPORT builtin 'usb_id' /lib/udev/rules.d/60-libgphoto2-6.rules:9

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: unable to access usb_interface device of '/sys/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: IMPORT builtin 'usb_id' returned non-zero

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: RUN 'kmod load $env{MODALIAS}' /lib/udev/rules.d/80-drivers.rules:5

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: created db file '/run/udev/data/+usb:5-1:1.0' for '/devices/pci0000:00/0000:00:1d.3/usb5/5-1/5-1:1.0'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: Execute 'load' 'usb:v8087p0A99d8087dc00dsc00dp00icFEisc01ip02in00'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: No module matches 'usb:v8087p0A99d8087dc00dsc00dp00icFEisc01ip02in00'

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: passed device to netlink monitor 0x556794bdcb70

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: seq 2675 processed

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: cleanup idle workers

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: Unload module index

May 2 22:33:46 hahadoo-64bit systemd-udevd[11629]: Unloaded link configuration context.

May 2 22:33:46 hahadoo-64bit systemd-udevd[269]: worker [11629] exited

May 2 22:33:50 hahadoo-64bit colord-sane: io/hpmud/pp.c 627: unable to read device-id ret=-1

May 2 22:33:55 hahadoo-64bit systemd-udevd[269]: seq 2676 queued, 'remove' 'usb'

May 2 22:33:55 hahadoo-64bit systemd-udevd[269]: Validate module index

May 2 22:33:55 hahadoo-64bit systemd-udevd[269]: Check if link configuration needs reloading.

May 2 22:33:55 hahadoo-64bit systemd-udevd[269]: seq 2676 forked new worker [11645]

May 2 22:33:55 hahadoo-64bit systemd-udevd[269]: seq 2677 queued, 'remove' 'usb'

May 2 22:33:55 hahadoo-64bit systemd-udevd[11645]: seq 2676 running

May 2 22:33:55 hahadoo-64bit systemd-udevd[11645]: value '[dmi/id]sys_vendor' is 'Shuttle Inc'

May 2 22:33:55 hahadoo-64bit systemd-udevd[11645]: value '[dmi/id]sys_vendor' is 'Shuttle Inc'

May 2 22:33:55 hahadoo-64bit systemd-udevd[11645]: passed device to netlink monitor 0x556794be2a80

May 2 22:33:55 hahadoo-64bit systemd-udevd[11645]: seq 2676 processed

May 2 22:33:55 hahadoo-64bit systemd-udevd[269]: passed 283 byte device to netlink monitor 0x556794bd8460

May 2 22:33:55 hahadoo-64bit systemd-udevd[11645]: seq 2677 running

May 2 22:33:55 hahadoo-64bit kernel: [359732.584067] usb 5-1: USB disconnect, device number 72

========================================================================================================================

0 Kudos
Highlighted
Community Manager
17 Views

Hi hahadoo,

 

 

Thank you for your patience. We've been doing some tests on our Arduino 101 board. Your logs and results are equal to ours when using the Arduino 101. In our Linux machine, the USB is not disconnecting, which makes us believe that the problem lies only with your custom board. Please keep in mind that custom board designs are out of the scope of support of this team and even though we want to try to help you resolve this issue, it's hard to provide a suggestion for a custom board because we can't reproduce the issue.

 

 

Looking further, we found a thread that's similar to yours https://communities.intel.com/thread/110541 https://communities.intel.com/thread/110541 . In this thread, the customer is also using a custom board and asks about differences in the boot loader of the Arduino 101 and the individual Curie modules. It seems this customer found a solution after following the instructions of the recovery firmware flashpack https://software.intel.com/en-us/node/675552 .

 

 

Hopefully, you can find this information useful so you can continue to develop your project.

 

 

Regards,

 

-Sergio A

 

0 Kudos
Highlighted
Beginner
17 Views

I have to order JTAG and connect and was waiting for them.

Finally I got today, I flashed bootloader using JTAG to my board.

After flashing bootloader - A tree image, everything is working fine.

So, I think the default bootloader which is in new Curie is not same as Arduino 101, it can not be programmed using DFU till flashing new bootloader.

Thanks

0 Kudos
Highlighted
Community Manager
17 Views

Hi hahadoo,

 

 

Thank you for coming back and sharing your results. It's great to hear you've found the solution to your issue.

 

Feel free to contact us again if help is needed, we'd be happy to assist you.

 

 

Regards,

 

-Sergio A

 

0 Kudos