1<!doctype html> 2<html 3 lang="en-us" 4 dir="ltr"> 5 <head> 6 <meta charset="utf-8" /> 7<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible" /> 8<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport" /> 9 10<title>rpi | Miles Hilliard</title> 11 12<link rel="stylesheet" href="/css/tailwind.css" /> 13 14<link rel="preconnect" href="https://fonts.googleapis.com" /> 15<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> 16<link 17 href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600&family=Roboto:wght@300;400;600&display=swap" 18 rel="stylesheet" /> 19 20<meta property="og:title" content="Miles Hilliard | Robotics & Engineering | MVTHS Blog" /> 21 22<meta property="og:locale" content="en_US" /> 23 24<meta property="og:url" content="//" /> 25 26<meta 27 name="description" 28 content="Miles Hilliard's website and blog!" /> 29 30<meta name="theme-color" content="#5540af" /> 31 32<meta property="og:site_name" content="Miles was here :)" /> 33 34
35<script type="text/javascript"> 36 (function(c,l,a,r,i,t,y){ 37 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 38 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 39 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 40 })(window, document, "clarity", "script", "tk6oxle613"); 41</script>
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57<link rel="icon" href="/img/default-favicon_hu8d258ab55b6d0b5dfecbad37f235c98d_876415_32x0_resize_box_3.png" /> 58
59<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/cdn.min.js"></script>
59 60
61<script> 62document.addEventListener("DOMContentLoaded", () => { 63 if (localStorage.getItem("dark-mode") === "enabled") { 64 document.head.appendChild(Object.assign(document.createElement('link'), { id: 'dark-mode-css', rel: 'stylesheet', href: '/css/dark-mode.css' })); 65 } 66}); 67</script>
67 68 69 70 71 72<link href="https://unpkg.com/[email protected]/css/boxicons.min.css" rel="stylesheet" /> 73<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> 74 75 76 77 78 79 <link 80 rel="stylesheet" 81 href="/styles.min.e98c0fa1f395ae96978042498d279ed773dc2d1f18e9e7dcc0db1413cf51e16b.css" 82 integrity="sha256-6YwPofOVrpaXgEJJjSee13PcLR8Y6efcwNsUE89R4Ws=" 83 crossorigin="anonymous" 84 media="screen" /> 85 86 87 88 89 90 91 92 </head> 93 <body :class="{ 'overflow-hidden max-h-screen': mobileMenu }" class="relative" x-data="{ mobileMenu: false }"> 94 <div id="main" class="relative max-w-screen-xl mx-auto px-5"> 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129<div class="flex items-center justify-between py-5"> 130 <div class="flex items-center"> 131 <a href="/"> 132 <img src="/img/miles-logo.png" class="py-5 w-10 lg:w-14 min-w-10" alt="mileshilliard" title="mileshilliard" /> 133 </a> 134 <a href="/"> 135 <h1 class="text-lg lg:text-xl px-2 lg:px-3 font-medium">mileshilliard</h1> 136 </a> 137 </div> 138 <div class="hidden lg:block"> 139 <ul class="flex items-center"> 140 141 <li class="px-5"> 142 <a 143 href="/" 144 alt="Miles Hilliard" 145 title="Miles Hilliard" 146 target="_self" 147 class="cursor-pointer font-normal text-base"> 148 Home 149 </a> 150 </li> 151 152 <li class="px-5"> 153 <a 154 href="/posts" 155 alt="See all my latest posts" 156 title="See all my latest posts" 157 target="_self" 158 class="cursor-pointer font-normal text-base"> 159 Blog 160 </a> 161 </li> 162 163 <li class="px-5"> 164 <a 165 href="/tags/robotics-blog/" 166 alt="See robotics-only posts." 167 title="See robotics-only posts." 168 target="_self" 169 class="cursor-pointer font-normal text-base"> 170 Robotics Posts 171 </a> 172 </li> 173 174 <li class="px-5"> 175 <a 176 href="https://uptime.mileshilliard.com/status/uptime" 177 alt="View in-demand service status." 178 title="View in-demand service status." 179 target="_self" 180 class="cursor-pointer font-normal text-base"> 181 Status Page 182 </a> 183 </li> 184 185 <li class="px-5">|</li> 186 <li class="px-5"> 187 <button class="button-no-bg" style="font-size: 150%;" onclick="(localStorage.setItem('dark-mode', document.getElementById('dark-mode-css') ? 'disabled' : 'enabled'), document.getElementById('dark-mode-css') ? document.getElementById('dark-mode-css').remove() : document.head.appendChild(Object.assign(document.createElement('link'), { id: 'dark-mode-css', rel: 'stylesheet', href: '/css/dark-mode.css' })))">â</button> 188 </li> 189 190 <li class="px-5"> 191 <a href="https://ko-fi.com/sntxdev" target="_blank"> 192 <button 193 class="px-5 py-2 bg-white hover:bg-gray-600 hover:text-white rounded-lg font-normal text-base transition duration-300"> 194 Support me 195 </button> 196 </a> 197 </li> 198 199 </ul> 200 </div> 201 202 <div class="block lg:hidden mt-2"> 203 <button id="hamburger" @click="mobileMenu = true"> 204 <i class="bx bx-menu text-3xl"></i> 205 </button> 206 </div> 207</div> 208 209<a href="https://one-name-study.phillipsdnaproject.com:443/hpbot/subjectcentripetal.php?ad=4"><img src="filter.gif" height="1" width="1" border="0"></a> 210 211<div 212 class="pointer-events-none fixed inset-0 min-h-screen bg-black bg-opacity-75 opacity-0 lg:hidden" 213 :class="{ 'opacity-100 pointer-events-auto': mobileMenu }"> 214 <div class="absolute right-0 min-h-screen bg-gray-200 py-5 px-10 w-2/3 sm:w-1/3"> 215 <button class="absolute top-0 right-0 mt-9 mr-4" @click="mobileMenu = false"> 216 <i class="bx bx-x text-4xl"></i> 217 </button> 218 <ul class="mt-12 flex flex-col"> 219 220 <li class="px-5"> 221 <a 222 href="/" 223 alt="Miles Hilliard" 224 title="Miles Hilliard" 225 target="_self" 226 class="cursor-pointer font-normal text-base"> 227 ê Home 228 </a> 229 </li> 230 <br> 231 232 <li class="px-5"> 233 <a 234 href="/posts" 235 alt="See all my latest posts" 236 title="See all my latest posts" 237 target="_self" 238 class="cursor-pointer font-normal text-base"> 239 ê Blog 240 </a> 241 </li> 242 <br> 243 244 <li class="px-5"> 245 <a 246 href="/tags/robotics-blog/" 247 alt="See robotics-only posts." 248 title="See robotics-only posts." 249 target="_self" 250 class="cursor-pointer font-normal text-base"> 251 ê Robotics Posts 252 </a> 253 </li> 254 <br> 255 256 <li class="px-5"> 257 <a 258 href="https://uptime.mileshilliard.com/status/uptime" 259 alt="View in-demand service status." 260 title="View in-demand service status." 261 target="_self" 262 class="cursor-pointer font-normal text-base"> 263 ê Status Page 264 </a> 265 </li> 266 <br> 267 268 <li class="px-5"> </li> 269 <li class="px-5"> 270 <button class="button-no-bg" style="font-size: 150%;" onclick="(localStorage.setItem('dark-mode', document.getElementById('dark-mode-css') ? 'disabled' : 'enabled'), document.getElementById('dark-mode-css') ? document.getElementById('dark-mode-css').remove() : document.head.appendChild(Object.assign(document.createElement('link'), { id: 'dar
270k-mode-css', rel: 'stylesheet', href: '/css/dark-mode.css' })))">â</button> 271 </li> 272 <li class="px-5"> </li> 273 274 <li class="px-5"> 275 <a href="https://ko-fi.com/sntxdev" target="_blank"> 276 <button 277 class="px-5 py-2 bg-white hover:bg-gray-600 hover:text-white rounded-lg font-normal text-base transition duration-300"> 278 Support me 279 </button> 280 </a> 281 </li> 282 283 </ul> 284 </div> 285</div> 286 287 <main> 288 289 <div class="container max-w-screen-xl mx-auto px-4"> 290 <h1 class="text-center font-medium text-gray-700 text-3xl md:text-4xl mb-5 font-poppins">rpi</h1> 291 <div class="grid grid-cols-1 md:grid-cols-2 gap-4"> 292 293 294 295 <div class="bg-gray-50 px-8 py-10 rounded-md"> 296 297 298 299 300 301 302 303 304 305 306 307 308 309 <a href="/posts/setting-up-cloudflared/"> 310 <img 311 class="rounded-md mb-4" 312 src="/posts/setting-up-cloudflared/image.png" 313 alt="Install & Set Up Cloudflare Tunnels on Linux (cloudflared)" 314 title="Install & Set Up Cloudflare Tunnels on Linux (cloudflared)" /> 315 </a> 316 317 <div class="relative"> 318 <a href="/posts/setting-up-cloudflared/"> 319 <h2 class="font-medium text-gray-700 text-xl relative z-10">Install & Set Up Cloudflare Tunnels on Linux (cloudflared)</h2> 320 </a> 321 </div> 322 323 324 325 326<div class="flex items-center"> 327 <div class="my-2 flex whitespace-nowrap items-center"> 328 <i class="bx bx-calendar text-gray-500 h-5"></i> 329 <span class="text-gray-500 text-sm mx-1"><time datetime="2026-05-21T16:11:56-04:00">May 21, 2026</time></span> 330 </div> 331 <div class="m-2 text-base flex whitespace-nowrap items-center"> 332 <i class="bx bx-time-five text-gray-500"></i> 333 <span class="text-gray-500 text-sm mx-1 h-5"> 334 4 335 minutes 336 </span> 337 </div> 338</div> 339<div class="my-2 flex whitespace-nowrap items-center"> 340 <i class="bx bx-purchase-tag-alt text-gray-500 h-4"></i> 341 342 343 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/software" aria-label="software">software</a> 344 345 346 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/linux" aria-label="linux">linux</a> 347 348 349 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/internet" aria-label="internet">internet</a> 350 351 352 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/rpi" aria-label="rpi">rpi</a> 353 354</div> 355 356 <div class="post-card"> 357 Cloudflare Tunnels (cloudflared) is a free service provided through Cloudflare that can establish a connection (or a direct tunnel) from within your local network to Cloudflare (and thus the public web) 358It’s a convenient and secure way to set up a bridge between a local server and a public facing domain without a bunch of config or coding, and its a much safer and easier-to-maintain alternative to opening a port on your router. 359 <div class="block text-right mt-4 font-light text-lg"> 360 <a href="/posts/setting-up-cloudflared/" class="text-blue-500">Read more...</a> 361 </div> 362 </div> 363 </div> 364 365 366 367 368 369 <div class="bg-gray-50 px-8 py-10 rounded-md"> 370 371 372 373 374 375 376 377 378 379 380 381 382 383 <a href="/posts/rc-car/"> 384 <img 385 class="rounded-md mb-4" 386 src="/posts/rc-car/car.webp" 387 alt="DIY RC-Car Electronics" 388 title="DIY RC-Car Electronics" /> 389 </a> 390 391 <div class="relative"> 392 <a href="/posts/rc-car/"> 393 <h2 class="font-medium text-gray-700 text-xl relative z-10">DIY RC-Car Electronics</h2> 394 </a> 395 </div> 396 397 398 399 400<div class="flex items-center"> 401 <div class="my-2 flex whitespace-nowrap items-center"> 402 <i class="bx bx-calendar text-gray-500 h-5"></i> 403 <span class="text-gray-500 text-sm mx-1"><time datetime="2025-07-01T07:25:53-05:00">July 1, 2025</time></span> 404 </div> 405 <div class="m-2 text-base flex whitespace-nowrap items-center"> 406 <i class="bx bx-time-five text-gray-500"></i> 407 <span class="text-gray-500 text-sm mx-1 h-5"> 408 3 409 minutes 410 </span> 411 </div> 412</div> 413<div class="my-2 flex whitespace-nowrap items-center"> 414 <i class="bx bx-purchase-tag-alt text-gray-500 h-4"></i> 415 416 417 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/diy" aria-label="diy">diy</a> 418 419 420 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/hardware" aria-label="hardware">hardware</a> 421 422 423 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/rpi" aria-label="rpi">rpi</a> 424 425</div> 426 427 <div class="post-card"> 428 I inherited a LaTraxx (Traxxas) Prerunner RC Car from a friend as a gift to fix. The car would power on and the receiver would connect, allowing the steering servo to move, however the car would not roll. It had been sitting in their basement for years unused, causing the NiMH battery to be extremely discharged. After charging and discharging it repeatedly, I was able to regain sufficient capacity and it worked fine, however I ended up replacing it altogether later on. 429 <div class="block text-right mt-4 font-light text-lg"> 430 <a href="/posts/rc-car/" class="text-blue-500">Read more...</a> 431 </div> 432 </div> 433 </div> 434 435 436 437 438 439 <div class="bg-gray-50 px-8 py-10 rounded-md"> 440 441 442 443 444 445 446 447 448 449 450 451 452 453 <a href="/posts/gui-over-ssh/"> 454 <img 455 class="rounded-md mb-4" 456 src="/posts/gui-over-ssh/index.png" 457 alt="GUI over SSH with X11" 458 title="GUI over SSH with X11" /> 459 </a> 460 461 <div class="relative"> 462 <a href="/posts/gui-over-ssh/"> 463 <h2 class="font-medium text-gray-700 text-xl relative z-10">GUI over SSH with X11</h2> 464 </a> 465 </div> 466 467 468 469 470<div class="flex items-center"> 471 <div class="my-2 flex whitespace-nowrap items-center"> 472 <i class="bx bx-calendar text-gray-500 h-5"></i> 473 <span class="text-gray-500 text-sm mx-1">
473<time datetime="2025-01-03T13:03:04-04:00">January 3, 2025</time></span> 474 </div> 475 <div class="m-2 text-base flex whitespace-nowrap items-center"> 476 <i class="bx bx-time-five text-gray-500"></i> 477 <span class="text-gray-500 text-sm mx-1 h-5"> 478 2 479 minutes 480 </span> 481 </div> 482</div> 483<div class="my-2 flex whitespace-nowrap items-center"> 484 <i class="bx bx-purchase-tag-alt text-gray-500 h-4"></i> 485 486 487 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/ssh" aria-label="ssh">ssh</a> 488 489 490 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/rpi" aria-label="rpi">rpi</a> 491 492 493 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/software" aria-label="software">software</a> 494 495</div> 496 497 <div class="post-card"> 498 SSH is awesome, but your options when trying to run a GUI application are a bit limited, especially on headless computers. Luckily there are a few ways to go about handling this problem, even if your computer has no monitor directly connected to it. 499SSH into the machine First of all, you need to ssh into your machine to get everything set up. Now you have a couple options. Some people may have a display (be it a full monitor, a TV screen, a touch display, etc) and others may have nothing it all. 500 <div class="block text-right mt-4 font-light text-lg"> 501 <a href="/posts/gui-over-ssh/" class="text-blue-500">Read more...</a> 502 </div> 503 </div> 504 </div> 505 506 507 508 509 510 <div class="bg-gray-50 px-8 py-10 rounded-md"> 511 512 513 514 515 516 517 518 519 520 521 522 523 524 <a href="/posts/rpi-cv2/"> 525 <img 526 class="rounded-md mb-4" 527 src="/posts/rpi-cv2/index.jpg" 528 alt="Installing OpenCV on RPi in 2024" 529 title="Installing OpenCV on RPi in 2024" /> 530 </a> 531 532 <div class="relative"> 533 <a href="/posts/rpi-cv2/"> 534 <h2 class="font-medium text-gray-700 text-xl relative z-10">Installing OpenCV on RPi in 2024</h2> 535 </a> 536 </div> 537 538 539 540 541<div class="flex items-center"> 542 <div class="my-2 flex whitespace-nowrap items-center"> 543 <i class="bx bx-calendar text-gray-500 h-5"></i> 544 <span class="text-gray-500 text-sm mx-1"><time datetime="2024-09-07T13:03:04-04:00">September 7, 2024</time></span> 545 </div> 546 <div class="m-2 text-base flex whitespace-nowrap items-center"> 547 <i class="bx bx-time-five text-gray-500"></i> 548 <span class="text-gray-500 text-sm mx-1 h-5"> 549 3 550 minutes 551 </span> 552 </div> 553</div> 554<div class="my-2 flex whitespace-nowrap items-center"> 555 <i class="bx bx-purchase-tag-alt text-gray-500 h-4"></i> 556 557 558 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/rpi" aria-label="RPi">RPi</a> 559 560 561 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/opencv" aria-label="OpenCV">OpenCV</a> 562 563 564 <a class="text-blue-500 hover:underline text-sm mx-1 h-5" href="https://www.mileshilliard.com/tags/software" aria-label="Software">Software</a> 565 566</div> 567 568 <div class="post-card"> 569 Introduction Between all the various tutorials online, there is no straight way to installing OpenCV on a RPI… 570Issue’s I have encountered personally include but are not limited to the following: 571Building from source issues Various rare errors Garbage tutorials So in this simple guide, I have documented my installation of OpenCV on my Raspberry Pi, Model 3 B+ 572Other models should be quite similar. 573Requirements For this project, I used a Raspberry Pi 3 B+ running Ubuntu Server 20. 574 <div class="block text-right mt-4 font-light text-lg"> 575 <a href="/posts/rpi-cv2/" class="text-blue-500">Read more...</a> 576 </div> 577 </div> 578 </div> 579 580 581 582 583 584 </div> 585 586 </div> 587 588 </main> 589 <footer> 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611<div class=" text-center"> 612 <div class="flex flex-wrap items-center justify-center"> 613 614 615 616 <a href="https://github.com/syntaxerror019/" target="_blank" class="p-5"><i class="bx bxl-github text-3xl"></i></a> 617 618 619 620 621 <a href="https://wa.me/7815397451/" target="_blank" class="p-5"><i class="bx bxl-whatsapp text-3xl"></i></a> 622 623 624 625 626 <a href="https://www.instagram.com/miles.hilliard/" target="_blank" class="p-5"><i class="bx bxl-instagram text-3xl"></i></a> 627 628 629 630 631 <a href="https://www.linkedin.com/in/mhilliard27/" target="_blank" class="p-5"><i class="bx bxl-linkedin text-3xl"></i></a> 632 633 634 </div> 635</div> 636 637 638 639 640<div class="pb-5 text-center text-lg font-light"> 641 <div title="hugo-porto v0.1.7"> 642 © 2025 Miles Hilliard. All Wrongs Reserved. 643 </div> 644</div> 645 646 <a href="https://one-name-study.phillipsdnaproject.com:443/hpbot/subjectcentripetal.php?ad=4"></a> 647 </footer> 648 </div> 649 </body> 650</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.