[{"element_type":"alert","content":"\u003cp\u003eMarquee is an Adafruit Playground Experiment and is still in active development. Features may change, break, or be removed without notice. You may encounter bugs. \u003c/p\u003e\n","metadata":{"markdown":"Marquee is an Adafruit Playground Experiment and is still in active development. Features may change, break, or be removed without notice. You may encounter bugs. ","alert_type":"yellow","icon":"info"}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/600/original/IMG_3788_%281%29.jpg?1790173819","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eWhat is Marquee\u003c/h2\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eAdafruit Marquee allows you to \u003cem\u003evisually\u003c/em\u003e create interfaces for e-paper/eink displays without writing any code or storing images or fonts, or rendering graphics directly on the device.\u003c/p\u003e\n\u003cp\u003eMarquee comprises of two components:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003ca href=\"https://marquee.adafruit-playground.com/\"\u003eMarquee Web App\u003c/a\u003e: A browser-based canvas editor for Adafruit IO Marquee e-ink displays. It turns what you draw into epaper-ready bitmaps entirely in the browser and publishes them to Adafruit IO feeds.\u0026nbsp;\u003c/li\u003e\n\u003cli\u003eMarquee Firmware: An \u003ca href=\"https://github.com/adafruit/Adafruit_Marquee\"\u003eopen-source Arduino firmware\u003c/a\u003e that turns a e-paper device (or development board with an e-paper display attached) into a cloud-driven display for the Marquee web app. The device fetches a pre-rendered interface from the cloud and draws it directly on the display, so no images, fonts, or layouts live on the device itself.\u003c/li\u003e\n\u003c/ul\u003e\n      \n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eHow does Marquee Work?\u003c/h2\u003e\n\u003cp\u003eThe stage (bitmap) is created in the Marquee web app, and stored on \u003ca href=\"https://io.adafruit.com/\"\u003eAdafruit IO\u003c/a\u003e feeds you create. Your device fetches the stage image from the cloud, and renders it on the e-paper display. Marquee also handles putting the device into light or deep sleep modes to save power, and waking it up to fetch new content when the stage is edited.\u003c/p\u003e\n      \n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003e🐛 See a Bug?\u003c/h2\u003e\n\u003cp\u003eMarquee is an Adafruit Playground Experiment, which means it's still a work in progress and we're actively exploring the idea and letting people try it out. You may run into a bug or two along the way.\u003c/p\u003e\n\u003cp\u003eIf you do, or if there's a feature or enhancement you'd like to see, \u003ca href=\"https://forums.adafruit.com/viewforum.php?f=56\"\u003elet us know by posting up on the Adafruit IO Forum \u0026gt;\u0026gt;\u0026gt;\u003c/a\u003e\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eSupported Hardware\u003c/h2\u003e\n\u003cp\u003eAt the time of writing, Marquee currently supports two devices. It's designed to work with e-paper panels and e-readers from a range of vendors, not just Adafruit.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch3\u003eAdafruit MagTag (2025 Edition)\u003c/h3\u003e\n\u003cp\u003eThe MagTag pairs an ESP32-S2 microcontroller with a 2.9\" E-Ink display in a single board.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/4800","metadata":{"quantity":"1","description":"","name":"","url":"","featured":"true"}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch3\u003eXteink X4 Pro Pocket eReader\u003c/h3\u003e\n\u003cp\u003eWe've added support for the \u003ca href=\"https://www.xteink.com/products/xteink-x4-pro-pocket-ereader\"\u003eXteink X4 Pro Pocket eReader\u003c/a\u003e, which runs on an ESP32-S3. It's a great all-in-one platform.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eIf you are using this board with Marquee\u003c/strong\u003e - \u003ca href=\"https://adafruit-playground.com/u/brubell/pages/adafruit-marquee#xteink-specific-instructions-3226033\"\u003eread through \"XTeink-specific Instructions\" section before proceeding\u003c/a\u003e.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"parts","content":"\n  \n    \u003cinput value=\"parts\" class=\"element_type\" id=\"user_page_elements_attributes_11_element_type\"\u003e\n    \u003cinput value=\"3225896\" class=\"id\" id=\"user_page_elements_attributes_11_id\"\u003e\n    \u003cinput value=\"11\" class=\"position\" id=\"user_page_elements_attributes_11_position\"\u003e\n    \u003cinput value=\"Xteink X4 Pro Pocket eReader\" class=\"part-name\" id=\"user_page_elements_attributes_11_part_name\"\u003e\n    \u003cinput value=\"https://www.xteink.com/products/xteink-x4-pro-pocket-ereader\" class=\"part-url\" id=\"user_page_elements_attributes_11_part_url\"\u003e\n    \u003cinput value=\"ESP32-S3 eReader\" class=\"part-description\" id=\"user_page_elements_attributes_11_description\"\u003e\n    \u003cinput value=\"1\" class=\"quantity\" id=\"user_page_elements_attributes_11_quantity\"\u003e\n    \u003cinput value=\"false\" class=\"featured\" id=\"user_page_elements_attributes_11_featured\"\u003e\n\n  \n\n  \u003cdiv class=\"product-column product-details-wrapper\"\u003e\n    \u003cdiv class=\"parts-header\"\u003e\n      \u003cdiv class=\"product-title\"\u003e\n          \u003ca href=\"https://www.xteink.com/products/xteink-x4-pro-pocket-ereader\" class=\"parts-name\" target=\"_blank\"\u003eXteink X4 Pro Pocket eReader\u003c/a\u003e\n        \n      \u003c/div\u003e\n\n        \u003cdiv class=\"product-custom-description parts-description\"\u003eESP32-S3 eReader\u003c/div\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n\n  \u003cdiv class=\"parts-purchase\"\u003e\n    \u003cdiv class=\"product-buy-wrapper\"\u003e\n      \u003cspan class=\"btn-primary preview-btn\"\u003eBuy Now\u003c/span\u003e\n    \u003c/div\u003e\n  \u003c/div\u003e\n","metadata":{"quantity":"1","description":"ESP32-S3 eReader","name":"Xteink X4 Pro Pocket eReader","url":"https://www.xteink.com/products/xteink-x4-pro-pocket-ereader"}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch3\u003eAdafruit Feather ESP32-S3 + 2.13\" Tri-Color eInk FeatherWing\u003c/h3\u003e\n\u003cp\u003eMarquee also works with setups where the E-Ink device isn't all-in-one. For example, we've included a build for an Adafruit Feather ESP32-S3 paired with the Adafruit 2.13\" HD Tri-Color eInk/ePaper Display FeatherWing.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"product","content":"https://www.adafruit.com/product/5477","metadata":{"quantity":"1","description":"","name":"","url":"","featured":"false"}},{"element_type":"product","content":"https://www.adafruit.com/product/4814","metadata":{"quantity":"1","description":"","name":"","url":"","featured":"false"}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eGet Started\u003c/h2\u003e\n\u003cp\u003eVisit \u003ca href=\"https://marquee.adafruit-playground.com\"\u003ehttps://marquee.adafruit-playground.com\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eNext, you'll need to connect your Adafruit IO Account to the marquee website. Click the\u0026nbsp;\u003cstrong\u003eAdafruit IO Account\u003c/strong\u003e button on the marquee website:\u003cspan class=\"iNqyIf\"\u003e\u003c/span\u003e\u003c/p\u003e\n      \n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/598/original/SCR-20260923-jhpl.png?1790172476","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n        \u003cp\u003eThen, to obtain your Adafruit IO username and Key,\u0026nbsp;\u003c/p\u003e\n\u003cul\u003e\n\u003cli class=\"Z1qcYe\"\u003e\u003cspan class=\"iNqyIf\"\u003e\u003ca href=\"https://io.adafruit.com/\"\u003eNavigate to \u003c/a\u003e\u003cspan class=\"iNqyIf\"\u003e\u003ca href=\"https://io.adafruit.com/\"\u003eAdafruit IO\u003c/a\u003e\u003c/span\u003e and sign in.\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli class=\"Z1qcYe\"\u003e\u003cspan class=\"iNqyIf\"\u003eOn the left header/navigation bar and click the \u003cstrong class=\"rQesXe MPyX\"\u003ekey icon\u003c/strong\u003e (labeled \u003cstrong class=\"rQesXe MPyX\"\u003eMy Key\u003c/strong\u003e)\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli class=\"Z1qcYe\"\u003e\u003cspan class=\"iNqyIf\"\u003eA window will pop up showing your \u003cstrong class=\"rQesXe MPyX\"\u003eAIO Username\u003c/strong\u003e and your \u003cstrong class=\"rQesXe MPyX\"\u003eActive AIO Key\u003c/strong\u003e\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cspan class=\"iNqyIf\"\u003e\u003cstrong class=\"rQesXe MPyX\"\u003eCopy the username and key on this page.\u003c/strong\u003e\u003c/span\u003e\u003c/p\u003e\n      \n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/609/original/SCR-20260924-mopq.png?1790273235","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n        \u003cp\u003eThen, \u003cstrong\u003epaste your Adafruit IO username and key into the Marquee website\u003c/strong\u003e and \u003cstrong\u003eclick Save Account\u003c/strong\u003e.\u003c/p\u003e\n      \n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/610/original/SCR-20260924-mpbm.png?1790273290","metadata":{}},{"element_type":"text","content":"\n        \u003cp\u003eThe Adafruit IO Account box should now display your username. Click \u003cstrong\u003eAdd a New Marquee Display\u003c/strong\u003e and follow the on-screen steps to flash the Marquee firmware to your device.\u003c/p\u003e\n\u003cp\u003eOnce your device is flashed with Marquee, you're ready to try it out!\u003c/p\u003e\n      ","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/611/original/SCR-20260924-mpgm.png?1790273329","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eMarquee 101\u003c/h2\u003e\n\u003cp\u003eAfter you flashed your device with Marquee firmware, added credentials, and pressed its RESET button, the device is running the marquee application and waiting for a new image to display.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eYou should be brought to the BUILD THE SCENE page.\u0026nbsp;On the center of the page is the scene - this is your e-paper display's usable area. You can add widgets (\"props\") to the scene by clicking them on the left-hand sidebar.\u0026nbsp;\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/599/original/SCR-20260923-jlcc.png?1790173350","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eMarquee is driven by data coming from\u0026nbsp;\u003ca href=\"https://learn.adafruit.com/adafruit-io-basics-feeds/overview\"\u003eAdafruit IO Feeds\u003c/a\u003e. Most props include an option to connect to a feed and display its data right on the stage.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/608/original/SCR-20260923-jlkv.png?1790180445","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eAfter you've built a scene, you'll need to configure how frequently the device will go to sleep.\u0026nbsp;\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/601/original/SCR-20260923-jlta.png?1790173998","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003e\u003cstrong\u003eBe mindful of your battery when selecting the amount of time the marquee device sleeps for\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003cem\u003eshorter\u003c/em\u003e \u003cem\u003esleep interval\u003c/em\u003e updates the display more frequently, but uses more power in light sleep mode.\u003c/li\u003e\n\u003cli\u003eA \u003cem\u003elonger sleep interval\u003c/em\u003e updates the display less frequently, but uses less power in deep sleep mode.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhen a marquee device wakes up from sleep - it fetches the latest bitmap image (stored on an Adafruit IO feed), compares it to whats currently displayed, and (if they are different bitmaps) writes it to the display before going back to sleep.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eAfter you've finished building the scene and configuring the sleep timer, it's time to set the stage!\u003c/p\u003e\n\u003cp\u003eClick Queue For The Next Take.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/603/original/SCR-20260923-jlpq.png?1790177177","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eAfter the device writes to the display, the image on the display will refresh. The header on the SHOWTIME page also reflects that the device is awake and drawing.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/606/original/SCR-20260923-ktsu.png?1790178909","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eAfter writing, the device will go to sleep. The SHOWTIME page displays the device's status, when it's expected to wake again, and when it last woke up.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/604/original/SCR-20260923-jman.png?1790177423","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003cp\u003eIf you want to edit the stage again - Click \u003cstrong\u003eEdit Dashboard\u003c/strong\u003e to be brought back to the\u0026nbsp;BUILD THE SCENE page.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/605/original/SCR-20260923-jman.png?1790177499","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch2\u003eAdding New Platforms to Marquee\u003c/h2\u003e\n\u003cp\u003e\u003cspan\u003eMarquee Firmware is open-source and welcomes contributions for adding new hardware or e-paper panels!\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cspan\u003eFirst, add the platform to Marquee firmware by reading through \u003ca href=\"https://github.com/adafruit/Adafruit_Marquee/tree/main#local-development\"\u003ethe Local Development section of the repository's README file\u003c/a\u003e.\u0026nbsp;\u003c/span\u003e\u003c/li\u003e\n\u003cli\u003e\u003cspan\u003eNext, to add the platform to the website, \u003ca href=\"https://github.com/adafruit/Marquee_Web/blob/main/docs/adding-a-platform.md\"\u003eread through the \"Adding a Platform\" documentation for instructions on how to add a board to the web app\u003c/a\u003e. This documentation file was designed to be followed by a human \u003cstrong\u003eor\u0026nbsp;\u003c/strong\u003eingested by a LLM.\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch3\u003eXteink-Specific Instructions\u003c/h3\u003e\n\u003cp\u003eThe Xteink X4 Pro eReader is a great way to get started with Marquee, but there are two things to keep in mind before and during installation.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch4\u003eBack Up the Stock Xteink Firmware\u003c/h4\u003e\n\u003cp\u003eInstalling marquee will remove the stock firmware on the XTeink. Before installing Marquee, \u003ca href=\"https://learn.adafruit.com/circuitpython-on-the-xteink-x4-ereader/back-up-the-firmware\"\u003efollow this guide page to make a backup of the firmware shipped with your Xteink\u003c/a\u003e.\u003c/p\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"text","content":"\n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n  \n        \u003ch4\u003eEnter DFU Mode\u003c/h4\u003e\n\u003cp\u003eThe Xteink X4 Pro uses a different button sequence to enter programming (DFU) mode than Adafruit boards do. \u003cstrong\u003eYou'll need to put the device into DFU mode \u003cem\u003ebefore\u003c/em\u003e flashing the Marquee firmware\u003c/strong\u003e:\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003ePress and hold the \u003cstrong\u003ePrev.\u003c/strong\u003e button on the left side.\u003c/li\u003e\n\u003cli\u003eWhile holding it, press the \u003cstrong\u003eReset\u003c/strong\u003e button. The Reset button is recessed, so you may need a pencil tip or similar long object to reach it.\u003c/li\u003e\n\u003cli\u003eRelease both buttons.\u003c/li\u003e\n\u003c/ol\u003e\n      \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","metadata":{}},{"element_type":"user_image","content":"https://cdn-learn.adafruit.com/user_assets/assets/000/002/607/original/Pasted_Image_9_23_26__12_14%E2%80%AFPM.png?1790180129","metadata":{}}]