1<!doctype html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta http-equiv=X-UA-Compatible content="IE=edge"><meta name=generator content="Hugo 0.148.2"><link rel=canonical href=https://mattoppenheim.com/blog/><meta name=description content="Blogs"><link rel=apple-touch-icon sizes=180x180 href=https://mattoppenheim.com/apple-touch-icon.png><link rel=icon type=image/png sizes=32x32 href=https://mattoppenheim.com/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=https://mattoppenheim.com/favicon-16x16.png><link rel=manifest href=https://mattoppenheim.com/site.webmanifest><link rel=mask-icon href=https://mattoppenheim.com/safari-pinned-tab.svg color=#000000><meta name=msapplication-TileColor content="#ffffff"><meta name=theme-color content="#ffffff"><style>body{visibility:hidden;opacity:0}</style><style id=darkTheme>.intro-and-nav,.main-and-footer{filter:invert(100%)}*{background-color:inherit}img:not([src*=".svg"]),.colors,iframe,.demo-container{filter:invert(100%)}</style><link rel=stylesheet href=/css/prism.css media=none onload='this.media="all"'><link rel=stylesheet type=text/css href=/css/styles.css><link rel=stylesheet href=/css/custom_01.css><link rel=stylesheet href=/css/custom_02.css><title>Blogs | mattoppenheim</title></head><body><a href=#main>skip to content</a><noscript><style>body{visibility:visible;opacity:1}</style></noscript><svg style="display:none"><symbol id="bookmark" viewBox="0 0 40 50"><g transform="translate(2266 3206.2)"><path style="stroke:currentColor;stroke-width:3.2637;fill:none" d="m-2262.2-3203.4-.2331 42.195 16.319-16.318 16.318 16.318.2331-42.428z"/></g></symbol><symbol id="w3c" viewBox="0 0 127.09899 67.763"><text font-size="83" style="font-size:83px;font-family:Trebuchet;letter-spacing:-12;fill-opacity:0" letter-spacing="-12" y="67.609352" x="-26.782778">W3C</text><text font-size="83" style="font-size:83px;font-weight:700;font-family:Trebuchet;fill-opacity:0" y="67.609352" x="153.21722" font-weight="bold">SVG</text><path style="fill:currentColor;image-rendering:optimizeQuality;shape-rendering:geometricPrecision" d="m33.695.377 12.062 41.016 12.067-41.016h8.731L46.587 67.763h-.831l-12.48-41.759-12.479 41.759h-.832l-19.965-67.386h8.736l12.061 41.016 8.154-27.618-3.993-13.397h8.737z"/><path style="fill:currentColor;image-rendering:optimizeQuality;shape-rendering:geometricPrecision" d="m91.355 46.132c0 6.104-1.624 11.234-4.862 15.394-3.248 4.158-7.45 6.237-12.607 6.237-3.882.0-7.263-1.238-10.148-3.702-2.885-2.47-5.02-5.812-6.406-10.022l6.82-2.829c1.001 2.552 2.317 4.562 3.953 6.028 1.636 1.469 3.56 2.207 5.781 2.207 2.329.0 4.3-1.306 5.909-3.911 1.609-2.606 2.411-5.738 2.411-9.401.0-4.049-.861-7.179-2.582-9.399-1.995-2.604-5.129-3.912-9.397-3.912H66.9v-3.991L78.546 8.698H64.484l-3.911 6.655H58.08v-14.976h32.441v4.075l-12.31 21.217c4.324 1.385 7.596 3.911 9.815 7.571 2.22 3.659 3.329 7.953 3.329 12.892z"/><path style="fill:currentColor;image-rendering:optimizeQuality;shape-rendering:geometricPrecision" d="m125.21.0 1.414 8.6-5.008 9.583s-1.924-4.064-5.117-6.314c-2.693-1.899-4.447-2.309-7.186-1.746-3.527.73-7.516 4.938-9.258 10.13-2.084 6.21-2.104 9.218-2.178 11.978-.115 4.428.58 7.043.58 7.043s-3.04-5.626-3.011-13.866c.018-5.882.947-11.218 3.666-16.479 2.404-4.627 5.954-7.404 9.114-7.728 3.264-.343 5.848 1.229 7.841 2.938 2.089 1.788 4.213 5.698 4.213 5.698l4.94-9.837z"/><path style="fill:currentColor;image-rendering:optimizeQuality;shape-rendering:geometricPrecision" d="m125.82 48.674s-2.208 3.957-3.589 5.48c-1.379 1.524-3.849 4.209-6.896 5.555-3.049 1.343-4.646 1.598-7.661 1.306-3.01-.29-5.807-2.032-6.786-2.764-.979-.722-3.486-2.864-4.897-4.854-1.42-2-3.634-5.995-3.634-5.995s1.233 4.001 2.007 5.699c.442.977 1.81 3.965 3.749 6.572 1.805 2.425 5.315 6.604 10.652 7.545 5.336.945 9.002-1.449 9.907-2.031.907-.578 2.819-2.178 4.032-3.475 1.264-1.351 2.459-3.079 3.116-4.108.487-.758 1.276-2.286 1.276-2.286l-1.276-6.644z"/></symbol><symbol id="tag" viewBox="0 0 177.16535 177.16535"><g transform="translate(0 -875.2)"><path style="fill-rule:evenodd;stroke-width:0;fill:currentColor" d="m159.9 894.3-68.79 8.5872-75.42 77.336 61.931 60.397 75.429-76.565 6.8495-69.755zm-31.412 31.835a10.813 10.813.0 011.8443 2.247 10.813 10.813.0 01-3.5174 14.872l-.0445.0275a10.813 10.813.0 01-14.86-3.5714 10.813 10.813.0 013.5563-14.863 10.813 10.813.0 0113.022 1.2884z"/></g></symbol>
1<symbol id="balloon" viewBox="0 0 141.73228 177.16535"><g transform="translate(0 -875.2)"><g><path style="fill:currentColor" d="m68.156 882.83-.88753 1.4269c-4.9564 7.9666-6.3764 17.321-5.6731 37.378.36584 10.437 1.1246 23.51 1.6874 29.062.38895 3.8372 3.8278 32.454 4.6105 38.459 4.6694-.24176 9.2946.2879 14.377 1.481 1.2359-3.2937 5.2496-13.088 8.886-21.623 6.249-14.668 8.4128-21.264 10.253-31.252 1.2464-6.7626 1.6341-12.156 1.4204-19.764-.36325-12.93-2.1234-19.487-6.9377-25.843-2.0833-2.7507-6.9865-7.6112-7.9127-7.8436-.79716-.20019-6.6946-1.0922-6.7755-1.0248-.02213.0182-5.0006-.41858-7.5248-.22808l-2.149-.22808h-3.3738z"/><path style="fill:currentColor" d="m61.915 883.28-3.2484.4497c-1.7863.24724-3.5182.53481-3.8494.63994-2.4751.33811-4.7267.86957-6.7777 1.5696-.28598.0-1.0254.20146-2.3695.58589-5.0418 1.4418-6.6374 2.2604-8.2567 4.2364-6.281 7.6657-11.457 18.43-12.932 26.891-1.4667 8.4111.71353 22.583 5.0764 32.996 3.8064 9.0852 13.569 25.149 22.801 37.517 1.3741 1.841 2.1708 2.9286 2.4712 3.5792 3.5437-1.1699 6.8496-1.9336 10.082-2.3263-1.3569-5.7831-4.6968-21.86-6.8361-33.002-.92884-4.8368-2.4692-14.322-3.2452-19.991-.68557-5.0083-.77707-6.9534-.74159-15.791.04316-10.803.41822-16.162 1.5026-21.503 1.4593-5.9026 3.3494-11.077 6.3247-15.852z"/><path style="fill:currentColor" d="m94.499 885.78c-.10214-.0109-.13691.0-.0907.0409.16033.13489 1.329 1.0675 2.5976 2.0723 6.7003 5.307 11.273 14.568 12.658 25.638.52519 4.1949.24765 14.361-.5059 18.523-2.4775 13.684-9.7807 32.345-20.944 53.519l-3.0559 5.7971c2.8082.76579 5.7915 1.727 8.9926 2.8441 11.562-11.691 18.349-19.678 24.129-28.394 7.8992-11.913 11.132-20.234 12.24-31.518.98442-10.02-1.5579-20.876-6.7799-28.959-.2758-.4269-.57803-.86856-.89617-1.3166-3.247-6.13-9.752-12.053-21.264-16.131-2.3687-.86369-6.3657-2.0433-7.0802-2.1166z"/><path style="fill:currentColor" d="m32.52 892.22c-.2009-.13016-1.4606.81389-3.9132 2.7457-11.486 9.0476-17.632 24.186-16.078 39.61.79699 7.9138 2.4066 13.505 5.9184 20.562 5.8577 11.77 14.749 23.219 30.087 38.74.05838.059.12188.1244.18052.1838 1.3166-.5556 2.5965-1.0618 3.8429-1.5199-.66408-.32448-1.4608-1.3297-3.8116-4.4602-5.0951-6.785-8.7512-11.962-13.051-18.486-5.1379-7.7948-5.0097-7.5894-8.0586-13.054-6.2097-11.13-8.2674-17.725-8.6014-27.563-.21552-6.3494.13041-9.2733 1.775-14.987 2.1832-7.5849 3.9273-10.986 9.2693-18.07 1.7839-2.3656 2.6418-3.57 2.4409-3.7003z"/><path style="fill:currentColor" d="m69.133 992.37c-6.2405.0309-12.635.76718-19.554 2.5706 4.6956 4.7759 9.935 10.258 12.05 12.625l4.1272 4.6202h11.493l3.964-4.4516c2.0962-2.3541 7.4804-7.9845 12.201-12.768-8.378-1.4975-16.207-2.6353-24.281-2.5955z"/><rect style="stroke-width:0;fill:currentColor" ry="2.0328" height="27.746" width="22.766" y="1017.7" x="60.201"/></g></g></symbol><symbol id="info" viewBox="0 0 41.667 41.667"><g transform="translate(-37.035 -1004.6)"><path style="stroke-linejoin:round;stroke:currentColor;stroke-linecap:round;stroke-width:3.728;fill:none" d="m76.25 1030.2a18.968 18.968.0 01-23.037 13.709 18.968 18.968.0 01-13.738-23.019 18.968 18.968.0 0123.001-13.768 18.968 18.968.0 0113.798 22.984"/><g transform="matrix(1.1146 0 0 1.1146 -26.276 -124.92)"><path style="stroke:currentColor;stroke-linecap:round;stroke-width:3.728;fill:none" d="m75.491 1039.5v-8.7472"/><path style="stroke-width:0;fill:currentColor" transform="scale(-1)" d="m-73.193-1024.5a2.3719 2.3719.0 01-2.8807 1.7142 2.3719 2.3719.0 01-1.718-2.8785 2.3719 2.3719.0 012.8763-1.7217 2.3719 2.3719.0 011.7254 2.8741"/></g></g></symbol><symbol id="warning" viewBox="0 0 48.430474 41.646302"><g transform="translate(-1.1273 -1010.2)"><path style="stroke-linejoin:round;stroke:currentColor;stroke-linecap:round;stroke-width:4.151;fill:none" d="m25.343 1012.3-22.14 37.496h44.28z"/><path style="stroke:currentColor;stroke-linecap:round;stroke-width:4.1512;fill:none" d="m25.54 1027.7v8.7472"/><path style="stroke-width:0;fill:currentColor" d="m27.839 1042.8a2.3719 2.3719.0 01-2.8807 1.7143 2.3719 2.3719.0 01-1.718-2.8785 2.3719 2.3719.0 012.8763-1.7217 2.3719 2.3719.0 011.7254 2.8741"/></g></symbol><symbol id="menu" viewBox="0 0 50 50"><rect style="stroke-width:0;fill:currentColor" height="10" width="50" y="0" x="0"/><rect style="stroke-width:0;fill:currentColor" height="10" width="50" y="20" x="0"/><rect style="stroke-width:0;fill:currentColor" height="10" width="50" y="40" x="0"/></symbol>
1<symbol id="link" viewBox="0 0 50 50"><g transform="translate(0 -1002.4)"><g transform="matrix(.095670 0 0 .095670 2.3233 1004.9)"><g><path style="stroke-width:0;fill:currentColor" d="m452.84 192.9-128.65 128.65c-35.535 35.54-93.108 35.54-128.65.0l-42.881-42.886 42.881-42.876 42.884 42.876c11.845 11.822 31.064 11.846 42.886.0l128.64-128.64c11.816-11.831 11.816-31.066.0-42.9l-42.881-42.881c-11.822-11.814-31.064-11.814-42.887.0l-45.928 45.936c-21.292-12.531-45.491-17.905-69.449-16.291l72.501-72.526c35.535-35.521 93.136-35.521 128.64.0l42.886 42.881c35.535 35.523 35.535 93.141-.001 128.66zM198.56 361.41l-45.903 45.9c-11.845 11.846-31.064 11.817-42.881.0l-42.884-42.881c-11.845-11.821-11.845-31.041.0-42.886l128.65-128.65c11.819-11.814 31.069-11.814 42.884.0l42.886 42.886 42.876-42.886-42.876-42.881c-35.54-35.521-93.113-35.521-128.65.0l-128.65 128.64c-35.538 35.545-35.538 93.146.0 128.65l42.883 42.882c35.51 35.54 93.11 35.54 128.65.0l72.496-72.499c-23.956 1.597-48.092-3.784-69.474-16.283z"/></g></g></g></symbol><symbol id="doc" viewBox="0 0 35 45"><g transform="translate(-147.53 -539.83)"><path style="stroke:currentColor;stroke-width:2.4501;fill:none" d="m149.38 542.67v39.194h31.354V542.67z"/><g style="stroke-width:25" transform="matrix(.098003 0 0 .098003 133.69 525.96)"><path d="m220 252.36h2e2" style="stroke:currentColor;stroke-width:25;fill:none"/><path style="stroke:currentColor;stroke-width:25;fill:none" d="m220 409.95h2e2"/><path d="m220 488.74h2e2" style="stroke:currentColor;stroke-width:25;fill:none"/><path d="m220 331.15h2e2" style="stroke:currentColor;stroke-width:25;fill:none"/></g></g></symbol><symbol id="tick" viewBox="0 0 177.16535 177.16535"><g transform="translate(0 -875.2)"><rect style="stroke-width:0;fill:currentColor" transform="rotate(30)" height="155" width="40" y="702.99" x="556.82"/><rect style="stroke-width:0;fill:currentColor" transform="rotate(30)" height="40" width="90.404" y="817.99" x="506.42"/></g></symbol></svg><div class=wrapper><header class=intro-and-nav role=banner><div><div class=intro><a class=logo href=https://mattoppenheim.com/ aria-label="mattoppenheim home page"><img src=/images/logo.svg alt="I don't have this much hair anymore."></a><p class=library-desc>Simplifying Complexity</p></div><nav id=patterns-nav class=patterns role=navigation><h2 class=vh>Main navigation</h2><button id=menu-button aria-expanded=false> 2<svg viewBox="0 0 50 50" aria-hidden="true" focusable="false"><use href="#menu"/></svg> 3Menu</button><ul id=patterns-list><li class=pattern><a href=/><svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50"><use href="#bookmark"/></svg> 4<span class=text>Home</span></a></li><li class=pattern><a href=/blog/><svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50"><use href="#bookmark"/></svg> 5<span class=text>Blog</span></a></li><li class=pattern><a href=/projects/><svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50"><use href="#bookmark"/></svg> 6<span class=text>Projects</span></a></li><li class=pattern><a href=/tags/><svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50"><use href="#bookmark"/></svg> 7<span class=text>Tags</span></a></li><li class=pattern><a href=/about/><svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50"><use href="#bookmark"/></svg> 8<span class=text>About</span></a></li><li class=pattern><a href=/cartoons/><svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50"><use href="#bookmark"/></svg> 9<span class=text>Cartoons</span></a></li><li class=pattern><a href=/manuals/><svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50"><use href="#bookmark"/></svg> 10<span class=text>Manuals</span></a></li></ul></nav></div></header><div class=main-and-footer><div><main id=main><h1>Blogs</h1><input id=search type=text placeholder="Search by title..." aria-label="Search by title"><ul class=patterns-list id=list><li><h2><a href=/blog/2025/09/grounding_fnirsi_soldering_iron/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 11How to ground the tip of a FNIRSI soldering iron</a></h2></li><li><h2><a href=/blog/2025/07/nginx_html_location/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 12Where to put html files for nginx to serve</a></h2></li><li><h2><a href=/blog/2025/07/pyside6_pyqtgraph/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 13PyQtGraph plotting problems due to PySide6 update</a></h2></li><li><h2><a href=/blog/2025/06/esp32_single_binary_files/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 14Combining the three .bin files created by PlatformIO for an ESP32-S3 to a single .bin file</a></h2></li><li><h2><a href=/blog/2025/03/arduino_for_m5stickc_plus2/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 15Setting up Arduino IDE for the M5StickC Plus2</a></h2></li><li><h2><a href=/blog/2025/03/unbricking_m5stickc_plus2/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 16Getting the M5StickC Plus2 to flash</a></h2></li><li><h2><a href=/blog/2024/10/undefined_reference_error/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 17undefined reference error when using Platform IO with the Arduino framework</a></h2></li><li><h2><a href=/blog/2024/09/esp32_flashing/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 18ESP32 flashing</a></h2></li><li><h2><a href=/blog/2024/09/wacom_brushstroke/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 19Improving Wacom tablet brushstrokes in Linux</a></h2></li><li><h2><a href=/blog/2024/05/open_source_fpga_toolchain/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 20FPGA open source toolchain installation for Debian</a></h2></li><li><h2><a href=/blog/2024/02/lilygolib_touchdrvft6x36_error/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 21LilyGoLib.cpp:129:27: error: 'init' is not a member of 'TouchDrvFT6X36'</a></h2></li><li><h2><a href=/blog/2024/01/getting_tft_esp_examples_to_work_with_lilygo_t_embed_s3/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 22Getting TFT_eSPI examples to work on the Lilygo T-Embed-S3</a></h2></li><li><h2><a href=/blog/2023/12/using_dxf_files_to_create_kicad_pcb_outlines/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 23Using dxf files to create board edges in KiCAD</a></h2></li><li><h2><a href=/blog/2023/12/installing_lattice_icecube_diamond_debian/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 24Installing Lattice iCEcube2 and Lattice Diamond in Debian</a></h2></li><li><h2><a href=/blog/2023/12/generating_svgs_from_cadquery_assemblies/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 25Generating svg plots from cadquery assemblies</a></h2></li><li><h2><a href=/blog/2023/10/configuring_gpio_as_input_on_the_microbit/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 26Configuring GPIO as input on the micro:bit</a></h2></li><li><h2><a href=/blog/2023/10/setting_bits/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 27Setting bits in microcontroller registers without getting confused</a></h2></li><li><h2><a href=/blog/2023/10/setting_gpios_on_the_microbit/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 28Setting GPIOs on the micro:bit edge connector</a></h2></li><li><h2><a href=/blog/2023/08/lattice_icecube_installation/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 29Lattice iCEcube2 installation on Debian</a></h2></li><li><h2><a href=/blog/2023/05/youcompleteme_setup/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 30vim YouCompleteMe without autoprompts</a></h2></li><li><h2><a href=/blog/2023/04/microbit_v2_cpp/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 31C++ on the micro:bit v2 using Codal</a></h2></li><li><h2><a href=/blog/2023/01/writing_tests_for_microbit_micropython/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 32Writing tests for Micropython on the BBC micro:bit</a></h2></li><li><h2><a href=/blog/2022/12/hosting_hugo_website_on_remote_server/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 33Hosting a Hugo generated site on a remote server</a></h2></li><li><h2><a href=/blog/2022/10/jacdac-using-the-black-magic-programmer/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 34Jacdac: Using the Black Magic programmer</a></h2></li><li><h2><a href=/blog/2022/10/converting-kicad-nightly-build-to-kicad-stable/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 35Converting kicad-nightly build to kicad stable</a></h2></li><li><h2>
35<a href=/blog/2022/05/using-microbits-to-send-data-to-and-from-an-arduino-wirelessly/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 36Using micro:bits to send data to and from an Arduino wirelessly</a></h2></li><li><h2><a href=/blog/2022/05/logic-level-converter-between-an-arduino-and-microbit-using-a-fet-transistor/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 37Logic level converter between an Arduino Uno and micro:bit using a FET transistor</a></h2></li><li><h2><a href=/blog/2022/04/downloading-youtube-videos-using-termux-and-youtube-dl-on-android/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 38Downloading YouTube videos using Termux and youtube-dl on Android</a></h2></li><li><h2><a href=/blog/2022/04/kicad-fixing-invisible-gaps-in-board-outlines-on-the-edge-cuts-layer/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 39Kicad - fixing invisible gaps in board outlines on the Edge.Cuts layer</a></h2></li><li><h2><a href=/blog/2022/04/installing-kicad-nightly-build-on-debian-11/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 40Installing kicad nightly-build on Debian 11</a></h2></li><li><h2><a href=/blog/2022/02/remove-spikes-from-a-dataset-using-python/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 41Remove spikes from a dataset using python</a></h2></li><li><h2><a href=/blog/2021/12/bendlabs-single-axis-bend-sensor/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 42Bendlabs single-axis bend sensor</a></h2></li><li><h2><a href=/blog/2021/12/mounting-an-android-phone-on-debian-linux-to-synchronise-files/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 43Mounting an Android phone on Debian Linux to synchronise files</a></h2></li><li><h2><a href=/blog/2021/12/getting-the-unexpected-makers-esp32-s2-board-to-program/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 44Getting the unexpected makers esp32 s2 board to program from the Arduino IDE or CLI</a></h2></li><li><h2><a href=/blog/2021/07/using-the-microbit-to-detect-electrical-current/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 45Using the micro:bit to detect electrical current</a></h2></li><li><h2><a href=/blog/2021/07/microbit-edge-connector-pcb-retainer-clip/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 46micro:bit edge connector expansion board retainer clip</a></h2></li><li><h2><a href=/blog/2021/06/making-assistive-technology-devices/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 47making assistive technology devices</a></h2></li><li><h2><a href=/blog/2021/03/microbit-v1-with-yotta-removing-build-warnings/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 48micro:bit v1 with yotta - removing build warnings</a></h2></li><li><h2><a href=/blog/2021/03/getting-started-with-c-on-the-microbit-v2-in-linux/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 49Getting started with C++ on the micro:bit v2 in Linux</a></h2></li><li><h2><a href=/blog/2021/01/setting-up-a-micropython-editor-with-the-bbc-microbit-v2-on-linux/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 50Setting up a micropython editor with the BBC micro:bit v2 on Linux</a></h2></li><li><h2><a href=/blog/2021/01/setting-up-mu-editor-with-the-bbc-microbit-on-linux/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 51Setting up mu-editor with the BBC micro:bit v1 on Linux</a></h2></li><li><h2><a href=/blog/2020/12/microbit-c-toolchain-explained-part-2-yotta-file-locations/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 52micro:bit c toolchain explained, part 2. yotta, file locations</a></h2></li><li><h2><a href=/blog/2020/10/accessing-smartbox-grid-3-using-python-and-win32gui/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 53Accessing Smartbox Grid 3 using Python and win32gui</a></h2></li><li><h2><a href=/blog/2020/10/using-a-microbit-to-control-a-servo-motor/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 54Using a microbit to control a servo motor</a></h2></li><li><h2><a href=/blog/2020/09/getting-the-login-screen-on-hotel-wifi-using-linux/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 55Getting the login screen on hotel WiFi using Linux</a></h2></li><li><h2><a href=/blog/2020/09/bbc-microbit-activating-a-servo-motor-using-a-timer/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 56BBC micro:bit guinea pig timed feeder instructions</a></h2></li><li><h2><a href=/blog/2020/09/bbc-microbit-wrist-holders/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 57BBC micro:bit wrist holders</a></h2></li><li><h2><a href=/blog/2020/08/automating-loading-micropython-code-to-the-bbc-microbit-in-linux/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 58Automating loading micropython code to the BBC micro:bit in Linux</a></h2></li><li><h2><a href=/blog/2020/08/powering-the-bbc-microbit-with-a-5v-power-bank/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 59Powering the BBC micro:bit with a 5V power bank</a></h2></li><li><h2><a href=/blog/2020/08/configuring-a-python-virtualenv-in-debian/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 60Configuring a Python virtualenv in Debian</a></h2></li><li><h2><a href=/blog/2020/08/running-handshake-in-administrator-mode-to-operate-grid-3/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 61Running handShake in administrator mode to operate Grid 3</a></h2></li><li><h2><a href=/blog/2020/07/give-me-a-minute-idea-in-use-in-commercial-aac-software/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 62Give Me a Minute idea in use in commercial AAC software</a></h2></li><li><h2><a href=/blog/2020/04/connecting-the-bbc-microbit-to-windows-and-adding-code-to-it/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 63Connecting the BBC micro:bit to Windows and adding code to it</a></h2></li><li><h2><a href=/blog/2020/04/3d-printing-face-shields-on-a-cr10-mini/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 643D printing face shields on a Creality CR10-Mini</a></h2></li><li><h2><a href=/blog/2020/03/microbit-c-toolchain-make-ninja-cmake-explained/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 65micro:bit C toolchain explained, part 1. ninja & cmake.</a></h2></li><li><h2><a href=/blog/2020/01/using-vim-to-change-character-hexadecimal-values-beyond-standard-ascii-values/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 66Using Vim to change character hexadecimal values beyond standard ASCII values</a></h2></li><li><h2><a href=/blog/2019/09/communication-matters-conference-2019/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 67Communication Matters Conference 2019</a></h2></li><li><h2><a href=/blog/2019/07/voltage-controlled-current-source/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 68Voltage controlled current source</a></h2></li><li><h2><a href=/blog/2019/06/using-the-microbit-to-control-switch-access-software/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 69Using the microbit to control switch access software</a></h2></li><li><h2>
69<a href=/blog/2019/05/checking-the-resonant-frequency-of-a-piezoelectric-crystal/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 70Checking the resonant frequency of a piezoelectric crystal</a></h2></li><li><h2><a href=/blog/2019/03/switching-a-5v-dc-motor-with-a-microbit/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 71Switching a 5V DC motor with a microbit.</a></h2></li><li><h2><a href=/blog/2019/03/wordpress-displaying-code-without-or-tags/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 72Wordpress - displaying code without line breaks or paragraph tags</a></h2></li><li><h2><a href=/blog/2019/03/measuring-the-bbc-microbit-led-current-draw/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 73Measuring the BBC micro:bit LED current draw</a></h2></li><li><h2><a href=/blog/2019/01/pytest-and-relative-imports-part-2/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 74pytest and relative imports part 2</a></h2></li><li><h2><a href=/blog/2018/12/200v-piezo-crystal-driver/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 75200V piezo crystal driver</a></h2></li><li><h2><a href=/blog/2018/10/using-the-drv8662-chip-to-get-105v-from-battery-voltage/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 76Using the DRV8662 chip to create 105V DC from battery voltage.</a></h2></li><li><h2><a href=/blog/2018/07/real-time-accelerometer-display-from-three-bbc-microbits/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 77Real time accelerometer display from three BBC Micro:bits</a></h2></li><li><h2><a href=/blog/2018/07/sharing-wifi-with-a-raspberry-pi-zero-w-using-create_ap/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 78Sharing wifi with a raspberry pi zero w using create_ap</a></h2></li><li><h2><a href=/blog/2018/06/using-udev-to-remove-the-need-for-sudo-with-the-bbc-microbit/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 79Using udev to remove the need for sudo with the BBC Micro:bit</a></h2></li><li><h2><a href=/blog/2018/06/using-tkinter-and-python-to-continuously-display-the-output-from-a-system-command/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 80Using tkinter and python to continuously display the output from a system command</a></h2></li><li><h2><a href=/blog/2018/06/ssh-to-a-pi-zero-w-from-a-linux-box/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 81ssh to a pi zero w from a linux box</a></h2></li><li><h2><a href=/blog/2018/05/multiple-bbc-microbit-serial-ports-when-using-pyocd-gdbserver/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 82Zombie BBC micro:bit serial ports created when using pyocd-gdbserver --persist</a></h2></li><li><h2><a href=/blog/2018/05/sublime-text-3-adding-a-custom-python-3-build/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 83Sublime Text 3, adding a custom python 3 build</a></h2></li><li><h2><a href=/blog/2018/05/python-3-threading-and-references/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 84Python 3, threading and references</a></h2></li><li><h2><a href=/blog/2018/05/installing-the-eclipse-embedded-systems-register-view-plugin/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 85Installing the Eclipse Embedded Systems Register View plugin</a></h2></li><li><h2><a href=/blog/2018/05/eclipse-yotta-c-c-and-the-bbc-microbit/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 86Eclipse, yotta, C/C++ and the BBC Micro:bit</a></h2></li><li><h2><a href=/blog/2018/03/relative-imports-in-jupyter-notebooks/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 87Relative imports in Jupyter notebooks</a></h2></li><li><h2>
87<a href=/blog/2018/03/using-python-to-detect-activity-in-sensory-softwares-grid-2/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 88Using Python to detect activity in Sensory Software's Grid 2</a></h2></li><li><h2><a href=/blog/2018/01/running-pytest-when-the-test-files-are-in-a-different-directory-to-the-source-files/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 89Running pytest when the test files are in a different directory to the source files</a></h2></li><li><h2><a href=/blog/2017/12/sending-parameters-to-a-jupyter-notebook-cell-using-click/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 90Sending parameters to a Jupyter Notebook cell using click</a></h2></li><li><h2><a href=/blog/2017/11/setting-up-yotta-and-c-with-the-bbc-microbit-by-modifying-the-examples-directory/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 91Setting up yotta and C with the BBC micro:bit by modifying the examples directory</a></h2></li><li><h2><a href=/blog/2017/11/getting_microbit_radio_working_with_mbed_compiler/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 92Getting the BBC Micro:bit radio to work with the mbed online C/C++ compiler</a></h2></li><li><h2><a href=/blog/2017/11/enabling-the-analog-to-digital-converter-adc-on-the-bbc-microbit-using-c-c/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 93Enabling the analog to digital converter (ADC) on the BBC Micro:bit using C/C++</a></h2></li><li><h2><a href=/blog/2017/11/bash-script-to-mount-and-unmount-a-bbc-microbit/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 94Bash script to mount and unmount a BBC Micro:bit</a></h2></li><li><h2><a href=/blog/2017/07/eyeblink/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 95eyeBlink - enabling natural two way conversation with somebody who uses an eyetracker</a></h2></li><li><h2><a href=/blog/2017/06/booting-a-new-lenovo-thinkpad-from-usb-stick-to-use-clonezilla/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 96Booting a new Lenovo Thinkpad from USB stick to use Clonezilla</a></h2></li><li><h2><a href=/blog/2017/04/installing-linux-mint-18-1-onto-a-lenovo-260-with-an-encrypted-home-drive/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 97Installing linux mint 18.1 onto a Lenovo 260 with an encrypted home drive</a></h2></li><li><h2><a href=/blog/2017/04/how-to-configure-the-accelerometer-range-on-the-microbit-using-micropython/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 98how to configure the accelerometer range on the microbit using micropython</a></h2></li><li><h2><a href=/blog/2017/04/parsing-and-unpacking-python3-serial-data-containing-double-backslashes-2/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 99parsing and unpacking python3 serial data containing double backslashes part 2</a></h2></li><li><h2><a href=/blog/2017/04/parsing-and-unpacking-python3-serial-data-containing-double-backslashes/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 100parsing and unpacking python3 serial data containing double backslashes</a></h2></li><li><h2><a href=/blog/2017/01/cd-player-for-the-visually-impaired/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 101CD player for the visually impaired</a></h2></li><li><h2><a href=/blog/2017/01/ewma-filter-example-using-pandas-and-python/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 102EWMA filter example using pandas and python</a></h2></li><li><h2><a href=/blog/2016/12/xbee-series-1-accelerometer-sampling/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 103XBee series 1 accelerometer sampling</a></h2></li><li><h2><a href=/blog/2016/10/using-pyzmq-to-communicate-between-guis-and-processes/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 104Using pyzmq to communicate between GUIs and processes</a></h2></li><li><h2><a href=/blog/2016/09/fixing-relative-and-absolute-links-in-word-microsoft-office-2013/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 105Fixing relative and absolute links in Word, Microsoft Office 2013, Office 2016, Office 2019</a></h2></li><li><h2><a href=/blog/2016/08/python-how-to-communicate-between-threads-using-pydispatcher/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 106python - how to communicate between threads using pydispatcher</a></h2></li><li><h2><a href=/blog/2016/05/one-minus-alpha-filter/><svg class="bookmark" aria-hidden="true" viewBox="0 0 40 50" focusable="false"><use href="#bookmark"/></svg> 107One minus alpha filter</a></h2></li></ul></main><footer role=contentinfo><div><label for=themer>dark theme: <input type=checkbox id=themer class=vh> 108<span aria-hidden=true></span></label></div>Made with <a href=https://gohugo.io/>Hugo</a>. Themed by <a href=https://github.com/zwbetz-gh/cupper-hugo-theme>Cupper</a>.</footer></div></div></div>
108<script src=/js/dom-scripts.js></script>
108<script src=/js/prism.js></script>
108<script src=/js/search.7aef046a0cc8b0c532f1d20087b920459bc868c936bb48a6ae221eceefca2d07.js></script>
108<link rel=stylesheet href=/css/search.fe0cd54a21628574bff49d721c827d1bb165ab56b0f22dd55ae78addbe61c309.css></link>
109<script src=/js/custom_01.js></script>
109<script src=/js/custom_02.js></script>
109<link rel=stylesheet href=https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css integrity=sha384-dbVIfZGuN1Yq7/1Ocstc1lUEm+AT+/rCkibIcC/OmWo5f0EA48Vf8CytHzGrSwbQ crossorigin=anonymous>
109<script defer src=https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js integrity=sha384-2BKqo+exmr9su6dir+qCw08N2ZKRucY4PrGQPPWU1A7FtlCGjmEGFqXCv5nyM5Ij crossorigin=anonymous></script>
109<script defer src=https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js integrity=sha384-kWPLUVMOks5AQFrykwIup5lo0m3iMkkHrD0uJ4H5cjeGihAutqP0yW0J6dpFiVkI crossorigin=anonymous onload=renderMathInElement(document.body)></script>
109</body></html>
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.