Skip to content

Commit

Permalink
Added support for 2 new boards (XIAO ESP32S3 & ARDUINO_NRF52840_FEATH…
Browse files Browse the repository at this point in the history
…ER_SENSE) (#799)

* changes for feather sense

* support for xiao seed esp32s3 and simply extending the ARDUINO_NRF52840_FEATHER support to also support the _SENSE version

* changes to support seeed xiao esp32s3

* revert ps5 change, not sure why this happened!
  • Loading branch information
morgz committed May 2, 2024
1 parent d6cfefd commit e1a9d4b
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 2 deletions.
4 changes: 4 additions & 0 deletions UsbCore.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ typedef MAX3421e<P20, P19> MAX3421E; // Balanduino
typedef MAX3421e<P3, P2> MAX3421E; // The Intel Galileo supports much faster read and write speed at pin 2 and 3
#elif defined(ESP8266)
typedef MAX3421e<P15, P5> MAX3421E; // ESP8266 boards
#elif defined(ARDUINO_XIAO_ESP32S3)
typedef MAX3421e<P44, P4> MAX3421E; // ESP32 XIAO boards
#elif defined(ESP32)
typedef MAX3421e<P5, P17> MAX3421E; // ESP32 boards
#elif defined(ARDUINO_Seeed_XIAO_nRF52840_Sense)
Expand All @@ -56,6 +58,8 @@ typedef MAX3421e<P7, P5> MAX3421E; // Seeed_XIAO_nRF52840_Sense
typedef MAX3421e<Pb4, Pb3> MAX3421E; // MightyCore
#elif (defined(__AVR_ATmega644P__) || defined(__AVR_ATmega1284P__))
typedef MAX3421e<Pb4, Pb3> MAX3421E; // Sanguino
#elif defined(ARDUINO_NRF52840_FEATHER_SENSE)
typedef MAX3421e<P5, P6> MAX3421E; // ARDUINO_NRF52840_FEATHER_SENSE
#else
typedef MAX3421e<P10, P9> MAX3421E; // Official Arduinos (UNO, Duemilanove, Mega, 2560, Leonardo, Due etc.), Intel Edison, Intel Galileo 2 or Teensy 2.0 and 3.x
#endif
Expand Down
43 changes: 42 additions & 1 deletion avrpins.h
Original file line number Diff line number Diff line change
Expand Up @@ -1506,7 +1506,7 @@ MAKE_PIN(P19, GPIOC, GPIO_PIN_0); // A5
#undef MAKE_PIN


#elif defined(ARDUINO_NRF52840_FEATHER)
#elif defined(ARDUINO_NRF52840_FEATHER) || defined(ARDUINO_NRF52840_FEATHER_SENSE)

#define MAKE_PIN(className, pin) \
class className { \
Expand Down Expand Up @@ -1852,6 +1852,47 @@ MAKE_PIN(P13, 13); // MOSI
MAKE_PIN(P14, 14); // SCK
MAKE_PIN(P15, 15); // SS

#elif defined(ARDUINO_XIAO_ESP32S3)

// Workaround strict-aliasing warnings
#ifdef pgm_read_word
#undef pgm_read_word
#endif
#ifdef pgm_read_dword
#undef pgm_read_dword
#endif
#ifdef pgm_read_float
#undef pgm_read_float
#endif
#ifdef pgm_read_ptr
#undef pgm_read_ptr
#endif

#define pgm_read_word(addr) ({ \
typeof(addr) _addr = (addr); \
*(const unsigned short *)(_addr); \
})
#define pgm_read_dword(addr) ({ \
typeof(addr) _addr = (addr); \
*(const unsigned long *)(_addr); \
})
#define pgm_read_float(addr) ({ \
typeof(addr) _addr = (addr); \
*(const float *)(_addr); \
})
#define pgm_read_ptr(addr) ({ \
typeof(addr) _addr = (addr); \
*(void * const *)(_addr); \
})

// Pinout for ESP32 dev module

MAKE_PIN(P8, 8); // MISO
MAKE_PIN(P9, 9); // MOSI
MAKE_PIN(P7, 7); // SCK
MAKE_PIN(P44, 44); // SS
MAKE_PIN(P4, 4); // INT

#elif defined(ESP32)

// Workaround strict-aliasing warnings
Expand Down
4 changes: 3 additions & 1 deletion usbhost.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,11 @@ typedef SPi< P76, P75, P74, P10 > spi;
typedef SPi< P16, P18, P17, P10 > spi;
#elif defined(ESP8266)
typedef SPi< P14, P13, P12, P15 > spi;
#elif defined(ARDUINO_XIAO_ESP32S3)
typedef SPi< P7, P9, P8, P44 > spi;
#elif defined(ESP32)
typedef SPi< P18, P23, P19, P5 > spi;
#elif defined(ARDUINO_NRF52840_FEATHER)
#elif defined(ARDUINO_NRF52840_FEATHER) || defined(ARDUINO_NRF52840_FEATHER_SENSE)
typedef SPi< P26, P25, P24, P5 > spi;
#elif defined(ARDUINO_Seeed_XIAO_nRF52840_Sense)
typedef SPi< P8, P10, P9, P7 > spi;
Expand Down

0 comments on commit e1a9d4b

Please sign in to comment.