.. _tdk_robokit1: TDK RoboKit 1 ############# Overview ******** The TDK RoboKit1 is a development board for use primarily with ROS2 and provides a large number of small ground robotics useful sensors including chirp sensors for time of flight (e.g. ultrasonic obstacle detection). It pairs a 300MHz Cortex-M7 ATSAME70Q21 with an array of TDK sensors and pin headers useful for robotics. .. image:: ../../../../../../../../../zephyr/boards/arm/tdk_robokit1/doc/img/tdk_robokit1.jpg :align: center :alt: TDK RoboKit1 Hardware ******** - ATSAME70Q21 ARM Cortex-M7 Processor - 12 MHz crystal oscillator (Pres) - 32.768 kHz crystal oscillator - Micro-AB USB device - Micro-AB USB debug (Microchip EDBG) interface supporting CMSIS-DAP, Virtual COM Port and Data - JTAG interface connector - One reset pushbutton - One red user LED - TDK ICM 42688-P 6-Axis 32KHz IMU - TDK ICP-10111 Pressure Sensor - TDK NTC Thermistor for Temperature - AKM AK09918C Magnetometer - 2 TDK HVCi-4223 Cortex-M3 Dedicated Motor Controller - 3 TDK ICS-43434 Stereo Microphones - Connector for Industrial Dual IMU (TDK IIM-46230) - TDK CH101 Ultrasonic Range Sensor Array (9 Connectors, comes with 3) Supported Features ================== The TDK RoboKit1 board supports the following hardware features: .. list-table:: : header-rows: 1 * - Peripheral - Kconfig option - Devicetree compatible * - GPIO - :kconfig:option:`CONFIG_GPIO_SAM` - :dtcompatible:`atmel,sam-gpio` * - USART - :kconfig:option:`CONFIG_USART_SAM` - :dtcompatible:`atmel,sam-usart` * - UART - :kconfig:option:`CONFIG_UART_SAM` - :dtcompatible:`atmel,sam-uart` * - SPI - :kconfig:option:`CONFIG_SPI_SAM` - :dtcompatible:`atmel,sam-spi` * - I2C - :kconfig:option:`CONFIG_I2C_SAM_TWIHS` - :dtcompatible:`atmel,sam-i2c-twihs` * - I2S - :kconfig:option:`CONFIG_I2S_SAM_SSC` - :dtcompatible:`atmel,sam-ssc` * - ADC - :kconfig:option:`CONFIG_ADC_SAM_AFEC` - :dtcompatible:`atmel,sam-afec` * - DAC - :kconfig:option:`CONFIG_DAC_SAM` - :dtcompatible:`atmel,sam-dac` * - PWM - :kconfig:option:`CONFIG_PWM_SAM` - :dtcompatible:`atmel,sam-pwm` * - CAN - :kconfig:option:`CONFIG_CAN_SAM` - :dtcompatible:`atmel,sam-can` * - USB - :kconfig:option:`CONFIG_USB_DC_SAM_USBHS` - :dtcompatible:`atmel,sam-usbhs` * - WATCHDOG - :kconfig:option:`CONFIG_WDT_SAM` - :dtcompatible:`atmel,sam-watchdog` * - NVIC - N/A - :dtcompatible:`arm,v7m-nvic` * - SYSTICK - N/A - N/A * - COUNTER - :kconfig:option:`CONFIG_COUNTER_SAM_TC` - :dtcompatible:`atmel,sam-tc` * - DMA - :kconfig:option:`CONFIG_DMA_SAM_XDMAC` - :dtcompatible:`atmel,sam-xdmac` * - ENTROPY - :kconfig:option:`CONFIG_ENTROPY_SAM_RNG` - :dtcompatible:`atmel,sam-trng` * - HWINFO (reset cause) - :kconfig:option:`CONFIG_HWINFO_SAM_RSTC` - :dtcompatible:`atmel,sam-rstc` * - HWINFO (device id) - :kconfig:option:`CONFIG_HWINFO_SAM` - N/A The default configuration can be found in the Kconfig :zephyr_file:`boards/arm/tdk_robokit1/tdk_robokit1_defconfig`. Connections and IOs =================== The TDK RoboKit Hardware Guide has detailed information about board connections. System Clock ============ The SAM E70 MCU is configured to use the 12 MHz external oscillator on the board with the on-chip PLL to generate a 300 MHz system clock. Serial Port =========== The ATSAME70Q21 MCU has five UARTs and three USARTs. One of the UARTs is configured for the console and is available as a Virtual COM Port via the USB2 connector. Programming and Debugging ************************* Flashing the Zephyr project onto SAM E70 MCU requires the `OpenOCD tool`_. Both west flash and west debug commands should correctly work with both USB0 and USB1 connected and the board powered. Flashing ======== #. Run your favorite terminal program to listen for output. Under Linux the terminal should be :code:`/dev/ttyACM0`. For example: .. code-block:: console $ minicom -D /dev/ttyUSB0 -o The -o option tells minicom not to send the modem initialization string. Connection should be configured as follows: - Speed: 115200 - Data: 8 bits - Parity: None - Stop bits: 1 #. Connect the TDK RoboKit1 board to your host computer using the USB debug port (USB1), USB2 for a serial console, and remaining micro USB for power. Then build and flash the :ref:`hello_world` application. .. zephyr-app-commands:: :zephyr-app: samples/hello_world :board: tdk_robokit1 :goals: build flash You should see "Hello World! tdk_robokit1" in your terminal. Debugging ========= You can debug an application in the usual way. Here is an example for the :ref:`hello_world` application. .. zephyr-app-commands:: :zephyr-app: samples/hello_world :board: tdk_robokit1 :maybe-skip-config: :goals: debug References ********** TDK RoboKit1 Product Page: https://invensense.tdk.com/products/robokit1-dk/ .. _OpenOCD tool: http://openocd.org/