decawave-drivers22
  • 2d-flight
  • master
  • v0.9.0
  • v0.9.1
      DW1000
      DW1000

      The DW1000 is a wireless transceiver based on Ultra Wideband techniques. It allows to develop cost-effective RTLS solutions with indoor and outdoor positioning.

      This driver was developed so to have the same consistent behaviour (…and bugs) on different platform when designing our network protocol on top of it.

      Supported OS Comment
      Zephyr require version >= 2
      Chibios (not tested recently)
      MyNewt (not tested recently)
      Linux using bitters library
      Crazyflie (based on FreeRTOS)

      Other platforms can easily be supported by implementing the following API:

      Porting API
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      
      /* Delay */
      void _dw1000_delay_usec(uint16_t us);
      void _dw1000_delay_msec(uint16_t ms);
      
      /* GPIO toggling */
      typedef ..to_define.. dw1000_ioline_t;
      void _dw1000_ioline_set(dw1000_ioline_t line);
      void _dw1000_ioline_clear(dw1000_ioline_t line);
      
      /* SPI communication */
      typedef ..to_define.. dw1000_spi_driver_t;
      void _dw1000_spi_low_speed(dw1000_spi_driver_t *spi);
      void _dw1000_spi_high_speed(dw1000_spi_driver_t *spi);
      void _dw1000_spi_send(dw1000_spi_driver_t *spi,
                    uint8_t *hdr, size_t hdrlen, uint8_t *data, size_t datalen);
      void _dw1000_spi_recv(dw1000_spi_driver_t *spi,
                    uint8_t *hdr, size_t hdrlen, uint8_t *data, size_t datalen);