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 xil.se 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:
Working on a mini version of the xildebug board, this one doesn’t have the variable VDD or current consumption monitoring, but it’s still a CMSIS-DAP debugger with UART and 4 GPIOS you can control over USB HID 🙂 Want to order a panel and if all is well, put them on @tindie pic.twitter.com/ageDTqazjo
— arturo182 (@arturo182) October 30, 2018
Like the tweet mentions, it is a simplified version of the xildebug board, which you can see in this tweet:
— arturo182 (@arturo182) April 19, 2018
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 🙂