More about xildebug

Yesterday I tweeted a render of a board I’ve made called xildebug mini and I realized that I never really covered what the original xildebug is and what are our plans at in regards to it. So here’s a post explaining a bit more about the project and the new board.

To start with, here is the xildebug mini render mentioned above:

Like the tweet mentions, it is a simplified version of the xildebug board, which you can see in this tweet:

The original xildebug board is planned to be a (almost)-all-in-one helper board for firmware developers and it came to life when we (@kbeckmann, @enjens and I) realized that there are multiple boards that can provide parts of the functionality we’re looking for, but there is no one solution.

And what we were looking for was a board that can do flashing, debugging, UART, variable power, current consumption measurements and a few GPIOs to control from the PC. Like I said, there are already boards that can do each of those things separately but none of them can do all, which is what we wanted.

Here’s what we came up with:

  • STM32L433 as the MCU because it supports crystal-less USB and has a pretty good ADC, which is important for the current measurement part
  • MAX14662 I2C analog switch to be able to disconnect the DUT pins from the MCU so no current is leaked
  • MIC5219 variable LDO + MCP4018 I2C potentiometer to control the voltage easily
  • a bunch of high-precision resistors +ย TS5A3167 analog switches so we can measure current consumption based on the voltage drop over those resistors

The KiCad files are available here: click.

From the software side (available here), we have a FreeRTOS-based system which uses USB CDC to interface the DUT UART to the PC, USB HID which allows us to use OpenOCD to flash and debug other boards (we use ARM’s DAPLink code to implement the CMSIS-DAP protocol) and we are working on providing the current consumption data and voltage control over USB. We plan to have a Qt GUI for viewing the current consumption graph, as well as triggering on specific values. This is something that we will be looking into during the incoming hackcation.

We also want to be able to toggle a few GPIOs from the PC, this way those GPIOs could be connected, for example, to the DUTs buttons, so one could use simple scripts to automate putting the DUT in different power states and measuring power consumption.

There are a lot of cool things that can be done with all that functionality packed into one board, for example it would be possible to trigger a breakpoint if current consumption becomes too high. It should also be possible to simulate batteries using the variable power source if we had a profile of how voltage changes in a battery as it gets discharged.

As for the mini version, it only has the UART, CMSIS-DAP and GPIO functionality, no variable power or current consumption. While this makes it a very simple board, I think even such a tool has its value and the BOM should be no more than $10.

This concludes a short description of our xildebug project, let me know if there are any questions or suggestions, we are open to hearing new ideasย ๐Ÿ™‚

4 Responses

  1. Anders Westrup says:

    Have you thought of exposing the gpio pins as a logic analyser?

  2. arturo182 says:

    Yes we did, it’s something to look into later later ๐Ÿ˜‰ Could use a fpga to offload the MCU and some sdram to store the values, there’s but that complicates the design even more ๐Ÿ˜Š

Leave a Reply

Your email address will not be published. Required fields are marked *