# Arduino Nano 33 IoT Board.h error

**URL:** <https://mworks.discourse.group/t/arduino-nano-33-iot-board-h-error/860>\
**Category:** Support\
**Created:** [December 15, 2022, 8:59pm UTC](https://mworks.discourse.group/t/arduino-nano-33-iot-board-h-error/860 "2022-12-15T20:59:12Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![meyert11](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/meyert11/32/607_2.png) [@meyert11](https://mworks.discourse.group/u/meyert11)\
**Post date:** [December 15, 2022, 8:59pm UTC](https://mworks.discourse.group/t/arduino-nano-33-iot-board-h-error/860/1 "2022-12-15T20:59:12Z")

</div>

Hi Chris, we just received the arduino boards your recommended (Nano 33 IoT). I went through the steps of installing standardFirmata and came across an error "“Please edit Boards.h with a hardware abstraction for this board” and looking this up it says that firmata isn’t yet suported for this board. When this happens with other board types, I saw that some people just manually add the values to firmata’s Board.h file. Did you come across this issue when you setup your board, and do you have an easy fix?

-update: I continued searching online and came across this on github, and I saw you were one of the commenters 🙂 I copied the code and pasted it in Boards.h under ‘old arduinos’ section and it seemed to compile, going to test it tomorrow. [Nano 33 IoT Missing in Boards.h · Issue #469 · firmata/arduino · GitHub](https://github.com/firmata/arduino/issues/469)

code:  
// Arduino Nano 33 IoT  
#elif defined(ARDUINO\_SAMD\_NANO\_33\_IOT)  
#define TOTAL\_ANALOG\_PINS 8  
#define TOTAL\_PINS 21 // 13 Digital + 8 Analog  
#define IS\_PIN\_DIGITAL(p) (((p) \>= 2 && (p) \<= 13))  
#define IS\_PIN\_ANALOG(p) ((p) \>= 14 && (p) \< 22)  
#define IS\_PIN\_PWM(p) digitalPinHasPWM(p)  
#define IS\_PIN\_SERVO(p) (IS\_PIN\_DIGITAL(p) && (p) \< MAX\_SERVOS) // deprecated since v2.4  
#define IS\_PIN\_I2C(p) ((p) == SDA || (p) == SCL)  
#define IS\_PIN\_SPI(p) ((p) == SS || (p) == MOSI || (p) == MISO || (p) == SCK)  
#define IS\_PIN\_SERIAL(p) ((p) == PIN\_SERIAL1\_RX || (p) == PIN\_SERIAL1\_TX) //defined in variant.h RX = 13, TX = 14  
#define PIN\_TO\_DIGITAL(p) (p)  
#define PIN\_TO\_ANALOG(p) ((p) - 15)  
#define PIN\_TO\_PWM(p) PIN\_TO\_DIGITAL(p)  
#define PIN\_TO\_SERVO(p) (p) // deprecated since v2.4

---

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [December 16, 2022, 4:11pm UTC](https://mworks.discourse.group/t/arduino-nano-33-iot-board-h-error/860/2 "2022-12-16T16:11:16Z")

</div>

Hi Travis,

The problem is that the version of Firmata available via the Arduino IDE’s library manager is very out of date.

I recommend installing Firmata as described in step 2 of [this article](https://mworks.discourse.group/docs?topic=57). In addition to getting you a fully up-to-date version of Firmata, it will also let you use the MWorks-specific [input pulse](https://mworks.github.io/documentation/latest/components/firmata_digital_input_pulse_channel.html) and [output pulse](https://mworks.github.io/documentation/latest/components/firmata_digital_output_pulse_channel.html) features.

Cheers,  
Chris

---

<div class="post-metadata">

**Author:** ![cstawarz](https://yyz1.discourse-cdn.com/flex031/user_avatar/mworks.discourse.group/cstawarz/32/3_2.png) [@cstawarz](https://mworks.discourse.group/u/cstawarz)\
**Post date:** [January 17, 2023, 1:38pm UTC](https://mworks.discourse.group/t/arduino-nano-33-iot-board-h-error/860/3 "2023-01-17T13:38:26Z")

</div>


