<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/68714/composite-device-cdc-acm-2-bulk-endpoint-in</link><description>Hi everyone, 
 I&amp;#39;m working with a nRF52840 dongle. I need to add to the CDC ACM example two bulk endpoint IN. My purpose is to realize a firmware that allow real time data transfer from two sensors to the PC host and an auxiliary transfer of system status</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 30 Nov 2020 08:35:03 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/68714/composite-device-cdc-acm-2-bulk-endpoint-in" /><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/282388?ContentTypeID=1</link><pubDate>Mon, 30 Nov 2020 08:35:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e388365d-782f-4de9-8bd2-b5c987719b4a</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;The product ID is the Id that is registered with the USB company. It is a registration of all licenced USB devices. I am not sure whether the product ID 0x520A is not registered (just an example), but Nordic semiconductor is registered with Vendor ID 0x1915:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.the-sz.com/products/usbid/index.php?v=&amp;amp;p=&amp;amp;n=nordic"&gt;https://www.the-sz.com/products/usbid/index.php?v=&amp;amp;p=&amp;amp;n=nordic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To register your own vendor or product ID, please see &lt;a href="https://www.usb.org/getting-vendor-id"&gt;usb.org/getting-vendor-id&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;It is not this ID that tells the computer that it is a HID mouse. This is done in the&amp;nbsp;USBD_INTERFACE0_DESCRIPTOR.&lt;/p&gt;
