1<!doctype html><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta name="theme-color" media="(prefers-color-scheme: light)" content="#f7f7f7"><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1b1b1e"><meta name="viewport" content="width=device-width, user-scalable=no initial-scale=1, shrink-to-fit=no, viewport-fit=cover" ><meta name="generator" content="Jekyll v4.4.1" /><meta property="og:title" content="CTRL+P - Smartifying an old thermal printer" /><meta property="og:locale" content="en" /><meta name="description" content="Introduction A while ago I stumbled across this post from zacs on reddit. Someone build a Home Assistant component to talk to his $65 Epson TS-T88V thermal printer! Of course, I was immediately hooked by the idea. But $65? I donât want to spend that much, so I looked around kleinanzeigen a popular german platform for selling your used stuff. After a little bit of searching I was able to pick up this beauty from 2005 for just â¬20:" /><meta name="twitter:description" property="og:description" content="Introduction A while ago I stumbled across this post from zacs on reddit. Someone build a Home Assistant component to talk to his $65 Epson TS-T88V thermal printer! Of course, I was immediately hooked by the idea. But $65? I donât want to spend that much, so I looked around kleinanzeigen a popular german platform for selling your used stuff. After a little bit of searching I was able to pick up this beauty from 2005 for just â¬20:" /><link rel="canonical" href="https://blitzdose.de/posts/smartifying-thermal-printer/" /><meta property="og:url" content="https://blitzdose.de/posts/smartifying-thermal-printer/" /><meta property="og:site_name" content="Blitzdose" /><meta property="og:type" content="article" /><meta property="article:published_time" content="2026-07-25T13:00:00+02:00" /><meta property="article:modified_time" content="2026-07-25T13:00:00+02:00" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="CTRL+P - Smartifying an old thermal printer" /><meta name="google-site-verification" content="6jIT-tQop4EbcXj919v4dSVkkFdKhRCixG0VZdF0ggE" />
1<script type="application/ld+json"> {"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2026-07-25T13:00:00+02:00","datePublished":"2026-07-25T13:00:00+02:00","description":"Introduction A while ago I stumbled across this post from zacs on reddit. Someone build a Home Assistant component to talk to his $65 Epson TS-T88V thermal printer! Of course, I was immediately hooked by the idea. But $65? I donât want to spend that much, so I looked around kleinanzeigen a popular german platform for selling your used stuff. After a little bit of searching I was able to pick up this beauty from 2005 for just â¬20:","headline":"CTRL+P - Smartifying an old thermal printer","mainEntityOfPage":{"@type":"WebPage","@id":"https://blitzdose.de/posts/smartifying-thermal-printer/"},"url":"https://blitzdose.de/posts/smartifying-thermal-printer/"}</script>
1<title>CTRL+P - Smartifying an old thermal printer | Blitzdose</title><link rel="icon" type="image/png" href="/assets/img/favicons/favicon-96x96.png" sizes="96x96"><link rel="icon" type="image/svg+xml" href="/assets/img/favicons/favicon.svg"><link rel="shortcut icon" href="/assets/img/favicons/favicon.ico"><link rel="apple-touch-icon" sizes="180x180" href="/assets/img/favicons/apple-touch-icon.png"><link rel="manifest" href="/assets/img/favicons/site.webmanifest"><link rel="stylesheet" href="/assets/css/jekyll-theme-chirpy.css"><link rel="stylesheet" href="/assets/lib/fonts/main.css"><link rel="stylesheet" href="/assets/lib/fontawesome-free/css/all.min.css"><link rel="stylesheet" href="/assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.min.css"><link rel="stylesheet" href="/assets/lib/glightbox/glightbox.min.css">
1<script src="/assets/js/dist/theme.min.js"></script>
1
1<script defer src="/assets/lib/simple-jekyll-search/simple-jekyll-search.min.js"></script>
1
1<script defer src="/assets/lib/loading-attribute-polyfill/loading-attribute-polyfill.umd.min.js"></script>
1
1<script defer src="/assets/lib/glightbox/glightbox.min.js"></script>
1
1<script defer src="/assets/lib/clipboard/clipboard.min.js"></script>
1
1<script defer src="/assets/lib/dayjs/dayjs.min.js"></script>
1
1<script defer src="/assets/lib/dayjs/locale/en.js"></script>
1
1<script defer src="/assets/lib/dayjs/plugin/relativeTime.js"></script>
1
1<script defer src="/assets/lib/dayjs/plugin/localizedFormat.js"></script>
1
1<script defer src="/assets/lib/tocbot/tocbot.min.js"></script>
1
1<script defer src="/assets/lib/mermaid/mermaid.min.js"></script>
1
1<script defer src="/assets/js/dist/post.min.js"></script>
1
1<script defer src="/app.min.js?baseurl=®ister=true" ></script>
1<body><aside aria-label="Sidebar" id="sidebar" class="d-flex flex-column align-items-end"><header class="profile-wrapper"> <a href="/" id="avatar" class="rounded-circle"><img src="/assets/img/avatar/avatar.png" width="112" height="112" alt="avatar" onerror="this.style.display='none'"></a> <a class="site-title d-block" href="/">Blitzdose</a><p class="site-subtitle fst-italic mb-0">Hi, I'm Christian</p></header><nav class="flex-column flex-grow-1 w-100 ps-0"><ul class="nav"><li class="nav-item"> <a href="/" class="nav-link"> <i class="fa-fw fas fa-home"></i> <span>HOME</span> </a><li class="nav-item"> <a href="/categories/" class="nav-link"> <i class="fa-fw fas fa-stream"></i> <span>CATEGORIES</span> </a><li class="nav-item"> <a href="/tags/" class="nav-link"> <i class="fa-fw fas fa-tags"></i> <span>TAGS</span> </a><li class="nav-item"> <a href="/archives/" class="nav-link"> <i class="fa-fw fas fa-archive"></i> <span>ARCHIVES</span> </a><li class="nav-item"> <a href="/about/" class="nav-link"> <i class="fa-fw fas fa-info-circle"></i> <span>
1ABOUT</span> </a></ul></nav><div class="sidebar-bottom d-flex flex-wrap align-items-center w-100"><div class="btn-group dropup"> <button type="button" class="btn btn-link nav-link" aria-label="Switch Mode" id="mode-toggle" data-bs-toggle="dropdown" ><i class="fa-regular fa-sun" data-theme-mode="light"></i><i class="fa-regular fa-moon" data-theme-mode="dark"></i><i class="fa-solid fa-display" data-theme-mode="system"></i></button><ul class="dropdown-menu rounded-3 mb-1 p-1"><li> <button class="dropdown-item d-flex align-items-center" type="button" data-theme-mode="light"><i class="fa-regular fa-sun" data-theme-mode="light"></i>Light</button><li> <button class="dropdown-item d-flex align-items-center" type="button" data-theme-mode="dark"><i class="fa-regular fa-moon" data-theme-mode="dark"></i>Dark</button><li> <button class="dropdown-item d-flex align-items-center" type="button" data-theme-mode="system"><i class="fa-solid fa-display" data-theme-mode="system"></i>System</button></ul></div><span class="icon-border"></span> <a href="https://github.com/blitzdose" aria-label="github" target="_blank" rel="noopener noreferrer" > <i class="fab fa-github"></i> </a> <a href="javascript:void(location.href = 'mailto:' + ['christian','blitzdose.de'].join('@'))" aria-label="email" > <i class="fas fa-envelope"></i> </a> <a href="/feed.xml" aria-label="rss" > <i class="fas fa-rss"></i> </a></div></aside><div id="main-wrapper" class="d-flex justify-content-center"><div class="container d-flex flex-column px-xxl-5"><header id="topbar-wrapper" class="flex-shrink-0" aria-label="Top Bar"><div id="topbar" class="d-flex align-items-center justify-content-between px-lg-3 h-100" ><nav id="breadcrumb" aria-label="Breadcrumb"> <span> <a href="/">Home</a> </span> <span>CTRL+P - Smartifying an old thermal printer</span></nav><button type="button" id="sidebar-trigger" class="btn btn-link" aria-label="Sidebar"> <i class="fas fa-bars fa-fw"></i> </button><div id="topbar-title"> Post</div><button type="button" id="search-trigger" class="btn btn-link" aria-label="Search"> <i class="fas fa-search fa-fw"></i> </button> <search id="search" class="align-items-center ms-3 ms-lg-0"> <i class="fas fa-search fa-fw"></i> <input class="form-control" id="search-input" type="search" aria-label="search" autocomplete="off" placeholder="Search..." > </search> <button type="button" class="btn btn-link text-decoration-none" id="search-cancel">Cancel</button></div></header><div class="row flex-grow-1"><main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4"><article class="px-1" data-toc="false"><header><h1 data-toc-skip>CTRL+P - Smartifying an old thermal printer</h1><div class="post-meta text-muted"> <span> Posted <time data-ts="1784977200" data-df="ll" data-bs-toggle="tooltip" data-bs-placement="bottom" > Jul 25, 2026 </time> </span><div class="d-flex justify-content-between"> <span> By <em> <a href="https://github.com/blitzdose">Christian Zäske</a> </em> </span><div> <span class="readtime" data-bs-toggle="tooltip" data-bs-placement="bottom" title="1171 words" > <em>6 min</em> read</span></div></div></div></header><div class="content"><h1 id="introduction">Introduction</h1><p>A while ago I stumbled across <a href="https://www.reddit.com/r/homeassistant/comments/1q55lpv/using_home_assistant_to_be_more_analog_in_2026/" target="_blank">this post</a> from <em>zacs</em> on reddit. Someone build a Home Assistant component to talk to his $65 Epson TS-T88V thermal printer! Of course, I was immediately hooked by the idea. But $65? I donât want to spend that much, so I looked around <em>kleinanzeigen</em> a popular german platform for selling your used stuff. After a little bit of searching I was able to pick up this beauty from 2005 for just â¬20:</p><p><a href="/assets/img/2026-07-26/printer_1.jpg" class="popup img-link w-75 shimmer"><img src="/assets/img/2026-07-26/printer_1.jpg" alt="Epson TM-T88V Thermal Printer" class="shadow" loading="lazy"></a> <em>Epson TM-T88V Thermal Printer</em></p><p>But wait, <em>zacs</em> used a printer with networking capabilities but mine only has these weird connectors on the back:</p><p><a href="/assets/img/2026-07-26/connectors.jpg" class="popup img-link w-75 shimmer"><img src="/assets/img/2026-07-26/connectors.jpg" alt="Connectors" class="shadow" loading="lazy"></a> <em>Thats not ethernet</em></p><h1 id="what-did-i-buy">What did I buy?</h1><p>
1But thats fine! Of course I knew what I was looking for before I bought a thermal printer. The <em>Epson TM-T88V</em> is old, cheap and has no networking capabilities, because it is designed to be used over USB or RS-232 serial. I knew I could not use the component presented in the reddit post, I had to came up with my own method of talking to that printer.</p><h1 id="talking-to-the-printer">Talking to the printer</h1><p>The first obvious solution is USB. Thats also what I used to at least test this thing. So I went to the Epson website, installed the tools and driver (which are still available in 2026) and my printer came to life. But I want to use this printer with Home Assistant. And it will be placed far away from the Raspberry Pi I use. Running a USB cable through my entire apartment? Thatâs not really a solution. So it needs some wireless communication!</p><h2 id="smartifying-a-thermal-printer"><span class="me-2">Smartifying a thermal printer</span><a href="#smartifying-a-thermal-printer" class="anchor text-muted"><i class="fas fa-hashtag"></i></a></h2><p>Because I wanted to keep the costs down of the project, I wanted to use an ESP32 board. These are cheap, have WiFi and Bluetooth and are fairly easy to work with. In the end I used a <strong>Wemos Lolin D1 mini</strong>, because this what I had lying around:</p><p><a href="/assets/img/2026-07-26/wemos.webp" class="popup img-link w-75 shimmer"><img src="/assets/img/2026-07-26/wemos.webp" alt="Lolin Wemos D1 mini" class="shadow" loading="lazy"></a> <em>Wemos Lolin D1 mini</em></p><p>But talking USB with this thing? Thats not really an option. There might me a USB stack library for the ESP32 to bit-bang USB communication but why making it complicated when there is an easier solution: <strong>RS-232</strong>!</p><p>The <em>Recommended Standard 232</em> (I had no idea that <em>RS</em> thats for this) is from the early 1960s and perfect for our use case because of its simplicity. It is just a serial communication over a unnecessary huge connector, and the ESP32 can talk serial!</p><p>BUT! RS232 uses voltage levels of up to +-15V and that would definitely kill our little ESP32. So I also had to order a <a href="https://de.aliexpress.com/item/32775943266.html" target="_blank">RS232 to TTL converter</a> (MAX3232) which handles those voltages for us and can work with the 3.3V voltage levels of the ESP32.</p><p>Because I want to smartify the printer itself without the need of an external device, I want to include the ESP32 board inside the printer. And also because I was curious, I opened the printer and had a look inside.</p><p><a href="/assets/img/2026-07-26/inside.jpg" class="popup img-link w-75 shimmer"><img src="/assets/img/2026-07-26/inside.jpg" alt="Opened printer" class="shadow" loading="lazy"></a> <em>Opened printer</em></p><p>You see the empty space at the top left which that weird connector? Thats where the RS232 module was sitting. Yes, <strong>MODULE</strong>! This can be swapped for anything you want! But because I do want to use RS232 and the module was not that big, I decided to place the ESP32 board directly on the module and so I created this thing:</p><p><a href="/assets/img/2026-07-26/modified.jpg" class="popup img-link w-75 shimmer"><img src="/assets/img/2026-07-26/modified.jpg" alt="ESP32 board soldered to the RS232 module" class="shadow" loading="lazy"></a> <em>ESP32 board soldered to the RS232 module</em></p><p>Because RS232 is so simple, we do not need to make a lot of connections.</p><div class="table-wrapper"><table><thead><tr><th>ESP32<th>EPSON TM-T88V<th>RS232 Converter<tbody><tr><td>VBUS<td>5V<td>Â <tr><td>GPIO2<td>Â <td>TX<tr><td>3.3V<td>Â <td>3.3V<tr><td>GND<td>GND<td>GND</table></div><p>The ESP32 gets itâs power from a pin on the RS232 module, I just probed around to find 3.3V or 5V, because the board I used also supported a 5V input.</p><p>GPIO2 is connected to the TX pin of the RS232 converter and from the output of the converter to the RX pin of the RS232 connector. The converter also needs a 3.3V source and everything needs a ground connection. Have a look at the <a href="https://github.com/blitzdose/CTRL-P">GitHub repo</a> for better pictures of the wiring.</p><p>Thats it. In theory, we can talk over WiFi to the ESP32 and therefore the thermal printer!</p><h2 id="integrating-in-home-assistant"><span class="me-2">Integrating in Home Assistant</span><a href="#integrating-in-home-assistant" class="anchor text-muted"><i class="fas fa-hashtag"></i></a></h2><p>Again, to keep the project simple, I wanted to use <a href="https://esphome.io/">ESPHome</a>. This is a really powerful Home Assistant Addon which allows you to define how Home Assistant can interact with an supported board (ESP32, ESP8266, RP2040, etc.) all by defining just a YAML file. Because all we need to do is send serial data to GPIO2, this is the perfect solution.</p><p>But what do we actually need to send to the printer for it to print? Have a look at these two amazing websites:</p><ul><li>
1<a href="https://download4.epson.biz/sec_pubs/pos/reference_en/escpos/index.html">Documentation ESCPOS</a><li><a href="https://download4.epson.biz/sec_pubs/pos/reference_en/charcode/index.html">Character tables</a></ul><p>They exactly specify what commands you can send to the printer, everything nicely documented!</p><p>After reading through it and experimenting a bit, I came up with <a href="https://github.com/blitzdose/CTRL-P/blob/main/esphome_config.yml">this</a> ESPHome config. It creates a service called <code class="language-plaintext highlighter-rouge">send_serial</code> which accepts some string input. This is the text we want to print. The little script then converts our string from UTF-8 to CP1252, which is what the printer supports. Then, it sends <code class="language-plaintext highlighter-rouge">0x00 0x1B 0x40 0x00</code> to the printer. The <code class="language-plaintext highlighter-rouge">0x00</code> is required at the beginning and end, the interesting part is <code class="language-plaintext highlighter-rouge">0x1B 0x40</code>. If you look at the ESCPOS documentation you can see that <code class="language-plaintext highlighter-rouge">0x1B</code> is the escape character for commands and in combination with <code class="language-plaintext highlighter-rouge">0x40</code>, its the command to initialize the printer!</p><p>After initialization, we can send the string byte by byte to the printer and it will just print the characters! To end our print, we send another command sequence to the printer: <code class="language-plaintext highlighter-rouge">0x00, 0x1D, 0x28, 0x4C, 0x02, 0x00, 0x30, 0x32, 0x1B, 0x4A, 0x00, 0x1D, 0x56, 0x41, 0x00</code>.</p><div class="table-wrapper"><table><thead><tr><th>Bytes<th>Command<tbody><tr><td><code class="language-plaintext highlighter-rouge">0x1D 0x28 0x4C 0x02 0x00 0x32</code><td>Print the graphics data in the print buffer<tr><td><code class="language-plaintext highlighter-rouge">0x1B 0x4A 0x00</code><td>Print the data in the print buffer and feed 0 lines<tr><td><code class="language-plaintext highlighter-rouge">0x1D, 0x56, 0x41</code><td>Feed paper and fully cuts the paper</table></div><p>By now calling the service <code class="language-plaintext highlighter-rouge">send_serial</code>, we can print to the thermal printer from Home Assistant!</p><p><a href="/assets/img/2026-07-26/print.jpg" class="popup img-link w-75 shimmer"><img src="/assets/img/2026-07-26/print.jpg" alt="First print" class="shadow" loading="lazy"></a> <em>First print</em></p><p>And by querying weather, news and more, we can create ourselves a status report for the beginning of the day like the shown in the original reddit post:</p><p><a href="/assets/img/2026-07-26/report.jpg" class="popup img-link w-75 shimmer"><img src="/assets/img/2026-07-26/report.jpg" alt="Status report" class="shadow" loading="lazy"></a> <em>Status report in the morning</em></p><h1 id="final-thoughts">Final thoughts</h1><p>First, I need to address the elephant in the room: Thermal paper. Generic thermal paper is basically toxic waste and really bad for the environment and potentially for you. If you recreate this, <strong>please</strong> use at least BPA-free thermal paper. BPA is a chemical that can be used for the thermal reactive coating of the paper and <strong>really</strong> bad for your health. To be even more environment friendly, I use special paper (thatâs why its blue) which does use a different process to turn the paper black with heat instead of relying on harmful chemicals.</p><p>But nevertheless this was a really fun project and I learned way more than I could include in this post! Got any questions? Just leave a comment below.</p><p>See u next time!</p></div><div class="post-tail-wrapper text-muted"><div class="d-flex justify-content-between align-items-center gap-3 mb-3"><div class="post-meta"> <i class="far fa-folder-open fa-fw me-1"></i> <a href="/categories/hardware/">Hardware</a>, <a href="/categories/esp32/">ESP32</a></div></div><div class="post-tags"> <i class="fa fa-tags fa-fw me-1"></i> <a href="/tags/how-to/" class="post-tag no-text-decoration" >how to</a> <a href="/tags/i-made-a-thing/" class="post-tag no-text-decoration" >i made a thing</a></div><div class=" post-tail-bottom d-flex justify-content-between align-items-center mt-5 pb-2 " ><div class="license-wrapper"> This post is licensed under <a href="https://creativecommons.org/licenses/by/4.0/"> CC BY 4.0 </a> by the author.</div><div class="share-wrapper d-flex align-items-center"> <span class="share-label text-muted">Share</span> <span class="share-icons"> <a href="https://twitter.com/intent/tweet?text=CTRL+P%20-%20Smartifying%20an%20old%20thermal%20printer%20-%20Blitzdose&url=https%3A%2F%2Fblitzdose.de%2Fposts%2Fsmartifying-thermal-printer%2F" target="_blank" rel="noopener" data-bs-toggle="tooltip" data-bs-placement="top" title="Twitter" aria-label="Twitter"> <i class="fa-fw fa-brands fa-square-x-twitter"></i> </a> <a href="https://www.facebook.com/sharer/sharer.php?title=CTRL+P%20-%20Smartifying%20an%20old%20thermal%20printer%20-%20Blitzdose&u=https%3A%2F%2Fblitzdose.de%2Fposts%2Fsmartifying-thermal-printer%2F" target="_blank" rel="noopener" data-bs-toggle="tooltip" data-bs-placement="top" title="Facebook" aria-label="Facebook"> <i class="fa-fw fab fa-facebook-square"></i> </a> <a href="https://t.me/share/url?url=https%3A%2F%2Fblitzdose.de%2Fposts%2Fsmartifying-thermal-printer%2F&text=CTRL+P%20-%20Smartifying%20an%20old%20thermal%20printer%20-%20Blitzdose" target="_blank" rel="noopener" data-bs-toggle="tooltip" data-bs-placement="top" title="Telegram" aria-label="Telegram"> <i class="fa-fw fab fa-telegram"></i> </a> <button id="copy-link" aria-label="Copy link" class="btn small" data-bs-toggle="tooltip" data-bs-placement="top" title="Copy link" data-title-succeed="Link copied successfully!" > <i class="fa-fw fas fa-link pe-none fs-6"></i> </button>
1 </span></div></div></div></article></main><aside aria-label="Panel" id="panel-wrapper" class="col-xl-3 ps-2 text-muted"><div class="access"><section id="access-lastmod"><h2 class="panel-heading">Recently Updated</h2><ul class="content list-unstyled ps-0 pb-1 ms-1 mt-2"><li class="text-truncate lh-lg"> <a href="/posts/smartifying-thermal-printer/">CTRL+P - Smartifying an old thermal printer</a><li class="text-truncate lh-lg"> <a href="/posts/HardBoot/">HardBoot - The hardware boot order switch</a><li class="text-truncate lh-lg"> <a href="/posts/Digispark-with-Arduino-IDE-in-2024/">Digispark with Arduino IDE in 2024</a><li class="text-truncate lh-lg"> <a href="/posts/Hacking-Cheap-WiFi-LED-Controller/">Hacking cheap WiFi LED Controller (BL602)</a><li class="text-truncate lh-lg"> <a href="/posts/Manually-update-your-Xiaomi-device-without-data-loss/">Manually update your Xiaomi device without data loss</a></ul></section><section><h2 class="panel-heading">Trending Tags</h2><div class="d-flex flex-wrap mt-3 mb-1 me-3"> <a class="post-tag btn btn-outline-primary" href="/tags/how-to/">how to</a> <a class="post-tag btn btn-outline-primary" href="/tags/i-made-a-thing/">i made a thing</a> <a class="post-tag btn btn-outline-primary" href="/tags/hacking/">hacking</a> <a class="post-tag btn btn-outline-primary" href="/tags/microsoft/">microsoft</a> <a class="post-tag btn btn-outline-primary" href="/tags/slow-internet/">slow internet</a> <a class="post-tag btn btn-outline-primary" href="/tags/surface/">surface</a> <a class="post-tag btn btn-outline-primary" href="/tags/update/">update</a> <a class="post-tag btn btn-outline-primary" href="/tags/wifi/">wifi</a> <a class="post-tag btn btn-outline-primary" href="/tags/xiaomi/">xiaomi</a></div></section></div></aside></div><div class="row"><div id="tail-wrapper" class="col-12 col-lg-11 col-xl-9 px-md-4"><aside id="related-posts" aria-labelledby="related-label"><h3 class="mb-4" id="related-label">Further Reading</h3><nav class="row row-cols-1 row-cols-md-2 row-cols-xl-3 g-4 mb-4"><article class="col"> <a href="/posts/HardBoot/" class="post-preview card h-100"><div class="card-body"> <time data-ts="1761735600" data-df="ll" > Oct 29, 2025 </time><h4 class="pt-0 my-2">HardBoot - The hardware boot order switch</h4><div class="text-muted"><p>Introduction I lately brought my Hackintosh install back to life on a new PC that I got about a year ago (Yes, I do not use my Hackintosh very often). The setup is pretty simple, I daily drive Wind...</p></div></div></a></article><article class="col"> <a href="/posts/Manually-update-your-Xiaomi-device-without-data-loss/" class="post-preview card h-100"><div class="card-body"> <time data-ts="1680778800" data-df="ll" > Apr 6, 2023 </time><h4 class="pt-0 my-2">Manually update your Xiaomi device without data loss</h4><div class="text-muted"><p>Quick Fix if you donât want to read the full story: Jump here Some background story It already happened to me twice. My trusty Xiaomi Redmi Note 9 Pro (EU Version) got a new update and something ...</p></div></div></a></article><article class="col"> <a href="/posts/Digispark-with-Arduino-IDE-in-2024/" class="post-preview card h-100"><div class="card-body"> <time data-ts="1730545200" data-df="ll" > Nov 2, 2024 </time><h4 class="pt-0 my-2">Digispark with Arduino IDE in 2024</h4><div class="text-muted"><p>What is a âDigisparkâ? I bought a 3 pack of Digispark microcontrollers back when I was heavily into ordering Arduino-Stuff for way to much money on Amazon. But these things are actually quite nice...</p></div></div></a></article></nav></aside><nav class="post-navigation d-flex justify-content-between" aria-label="Post Navigation"> <a href="/posts/HardBoot/" class="btn btn-outline-primary" aria-label="Older" ><p>HardBoot - The hardware boot order switch</p></a><div class="btn btn-outline-primary disabled" aria-label="Newer"><p>-</p></div></nav><footer aria-label="Site Info" class=" d-flex flex-column justify-content-center text-muted flex-lg-row justify-content-lg-between align-items-lg-center pb-lg-3 " ><p>© <time>2026</time> <a href="https://github.com/blitzdose">Christian Zäske</a>. <span data-bs-toggle="tooltip" data-bs-placement="top" title="Except where otherwise noted, the blog posts on this site are licensed under the Creative
1Commons Attribution 4.0 International (CC BY 4.0) License by the author." >Some rights reserved.</span></p><p>Using the <a data-bs-toggle="tooltip" data-bs-placement="top" title="v7.6.0" href="https://github.com/cotes2020/jekyll-theme-chirpy" target="_blank" rel="noopener" >Chirpy</a> theme for <a href="https://jekyllrb.com" target="_blank" rel="noopener">Jekyll</a>.</p></footer></div></div><div id="search-result-wrapper" class="d-flex justify-content-center d-none"><div class="col-11 content"><div id="search-hints"><section><h2 class="panel-heading">Trending Tags</h2><div class="d-flex flex-wrap mt-3 mb-1 me-3"> <a class="post-tag btn btn-outline-primary" href="/tags/how-to/">how to</a> <a class="post-tag btn btn-outline-primary" href="/tags/i-made-a-thing/">i made a thing</a> <a class="post-tag btn btn-outline-primary" href="/tags/hacking/">hacking</a> <a class="post-tag btn btn-outline-primary" href="/tags/microsoft/">microsoft</a> <a class="post-tag btn btn-outline-primary" href="/tags/slow-internet/">slow internet</a> <a class="post-tag btn btn-outline-primary" href="/tags/surface/">surface</a> <a class="post-tag btn btn-outline-primary" href="/tags/update/">update</a> <a class="post-tag btn btn-outline-primary" href="/tags/wifi/">wifi</a> <a class="post-tag btn btn-outline-primary" href="/tags/xiaomi/">xiaomi</a></div></section></div><div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div></div></div></div><aside aria-label="Scroll to Top"> <button id="back-to-top" type="button" class="btn btn-lg btn-box-shadow"> <i class="fas fa-angle-up"></i> </button></aside></div><div id="mask" class="d-none position-fixed w-100 h-100 z-1"></div><aside id="notification" class="toast w-auto rounded-5 text-nowrap" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="false" ><div class="d-flex align-items-center"><div class="toast-body ps-3">New content available</div><button type="button" class="btn btn-primary btn-sm rounded-2 py-0" aria-label="Update" >Update</button> <button type="button" class="btn-close mx-3 ms-2" data-bs-dismiss="toast" aria-label="Close" ></button></div></aside>
1<script> (function () { const themeMap = Theme.newThemeMap('light', 'dark_dimmed'); const initTheme = themeMap[Theme.resolvedTheme]; let lang = 'en';if (lang.length > 2 && !lang.startsWith('zh')) { lang = lang.slice(0, 2); } let giscusAttributes = { src: 'https://giscus.app/client.js', 'data-repo': 'blitzdose/blitzdose.github.io', 'data-repo-id': 'R_kgDOLawvVg', 'data-category': 'Posts', 'data-category-id': 'DIC_kwDOLawvVs4CdrEW', 'data-mapping': 'pathname', 'data-strict' : '0', 'data-reactions-enabled': '1', 'data-emit-metadata': '0', 'data-theme': initTheme, 'data-input-position': 'top', 'data-lang': lang, 'data-loading': 'lazy', crossorigin: 'anonymous', async: '' }; let giscusNode = document.createElement('script'); Object.entries(giscusAttributes).forEach(([key, value]) => giscusNode.setAttribute(key, value) ); const $footer = document.querySelector('footer'); $footer.insertAdjacentElement("beforebegin", giscusNode); addEventListener('message', (event) => { if (event.source === window && event.data && event.data.id === Theme.eventId) { const newTheme = themeMap[Theme.resolvedTheme]; const message = { setConfig: { theme: newTheme } }; const iframe = document.querySelector('.giscus-frame'); if (!iframe) { return; } if (iframe.classList.contains('giscus-frame--loading')) { let url = new URL(iframe.src); url.searchParams.set('theme', newTheme); iframe.src = url.toString(); } iframe.contentWindow.postMessage({ giscus: message }, 'https://giscus.app'); } }); })(); </script>
1
1<script> document.addEventListener('DOMContentLoaded', () => { SimpleJekyllSearch({ searchInput: document.getElementById('search-input'), resultsContainer: document.getElementById('search-results'), json: '/assets/js/data/search.json', searchResultTemplate: '<article class="px-1 px-sm-2 px-lg-4 px-xl-0"><header><h2><a href="{url}">{title}</a></h2><div class="post-meta d-flex flex-column flex-sm-row text-muted mt-1 mb-1"> {categories} {tags}</div></header><p>{content}</p></article>', noResultsText: '<p class="mt-5">Oops! No results found.</p>', templateMiddleware: function(prop, value, template) { if (prop === 'categories') { if (value === '') { return `${value}`; } else { return `<div class="me-sm-4"><i class="far fa-folder fa-fw"></i>${value}</div>`; } } if (prop === 'tags') { if (value === '') { return `${value}`; } else { return `<div><i class="fa fa-tag fa-fw"></i>${value}</div>`; } } } }); }); </script>
vendor: 1 bytes, line 1
1
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.