Finding Targets with Features

Does anyone know of a good way to find if a given Mbed target supports features like async SPI or SD cards? The only way my team has found to do it is by looking through the targets.json file in the repository, but this can be really annoying when trying to compare a couple different targets. I could have sworn that I saw someone who made a tool for viewing and sorting through this data, but I can’t seem to dig up the link. If there currently isn’t a way to do this I’ll look into making one.

the Mbed site has some filters in the board list:
https://os.mbed.com/platforms/

Yeah… the thing is that Async SPI support is critical for our application and there’s no good way to tell if a chip has it from there.

Okay, since no one seems to have something like this, I’m dusting off my long-atrophied web development experience and making one!

Current test version is live here: Mbed Target Viewer

4 Likes

Ahoj Jamie,

Great work.

Just a clarification.
Problem is the target.json is not good source for everything, because there is a chaos, it is not uniform and different rules are used. Or I misunderstood something, I have no deeper knowledge.

USB example:

  • LPC1768 device_has_add USBDEVICE - but board have no additional USB connector
  • Nucleo-F446ZE device_has_add USBDEVICE - this board have onboard USB-OTG connector
  • Nucleo-F446RE not have USBDEVICE - this one have not any onboard USB connector but it can be enabled/ added, because it inherits form F4xx

SD card can be add to all targets with SPI, I think. There is only one difference - SD card slot is already onboard or it need to be add with external hardware.

SD example:

  • K64F (or K66F) has SD enabled in basic and also has a slot
  • all ST’s targets have no the SD tag and it doesn’t matter if a physicall SD card slot is present or not.
  • Mbed web tree also tell you nothing. How you can see boards like F746NG and F469NI which have SD card slot are not in the list…

BR, Jan

1 Like

Yeah I’ve been trying to create some mappings/user-friendly names for some of the features in targets.json, so that it’s clearer what they mean. I’m also thinking that some of them that are not accurate will be hidden (such as the ETHERNET one).

As I understand it, a feature being in this list means that it may or may not exist on the dev board, but it is definitely supported in Mbed OS with this processor and you can add it off-board if you need. For instance, while the LPC1768 lacks a USB connector, it does implement all the needed connections for USB and you can hook one straight up to the dev board. Similarly, SD support means that the chip supports the EMMC protocol (which is an improvement over SPI-based SD card access in a couple ways).