Compare commits

..

No commits in common. "pages" and "main" have entirely different histories.
pages ... main

64 changed files with 442 additions and 3116 deletions

View File

@ -1,4 +0,0 @@
neilhanlon.me
neilhanlon.com
hanlon.ninja
thepotato.tech

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
public/
resources/
pages.git/

13
.gitlab-ci.yml Normal file
View File

@ -0,0 +1,13 @@
image: registry.gitlab.com/pages/hugo/hugo_extended:latest
variables:
GIT_SUBMODULE_STRATEGY: recursive
pages:
script:
- hugo
artifacts:
paths:
- public
only:
- main

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "themes/hugo-sustain"]
path = themes/hugo-sustain
url = https://git.shrug.pw/neil/hugo-sustain.git

View File

@ -1,91 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>404 Page not found | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<div class="page-not-found">
<h3>Uh oh! Page not found!</h3>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

8
archetypes/default.md Normal file
View File

@ -0,0 +1,8 @@
---
title: '{{ humanize .Name }}'
description: ''
date: {{ .Date }}
draft: true
categories: []
tags: []
---

View File

@ -1,60 +1,74 @@
$primary-color: #ABC9E3;
$hover-color: #5E7191;
html, body {
border-top-color: #ABC9E3; }
border-top-color: $primary-color;
}
div.footer {
border-bottom-color: #ABC9E3; }
border-bottom-color: $primary-color;
}
.container a {
color: #ABC9E3; }
color: $primary-color;
}
.container a:hover {
color: #5E7191; }
color: $hover-color;
}
.panel-default h4 a, h5 a {
color: #ABC9E3; }
color: $primary-color;
}
figure.inline {
display: inline-flex;
justify-content: center;
align-items: center;
height: auto;
width: 90%; }
width: 90%;
}
figure.inline-40 {
display: inline-flex;
height: auto;
width: 40%; }
width: 40%;
}
figure.inline-60 {
display: inline-flex;
height: auto;
width: 60%; }
width: 60%;
}
figure.inline-80 {
display: inline-flex;
height: auto;
width: 80%; }
width: 80%;
}
figure.right {
float: right; }
float: right;
}
figure.left {
float: left; }
float: left;
}
figure > img {
display: inline-flex;
width: 90%; }
width: 90%;
}
h2, h3 {
clear: both; }
clear: both;
}
h5 {
font-weight: bold; }
font-weight: bold
}
.clearfix {
overflow: auto; }
overflow: auto;
}
.clearfix::after {
content: "";
clear: both;
display: table; }
display: table;
}

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>DIY | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>DIY on Neil Hanlon</title>
<link>/categories/diy/</link>
<description>Recent content in DIY on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/categories/diy/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>FOSS | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>FOSS on Neil Hanlon</title>
<link>/categories/foss/</link>
<description>Recent content in FOSS on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/categories/foss/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Home Automation | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Home Automation on Neil Hanlon</title>
<link>/categories/home-automation/</link>
<description>Recent content in Home Automation on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/categories/home-automation/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,148 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Categories | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/categories/diy/">DIY</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/categories/foss/">FOSS</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/categories/home-automation/">Home Automation</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
October 2, 2016
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/categories/projects/">projects</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on Neil Hanlon</title>
<link>/categories/</link>
<description>Recent content in Categories on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/categories/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>DIY</title>
<link>/categories/diy/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/categories/diy/</guid>
<description></description>
</item>
<item>
<title>FOSS</title>
<link>/categories/foss/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/categories/foss/</guid>
<description></description>
</item>
<item>
<title>Home Automation</title>
<link>/categories/home-automation/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/categories/home-automation/</guid>
<description></description>
</item>
<item>
<title>projects</title>
<link>/categories/projects/</link>
<pubDate>Sun, 02 Oct 2016 22:55:05 -0400</pubDate>
<guid>/categories/projects/</guid>
<description></description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>projects | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
October 2, 2016
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/projects/">Projects</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>projects on Neil Hanlon</title>
<link>/categories/projects/</link>
<description>Recent content in projects on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Sun, 02 Oct 2016 22:55:05 -0400</lastBuildDate><atom:link href="/categories/projects/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Projects</title>
<link>/projects/</link>
<pubDate>Sun, 02 Oct 2016 22:55:05 -0400</pubDate>
<guid>/projects/</guid>
<description></description>
</item>
</channel>
</rss>

52
config.toml Executable file
View File

@ -0,0 +1,52 @@
#baseURL = "https://drop1.neilhanlon.me:1313/"
baseURL = "/"
languageCode = "en-US"
title = "Neil Hanlon"
# Enable comments by entering your Disqus shortname
disqusShortname = ""
# Enable Google Analytics by entering your tracking code
# googleAnalytics = ""
theme = "hugo-sustain"
[permalinks]
post = "/:year/:month/:day/:slug"
[params]
avatar = "img/profile.png"
author = "Neil Hanlon"
description = "Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer"
# Custom assets can be linked with their paths relative to static/
custom_css = []
custom_scss = ['sass/overrides.scss']
custom_js = []
[params.social]
Github = "NeilHanlon"
Email = "neil@shrug.pw.com"
Twitter = "NeilHanlon"
LinkedIn = "hanlonneil"
#Stackoverflow = "username"
#Medium = "hanlon.neil"
Instagram = "noellathekitty"
[params.volunteer]
Rocky = "https://rockylinux.org"
## Main Menu
[[menu.main]]
name = "posts"
weight = 100
identifier = "posts"
url = "/posts/"
[[menu.main]]
name = "projects"
identifier = "projects"
weight = 200
url = "/projects/"
[[menu.main]]
name = "resume"
identifier = "resume"
weight = 300
url = "/resume.pdf"

20
content/_index.md Normal file
View File

@ -0,0 +1,20 @@
---
---
I'm **Neil Hanlon**, a DevOps/Network/Potato Engineer
I love Open Source, Linux, and building cool things with great people.
Feel free to take a peek at some of my [projects], or check out my cat's [Instagram].
For more check out my academic & professional [resume].
Contact me at [@NeilHanlon] or by yelling really really loud.
[projects]: /projects
[resume]: https://shrug.pw/resume.pdf
[@NeilHanlon]: https://twitter.com/NeilHanlon
[instagram]: https://instagram.com/noellathekitty

View File