&lt;p&gt;What you want to implement in your own device, I am not sure. You have to read up on the USB specification (written by USB).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/282145?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 15:48:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:14be7328-6531-40fe-8a8d-6067c2f99aaa</guid><dc:creator>alexl&amp;#246;ddek&amp;#246;pinge</dc:creator><description>&lt;p&gt;I tried the&amp;nbsp;&lt;span&gt;SDK\examples\peripheral\usbd example two days ago. But I can&amp;#39;t fit the&amp;nbsp;USBD_DEVICE_DESCRIPTOR at my case, The product ID in the example is&amp;nbsp;0x520A. In my case I have not a mouse so what&amp;#39;s the product ID in my case?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/282130?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 15:06:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b7c84a35-98fa-4f2b-9d1b-81b3fa44f126</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;I suggest you try to use the SDK\examples\peripheral\usbd example to acheive your bulk endpoints. It looks like the CDC_ACM is limited to about 2MBSP.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/282074?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 13:11:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7adff0e-5134-4d87-b2c4-0f4bedde9709</guid><dc:creator>alexl&amp;#246;ddek&amp;#246;pinge</dc:creator><description>&lt;p&gt;6Mbit/s&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/282071?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 13:09:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:48387009-9401-4ef5-bdf2-035e91457861</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;The CRC ACM is a virtual COM port. So yes. It is realtime, unless we have different understandings of the term realtime.I am not sure of the throughput. What throughput do you need?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/282006?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 10:32:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:123644c8-9bd9-4318-a454-3945b2883fb8</guid><dc:creator>alexl&amp;#246;ddek&amp;#246;pinge</dc:creator><description>[quote userid="26071" url="~/f/nordic-q-a/68714/composite-device-cdc-acm-2-bulk-endpoint-in/281992#281992"]Ok, let us try another approach: What do you use on your PC to read out the sensor data? I still don&amp;#39;t understand why you can&amp;#39;t use CDC ACM for your sensors.[/quote]
&lt;p&gt;I will use a host-side software using libusb that can handle bulk transfer.&lt;/p&gt;
[quote userid="26071" url="~/f/nordic-q-a/68714/composite-device-cdc-acm-2-bulk-endpoint-in/281992#281992"]To be honest, I am not familiar with the USB Bulk endpoint protocols. Are you?&amp;nbsp;[/quote]
&lt;p&gt;No, I&amp;#39;m not. But now I&amp;#39;m studying&amp;nbsp;bulk transfer here:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/usbd.html?cp=4_0_0_5_34_9#concept_usb_bulk_int"&gt;bulk endpoints, and bulk interrupt IN and OUT transactions&lt;/a&gt;&lt;/p&gt;
[quote userid="26071" url="~/f/nordic-q-a/68714/composite-device-cdc-acm-2-bulk-endpoint-in/281992#281992"]I still don&amp;#39;t understand why you can&amp;#39;t use CDC ACM for your sensors.[/quote]
&lt;p&gt;Is it possible using CDC ACM to transfer real.time packaged data? At what speed?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;BR&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/281992?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 09:52:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca827263-ff55-4c7e-8e2c-1385ae0b269e</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Ok, let us try another approach: What do you use on your PC to read out the sensor data? I still don&amp;#39;t understand why you can&amp;#39;t use CDC ACM for your sensors.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;To be honest, I am not familiar with the USB Bulk endpoint protocols. Are you?&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="LNwork"]The bulk endpoints used in the usbd example are for a mouse.[/quote]
&lt;p&gt;&amp;nbsp;Yes, but perhaps you can modify the example&amp;#39;s bulk endpoint to do what you want to do.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="LNwork"]Days before you said me that this is possible but I can&amp;#39;t understand how.&amp;nbsp;[/quote]
&lt;p&gt;&amp;nbsp;We have an example doing CDC ACM already. I suggest you start with another example and try to implement what you need for your sensors. Only this, no CDC ACM for the moment. And start with only one endpoint, and then when that is working, try to add the other endpoint for the other sensor. When that is working, then try to take what you have written and include it in the USBD_CDC_ACM example.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;BR,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/281977?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 09:16:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5dfbd5e9-d63d-440e-b0c1-4703aba428fa</guid><dc:creator>alexl&amp;#246;ddek&amp;#246;pinge</dc:creator><description>&lt;p&gt;The bulk endpoints used in the usbd example are for a mouse.&lt;/p&gt;
&lt;p&gt;I try to explain better my situation but it&amp;#39;s not so easy due to my english and I&amp;#39;m really sorry for this.&lt;/p&gt;
&lt;p&gt;I have two analog sensors. I use the internal ADC and then I want to transfer these data in package to the PC host. I also need the CDC ACM class so I want to implement a composite device.&lt;/p&gt;
&lt;p&gt;Days before you said me that this is possible but I can&amp;#39;t understand how.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Is there a way to access directly endpoint and add these? Is there any example of this?&lt;/p&gt;
&lt;p&gt;I really thanks you and I&amp;#39;m sorry for my bad english but I&amp;#39;m working on it.&lt;/p&gt;
&lt;p&gt;Best regards&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/281973?ContentTypeID=1</link><pubDate>Thu, 26 Nov 2020 09:06:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:685504bc-b1cf-4b35-bcc8-509fb8edf1a9</guid><dc:creator>Edvin</dc:creator><description>[quote user="LNwork"]I need to transfer packaged real-time data from the sensors to the PC[/quote]
&lt;p&gt;&amp;nbsp;And therefore you can&amp;#39;t use CDC ACM?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
[quote user="LNwork"]For this reason I ask if there is an example that explain how to add to the &amp;quot;CDC ACM example&amp;quot;&amp;nbsp;ANOTHER instance with two bulk IN endpoints.[/quote]
&lt;p&gt;&amp;nbsp;Sorry. We don&amp;#39;t have any examples that do this.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Is the bulk endpoints that you need to use like the one used in the usbd example found in &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.0.2/usbd_example.html"&gt;SDK\examples\peripheral\usbd&lt;/a&gt;?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/281628?ContentTypeID=1</link><pubDate>Tue, 24 Nov 2020 15:07:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b805330c-4a31-48cb-bc1e-630018829308</guid><dc:creator>alexl&amp;#246;ddek&amp;#246;pinge</dc:creator><description>&lt;p&gt;I need to transfer packaged real-time data from the sensors to the PC. So I want to use bulk endpoints. I think I could use also isochronous endpoint but first I want to try&amp;nbsp; bulk endpoint. For this reason I ask if there is an example that explain how to add to the &amp;quot;CDC ACM example&amp;quot;&amp;nbsp;ANOTHER instance with two bulk IN endpoints. I really hope you could help me. Thank you and await your answer.&lt;/p&gt;
&lt;p&gt;Best regards and have a nice day.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/281624?ContentTypeID=1</link><pubDate>Tue, 24 Nov 2020 14:56:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d12a7503-7b7f-4399-80c3-111ffbe5d5d0</guid><dc:creator>Edvin</dc:creator><description>[quote user="LNwork"]so I think that could be a solution to use the CDC ACM example and add two BULK endpoints.[/quote]
&lt;p&gt;&amp;nbsp;I agree that this sounds like a viable solution. Alternatively, you could send your sensor data using the CDC ACM as well, unless you need the sensor data to be tranferred to the computer in a particular protocol.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If we consider the CDC ACM as a serial port, you can use a simplified protocol:&lt;/p&gt;
&lt;p&gt;S1: data1, S2: data2, SM: State&lt;/p&gt;
&lt;p&gt;Or something like that, sending S1 for sensor 1, S2 for sensor 2 and SM for the state of the state machine, and then you can handle these messages from the computer.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;But if you need the sensors to use bulk endpoints directly, then your approach sounds like the one that I would attempt as well.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/281597?ContentTypeID=1</link><pubDate>Tue, 24 Nov 2020 14:10:26 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4c7b2565-2c77-4a8f-b0f4-60b1d8208584</guid><dc:creator>alexl&amp;#246;ddek&amp;#246;pinge</dc:creator><description>&lt;p&gt;Thanks for your answer.&lt;/p&gt;
&lt;p&gt;I try to explain better my problem. I want to realize a USB composite device. I need the CDC ACM class for transmitting from the dongle to the PC a system status data. I have also two sensors and I want to transmitt the data from these sensors from the dongle to the PC via USB. I want to achieve this using BULK transfer so I think that could be a solution to use the CDC ACM example and add two BULK endpoints.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Composite device CDC ACM + 2 BULK endpoint IN</title><link>https://devzone.nordicsemi.com/thread/281596?ContentTypeID=1</link><pubDate>Tue, 24 Nov 2020 14:04:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b33584bd-7c66-4d6f-950d-3ba9db4f0527</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I am not quite sure I understood your question correctly, but I believe the answer is yes. I didn&amp;#39;t understand exactly why you need two different Bulk endpoints IN, but I assume you can do that. If I am not mistaken, the USBD CDC ACM is also a using a bulk transfers. All in all you have 7 Bulk Endpoints. You can read about the &lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52840/usbd.html?cp=4_0_0_5_34_9#concept_usb_bulk_int"&gt;bulk endpoints, and bulk interrupt IN and OUT transactions here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>