Hardware Overview
In this section, we will highlight the hardware and pins that are broken out on the SparkFun Pulsed Coherent Radar Sensor - XM125 (Qwiic). For more information, check out our Resources and Going Further for the XM125 Module and the A121 Pulsed Coherent Radar Sensor.
XM125 Module
The board breaks out the Acconeer XM125 module with some application circuits.
Below are a few specifications from the datasheet.
- Acconeer XM125 Module
- A121
- 60GHz Pulsed Coherent Radar (PCR)
- Integrated Baseband, RF Front-End and Antenna in Package
- Detect Distance, Speed, Motion, and Objects up to 20 Meters***** Away
- Millimeter Precise Readings
- Low Power Consumption
- STMicroelectronics STM32L431CBY6
- 32-bit Arm® Cortex® M4 MCU
- Clock Speed: 80 MHz
- Flash: 128kB
- RAM: 68kB
- A121
*Note
The actual measurable distance is dependent on the object size, shape, dielectric properties, and lens (e.g. water level measurements up to 20 meters with lens utilization, human presence detection up to 7 meters with lens-free utilization).
For users using the XM125 module to detect objects through a material (especially for those placing the board in an enclosure), you may want to check out Acconeer's Hardware and Physical Integration Guideline PCR Sensors A111 & A121 User Guide.
Note
Due to the higher frequencies, pulsed coherent radar sensors may be regulated in certain countries. Be sure to check local regulations before use.
Power
There are a variety of power and power-related nets broken out to the USB connector, Qwiic connectors and plated through holes. 5V power from the USB C Connector or PTH is regulated down to 3.3V with the AP2112K 3.3V/600mA voltage regulator. The voltage is further regulated down to 1.8V with the RT9080 1.8V/600mA voltage regulator. The logic levels for the XM125 is 3.3V for the I/O pins.
- VU / VUSB — Power from the USB C connector's VBUS provides power to the V_BUS. The V_USB net is also connected to the edge PTH pin labeled as VU on the top of the board and VUSB on the bottom of the board. This is also connected to the input of the 3.3V voltage regulator. Make sure that power you provide to this pin does not exceed 6 volts.
- 3V3 — This connects to the 3.3V net. Both sides of the board includes a 3.3V pin (labeled as 3V3). The output of the AP2112K 3.3V voltage regulator and input of the RT9080 1.8V voltage regulator are connected to this net. 3.3V net can also be accessed through one of the Qwiic connector's pins. You should only provide a clean 3.3V power signal to those pins.
- G / GND — Of course, is the common, ground voltage (0V reference) for the system.
CH340C USB-to-Serial Converter
ON the back of the board is a built-in CH340 USB-to-serial converter to connect the XM125's primary UART to a computer's USB port. This is useful for users viewing data, configuring the XM125, or updating firmware. ESD protection diodes are included between the USB C and the CH340C's USB data lines.
UARTs
The board has two UARTs. The primary UART (not highlighted in the image below) is connected internally to the CH340C USB-to-Serial converter. There is also a debugging UART that is broken out on the edge of the board.
- TX / DEBUG_TX — TX out for debugging
- RX / DEBUG_RX — RX in for debugging
Note
To enable or disable UART logging, you will need to call the function after resetting the XM125 in the setup()
function (i.e. radarSensor.setPresenceCommand(SFE_XM125_PRESENCE_RESET_MODULE);
). Make sure to call the distanceEnableUartLogs()
, distanceDisableUartLogs()
, presenceEnableUartLogs()
, or presenceDisableUartLogs()
function before applying the configuration using the radarSensor.setPresenceCommand(SFE_XM125_PRESENCE_APPLY_CONFIGURATION)
. The functions correspond the firmware for the presence and distance detection firmware, respectively.
Qwiic and I2C
There are two PTHs labeled SDA and SCL on one side of the board. These are the I2C data and clock lines and are connected to two 2.2kΩ pull-up resistors. We also conveniently added a GND and 3.3V pin on one side should you decide to daisy chain additional I2C devices to the PTH. Similarly, you can use either of the Qwiic connectors to provide power and send data through I2C. The Qwiic ecosystem is made for fast prototyping by removing the need for soldering. All you need to do is plug a Qwiic cable into the Qwiic connector and voila!
- SDA — I2C data
- SCL — I2C clock
The default address of the XM125 is set to 0x52.
Reset and Boot Buttons
We included two low profile buttons for reset and bootloader.
- RST / RST / RESET — Pressing down on the reset button will connect the pin to ground and reset the XM125. This is also broken out to a PTH on the edge of the board.
- BOOT / GPIO2/BOOT — Pressing down on the boot button will connect the pin to 3.3V. This will put it into bootloader mode when the XM125 is starting up. This is also broken out to a PTH on the edge of the board. The alternative function of this pin is also used as a general purpose I/O. This can be configurable for different functions. At the time of writing, GPIO2 is not functional with the current firmware. The functionality is to be implemented in the future.
Note
We included low profile buttons on the board to reduce the amount of reflections when using the XM125.
SWD Pins
The edge of the board includes the SWDIO and SWDCLK programming pins. On the back of the board, there is a 2x5 SWD footprint to solder a SMD 2x5 header. This is available for users that want to debug and flash the XM125's STM32L431 using a programmer.
- SWDIO — Serial wire debug I/O.
- SWDCLK — Serial wire debug clock.
Broken Out Pins
Below are the other pins broken out:
- INT — Interrupt output pin. This pin could be used to send an interrupt from the XM125 to a host microcontroller.
- GPIO1 — General purpose I/O. This can be configurable for different functions. At the time of writing, GPIO1 are not functional with the current firmware. The functionality is to be implemented in the future.
- GPIO0 — General purpose I/O. This can be configurable for different functions. This pin is currently only functional with the presence detector firmware, specifically the i2c_presence_detector.bin .
- I2C_ADDR — This pin is used to configure the I2C Address. This is also connected to the three way jumper labeled as ADDR. The functionality is to be implemented in the future.
- WU / WAKE_UP — This pin is used to set the XM125 in low power mode. This is connected to the WU jumper and 3.3V. To toggle low power mode using a microcotrller, you will need to cut the WU jumper and solder the pin to a microcontroller's GPIO pin. Setting the pin high will wake the XM125 up from low power mode.
LED
The board includes the following status LED as indicated in the image below.
- PWR — Indicates when there is 3.3V available.
Jumpers
Note
If this is your first time working with jumpers, check out the How to Work with Jumper Pads and PCB Traces tutorial for more information.
There are jumper pads on the top and bottom of the board.
- SHLD — This jumper is located on the top of the board and connects the USB Type C connector's shield pin to GND. By default, this is closed. Cut this to isolate the USB Type C connector's shield pin.
- I2C — This three way jumper is located on the top of the board and labeled I2C. By default, this three way jumper is closed. This jumper is connected to two pull-up resistors on the I2C data and clock lines. For users that have multiple Qwiic-enabled devices with pull-up resistors enabled, the parallel equivalent resistance will create too strong of a pull-up for the bus to operate correctly. As a general rule of thumb, disable all but one pair of pull-up resistors if multiple devices are connected to the bus.
- WU — This jumper is located on the top of the board. By default, this jumper is closed. This jumper connects 3.3V with the wake up pin. Cut this trace to enter low power mode.
- ADDR — This three way jumper is located on the top of the board and labeled ADDR. By default, this three-way jumper is open. This jumper is used to adjust the I2C address of the XM125 module. Adding a solder blob between the center and the pad on either side will change the default address. The functionality is to be implemented in the future.
- LED — This jumper is located on the bottom of the board and connects the LED to 3.3V. Cut this jumper to disable the LED.
Board Dimensions
The board is 1.0" x 2.0" (25.4mm x 50.8mm). There are 4x mounting holes by each corner of the board for 4-40 screws and standoffs.