@ -0,0 +1,258 @@
---
title: 'Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)'
description: 'Learn how to create a smart soldering iron using Pinecil with Home Assistant and ESPHome, as well as explore the options for controlling and monitoring your Pinecil with Bluetooth'
date: 2023-03-28T19:01:25-04:00
draft: false
categories: [Home Automation, DIY, FOSS]
tags: [Pinecil, Home Assistant, DIY, RISC-V, Blisp, PineSAM, Pine64, esphome]
---
About a year ago, [wesdottoday](https://hachyderm.io/@wesdottoday) told me to
buy a Pinecil and, once they came back in stock before the holidays.. I did just
that... Fast forward a couple months and I've got a
[copr](https://copr.fedorainfracloud.org/coprs/neil/blisp/) for flashing the
Pinecil's firmware (IronOS), and am spending my weekends playing around with
Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan
when I start tinkering at my desk, lest my lungs die from the fumes.
<p>
{{< figure src="pinecil-esp32.jpg" alt="ESP-WROOM-32 Development MCU with a Pinecil v2 leaning on it" class="inline-40 left" >}}
By popular demand, I'm writing a blog post about the Pinecil, how to flash the
latest firmware, and then what you can (currently) do with bidirectional
communication to your soldering iron.
</p>
We'll also go over two Pinecil community projects offering in-browser
experiences (PineSam and Joric's 'Pinecil'), and lastly some instructions on
using an [ESP32](https://www.espressif.com/en/products/socs/esp32) and
[ESPHome](https://esphome.io/) to send Pinecil data to
[HomeAssistant](https://home-assistant.io/) so you can do everything from
visualize your soldering statistics, to automatically turn on an exhaust fan
when you start working.
### Acknowledgements
- [Ben Brown (Ralim)](https://github.com/ralim) - Maintainer and developer of IronOS for Pinecil and Miniware Irons
- Support them on [Ko-fi](https://ko-fi.com/ralim)
- [Gamiee (Gamelaster)](https://github.com/gamelaster) - Developer and maintainer of pine64_updater, IronOS
- [River-Mochi](https://github.com/river-mochi) for reviewing this article and their excellent organization and documentation work for Pine64 and the Pinecil.
- [TomW1605](https://github.com/TomW1605) & [ithinkido](https://github.com/ithinkido) for their work on the implementation of the Pinecil ESP32 integration
- [Builder555](https://github.com/builder555) - PineSAM maintainer and developer
- [Joric](https://github.com/joric) - Developer of original BLE GATT application for Pinecil
## The Pinecil
The [Pinecil](https://www.pine64.org/pinecil/) is an open-source soldering iron
based on the RISC-V architecture produced by Pine64. There are two versions of
Pinecil - v1 and v2. Pinecil v1 does not have a Bluetooth Low Energy (BLE) chip,
whereas Pinecil v2 does. In this blog post, we will focus on Pinecil v2. Pine64
does not distinguish between v1 and v2 except for on the PCB as a revision. If
you're buying a Pinecil in 2023 or beyond, and it's from an official source, it
is a v2.
You can find more information about the Pinecil in the links below, including
where to buy. Check the Pinecil Wiki for up-to-date information on where to buy
a genuine Pinecil, and how to avoid fakes.
### Links
- [Pine64.com](https://pine64.com/) - Offical store for Pine64 devices. Ships
from China and takes 3-4 weeks for delivery
- [Pine64.org](https://pine64.org) - The community associated with Pine64
devices. Check out the Discord/Telegram chat for a great group of tinkerers,
and if you have any trouble with your Pinecil or associated tools
- [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil) - Lots of tips and
tricks, as well as up to date purchasing and troubleshooting information.
- Shout out to River-Mochi for their _awesome_ work on keeping this up to date
and useful
- [Pine64 Updater](https://github.com/pine64/pine64_updater) - v1 Pinecil updater tool
- [Pinecil Development Projects](https://wiki.pine64.org/wiki/Pinecil#Development_Projects) - Updated links to all community projects
## Blisp
Blisp is a flashing tool used to flash ironOS on Pinecil v2 that stands for
'Bouffalo Labs In-System Programming'. It's used to flash the Bouffalo BL706 MCU
that was integrated on the v2 Pinecil. You can find the source code for Blisp on
[GitHub](https://github.com/pine64/blisp).
I also maintain a Fedora COPR respository for it
[here](https://copr.fedorainfracloud.org/coprs/neil/blisp/), where you can find
packages with precompiled binaries for Fedora and Enterprise Linux (8/9). I am
working with Pine64 to make it easier to get it packaged for Fedora and other
Linux distributions down the road.
### Flashing the beta firmware with blisp
Until version v2.21 of IronOS ships, a beta firmware is required to use the BLE
functionality of the Pinecil v2. There has been a significant amount of testing
and development on the BLE stack on the main tree in the last few months and the
developers have been making sure the BLE features are ready before they are
released to a much larger audience.
{{< figure src="blisp-flash.png" alt="Flashing the Pinecilv2 with blisp CLI" class="" >}}
Once v2.21 is released, binaries can be retrieved from the
[IronOS Releases](https://github.com/Ralim/IronOS/releases) page.
#### Steps to download and flash
These steps assume you have a compiled version of `blisp` in your system path,
either by installing from my COPR, or compiling on your own using the
instructions in the repository.
1. Find the latest sucessful actions run on the ironos repo
[here](https://github.com/Ralim/IronOS/actions/workflows/push.yml?query=branch%3Adev+event%3Apush).
2. Download the `Pinecilv2` zip file for that run, and unzip it
3. Plug your Pinecil into your computer while holding down the 'Minus' (-)
button. The screen should **not** turn on. If on Linux, `dmesg` should report
seeing the BL706 as a serial device.
4. Run the following command to flash the firmware to your Pinecil:
```
blisp write -c bl70x --reset /path/to/Pinecilv2_extracted/Pinecilv2_EN.bin
```
5. Un-plug and plug the Pinecil back in to boot the new firmware
NOTE: You may ignore the .dfu and .hex files provided in the .zip file.
##### Pinecilv2 vs Pinecilv2_multi-lang
Two variants of firmwares for Pinecil are provided: combined mutli-language binaries, and individual per-language binaries. The per-language binaries are much smaller, and while the Pinecilv2 has more flash available to store the mutli-language images, for general usage, you will have an easier time with the language-specific binary rather than the multi-lang binaries.
Multi-lang provides three bundles of languages:
1. Chinese and Japanese
2. Russian, Ukranian, Serbian, and Bulgarian
3. European (All not mentioned above)
Ultimately, it is up to you which you decide to use
#### Pineflash
[Spagett1](https://github.com/Spagett1) updated their Pineflash tool which allows
for a non-command-line experience for flashing new versions of IronOS on the Pinecil V1 and V2, similar to the Pine64 updater (add link) utility for the v1 Pinecil. You can find
more information on the PineFlash
[GitHub repo](https://github.com/Spagett1/PineFlash). Feel free to check it out
and give them feedback!
Pineflash supports Linux and MacOS at this time (2023-04-03), and support for Windows is a work in progress. If you would like to help test, please join the chat and make yourself known.
## Bluetooth Low Energy
Bluetooth Low Energy (BLE) is a wireless communication protocol that is designed
to consume less energy than classic Bluetooth. There is upcoming support in
browser APIs to allow access to BLE devices, and so there are a handful of
options for how to get your Pinecil talking to your computer.
## Interacting with your Pinecil over Bluetooth
### PineSAM by [Builder555](https://github.com/builder555)
PineSAM (Pinecil Settings and Menus) started out as an in-browser way to see and
change settings. It's served a multitude of uses from helping people with
cracked or non-functional screens, all the way to adding really helpful
accessibility features to those who struggle to read the small screen on the
Pinecil. It's is a Python and Vue-based application that has to have a server
component running locally--along with a machine that has bluetooth. You can find
the source code for PineSAM on [GitHub](https://github.com/builder555/PineSAM/), but read on below for how to grab precompiled versions of the application.
{{< figure src="pinesam.png" alt="PineSAM UI" class="inline" >}}
PineSAM allows the user to not only see the live temperature, wattage, and
voltage of their device but change the settings and temperatures at a click.
Uniquely, it allows users to set temperature presets for one-click changes
between temperatures--for example to switch between leaded and unleaded solder.
You can access PineSAM from your mobile device once it's running on your computer to have a touch-capable way of controlling your settings. On your phone, flip the screen to portait mode in order to see the graph as on desktop.
{{< figure src="pinesam-mobile.png" alt="Screenshot of PineSAM UI on Mobile device" class="inline-40 left" >}}
The PineSAM project is working to integrate a "Work" screen which takes
inspiration from Joric's UI. Due to this, it's likely these two projects will
end up combining into one, in my opinion, despite their distinct mechanisms for
retrieving BLE data from the Pinecil.
#### Setting up PineSAM
See the
[project readme](https://github.com/builder555/PineSAM#i-using-pre-made-binaries)
for the most up-to-date instructions. If you run into any trouble, come find us
in the #pinecil channel on Pine64's Discord or Telegram chat.
### [Joric](https://github.com/joric/)'s BLE API
Another project is a more simple web UI that uses in-browser Bluetooth support
(currently only really well supported in Chromium/Firefox, and even then it's
not universal or without bugs. This UI shows a nice graph of your Pinecil's
temperature and power supply information, but is limited to devices supporting
WebBLE, and also is only able to change the set point (temperature) on the
device. You can also find the source code for Joric UI on
[GitHub](https://github.com/joric/pinecil).
{{< figure src="joric-ui.png" alt="Joric's UI" class="inline-60 right" >}}
#### Setting up Joric's UI
No setup needed! Just browse to
[https://joric.github.io/pinecil/](https://joric.github.io/pinecil/) in a
compatible browser. I've personally tested Firefox and Chromium on Fedora 37,
but I know others have got it working on Windows and MacOS, too.
As with PineSAM, feel free to come to chat for help and support.
## Home Assistant Setup with ESPHome
If Home Assistant (HASS) is more your speed, read on below. Be warned to get
this setup, you will need some sort of ESP32 device to read data from your
Pinecil and report it to Home Assistant. I used one of the
[WROOM ESP32 dev boards](https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-Integrated-Compatible/dp/B08D5ZD528)
I've had in my closet for a few months (not an affiliate link).
If you're not familiar, Home Assistant is an open-source home automation
platform which can inte grate with ESPHome, another open source system to
control your ESP8266/ESP32 using just YAML configurations. In this section, I'll
walk though how to setup an ESP32 with will show you how to create a smart
soldering iron using Pinecil with Home Assistant and ESPHome.
{{< figure src="hass-soldering.png" alt="Home Assistant Soldering UI" class="inline" >}}
To make this work, we'll use an
[ESPHome configuration file](https://github.com/TomW1605/esphome_pinecilv2_ble/blob/main/esphome_pinecilv2_ble.yaml)
put together by Pine64 community member TomW1605. Thank you again, Tom!
## Requirements
- ESP32 device (Non affiliate link:
[ESP-WROOM-32 Development MCU on Amazon](https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-Integrated-Compatible/dp/B08D5ZD528))
- Home Assistant already setup
- ESPHome already setup
## Steps
1. Login to ESPHome
2. Import
[this ESPHome configuration file](https://github.com/TomW1605/esphome_pinecilv2_ble/blob/main/esphome_pinecilv2_ble.yaml).
3. Modify and set up the configuration file as follows:
1. Change board in esp32 section to your board.
- If using the WROOM 32 I linked above, use `nodemcu-32s`
2. Setup an encryption key. This must be a base64-encoded, 32 bit string.
- You can create one on the CLI using `openssl rand -base64 32`
3. Change OTA password to desired
4. Change wifi SSID and password for your network in ESPHome secrets
5. Change wifi access point fallback settings to desired
6. **Important** - Change ble_client mac address to your Pinecil's MAC. This
can be found in the settings as well as in logs from the above tools
(Joric/PineSAM)
{{< figure src="pinecil-esphome.png" alt="Pinecil esp32 configuration example" class="inline" >}}
4. Flash the firmware to the ESP32 device
5. Add the device to Home Assistant
6. Create a Home Assistant dashboard to control and monitor your smart soldering
iron.
- An example dashboard can be found at
https://gist.github.com/NeilHanlon/83d6e2cdc6eb83cb205b617f80c2a7c3
- It uses the 'mini-graph-card' and 'auto-entities' integrations from HACS
{{< gist neilhanlon 83d6e2cdc6eb83cb205b617f80c2a7c3 >}}
Now that you've got that setup, you should start to see data coming in about
your Pinecil's settings! Go on and automate thy solder.

View File

@ -0,0 +1,6 @@
---
categories: ["projects"]
date: "2016-10-02T22:55:05-04:00"
tags: ["projects"]
title: "Projects"
---

1
css/main.min.css vendored
View File

@ -1 +0,0 @@
html,body{height:100%;background-color:#fff;font-family:source sans pro,sans-serif;border-top:3px solid #27a822}#content{min-height:100%;height:auto;margin:0 auto -69px;padding:0 0 69px}#about{font-size:1.5rem}.navbar .navbar-brand,.navbar .navbar-brand:hover,.navbar .navbar-brand:focus,.navbar .navbar-link,.navbar .navbar-link:hover,.navbar .navbar-nav>li>a,.navbar .navbar-nav>li>a:hover,.navbar .navbar-nav>li>a:focus,.navbar .navbar-text,.navbar-toggler{color:#6b6b6b}.navbar-nav>.active>a,.navbar-nav>.active>a:hover,.navbar-nav>.active>a:focus,.navbar-nav>.open>a,.navbar-nav>.open>a:hover,.navbar-nav>.open>a:focus{color:#6b6b6b;background-color:#fff}.navbar-toggler:focus{box-shadow:none}.navbar-collapse,.navbar-form{border-color:#6b6b6b}@media(max-width:767px){.navbar-nav .open .dropdown-menu>li>a{color:#6b6b6b}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{color:#6b6b6b}.navbar-nav .open .dropdown-menu>.active>a,.navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-nav .open .dropdown-menu>.active>a:focus{color:#6b6b6b;background-color:#fff}}.container{max-width:800px;text-align:center}.container a{color:#27a822;text-decoration:none}.container a:hover{color:#267723}.container p img,.img-responsive{display:block;height:auto;margin:2rem auto;max-width:100%}.panel{border-style:none}.panel-body{padding-top:-10px;text-align:left}.panel h4{text-align:left;line-height:24px;font-size:22px}.panel h5{text-align:left;line-height:30px;font-size:18px}.panel h6{font-size:15px}.panel h4 a,h5 a{color:#27a822}.panel h4 a:hover,h5 a:hover{color:#267723}.social-links{display:block;margin:0 auto;margin-top:40px;padding:0;width:100%;text-align:center;animation:fade 1s ease 1s both}.social-links li{display:inline-block;padding:5px;padding-top:0;text-align:center}.social-links li a{font-size:20px;color:#000;padding:10px;padding-bottom:4px;transition:all .4s ease}.social-links li a:hover{color:#000}.avatar{padding-top:8vh}.blog-title{padding-top:2px}.label{display:inline-block;margin-bottom:5px}.related-posts{border-top:1px solid #eee;border-bottom:1px solid #eee}.related-posts h4{text-align:center}.page-not-found{padding-top:20%}.disqus{padding-bottom:15px}.blogpost{text-align:left;line-height:30px;font-size:18px}.footer{border-bottom:5px solid #27a822;padding:20px 0;text-decoration:none!important}

6
data/projects.yml Normal file
View File

@ -0,0 +1,6 @@
name: Projects
source:
- icon: fa fa-github
name: Rocky Linux
description: All the infrastructure for Rocky Linux, from soup to nuts. Work with a team of professionals to architect, design, and implement secure systems and proceudres to write Infrastructure as Code to provide systems for the various teams within the Rocky Enterprise Software Foundation, especially Rocky Linux as it gets off the ground. Also work closely with Release Engineering on building next generation Build Automation pipeline tools and ensuring reliability and security in the supply chain.
url: https://github.com/rocky-linux/

37
deploy.sh Normal file
View File

@ -0,0 +1,37 @@
#!/bin/bash -ex
export GIT_AUTHOR_NAME="${GIT_AUTHOR_NAME}"
export GIT_AUTHOR_EMAIL="${GIT_AUTHOR_EMAIL}"
export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
REMOTE="${PUSH_REMOTE:-git@git.shrug.pw:neil/neilhanlon.me.git}"
rm -fr pages.git
mkdir pages.git
( cd pages.git && git init -b pages )
rsync -av public/* pages.git
cat << EOF > pages.git/.domains
neilhanlon.me
neilhanlon.com
hanlon.ninja
thepotato.tech
EOF
cp .woodpecker.yml pages.git/
cd pages.git
set -x
git config user.name "$GIT_AUTHOR_NAME"
git config user.email "$GIT_AUTHOR_EMAIL"
git add -A
git commit -m "Deployment at $(date -u -Is)"
git remote add origin $REMOTE
git push -f origin pages
curl -X POST --fail \
-F token=$GITLAB_DEPLOY_TOKEN \
-F ref=main \
https://gitlab.com/api/v4/projects/29559707/trigger/pipeline

View File

@ -1,129 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta name="generator" content="Hugo 0.111.3">
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<section id="about">
<div class="container">
<div class="avatar mb-5">
<img class="rounded-circle" src="img/profile.png" alt="Responsive image">
</div>
<p>I&rsquo;m <strong>Neil Hanlon</strong>, a DevOps/Network/Potato Engineer</p>
<p>I love Open Source, Linux, and building cool things with great people.</p>
<p>Feel free to take a peek at some of my <a href="/projects">projects</a>, or check out my cat&rsquo;s <a href="https://instagram.com/noellathekitty">Instagram</a>.</p>
<p>For more check out my academic &amp; professional <a href="https://shrug.pw/resume.pdf">resume</a>.</p>
<p>Contact me at <a href="https://twitter.com/NeilHanlon">@NeilHanlon</a> or by yelling really really loud.</p>
<div class="social">
<ul class="social-links">
<li><a href="https://github.com/NeilHanlon"><i class="fa fa-github"></i></a></li>
<li><a href="mailto:neil@shrug.pw.com"><i class="fa fa-envelope"></i></a></li>
<li><a href="https://twitter.com/NeilHanlon"><i class="fa fa-twitter"></i></a></li>
<li><a href="https://linkedin.com/in/hanlonneil"><i class="fa fa-linkedin"></i></a></li>
</ul>
</div>
</div>
</section>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Neil Hanlon</title>
<link>/</link>
<description>Recent content on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Posts | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Posts on Neil Hanlon</title>
<link>/posts/</link>
<description>Recent content in Posts on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/posts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,368 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil) | Neil Hanlon</title>
<meta name="description" content="Learn how to create a smart soldering iron using Pinecil with Home Assistant and ESPHome, as well as explore the options for controlling and monitoring your Pinecil with Bluetooth">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h3 class="mt-3"><b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b></h3>
<div class="blog-title my-4">
<h6>
March 28, 2023
&nbsp;&nbsp;
<span class="badge bg-success">Pinecil</span>
<span class="badge bg-success">Home Assistant</span>
<span class="badge bg-success">DIY</span>
<span class="badge bg-success">RISC-V</span>
<span class="badge bg-success">Blisp</span>
<span class="badge bg-success">PineSAM</span>
<span class="badge bg-success">Pine64</span>
<span class="badge bg-success">esphome</span>
</h6>
</div>
<div class="panel">
<div class="panel-body">
<div class="blogpost">
<p>About a year ago, <a href="https://hachyderm.io/@wesdottoday">wesdottoday</a> told me to
buy a Pinecil and, once they came back in stock before the holidays.. I did just
that&hellip; Fast forward a couple months and I&rsquo;ve got a
<a href="https://copr.fedorainfracloud.org/coprs/neil/blisp/">copr</a> for flashing the
Pinecil&rsquo;s firmware (IronOS), and am spending my weekends playing around with
Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan
when I start tinkering at my desk, lest my lungs die from the fumes.</p>
<!-- raw HTML omitted -->
<figure class="inline-40 left"><img src="pinecil-esp32.jpg"
alt="ESP-WROOM-32 Development MCU with a Pinecil v2 leaning on it"/>
</figure>
<p>By popular demand, I&rsquo;m writing a blog post about the Pinecil, how to flash the
latest firmware, and then what you can (currently) do with bidirectional
communication to your soldering iron.</p>
<!-- raw HTML omitted -->
<p>We&rsquo;ll also go over two Pinecil community projects offering in-browser
experiences (PineSam and Joric&rsquo;s &lsquo;Pinecil&rsquo;), and lastly some instructions on
using an <a href="https://www.espressif.com/en/products/socs/esp32">ESP32</a> and
<a href="https://esphome.io/">ESPHome</a> to send Pinecil data to
<a href="https://home-assistant.io/">HomeAssistant</a> so you can do everything from
visualize your soldering statistics, to automatically turn on an exhaust fan
when you start working.</p>
<h3 id="acknowledgements">Acknowledgements</h3>
<ul>
<li><a href="https://github.com/ralim">Ben Brown (Ralim)</a> - Maintainer and developer of IronOS for Pinecil and Miniware Irons
<ul>
<li>Support them on <a href="https://ko-fi.com/ralim">Ko-fi</a></li>
</ul>
</li>
<li><a href="https://github.com/gamelaster">Gamiee (Gamelaster)</a> - Developer and maintainer of pine64_updater, IronOS</li>
<li><a href="https://github.com/river-mochi">River-Mochi</a> for reviewing this article and their excellent organization and documentation work for Pine64 and the Pinecil.</li>
<li><a href="https://github.com/TomW1605">TomW1605</a> &amp; <a href="https://github.com/ithinkido">ithinkido</a> for their work on the implementation of the Pinecil ESP32 integration</li>
<li><a href="https://github.com/builder555">Builder555</a> - PineSAM maintainer and developer</li>
<li><a href="https://github.com/joric">Joric</a> - Developer of original BLE GATT application for Pinecil</li>
</ul>
<h2 id="the-pinecil">The Pinecil</h2>
<p>The <a href="https://www.pine64.org/pinecil/">Pinecil</a> is an open-source soldering iron
based on the RISC-V architecture produced by Pine64. There are two versions of
Pinecil - v1 and v2. Pinecil v1 does not have a Bluetooth Low Energy (BLE) chip,
whereas Pinecil v2 does. In this blog post, we will focus on Pinecil v2. Pine64
does not distinguish between v1 and v2 except for on the PCB as a revision. If
you&rsquo;re buying a Pinecil in 2023 or beyond, and it&rsquo;s from an official source, it
is a v2.</p>
<p>You can find more information about the Pinecil in the links below, including
where to buy. Check the Pinecil Wiki for up-to-date information on where to buy
a genuine Pinecil, and how to avoid fakes.</p>
<h3 id="links">Links</h3>
<ul>
<li><a href="https://pine64.com/">Pine64.com</a> - Offical store for Pine64 devices. Ships
from China and takes 3-4 weeks for delivery</li>
<li><a href="https://pine64.org">Pine64.org</a> - The community associated with Pine64
devices. Check out the Discord/Telegram chat for a great group of tinkerers,
and if you have any trouble with your Pinecil or associated tools</li>
<li><a href="https://wiki.pine64.org/wiki/Pinecil">Pinecil Wiki</a> - Lots of tips and
tricks, as well as up to date purchasing and troubleshooting information.
<ul>
<li>Shout out to River-Mochi for their <em>awesome</em> work on keeping this up to date
and useful</li>
</ul>
</li>
<li><a href="https://github.com/pine64/pine64_updater">Pine64 Updater</a> - v1 Pinecil updater tool</li>
<li><a href="https://wiki.pine64.org/wiki/Pinecil#Development_Projects">Pinecil Development Projects</a> - Updated links to all community projects</li>
</ul>
<h2 id="blisp">Blisp</h2>
<p>Blisp is a flashing tool used to flash ironOS on Pinecil v2 that stands for
&lsquo;Bouffalo Labs In-System Programming&rsquo;. It&rsquo;s used to flash the Bouffalo BL706 MCU
that was integrated on the v2 Pinecil. You can find the source code for Blisp on
<a href="https://github.com/pine64/blisp">GitHub</a>.</p>
<p>I also maintain a Fedora COPR respository for it
<a href="https://copr.fedorainfracloud.org/coprs/neil/blisp/">here</a>, where you can find
packages with precompiled binaries for Fedora and Enterprise Linux (8/9). I am
working with Pine64 to make it easier to get it packaged for Fedora and other
Linux distributions down the road.</p>
<h3 id="flashing-the-beta-firmware-with-blisp">Flashing the beta firmware with blisp</h3>
<p>Until version v2.21 of IronOS ships, a beta firmware is required to use the BLE
functionality of the Pinecil v2. There has been a significant amount of testing
and development on the BLE stack on the main tree in the last few months and the
developers have been making sure the BLE features are ready before they are
released to a much larger audience.</p>
<figure><img src="blisp-flash.png"
alt="Flashing the Pinecilv2 with blisp CLI"/>
</figure>
<p>Once v2.21 is released, binaries can be retrieved from the
<a href="https://github.com/Ralim/IronOS/releases">IronOS Releases</a> page.</p>
<h4 id="steps-to-download-and-flash">Steps to download and flash</h4>
<p>These steps assume you have a compiled version of <code>blisp</code> in your system path,
either by installing from my COPR, or compiling on your own using the
instructions in the repository.</p>
<ol>
<li>Find the latest sucessful actions run on the ironos repo
<a href="https://github.com/Ralim/IronOS/actions/workflows/push.yml?query=branch%3Adev+event%3Apush">here</a>.</li>
<li>Download the <code>Pinecilv2</code> zip file for that run, and unzip it</li>
<li>Plug your Pinecil into your computer while holding down the &lsquo;Minus&rsquo; (-)
button. The screen should <strong>not</strong> turn on. If on Linux, <code>dmesg</code> should report
seeing the BL706 as a serial device.</li>
<li>Run the following command to flash the firmware to your Pinecil:
<pre tabindex="0"><code>blisp write -c bl70x --reset /path/to/Pinecilv2_extracted/Pinecilv2_EN.bin
</code></pre></li>
<li>Un-plug and plug the Pinecil back in to boot the new firmware</li>
</ol>
<p>NOTE: You may ignore the .dfu and .hex files provided in the .zip file.</p>
<h5 id="pinecilv2-vs-pinecilv2_multi-lang">Pinecilv2 vs Pinecilv2_multi-lang</h5>
<p>Two variants of firmwares for Pinecil are provided: combined mutli-language binaries, and individual per-language binaries. The per-language binaries are much smaller, and while the Pinecilv2 has more flash available to store the mutli-language images, for general usage, you will have an easier time with the language-specific binary rather than the multi-lang binaries.</p>
<p>Multi-lang provides three bundles of languages:</p>
<ol>
<li>Chinese and Japanese</li>
<li>Russian, Ukranian, Serbian, and Bulgarian</li>
<li>European (All not mentioned above)</li>
</ol>
<p>Ultimately, it is up to you which you decide to use</p>
<h4 id="pineflash">Pineflash</h4>
<p><a href="https://github.com/Spagett1">Spagett1</a> updated their Pineflash tool which allows
for a non-command-line experience for flashing new versions of IronOS on the Pinecil V1 and V2, similar to the Pine64 updater (add link) utility for the v1 Pinecil. You can find
more information on the PineFlash
<a href="https://github.com/Spagett1/PineFlash">GitHub repo</a>. Feel free to check it out
and give them feedback!</p>
<p>Pineflash supports Linux and MacOS at this time (2023-04-03), and support for Windows is a work in progress. If you would like to help test, please join the chat and make yourself known.</p>
<h2 id="bluetooth-low-energy">Bluetooth Low Energy</h2>
<p>Bluetooth Low Energy (BLE) is a wireless communication protocol that is designed
to consume less energy than classic Bluetooth. There is upcoming support in
browser APIs to allow access to BLE devices, and so there are a handful of
options for how to get your Pinecil talking to your computer.</p>
<h2 id="interacting-with-your-pinecil-over-bluetooth">Interacting with your Pinecil over Bluetooth</h2>
<h3 id="pinesam-by-builder555httpsgithubcombuilder555">PineSAM by <a href="https://github.com/builder555">Builder555</a></h3>
<p>PineSAM (Pinecil Settings and Menus) started out as an in-browser way to see and
change settings. It&rsquo;s served a multitude of uses from helping people with
cracked or non-functional screens, all the way to adding really helpful
accessibility features to those who struggle to read the small screen on the
Pinecil. It&rsquo;s is a Python and Vue-based application that has to have a server
component running locally&ndash;along with a machine that has bluetooth. You can find
the source code for PineSAM on <a href="https://github.com/builder555/PineSAM/">GitHub</a>, but read on below for how to grab precompiled versions of the application.</p>
<figure class="inline"><img src="pinesam.png"
alt="PineSAM UI"/>
</figure>
<p>PineSAM allows the user to not only see the live temperature, wattage, and
voltage of their device but change the settings and temperatures at a click.
Uniquely, it allows users to set temperature presets for one-click changes
between temperatures&ndash;for example to switch between leaded and unleaded solder.</p>
<p>You can access PineSAM from your mobile device once it&rsquo;s running on your computer to have a touch-capable way of controlling your settings. On your phone, flip the screen to portait mode in order to see the graph as on desktop.</p>
<figure class="inline-40 left"><img src="pinesam-mobile.png"
alt="Screenshot of PineSAM UI on Mobile device"/>
</figure>
<p>The PineSAM project is working to integrate a &ldquo;Work&rdquo; screen which takes
inspiration from Joric&rsquo;s UI. Due to this, it&rsquo;s likely these two projects will
end up combining into one, in my opinion, despite their distinct mechanisms for
retrieving BLE data from the Pinecil.</p>
<h4 id="setting-up-pinesam">Setting up PineSAM</h4>
<p>See the
<a href="https://github.com/builder555/PineSAM#i-using-pre-made-binaries">project readme</a>
for the most up-to-date instructions. If you run into any trouble, come find us
in the #pinecil channel on Pine64&rsquo;s Discord or Telegram chat.</p>
<h3 id="jorichttpsgithubcomjorics-ble-api"><a href="https://github.com/joric/">Joric</a>&rsquo;s BLE API</h3>
<p>Another project is a more simple web UI that uses in-browser Bluetooth support
(currently only really well supported in Chromium/Firefox, and even then it&rsquo;s
not universal or without bugs. This UI shows a nice graph of your Pinecil&rsquo;s
temperature and power supply information, but is limited to devices supporting
WebBLE, and also is only able to change the set point (temperature) on the
device. You can also find the source code for Joric UI on
<a href="https://github.com/joric/pinecil">GitHub</a>.</p>
<figure class="inline-60 right"><img src="joric-ui.png"
alt="Joric&#39;s UI"/>
</figure>
<h4 id="setting-up-jorics-ui">Setting up Joric&rsquo;s UI</h4>
<p>No setup needed! Just browse to
<a href="https://joric.github.io/pinecil/">https://joric.github.io/pinecil/</a> in a
compatible browser. I&rsquo;ve personally tested Firefox and Chromium on Fedora 37,
but I know others have got it working on Windows and MacOS, too.</p>
<p>As with PineSAM, feel free to come to chat for help and support.</p>
<h2 id="home-assistant-setup-with-esphome">Home Assistant Setup with ESPHome</h2>
<p>If Home Assistant (HASS) is more your speed, read on below. Be warned to get
this setup, you will need some sort of ESP32 device to read data from your
Pinecil and report it to Home Assistant. I used one of the
<a href="https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-Integrated-Compatible/dp/B08D5ZD528">WROOM ESP32 dev boards</a>
I&rsquo;ve had in my closet for a few months (not an affiliate link).</p>
<p>If you&rsquo;re not familiar, Home Assistant is an open-source home automation
platform which can inte grate with ESPHome, another open source system to
control your ESP8266/ESP32 using just YAML configurations. In this section, I&rsquo;ll
walk though how to setup an ESP32 with will show you how to create a smart
soldering iron using Pinecil with Home Assistant and ESPHome.</p>
<figure class="inline"><img src="hass-soldering.png"
alt="Home Assistant Soldering UI"/>
</figure>
<p>To make this work, we&rsquo;ll use an
<a href="https://github.com/TomW1605/esphome_pinecilv2_ble/blob/main/esphome_pinecilv2_ble.yaml">ESPHome configuration file</a>
put together by Pine64 community member TomW1605. Thank you again, Tom!</p>
<h2 id="requirements">Requirements</h2>
<ul>
<li>ESP32 device (Non affiliate link:
<a href="https://www.amazon.com/ESP-WROOM-32-Development-Microcontroller-Integrated-Compatible/dp/B08D5ZD528">ESP-WROOM-32 Development MCU on Amazon</a>)</li>
<li>Home Assistant already setup</li>
<li>ESPHome already setup</li>
</ul>
<h2 id="steps">Steps</h2>
<ol>
<li>Login to ESPHome</li>
<li>Import
<a href="https://github.com/TomW1605/esphome_pinecilv2_ble/blob/main/esphome_pinecilv2_ble.yaml">this ESPHome configuration file</a>.</li>
<li>Modify and set up the configuration file as follows:
<ol>
<li>Change board in esp32 section to your board.
<ul>
<li>If using the WROOM 32 I linked above, use <code>nodemcu-32s</code></li>
</ul>
</li>
<li>Setup an encryption key. This must be a base64-encoded, 32 bit string.
<ul>
<li>You can create one on the CLI using <code>openssl rand -base64 32</code></li>
</ul>
</li>
<li>Change OTA password to desired</li>
<li>Change wifi SSID and password for your network in ESPHome secrets</li>
<li>Change wifi access point fallback settings to desired</li>
<li><strong>Important</strong> - Change ble_client mac address to your Pinecil&rsquo;s MAC. This
can be found in the settings as well as in logs from the above tools
(Joric/PineSAM)
<figure class="inline"><img src="pinecil-esphome.png"
alt="Pinecil esp32 configuration example"/>
</figure>
</li>
</ol>
</li>
<li>Flash the firmware to the ESP32 device</li>
<li>Add the device to Home Assistant</li>
<li>Create a Home Assistant dashboard to control and monitor your smart soldering
iron.
<ul>
<li>An example dashboard can be found at
<a href="https://gist.github.com/NeilHanlon/83d6e2cdc6eb83cb205b617f80c2a7c3">https://gist.github.com/NeilHanlon/83d6e2cdc6eb83cb205b617f80c2a7c3</a></li>
<li>It uses the &lsquo;mini-graph-card&rsquo; and &lsquo;auto-entities&rsquo; integrations from HACS
<script type="application/javascript" src="https://gist.github.com/neilhanlon/83d6e2cdc6eb83cb205b617f80c2a7c3.js"></script>
</li>
</ul>
</li>
</ol>
<p>Now that you&rsquo;ve got that setup, you should start to see data coming in about
your Pinecil&rsquo;s settings! Go on and automate thy solder.</p>
</div>
</div>
<div class="disqus">
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,103 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Projects | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<section id="projects">
<h4 class="my-5">Projects</h4>
<div class="panel">
<div class="panel-body">
<h5>
<i class="fa fa-github"></i>&nbsp;&nbsp;
<b><a href="https://github.com/rocky-linux/">Rocky Linux</a></b>&nbsp;-&nbsp;All the infrastructure for Rocky Linux, from soup to nuts. Work with a team of professionals to architect, design, and implement secure systems and proceudres to write Infrastructure as Code to provide systems for the various teams within the Rocky Enterprise Software Foundation, especially Rocky Linux as it gets off the ground. Also work closely with Release Engineering on building next generation Build Automation pipeline tools and ensuring reliability and security in the supply chain.
</h5>
</div>
</div>
</section>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Projects on Neil Hanlon</title>
<link>/projects/</link>
<description>Recent content in Projects on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Sun, 02 Oct 2016 22:55:05 -0400</lastBuildDate><atom:link href="/projects/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@ -1,62 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/blisp/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/categories/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/diy/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/categories/diy/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/esphome/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/categories/foss/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/home-assistant/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/categories/home-automation/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/pine64/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/pinecil/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/pinesam/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/posts/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/risc-v/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/</loc>
<lastmod>2023-03-28T19:01:25-04:00</lastmod>
</url><url>
<loc>/tags/projects/</loc>
<lastmod>2016-10-02T22:55:05-04:00</lastmod>
</url><url>
<loc>/categories/projects/</loc>
<lastmod>2016-10-02T22:55:05-04:00</lastmod>
</url><url>
<loc>/projects/</loc>
<lastmod>2016-10-02T22:55:05-04:00</lastmod>
</url>
</urlset>

View File

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 3.9 MiB

View File

Before

Width:  |  Height:  |  Size: 2.6 MiB

After

Width:  |  Height:  |  Size: 2.6 MiB

View File

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

View File

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Blisp | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Blisp on Neil Hanlon</title>
<link>/tags/blisp/</link>
<description>Recent content in Blisp on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/blisp/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>DIY | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>DIY on Neil Hanlon</title>
<link>/tags/diy/</link>
<description>Recent content in DIY on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/diy/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>esphome | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>esphome on Neil Hanlon</title>
<link>/tags/esphome/</link>
<description>Recent content in esphome on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/esphome/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Home Assistant | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Home Assistant on Neil Hanlon</title>
<link>/tags/home-assistant/</link>
<description>Recent content in Home Assistant on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/home-assistant/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,213 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Tags | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/blisp/">Blisp</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/diy/">DIY</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/esphome/">esphome</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/home-assistant/">Home Assistant</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/pine64/">Pine64</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/pinecil/">Pinecil</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/pinesam/">PineSAM</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/risc-v/">RISC-V</a></b>
</h5>
</div>
</div>
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
October 2, 2016
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/tags/projects/">projects</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,92 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on Neil Hanlon</title>
<link>/tags/</link>
<description>Recent content in Tags on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Blisp</title>
<link>/tags/blisp/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/blisp/</guid>
<description></description>
</item>
<item>
<title>DIY</title>
<link>/tags/diy/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/diy/</guid>
<description></description>
</item>
<item>
<title>esphome</title>
<link>/tags/esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/esphome/</guid>
<description></description>
</item>
<item>
<title>Home Assistant</title>
<link>/tags/home-assistant/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/home-assistant/</guid>
<description></description>
</item>
<item>
<title>Pine64</title>
<link>/tags/pine64/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/pine64/</guid>
<description></description>
</item>
<item>
<title>Pinecil</title>
<link>/tags/pinecil/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/pinecil/</guid>
<description></description>
</item>
<item>
<title>PineSAM</title>
<link>/tags/pinesam/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/pinesam/</guid>
<description></description>
</item>
<item>
<title>RISC-V</title>
<link>/tags/risc-v/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/tags/risc-v/</guid>
<description></description>
</item>
<item>
<title>projects</title>
<link>/tags/projects/</link>
<pubDate>Sun, 02 Oct 2016 22:55:05 -0400</pubDate>
<guid>/tags/projects/</guid>
<description></description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Pine64 | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Pine64 on Neil Hanlon</title>
<link>/tags/pine64/</link>
<description>Recent content in Pine64 on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/pine64/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>Pinecil | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Pinecil on Neil Hanlon</title>
<link>/tags/pinecil/</link>
<description>Recent content in Pinecil on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/pinecil/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>PineSAM | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>PineSAM on Neil Hanlon</title>
<link>/tags/pinesam/</link>
<description>Recent content in PineSAM on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/pinesam/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>projects | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
October 2, 2016
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/projects/">Projects</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>projects on Neil Hanlon</title>
<link>/tags/projects/</link>
<description>Recent content in projects on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Sun, 02 Oct 2016 22:55:05 -0400</lastBuildDate><atom:link href="/tags/projects/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Projects</title>
<link>/projects/</link>
<pubDate>Sun, 02 Oct 2016 22:55:05 -0400</pubDate>
<guid>/projects/</guid>
<description></description>
</item>
</channel>
</rss>

View File

@ -1,109 +0,0 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="Neil Hanlon">
<link rel="shortcut icon" type="image/x-icon" href="/img/favicon.ico">
<title>RISC-V | Neil Hanlon</title>
<meta name="description" content="Neil Hanlon - Senior Network/DevOps/Infrastructure Engineer">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<link rel="preload stylesheet" href="/css/main.min.css" as="style">
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,400,200bold,400old">
<link rel="stylesheet" href="/sass/overrides.css">
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script defer data-domain="thepotato.tech" src="https://plausible.io/js/script.js"></script>
</head>
<body>
<div id="content">
<div class="container mb-3">
<nav class="navbar navbar-expand-lg">
<div class="container-fluid">
<a class="navbar-brand" href="/">
<i class="fa fa-home"></i>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbar" aria-controls="navbar">
<i class="fa fa-bars"></i>
</button>
<div id="navbar" class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto mb-2 mb-lg-0">
<li class="nav-item">
<li><a class="nav-link" href="/posts/">POSTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/projects/">PROJECTS</a></li>
</li>
<li class="nav-item">
<li><a class="nav-link" href="/resume.pdf">RESUME</a></li>
</li>
</ul>
</div>
</div>
</div>
</nav>
<div class="container">
<h4 class="my-5">Archive</h4>
<div class="panel">
<div class="panel-body">
<div class="row mb-2">
<div class="col-4">
<h5 style="text-align: right">
March 28, 2023
</h5>
</div>
<div class="col-8">
<h5 style="text-align: left">
<b><a href="/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/">Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</a></b>
</h5>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="footer">
<div class="container">
<div class="text-muted">&copy; All rights reserved. Powered by <a href="https://gohugo.io/">Hugo</a> and
<a href="http://www.github.com/nurlansu/hugo-sustain/">sustain</a> with ♥</div>
</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js" integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous"></script>
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
<script>
kofiWidgetOverlay.draw('kneel', {
'type': 'floating-chat',
'floating-chat.donateButton.text': 'Support me',
'floating-chat.donateButton.background-color': '#fcbf47',
'floating-chat.donateButton.text-color': '#323842'
});
</script>
</body>
</html>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>RISC-V on Neil Hanlon</title>
<link>/tags/risc-v/</link>
<description>Recent content in RISC-V on Neil Hanlon</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-US</language>
<lastBuildDate>Tue, 28 Mar 2023 19:01:25 -0400</lastBuildDate><atom:link href="/tags/risc-v/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Smarthome Soldering Iron with Home Assistant and ESPHome (also: web GUIs for Pinecil)</title>
<link>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</link>
<pubDate>Tue, 28 Mar 2023 19:01:25 -0400</pubDate>
<guid>/posts/smarthome-soldering-iron-pinecil-homeassistant-esphome/</guid>
<description>About a year ago, wesdottoday told me to buy a Pinecil and, once they came back in stock before the holidays.. I did just that&amp;hellip; Fast forward a couple months and I&amp;rsquo;ve got a copr for flashing the Pinecil&amp;rsquo;s firmware (IronOS), and am spending my weekends playing around with Bluetooth Low Energy (BLE) and Home Assistant to automatically turn on my fan when I start tinkering at my desk, lest my lungs die from the fumes.</description>
</item>
</channel>
</rss>

1
themes/hugo-sustain Submodule

@ -0,0 +1 @@
Subproject commit 9aeb8712e1fede18ef41b7d02540249a3dbe51a7