 +    }
 +}
 diff --git a/chips/nrf52840/src/lib.rs b/chips/nrf52840/src/lib.rs
-index 942d028..ce73e1f 100644
+index 942d0288f..ce73e1f82 100644
 --- a/chips/nrf52840/src/lib.rs
 +++ b/chips/nrf52840/src/lib.rs
 @@ -2,7 +2,7 @@
-
+ 
  pub use nrf52::{
      acomp, adc, aes, ble_radio, clock, constants, crt1, ficr, i2c, ieee802154_radio, init, nvmc,
 -    pinmux, ppi, pwm, rtc, spi, temperature, timer, trng, uart, uicr, usbd,

+
+        let endpoints: &[&[EndpointDescriptor]] = &[&[
+            EndpointDescriptor {
+                endpoint_address: EndpointAddress::new_const(ENDPOINT_NUM, TransferDirection::HostToDevice),
+                transfer_type: TransferType::Interrupt,
+                max_packet_size: 64,
+                interval: 5,
+            },
+            EndpointDescriptor {
+                endpoint_address: EndpointAddress::new_const(ENDPOINT_NUM, TransferDirection::DeviceToHost),
+                transfer_type: TransferType::Interrupt,
+                max_packet_size: 64,
+                interval: 5,

+        let (device_descriptor_buffer, other_descriptor_buffer) =
+            descriptors::create_descriptor_buffers(
+                descriptors::DeviceDescriptor {
+                    vendor_id,
+                    product_id,
+                    manufacturer_string: 1,
+                    product_string: 2,
+                    serial_number_string: 3,
