{"title":"ESP32 Boards","description":"\u003cp\u003e\u003cspan\u003ePower up your projects with our \u003c\/span\u003e\u003cstrong\u003eBrains of the Operation\u003c\/strong\u003e\u003cspan\u003e—mostly ESP32-based boards and trusty Arduino classics that practically beg to be programmed, WiFi’d, and wearable-ified. Whether you’re blinking LEDs, talking to sensors, or building the next internet-connected sock, these boards are your eager sidekicks—small, scrappy, and ready to make your wildest code dreams real.\u003c\/span\u003e\u003c\/p\u003e","products":[{"product_id":"esp32-c3-with-0-42-inch-screen","title":"ESP32 C3 with 0.42 inch screen","description":"\u003cp\u003eA compact \u003cstrong\u003eESP32-C3 development board\u003c\/strong\u003e with a built-in \u003cstrong\u003e0.42\" display\u003c\/strong\u003e for real-time data output — all in a 23.5×18mm footprint. RISC-V single-core processor, integrated WiFi and Bluetooth 5 LE, and USB-C for programming. Works with Arduino, MicroPython, and ESP-IDF.\u003c\/p\u003e\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSoC: ESP32-C3FH4, RISC-V single-core\u003c\/li\u003e\n\u003cli\u003eMemory: 4MB Flash, 400KB SRAM\u003c\/li\u003e\n\u003cli\u003eWireless: 2.4GHz WiFi + Bluetooth 5 LE\u003c\/li\u003e\n\u003cli\u003eDisplay: Integrated 0.42\" screen\u003c\/li\u003e\n\u003cli\u003eGPIO: 11 pins — I2C, I2S, UART, SPI, PWM, ADC\u003c\/li\u003e\n\u003cli\u003e1 × RGB LED, 1 × Reset button\u003c\/li\u003e\n\u003cli\u003eUSB-C (USB-to-Serial interface, no native USB)\u003c\/li\u003e\n\u003cli\u003eCeramic antenna\u003c\/li\u003e\n\u003cli\u003eDimensions: 23.5 × 18mm | Weight: ~2.6g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWant a 5×5 RGB LED matrix instead of a screen? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/dazzling-awesome-esp32-c3-board-with-twinkling-rgb-lights\"\u003eESP32-C3 Board with 25×WS2812B Matrix\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eNeed a compact ESP32-C3 without extras? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/beetle-esp32-c3-risc-v-core-development-board-1\"\u003eBeetle ESP32-C3\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eWant a standard 30-pin ESP32? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board\"\u003eESP32 Development Board 30-pin\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003ciframe width=\"315\" height=\"560\" src=\"https:\/\/www.youtube.com\/embed\/Z_rkr5v4u48\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cpre data-lang=\"platformio.ini\"\u003e\u003ccode\u003e; ============================================================\n;  Test 1: find the screen pins on the ESP32-C3 0.42 inch board\n;  CMozMaker | tinkertailor.ca\n; ============================================================\n\n; --- Environment 1 (default): normal serial ---\n[env:c3_screen_test]\nplatform = https:\/\/github.com\/pioarduino\/platform-espressif32\/releases\/download\/stable\/platform-espressif32.zip\nframework = arduino\nboard = esp32-c3-devkitm-1\nmonitor_speed = 115200\n\n; U8g2 is the library that draws on the tiny screen.\nlib_deps =\n    olikraus\/U8g2\n\n; --- Environment 2: only use this if environment 1 shows nothing on\n; the Serial Monitor. Your board may use the chip's built-in USB,\n; which needs these two flags to print to the monitor.\n[env:c3_screen_test_usb]\nplatform = https:\/\/github.com\/pioarduino\/platform-espressif32\/releases\/download\/stable\/platform-espressif32.zip\nframework = arduino\nboard = esp32-c3-devkitm-1\nmonitor_speed = 115200\nbuild_flags =\n    -DARDUINO_USB_MODE=1\n    -DARDUINO_USB_CDC_ON_BOOT=1\nlib_deps =\n    olikraus\/U8g2\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cpre data-lang=\"main.cpp\"\u003e\u003ccode\u003e\/\/ ============================================================\n\/\/  Tinker Tailor demo for the ESP32-C3 0.42 inch screen board\n\/\/  tinkertailor.ca\n\/\/\n\/\/  The screen is 72 x 40 pixels. This demo cycles through\n\/\/  five short scenes (the last one lasts until the message has finished):\n\/\/    1. Logo splash\n\/\/    2. A needle sewing a running stitch\n\/\/    3. Current flowing along a conductive thread to an LED\n\/\/    4. A field of white foxes drifting across the screen\n\/\/    5. A scrolling message\n\/\/\n\/\/  The onboard RGB LED changes colour to match each scene.\n\/\/\n\/\/  Pins on this board (already wired for you):\n\/\/    Screen SDA = GPIO5, screen SCL = GPIO6\n\/\/    RGB LED (WS2812) data = GPIO2\n\/\/ ============================================================\n\n#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;Wire.h\u0026gt;\n#include \u0026lt;U8g2lib.h\u0026gt;\n\nconst int SDA_PIN = 5;\nconst int SCL_PIN = 6;\nconst int LED_PIN = 2;     \/\/ onboard RGB LED\n\n\/\/ 72x40 OLED, hardware I2C. No pins here, we set them in setup().\nU8G2_SSD1306_72X40_ER_F_HW_I2C display(U8G2_R0, U8X8_PIN_NONE);\n\nconst int SCREEN_W = 72;\nconst int SCREEN_H = 40;\n\n\/\/ How long each scene plays, in milliseconds\nconst unsigned long SCENE_TIME = 5000;\n\n\/\/ The scrolling message scene lasts as long as the message needs.\n\/\/ We work this out once in setup().\nunsigned long scrollSceneTime = SCENE_TIME;\nconst char* scrollMessage = \"Conductive fabrics, e-textiles and more at tinkertailor.ca   \";\n\nint currentScene = 0;\nunsigned long sceneStart = 0;\n\n\/\/ ---------- Scene 1: logo splash ----------\nvoid sceneSplash(unsigned long t) {\n  display.setFont(u8g2_font_helvB10_tr);\n  display.drawStr(8, 15, \"Tinker\");\n  display.drawStr(14, 29, \"Tailor\");\n\n  \/\/ A thread underline that draws itself, then holds\n  int len = min((unsigned long)60, t \/ 20);\n  display.drawHLine(6, 34, len);\n\n  \/\/ Tiny dots along the thread, like stitches\n  for (int x = 6; x \u0026lt; 6 + len; x += 6) {\n    display.drawPixel(x, 36);\n  }\n}\n\n\/\/ ---------- Scene 2: needle and running stitch ----------\nvoid sceneStitch(unsigned long t) {\n  int step = (t \/ 60) % 80;          \/\/ position across the screen\n  int needleX = step;\n  \/\/ The needle goes up and down in a small wave as it travels\n  int needleY = 20 + ((step % 12) \u0026lt; 6 ? -6 : 6);\n\n  \/\/ Stitches already sewn (short dashes behind the needle)\n  for (int x = 0; x \u0026lt; needleX; x += 8) {\n    display.drawHLine(x, 20, 5);\n  }\n\n  \/\/ The needle: a short diagonal line with an eye\n  display.drawLine(needleX, needleY, needleX + 8, needleY - 8);\n  display.drawPixel(needleX + 7, needleY - 7);\n\n  \/\/ Thread following the needle\n  display.drawLine(needleX, needleY, needleX - 6, 20);\n\n  \/\/ Small font so the whole line fits, starting 1 pixel from the left edge\n  display.setFont(u8g2_font_4x6_tr);\n  display.drawStr(1, 38, \"Sew it, wear it\");\n}\n\n\/\/ ---------- Scene 3: conductive thread to an LED ----------\nvoid sceneCircuit(unsigned long t) {\n  \/\/ Battery on the left\n  display.drawFrame(2, 14, 8, 12);\n  display.drawStr(4, 23, \"+\");\n\n  \/\/ Conductive thread trace along top and bottom\n  display.drawHLine(10, 16, 44);\n  display.drawHLine(10, 24, 44);\n\n  \/\/ LED on the right (a circle that fills in when \"on\")\n  int ledX = 60;\n  int ledY = 20;\n  bool lit = ((t \/ 250) % 2) == 0;\n  if (lit) {\n    display.drawDisc(ledX, ledY, 6);\n    \/\/ little rays around the lit LED\n    display.drawLine(ledX - 9, ledY - 9, ledX - 7, ledY - 7);\n    display.drawLine(ledX + 9, ledY - 9, ledX + 7, ledY - 7);\n    display.drawLine(ledX, ledY - 11, ledX, ledY - 9);\n  } else {\n    display.drawCircle(ledX, ledY, 6);\n  }\n\n  \/\/ Electrons: dots that travel along the top trace\n  for (int i = 0; i \u0026lt; 4; i++) {\n    int x = 10 + ((t \/ 25 + i * 11) % 44);\n    display.drawBox(x, 15, 2, 2);\n  }\n\n  display.setFont(u8g2_font_5x7_tr);\n  int w = display.getStrWidth(\"Conductive\");\n  display.drawStr((SCREEN_W - w) \/ 2, 38, \"Conductive\");\n}\n\n\/\/ ---------- Scene 4: white foxes ----------\n\/\/ Draws one fox head about 13 pixels wide and 14 tall.\n\/\/ x, y is the top left corner.\nvoid drawFox(int x, int y) {\n  display.setDrawColor(1);\n  display.drawTriangle(x + 1, y, x + 1, y + 7, x + 5, y + 5);        \/\/ left ear\n  display.drawTriangle(x + 11, y, x + 11, y + 7, x + 7, y + 5);      \/\/ right ear\n  \/\/ Face: a five sided shape with cheeks and a pointed snout\n  display.drawTriangle(x + 1, y + 5, x + 11, y + 5, x + 6, y + 14);\n  display.drawTriangle(x + 1, y + 5, x - 1, y + 9, x + 6, y + 14);\n  display.drawTriangle(x + 11, y + 5, x + 13, y + 9, x + 6, y + 14);\n  display.drawBox(x + 1, y + 5, 11, 4);\n  \/\/ Eyes and nose are drawn in black on top of the white face\n  display.setDrawColor(0);\n  display.drawPixel(x + 3, y + 8);\n  display.drawPixel(x + 9, y + 8);\n  display.drawPixel(x + 6, y + 13);\n  display.setDrawColor(1);\n}\n\nvoid sceneFoxes(unsigned long t) {\n  \/\/ The whole pattern drifts left and down slowly\n  int offsetX = (t \/ 60) % 18;\n  int offsetY = (t \/ 90) % 14;\n  for (int row = -1; row \u0026lt; 4; row++) {\n    for (int col = -1; col \u0026lt; 6; col++) {\n      int x = col * 18 - offsetX + ((row % 2 != 0) ? 9 : 0);\n      int y = row * 14 + offsetY;\n      drawFox(x, y);\n    }\n  }\n}\n\n\/\/ ---------- Scene 5: scrolling message ----------\nvoid sceneScroll(unsigned long t) {\n  display.setFont(u8g2_font_helvB08_tr);\n  \/\/ Start off the right edge and move left until the end has gone past\n  int x = SCREEN_W - (int)(t \/ 25);\n  display.drawStr(x, 18, scrollMessage);\n\n  display.setFont(u8g2_font_5x7_tr);\n  display.drawStr(6, 36, \"Make \u0026amp; Wear\");\n}\n\n\/\/ ---------- Onboard RGB LED ----------\n\/\/ Turn a hue (0 to 255) into red, green and blue values.\n\/\/ Brightness is kept low on purpose because the LED is very bright.\nvoid hueToRgb(int hue, int level, int \u0026amp;r, int \u0026amp;g, int \u0026amp;b) {\n  int region = hue \/ 43;                  \/\/ 6 regions of the colour wheel\n  int rise = (hue - region * 43) * 6;     \/\/ 0 to 255 within a region\n  int fall = 255 - rise;\n  switch (region) {\n    case 0:  r = 255;  g = rise; b = 0;    break;\n    case 1:  r = fall; g = 255;  b = 0;    break;\n    case 2:  r = 0;    g = 255;  b = rise; break;\n    case 3:  r = 0;    g = fall; b = 255;  break;\n    case 4:  r = rise; g = 0;    b = 255;  break;\n    default: r = 255;  g = 0;    b = fall; break;\n  }\n  r = r * level \/ 255;\n  g = g * level \/ 255;\n  b = b * level \/ 255;\n}\n\n\/\/ Pick an LED colour that goes with the scene on the screen\nvoid updateLed(int scene, unsigned long t) {\n  int r = 0, g = 0, b = 0;\n\n  switch (scene) {\n    case 0: {                              \/\/ splash: slow teal breathing\n      int level = 5 + (int)((sin(t \/ 400.0) + 1.0) * 17);\n      r = 0; g = level; b = level;\n      break;\n    }\n    case 1: {                              \/\/ stitching: pink pulse with each stitch\n      bool stitch = ((t \/ 60) % 12) \u0026lt; 6;\n      if (stitch) { r = 30; g = 2; b = 14; }\n      break;\n    }\n    case 2: {                              \/\/ circuit: matches the on-screen LED\n      bool lit = ((t \/ 250) % 2) == 0;\n      if (lit) { r = 30; g = 20; b = 4; }\n      break;\n    }\n    case 3: {                              \/\/ foxes: flickering fox orange\n      int flicker = 14 + (int)((sin(t \/ 150.0) + 1.0) * 8);\n      r = flicker * 2; g = flicker \/ 3; b = 0;\n      break;\n    }\n    default: {                             \/\/ scroll: rainbow\n      hueToRgb((t \/ 12) % 256, 35, r, g, b);\n      break;\n    }\n  }\n\n  neopixelWrite(LED_PIN, r, g, b);\n}\n\nvoid setup() {\n  Wire.begin(SDA_PIN, SCL_PIN);\n  display.begin();\n  display.setContrast(255);   \/\/ full brightness\n  neopixelWrite(LED_PIN, 0, 0, 0);   \/\/ start with the LED off\n\n  \/\/ Work out how long the scrolling message needs (25 ms per pixel)\n  display.setFont(u8g2_font_helvB08_tr);\n  int textWidth = display.getStrWidth(scrollMessage);\n  scrollSceneTime = (unsigned long)(textWidth + SCREEN_W) * 25;\n\n  sceneStart = millis();\n}\n\nvoid loop() {\n  unsigned long now = millis();\n  unsigned long t = now - sceneStart;\n\n  \/\/ Move to the next scene when time is up\n  unsigned long thisSceneTime = (currentScene == 4) ? scrollSceneTime : SCENE_TIME;\n  if (t \u0026gt;= thisSceneTime) {\n    currentScene = (currentScene + 1) % 5;\n    sceneStart = now;\n    t = 0;\n  }\n\n  display.clearBuffer();\n\n  switch (currentScene) {\n    case 0: sceneSplash(t);  break;\n    case 1: sceneStitch(t);  break;\n    case 2: sceneCircuit(t); break;\n    case 3: sceneFoxes(t);   break;\n    case 4: sceneScroll(t);  break;\n  }\n\n  display.sendBuffer();\n  updateLed(currentScene, t);\n  delay(15);\n}\u003c\/code\u003e\u003c\/pre\u003e    ","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50068052312297,"sku":"ESP32-C3-SCREEN","price":19.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/b8a5352e-acreenESP.jpg?v=1769271454"},{"product_id":"esp32-c3-25-led-matrix-board","title":"ESP32 C3 Board with 25 Lights Matrix","description":"\u003cp\u003eNote: \u003cstrong\u003eLIMITED \u003c\/strong\u003ePRODUCT!\u003c\/p\u003e\n\u003cp\u003eAn ultra-compact ESP32-C3 dev board with a built-in \u003cstrong\u003e5×5 matrix of 25 WS2812B-1515 RGB LEDs\u003c\/strong\u003e — perfect for wearables, IoT sensors, and any project that needs wireless connectivity plus dazzling visual output in a tiny footprint.\u003c\/p\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/sXc_ZhFLrLg?si=LY6cxA-Ao7xdpNgd\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/8e2qXAOdp-A?si=H6Q1YJNm6kmVIc_f\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSoC: ESP32-C3FH4, RISC-V 32-bit @ 160MHz\u003c\/li\u003e\n\u003cli\u003eMemory: 400KB SRAM, 4MB Flash\u003c\/li\u003e\n\u003cli\u003eWireless: 2.4GHz WiFi + Bluetooth 5 LE (long-range)\u003c\/li\u003e\n\u003cli\u003eSecurity: RSA-3072 secure boot, AES-128-XTS flash encryption\u003c\/li\u003e\n\u003cli\u003eDisplay: 25 × WS2812B-1515 RGB LEDs in a 5×5 matrix\u003c\/li\u003e\n\u003cli\u003eUSB: USB-C (CH340E USB-to-TTL)\u003c\/li\u003e\n\u003cli\u003eGPIO: 11 GPIOs via 2 × 7-pin headers + 4-pin header\u003c\/li\u003e\n\u003cli\u003ePower: 5V → 3.3V DC\/DC (2 channels)\u003c\/li\u003e\n\u003cli\u003eButtons: Enable + User\u003c\/li\u003e\n\u003cli\u003eDimensions: 21 × 18mm | Weight: ~2.3g\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGetting started\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCompatible with Arduino IDE, MicroPython, ESP-IDF\u003c\/li\u003e\n\u003cli\u003eTo view Serial Monitor output: \u003cstrong\u003eTools → USB CDC On Boot → Enabled\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eUpload tip: Hold \u003cstrong\u003eB\u003c\/strong\u003e, press \u0026amp; release \u003cstrong\u003eR\u003c\/strong\u003e, keep holding \u003cstrong\u003eB\u003c\/strong\u003e, trigger upload in Arduino IDE, release \u003cstrong\u003eB\u003c\/strong\u003e when connected\u003c\/li\u003e\n\u003cli\u003eGitHub examples: \u003ca href=\"https:\/\/github.com\/01Space\/ESP32-C3FH4-RGB\" target=\"_blank\"\u003eESP32-C3FH4-RGB\u003c\/a\u003e | \u003ca href=\"https:\/\/github.com\/01Space\/ESP32-PICO-D4-RGB\" target=\"_blank\"\u003eESP32-PICO-D4-RGB\u003c\/a\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWant a standard 30-pin ESP32? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board\"\u003eESP32 Development Board 30-pin\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eNeed a compact ESP32-C3 without the LED matrix? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/beetle-esp32-c3-risc-v-core-development-board-1\"\u003eBeetle ESP32-C3\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eWant to prototype NeoPixel effects first? Use the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/whoa-neo-tester-get-your-prototyping-on-with-our-unique-mini-8-rgb-led-circuit-board-strip\"\u003eNeo Tester – 8-LED WS2812B Strip\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e \u003c\/p\u003e\n\n\u003cpre data-lang=\"platformio.ini\"\u003e\u003ccode\u003e; ============================================================\n;  Test: demo for the ESP32-C3 25-LED matrix board\n;  tinkertailor.ca\n; ============================================================\n[env:c3_matrix_demo]\nplatform = https:\/\/github.com\/pioarduino\/platform-espressif32\/releases\/download\/stable\/platform-espressif32.zip\nframework = arduino\nboard = esp32-c3-devkitm-1\nmonitor_speed = 115200\n \n; This board sends serial over the built-in USB port\nbuild_flags =\n  -D ARDUINO_USB_MODE=1\n  -D ARDUINO_USB_CDC_ON_BOOT=1\nmonitor_rts = 0\nmonitor_dtr = 0\n \n; Library that drives the LEDs\nlib_deps =\n    adafruit\/Adafruit NeoPixel\u003c\/code\u003e\u003c\/pre\u003e\n\n\u003cpre data-lang=\"main.cpp\"\u003e\u003ccode\u003e\/\/ ============================================================\n\/\/  Tinker Tailor demo for the ESP32-C3 5 x 5 LED matrix board\n\/\/  tinkertailor.ca\n\/\/\n\/\/  Five short scenes play one after another:\n\/\/    1. Rainbow wave\n\/\/    2. Beating heart\n\/\/    3. Rain\n\/\/    4. Tinker Tailor fox\n\/\/    5. Twinkling sparkle\n\/\/\n\/\/  Pins on this board:\n\/\/    LED data (25 x WS2812) = GPIO8\n\/\/    Header pins: GND, 3V, GPIO0, GPIO1\n\/\/\n\/\/  The LEDs run row by row, left to right, so the LED at column\n\/\/  x and row y (both counted from 0, top left) is number y * 5 + x.\n\/\/ ============================================================\n\n#include \u0026lt;Arduino.h\u0026gt;\n#include \u0026lt;Adafruit_NeoPixel.h\u0026gt;\n\nconst int LED_PIN = 8;\nconst int GRID = 5;\nconst int LED_COUNT = GRID * GRID;\n\n\/\/ Brightness 0 to 255. These LEDs are very bright, so keep it low.\nconst int BRIGHTNESS = 30;\n\n\/\/ How long each scene plays, in milliseconds\nconst unsigned long SCENE_TIME = 6000;\nconst int SCENE_COUNT = 5;\n\nAdafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);\n\nint currentScene = 0;\nunsigned long sceneStart = 0;\n\n\/\/ Turn column x and row y into the LED number\nint ledIndex(int x, int y) {\n  return y * GRID + x;\n}\n\n\/\/ Scale a colour by an amount from 0.0 (off) to 1.0 (full)\nuint32_t scaled(uint8_t r, uint8_t g, uint8_t b, float amount) {\n  if (amount \u0026lt; 0) amount = 0;\n  if (amount \u0026gt; 1) amount = 1;\n  return strip.Color(r * amount, g * amount, b * amount);\n}\n\n\/\/ ---------- Scene 1: rainbow wave ----------\nvoid sceneRainbow(unsigned long t) {\n  for (int y = 0; y \u0026lt; GRID; y++) {\n    for (int x = 0; x \u0026lt; GRID; x++) {\n      \/\/ Hue is a number from 0 to 65535 around the colour wheel\n      uint16_t hue = (uint16_t)(t * 12 + (x + y) * 6500);\n      strip.setPixelColor(ledIndex(x, y), strip.ColorHSV(hue, 255, 255));\n    }\n  }\n}\n\n\/\/ ---------- Scene 2: beating heart ----------\n\/\/ 1 means the LED is part of the heart\nconst uint8_t heart[GRID][GRID] = {\n  {0, 1, 0, 1, 0},\n  {1, 1, 1, 1, 1},\n  {1, 1, 1, 1, 1},\n  {0, 1, 1, 1, 0},\n  {0, 0, 1, 0, 0}\n};\n\nvoid sceneHeart(unsigned long t) {\n  \/\/ Two quick beats, then a rest, repeating every 1.2 seconds\n  unsigned long beat = t % 1200;\n  float amount = 0.25;\n  if (beat \u0026lt; 150)                  amount = 0.25 + beat \/ 150.0 * 0.75;\n  else if (beat \u0026lt; 300)             amount = 1.0 - (beat - 150) \/ 150.0 * 0.6;\n  else if (beat \u0026lt; 450)             amount = 0.4 + (beat - 300) \/ 150.0 * 0.6;\n  else if (beat \u0026lt; 700)             amount = 1.0 - (beat - 450) \/ 250.0 * 0.75;\n\n  for (int y = 0; y \u0026lt; GRID; y++) {\n    for (int x = 0; x \u0026lt; GRID; x++) {\n      if (heart[y][x]) {\n        strip.setPixelColor(ledIndex(x, y), scaled(255, 20, 80, amount));\n      }\n    }\n  }\n}\n\n\/\/ ---------- Scene 3: rain ----------\nvoid sceneRain(unsigned long t) {\n  \/\/ Each column has its own speed and starting point\n  const int speedMs[GRID]  = {110, 150, 90, 130, 170};\n  const int startAt[GRID]  = {0, 4, 2, 6, 1};\n\n  for (int x = 0; x \u0026lt; GRID; x++) {\n    \/\/ The drop moves down and spends a few steps off screen\n    \/\/ before it comes back at the top\n    int head = (t \/ speedMs[x] + startAt[x]) % 9;\n    for (int tail = 0; tail \u0026lt; 3; tail++) {\n      int y = head - tail;\n      if (y \u0026gt;= 0 \u0026amp;\u0026amp; y \u0026lt; GRID) {\n        float amount = (tail == 0) ? 1.0 : (tail == 1 ? 0.35 : 0.12);\n        strip.setPixelColor(ledIndex(x, y), scaled(40, 120, 255, amount));\n      }\n    }\n  }\n}\n\n\/\/ ---------- Scene 4: fox ----------\n\/\/ 0 = off, 1 = orange fur, 2 = white\nconst uint8_t fox[GRID][GRID] = {\n  {1, 0, 0, 0, 1},\n  {1, 1, 1, 1, 1},\n  {1, 0, 1, 0, 1},\n  {0, 2, 2, 2, 0},\n  {0, 0, 2, 0, 0}\n};\n\nvoid sceneFox(unsigned long t) {\n  \/\/ A gentle glow so the fox looks alive\n  float glow = 0.75 + 0.25 * sin(t \/ 350.0);\n  for (int y = 0; y \u0026lt; GRID; y++) {\n    for (int x = 0; x \u0026lt; GRID; x++) {\n      if (fox[y][x] == 1) {\n        strip.setPixelColor(ledIndex(x, y), scaled(255, 70, 0, glow));\n      } else if (fox[y][x] == 2) {\n        strip.setPixelColor(ledIndex(x, y), scaled(255, 200, 160, glow));\n      }\n    }\n  }\n}\n\n\/\/ ---------- Scene 5: twinkling sparkle ----------\nvoid sceneSparkle(unsigned long t) {\n  for (int i = 0; i \u0026lt; LED_COUNT; i++) {\n    \/\/ Each LED rises and falls on its own timing\n    float wave = sin((t + i * 337) \/ 280.0);\n    float amount = (wave \u0026gt; 0) ? wave * wave : 0;\n    \/\/ Teal and gold, the Tinker Tailor colours\n    if (i % 2 == 0) {\n      strip.setPixelColor(i, scaled(0, 220, 200, amount));\n    } else {\n      strip.setPixelColor(i, scaled(255, 180, 20, amount));\n    }\n  }\n}\n\nvoid setup() {\n  strip.begin();\n  strip.setBrightness(BRIGHTNESS);\n  strip.clear();\n  strip.show();\n  sceneStart = millis();\n}\n\nvoid loop() {\n  unsigned long now = millis();\n  unsigned long t = now - sceneStart;\n\n  \/\/ Move to the next scene when time is up\n  if (t \u0026gt;= SCENE_TIME) {\n    currentScene = (currentScene + 1) % SCENE_COUNT;\n    sceneStart = now;\n    t = 0;\n  }\n\n  strip.clear();\n\n  switch (currentScene) {\n    case 0: sceneRainbow(t); break;\n    case 1: sceneHeart(t);   break;\n    case 2: sceneRain(t);    break;\n    case 3: sceneFox(t);     break;\n    case 4: sceneSparkle(t); break;\n  }\n\n  strip.show();\n  delay(20);\n}\u003c\/code\u003e\u003c\/pre\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50068053262569,"sku":"ESP32-C3-MATRIX-LEDS","price":24.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/fc275c37-20220815_092535_edited_edited_edited.jpg?v=1769271453"},{"product_id":"adafruit-qt-py-samd21","title":"Adafruit QT Py - SAMD21","description":"\u003cp\u003eA tiny but capable development board built around the \u003cstrong\u003eATSAMD21E18\u003c\/strong\u003e — the same chip as the Gemma M0 and Trinket M0. USB-C connector, built-in RGB NeoPixel, STEMMA QT port for plug-and-play I2C sensors, and a Xiao-compatible footprint. Supports Arduino IDE and CircuitPython out of the box.\u003c\/p\u003e\n\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcessor: ATSAMD21E18, 32-bit Cortex M0+ @ 48MHz\u003c\/li\u003e\n\u003cli\u003eMemory: 256KB Flash, 32KB RAM\u003c\/li\u003e\n\u003cli\u003eConnector: USB-C\u003c\/li\u003e\n\u003cli\u003eSTEMMA QT port — chainable I2C, compatible with SparkFun Qwiic \u0026amp; Seeed Grove\u003c\/li\u003e\n\u003cli\u003eBuilt-in RGB NeoPixel\u003c\/li\u003e\n\u003cli\u003e11 GPIO pins, 9 PWM outputs, true analog output (10-bit audio)\u003c\/li\u003e\n\u003cli\u003e6 capacitive touch pins — no extra components needed\u003c\/li\u003e\n\u003cli\u003eHardware I2C, UART, SPI, I2S\u003c\/li\u003e\n\u003cli\u003e3.3V regulator, 600mA peak\u003c\/li\u003e\n\u003cli\u003eOptional SOIC SPI flash pads for datalogging\u003c\/li\u003e\n\u003cli\u003eCastellated pads for flat PCB soldering\u003c\/li\u003e\n\u003cli\u003eArduino IDE \u0026amp; CircuitPython compatible\u003c\/li\u003e\n\u003cli\u003eUSB HID — keyboard, mouse, MIDI, serial, disk drive\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWant WiFi on a QT Py? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/adafruit-esp32-s2-qt-py-wifi-dev-board-w-stemma-qt\"\u003eAdafruit ESP32-S2 QT Py WiFi Dev Board\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eNeed a sewable SAMD21 board? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/adafruit-gemma-m0-sewable-microcontroller\"\u003eAdafruit Gemma M0\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eBuilding a touch wearable? Check out the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/open-universal-input-sleeve-ouis\"\u003eOpen Universal Input Sleeve (OUIS)\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50068053819625,"sku":"Adafruit-QT-Py-SAMD21","price":14.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/12015801-samd3.jpg?v=1769271453"},{"product_id":"esp32-development-board","title":"ESP32 Development Board 30-pin","description":"\u003cp\u003eA versatile, affordable dual-core microcontroller with integrated \u003cstrong\u003e2.4GHz WiFi and Bluetooth\u003c\/strong\u003e — the \u003cstrong\u003eESP32-WROOM-32\u003c\/strong\u003e is a go-to board for IoT, wearables, and automation projects. Featured in several of our Tinker Kits!\u003c\/p\u003e\n\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/fa1c9978-NIK0268.jpg?v=1769271461\" alt=\"ESP32 board used in a Tinker Kit project\"\u003e\u003c\/p\u003e\n\n\u003cp\u003eWe use PlatformIO for uploading — see our video for getting up and running in under a minute:\u003c\/p\u003e\n\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/AHEFQPdXZZA?si=zyG3au74nY1yu0-4\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcessor: Dual-core Xtensa LX6, up to 240MHz\u003c\/li\u003e\n\u003cli\u003eWireless: 2.4GHz WiFi (AP, STA, AP+STA) + Bluetooth\u003c\/li\u003e\n\u003cli\u003eBuilt-in antenna, RF balun, power amplifier, noise filters\u003c\/li\u003e\n\u003cli\u003eUltra-low power — TSMC 40nm technology\u003c\/li\u003e\n\u003cli\u003eSupports LWIP, FreeRTOS, Lua, Arduino, MicroPython, PlatformIO\u003c\/li\u003e\n\u003cli\u003e30-pin form factor\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWant a 38-pin version with USB-C? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board-usb-c\"\u003eESP32 Development Board (USB-C) 38-pin\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eReady to build a touch wearable with live data? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-connecting-touch-wearable-with-live-data\"\u003eESP32 Connecting – Touch Wearable with Live Data\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eWant a compact ESP32-C3 instead? Check out the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/beetle-esp32-c3-risc-v-core-development-board-1\"\u003eBeetle ESP32-C3\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50068057260265,"sku":"30PIN-ESP32","price":11.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/esp32-30-pin-dev-board-front.jpg?v=1792691704"},{"product_id":"adafruit-flora","title":"Adafruit Flora V3","description":"\u003cp\u003eNote: \u003cstrong\u003eLIMITED \u003c\/strong\u003eITEM\u003c\/p\u003e\n\u003cp\u003eThe \u003cstrong\u003eAdafruit Flora V3\u003c\/strong\u003e is the go-to sewable microcontroller for wearable electronics — a 45mm round, Arduino-compatible board with \u003cstrong\u003e14 sewing tap pads\u003c\/strong\u003e designed to be stitched directly into garments. All components are flush to the PCB so they won't snag delicate fabrics.\u003c\/p\u003e\n\u003cp\u003eFlora can drive \u003cstrong\u003e50 NeoPixels directly\u003c\/strong\u003e from its onboard supply, or up to \u003cstrong\u003e500 with external 5V power\u003c\/strong\u003e. USB HID support means it can act as a keyboard or mouse — no extra hardware needed.\u003c\/p\u003e\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e14 sewing tap pads — data buses interleaved with power\/ground for clean conductive thread routing\u003c\/li\u003e\n\u003cli\u003eDrives 50 NeoPixels onboard, 500 with external 5V\u003c\/li\u003e\n\u003cli\u003eUSB HID — keyboard\/mouse emulation, no drivers needed\u003c\/li\u003e\n\u003cli\u003eOnboard RGB NeoPixel + 4 indicator LEDs\u003c\/li\u003e\n\u003cli\u003eJST battery connector (3.5–16V DC) — LiIon, LiPoly, LiFe, alkaline, NiMh\/NiCad\u003c\/li\u003e\n\u003cli\u003eOnboard power switch (2A FET) + 3.3V 250mA regulator\u003c\/li\u003e\n\u003cli\u003eReverse polarity protection — beginner-safe\u003c\/li\u003e\n\u003cli\u003eArduino IDE compatible (1.6.4+)\u003c\/li\u003e\n\u003cli\u003eMade in NYC by Adafruit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eSpecs\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSize: 45mm round × 7mm thick | Weight: 4.4g\u003c\/li\u003e\n\u003cli\u003ePinout: \u003ca href=\"https:\/\/learn.adafruit.com\/getting-started-with-flora\/flora-pinout-diagram\" target=\"_blank\"\u003eAdafruit Flora Pinout Diagram\u003c\/a\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWant a smaller sewable board? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/adafruit-gemma-m0-sewable-microcontroller\"\u003eAdafruit Gemma M0\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eNeed a JST wiring adapter? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/flora-sewable-3-pin-jst-wiring-adapter-1\"\u003eFlora Sewable 3-Pin JST Wiring Adapter\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eBuilding a touch input wearable? Check out the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/open-universal-input-sleeve-ouis\"\u003eOpen Universal Input Sleeve (OUIS)\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":50068058439913,"sku":"FLORA-V3","price":26.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Boardflora.jpg?v=1779379339"},{"product_id":"adafruit-gemma-m0-sewable-microcontroller","title":"Adafruit Gemma M0 Sewable Microcontroller","description":"\u003cp\u003eOne of my go-to boards for sewable wearable circuits — the \u003cstrong\u003eAdafruit Gemma M0\u003c\/strong\u003e packs serious power into a 28mm round board designed to be stitched directly into garments, accessories, and interactive wearables.\u003c\/p\u003e\n\n\u003cp\u003eThree large sew pads accept conductive thread or alligator clips, and the ATSAMD21 Cortex M0+ processor handles NeoPixels (8000+!), sensors, and CircuitPython with ease. Native USB means it shows up as a serial console, HID keyboard\/mouse, or CircuitPython drive — no drivers needed.\u003c\/p\u003e\n\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/pSXmlVV5ekM?si=PjApAV42PGZh3r6k\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProcessor: ATSAMD21E18, 32-bit Cortex M0+ @ 48MHz\u003c\/li\u003e\n\u003cli\u003eMemory: 256KB Flash, 32KB RAM\u003c\/li\u003e\n\u003cli\u003e3 × GPIO sew pads: analog input (12-bit), PWM, capacitive touch, I2C, Serial\u003c\/li\u003e\n\u003cli\u003eOne pad supports true analog audio output\u003c\/li\u003e\n\u003cli\u003eBuilt-in RGB DotStar LED\u003c\/li\u003e\n\u003cli\u003eNative USB — HID keyboard\/mouse, serial console, CircuitPython drive\u003c\/li\u003e\n\u003cli\u003eJST battery connector (3–6V input)\u003c\/li\u003e\n\u003cli\u003eReset + on\/off switches\u003c\/li\u003e\n\u003cli\u003eNeoPixel DMA support for buttery-smooth animations\u003c\/li\u003e\n\u003cli\u003eCircuitPython \u0026amp; Arduino IDE compatible\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eSpecs\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSize: 28mm round × 6.4mm thick\u003c\/li\u003e\n\u003cli\u003eWeight: 2.1g\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/JGI9nlzN0mI?si=ixfA0_Vu9v2z6ySP\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNeed a larger sewable board with more pins? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/adafruit-flora\"\u003eAdafruit Flora V3\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eWant a plug-in JST wiring solution? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/flora-sewable-3-pin-jst-wiring-adapter-1\"\u003eFlora Sewable 3-Pin JST Wiring Adapter\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eBuilding a touch input wearable? Check out the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/open-universal-input-sleeve-ouis\"\u003eOpen Universal Input Sleeve (OUIS)\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":50068058865897,"sku":"ADAFRUIT-GEMMA-M0","price":15.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/f9f30311-gemma3.jpg?v=1769271462"},{"product_id":"adafruit-qt-py-esp32-c3","title":"Adafruit ESP32-C3 QT Py WiFi Dev Board w STEMMA QT","description":"\u003cp\u003eOne of my favourite boards for wearable tech — the \u003cstrong\u003eAdafruit QT Py ESP32-C3\u003c\/strong\u003e packs WiFi, Bluetooth LE, and a chainable STEMMA QT I2C connector into a board barely larger than a postage stamp.\u003c\/p\u003e\n\n\u003cp\u003eThe \u003cstrong\u003eSTEMMA QT connector\u003c\/strong\u003e is the real star: plug in any compatible sensor or display with a cable — no soldering needed. Chain multiple I2C devices together for complex builds without the wiring headache. Compatible with SparkFun Qwiic and Seeed Grove (with adapter).\u003c\/p\u003e\n\n\u003cp\u003eThe board is \u003cstrong\u003eSeeed Xiao-compatible\u003c\/strong\u003e in size and pinout, with castellated pads for easy embedding into projects.\u003c\/p\u003e\n\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eESP32-C3 RISC-V 32-bit @ up to 160MHz, 4MB Flash, 400KB SRAM\u003c\/li\u003e\n\u003cli\u003eWiFi 802.11b\/g\/n (2.4GHz) + Bluetooth 5 LE \u0026amp; Mesh\u003c\/li\u003e\n\u003cli\u003eSTEMMA QT \/ Qwiic connector — chainable, solder-free I2C\u003c\/li\u003e\n\u003cli\u003eBuilt-in RGB NeoPixel LED\u003c\/li\u003e\n\u003cli\u003eUSB-C with built-in USB-to-Serial (not native USB — no HID\/MIDI\/MSC)\u003c\/li\u003e\n\u003cli\u003eBattery input pads (up to 6V, diode protected)\u003c\/li\u003e\n\u003cli\u003e13 GPIO: analog in, PWM, I2C, SPI, UART, I2S\u003c\/li\u003e\n\u003cli\u003eDeep sleep ~300µA | Light sleep ~500µA\u003c\/li\u003e\n\u003cli\u003eReset button + GPIO 9 boot button\u003c\/li\u003e\n\u003cli\u003eArduino IDE \u0026amp; MicroPython compatible\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eSpecs\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSize: 22.0 × 17.8 × 5.7mm | Weight: 2.1g\u003c\/li\u003e\n\u003cli\u003e3.3V regulator, 600mA peak output\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eNote\u003c\/h3\u003e\n\u003cp\u003eThe C3 uses a \u003cstrong\u003eRISC-V core\u003c\/strong\u003e (not Tensilica) and \u003cstrong\u003eBluetooth LE only\u003c\/strong\u003e (not Classic). CircuitPython support is basic and does not include BLE at this time. Not a drop-in replacement for ESP32 classic — think of it as a capable ESP8266 successor.\u003c\/p\u003e\n\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eComplete the plug-and-play experience with a \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/stemma-qt-qwiic-jst-sh-4-pin-cable-50mm-long-1\"\u003eSTEMMA QT \/ Qwiic Cable\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eWant the same tiny form factor without WiFi? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/qt-py-the-diminutive-dev-board-with-big-capabilities-adafruit-qt-py-samd21\"\u003eQT Py SAMD21\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eNeed onboard Li-ion charging? Check out the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/beetle-esp32-c3-risc-v-core-development-board-1\"\u003eBeetle ESP32-C3\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":50076293103849,"sku":"Adafruit-ESP32-C3-QT-Py","price":17.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Adafruit-ESP32-C3-QT-Py.jpg?v=1780516469"},{"product_id":"dfrobot-beetle-esp32-c3","title":"Beetle ESP32 - C3 (RISC-V Core Development Board)","description":"\u003cp\u003eBig features in a coin-sized package — the \u003cstrong\u003eBeetle ESP32-C3\u003c\/strong\u003e is one of the most capable compact boards for wearable and IoT projects. The standout feature: \u003cstrong\u003eonboard Li-ion battery charging\u003c\/strong\u003e, so you can power your project directly without extra modules.\u003c\/p\u003e\n\n\u003cp\u003eAt just \u003cstrong\u003e25 × 20.5 mm\u003c\/strong\u003e, it breaks out \u003cstrong\u003e13 IO ports\u003c\/strong\u003e, supports \u003cstrong\u003eWiFi and Bluetooth 5 (LE)\u003c\/strong\u003e, and can be programmed via Arduino IDE, MicroPython, ESP-IDF, C, or Python.\u003c\/p\u003e\n\n\u003ch3\u003eKey Features\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOnboard Li-ion charging (up to 400mA) — no extra charging module needed\u003c\/li\u003e\n\u003cli\u003eWiFi 802.11b\/g\/n (2.4GHz) + Bluetooth 5 LE \u0026amp; Mesh\u003c\/li\u003e\n\u003cli\u003eRISC-V 32-bit single-core @ 160MHz\u003c\/li\u003e\n\u003cli\u003e13 digital IO ports, 6-channel LED PWM, I2C, SPI, UART, I2S\u003c\/li\u003e\n\u003cli\u003eOnboard GDI connector for easy screen wiring\u003c\/li\u003e\n\u003cli\u003eIncludes expansion board for more power options\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eSpecifications\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOperating Voltage: 3.3V | Type-C \/ VIN Input: 5V DC\u003c\/li\u003e\n\u003cli\u003eSRAM: 400KB | Flash: 4MB | ROM: 384KB\u003c\/li\u003e\n\u003cli\u003eOperating Temp: -40 to 105°C\u003c\/li\u003e\n\u003cli\u003eSize: 25 × 20.5 mm\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eDocuments\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/wiki.dfrobot.com\/SKU_DFR0868_Beetle_ESP32_C3\" target=\"_blank\"\u003eProduct Wiki\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/dfimg.dfrobot.com\/nobody\/wiki\/43aa285c90c844ad2649f1d9851d52a1.pdf\" target=\"_blank\"\u003eDatasheet\u003c\/a\u003e\u003c\/li\u003e\n\u003cli\u003e\u003ca href=\"https:\/\/dfimg.dfrobot.com\/nobody\/wiki\/30b31d7cbf66fc9dbe38928552106295.pdf\" target=\"_blank\"\u003eHardware Schematics\u003c\/a\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eIn the box\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBeetle ESP32-C3 × 1\u003c\/li\u003e\n\u003cli\u003eExpansion Board × 1\u003c\/li\u003e\n\u003cli\u003e2.54mm 8P Single-row Pin Connector × 1\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eRelated products\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eNeed a sewable ESP32 for fabric projects? Try the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/beetle-esp32-microcontroller-sewable-1\"\u003eBeetle ESP32 Microcontroller [Sewable]\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eWant an even smaller C3 footprint? Check out the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-c3-supermini-development-board\"\u003eESP32 C3 SuperMini\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eWant built-in RGB LEDs for visual feedback? The \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/dazzling-awesome-esp32-c3-board-with-twinkling-rgb-lights\"\u003eDazzling ESP32 C3 with RGB Lights\u003c\/a\u003e is a fun option.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"DFRobot","offers":[{"title":"Default Title","offer_id":50076293071081,"sku":"Beetle-ESP32","price":12.65,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Beetle-ESP32-C3.jpg?v=1780516159"},{"product_id":"seeed-xiao-rp2040","title":"Seeed XIAO RP2040: Arduino, MicroPy","description":"\u003cp\u003eA great size board for creating wearable projects!\u003c\/p\u003e\n\u003cp\u003eThe XIAO RP2040 uses the \u003cstrong\u003eRaspberry Pi RP2040\u003c\/strong\u003e chip — the same chip as the Raspberry Pi Pico — in a tiny thumb-sized form factor (20 × 17.5 mm). Fully supports Arduino, MicroPython, and CircuitPython, so you can reuse libraries you already know.\u003c\/p\u003e\n\u003cp\u003eThe flat back (no components underneath) makes it breadboard-friendly and easy to mount on PCBs or stitch onto fabric carriers for e-textiles.\u003c\/p\u003e\n\u003ch2\u003eFeatures\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eProcessor:\u003c\/strong\u003e Dual-core ARM Cortex-M0+, up to 133 MHz\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eMemory:\u003c\/strong\u003e 264 KB SRAM, 2 MB onboard flash\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eI\/O:\u003c\/strong\u003e 11 digital pins, 4 analog inputs, 11 PWM channels\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eInterfaces:\u003c\/strong\u003e I2C, SPI, UART, SWD debug pads\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSize:\u003c\/strong\u003e 20 × 17.5 mm\u003c\/li\u003e\n\u003cli\u003eBreadboard-friendly, SMD design — no components on the back\u003c\/li\u003e\n\u003cli\u003eTensorFlow Lite compatible for on-device ML\u003c\/li\u003e\n\u003cli\u003eSupports Arduino, MicroPython, and CircuitPython\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Seeed","offers":[{"title":"Default Title","offer_id":50076296446185,"sku":"Seeed-XIAO-RP2040","price":8.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/656da41f-b93882_c122692866d0462f8904a48277899a36_mv2.png?v=1769545538"},{"product_id":"adafruit-esp32-s2-qt-py-wifi-dev-board-w-stemma-qt","title":"Adafruit ESP32-S2 QT Py WiFi Dev Board w STEMMA QT","description":"\u003cp\u003eI love this board - the size and features make it a power house for wearables!\u003c\/p\u003e\n\u003cp\u003eThe ESP32-S2 is a highly-integrated, low-power, 2.4 GHz Wi-Fi System-on-Chip (SoC) solution that now has \u003cstrong\u003ebuilt-in native USB\u003c\/strong\u003e as well as some other interesting new technologies like Time of Flight distance measurements. With its state-of-the-art power and RF performance, this SoC is an ideal choice for a wide variety of application scenarios relating to the Internet of Things (IoT), wearable electronics, and smart homes.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003ePlease note \u003c\/strong\u003ethe QT Py ESP32-S2 has a single-core 240 MHz chip, so it won't be as fast as ESP32's with dual-core. Also, there is no Bluetooth support. However, we are super excited about the ESP32-S2's native USB which unlocks a lot of capabilities for advanced interfacing!\u003c\/p\u003e\n\u003cp\u003eThis ESP32-S2 mini-module we are using on the QT Py comes with 4 MB flash and 2 MB PSRAM so you can buffer massive JSON files for parsing!\u003c\/p\u003e\n\u003cp\u003eOLEDs! Inertial Measurement Units! Sensors a-plenty. All plug-and-play thanks to the innovative chainable design: SparkFun Qwiic-compatible STEMMA QT connectors for the I2C bus so you don't even need to solder! Just plug in a compatible cable and attach it to your MCU of choice, and you’re ready to load up some software and measure some light. Seeed Grove I2C boards will also work with this adapter cable.\u003c\/p\u003e\n\u003cp\u003ePinout and shape are Seeed Xiao compatible, with castellated pads so you can solder it flat to a PCB. In addition to the QT connector, we also added an \u003cstrong\u003eRGB NeoPixel\u003c\/strong\u003e (with controllable power pin to allow for ultra-low-power usage), \u003cstrong\u003ea reset button\u003c\/strong\u003e (great for restarting your program or entering the bootloader) and a button on GPIO 0 for entering the ROM bootloader or for user input\u003c\/p\u003e\n\u003cp\u003eRuns Arduino like a dream, and CircuitPython projects are fantastically fun.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eSame size, form-factor, and pin-out as Seeed Xiao\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB Type C connector \u003c\/strong\u003e- If you have only Micro B cables, this adapter will come in handy!\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eESP32-S2 240MHz Tensilica processor \u003c\/strong\u003e- the next generation of ESP32, now with native USB so it can act like a keyboard\/mouse, MIDI device, disk drive, etc!\u003c\/li\u003e\n\u003cli\u003e4 MB Flash \u0026amp; 2 MB PSRAM\u003c\/li\u003e\n\u003cli\u003eNative USB supported by every OS - can be used in Arduino or CircuitPython as USB serial console, MIDI, Keyboard\/Mouse HID, even a little disk drive for storing Python scripts.\u003c\/li\u003e\n\u003cli\u003eCan be used with \u003cstrong\u003eArduino IDE\u003c\/strong\u003e or \u003cstrong\u003eCircuitPython\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBuilt-in RGB NeoPixel LED\u003c\/strong\u003e with power control to reduce quiescent power in deep sleep\u003c\/li\u003e\n\u003cli\u003eBattery input pads on underside with diode protection for external battery packs up to 6V input\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e13 GPIO pins:\u003c\/strong\u003e\n\u003cul\u003e\n\u003cli\u003e11 on breakout pads, 2 more on QT connector\u003c\/li\u003e\n\u003cli\u003e10 x 12-bit analog inputs (SPI high speed pads do not have analog inputs)\u003c\/li\u003e\n\u003cli\u003e8-bit analog output DAC\u003c\/li\u003e\n\u003cli\u003ePWM outputs on any pin\u003c\/li\u003e\n\u003cli\u003eTwo I2C ports, one on the breakout pads, and another with STEMMA QT plug-n-play connector\u003c\/li\u003e\n\u003cli\u003eHardware UART\u003c\/li\u003e\n\u003cli\u003eHardware SPI on the high speed SPI peripheral pins\u003c\/li\u003e\n\u003cli\u003eHardware I2S on any pins\u003c\/li\u003e\n\u003cli\u003e5 x Capacitive Touch with no additional components required\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e3.3V regulator with \u003cstrong\u003e600mA peak output\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eLight sleep at 2~4mA\u003cstrong\u003e\u003cem\u003e, \u003c\/em\u003e\u003c\/strong\u003edeep sleep at ~70uA\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eReset switch \u003c\/strong\u003efor starting your project code over, boot 0 button for entering bootloader mode\u003c\/li\u003e\n\u003cli\u003e\u003cstrong\u003eReally really small\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":50076297887977,"sku":"QT-Py-WiFi","price":22.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Adafruit-ESP32-S2-QT-Py.jpg?v=1779739327"},{"product_id":"dfrobot-beetle-esp32-sewable","title":"Beetle ESP32 Microcontroller [Sewable]","description":"\u003cp\u003eThis little beetle can be sewn into your wearables!\u003c\/p\u003e\n\u003cp\u003eThe Beetle-ESP32 is only 35 × 34 mm in size — a simplified version of the FireBeetle-ESP32, specially designed for electronic engineering fans and DIY lovers. It has large-scale gold-plated I\/O ports that are easy to twist wire onto or sew directly into clothing without soldering.\u003c\/p\u003e\n\u003cp\u003eNote: the holes are small, so you do need a thin needle. It can also be soldered with wires that you sew into your circuits.\u003c\/p\u003e\n\u003ch2\u003eFeatures\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCompact: 35 × 34 mm\u003c\/li\u003e\n\u003cli\u003eGold-plated I\/O ports — easy to sew or twist wire onto, no soldering required\u003c\/li\u003e\n\u003cli\u003eHoneycomb-style gold-plated power interfaces\u003c\/li\u003e\n\u003cli\u003eIntegrated Wi-Fi and Bluetooth\u003c\/li\u003e\n\u003cli\u003eProgram directly via Micro USB — no programmer needed\u003c\/li\u003e\n\u003cli\u003e4 analog ports (A0–A3), 4 digital ports (D2, D3, D4, D7)\u003c\/li\u003e\n\u003cli\u003eI2C and UART interfaces\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003eSpecifications\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eProcessor:\u003c\/strong\u003e Tensilica LX6 dual-core, 240 MHz\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eSRAM:\u003c\/strong\u003e 520 KB\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFlash:\u003c\/strong\u003e 16 Mbit\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB supply voltage:\u003c\/strong\u003e 5.0 V\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eVIN supply voltage:\u003c\/strong\u003e DC 3.5–6.5 V\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eWi-Fi:\u003c\/strong\u003e 802.11 b\/g\/n, 2.4–2.5 GHz\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBluetooth:\u003c\/strong\u003e v4.2 BR\/EDR\/BLE\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eClock:\u003c\/strong\u003e 40 MHz crystal + 32.768 kHz crystal\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDimensions:\u003c\/strong\u003e 35 × 34 mm\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"DFRobot","offers":[{"title":"Default Title","offer_id":50076298313961,"sku":"Beetle-ESP32-SEWABLE-MICROCONTROLLER","price":13.99,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/BeetleESP32.jpg?v=1779737701"},{"product_id":"adafruit-circuit-playground-express","title":"Adafruit Circuit Playground Express","description":"\u003cp\u003eThis is an amazing starter board. Packed full of sensors, it’s easy to get up and running! I’ve used it for many projects and love it — it’s a great starter board and you can create fun wearables with it.\u003c\/p\u003e\n\u003cp\u003eI’ve made a \u003cstrong\u003ehat with temperature sensing\u003c\/strong\u003e, servo-moving axial fan, and UV light sensor readings.\u003c\/p\u003e\n\u003cp\u003eI’ve also made a ‘\u003cstrong\u003etouch together\u003c\/strong\u003e’ project — you can learn how to make that and others in \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/the-ultimate-guide-to-informed-wearables\"\u003e\u003cstrong\u003eThe Ultimate Guide to Informed Wearables\u003c\/strong\u003e\u003c\/a\u003e — that plays music when two people wear sleeves and touch their arms together. It uses conductive fabrics with the Circuit Playground’s capacitive touch pads.\u003c\/p\u003e\n\u003cp\u003e\u003cimg alt=\"Open Universal Input Sleeve showing conductive fabric touch project with Circuit Playground Express\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/d9f940c8-conductive43.webp?v=1769271461\"\u003e\u003c\/p\u003e\n\u003ch2\u003eDescription\u003c\/h2\u003e\n\u003cp\u003e\u003cstrong\u003eCircuit Playground Express\u003c\/strong\u003e is the next step towards a perfect introduction to electronics and programming. We’ve taken the original \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/adafruit-circuit-playground-classic\"\u003eCircuit Playground Classic\u003c\/a\u003e and made it even better — not only did we pack in even more sensors, we also made it even easier to program.\u003c\/p\u003e\n\u003cp\u003e\u003ciframe width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/VN8haRtufno?si=sSyFEaTmSiqtWrCA\" title=\"YouTube video player\"\u003e\u003c\/iframe\u003e\u003c\/p\u003e\n\u003cp\u003eStart your journey with \u003ca href=\"https:\/\/learn.adafruit.com\/makecode\"\u003e\u003cstrong\u003eMicrosoft MakeCode\u003c\/strong\u003e block-based or JavaScript programming\u003c\/a\u003e. Then use the same board to try \u003cstrong\u003eCircuitPython\u003c\/strong\u003e, with the Python interpreter running right on the Express. As you progress, advance to \u003cstrong\u003eArduino IDE\u003c\/strong\u003e, which has full support of all the hardware down to the low level. You can even use \u003cstrong\u003eCode.org CS Discoveries\u003c\/strong\u003e to learn all about coding right in your browser!\u003c\/p\u003e\n\u003cp\u003e\u003ca href=\"https:\/\/learn.adafruit.com\/adafruit-circuit-playground-express\"\u003e\u003cstrong\u003eCheck out Adafruit’s detailed guide with a tour of Circuit Playground Express and details on getting started using MakeCode, CircuitPython, Code.org CS Discoveries or Arduino!\u003c\/strong\u003e\u003c\/a\u003e\u003c\/p\u003e\n\u003cp\u003eBecause you can program the same board in 4 different ways, the Express has great value and re-usability. From beginners to experts, Circuit Playground Express has something for everyone.\u003c\/p\u003e\n\u003cp\u003eThe board is round and has alligator-clip pads around it so you don’t have to solder or sew to make it work. You can power it from USB, a AAA battery pack, or a LiPoly battery (for advanced users). Built-in USB means you plug it in to program it and it just shows up — no special cable or adapter required.\u003c\/p\u003e\n\u003ch2\u003eWhat’s Built In\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e10 × mini NeoPixels, each one can display any colour\u003c\/li\u003e\n\u003cli\u003e1 × Motion sensor (LIS3DH triple-axis accelerometer with tap \u0026amp; free-fall detection)\u003c\/li\u003e\n\u003cli\u003e1 × Temperature sensor (thermistor)\u003c\/li\u003e\n\u003cli\u003e1 × Light sensor (phototransistor) — can also act as colour sensor and pulse sensor\u003c\/li\u003e\n\u003cli\u003e1 × Sound sensor (MEMS microphone)\u003c\/li\u003e\n\u003cli\u003e1 × Mini speaker with class D amplifier (7.5 mm magnetic speaker\/buzzer)\u003c\/li\u003e\n\u003cli\u003e2 × Push buttons, labelled A and B\u003c\/li\u003e\n\u003cli\u003e1 × Slide switch\u003c\/li\u003e\n\u003cli\u003eInfrared receiver and transmitter — can receive\/transmit remote control codes and send messages between Circuit Playground Expresses; can also act as proximity sensor\u003c\/li\u003e\n\u003cli\u003e8 × alligator-clip friendly I\/O pins (I2C, UART, 8 analog inputs, multiple PWM outputs)\u003c\/li\u003e\n\u003cli\u003e7 pads as capacitive touch inputs + 1 true analog output\u003c\/li\u003e\n\u003cli\u003eGreen “ON” LED and red “#13” LED for basic blinking\u003c\/li\u003e\n\u003cli\u003eReset button\u003c\/li\u003e\n\u003cli\u003eATSAMD21 ARM Cortex M0 processor @ 3.3 V \/ 48 MHz\u003c\/li\u003e\n\u003cli\u003e2 MB SPI Flash storage (primarily for CircuitPython code and libraries)\u003c\/li\u003e\n\u003cli\u003eMicroUSB port for programming and debugging (can act as serial port, keyboard, mouse, joystick, or MIDI)\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Adafruit","offers":[{"title":"Default Title","offer_id":50078241325289,"sku":"ADAFRUIT-CPX","price":39.99,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/CPX1.jpg?v=1769632590"},{"product_id":"esp32-development-board-usb-c","title":"ESP32 Development Board (USB-C) 38pin","description":"\u003cp\u003e🚀 \u003cstrong\u003eESP32 Development Board – High Performance, Low Power!\u003c\/strong\u003e 🚀\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eThis is the \u003cstrong\u003e38-pin\u003c\/strong\u003e version with \u003cstrong\u003eUSB-C\u003c\/strong\u003e connection.\u003c\/li\u003e\n\u003cli\u003eWe also stock a \u003cstrong\u003e\u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board\"\u003e30-pin version\u003c\/a\u003e\u003c\/strong\u003e with mini USB.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eTake your projects to the next level with the ESP32, a \u003cstrong\u003epowerful, dual-core microcontroller\u003c\/strong\u003e with \u003cstrong\u003eintegrated Wi-Fi and Bluetooth\u003c\/strong\u003e. Designed for \u003cstrong\u003eultra-low power consumption\u003c\/strong\u003e, this compact board comes with an \u003cstrong\u003eintegrated antenna\u003c\/strong\u003e, RF balun, power amplifier, noise filters, and power management module—all in a small form factor, making it perfect for IoT, smart devices, and embedded systems.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eUltra-Low Power Consumption:\u003c\/strong\u003e With a sleep current under 5µA, the ESP32 is ideal for battery-powered projects.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFreeRTOS with LWIP \u0026amp; TLS 1.2:\u003c\/strong\u003e Runs on FreeRTOS with LWIP and hardware-accelerated TLS 1.2 for secure IoT solutions.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eHaving the \u003cstrong\u003epinout diagram\u003c\/strong\u003e is a great way to get started with your builds. Plan out what components, sensors, and outputs you want to connect, and check their pin numbers before you build.\u003c\/p\u003e\n\u003cp\u003e I always make a prototype on a breadboard first, and once it works, I move it to a more permanent project build!\u003c\/p\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/b90b5b13-dd50-4fbd-80b5-1296a4ef4f72.png?v=1792094481\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50313046425833,"sku":"7986675","price":15.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/esp32-38-pin-usb-c-dev-board.png?v=1792691897"},{"product_id":"terminal-adaptor-for-38-pin-esp32-development-board","title":"Terminal Adaptor for 38-pin ESP32 Development Board","description":"\u003cp data-end=\"107\" data-start=\"41\"\u003eHelp with using your \u003cstrong data-end=\"102\" data-start=\"44\"\u003eESP32 \u003c\/strong\u003eDevelopment Board – \u003cstrong data-end=\"102\" data-start=\"44\"\u003e38-pn\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli data-end=\"107\" data-start=\"41\"\u003e\u003cstrong\u003eThis works with the \u003ca rel=\"noopener\" title=\"esp32 38-pin\" href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board-usb-c\" target=\"_blank\"\u003e38-pin version\u003c\/a\u003e with USB C connection.\u003c\/strong\u003e\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003c!--StartFragment --\u003e\u003c\/p\u003e\n\u003cp\u003eGive your ESP32 a little upgrade in manners — because sometimes these boards just \u003cem\u003edo not\u003c\/em\u003e want to sit nicely on a breadboard. If you’ve ever fought with wobbly pins, awkward spacing, or wires that pop out the moment you breathe near them, this little adapter is about to become your new best friend.\u003c\/p\u003e\n\u003cp\u003eDesigned for the \u003cstrong\u003e38‑pin ESP32 with USB‑C\u003c\/strong\u003e, this terminal adapter turns your board into a clean, sturdy, easy‑to‑use prototyping setup. Just plug your ESP32 into the headers, tighten the screws, and suddenly every pin is accessible, organized, and ready for action.\u003c\/p\u003e\n\u003cp\u003ePerfect for wearables, sensors, robotics, and any project where you want your wiring to stay put instead of staging a dramatic escape.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eWhy You’ll Love It\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eWorks with \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board-usb-c\"\u003e\u003cstrong\u003e38‑pin ESP32 USB‑C boards\u003c\/strong\u003e\u003c\/a\u003e\n\u003c\/li\u003e\n\u003cli\u003eMakes breadboarding \u003cem\u003eso\u003c\/em\u003e much easier\u003c\/li\u003e\n\u003cli\u003eScrew terminals keep your wires secure\u003c\/li\u003e\n\u003cli\u003eGreat for prototyping, testing, and learning\u003c\/li\u003e\n\u003cli\u003eNo more bent pins or loose jumper wires\u003c\/li\u003e\n\u003cli\u003eA must‑have tool for your maker kit\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eJust loosen the screw, slide your wire in, tighten it gently — and boom, solid connection. No fuss, no drama, just clean prototyping bliss.\u003c\/p\u003e\n\u003cp\u003e\u003c!--EndFragment --\u003e\u003c\/p\u003e\n\u003cp\u003e \u003c\/p\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50360921260265,"sku":"7986435","price":9.95,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Screenshot_2026-02-14_094832.png?v=1771077222"},{"product_id":"esp32-s3-supermini-development-board","title":"ESP32 S3 SuperMini Development Board","description":"\u003cp\u003eThis is a great board for portable projects - the size and features make it a powerhouse for wearables!\u003c\/p\u003e\n\u003cp\u003e🌟 \u003cstrong\u003eESP32‑S3 SuperMini — Tiny Board, Mighty Brain!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eSay hello to your new favorite microcontroller: the \u003cstrong\u003eESP32‑S3 SuperMini\u003c\/strong\u003e!\u003cbr\u003eThis pint-sized powerhouse packs \u003cstrong\u003e\u003cspan style=\"color: rgb(43, 0, 255);\"\u003edual\u003c\/span\u003e-core speed\u003c\/strong\u003e, \u003cstrong\u003eWi-Fi + Bluetooth 5\u003c\/strong\u003e, and \u003cstrong\u003enative USB‑C\u003c\/strong\u003e into a board smaller than a postage stamp.\u003c\/p\u003e\n\u003cp\u003eWhether you're building a wearable, automating your home, or teaching your robot to dance, this board delivers serious performance in a seriously small package.\u003c\/p\u003e\n\u003ch2\u003e🧠 Why You'll Love It\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eESP32‑S3FH4R2 chip\u003c\/strong\u003e with 240 MHz dual-core CPU\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e4 MB Flash + 2 MB PSRAM\u003c\/strong\u003e for smooth multitasking\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUSB‑C programmable\u003c\/strong\u003e — no USB‑to‑UART chip needed\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBLE 5.0 + Wi‑Fi\u003c\/strong\u003e for wireless wizardry\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eAI‑ready\u003c\/strong\u003e with vector instructions for ML projects\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eUltra‑low power sleep modes\u003c\/strong\u003e for battery‑friendly builds\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003ePin Highlights\u003c\/h2\u003e\n\u003cul\u003e\n\u003cli\u003e20+ GPIO pins for sensors, LEDs, displays, and more\u003c\/li\u003e\n\u003cli\u003eI²C, SPI, UART, PWM, ADC, DAC — it's all here\u003c\/li\u003e\n\u003cli\u003eBootloader access via GPIO0\u003c\/li\u003e\n\u003cli\u003eUSB‑OTG support for HID, MSC, and more\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eThe \u003cstrong\u003eESP32‑S3 SuperMini\u003c\/strong\u003e is an ultra‑compact development board based on the \u003cstrong\u003eESP32‑S3FH4R2\u003c\/strong\u003e microcontroller. It offers \u003cstrong\u003eWi‑Fi\u003c\/strong\u003e, \u003cstrong\u003eBluetooth 5 (LE)\u003c\/strong\u003e, \u003cstrong\u003eUSB‑C native programming\u003c\/strong\u003e, and a generous set of GPIO in a form factor similar to the ESP32‑C3 SuperMini but with significantly more performance and features.\u003c\/p\u003e\n\u003cp\u003e🎓 Need help getting started? We've got tutorials, pinout diagrams, and example code ready to roll.\u003c\/p\u003e\n\u003cp\u003e🛠️ Want to bundle with sensors, displays, or headers? Just ask!\u003c\/p\u003e\n\u003ch2\u003eWhy Makers Choose the ESP32‑S3 SuperMini\u003c\/h2\u003e\n\u003cp\u003eBecause it's tiny, capable, affordable, and ridiculously fun to build with. You get modern dual-core architecture, secure wireless connectivity, and flexible I\/O—all in a board that fits on your fingertip.\u003c\/p\u003e\n\u003ch3\u003ePower Information\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eInput voltage:\u003c\/strong\u003e 5 V via USB‑C\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e3.3 V regulator:\u003c\/strong\u003e Onboard\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTypical current:\u003c\/strong\u003e 80–240 mA depending on Wi‑Fi usage\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eDeep sleep:\u003c\/strong\u003e ~20–30 µA (chip‑level; board may vary)\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50589493100777,"sku":"ESP32-S3-SUPERMINI","price":11.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/supermini2.webp?v=1772995389"},{"product_id":"esp32-c3-supermini-development-board","title":"Black ESP32 C3 SuperMini Development Board","description":"\u003cp\u003e\u003c!--StartFragment --\u003e\u003c\/p\u003e\n\u003cp\u003e🌟 \u003cstrong\u003eESP32‑C3 SuperMini — Tiny Board, Mighty Power!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe thumb‑sized WiFi + Bluetooth 5 IoT powerhouse for makers, tinkerers, and wearable‑tech dreamers.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003eIf you love squeezing maximum capability into the smallest possible footprint, the \u003cstrong\u003eESP32‑C3 SuperMini\u003c\/strong\u003e is about to become your new favourite board. Built around Espressif’s efficient \u003cstrong\u003e32‑bit RISC‑V CPU\u003c\/strong\u003e, this little beast delivers serious computing power, ultra‑low energy consumption, and rock‑solid wireless performance—all in a board barely bigger than a postage stamp.\u003c\/p\u003e\n\u003ch2\u003e\u003cstrong\u003eWhy You’ll Love It\u003c\/strong\u003e\u003c\/h2\u003e\n\u003ch3\u003e\u003cstrong\u003e⚡ Powerful RISC‑V Performance\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eESP32‑C3 single‑core RISC‑V CPU\u003c\/li\u003e\n\u003cli\u003eUp to \u003cstrong\u003e160 MHz\u003c\/strong\u003e clock speed\u003c\/li\u003e\n\u003cli\u003eBuilt‑in \u003cstrong\u003eFPU\u003c\/strong\u003e for smooth 32‑bit floating‑point operations\u003c\/li\u003e\n\u003cli\u003e400 KB SRAM + 384 KB ROM + \u003cstrong\u003e4 MB Flash\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eDual Wireless Connectivity\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eWiFi 802.11 b\/g\/n (2.4 GHz)\u003c\/strong\u003e\n\u003cul\u003e\n\u003cli\u003eStation, SoftAP, SoftAP+Station, and hybrid modes\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBluetooth 5.0 (LE)\u003c\/strong\u003e for modern low‑energy peripherals\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eUltra‑Low Power Ready\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeep‑sleep consumption around \u003cstrong\u003e43 μA\u003c\/strong\u003e\u003cbr\u003ePerfect for battery‑powered and always‑on IoT devices.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eRich I\/O for Maximum Creativity\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e11× GPIO\u003c\/strong\u003e (all PWM‑capable)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e4× ADC\u003c\/strong\u003e inputs\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e2× UART\u003c\/strong\u003e, \u003cstrong\u003e1× I2C\u003c\/strong\u003e, \u003cstrong\u003e1× SPI\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eOnboard \u003cstrong\u003eblue LED\u003c\/strong\u003e on GPIO8\u003c\/li\u003e\n\u003cli\u003eHandy \u003cstrong\u003eReset\u003c\/strong\u003e + \u003cstrong\u003eBootloader\u003c\/strong\u003e buttons\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eHardware‑Level Security\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAES‑128\/256\u003c\/li\u003e\n\u003cli\u003eRSA\u003c\/li\u003e\n\u003cli\u003eHash acceleration\u003c\/li\u003e\n\u003cli\u003eDigital signature\u003c\/li\u003e\n\u003cli\u003eSecure boot\u003cbr\u003eYour projects stay safe from the ground up.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003e\u003cstrong\u003eUltra‑Compact Design\u003c\/strong\u003e\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eJust \u003cstrong\u003e22.52 × 18 mm\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003ePerfect for wearables, embedded projects, and tight enclosures\u003c\/li\u003e\n\u003cli\u003eClassic “SuperMini” layout for easy prototyping\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch2\u003e\u003cstrong\u003eWhy Makers Choose the ESP32‑C3 SuperMini\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cp\u003eBecause it’s tiny, capable, affordable, and ridiculously fun to build with. You get modern RISC‑V architecture, secure wireless connectivity, and flexible I\/O—all in a board that fits on your fingertip. It’s the ideal “always keep one in your drawer” microcontroller.\u003c\/p\u003e\n\u003cp\u003eOr keep for on-the-move projects! \u003c!--EndFragment --\u003e\u003c\/p\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50752797409513,"sku":"ESP32-C3-SUPERMINI","price":9.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/BlackSuperMiniESP32C3.png?v=1779332159"},{"product_id":"esp32-c3-supermini-development-board-pink","title":"ESP32 C3 SuperMini Development Board (Pink)","description":"\u003cp\u003e🌟 \u003cstrong\u003eESP32‑C3 SuperMini — Tiny Board, Mighty Power in PINK 🩷!\u003c\/strong\u003e\u003c\/p\u003e\u003cp\u003e\u003cstrong\u003eThe thumb‑sized WiFi + Bluetooth 5 IoT powerhouse for makers, tinkerers, and wearable‑tech dreamers.\u003c\/strong\u003e\u003c\/p\u003e\u003cp\u003eIf you love squeezing maximum capability into the smallest possible footprint, the \u003cstrong\u003eESP32‑C3 SuperMini\u003c\/strong\u003e is about to become your new favourite board. Built around Espressif’s efficient \u003cstrong\u003e32‑bit RISC‑V CPU\u003c\/strong\u003e, this little beast delivers serious computing power, ultra‑low energy consumption, and rock‑solid wireless performance—all in a board barely bigger than a postage stamp.\u003c\/p\u003e\u003cp\u003eUsing a SuperMini board is a great way to miniaturise your circuits, making projects like the to-do list build possible.\u003c\/p\u003e\u003ch2\u003e\u003cstrong\u003eWhy You’ll Love It\u003c\/strong\u003e\u003c\/h2\u003e\u003ch3\u003e\u003cstrong\u003e⚡ Powerful RISC‑V Performance\u003c\/strong\u003e\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eESP32‑C3 single‑core RISC‑V CPU\u003c\/li\u003e\n\u003cli\u003eUp to \u003cstrong\u003e160 MHz\u003c\/strong\u003e clock speed\u003c\/li\u003e\n\u003cli\u003eBuilt‑in \u003cstrong\u003eFPU\u003c\/strong\u003e for smooth 32‑bit floating‑point operations\u003c\/li\u003e\n\u003cli\u003e400 KB SRAM + 384 KB ROM + \u003cstrong\u003e4 MB Flash\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003e\u003cstrong\u003eDual Wireless Connectivity\u003c\/strong\u003e\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eWiFi 802.11 b\/g\/n (2.4 GHz)\u003c\/strong\u003e\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBluetooth 5.0 (LE)\u003c\/strong\u003e for modern low‑energy peripherals\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003e\u003cstrong\u003eUltra‑Low Power Ready\u003c\/strong\u003e\u003c\/h3\u003e\u003cul\u003e\u003cli\u003eDeep‑sleep consumption around \u003cstrong\u003e43 μA\u003c\/strong\u003e, perfect for battery‑powered and always‑on IoT devices.\u003c\/li\u003e\u003c\/ul\u003e\u003ch3\u003e\u003cstrong\u003eRich I\/O for Maximum Creativity\u003c\/strong\u003e\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003e11× GPIO\u003c\/strong\u003e (all PWM‑capable)\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e4× ADC\u003c\/strong\u003e inputs\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003e2× UART\u003c\/strong\u003e, \u003cstrong\u003e1× I2C\u003c\/strong\u003e, \u003cstrong\u003e1× SPI\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003eOnboard \u003cstrong\u003eblue LED\u003c\/strong\u003e on GPIO8\u003c\/li\u003e\n\u003cli\u003eHandy \u003cstrong\u003eReset\u003c\/strong\u003e + \u003cstrong\u003eBootloader\u003c\/strong\u003e buttons\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003e\u003cstrong\u003eHardware‑Level Security\u003c\/strong\u003e\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eAES‑128\/256\u003c\/li\u003e\n\u003cli\u003eRSA\u003c\/li\u003e\n\u003cli\u003eHash acceleration\u003c\/li\u003e\n\u003cli\u003eDigital signature\u003c\/li\u003e\n\u003cli\u003eSecure boot\u003c\/li\u003e\n\u003c\/ul\u003e\u003ch3\u003e\u003cstrong\u003eUltra‑Compact Design\u003c\/strong\u003e\u003c\/h3\u003e\u003cul\u003e\n\u003cli\u003eJust \u003cstrong\u003e22.52 × 18 mm\u003c\/strong\u003e\n\u003c\/li\u003e\n\u003cli\u003ePerfect for wearables, embedded projects, and tight enclosures\u003c\/li\u003e\n\u003cli\u003eClassic “SuperMini” layout for easy prototyping\u003c\/li\u003e\n\u003c\/ul\u003e\u003cp\u003ePrefer a classic finish? See the \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/black-esp32-c3-supermini-development-board\"\u003eBlack ESP32-C3 SuperMini Development Board\u003c\/a\u003e.\u003c\/p\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":50896525918441,"sku":"ESP32-C3-SUPERMINI-PNK","price":9.75,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/MainESP32C3SuperMiniPink.png?v=1779331591"},{"product_id":"esp32-development-board-30-pin-usb-c","title":"ESP32 Development Board 30-Pin (USB-C)","description":"\u003cp\u003e\u003cstrong\u003e[free pin out card with your purchase] \u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe classic ESP32 dev board, now with USB-C.\u003c\/strong\u003e The same beginner-friendly WROOM-32 board used across countless tutorials — dual-core 240MHz processor, WiFi and Bluetooth built in — in the compact 30-pin layout that leaves a row of breadboard space free on each side. USB-C means the cable you already have finally fits.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eESP32-WROOM-32 module: dual-core 240MHz, WiFi 2.4GHz + Bluetooth\u003c\/li\u003e\n\u003cli\u003eUSB-C connector for power and programming\u003c\/li\u003e\n\u003cli\u003e30-pin layout — narrower than the 38-pin, easier to breadboard\u003c\/li\u003e\n\u003cli\u003eBOOT and EN buttons on board\u003c\/li\u003e\n\u003cli\u003eWorks with PlatformIO, Arduino IDE, ESP-IDF, and MicroPython\u003c\/li\u003e\n\u003cli\u003eGreat for IoT, wearables prototyping, displays, sensors, and LED projects\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eYou'll need a USB-C data cable\u003c\/strong\u003e to program the board. Many USB-C cables are charge-only and will not work — if you're not sure, grab our \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/usb-c-data-cable-1\"\u003eUSB-C data cable\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003eDepending on the batch, the USB-serial chip is CH340 or CP2102 — both use free, widely available drivers if your computer doesn't detect the board automatically.\u003c\/li\u003e\n\u003cli\u003eHeader pins come pre-soldered.\u003c\/li\u003e\n\u003cli\u003eFeeling bold? This board also comes in a limited-run \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/pink-esp32-wroom-32e-development-board-30-pin-usb-c\"\u003epink edition\u003c\/a\u003e with the newer WROOM-32E module.\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003e\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Screenshot_2026-10-20_152030.png?v=1792525340\" alt=\"\"\u003e\u003c\/p\u003e\n\u003cp\u003eGetting started and want more information about \u003ca href=\"https:\/\/www.tinkertailor.ca\/blogs\/news\/ultimate-guide-esp32-dev-module-pins\"\u003epin out dfdiagrams\u003c\/a\u003e? Check out out post about it!\u003c\/p\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":51514698432745,"sku":"ESP32-30PIN-USBC","price":14.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/ESP32-USBC-30.png?v=1783980445"},{"product_id":"pink-esp32-wroom-32e-development-board-30-pin-usb-c","title":"Pink ESP32-WROOM-32E Development Board 30-Pin (USB-C)","description":"\u003cp\u003e\u003cstrong\u003eGrab the 'blush' board while they are in stock!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe classic ESP32, dressed for fashion tech.\u003c\/strong\u003e A pink-PCB ESP32 development board with gold detailing — the same dual-core WiFi + Bluetooth workhorse behind countless tutorials, on a board your project won't want to hide. Built on the ESP32-WROOM-32E, the newest revision of the classic module, with USB-C and the compact 30-pin layout.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eESP32-WROOM-32E module — the current-generation revision Espressif recommends for new designs: V3 silicon, improved stability, 4MB flash\u003c\/li\u003e\n\u003cli\u003eDual-core 240MHz, WiFi 2.4GHz + Bluetooth\u003c\/li\u003e\n\u003cli\u003eUSB-C connector for power and programming\u003c\/li\u003e\n\u003cli\u003e30-pin layout — narrower than the 38-pin, easier to breadboard\u003c\/li\u003e\n\u003cli\u003eBOOT and EN buttons on board\u003c\/li\u003e\n\u003cli\u003eFully code-compatible with every ESP32 WROOM tutorial — works with PlatformIO, Arduino IDE, ESP-IDF, and MicroPython\u003c\/li\u003e\n\u003cli\u003eA limited run — when they're gone, they're gone\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eHeaders included, unsoldered\u003c\/strong\u003e — two 15-pin strips ship in the bag, ready for you to solder in the orientation your project needs. An easy soldering job, and a chance to keep the board low-profile for wearables if you'd rather solder wires directly.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYou'll need a USB-C data cable\u003c\/strong\u003e to program the board. Many USB-C cables are charge-only and will not work — if you're not sure, grab our \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/usb-c-data-cable-1\"\u003eUSB-C data cable\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003ePrefer it pre-soldered and understated? The \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board-30-pin-usb-c\"\u003eclassic black 30-pin USB-C ESP32\u003c\/a\u003e ships with headers already on.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":51526252429545,"sku":"ESP32-30PIN-USBC-PINK","price":17.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Screenshot2026-07-15181232.png?v=1784151252"},{"product_id":"white-esp32-wroom-32e-development-board-30-pin-usb-c","title":"White ESP32-WROOM-32E Development Board 30-Pin (USB-C)","description":"\u003cp\u003e\u003cstrong\u003eGrab the 'snow' board while they are in stock!\u003c\/strong\u003e\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003eThe classic ESP32, dressed for fashion tech.\u003c\/strong\u003e A white-PCB ESP32 development board with gold detailing — the same dual-core WiFi + Bluetooth workhorse behind countless tutorials, on a board your project won't want to hide. Built on the ESP32-WROOM-32E, the newest revision of the classic module, with USB-C and the compact 30-pin layout.\u003c\/p\u003e\n\u003ch3\u003eHighlights\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eESP32-WROOM-32E module — the current-generation revision Espressif recommends for new designs: V3 silicon, improved stability, 4MB flash\u003c\/li\u003e\n\u003cli\u003eDual-core 240MHz, WiFi 2.4GHz + Bluetooth\u003c\/li\u003e\n\u003cli\u003eUSB-C connector for power and programming\u003c\/li\u003e\n\u003cli\u003e30-pin layout — narrower than the 38-pin, easier to breadboard\u003c\/li\u003e\n\u003cli\u003eBOOT and EN buttons on board\u003c\/li\u003e\n\u003cli\u003eFully code-compatible with every ESP32 WROOM tutorial — works with PlatformIO, Arduino IDE, ESP-IDF, and MicroPython\u003c\/li\u003e\n\u003cli\u003eA limited run — when they're gone, they're gone\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eHeaders included, unsoldered\u003c\/strong\u003e — two 15-pin strips ship in the bag, ready for you to solder in the orientation your project needs. An easy soldering job, and a chance to keep the board low-profile for wearables if you'd rather solder wires directly.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eYou'll need a USB-C data cable\u003c\/strong\u003e to program the board. Many USB-C cables are charge-only and will not work — if you're not sure, grab our \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/usb-c-data-cable-1\"\u003eUSB-C data cable\u003c\/a\u003e.\u003c\/li\u003e\n\u003cli\u003ePrefer it pre-soldered and understated? The \u003ca href=\"https:\/\/www.tinkertailor.ca\/products\/esp32-development-board-30-pin-usb-c\"\u003eclassic black 30-pin USB-C ESP32\u003c\/a\u003e ships with headers already on.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":51593235857641,"sku":"ESP32-30PIN-USBC-WHITE","price":17.95,"currency_code":"CAD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/white-esp32-wroom-32e-board-top.png?v=1792691948"},{"product_id":"esp32-s3-dev-board-n16r8-pre-soldered-headers-dual-usb-c","title":"ESP32-S3 Dev Board N16R8 (Pre-soldered Headers, Dual USB-C)","description":"\u003cp\u003eESP32-S3 development board with 16MB flash and 8MB octal PSRAM, supplied with header pins already soldered so it is ready for a breadboard straight out of the bag. Dual-core 240MHz processor, 2.4GHz Wi-Fi and Bluetooth 5 (LE), and plenty of memory for displays, camera, audio and wearable projects.\u003c\/p\u003e\n\u003ch3\u003eSpecs\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eModule: ESP32-S3-WROOM-1 N16R8\u003c\/li\u003e\n\u003cli\u003eCPU: Xtensa 32-bit LX7 dual-core, up to 240MHz\u003c\/li\u003e\n\u003cli\u003eWireless: 2.4GHz Wi-Fi and Bluetooth 5 (LE)\u003c\/li\u003e\n\u003cli\u003eMemory: 512KB SRAM, 384KB ROM, \u003cstrong\u003e16MB\u003c\/strong\u003e \u003cstrong\u003eflash\u003c\/strong\u003e, \u003cstrong\u003e8MB PSRAM\u003c\/strong\u003e (octal)\u003c\/li\u003e\n\u003cli\u003eUSB: dual USB-C (CH343 USB-serial and native USB)\u003c\/li\u003e\n\u003cli\u003eSize: approx. 57.15 x 25.40mm\u003c\/li\u003e\n\u003cli\u003eHeaders: pre-soldered\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eOctal PSRAM uses GPIO 35, 36 and 37 internally, so those pins are not available on this board.\u003c\/p\u003e\n\u003ch3\u003ePlatformIO\u003c\/h3\u003e\n\u003cpre\u003eboard = esp32-s3-devkitc-1\nboard_build.arduino.memory_type = qio_opi\nboard_upload.flash_size = 16MB\nboard_build.partitions = default_16MB.csv\nbuild_flags = -DBOARD_HAS_PSRAM\u003c\/pre\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":67738743734505,"sku":"ESP32-S3-N16R8-SOLDERED","price":19.95,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Screenshot2026-10-22144738.png?v=1792698765"},{"product_id":"esp32-s3-dev-board-n16r8-unsoldered-headers-dual-usb-c","title":"ESP32-S3 Dev Board N16R8 (Unsoldered Headers, Dual USB-C)","description":"\u003cp\u003eESP32-S3 development board with 16MB flash and 8MB octal PSRAM. Header pins are supplied separately and not soldered, so you can choose your own headers or solder wires directly, which suits wearables and low-profile builds. Dual-core 240MHz processor, 2.4GHz Wi-Fi and Bluetooth 5 (LE), and plenty of memory for displays, camera, audio and sewn projects.\u003c\/p\u003e\n\u003ch3\u003eSpecs\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003eModule: ESP32-S3-WROOM-1 N16R8\u003c\/li\u003e\n\u003cli\u003eCPU: Xtensa 32-bit LX7 dual-core, up to 240MHz\u003c\/li\u003e\n\u003cli\u003eWireless: 2.4GHz Wi-Fi and Bluetooth 5 (LE)\u003c\/li\u003e\n\u003cli\u003eMemory: 512KB SRAM, 384KB ROM, 16MB flash, 8MB PSRAM (octal)\u003c\/li\u003e\n\u003cli\u003eUSB: dual USB-C (CH343 USB-serial and native USB)\u003c\/li\u003e\n\u003cli\u003eSize: approx. 57.15 x 25.40mm\u003c\/li\u003e\n\u003cli\u003eHeaders: not soldered\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cp\u003eOctal PSRAM uses GPIO 35, 36 and 37 internally, so those pins are not available on this board.\u003c\/p\u003e\n\u003ch3\u003ePlatformIO\u003c\/h3\u003e\n\u003cpre\u003eboard = esp32-s3-devkitc-1\nboard_build.arduino.memory_type = qio_opi\nboard_upload.flash_size = 16MB\nboard_build.partitions = default_16MB.csv\nbuild_flags = -DBOARD_HAS_PSRAM\u003c\/pre\u003e","brand":"Tinker Tailor","offers":[{"title":"Default Title","offer_id":67738743767273,"sku":"ESP32-S3-N16R8-UNSOLDERED","price":19.95,"currency_code":"CAD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/files\/Screenshot2026-10-22144852.png?v=1792698921"}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0790\/8006\/3209\/collections\/Screenshot_2026-04-18_115928.png?v=1776524868","url":"https:\/\/www.tinkertailor.ca\/collections\/esp32-boards.oembed","provider":"Tinker Tailor","version":"1.0","type":"link"}