# Spark IDE Debugging

**URL:** <https://community.particle.io/t/spark-ide-debugging/8055>\
**Category:** Firmware\
**Created:** [November 12, 2014, 8:44pm UTC](https://community.particle.io/t/spark-ide-debugging/8055 "2014-11-12T20:44:33Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sailing\_Nut](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Sailing\_Nut](https://community.particle.io/u/Sailing_Nut)\
**Post date:** [November 12, 2014, 8:44pm UTC](https://community.particle.io/t/spark-ide-debugging/8055/1 "2014-11-12T20:44:33Z")

</div>

Hello,

I’m looking at the new Spark Photon to use for a project. I want to know what IDEs can be used for **_bare metal_** programming of the Photon and also what debug capabilities are available.

I did some searching and around not find a comprehensive list of what is supported.

Thanks in advance for your help!

---

<div class="post-metadata">

**Author:** ![harrisonhjones](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/harrisonhjones/32/4132_2.png) [@harrisonhjones](https://community.particle.io/u/harrisonhjones)\
**Post date:** [November 12, 2014, 8:55pm UTC](https://community.particle.io/t/spark-ide-debugging/8055/2 "2014-11-12T20:55:20Z")

</div>

Please direct you attention to [http://community.spark.io/t/local-development-and-debugging-a-step-by-step-guide/7829](http://community.spark.io/t/local-development-and-debugging-a-step-by-step-guide/7829) and come back if you have an additional questions! 🙂

Additionally, I’m not sure they have published anything substantial regarding “base metal” programming the Photon just yet. Perhaps give it a bit more time.

---

<div class="post-metadata">

**Author:** ![Sailing\_Nut](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Sailing\_Nut](https://community.particle.io/u/Sailing_Nut)\
**Post date:** [November 12, 2014, 9:11pm UTC](https://community.particle.io/t/spark-ide-debugging/8055/3 "2014-11-12T21:11:45Z")

</div>

Thanks for pointing me to that post. VERY good information, but the process is QUITE involved.

It is unfortunate that most of these **_make the IOT easier_** boards are so difficult to do proper debugging.

---

<div class="post-metadata">

**Author:** ![harrisonhjones](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/harrisonhjones/32/4132_2.png) [@harrisonhjones](https://community.particle.io/u/harrisonhjones)\
**Post date:** [November 12, 2014, 9:16pm UTC](https://community.particle.io/t/spark-ide-debugging/8055/4 "2014-11-12T21:16:05Z")

</div>

I do agree with you however I think these IOT boards are making things easier (RF design, communicaiton, apis, etc) just not debugging… the software part seems to be up to the user for the most part.

---

<div class="post-metadata">

**Author:** ![Sailing\_Nut](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Sailing\_Nut](https://community.particle.io/u/Sailing_Nut)\
**Post date:** [November 12, 2014, 9:19pm UTC](https://community.particle.io/t/spark-ide-debugging/8055/5 "2014-11-12T21:19:17Z")

</div>

Yeah, I DO want the software up to me. It’s a good thing, but nobody seems to have focused on local build/debug. Disappointing because I’m writing a fairly complex bit of TCP/IP based code that I would DIE to be able to step through! (I’m more of a let’s try it and see what went wrong type coder!)

---

<div class="post-metadata">

**Author:** ![mdma](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/mdma/32/1924_2.png) [@mdma](https://community.particle.io/u/mdma)\
**Post date:** [November 12, 2014, 10:13pm UTC](https://community.particle.io/t/spark-ide-debugging/8055/6 "2014-11-12T22:13:07Z")

</div>

Only the setup requires some effort (but neatly explained in that post above) - once initial setup is done, debugging is simply a matter of clicking a button and stepping through the code. It doesn’t get much simpler than that.

---

<div class="post-metadata">

**Author:** ![mdma](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/mdma/32/1924_2.png) [@mdma](https://community.particle.io/u/mdma)\
**Post date:** [November 12, 2014, 10:39pm UTC](https://community.particle.io/t/spark-ide-debugging/8055/7 "2014-11-12T22:39:06Z")

</div>

For bare metal programming, you have these options:

- now, on the core: a JTAG shield with a JTAG programmer (e.g. st-link v2)
- later, on the photon: a FTDI-based debugger shield so you can debug with openocd without needing a separate programmer

Both options allow you to write the bootloader and the main firmware so you can take full control of the device.

---

<div class="post-metadata">

**Author:** ![Sailing\_Nut](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Sailing\_Nut](https://community.particle.io/u/Sailing_Nut)\
**Post date:** [November 13, 2014, 2:59am UTC](https://community.particle.io/t/spark-ide-debugging/8055/8 "2014-11-13T02:59:44Z")

</div>

@mdma The FTDI based debugger shield sounds like a perfect solution for me. Can you share any details of when it might be available?
