# Mesh products Platform\_ID

**URL:** <https://community.particle.io/t/mesh-products-platform-id/45370>\
**Category:** Firmware\
**Created:** [November 18, 2018, 11:10am UTC](https://community.particle.io/t/mesh-products-platform-id/45370 "2018-11-18T11:10:06Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jimmie](https://avatars.discourse-cdn.com/v4/letter/j/e95f7d/32.png) [@Jimmie](https://community.particle.io/u/Jimmie)\
**Post date:** [November 18, 2018, 11:10am UTC](https://community.particle.io/t/mesh-products-platform-id/45370/1 "2018-11-18T11:10:06Z")

</div>

Where can one find out the Platform\_ID for Mesh micros (Argon, Boron, Xenon)?

I searched the docs but could not find it.

---

<div class="post-metadata">

**Author:** ![rickkas7](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rickkas7/32/8681_2.png) [@rickkas7](https://community.particle.io/u/rickkas7)\
**Post date:** [November 18, 2018, 11:19am UTC](https://community.particle.io/t/mesh-products-platform-id/45370/2 "2018-11-18T11:19:16Z")

</div>

```auto
#define PLATFORM_ARGON 12
#define PLATFORM_BORON 13
#define PLATFORM_XENON 14

```

> <https://github.com/particle-iot/firmware/blob/mesh-develop/hal/shared/platforms.h#L37>

---

<div class="post-metadata">

**Author:** ![ScruffR](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/scruffr/32/6952_2.png) [@ScruffR](https://community.particle.io/u/ScruffR)\
**Post date:** [November 18, 2018, 11:28am UTC](https://community.particle.io/t/mesh-products-platform-id/45370/3 "2018-11-18T11:28:25Z")

</div>

Just as a hint. If you want to find out the PLATFORM\_ID of a given device without outside help, you can.

Just do something like this

```auto
void loop() {
  Serial.println(PLATFORM_ID);
  delay(1000);
}

```

and there you will see it right from the device itself.  
Also `particle serial inspect` does also give you that number

```nohighlight
C:\Temp>particle serial inspect
Platform: 13
...

```

---

<div class="post-metadata">

**Author:** ![KlementhJones](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/klementhjones/32/18803_2.png) [@KlementhJones](https://community.particle.io/u/KlementhJones)\
**Post date:** [November 18, 2018, 11:50am UTC](https://community.particle.io/t/mesh-products-platform-id/45370/4 "2018-11-18T11:50:03Z")

</div>

Does it works with every system?

---

<div class="post-metadata">

**Author:** ![Jimmie](https://avatars.discourse-cdn.com/v4/letter/j/e95f7d/32.png) [@Jimmie](https://community.particle.io/u/Jimmie)\
**Post date:** [November 18, 2018, 12:19pm UTC](https://community.particle.io/t/mesh-products-platform-id/45370/5 "2018-11-18T12:19:55Z")

</div>

Thank you @rickkas7 and @ScruffR.

---

<div class="post-metadata">

**Author:** ![ScruffR](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/scruffr/32/6952_2.png) [@ScruffR](https://community.particle.io/u/ScruffR)\
**Post date:** [November 18, 2018, 12:23pm UTC](https://community.particle.io/t/mesh-products-platform-id/45370/6 "2018-11-18T12:23:18Z")

</div>

> [@KlementhJones](#):
>
> Does it works with every system?

This works for all Particle and compound devices.  
Which system would you be refering to?

---

<div class="post-metadata">

**Author:** ![rickkas7](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/rickkas7/32/8681_2.png) [@rickkas7](https://community.particle.io/u/rickkas7)\
**Post date:** [November 18, 2018, 12:24pm UTC](https://community.particle.io/t/mesh-products-platform-id/45370/7 "2018-11-18T12:24:47Z")

</div>

And if you’re using it for conditionally including code, usually it’s best to check for the capability you want, not the platform. For example, if you had code that checked for Wiring\_Cellular instead of Electron, it probably would have worked without changes on the Boron.

All of the flags are here:

> <https://github.com/particle-iot/firmware/blob/mesh-develop/wiring/inc/spark_wiring_platform.h>

---

<div class="post-metadata">

**Author:** ![syrinxtech](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/syrinxtech/32/5857_2.png) [@syrinxtech](https://community.particle.io/u/syrinxtech)\
**Post date:** [December 8, 2018, 4:50am UTC](https://community.particle.io/t/mesh-products-platform-id/45370/8 "2018-12-08T04:50:20Z")

</div>

@rickkas7, thanks for the tip. I looked at your file but didn’t see anything relating to the 3 new mesh devices.

Am I missing something or does this file need updating to support something like “`#define Wiring_Mesh 1`”?

---

<div class="post-metadata">

**Author:** ![syrinxtech](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/syrinxtech/32/5857_2.png) [@syrinxtech](https://community.particle.io/u/syrinxtech)\
**Post date:** [December 8, 2018, 4:51am UTC](https://community.particle.io/t/mesh-products-platform-id/45370/9 "2018-12-08T04:51:55Z")

</div>

Or is this the entry I should focus on:

```auto
#if HAL_PLATFORM_MESH
#define Wiring_Mesh 1
#define Wiring_SPI1 1
#define Wiring_LogConfig 1
//#ifdef DEBUG_BUILD
//#define Wiring_Rtt 1
//#endif
#endif

```

---

<div class="post-metadata">

**Author:** ![ScruffR](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/scruffr/32/6952_2.png) [@ScruffR](https://community.particle.io/u/ScruffR)\
**Post date:** [December 8, 2018, 9:57am UTC](https://community.particle.io/t/mesh-products-platform-id/45370/10 "2018-12-08T09:57:39Z")

</div>

It’s difficult to answer when you don’t really say _what_ you want to check for?

- is it a specific device?
- is is it general mesh functionality?
- is it ethernet capability of any of the mesh devices?
- …

BTW, did you look at the [_first_](https://community.particle.io/t/mesh-products-platform-id/45370/2?u=scruffr) file Rick linked to or the [_second_](https://community.particle.io/t/mesh-products-platform-id/45370/7?u=scruffr)?

---

<div class="post-metadata">

**Author:** ![syrinxtech](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/syrinxtech/32/5857_2.png) [@syrinxtech](https://community.particle.io/u/syrinxtech)\
**Post date:** [December 9, 2018, 4:38pm UTC](https://community.particle.io/t/mesh-products-platform-id/45370/11 "2018-12-09T16:38:59Z")

</div>

I looked at both files.

In general, being curious, I want to know it all. I want to be able to programmatically determine anything that the Console app can determine. No particular reason…I just think I should be able to since the Particle programmers have access to it. Unlike Apple in the old days and Microsoft, I don’t believe that API’s should be restricted from general use unless it involves authentication data or access control for files/directories. Being able to find out my mesh name, who belongs to my mesh, whether my device supports wireless, mesh, Ethernet, cellular, etc., should be readily available.

Just for my amusement I was working on a program that would tell me as much about a device as possible. For example, if I handed you a device with all labels blanked out, what could you tell me about the device and it’s capabilities. That would include platform, memory, firmware, IP config, wireless config, mesh config, etc.  
I’m almost done but I couldn’t find anything related to the mesh config. Then I saw @rickkas7 post about using the device capabilities instead of a specific platform, so I started changing my code.
