{"product_id":"esp32-cam-mb-downloader-board-type-c-usb-ch340-for-esp32-cam","title":"ESP32-CAM-MB Downloader Board – Type-C USB, CH340, for ESP32-CAM","description":"\u003cstyle\u003e\n.nznpd{--o:#F57C00;--od:#E65100;--ink:#0F172A;--mut:#5b6573;--line:#E8ECF0;--soft:#F7F8FA;max-width:1120px;margin:0 auto;color:var(--ink);font-family:system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif;line-height:1.6}\n.nznpd,.nznpd *{box-sizing:border-box}\n.nznpd p{margin:0;color:var(--mut);font-size:15px;line-height:1.65}\n.nznpd strong{color:var(--ink)}\n.nznpd__intro{font-size:16px;color:var(--ink);font-weight:500;line-height:1.6}\n.nznpd__highlights{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(2,1fr);column-gap:36px}\n.nznpd__highlights li{display:flex;gap:11px;align-items:flex-start;font-size:14px;color:var(--ink);line-height:1.5;padding:12px 0;border-bottom:1px solid var(--line)}\n.nznpd__highlights li::before{content:\"\\25B8\";flex:0 0 auto;color:var(--o);font-size:12px;line-height:1.75}\n.nznpd__highlights li:nth-last-child(-n+2){border-bottom:none}\n.nznpd__qs{background:#FFF7EF;border:2px solid #FCE0C6;border-radius:16px;padding:22px}\n.nznpd__qs h3{margin:0 0 16px;font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--od)}\n.nznpd__qs .nznpd__lead2{margin:0 0 16px;font-size:13.5px;color:var(--mut);line-height:1.55}\n.nznpd__steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:14px}\n.nznpd__steps li{display:grid;grid-template-columns:27px 1fr;gap:12px}\n.nznpd__steps li::before{counter-increment:s;content:counter(s);width:27px;height:27px;border-radius:999px;background:#fff;border:2px solid #FCE0C6;color:var(--od);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}\n.nznpd__steps strong{display:block;font-size:14px}\n.nznpd__steps p{font-size:13px;margin-top:2px;line-height:1.45}\n.nznpd__block{margin-top:36px;padding-top:30px;border-top:1px solid var(--line)}\n.nznpd__h{margin:0 0 24px;padding-bottom:10px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em;color:var(--ink);display:flex;align-items:center;gap:10px}\n.nznpd__h::before{content:\"\";flex:0 0 auto;width:20px;height:3px;border-radius:2px;background:var(--o)}\n.nznpd__specs{border:2px solid var(--line);border-radius:12px;overflow:hidden}\n.nznpd__spec{display:grid;grid-template-columns:minmax(150px,.7fr) 1fr;gap:18px;padding:12px 16px;font-size:14px}\n.nznpd__spec:nth-child(odd){background:var(--soft)}\n.nznpd__spec span{color:var(--mut)}\n.nznpd__spec strong{font-weight:700}\n.nznpd__code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;background:#fff;border:1px solid #FCE0C6;border-radius:6px;padding:1px 6px;color:var(--od)}\n.nznpd__included{display:flex;gap:16px;align-items:center;border:2px solid var(--line);border-radius:16px;background:var(--soft);padding:18px 20px}\n.nznpd__qty{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:#FFF3E8;color:var(--o);font-weight:800;display:flex;align-items:center;justify-content:center}\n.nznpd__included strong{display:block;font-size:15px;margin-bottom:3px}\n.nznpd__uses{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}\n.nznpd__use{padding:13px 14px;background:var(--soft);border-left:3px solid var(--o);border-radius:0 10px 10px 0;font-size:14px;color:var(--ink);line-height:1.4}\n.nznpd__faqs{display:grid;gap:10px}\n.nznpd__faq{border:2px solid var(--line);border-radius:12px;background:#fff;padding:0 16px;transition:border-color .18s ease}\n.nznpd__faq[open]{border-color:#FCE0C6}\n.nznpd__faq summary{list-style:none;cursor:pointer;padding:15px 0;font-weight:700;font-size:14px;color:var(--ink);display:flex;justify-content:space-between;align-items:center;gap:12px}\n.nznpd__faq summary::-webkit-details-marker{display:none}\n.nznpd__faq summary::after{content:\"\\203A\";flex:0 0 auto;color:var(--o);font-weight:800;font-size:20px;line-height:1;display:inline-block;transform:rotate(90deg);transition:transform .22s ease}\n.nznpd__faq[open] summary::after{transform:rotate(-90deg)}\n.nznpd__faq p{padding:0 0 16px;font-size:14px}\n.nznpd__faq[open] p{animation:nznpdReveal .24s ease}\n@keyframes nznpdReveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}\n.nznpd p.nznpd__note{margin-top:16px;background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:14px 16px;font-size:13.5px;color:var(--mut);line-height:1.55}\n@media (prefers-reduced-motion:reduce){.nznpd__faq summary::after{transition:none}.nznpd__faq[open] p{animation:none}}\n@media (max-width:999px){.nznpd{padding-left:16px;padding-right:16px}}\n@media (max-width:749px){.nznpd{padding-left:14px;padding-right:14px}.nznpd__intro{font-size:15.5px}.nznpd__highlights{grid-template-columns:1fr;margin-top:18px}.nznpd__highlights li:nth-last-child(2){border-bottom:1px solid var(--line)}.nznpd__uses{grid-template-columns:1fr}.nznpd__spec{grid-template-columns:1fr;gap:2px}.nznpd__h{margin-bottom:16px}}\n\u003c\/style\u003e\n\u003cdiv class=\"nznpd\"\u003e\n\u003cdiv class=\"nznpd__lead\"\u003e\n\u003cp class=\"nznpd__intro\"\u003eThe ESP32-CAM-MB is a Type-C USB downloader board that makes flashing the AI-Thinker ESP32-CAM painless. The ESP32-CAM has no USB port of its own, so on its own it needs an FTDI adapter, jumper wires and a fiddly IO0-to-GND link every time you flash. Seat the camera module onto this baseboard instead, plug in USB-C, and upload straight from the Arduino IDE. An onboard CH340 USB-to-serial chip and an automatic download circuit do the rest. \u003cstrong\u003eBoard only - the ESP32-CAM module and camera are not included.\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul class=\"nznpd__highlights\"\u003e\n\u003cli\u003eType-C USB, no FTDI adapter or jumper wires\u003c\/li\u003e\n\u003cli\u003eOnboard CH340 USB-to-serial bridge\u003c\/li\u003e\n\u003cli\u003eAutomatic download, no shorting IO0 to GND\u003c\/li\u003e\n\u003cli\u003eRST and IO0 buttons for manual reset and flash\u003c\/li\u003e\n\u003cli\u003ePowers and programs the ESP32-CAM over 5V USB\u003c\/li\u003e\n\u003cli\u003eDoubles as a serial link for the Serial Monitor\u003c\/li\u003e\n\u003cli\u003ePlug-and-play, just seat the module and connect\u003c\/li\u003e\n\u003cli\u003eWorks with Arduino IDE, PlatformIO and ESP-IDF\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/div\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSpecifications\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__specs\"\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eFunction\u003c\/span\u003e\u003cstrong\u003eESP32-CAM programmer \/ baseboard\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eUSB-to-serial\u003c\/span\u003e\u003cstrong\u003eCH340\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eUSB connector\u003c\/span\u003e\u003cstrong\u003eUSB Type-C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eCompatible board\u003c\/span\u003e\u003cstrong\u003eAI-Thinker ESP32-CAM (and compatible)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDownload mode\u003c\/span\u003e\u003cstrong\u003eAutomatic (auto-reset \/ auto-boot)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eButtons\u003c\/span\u003e\u003cstrong\u003eRST and IO0\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003ePower\u003c\/span\u003e\u003cstrong\u003e5V via USB-C\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eLogic voltage\u003c\/span\u003e\u003cstrong\u003e3.3V\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eDriver\u003c\/span\u003e\u003cstrong\u003eCH340 (Windows may need it installed)\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"nznpd__spec\"\u003e\n\u003cspan\u003eIn the pack\u003c\/span\u003e\u003cstrong\u003eMB downloader board only\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eWhat's in the box\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__included\"\u003e\n\u003cdiv class=\"nznpd__qty\"\u003e1×\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cstrong\u003eESP32-CAM-MB downloader board\u003c\/strong\u003e\n\u003cp\u003eThe programmer baseboard only. The ESP32-CAM module and OV2640 camera are not included - add your own ESP32-CAM.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eGreat for\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__uses\"\u003e\n\u003cdiv class=\"nznpd__use\"\u003eFlashing firmware to the AI-Thinker ESP32-CAM\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSkipping the FTDI adapter and jumper-wire setup\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eSerial debugging and viewing the Serial Monitor\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003ePowering an ESP32-CAM from USB during development\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eESP32-CAM web servers, video streaming and IoT builds\u003c\/div\u003e\n\u003cdiv class=\"nznpd__use\"\u003eClassroom and workshop ESP32-CAM programming\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eSetup \u0026amp; flashing\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__qs\"\u003e\n\u003ch3\u003eFlashing an ESP32-CAM (Arduino IDE)\u003c\/h3\u003e\n\u003col class=\"nznpd__steps\"\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eInstall the CH340 driver\u003c\/strong\u003e\u003cp\u003eWindows 11 often installs it automatically. If no COM port appears, install the free CH340 driver from WCH, then re-plug the board.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eSeat the ESP32-CAM\u003c\/strong\u003e\u003cp\u003eLine up the pins and press the ESP32-CAM firmly onto the MB baseboard's header, camera facing up.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eConnect and select the board\u003c\/strong\u003e\u003cp\u003ePlug in a USB-C data cable. In Arduino IDE choose \u003cspan class=\"nznpd__code\"\u003eAI-Thinker ESP32-CAM\u003c\/span\u003e and pick the COM port under Tools → Port.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003cli\u003e\u003cdiv\u003e\n\u003cstrong\u003eUpload\u003c\/strong\u003e\u003cp\u003eClick Upload. The automatic download circuit puts the module into flash mode for you. When it finishes, tap RST to run your sketch.\u003c\/p\u003e\n\u003c\/div\u003e\u003c\/li\u003e\n\u003c\/ol\u003e\n\u003c\/div\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eTip:\u003c\/strong\u003e if an upload ever fails to start, hold the IO0 button, tap RST, then release IO0 to force flash mode, and upload again. Use a USB-C data cable, not a charge-only one.\u003c\/p\u003e\n\u003c\/section\u003e\n\u003csection class=\"nznpd__block\"\u003e\n\u003ch3 class=\"nznpd__h\"\u003eCommon questions\u003c\/h3\u003e\n\u003cdiv class=\"nznpd__faqs\"\u003e\n\u003cdetails class=\"nznpd__faq\" open\u003e\n\u003csummary\u003eDoes this include the ESP32-CAM?\u003c\/summary\u003e\n\u003cp\u003eNo. This is the ESP32-CAM-MB downloader baseboard only - the programmer that the ESP32-CAM plugs into. You supply your own ESP32-CAM module and camera.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eDo I need to install a driver?\u003c\/summary\u003e\n\u003cp\u003eThis board uses a CH340 USB-to-serial chip, so it needs the CH340 driver. Windows 11 usually installs it automatically; if no COM port shows up, install the free CH340 driver from WCH. macOS and Linux generally work without one.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eDo I still have to connect IO0 to GND?\u003c\/summary\u003e\n\u003cp\u003eNo. The MB baseboard has an automatic download circuit, so you flash straight from the Arduino IDE with no jumper. If an upload ever stalls, hold IO0, tap RST, release IO0, then upload again.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eWhich board do I select in the Arduino IDE?\u003c\/summary\u003e\n\u003cp\u003eChoose \"AI-Thinker ESP32-CAM\" after installing the ESP32 package by Espressif in Boards Manager. The same board works in PlatformIO and ESP-IDF.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"nznpd__faq\"\u003e\n\u003csummary\u003eCan I use it for serial output too?\u003c\/summary\u003e\n\u003cp\u003eYes. Leave the ESP32-CAM seated after flashing and open the Serial Monitor (usually 115200 baud) to read its output - handy for grabbing the camera web-server IP address.\u003c\/p\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cp class=\"nznpd__note\"\u003e\u003cstrong\u003eGood to know:\u003c\/strong\u003e Board only - ESP32-CAM and camera not included. A USB-C data cable is required (charge-only cables won't enumerate). Every board is checked before it ships from our Te Awamutu stock.\u003c\/p\u003e\n\u003c\/div\u003e","brand":"TZT","offers":[{"title":"Default Title","offer_id":42907601600608,"sku":"ESP32-CAM-MB-1PK","price":5.99,"currency_code":"NZD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0664\/6127\/0112\/files\/ESP32CamBreakoutProductHero.png?v=1782789374","url":"https:\/\/www.nznelectronics.co.nz\/products\/esp32-cam-mb-downloader-board-type-c-usb-ch340-for-esp32-cam","provider":"NZN Electronics","version":"1.0","type":"link"}