# What is the "Arduino required sketch"?

**URL:** <https://community.wolfram.com/t/what-is-the-arduino-required-sketch/9121>\
**Category:** Questions\
**Tags:** robotics, external-interfaces, raspberry-pi, connected-devices\
**Created:** [August 21, 2016, 10:45am UTC](https://community.wolfram.com/t/what-is-the-arduino-required-sketch/9121 "2016-08-21T10:45:33Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![kashken](https://avatars.discourse-cdn.com/v4/letter/k/76d3ee/32.png) [@kashken](https://community.wolfram.com/u/kashken)\
**Post date:** [August 21, 2016, 10:45am UTC](https://community.wolfram.com/t/what-is-the-arduino-required-sketch/9121/1 "2016-08-21T10:45:33Z")

</div>

Under a topic labeled Basic Examples, I see the following:

Open a connection to the Arduino and upload the required sketch to the device:

```
In[1] = arduino = DeviceOpen["Arduino", "COM3"]; DeviceConfigure[arduino, "Upload"];

```

What is the required sketch? Is it StandardFirmata or one unique to Wolfram Language?  
Where is the sketch file located in the software installation on the Raspberry Pi? Is there documentation available for communicating with this sketch if it is not StandardFirmata?

I am running v10 of Wolfram/Mathematica on a Raspberry Pi3. Note that COM3 above must be replaced by the RaspBian version of the USB port name that the Arduino is connected to.

---

<div class="post-metadata">

**Author:** ![ijohnson](https://yyz1.discourse-cdn.com/wolfram/user_avatar/community.wolfram.com/ijohnson/32/21468_2.png) [@ijohnson](https://community.wolfram.com/u/ijohnson)\
**Post date:** [August 30, 2016, 3:12am UTC](https://community.wolfram.com/t/what-is-the-arduino-required-sketch/9121/2 "2016-08-30T03:12:44Z")

</div>

Hi Ken,

The required sketch mentioned here is automatically uploaded using `DeviceConfigure`.

If you would like to look at this sketch you can find it at :

```
PacletResource["DeviceDriver_Arduino", "Sketch"]

```

Note that the sketch is a Mathematica formatted template, which is configured by `DeviceConfigure`, to look at the fully generated template you can run :

```
DeviceConfigure["Arduino","Upload"->{"Debug"->True}]

```

Then you will see the temporary folder (which is normally deleted if “Debug” isn’t set to True) listed where the sketch file is located.

Note that due to a bug with the Arduino IDE, and this sketch’s usage of functions returning pointers to structs, you will not be able to open up this file with the Arduino IDE and immediately upload it. For more information on this, see [this blog](https://fowkc.wordpress.com/2013/12/04/how-the-arduino-ide-tries-to-be-too-helpful/).

Thanks,

Ian
