<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Ryan Walmsley]]></title><description><![CDATA[Developer & IoT Engineer]]></description><link>https://walmsley.tech/</link><image><url>https://walmsley.tech/favicon.png</url><title>Ryan Walmsley</title><link>https://walmsley.tech/</link></image><generator>Ghost 5.74</generator><lastBuildDate>Thu, 23 Apr 2026 13:07:30 GMT</lastBuildDate><atom:link href="https://walmsley.tech/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Hacking my EV Charger to charge my car from solar.]]></title><description><![CDATA[<p>So in one of my previous posts I did a review of a new EV charger I got that was meant to support Solar charging, TL;DR It&apos;s implementation was rubbish and didn&apos;t account for charging from export only.</p><h3 id="disclaimer">Disclaimer</h3><p>This is documented for educational purposes</p>]]></description><link>https://walmsley.tech/diy-ish-solar-ev-charging/</link><guid isPermaLink="false">656525843cecfe5adc2511ab</guid><category><![CDATA[blog]]></category><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Tue, 16 May 2023 09:55:53 GMT</pubDate><content:encoded><![CDATA[<p>So in one of my previous posts I did a review of a new EV charger I got that was meant to support Solar charging, TL;DR It&apos;s implementation was rubbish and didn&apos;t account for charging from export only.</p><h3 id="disclaimer">Disclaimer</h3><p>This is documented for educational purposes only, you may risk causing damage to your EVSE Equipment And / Or your Electric Vehicle. I am also not sharing any of the code at this time to avoid any issues with the code developed by the manufactuer of the charger. &#xA0;Overall this has actually been a project that&apos;s been on &amp; off for a few months but due to a veriaty of reasons got delayed.</p><h1 id="lets-begin">Lets Begin</h1><p>The obvious solution to this is replacing it with another charger, however that&apos;s then more costs involved unfortunately so not ideal.</p><p>However, part of why I purchased the original charger that I did was that I saw the &quot;smarts&quot; of the charger were powered by a Raspberry Pi Zero so knew it was hackable from the start. </p><p>Handily because of the design of the charger having the &quot;Smarts&quot; done by this daughter Pi board, it left a dumb EVSE board to be communicated with requiring no modifications to that side.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/05/IMG20220617194650.jpg" class="kg-image" alt loading="lazy" width="1343" height="1007" srcset="https://walmsley.tech/content/images/size/w600/2023/05/IMG20220617194650.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/05/IMG20220617194650.jpg 1000w, https://walmsley.tech/content/images/2023/05/IMG20220617194650.jpg 1343w" sizes="(min-width: 720px) 720px"><figcaption>Picture showing the Main charger unit (towards the bottom) and &quot;Smart&quot; daughter board (In the case). Connected via a couple of cables.</figcaption></figure><h1 id="figuring-out-how-it-communicates">Figuring out how it communicates</h1><p>I knew at an initial guess it&apos;d be some kind of serial protocol as the cable that went between the main board and the Raspberry Pi itself was only 3 wires marked GND, A &amp; B. This then lead to it being either UART or RS485 of which it was the latter.</p><p>I sshd into the Pi, killed all the services of the software that was running on it and opened a serial port up at a few different baudrates with the RPi&apos;s internal serial port but just wasn&apos;t getting anything.</p><p>I had even tried running some of the code on the Pi itself that used the serial port and that also didn&apos;t work.</p><p>After some more hunting, I found mentions of the code using SPI for the RS485 which was confusing me so I dug up one of the pictures of the smart board itself.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/05/IMG20220616133510.jpg" class="kg-image" alt loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2023/05/IMG20220616133510.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/05/IMG20220616133510.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/05/IMG20220616133510.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/05/IMG20220616133510.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Picture of the &quot;Smart Card&quot; close up, with the Pi removed to view the circuitry underneath.</figcaption></figure><p>There&apos;s a chip directly above the 0V, A &amp; B which seems to be a RS485 to UART converter which is excellent, but this then leads into another chip above. After some hunting I found that it seems to be a SC16IS740 UART with I2C/SPI Interface chip.</p><p>I&apos;m not quite sure why you&apos;d use a SPI to UART chip when the Pi has an onboard UART adaptor, maybe it&apos;s a conflict between using the Bluetooth on the Pi Zero W but it&apos;s not in use so I&apos;m not sure.</p><p>Because of this and the fact I didn&apos;t want to use any of the existing code I decided to use a USB To RS485 converter instead and via cable connected it to another computer.</p><p>Unfortunately the code itself on the Pi was rather confusing (and very outdated version of Debian), there almost seemed to be 3-4 different programs that they had written to communicate with. The only one that seemed handy was one that was a test program that showed the command to send over RS485 to ensure the connection was correct.</p><p>This command was essentially in this form of just a few characters, starting with a <code>&gt;</code> and then a few numbers. e.g <code>&gt;000064</code>. I tried a few things but had no luck apart from sending this command, I then changed the number and noticed that the response had changed.</p><p>Handily this test program also had a decoder for the response string, however even this didn&apos;t match up fully so took a bit of experimenting to try and match up albiet still not perfect.</p><p>I then remembered reading the charge specifications for the PWM Duty cycle of the <a href="https://en.wikipedia.org/wiki/SAE_J1772#Control_Pilot">SAE1772 standard</a> that the formula for that was the charge rate (in Amps) / 0.6A * 10 &#xA0;got the duty cycle %. In this case reversing that number we had from above gets us 6, aka 6 Amps!</p><p>Therefore if we then calculate the correct way, full speed would be 32A resulting in 212, add on the preceeding 0s and we get `&gt;000212`.</p><p>Knowing this I then connected up my car and started sending values for different ampages and it matched what the car was then charging at!</p><h1 id="calculating-what-we-can-charge-at">Calculating what we can charge at</h1><p>One of the next steps is then calculating what the charger can charge at, to do this required a few additional sensors which I pipe into my Home Assistant Setup</p><ul><li>Charger Current Power - This I done by having an ESP8266 &amp; CT Clamp on the power running to the charger to provide me with the current wattage the car is pulling. <a href="https://walmsley.tech/cheap-ct-clamp-based-energy-monitoring/">(Guide)</a></li><li>House Power Usage - The current way I do this is using a <a href="https://walmsley.tech/review-glowstick/">Glowmarkt Glowstick</a>, this connects to my MQTT instance and provides a roughly real time figure of how much wattage the house is importing / exporting. The important thing here is the export figure.</li></ul><p>Next we do some MATH(S), and simply just subtract the cars power consumption to the house&apos;s figure and we get the correct value. With a few examples being:</p><ul><li>-1.5kWHouse - 0kW Car = -1.5kW available to charge with.</li><li>-0.5kW House - 1Kw Car = -1.5kW available to charge with, so it would increase to 1.5kW.</li><li>0.5kW House - 1kW Car = 1kW, so it would then decrease the car to 1kW.</li></ul><p>Amazingly this from my testing so far is stable enough so it doesn&apos;t get into a loop of increasing &amp; decreasing rapidly.</p><p>Next I then calculate an average, admittidly via a cheat method of adding the calculated value to an array in the python code for this loop that runs every 5 seconds, and popping the first item in the array after it hits a length greater than 50. This roughly gives us the average value the car should charge at over a 4 minute period, one of the benefits of this is if there&apos;s a slight cloud or if I boil the kettle for a cup of tea the car doesn&apos;t immediately stop charging.</p><p>I then like to keep a buffer of which I&apos;ve set to 150W to smooth out the more frequent up and downs, so I then add 150W to the average figure. This means that ideally we should always export a little allowing for a buffer, rather than the other way around. So if we get 1.75kW from our average figure it&apos;ll set the car to charge at ~ 1.6kW.</p><p>Finally with that new figure I then need to convert it from watts to amps to send to the charger, to do this I simply invert the average value (from -1600 to 1600), divide it by the rough mains voltage in the UK (240), times that figure by 4, floor it and divide the final figure by 4. This way it then returns the ampage in a 0.25A step. <code>floor((-average / 240)*4)/4</code></p><p>I could possibly not do this additional flooring &amp; rounding to the nearest quarter, however I&apos;ve found doing this also helps with providing a little additional buffer on top of the 150W we set.</p><h1 id="merging-this-together">Merging this together</h1><p>So above we&apos;ve calculated both how much we can export at, whilst also calculating how to control the charger so I just needed to combine it together.</p><p>To do this I essentially wrote two functions in python to run as a thread each, the first thread does the calculation of how much the charger should let the car pull and then the second sends the allowed current to the charger. At the same time I&apos;ve also added an override feature to the code that controls the charger so if an entity on my Hassio instance is enabled it will then charge at full rate allowing me to then charge overnight if needed.</p><h1 id="testing">Testing</h1><p>So all of the code was ready to go, I knew that control of the charger worked as I was able to charge my car at night with the override I programmed in and an automation in Hassio To Enable / Disable it. The next stage was waiting for a sunny day which currently in the UK hasn&apos;t been often.</p><p>However the day then came, the code kicked in and told the charger to start charging the car and.... Nothing. I then went and unplugged &amp; plugged the car back in and it started charging!</p><p>From this and a bit of further testing I then gathered that the car was going to sleep and unfortunately the charger wasn&apos;t telling it to wake back up correctly, I had an idea of using a relay between the Control Pilot wire (the signal wire between the car &amp; charger) to essentially trigger this for me which is something I did in a <a href="https://walmsley.tech/ev-charger-hacking-success/">past hack</a> with a different charger. However upon opening the charger I noticed a header that had Suspend next to it and with some googling found that this was so you could wire it into an economy 7 circuit using a relay to control if it should charge or not. Perfect!</p><p>I then just used a ESP8266 with a relay board and ESPHome to control it, then added the ability to control the relay from my python program to turn it on when charging shouldn&apos;t happen. And then turn off the relay when charging should happen (breaking the connection that enables the limit).</p><p>And with that set it was ready for round 2 of testing.</p><h1 id="the-results">The Results</h1><p>I ran my car down to around 65% by the day we were due to have a decent amount of solar production and had plugged it in the night before. </p><p>On the day at around about 10AM the code kicked in and started charging the car!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/05/Screenshot-2023-05-15-at-23.54.44.png" class="kg-image" alt loading="lazy" width="1986" height="892" srcset="https://walmsley.tech/content/images/size/w600/2023/05/Screenshot-2023-05-15-at-23.54.44.png 600w, https://walmsley.tech/content/images/size/w1000/2023/05/Screenshot-2023-05-15-at-23.54.44.png 1000w, https://walmsley.tech/content/images/size/w1600/2023/05/Screenshot-2023-05-15-at-23.54.44.png 1600w, https://walmsley.tech/content/images/2023/05/Screenshot-2023-05-15-at-23.54.44.png 1986w" sizes="(min-width: 720px) 720px"><figcaption>Graph showing the power consumption the car was using along with the house</figcaption></figure><p>From around the 10Am mark we can see the house export drop as the car charging kicks in, it takes about 15 minutes but then settles into an approximate 100-200W export on the house whilst charging the car at just over 2kW. There&apos;s a few spikes throughout the day where we imported a little however due to the averaging code the car continued to charge like I expected.</p><p>At just before 12Pm a load did kick in for around about 15 minutes which stopped the car from charging, but the car then did resume as expected and charged the car fully.</p><p>Analysing the ampage that the code set the charger to charge at we can see a similar pattern in the up and down, until around 3:45PM when the car was mostly finished charging and just balancing the batteries.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/05/Screenshot-2023-05-15-at-23.57.47.png" class="kg-image" alt loading="lazy" width="1964" height="886" srcset="https://walmsley.tech/content/images/size/w600/2023/05/Screenshot-2023-05-15-at-23.57.47.png 600w, https://walmsley.tech/content/images/size/w1000/2023/05/Screenshot-2023-05-15-at-23.57.47.png 1000w, https://walmsley.tech/content/images/size/w1600/2023/05/Screenshot-2023-05-15-at-23.57.47.png 1600w, https://walmsley.tech/content/images/2023/05/Screenshot-2023-05-15-at-23.57.47.png 1964w" sizes="(min-width: 720px) 720px"></figure><p>And finally then if I take a look at my house&apos;s power consumption for the day, we can see a near perfect graph where we used most of the solar production up for the day rather than exporting it, except for a couple of tiny blips during the period the car was charging.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/05/Screenshot-2023-05-15-at-23.52.16.png" class="kg-image" alt loading="lazy" width="1406" height="832" srcset="https://walmsley.tech/content/images/size/w600/2023/05/Screenshot-2023-05-15-at-23.52.16.png 600w, https://walmsley.tech/content/images/size/w1000/2023/05/Screenshot-2023-05-15-at-23.52.16.png 1000w, https://walmsley.tech/content/images/2023/05/Screenshot-2023-05-15-at-23.52.16.png 1406w" sizes="(min-width: 720px) 720px"></figure><p>Overall I would say this is a great success, over time hopefully I&apos;ll be able to shift more of my charging into times where we&apos;re producing enough solar. One thing with our system is whilst it&apos;s able to produce 5.25kW at peak, it&apos;s a split East / West installation so we rarely have ever seen more than 3kW on the best day and the minimum we need to produce for the car to charge is roughly 2kW (average 500W house usage and ~1.5kW to then charge the car).</p><h1 id="future-improvements">Future Improvements</h1><p>Whilst it&apos;s mostly working there are a couple of tweaks needed to the code over time, one of the main ones being that I need to handle when the connection to home assistant goes down better so that it doesn&apos;t crash. I&apos;m also considering making a little PCB and moving it to run on a Pi instead in a neater format.</p>]]></content:encoded></item><item><title><![CDATA[Raspberry Pi CM4 Microconsole]]></title><description><![CDATA[<p>For a while now I&apos;ve wanted to create something that used the Raspberry Pi Compute Module 4, along with that I&apos;ve also wanted to build something in the style of Microconsoles like the OUYA, Steam Link, Onlive etc.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/02/20230226_143349.jpg" class="kg-image" alt loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_143349.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_143349.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_143349.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_143349.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>The PCB sitting on top of a Steam</figcaption></figure>]]></description><link>https://walmsley.tech/raspberry-pi-microconsole/</link><guid isPermaLink="false">656525843cecfe5adc2511b1</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Tue, 28 Feb 2023 20:13:03 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/20230226_143323.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/20230226_143323.jpg" alt="Raspberry Pi CM4 Microconsole"><p>For a while now I&apos;ve wanted to create something that used the Raspberry Pi Compute Module 4, along with that I&apos;ve also wanted to build something in the style of Microconsoles like the OUYA, Steam Link, Onlive etc.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/02/20230226_143349.jpg" class="kg-image" alt="Raspberry Pi CM4 Microconsole" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_143349.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_143349.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_143349.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_143349.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>The PCB sitting on top of a Steam Link for scale.</figcaption></figure><h2 id="introducing-the-raspberry-pi-cm4-microconsole">Introducing the Raspberry Pi CM4 Microconsole</h2><p></p><p>It&apos;s quite a simple board it has the headers for the CM4, a HDMI port, Ethernet, SD Card Slot, USB C socket and 2xUSB 2.0 ports and that&apos;s it. Nice and simple.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/02/20230226_143427.jpg" class="kg-image" alt="Raspberry Pi CM4 Microconsole" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_143427.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_143427.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_143427.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_143427.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Picture of it on top of a Steam Link, focusing on the connectors of the PCB.</figcaption></figure><p>One little quirk is that because of the orientation I&apos;ve put the Compute Module 4 in that the built in Wi-Fi / Bluetooth antenna doesn&apos;t work. However I designed this with primarily wired Ethernet operation in mind (it was just a co-incidence out of the 2 compute modules I ordered the one with Wi-Fi arrived first). However the external antenna connector works perfectly with a little stick on antenna.</p><figure class="kg-card kg-gallery-card kg-width-wide"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://walmsley.tech/content/images/2023/02/20230226_223116.jpg" width="2000" height="1500" loading="lazy" alt="Raspberry Pi CM4 Microconsole" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_223116.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_223116.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_223116.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_223116.jpg 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://walmsley.tech/content/images/2023/02/20230226_223354-1.jpg" width="2000" height="1500" loading="lazy" alt="Raspberry Pi CM4 Microconsole" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_223354-1.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_223354-1.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_223354-1.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_223354-1.jpg 2400w" sizes="(min-width: 720px) 720px"></div></div></div></figure><h3 id="but-couldnt-you-have-just-used-a-raspberry-pi-in-a-case-what-does-this-add">But couldn&apos;t you have just used a Raspberry Pi in a case? What does this add?</h3><p>This adds literally nothing apart from athstetics in my view, one of the goals was that all of the ports are on one side which make it quite nice to go in a TV unit as all of the cables are then a tad neater. Whilst I could have used a case for this, it was a good enough excuse to design a board which I wanted to do for a while.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/02/20230226_143102--1-.jpg" class="kg-image" alt="Raspberry Pi CM4 Microconsole" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_143102--1-.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_143102--1-.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_143102--1-.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_143102--1-.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Picture of the back of the board inside of the case.</figcaption></figure><p>I know some cases also do re-route the ports, but there&apos;s no fun in using them either so custom board it is.</p><h3 id="compute-module-4-not-as-hard-to-solder-as-i-expected">Compute Module 4, not as hard to solder as I expected?</h3><p>One of the things that I expected to be more difficult with the Compute Module 4 was that it would be harder to solder. However I found with some decent solder paste and a toaster oven based reflow oven it soldered fairly well, the main issue I had on a couple of boards was bridging but that&apos;s more solder pasting to blame.</p><h3 id="easier-circuitry-too">Easier circuitry too!</h3><p>The original compute modules also required a fair bit of circuitry extra to work, primarily all relating to power. One very nice thing of the Compute Module 4 is that you can pretty much just supply it 5V power and you&apos;re good to go, handily with then a USB C power connector and the correct resistors you can use pretty much any complaint supplies.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/02/20230226_145606.jpg" class="kg-image" alt="Raspberry Pi CM4 Microconsole" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_145606.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_145606.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_145606.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_145606.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Picture of the PCB without the compute module onboard.</figcaption></figure><h3 id="case">Case</h3><p>I got a Friend of mine (<a href="https://twitter.com/eplop">@Eplop</a>) to design a basic little case for me and printed it out on my Prusa Mini and it&apos;s come out excellent, I then used a little PCB antenna in the case for the Wi-Fi Bluetooth antenna.</p><figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption"><div class="kg-gallery-container"><div class="kg-gallery-row"><div class="kg-gallery-image"><img src="https://walmsley.tech/content/images/2023/02/20230226_143057.jpg" width="2000" height="1500" loading="lazy" alt="Raspberry Pi CM4 Microconsole" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_143057.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_143057.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_143057.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_143057.jpg 2400w" sizes="(min-width: 720px) 720px"></div><div class="kg-gallery-image"><img src="https://walmsley.tech/content/images/2023/02/20230226_143115.jpg" width="2000" height="1500" loading="lazy" alt="Raspberry Pi CM4 Microconsole" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230226_143115.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230226_143115.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230226_143115.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230226_143115.jpg 2400w" sizes="(min-width: 720px) 720px"></div></div></div><figcaption>Pictures of the Case, along with the board in the case.</figcaption></figure><h3 id="does-it-work">Does it work?</h3><p>Yes! It&apos;s fully tested and working well. My usecase as a microconsole was for it to replace my Steam Links and to run Moonlight on them which works perfect.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2023/02/20230225_175759--1-.jpg" class="kg-image" alt="Raspberry Pi CM4 Microconsole" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2023/02/20230225_175759--1-.jpg 600w, https://walmsley.tech/content/images/size/w1000/2023/02/20230225_175759--1-.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2023/02/20230225_175759--1-.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2023/02/20230225_175759--1-.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Picture of the board itself in front of a TV</figcaption></figure><p>Both USB Ports work meaning that the USB Hub is all working, the HDMI connection seems to work at 4K60p (once enabled in the boot config). The network does work at a full gigabit with iperf measuring around 850-900Mbps, and the USB C power connector is wired up correctly as it works with both the official Pi power supply which outputs 5v at 1A all of the time</p><h3 id="can-i-buy-one-of-these-boards">Can I buy one of these boards?</h3><p>Currently I&apos;m not planning on selling these however if there is the interest I may consider potentially doing a kickstarter. I don&apos;t have a good price estimate but a rough guideline would be &#xA3;25 per board excluding the Compute Module. If you are interested pop me an <a href="https://walmsley.tech/contact/">email</a> or Toot me on <a href="https://fosstodon.org/@Ryanteck">Mastodon</a>. </p><p>One thing I have had suggested is using it as a more reliable Raspberry Pi Home Assistant host using an CM4 with an EMMC onboard. Which is certainly a viable project and may be something I even use one of the boards for.</p><h4 id="liked-this-project">Liked this project?</h4><p>If you liked this project and would like to see more of it, then it&apos;d be great if you could give me a tip over on Ko-Fi just by clicking the button below.</p><!--kg-card-begin: html--><script type="text/javascript" src="https://storage.ko-fi.com/cdn/widget/Widget_2.js"></script><script type="text/javascript">kofiwidget2.init('Support Me on Ko-fi', '#29abe0', 'Q5Q68ZMN');kofiwidget2.draw();</script> <!--kg-card-end: html-->]]></content:encoded></item><item><title><![CDATA[Re-writing EDIDs on HDMI Dummy Plugs using an Raspberry Pi]]></title><description><![CDATA[<p>For the last few months I&apos;ve started to game exclusively over streaming, I have a dedicated gaming rig that I then can stream to a mixture of TVs, Computers &amp; Android devices around my house.</p><p>To make this slightly easier to do I use a HDMI Dummy plug</p>]]></description><link>https://walmsley.tech/re-writing-edids-on-hdmi-dummy-plugs/</link><guid isPermaLink="false">656525843cecfe5adc2511ae</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Sat, 18 Feb 2023 21:03:08 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/20230218_210728.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/20230218_210728.jpg" alt="Re-writing EDIDs on HDMI Dummy Plugs using an Raspberry Pi"><p>For the last few months I&apos;ve started to game exclusively over streaming, I have a dedicated gaming rig that I then can stream to a mixture of TVs, Computers &amp; Android devices around my house.</p><p>To make this slightly easier to do I use a HDMI Dummy plug which is basically just a HDMI plug with an I2C Chip to present the EDID to the graphics card and make it think that a monitor or TV is plugged in.</p><p>Whilst this works fine, I have been wanting to experiment with HDR which the dummy plug I have doesn&apos;t say to the computer that the display is capable. I was then thinking that as it&apos;s just an I2C EEPROM there shouldn&apos;t be anything stopping me from re-flashing it or creating my own dongle with a custom programed EDID.</p><p>The benefit of doing it this way is that the profile that is on the dongle the exact EDID that my TV has will be presented to the computer.</p><p>There may be better ways on doing this, using other tools etc. However the below worked for me and is more of a log of what I done rather than the best way to do it.</p><h1 id="the-tutorial">The Tutorial</h1><h2 id="disclaimer">Disclaimer</h2><p>This process may not work, try it at your own risk. </p><h2 id="youll-need">You&apos;ll need</h2><ul><li>A Raspberry Pi, I did this on a Raspberry Pi 4 but it should theoretically work on others. You&apos;ll need this setup with an OS such as Raspberry Pi OS, but you only need the Lite version installed.</li><li>Remote access - For this to be easier, I&apos;d recommend you enable and setup your Raspberry Pi to be accessible via SSH so you can run the terminal commands on a laptop or desktop.</li><li>Possibly - A HDMI adaptor, you may need a Micro or Mini HDMI to full size HDMI adaptor depending on the Model of Pi you&apos;re using and assuming you&apos;re using a HDMI dongle that is full size HDMI too.</li><li>A HDMI Dongle, these are relatively cheap and available from multiple places. I used <a href="https://www.amazon.co.uk/gp/product/B087QDCZ4L/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&amp;psc=1">this one</a> from Amazon, theoretically it shouldn&apos;t matter if you get a 1080p, 2k or 4k dongle as we&apos;re overwriting the profile anyway. </li></ul><h2 id="step-1dump-the-tv-or-monitors-edid-that-you-wish-to-use">Step 1 - Dump the TV or Monitor&apos;s EDID that you wish to use.</h2><h3 id="11prepping-the-pi">1.1 - Prepping the Pi</h3><p>The first step is dumping the EDID of the TV or monitor that you wish to dump the data from. Connect the Raspberry Pi to your TV / Monitor and power it up, then &#xA0;connect to it via SSH or such.</p><p>First we need to check / confirm the GPU driver is the correct one to be able to use the <code>tvservice</code> command. To do this you can use an editor like nano to confirm &amp; / edit it.</p><p>You&apos;re looking for a line that if it&apos;s added will be either <code>dtoverlay=vc4-fkms-v3d</code> or <code>dtoverlay=vc4-kms-v3d</code> partially depending on what you may have configured previously. Ensure this is set to the <code>fkms</code> option, if it&apos;s the <code>kms</code> option change the line to the <code>fkms</code> one, save and reboot your Raspberry Pi.</p><h3 id="12dumping-the-data">1.2 - Dumping the data</h3><p>Now we know the <code>fkms</code> driver is in use, we should be able to dump the EDID from the TV / Monitor.</p><p>Re-connect to the Pi via SSH or similar, and then run <code>tvservice -d edid.dat</code> , you can change the edid.dat to a different filename. But this command should then dump the TV&apos;s. </p><p>This will create a file (usually in your home directory) named <code>edid.dat</code>, you can confirm the file is correct by using a tool such as <code>edid-decode edid.dat</code> which will decode and display the data for the device. There&apos;s also tools online that you can upload the file to, to decode it such as <a href="https://edid.tv">https://edid.tv</a>.</p><h2 id="step-2write-to-the-hdmi-dongle">Step 2 - Write to the HDMI Dongle</h2><h3 id="21prepping-to-write">2.1 - Prepping to write</h3><p>Next we need to repeat / reverse what we did in step 1.1, and set the Raspberry Pi to use the <code>kms</code> driver instead. Once again open your <code>/boot/config.txt</code> again in your favourite editor and look for that same line that should be <code>dtoverlay=vc4-fkms-v3d</code></p><p>Now edit the line to the kms driver by changing it to <code>dtoverlay=vc4-kms-v3d</code> and again save the configuration and reboot.</p><p>Re-connect to your pi, and unplug your TV / Monitor and instead plug in your HDMI Dongle. If you&apos;re using the Pi 4 make sure it&apos;s inserted into the HDMI 0 port (closest to the USB C Socket). </p><p>Finally we can confirm that the correct driver is loaded by seeing if the Raspberry Pi&apos;s i2c bus on the HDMI port is available. You can do this by scanning it with <code>i2detect -y 20</code>.</p><p>You should see in the 50 row that the number 50 shows, if you see this then the EEPROM on the dongle has been detected, if not try re-inserting it and re-running.</p><h3 id="22prepare-to-write">2.2 - Prepare to write</h3><p>To write it, I found I needed a third party tool to write i2c. I found a <a href="https://payatu.com/blog/using-rasberrypi-as-poor-mans-hardware-hacking-tool/">site</a> that referenced an EEPROM writing program which the link didn&apos;t work on. But handily wayback machine had archived it so I was able to download it from there.</p><p>I then ran the following on my Pi to download that file using wget. </p><pre><code class="language-bash">wget https://web.archive.org/web/20220308192506if_/http://darkswarm.org/eeprog/eeprog-0.7.6-tear12.tar.gz</code></pre><p>And then extracted using <code>tar -xzvf eeprog-0.7.6-tear12.tar.gz</code>. Finally navigate into the folder and run <code>make</code> to build the package. (You may need to install <code>build-essential</code> to do this).</p><h3 id="23write">2.3 - Write!</h3><p>Now confirming that your dongle is in the Raspberry Pi, we&apos;re ready to write.</p><p>Run this command to write the data, this assumes that the edid.dat is in your home folder. Adjust it if not.</p><pre><code class="language-bash">cat ~/edid.dat | ./eeprog -f -w 0 -t 5 /dev/i2c-20 0x50</code></pre><p>And that&apos;s it! If it worked you should get a nice success message, if it doesn&apos;t then you &#xA0;may just need to re-try or see what error is produced. Whilst the HDMI Dongle I used didn&apos;t have the chip write protected others may.</p><h2 id="step-3test">Step 3 - Test</h2><p>And the simplest test is the easiest, now plug it into the computer or such that you wish the fake display to be on. The windows gaming rig in my case thinks my TCL TV is connected even though it&apos;s just the dummy dongle.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/02/Screenshot_20230218_205946.png" class="kg-image" alt="Re-writing EDIDs on HDMI Dummy Plugs using an Raspberry Pi" loading="lazy" width="1277" height="645" srcset="https://walmsley.tech/content/images/size/w600/2023/02/Screenshot_20230218_205946.png 600w, https://walmsley.tech/content/images/size/w1000/2023/02/Screenshot_20230218_205946.png 1000w, https://walmsley.tech/content/images/2023/02/Screenshot_20230218_205946.png 1277w" sizes="(min-width: 720px) 720px"></figure><p></p><h2 id="finishing-up">Finishing up</h2><p>Overall this was actually quite easy to do and didn&apos;t require any special tools to do it, I believe there are ways of doing it via windows directly but this method for me was slightly easier using hardware I had connected to the TV anyway.</p>]]></content:encoded></item><item><title><![CDATA[Designing a New Outdoor LoRa Gateway]]></title><description><![CDATA[<p>It&apos;s been a while since I did any electronics work as my job involves mostly software and customer support. However recently I&apos;ve wanted to do a few electronics projects where having a LoRa Gateway on TTN running again would be handy.</p><p>While I have pieces of</p>]]></description><link>https://walmsley.tech/building-a-new-outdoor-lora-gateway/</link><guid isPermaLink="false">656525843cecfe5adc2511a7</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Tue, 28 Jun 2022 12:03:21 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/IMG20220618133402-2.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/IMG20220618133402-2.jpg" alt="Designing a New Outdoor LoRa Gateway"><p>It&apos;s been a while since I did any electronics work as my job involves mostly software and customer support. However recently I&apos;ve wanted to do a few electronics projects where having a LoRa Gateway on TTN running again would be handy.</p><p>While I have pieces of old gateways I&apos;ve worked on, none of them quite are what I&apos;m looking for now either being too basic or too complicated.</p><h2 id="the-goal">The Goal</h2><p>So my Goal was to build a new LoRa gateway that has the following specs:</p><ul><li><strong>Outdoor</strong> - I wanted this one to be an outdoor unit. The indoor market is now quite competitively filled but I felt the outdoor one isn&apos;t quite full yet.</li><li><strong>Lightweightish</strong> - The other issue with quite a few outdoor solutions is that they are HEAVY. So the goal is to be small and relatively lightweight.</li><li><strong>Keep It Simple Stupid</strong> - It needs to be no thrills, just a basic 8 Channel LoRa gateway powered via POE and nothing else. No 4G backup, more channels, less channels, extra sensors, solar panels, battery backup etc. Just a basic 8 channel gateway.</li><li><strong>Cheapish &amp; Available</strong> - I wanted it to be a reasonable price, even in this mad components market. At the same time I tried not to use components that seemed extremly hard to get hold of.</li><li><strong>Easy to re-produce</strong> - I&apos;m not sure if I&apos;m going to be selling this ever or not, or to make it open source instead etc. Therefore making it fairly easy to solder the main PCB.</li></ul><h2 id="the-brains">The Brains</h2><p>My first challenge was finding a good brain to use as the centre of the gateway, the most obvious is the Raspberry Pi however unfortunately at the moment the parts shortages has affect them too. At the same time I had already found a good case and unfortunately a full Size Pi wouldn&apos;t fit. And to use a Pi Zero or A+ would have required all the extra circuitry for Ethernet.</p><p>I looked at a few chinese Pi alternatives, some I&apos;ve used before like the Nano Pi Duo but the availability of those isn&apos;t great and the software didn&apos;t look like it had been updated for a while.</p><p>After that I looked further into one I&apos;ve tried before many years ago, the Onion Omega 2+. It&apos;s price is fairly good, it has ethernet and runs enough linux for the packet forwarders to work.</p><p>But when I tried it about 4 years ago I found there was unfortunately a bug in the hardware SPI which meant that full duplex just never quite worked and I was never able to get it running.</p><p>After more hunting around I then found there&apos;s a Software SPI alternative method! So I connected it to one of my breakout boards for a RAK LoRa Module, tested it with the software and it works!</p><h2 id="the-other-components">The Other Components</h2><p>Overall I wanted to try and make it fairly simple and cost effective, as I don&apos;t need to optimise for batch manufacturing I was able to use quite a few off the shelf modules.</p><p>Having POE support was key to me, I wasn&apos;t sure between Passive or 802.11AF POE. However when searching around I found this neat little module sold via Adafruit &amp; The Pi Hut from china. You simply wire up the POE magnetics to it and it has a full bridge rectifier and step down circuitry to regulate it to 5V at 1.5A which was Perfect. The price seems quite reasonable and I &#xA0;don&apos;t think I could save a lot of money by buying all the components seperately and it made assembly a lot easier.</p><p>Apart from that the majority of it is just passives, I&apos;ve used two linear voltage regulators for cheapness. One for the Onion and one for the LoRa module (also spreading the heat dissapation by having them at two locations on the board. </p><p>Finally I used a Magjack that has all the magnetics in ready for POE too. </p><h2 id="designing-the-v1-pcb-">Designing the V1 PCB!</h2><p>Designing the PCB was interesting, this was my first PCB in Kicad. It certainly has some quirks but overall wasn&apos;t too bad to design in. As the design was quite simple it made this easy.</p><p>I used 0805 passives to make soldering easy, the other components are mainly through hole with the exception being the M-PCIE socket for the radio module itself.</p><p>One thing I did find quite nice with Kicad was that the 3D viewer is very good and makes it easy to see how it&apos;s looking. Certainly the main benefit for me over Eagle.</p><h2 id="assembling-the-prototypes">Assembling the Prototypes</h2><p>A week and a bit later the PCBs and Components arrived from JLCPCB &amp; LCSC, the boards themselves are a really nice purple colour which I selected at time of ordering.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/IMG20220613105921.jpg" class="kg-image" alt="Designing a New Outdoor LoRa Gateway" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2022/06/IMG20220613105921.jpg 600w, https://walmsley.tech/content/images/size/w1000/2022/06/IMG20220613105921.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2022/06/IMG20220613105921.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2022/06/IMG20220613105921.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Purple Circuit Board</figcaption></figure><p>Unfortunately out of the first 5 PCBs I was only able to solder 1 correctly. I think that maybe my soldering iron&apos;s element is faulty as it seemed to struggle to flow correctly even with leaded solder on the PCI-E Socket without bridges.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/IMG20220618120657.jpg" class="kg-image" alt="Designing a New Outdoor LoRa Gateway" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2022/06/IMG20220618120657.jpg 600w, https://walmsley.tech/content/images/size/w1000/2022/06/IMG20220618120657.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2022/06/IMG20220618120657.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2022/06/IMG20220618120657.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Close up of the soldering on the M-PCIE Header.</figcaption></figure><p>After I got that soldered though, the rest was very easy. The SMDs were rather easy due to going for a big size and the through holes were perfect. </p><p>Resulting in this.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/IMG20220618122839.jpg" class="kg-image" alt="Designing a New Outdoor LoRa Gateway" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2022/06/IMG20220618122839.jpg 600w, https://walmsley.tech/content/images/size/w1000/2022/06/IMG20220618122839.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2022/06/IMG20220618122839.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2022/06/IMG20220618122839.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Mostly assembled circuit board.</figcaption></figure><p>I then began testing by connecting my POE injector without any modules plugged in to check for shorts and all was fine, I then added the POE module and that worked well. After checking the voltages on the regulator I first tested with the Onion inserted, and then added the LoRa module on.</p><p>However there was an issue, the ethernet on the Onion wasn&apos;t working. Luckily after a little debugging I found it was just a bridge on the header that I soldered for the onion module connecting RX + &amp; - together. After unbridging that it worked.</p><h2 id="the-final-piece">The Final Piece</h2><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/IMG20220618133402-1.jpg" class="kg-image" alt="Designing a New Outdoor LoRa Gateway" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2022/06/IMG20220618133402-1.jpg 600w, https://walmsley.tech/content/images/size/w1000/2022/06/IMG20220618133402-1.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2022/06/IMG20220618133402-1.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2022/06/IMG20220618133402-1.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>The PCB with all the modules inserted</figcaption></figure><p>After resolving the ethernet issue it was complete! Working first time which I&apos;m very happy with.</p><p>Finally it was a case of putting it into the case itself. Which all the holes aligned first time!</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/06/IMG20220619102942--1-.jpg" class="kg-image" alt="Designing a New Outdoor LoRa Gateway" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2022/06/IMG20220619102942--1-.jpg 600w, https://walmsley.tech/content/images/size/w1000/2022/06/IMG20220619102942--1-.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2022/06/IMG20220619102942--1-.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2022/06/IMG20220619102942--1-.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Now all I need to do is get some new screws and mounting posts for it, otherwise I&apos;m quite happy.</p><p>The resulting budget is roughly &#xA3;200-250 per unit all in all which I think for an outdoor LoRa gateway is quite good. There&apos;s cheaper indoor units but I haven&apos;t found a good outdoor unit at this price.</p><h2 id="what-s-next">What&apos;s next?</h2><p>Next up on the to-do list is getting basics station to work and trying it with SEEED studio&apos;s SX1302 module. I don&apos;t expect too much of an issue with these so that should be fine.</p><p>After that I&apos;m not sure if I&apos;m going to open source the design, at the same time I may look at doing some small batches of the PCBs with base components soldered on. If you are interested ping me a tweet @Ryanteck to let me know and if there&apos;s enough interest I&apos;ll consider it.</p>]]></content:encoded></item><item><title><![CDATA[EO Mini Pro 2 Review]]></title><description><![CDATA[<p>Since getting solar installed I&apos;ve been debating about getting a solar capable EV charger, however the cost for them seemed quite high. However when browsing around I found this charger at Replenishh for only &#xA3;354 which seemed like a great deal.</p><p>Features claim to be that it</p>]]></description><link>https://walmsley.tech/eo-mini-pro-2-review/</link><guid isPermaLink="false">656525843cecfe5adc2511a8</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Mon, 20 Jun 2022 16:09:05 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/IMG20220617203937--1-.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/IMG20220617203937--1-.jpeg" alt="EO Mini Pro 2 Review"><p>Since getting solar installed I&apos;ve been debating about getting a solar capable EV charger, however the cost for them seemed quite high. However when browsing around I found this charger at Replenishh for only &#xA3;354 which seemed like a great deal.</p><p>Features claim to be that it supports solar and other smart charger features which is what I was looking for, my previous charger was a fully dumb unit and worked well for what it does but otherwise was a bit basic.</p><p>From initial impressions it looked good, I then found an open box unit on ebay that I purchased alongside the matching CT Clamp for the solar. </p><p>However while looking through the docs I did notice in the pictures, it looked like there was a Raspberry Pi inside! Perfect.</p><h1 id="inspecting-the-unit">Inspecting the Unit</h1><p>The unit itself does look nice, it&apos;s very compact and does look nice. The case feels a bit more robust than others I&apos;ve had and it feels a bit more premium.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/IMG20220615132846.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2025/07/IMG20220615132846.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/IMG20220615132846.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2025/07/IMG20220615132846.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2025/07/IMG20220615132846.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>When looking through the paperwork of the unit, I then hit my first hurdle, it turns out to get the smart features enabled you have to be an &quot;approved installer&quot;. After a few emails I was able to get it activated under the basis I would void my warranty but went ahead with this.</p><p>Upon getting my account activated it was installation time. </p><p>The charger itself is split into two parts, the main charger itself has actually been built into the front of the case, and then a &quot;Smart card&quot; has been added to the back box. To drill the holes out of the back box for the cable glands I first removed this smart card to avoid damaaging it and used a step drill bit.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/IMG20220615124602.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2025/07/IMG20220615124602.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/IMG20220615124602.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2025/07/IMG20220615124602.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2025/07/IMG20220615124602.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/IMG20220617180406.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2025/07/IMG20220617180406.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/IMG20220617180406.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2025/07/IMG20220617180406.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2025/07/IMG20220617180406.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Next I put the smart card back in and ran the wires into the box, this was a slightly tricky process as the main power cable has to attach to the front case, which then attaches to the board on the back case to provide it with power and data communication.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/IMG20220617194648.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2025/07/IMG20220617194648.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/IMG20220617194648.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2025/07/IMG20220617194648.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2025/07/IMG20220617194648.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Once all fitted it was then time to set the unit up, I had connected the mains to the terminal bocks on the front, and the CT clamp to the terminal blocks marked solar (using a CAT5E cable as an extenstion to reach from where the clamp was to the charger). </p><p>I then shut the case, screwed it shut and then flicked the power onto the unit. It booted up and was ready to setup via the app.</p><p>The installer setup was fairly easy, it asked me to scan the QR Code on the unit and it connected it to a hotspot the Pi had setup. Once connected it asked me to specify if the Load Balancing or Solar Clamps were in use along with the voltage of the site (240V) .</p><p>Once this was done it then did some further checks and confirmed the CT Clamp and wi-fi connectivity was there.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-08-57-71_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="1080" height="2400" srcset="https://walmsley.tech/content/images/size/w600/2025/07/Screenshot_2022-06-17-20-08-57-71_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/Screenshot_2022-06-17-20-08-57-71_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 1000w, https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-08-57-71_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>The only odd thing here was it asked for me to confirm the CT clamp reading, however there didn&apos;t seem to be a way to apply a correction offset. However I also found it odd that it wasn&apos;t reading a negative value as we were exporting at the time.</p><p>I continued the setup and it was then ready for customer linking, of which I then re scanned the QR code and linked it to my account. Oddly it wanted my address to know where my charger was installed for some reason, apart from that the rest seemed reasonable.</p><p>Then it was ready!</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-28-10-96_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="1080" height="2400" srcset="https://walmsley.tech/content/images/size/w600/2025/07/Screenshot_2022-06-17-20-28-10-96_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/Screenshot_2022-06-17-20-28-10-96_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 1000w, https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-28-10-96_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><h1 id="but-then-it-got-worse">But then it got worse</h1><p>On this screen you can then swipe left or right to see different information, one being the readings from the CT clamps. I noticed it didn&apos;t seem to know a difference between import and export still, things weren&apos;t looking good...</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-31-56-38_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="1080" height="2400" srcset="https://walmsley.tech/content/images/size/w600/2025/07/Screenshot_2022-06-17-20-31-56-38_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/Screenshot_2022-06-17-20-31-56-38_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 1000w, https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-31-56-38_2d2a0c1e8b1c7bf5f805a43c18f8cc74.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>To the right was the settings screen to configure solar etc, excellent! But then I hit a buggy mess.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-1.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="1080" height="2400" srcset="https://walmsley.tech/content/images/size/w600/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-1.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-1.jpg 1000w, https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-1.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>Unfortunately the settings screen seems very buggy, text keeps overlapping and sometimes the text won&apos;t appear at all to configure bits. However when you are able to get the correct fields show this is how the solar configuration looks.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-2.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="1080" height="2400" srcset="https://walmsley.tech/content/images/size/w600/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-2.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-2.jpg 1000w, https://walmsley.tech/content/images/2025/07/Screenshot_2022-06-17-20-32-07-53_2d2a0c1e8b1c7bf5f805a43c18f8cc74-2.jpg 1080w" sizes="(min-width: 720px) 720px"></figure><p>I was confused on why it was asking for times to solar charge, but for now I put in the times we export the most.</p><h1 id="solar-hassle">Solar Hassle </h1><p>I then plugged the car in ready for it to start solar charging the next day which as soon as it hit 10AM the next day it certainly did. But it was quite weird as it was charging even though we wern&apos;t exporting.</p><p>I had another look at the paperwork and noticed that it said you&apos;d put the clamp to monitor solar generation just after the inverter and not between your meter and the house. Something seemed odd.</p><p>After a bit of figuring out, it looks like this charger doesn&apos;t have a proper solar integration. Instead it seems to work on the basis that you set a minimum charge speed of say 6A, it&apos;ll start charging at the time specified (e.g 10AM) and then with the clamp on your solar inverter if your solar starts producing 8A for example it&apos;ll increase the charge rate to 10A.</p><p>However this is honestly useless, most solar chargers on the market go on the basis where they monitor your import / export and will increase as you export more. But decrease if you&apos;re not exporting. So say like you&apos;re consuming 2A of the 8A your solar is producing, the car would charge at 6A, but in this implementation it&apos;d charge the car at 8A leaving you to import 2A.</p><p>Due to this for now I&apos;ve disabled the solar implementation for now.</p><h1 id="conclusion-time">Conclusion time</h1><p>Overall I don&apos;t think I can recommend this charger, expecially if you&apos;re hoping to use it as a solar charger. I know other people who have Zappis which operate as expected charging based on what they export etc. </p><p>It does have other smart functionallity such as monitoring how much power is being used, and offering a timer but neither of these to me make it worth it. The monitoring power consumption has never fussed me too much and most cars have a built in timer.</p><p>It&apos;s not even like it then has integration for smart home systems or smart tarrifs like Octopus Agile either, so you&apos;re paying a premium for a smart charger which doesn&apos;t really offer many features. Along with the app being quite buggy too it&apos;s just not great considering the price which usually installed is &#xA3;779, I&apos;d likely say you&apos;re better off either getting a dumb charger installed cheaper or a more expensive charger that offers more useful smart features (such as a better solar integration, smart home integration or smart tarrif integration).</p><h1 id="technical-deep-dive">Technical Deep Dive </h1><h2 id="why-cant-it-detect-export-vs-import">Why can&apos;t it detect export vs import?</h2><p>So I was interested as to why it can&apos;t detect import vs export, previously in my DIY solution the issue was due to it not having a proper energy monitoring IC to calculate the phase angle. But as this has AC mains running to it I didn&apos;t think it&apos;d be an issue.</p><p>Before installing I had taken some pictures of the smart board and removed the Pi Zero to see underneath and the chips that were there.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/IMG20220616133510.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2025/07/IMG20220616133510.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/IMG20220616133510.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2025/07/IMG20220616133510.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2025/07/IMG20220616133510.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Zooming onto the IC that runs from the CT terminals, we can identify it&apos;s an ADE7858.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/IMG20220616133525.jpg" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2025/07/IMG20220616133525.jpg 600w, https://walmsley.tech/content/images/size/w1000/2025/07/IMG20220616133525.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2025/07/IMG20220616133525.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2025/07/IMG20220616133525.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>While it does seem to indicate that you can supply it with a mains voltage input I to do phase angle calculation (which is used to identify between a positive or negative reading). From what I can tell on this board they&apos;ve shorted these pins all together. </p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2025/07/Screenshot-2025-07-08-at-18.09.04.png" class="kg-image" alt="EO Mini Pro 2 Review" loading="lazy" width="738" height="776" srcset="https://walmsley.tech/content/images/size/w600/2025/07/Screenshot-2025-07-08-at-18.09.04.png 600w, https://walmsley.tech/content/images/2025/07/Screenshot-2025-07-08-at-18.09.04.png 738w" sizes="(min-width: 720px) 720px"></figure><h3 id="hacking-it-better">Hacking it better</h3><p>Well, as it&apos;s brains is a Raspberry Pi it&apos;s certainly possible to modify, it looks like the Pi itself just sends commands to the main charger board using an RS485 bus (also indicated by the usual labelling of this with the 0V, A &amp; B on the terminal block header that connects to the main unit. The code itself is all written in python that hasn&apos;t even been obfuscated either.</p><p>Maybe if I can figure out what commands to send to the main board to enable and disable charging I may then be able to use the data from my HASSIO instance to decide if it should charge based on export or not.</p>]]></content:encoded></item><item><title><![CDATA[Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick]]></title><description><![CDATA[<p>I recently wrote an article on a DIY energy monitoring solution using CT Clamps and an ESP8266.</p><p>This has been working fairly well, however had one flaw I couldn&apos;t figure out how to resolve. Measuring export from excess power generated by solar.</p><p>While I don&apos;t currently</p>]]></description><link>https://walmsley.tech/review-glowstick/</link><guid isPermaLink="false">656525843cecfe5adc2511a6</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Thu, 07 Oct 2021 20:29:15 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/IMG20211005115201.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/IMG20211005115201.jpeg" alt="Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick"><p>I recently wrote an article on a DIY energy monitoring solution using CT Clamps and an ESP8266.</p><p>This has been working fairly well, however had one flaw I couldn&apos;t figure out how to resolve. Measuring export from excess power generated by solar.</p><p>While I don&apos;t currently have solar we should be having it fitted in the next month, so I wanted to sort out export measuring.</p><h2 id="options">Options</h2><p>So essentially with some searching I had a few potential options for monitoring both import and export for our house which were:</p><ul><li>Upgrade the ESP board to something that used a ATM90E32, these breakouts require an AC transformer that produces ~9V AC output. This chip then has the AC voltage, frequency and from what I understand the phase so it can measure import vs export.<br>The biggest issue of this was fitting a Mains outlet in the meter box.</li><li>Try and use another couple of normal clamps on the fuse board possibly if the solar is wired up in a way that was slightly different. However this was unlikely.</li><li>Find another solution, which in this case was the Glowstick.</li></ul><h2 id="so-the-glowstick">So, the Glowstick</h2><p>Upon Googling around for MQTT Smartmeters both the Glowstick &amp; IHD version, now these are semi limited in meter compatability. Being either a SMETS1 version that from what I can tell requires you to have a SECURE branded smart meter (Which is what Octopus installed for us) (With possibly compatability for other SMETS1 Meters but I can&apos;t quite tell), Or a SMETS2 version with wider compatability. (Noting the stick currently is SMETS1 only, the display offers both versions).</p><p>After comparing this against the ATM90E32 solution this worked out most cost effective (Approx &#xA3;60-70 excluding the socket fitting), or this at &#xA3;50. I wasn&apos;t worried about the display myself so just ordered the stick, I had to verify our bill with them but after that was done the stick was on it&apos;s way!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/IMG20211005115201-1.jpeg" class="kg-image" alt="Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2022/06/IMG20211005115201-1.jpeg 600w, https://walmsley.tech/content/images/size/w1000/2022/06/IMG20211005115201-1.jpeg 1000w, https://walmsley.tech/content/images/size/w1600/2022/06/IMG20211005115201-1.jpeg 1600w, https://walmsley.tech/content/images/2022/06/IMG20211005115201-1.jpeg 2000w" sizes="(min-width: 720px) 720px"><figcaption>The stick in it&apos;s packaging</figcaption></figure><p>As I had also downloaded the App ready and signed up for an account which was the same email address as I ordered from, they had also pre-linked it to my account ready.</p><h2 id="how-does-it-work">How does it work?</h2><p>From what I can tell without cracking it open, the stick is essentially a Zigbee and ESP based board. It just uses USB for power and bridges the data from the smart meter using Zigbee to the internet via Wi-Fi. </p><p>When it arrived it creates a wi-fi hotspot which I connected to with my phone. Used the app to specify my Wi-Fi credentials and it then connected to that, within about 5 minutes it had then linked to the smart meter and Glow&apos;s cloud server and was pumping data through.</p><p>At time of purchasing I asked for MQTT access which was setup without an issue, while they don&apos;t provide support for MQTT the info they sent through worked first time.</p><p>Simply connect to their MQTT via the username and password I signed up with on the app and subscribe to the topic and voila data!</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/Screenshot_20211006_233854.png" class="kg-image" alt="Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick" loading="lazy" width="611" height="242" srcset="https://walmsley.tech/content/images/size/w600/2022/06/Screenshot_20211006_233854.png 600w, https://walmsley.tech/content/images/2022/06/Screenshot_20211006_233854.png 611w"><figcaption>Voila Data!</figcaption></figure><h2 id="configuring-hassio">Configuring HASSIO</h2><p>Configuring HASSIO to then get this data was fairly easy and broken down into a 2 step process.</p><h3 id="mqtt-subscription-bridging">MQTT Subscription Bridging</h3><p>The first part is getting the MQTT data into your HASSIO&apos;s MQTT instance, I run my Mosquitto broker on the Pi that I run HASSIO On.</p><p>To do this I SSHd into the Pi running it, and created a file for mosquitto at <code>/share/mosquitto/smartmeter.conf</code></p><pre><code class="language-conf"># Bridge to Smartmeter
connection smart-meter-bridge
address glowmqtt.energyhive.com:8883
remote_username &lt;GLOW_USERNAME&gt;
remote_password &lt;GLOW_USERNAME&gt;
bridge_insecure true
bridge_capath /etc/ssl/certs/
topic SMART/HILD/&lt;GLOW_MAC&gt; in 0
bridge_protocol_version mqttv311</code></pre><p>In total you just need to set your username and password you used for the Bright App, and the MAC of the IHD / Stick.</p><p>Then reboot your Mosquitto broker. You should then see the data in your local broker if you use something like mqtt-explorer.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/Screenshot_20211006_233854-1.png" class="kg-image" alt="Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick" loading="lazy" width="611" height="242" srcset="https://walmsley.tech/content/images/size/w600/2022/06/Screenshot_20211006_233854-1.png 600w, https://walmsley.tech/content/images/2022/06/Screenshot_20211006_233854-1.png 611w"><figcaption>My local MQTT broker with the data from Glow</figcaption></figure><h3 id="setting-up-the-sensors">Setting up the sensors</h3><p>As it&apos;s MQTT you&apos;ll then need to add the sensors in, there&apos;s a little discussion and some examples of this at <a href="https://gist.github.com/ndfred/5bb51b567f8cfaf2bb06da6393169321">https://gist.github.com/ndfred/5bb51b567f8cfaf2bb06da6393169321</a></p><p>I used a combination of two posts, I wasn&apos;t quite worried about all of the data so used the following and put it in the sensors section.</p><pre><code class="language-YAML">  - platform: mqtt
    name: &quot;Home Instant Electricity&quot;
    state_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    unit_of_measurement: &apos;W&apos;
    value_template: &quot;{{ value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;04&apos;][&apos;00&apos;]|int(base=16) }}&quot;
    icon: &apos;mdi:flash&apos;
  - platform: mqtt
    name: &quot;Home Instant Export&quot;
    state_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    unit_of_measurement: &apos;W&apos;
    value_template: &quot;{{ value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;00&apos;][&apos;01&apos;]|int(base=16) }}&quot;
    icon: &apos;mdi:flash&apos;
  - platform: mqtt
    name: &quot;Home Electricity Import Meter&quot;
    state_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    last_reset_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    last_reset_value_template: homeassistant.util.dt.utc_from_timestamp(0)
    unit_of_measurement: &apos;kWh&apos;
    device_class: energy
    state_class: total_increasing
    value_template: &quot;{{ value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;00&apos;][&apos;00&apos;]|int(base=16) * value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;03&apos;][&apos;01&apos;]|int(base=16) / value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;03&apos;][&apos;02&apos;]|int(base=16) }}&quot;
    icon: &apos;mdi:counter&apos;

  - platform: mqtt
    name: &quot;Home Electricity Export Meter&quot;
    state_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    last_reset_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    last_reset_value_template: homeassistant.util.dt.utc_from_timestamp(0)
    unit_of_measurement: &apos;kWh&apos;
    device_class: energy
    state_class: total_increasing
    icon: &apos;mdi:counter&apos;
    value_template: &quot;{{ (value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;00&apos;][&apos;01&apos;]|int(base=16) * value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;03&apos;][&apos;01&apos;]|int(base=16) / value_json[&apos;elecMtr&apos;][&apos;0702&apos;][&apos;03&apos;][&apos;02&apos;]|int(base=16)) }}&quot;
    
  - platform: mqtt
    name: &quot;Home Gas Meter M3&quot;
    state_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    last_reset_topic: &quot;SMART/HILD/&lt;GLOW_MAC&gt;&quot;
    last_reset_value_template: homeassistant.util.dt.utc_from_timestamp(0)
    unit_of_measurement: m&#xB3;
    value_template: &quot;{{ value_json[&apos;gasMtr&apos;][&apos;0702&apos;][&apos;00&apos;][&apos;00&apos;]|int(base=16) * value_json[&apos;gasMtr&apos;][&apos;0702&apos;][&apos;03&apos;][&apos;01&apos;]|int(base=16) / value_json[&apos;gasMtr&apos;][&apos;0702&apos;][&apos;03&apos;][&apos;02&apos;]|int(base=16) }}&quot;
    icon: &apos;mdi:counter&apos;
    device_class: gas
    state_class: total_increasing</code></pre><p>(Note the Export data is currently untested until we get solar fitted).</p><p>I then reloaded the Manual MQTT enteries in Hassio, went into Configuration -&gt; Energy then under Grid consumption clicked Add Consumption.</p><p>I was then able to select the Home Electricity Import Meter as the source, and I set it to track the price from the Octopus Go entry I configured in a previous blogpost (<a href="https://walmsley.tech/octopus-go-hassio/">https://ryanteck.uk/octopus-go-hassio/</a>)</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/Screenshot_20211006_234251.png" class="kg-image" alt="Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick" loading="lazy" width="402" height="559"><figcaption>The entity configured in Hassio</figcaption></figure><p>And then I was all done and getting data in HASSIO! At the same time I configured the export function ready for when we get solar.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/06/Screenshot_20211005_213315-1.png" class="kg-image" alt="Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick" loading="lazy" width="1649" height="520" srcset="https://walmsley.tech/content/images/size/w600/2022/06/Screenshot_20211005_213315-1.png 600w, https://walmsley.tech/content/images/size/w1000/2022/06/Screenshot_20211005_213315-1.png 1000w, https://walmsley.tech/content/images/size/w1600/2022/06/Screenshot_20211005_213315-1.png 1600w, https://walmsley.tech/content/images/2022/06/Screenshot_20211005_213315-1.png 1649w" sizes="(min-width: 720px) 720px"></figure><h2 id="pros-cons">Pros &amp; Cons</h2><p>Now after using it for just after a day here&apos;s some of the main Pros &amp; Cons of the Glowstick</p><h3 id="pros-of-the-glowstick">Pros of the Glowstick</h3><ul><li>It&apos;s quick and easy to get going, I spent much longer tweaking the clamp system where as for fairly DIY solutions go this was very Plug &amp; Play, no calibration or anything needed.</li><li>It does Export! If I didn&apos;t need export I likely wouldn&apos;t have brought this, but it does! As a double bonus if I can get Octopus to fit a Smart gas meter in then we&apos;d be able to monitor gas through too which I would never say to do any DIY system on.</li><li>It&apos;s technically more accurate, as it&apos;s what the meter is reporting there&apos;s no issues with having to get a voltage reading for a DIY clamp system either.</li><li>The updates are very responsive, roughly HASSIO gets data updates over MQTT every 10 seconds. Where as previously I could only view smartmeter data every half hour and even the DIY Clamp system was recommended for 30-60 seconds updates.</li></ul><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2021/10/Screenshot_20211007_215908.png" class="kg-image" alt="Smart Meter Data Over MQTT! Using the Glowmarkt Glowstick" loading="lazy" width="384" height="339"><figcaption>Updates every 10 seconds, accurate enough to see when the kettle&apos;s being boiled or dinner is being cooked!</figcaption></figure><h3 id="cons-of-the-glowstick">Cons of the Glowstick</h3><ul><li>It uses the Cloud - This is the biggest issue to a certain extent, partially the idea of HASSIO is that it&apos;s fully self hosted. And this is the first device I got which isn&apos;t fully local. <br><br>You&apos;d think that being an ESP based widget you could just get it to connect to your local MQTT server directly, while with some hacking of the widget it might be possible. I strongly suspect this is due to licensing of the smart meter network in the UK, To get it I had to verify our meter number as they&apos;re registered with the smart meter network to read data.<br><br>Primarily this is why I can&apos;t just use a Zigbee bridge is because of the smart meter network licensing. So it&apos;s kinda a necessary evil. <br></li><li>Accuracy* - Now I know I said in the previous part that it&apos;s more accurate, however one thing I&apos;ve noticed is it seems the data over MQTT seems to round up to the closest 0.05kWh which just bugs me slightly. Maybe this could be fixed or is just the MQTT template I&apos;ve used for Hassio is slightly wrong.<br><br>In the end HASSIO reported for the full previous day we used 14.7kWh. Octopus logged 14.729. I&apos;d be quite happy if it was just one DP more accurate in HASSIO of say 14.73.<br></li><li>Meter Changes - If my meter has to get changed in the future, or gets upgraded to SMETS2 the stick may have to be replaced with a new one. I did query and they might be able to do a discount if this were to happen, however for now Octopus is still the best for us.</li></ul><h2 id="conclusion">Conclusion</h2><p>Overall I&apos;m quite happy with the Glowstick after about 48 hours of use, it&apos;s doing what it says on the tin which after all is all I expect. </p><p>The price at &#xA3;50 is mixed, while for essentially a posh Zigbee bridge it&apos;s a bit expensive. I suspect part of this cost goes towards the Smart Meter Communications Network licensing, with the second part being that because it goes via their cloud servers there is some cost involved to run them. The likely alternative being a cheaper stick but a monthly subscription.</p><p>But apart from that there&apos;s nothing else really to complain about, maybe if the accuracy improved slightly that was about the only issue I found.</p><p>So overall I would recommend it if you need to monitor export too, if it&apos;s just for import monitoring I&apos;d say go the DIY route unless you can&apos;t get power to a sensor there.</p>]]></content:encoded></item><item><title><![CDATA[Cheap CT Clamp Based Energy Monitoring]]></title><description><![CDATA[<p>Within the last couple of months the Home Automation Software I use, Home Assistant (HASSIO) has added some new Energy monitoring features which look really handy.</p><p>It had a few recommended methods for monitoring power, being:</p><ul><li>A data protocol on meters that seem based primarily in Netherlands, Belgium and Luxembourg.</li></ul>]]></description><link>https://walmsley.tech/cheap-ct-clamp-based-energy-monitoring/</link><guid isPermaLink="false">656525843cecfe5adc2511a5</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Wed, 06 Oct 2021 19:41:19 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/IMG20211003182306--1-.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/IMG20211003182306--1-.jpg" alt="Cheap CT Clamp Based Energy Monitoring"><p>Within the last couple of months the Home Automation Software I use, Home Assistant (HASSIO) has added some new Energy monitoring features which look really handy.</p><p>It had a few recommended methods for monitoring power, being:</p><ul><li>A data protocol on meters that seem based primarily in Netherlands, Belgium and Luxembourg. So basically useless to me being in the UK.</li><li>A DIY solution where you put a light sensor onto the blinking LED on the meter, this LED blinks every time you use X of a unit.</li><li>A DIY Solution of a Current Clamp on the mains cables from the meter.</li></ul><p>I decided to go for the third option as the parts were quite easy to get hold of, plus I could use two clamps, one on the feed into the house and the other onto the feed to my EV charger.</p><p>The main issue I found with this was routing a power source for the microcontroller to the meter box, my meter is outside however luckily I had a 12V cable running to something else near the meter so ran a 12V cable into the meter cabinet.</p><h3 id="the-bom">The BOM</h3><p>The BOM was quite low</p><p>You&apos;ll need:</p><ul><li>A CT Clamp Sensor, the most recommended is these <code>SCT-013-000</code> sensors. They&apos;re less than &#xA3;10 each from eBay or even less than &#xA3;5 from Aliexpress if you don&apos;t mind the wait.</li><li>A Wemos D1, you could technically use any ESP8266 but I chose one of these for ease.</li><li>Some circuitry to connect the CT Clamp to the ESP8266, this typically is a capacitor, some resistors plus a connector for the clamp.</li></ul><p>For the last one I found an eBay seller that was already selling boards, I originally ordered just one of the basic boards that supports one sensor and is powered by the ESP8266 at <a href="https://www.ebay.co.uk/itm/133077015640">https://www.ebay.co.uk/itm/133077015640</a> .</p><p>However later on I then switched to the 4 channel version that has an ADC at <a href="https://www.ebay.co.uk/itm/133377327840">https://www.ebay.co.uk/itm/133377327840</a> , this also was powered by 12V so resolved the part too.</p><h3 id="more-accurate-voltage-source">More accurate Voltage Source</h3><p>One flaw with the CT method is that you need to provide it with a voltage, some tutorials say to just manually set this, however while our mains should be 230V in the UK it can vary quite a range all the way from 240 to 247V throughout today.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2022/06/Screenshot_20211005_234514.png" class="kg-image" alt="Cheap CT Clamp Based Energy Monitoring" loading="lazy" width="373" height="186"><figcaption>Rough voltages over a 24 hour period.</figcaption></figure><p>I have a few sockets in my house which monitor and report the voltage to, I calibrated one that&apos;s on 24/7 as close as I could and then noted down the entity this shows up on in HASSIO.</p><h3 id="setting-it-up">Setting it up</h3><p>Once all the parts arrived the hardware assembly was simple, just push the Wemos onto the carrier board, connected the two current clamps to the board and it was ready to go.</p><p>Next I flashed ESPHome onto it, here&apos;s the code I used. This code will work for the first CT sensor on the board which has 4 sockets and the I2C ADC, you&apos;ll have to copy and edit the code for the other 3 sockets.</p><pre><code class="language-YAML">esphome:
  name: house_power
  platform: ESP8266
  board: d1_mini

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:
  password: &quot;&lt;generatedbyesphome&gt;&quot;

wifi:
  networks:
  - ssid: &quot;&lt;WIFI_SSID&gt;&quot;
    password: &quot;&lt;WIFI_PASSWORD&gt;&quot;

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: &quot;House_power Fallback Hotspot&quot;
    password: &quot;&lt;WIFI_FALLBACK&gt;&quot;

captive_portal:

i2c:
  sda: 4
  scl: 5
  scan: true
  id: bus_a
  
ads1115:
  - address: 0x48

sensor:
  - platform: homeassistant
    name: &quot;Voltage From Home Assistant&quot;
    entity_id: sensor.&lt;VOLTAGE_ENTITY_HERE&gt;
    id: home_voltage

  - platform: total_daily_energy
    name: &quot;import_ct_total&quot;
    power_id: import_live
    unit_of_measurement: &quot;kWh&quot;
    id: import_ct_total


  - platform: ct_clamp
    sensor: adc_sensor0
    name: &quot;import_live&quot;
    id: import_live
    update_interval: 15s
    filters:
      - calibrate_linear:
        - 0 -&gt; 0
        - 0.01764 -&gt; 2.479 
      - lambda: return x * id(home_voltage).state / 1000;
    unit_of_measurement: &quot;kw&quot;   
    

  # Example source sensor
  - platform: ads1115
    multiplexer: &apos;A0_GND&apos;
    gain: 6.144
    name: &quot;ADS1115 Channel A0-GND&quot;
    id: adc_sensor0

time:
  - platform: sntp
    id: my_time
</code></pre><p>There&apos;s a few variables you&apos;ll need to change if you use the above which are:</p><ul><li>Wi-Fi SSID &amp; Password along with Fallback Password</li><li>A new ESPHome Key - Typically generated by it.</li><li>The entity in HASSIO you&apos;ll use for voltage.</li></ul><p>Finally you&apos;ll then have to calibrate the sensors using the calibrate_linear function. I did this by adjusting the value based on what my smart meter was reading.</p><p>Once this was done, I had to just approve the ESPHome integration in HASSIO and it worked!</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/06/Screenshot_2021-09-30-22-56-07-75_c3a231c25ed346e59462e84656a70e50--1-.jpg" class="kg-image" alt="Cheap CT Clamp Based Energy Monitoring" loading="lazy" width="1000" height="869" srcset="https://walmsley.tech/content/images/size/w600/2022/06/Screenshot_2021-09-30-22-56-07-75_c3a231c25ed346e59462e84656a70e50--1-.jpg 600w, https://walmsley.tech/content/images/2022/06/Screenshot_2021-09-30-22-56-07-75_c3a231c25ed346e59462e84656a70e50--1-.jpg 1000w" sizes="(min-width: 720px) 720px"></figure><h3 id="final-overview-flaw">Final Overview &amp; Flaw</h3><p>The above CT clamp method works fairly well, the hardest part was getting power to the ESP8266.</p><p>However one unfortunate thing is that the above method doesn&apos;t work to monitor exporting power to the grid, while the clamp sensors have arrows to indicate which way round they monitor. For this to work with AC power you typically require a more complicated breakout board and ideally a mains socket within reach of the breakout board.</p><p>I&apos;ll work on another solution for the whole home power monitoring, however will be keeping a clamp on the feed to my car charger and when we get solar installed soon setup another on the power generated by the solar inverter.</p>]]></content:encoded></item><item><title><![CDATA[Adding an Octopus Go Pricing Entity to Home Assistant]]></title><description><![CDATA[<p>With the recent new Energy management feature being added to HASSIO I&apos;ve started work on building some DIY sensors to use.</p><p>One of the features is for you to be able to track the cost of the energy used by providing a pricing entity, back when I was</p>]]></description><link>https://walmsley.tech/octopus-go-hassio/</link><guid isPermaLink="false">656525843cecfe5adc2511a4</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Sat, 25 Sep 2021 10:54:00 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/d992cb9f-7e96-4452-9ebd-0587bfcdefee-1629204420813--1-.png" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/d992cb9f-7e96-4452-9ebd-0587bfcdefee-1629204420813--1-.png" alt="Adding an Octopus Go Pricing Entity to Home Assistant"><p>With the recent new Energy management feature being added to HASSIO I&apos;ve started work on building some DIY sensors to use.</p><p>One of the features is for you to be able to track the cost of the energy used by providing a pricing entity, back when I was on Agile I did find a plugin for tracking that cost. But recently I was unable to find one for Octopus Go.</p><p>I then figured out a simple cheat way to do this.</p><h1 id="automations-">Automations!</h1><p>Compared to agile where we need to track a price from an API, we can mostly cheat with Octopus Go / Go Faster.</p><p>I&apos;m still on the &quot;Legacy&quot; Go so at 12:30AM the electric drops to &#xA3;0.05 per kWh and at 4:30AM it goes back up to &#xA3;0.141 per kWh. Essentially to make it match your Go or Go Faster Tarrif you just change the start and end times below.</p><h2 id="step-1-create-a-helper">Step 1 - Create a &quot;Helper&quot;</h2><p>Home Assistant allows you to create &quot;Helper&quot; sensors / inputs, these can then be used with automations to provide extra values. Excellent!</p><p>To do this go into Configuration, and then Helpers and then the Add Helper Button.</p><p>For the type select Number, which will present you with a screen like below. I&apos;ve pre-filled it out with what I&apos;ve set.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/04/Screenshot-2021-09-25-105818.png" class="kg-image" alt="Adding an Octopus Go Pricing Entity to Home Assistant" loading="lazy" width="427" height="617"></figure><p>This will create a new &quot;Helper&quot; which is configured for pricing in GBP per kWH for Hassio. Essentially as a blank sensor.</p><p>This should then create the entity <code>input_number.octopus_go</code></p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/04/image.png" class="kg-image" alt="Adding an Octopus Go Pricing Entity to Home Assistant" loading="lazy" width="1396" height="227" srcset="https://walmsley.tech/content/images/size/w600/2023/04/image.png 600w, https://walmsley.tech/content/images/size/w1000/2023/04/image.png 1000w, https://walmsley.tech/content/images/2023/04/image.png 1396w" sizes="(min-width: 720px) 720px"></figure><h2 id="step-2-the-start-automation-">Step 2 - The &quot;Start&quot; automation.</h2><p>Next we need to create the automation that will start the pricing, I&apos;ve decided to do the Start as the Start of the cheap period.</p><p>Go back to Configuration, then Automations and then Add Automation.</p><p>Here click Start with an empty automation, then in the top right click the three dots icon clicking the Edit in YAML button.</p><p>Now you can copy the below in as a starter template.</p><pre><code class="language-yaml">alias: Octopus Go Start
description: &apos;&apos;
trigger:
  - platform: time
    at: &apos;00:30:00&apos;
condition: []
action:
  - service: input_number.set_value
    target:
      entity_id: input_number.octopus_go
    data:
      value: 0.05
mode: single</code></pre><p>And then save!</p><p>This automation is fairly simple, and you can adjust it as required with the &quot;at&quot; time being your Octopus Go start time. You may need to set this to another start time of the cheap period if you&apos;re on the Go Faster plan. At the same time you may need to adjust the value if you&apos;re on a Go Faster plan to your unit rate.</p><h2 id="step-3-the-end-automation-">Step 3 - The &quot;End&quot; automation.</h2><p>And then we need to replicate the same for the end of the cheap period, similarly go back to automations and create a new empty automation, then in the top right click the three dots icon clicking the Edit in YAML button.</p><p>Now you can copy the below in as a starter template.</p><pre><code class="language-yaml">alias: Octopus Go End
description: &apos;&apos;
trigger:
  - platform: time
    at: &apos;04:30:00&apos;
condition: []
action:
  - service: input_number.set_value
    target:
      entity_id: input_number.octopus_go
    data:
      value: 0.141
mode: single</code></pre><p>And then save!</p><p>Similarly you may need to adjust the time for a different end time if you&apos;re on Go Faster, and the value to the actual unit rate you&apos;re paying.</p><p>You can find the times along with the prices in your Octopus Account.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/04/image-1.png" class="kg-image" alt="Adding an Octopus Go Pricing Entity to Home Assistant" loading="lazy" width="743" height="188" srcset="https://walmsley.tech/content/images/size/w600/2023/04/image-1.png 600w, https://walmsley.tech/content/images/2023/04/image-1.png 743w" sizes="(min-width: 720px) 720px"></figure><h2 id="step-4-test-it-">Step 4 - Test it!</h2><p>I&apos;d recommend you then go back into automations and manually run each one to confirm that they are configured correctly. You should then see the price on the entity (I&apos;ve configured Lovelace to show the price as an entity).</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/04/image-3.png" class="kg-image" alt="Adding an Octopus Go Pricing Entity to Home Assistant" loading="lazy" width="397" height="362"></figure><p>As you can see where I manually set the times. Over time this should then get automated by the Automations.</p><h2 id="step-5-integration">Step 5 - Integration</h2><p>Finally you can then integrate it with your energy source, if you go into configuration then energy. You should be able to edit a power source to set the costs to &quot;use an entity with current price&quot; and set the octopus_go sensor we created.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2023/04/image-4.png" class="kg-image" alt="Adding an Octopus Go Pricing Entity to Home Assistant" loading="lazy" width="462" height="602"></figure><h1 id="summary">Summary</h1><p>So if all the above worked correctly you should now have an entity in Hassio that provides your Octopus Go cost to then integrate into power consumptions throughout HASSIO.</p><p>I&apos;m still testing mine so if I find over the next week any issues I&apos;ll update this post with fixes.</p>]]></content:encoded></item><item><title><![CDATA[QUBEV - EV Charger Review]]></title><description><![CDATA[<p>Recently my EV Charger has been tripping out, unfortunately meaning that a few times I&apos;ve woken up to no charge.</p><p>From the best diagnosis I could do I determined it was the charger, which I did buy used so suspect it was sold due to possibly the same</p>]]></description><link>https://walmsley.tech/qubev-ev-charger-review/</link><guid isPermaLink="false">656525843cecfe5adc2511a3</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Sun, 08 Aug 2021 21:05:54 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/IMG20210804211103--1-.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/IMG20210804211103--1-.jpg" alt="QUBEV - EV Charger Review"><p>Recently my EV Charger has been tripping out, unfortunately meaning that a few times I&apos;ve woken up to no charge.</p><p>From the best diagnosis I could do I determined it was the charger, which I did buy used so suspect it was sold due to possibly the same issue.</p><p>I looked around at chargers and decided to get the QUBEV, I did originally almost buy it instead of the used charger to begin with and this time decided to go for it.</p><h3 id="qubev-evonestop-or-rolec">QUBEV / EVONESTOP or ROLEC?</h3><p>One thing I noticed is that on some parts of the branding was EVONESTOP, others QUBEV and others Rolec.</p><p>From what I could research Rolec are the actual company behind it, with essentially the QUBEV being the budget brand / model. </p><p>EVONESTOP is basically Rolec&apos;s direct outlet to buy the goods cheaper than via Distributors.</p><p>I ordered mine directly from EVONESTOP to save &#xA3;5 over buying via Amazon or eBay. However one thing to note is if you need it quickly pay the &#xA3;5 to get it via <a href="https://amzn.to/3fuIp0G">Amazon </a>as my order placed on Sunday didn&apos;t arrive until Wednesday.</p><h3 id="replacing-a-teathered-charger-with-an-unteathered-charger">Replacing a Teathered charger with an Unteathered Charger</h3><p>One of the things I had to decide was if I was fine with an Unteathered charger as I currently had a Teathered one. (Weather the cable is wired in or if it has a socket).</p><p>Originally with teathered you think it makes it easier to put away, however unless you just leave the cable hanging about un-neatly really the process is just the same. </p><p>Finally in my case I had a Type 1 teathered, however if in the future I do upgrade my car by having a socket it futureproofs it on this </p><h2 id="the-charger-itself">The Charger Itself</h2><p>The charger is rather small in comparison to my previous pod-point, it&apos;s approximately 150x200x100MM , you do have to account for the socket itself when plugged in as it does stick out in comparison to a teathered charger.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804104415.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804104415.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804104415.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804104415.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804104415.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>The box it came in was smaller than my previous charger.</figcaption></figure><p>What&apos;s included is very minimal, in the package was just the charger, a short installation booklet and 4 Wallplugs and Screws for installation. You will need to buy a cable gland for installation.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804194754.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804194754.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804194754.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804194754.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804194754.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>Very smoll</figcaption></figure><p>The first step was to open it up by unscrewing the 4 screws in each corner., carefully opening reveals the internals.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804194904.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804194904.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804194904.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804194904.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804194904.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Really there was no room to be able to work with the cables being this short, so my first step was to unscrew the cables from the socket to open it up fully.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804195510.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804195510.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804195510.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804195510.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804195510.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>The internals of the QubEV</figcaption></figure><p>This is one of the cheapest units on the market, and it shows. Inside we have a DIN rail with 3 connector blocks, a contactor and a EV charge controller. It really is a minimal design.</p><p>We have 5 cables going to the socket, 3 power (L, N, &amp; E) along with 2 smaller wires which are Proximity Pilot and Control Pilot.</p><p>The Live And Neutral connect via the contactor to the mains, essentially the contactor is a electrically controlled switch which the EV Charge controller uses to connect the car to the mains. Earth is connected directly so is active all the time.</p><p>The proximity pilot on this side tells the charge controller when a cable is connected, and the control pilot is then used to communicate from the EV to the charger which state it should be in (Charging, Not charging, Waiting to charge, Fault) and from the charger to the car to indicate the maximum power allowed.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804195459.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804195459.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804195459.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804195459.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804195459.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>The socket surprsied me, typically in a charger the Type 2 socket has a little motorised pin lock the plug in place making it hard to remove while charging and hopefully making the cable less likely to be stolen.</p><p>However on the QUBEV this was missing which likely helps it acheive it&apos;s low cost. I&apos;m not too worried but I wonder if it&apos;s as safe without it.</p><h2 id="installation">Installation</h2><p>To begin I first carefully removed the cover from the charge controller (on the right) to get access to the DIP switches. The spur mine is on is only suitable for 20A so I configured it for a 16A charge rating by turning Dipswitch 2 on. (Edit, the photo below shows dipswitch 1 on, however this actually is for 10A, I had to change it to 2 after finding this out).</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804200033.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804200033.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804200033.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804200033.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804200033.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Next I replaced the cover and went outside, first I drilled a hole in the bottom of the unit for my cable gland, next I went outside and with the included template (a square of the packaging) drilled out the holes in the wall for the charger.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804204120-1.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804204120-1.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804204120-1.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804204120-1.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804204120-1.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>After I drilled all 4 holes and inserted the wallplugs I then screwed the unit on the wall, one thing I quite liked is how on this the screws are in their own compartment helping with water resistance.</p><p>I then inserted the cable gland and cable ready for the next step.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804204627.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804204627.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804204627.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804204627.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804204627.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>Next I crimped new bullet connectors onto my cable and screwed them into the 3 connectors to the left, these did feel slightly flimsy when screwing in but once completed held in well.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804205704.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804205704.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804205704.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804205704.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804205704.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804205721-1.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804205721-1.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804205721-1.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804205721-1.jpg 1600w, https://walmsley.tech/content/images/2021/08/IMG20210804205721-1.jpg 2000w" sizes="(min-width: 720px) 720px"><figcaption>It&apos;s very important to ensure these are tightened correctly to avoid chances of arcing and reduce chances of high resistance leading to melty moments.</figcaption></figure><p>Finally I reconnected the socket and sealed the charger up and then turned the power back on.</p><p>It went through it&apos;s self test and shortly after the light turned Blue indicating it was ready to charge.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804210653.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="2667" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804210653.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804210653.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804210653.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804210653.jpg 2400w" sizes="(min-width: 720px) 720px"><figcaption>All installed and ready to use.</figcaption></figure><p>I then next plugged my car in and tried it out!</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2021/08/IMG20210804211103.jpg" class="kg-image" alt="QUBEV - EV Charger Review" loading="lazy" width="2000" height="1500" srcset="https://walmsley.tech/content/images/size/w600/2021/08/IMG20210804211103.jpg 600w, https://walmsley.tech/content/images/size/w1000/2021/08/IMG20210804211103.jpg 1000w, https://walmsley.tech/content/images/size/w1600/2021/08/IMG20210804211103.jpg 1600w, https://walmsley.tech/content/images/size/w2400/2021/08/IMG20210804211103.jpg 2400w" sizes="(min-width: 720px) 720px"></figure><p>The light turned to Green and my car started charging, success!</p><h2 id="rounding-it-up">Rounding it up</h2><p>Overall the QubEV charger was very easy to install, I did already have all the wiring to the location and other circuitry already in place (RCBO etc) . If you don&apos;t already have this then some other solutions which have an internal RCBO and additional circuitry may be beneficial.</p><p>But as a replacement it&apos;s quite a nice charger, it&apos;s very compact and looks better on the wall than my previous one. </p><p>It&apos;s definitely built down to a price, it very much seems like an off the shelf IP rated box with a din rail and the bits added in. There wasn&apos;t even a knockout for the cable gland and I feel that either a pre-drilled hole or at least an easy knock out would have been better. While some may want them to come in from other angles with this I feel that the only suitable location was from the bottom.</p><p>However for &#xA3;225 it&apos;s hard to not recommend if you need a cheap and cheerful EV charger.</p>]]></content:encoded></item><item><title><![CDATA[Nebra Pi Zero Light Hotspot]]></title><link>https://walmsley.tech/nebra-pi-0-light-hotspot/</link><guid isPermaLink="false">656525843cecfe5adc2511a2</guid><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Fri, 09 Apr 2021 12:32:00 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/IMG_20210409_1436405.jpg" medium="image"/><content:encoded/></item><item><title><![CDATA[What Helium Region]]></title><description><![CDATA[<p>A simple project that I whipped up, <a href="https://whatheliumregion.xyz">What Helium Region</a> (<a href="https://whatheliumregion.xyz">https://whatheliumregion.xyz</a>) is a website I built to help people find what is the correct Region of Hotspot to order for the Helium LoRa Network. </p><p>You can simply enter the country you wish to use the hotspot in and</p>]]></description><link>https://walmsley.tech/what-helium-region/</link><guid isPermaLink="false">656525843cecfe5adc25119e</guid><category><![CDATA[Portfolio]]></category><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Mon, 05 Apr 2021 23:02:00 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/Screenshot-from-2021-05-24-23-51-56.png" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/Screenshot-from-2021-05-24-23-51-56.png" alt="What Helium Region"><p>A simple project that I whipped up, <a href="https://whatheliumregion.xyz">What Helium Region</a> (<a href="https://whatheliumregion.xyz">https://whatheliumregion.xyz</a>) is a website I built to help people find what is the correct Region of Hotspot to order for the Helium LoRa Network. </p><p>You can simply enter the country you wish to use the hotspot in and it will provide you with the correct* region making it simple to know which one you need to order.</p><p>Primarily with LoRa networks there is a mixture of Hardware Frequencies (433, 470, 868 &amp; 915 Mhz) along with Region Plans (EU868, US915, AU915, IN865 etc etc) making it sometimes confusing to know which is correct to order.</p><p>The site is designed to be as simple and minimal as it can be to handle high numbers of users while only being ran off a budget VPS.</p><p>Primarily it&apos;s a static webpage with a little bit of backend PHP scripting and use of javascript libraries to enhance the experience. It uses a Javascript library to autocomplete a country field and then submits a GET request. Of which PHP looks up in the JSON configuration file the correct region for the country and presents it to the user.<br>To enhance the experience the site also automatically detects the country based on IP Geolocation, typically making the country shown on initial page view the correct one for the user.</p><p>The site gets on average 400 visits a day according to Google Analytics.</p><p>* The region is provided from a configuration file in the Helium Miner, this does update over time and may mean some regions get updated to a different one.</p>]]></content:encoded></item><item><title><![CDATA[Nebra Indoor Helium Hotspot]]></title><description><![CDATA[<h3 id="summary">Summary</h3><p></p><p><strong>Company:</strong> Nebra LTD.<br><strong>Tasks: </strong>Electrical Design, PCB Design, Embedded Software Development, Python Software Development, Production Management, Quality Control, Hand Assembly of Prototypes, Certification Management, Documentation &amp; Testing.<br><strong>Date:</strong> First produced January 2021<br><strong>Status:</strong> In Production<br><strong>FInd out more at:</strong> <a href="https://helium.nebra.com/indoor-hotspot/overview">https://helium.nebra.com/indoor-hotspot/overview</a></p><h3 id="overview">Overview</h3><p>The Nebra Indoor</p>]]></description><link>https://walmsley.tech/nebra-indoor-helium-hotspot/</link><guid isPermaLink="false">656525843cecfe5adc251197</guid><category><![CDATA[Portfolio]]></category><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Tue, 26 Jan 2021 17:58:00 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/HeliumIndoorHotspot2_1c25b9bd-15c7-4e8e-ba62-ba49a73cd236_1000x1000.png" medium="image"/><content:encoded><![CDATA[<h3 id="summary">Summary</h3><img src="https://walmsley.tech/content/images/2023/02/HeliumIndoorHotspot2_1c25b9bd-15c7-4e8e-ba62-ba49a73cd236_1000x1000.png" alt="Nebra Indoor Helium Hotspot"><p></p><p><strong>Company:</strong> Nebra LTD.<br><strong>Tasks: </strong>Electrical Design, PCB Design, Embedded Software Development, Python Software Development, Production Management, Quality Control, Hand Assembly of Prototypes, Certification Management, Documentation &amp; Testing.<br><strong>Date:</strong> First produced January 2021<br><strong>Status:</strong> In Production<br><strong>FInd out more at:</strong> <a href="https://helium.nebra.com/indoor-hotspot/overview">https://helium.nebra.com/indoor-hotspot/overview</a></p><h3 id="overview">Overview</h3><p>The Nebra Indoor Helium Hotspot, designed as a more user friendly variant of the Nebra Hotspot Range.</p><p>One of the biggest projects I&apos;ve worked on at time of writing, the Nebra Indoor Hotspot is designed for use with the Helium Network and rewards people in HNT for providing LoRaWAN coverage on the Helium Network.</p><h3 id="hardware">Hardware</h3><p>The hardware is a more simplified design than the outdoor unit to optimise it more for mass production along with being in a more compact form factor.</p><p>Designed to use the <a href="https://walmsley.tech/nebra-rpi-compute-module-daughterboard/">Compute Module 3 Daughterboard</a>, the motherboard contains circuitry to regulate the 12v down into the respective voltage rails for main components, a USB hub and headers to provide spaces for Bluetooth &amp; Wi-Fi adaptors and built in networking with finally space for the LoRa Radio Module.</p><p>The Indoor Hotspot comes as a completed product which has also undergone CE &amp; FCC certification and is designed to be plug and play.</p><h3 id="software">Software</h3><p>The software has been a significant part of making this project what it is.</p><p>As the main software developer for this project I was responsible for getting all the required software for the unit to operate as intended, along with writing creating our own software to improve user experience.</p><p>To provide OTA updates we decided to use Balena &amp; Balena OS as our base, this provided us with a stable and reliable base for our software to run on top and ensures we have a robust system to keep the units in the wild up to date.</p><p>The software is then comprised of multiple docker containers running the software responsible to get the unit to work including:</p><ul><li>Configuration Tool - Communicates over BTLE to the Helium App that allows users to setup their hotspots with ease. This was a full re-implementation to add in our own customisation and make it compatible with the Linux Network Manager.</li><li>Diagnostics Tool - Provides a basic webpage that users can access on their local network to ensure the hotspot is operating as intended.</li><li>Packet Forwarder - Configures on boot, then runs the software required to operate the radio module.</li></ul><p>The unit also runs a tool to configure port forwarding on boot using UPNP, a tool that runs on first setup to program chips during production.</p><p>Finally it runs the Helium Miner itself, this is provided to us as a ready made container by Helium and has some tweaks to help speed up initial setup.</p><p>All of the docker containers and software are open source, and can be found at <a href="https://github.com/nebraltd/helium-miner-software">https://github.com/nebraltd/helium-miner-software</a></p><h4 id="production">Production</h4><p>For this product I was also responsible for organising some crucial production stages.</p><p>Being a fully finished product, I created step by step assembly guides for the assembly partners to use. Rigs used to test and store to a database crucial information such as serial numbers with finally automating printing labels for each unit with their respective serial numbers, model numbers and certification logos for the regions the hardware variation would be sold in.</p>]]></content:encoded></item><item><title><![CDATA[Compute Module 3 Flashstick]]></title><description><![CDATA[<h3 id="summary">Summary</h3><p></p><p>Company: Nebra LTD.<br>Tasks: Electrical Design, PCB Design, &#xA0;Hand Assembly of Prototypes, Documentation &amp; Testing.<br>Date: First produced December 2020<br>Status: In Development<br>FInd out more at: <a href="https://github.com/NebraLtd/FlashStick/tree/main/Raspberry%20Pi%20Compute%20Module%203">https://github.com/NebraLtd/FlashStick/tree/main/Raspberry Pi Compute Module 3</a></p><h3 id="overview">Overview</h3><p></p><p>To make flashing the software onto Raspberry Pi</p>]]></description><link>https://walmsley.tech/compute-module-3-flashstick/</link><guid isPermaLink="false">656525843cecfe5adc251196</guid><category><![CDATA[Portfolio]]></category><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Wed, 09 Dec 2020 13:06:19 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/IMG_20201229_1115559--1-.jpg" medium="image"/><content:encoded><![CDATA[<h3 id="summary">Summary</h3><img src="https://walmsley.tech/content/images/2023/02/IMG_20201229_1115559--1-.jpg" alt="Compute Module 3 Flashstick"><p></p><p>Company: Nebra LTD.<br>Tasks: Electrical Design, PCB Design, &#xA0;Hand Assembly of Prototypes, Documentation &amp; Testing.<br>Date: First produced December 2020<br>Status: In Development<br>FInd out more at: <a href="https://github.com/NebraLtd/FlashStick/tree/main/Raspberry%20Pi%20Compute%20Module%203">https://github.com/NebraLtd/FlashStick/tree/main/Raspberry Pi Compute Module 3</a></p><h3 id="overview">Overview</h3><p></p><p>To make flashing the software onto Raspberry Pi Compute modules easier, I was tasked with making a minimal adaptor to be able to use to program modules quicker by being able to plug them into a Computer or flashing device with ease.</p><p>A rather simple design, this project was designed and sent for prototyping within 48 hours It has minimal circuitry but has the same reliable power circuit recommended for the Compute Module 3.</p><p>This design was open sourced making it free for all to see, modify and maufacturer.</p>]]></content:encoded></item><item><title><![CDATA[Getting Started with SnowPi RGB & micro:bit]]></title><description><![CDATA[<p>In this tutorial we&apos;ll connect up the SnowPi RGB to the micro:bit and getting it to light up.</p><h2 id="hardware-assembly">Hardware Assembly</h2><p>First we need to connect the SnowPi RGB to the micro:bit using the included micro:bit adaptor.</p><p>In your package you should have one SnowPi RGB</p>]]></description><link>https://walmsley.tech/getting-started-with-the-snowpi-rgb-microbit/</link><guid isPermaLink="false">656525843cecfe5adc2511a9</guid><category><![CDATA[SnowPi]]></category><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Sun, 11 Oct 2020 23:00:00 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/469a569fc65188f1a4c82ef4f854b165_original.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/469a569fc65188f1a4c82ef4f854b165_original.jpeg" alt="Getting Started with SnowPi RGB &amp; micro:bit"><p>In this tutorial we&apos;ll connect up the SnowPi RGB to the micro:bit and getting it to light up.</p><h2 id="hardware-assembly">Hardware Assembly</h2><p>First we need to connect the SnowPi RGB to the micro:bit using the included micro:bit adaptor.</p><p>In your package you should have one SnowPi RGB board, micro:bit adaptor, and 3-5 M3 Screws &amp; Nuts</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/IMG_20201023_1441219.jpg" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="667" srcset="https://walmsley.tech/content/images/size/w600/2022/11/IMG_20201023_1441219.jpg 600w, https://walmsley.tech/content/images/2022/11/IMG_20201023_1441219.jpg 1000w" sizes="(min-width: 720px) 720px"></figure><p>If you have 5 screws then you can screw all 5 through, if you have less then only the 3 most right are required. On the micro:bit V2 you may only be able to use the 3 as shown due to new components possibly causing it to not align up.</p><p>The easiest way to do this is to put one screw through one of the micro:bit&apos;s holes first, we&apos;ll start with the ground. then underneath place the adaptor board and loosely tighten up with one of the nuts.<br>Ideally just enough so it stays together but can still slightly wiggle, repeat with the remaining screws. Then tighten up with a screwdriver to ensure good contact.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/IMG_20201023_1440141.jpg" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="667" srcset="https://walmsley.tech/content/images/size/w600/2022/11/IMG_20201023_1440141.jpg 600w, https://walmsley.tech/content/images/2022/11/IMG_20201023_1440141.jpg 1000w" sizes="(min-width: 720px) 720px"></figure><p>Next place your SnowPi RGB into the adaptor and connect a Micro USB cable into the micro:bit.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/IMG_20201023_1446209.jpg" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="667" srcset="https://walmsley.tech/content/images/size/w600/2022/11/IMG_20201023_1446209.jpg 600w, https://walmsley.tech/content/images/2022/11/IMG_20201023_1446209.jpg 1000w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/IMG_20201023_1446258.jpg" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="667" srcset="https://walmsley.tech/content/images/size/w600/2022/11/IMG_20201023_1446258.jpg 600w, https://walmsley.tech/content/images/2022/11/IMG_20201023_1446258.jpg 1000w" sizes="(min-width: 720px) 720px"></figure><h2 id="programming">Programming</h2><p>Start by visiting<a href=" https://makecode.microbit.org"> https://makecode.microbit.</a>org and then click on new project, type in a name for your project such as SnowPi Demo and then it should bring you to the programming area.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/Annotation-2020-08-01-194251.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1921" height="966" srcset="https://walmsley.tech/content/images/size/w600/2022/11/Annotation-2020-08-01-194251.png 600w, https://walmsley.tech/content/images/size/w1000/2022/11/Annotation-2020-08-01-194251.png 1000w, https://walmsley.tech/content/images/size/w1600/2022/11/Annotation-2020-08-01-194251.png 1600w, https://walmsley.tech/content/images/2022/11/Annotation-2020-08-01-194251.png 1921w" sizes="(min-width: 720px) 720px"></figure><p> Next in the top right of the screen click the cog icon next to the microsoft logo , and then extenstions.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/ext.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="266" height="574"></figure><p>Now we want to click neopixel and this will import the library.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/neopixel.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="542" srcset="https://walmsley.tech/content/images/size/w600/2022/11/neopixel.png 600w, https://walmsley.tech/content/images/2022/11/neopixel.png 1000w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/neopixel2-1.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="629" height="572" srcset="https://walmsley.tech/content/images/size/w600/2022/11/neopixel2-1.png 600w, https://walmsley.tech/content/images/2022/11/neopixel2-1.png 629w"></figure><p>To access this library we&apos;ll select the tab on the left hand side.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/neopixel2-2.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="629" height="572" srcset="https://walmsley.tech/content/images/size/w600/2022/11/neopixel2-2.png 600w, https://walmsley.tech/content/images/2022/11/neopixel2-2.png 629w"></figure><p><strong>Now we&apos;re ready to program!</strong></p><p>First click the neopixel library icon, and then drag in the &quot;set strip to Neopixel&quot; block into the On start section.<br>Next we have two items we want to change here, first change the drop down which says P0 to P2 and then change the number 24 to 12. By doing this we set the correct GPIO pin for the SnowPi adaptor and configure it to 12 LEDs which is the amount the SnowPi Has.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/microbit-screenshot.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="355" srcset="https://walmsley.tech/content/images/size/w600/2022/11/microbit-screenshot.png 600w, https://walmsley.tech/content/images/2022/11/microbit-screenshot.png 1000w" sizes="(min-width: 720px) 720px"></figure><p>Next we need to change the maximum brightness of the LEDs, without doing this the LEDs may be a bit too bright and also cause issues with the micro:bit&apos;s limited power supply.</p><p>To do this click the neopixel library again, then more and drag in the &quot;strip set brightness&quot; block to be directly underneath the on start block and change the value of 255 to 32. Your code should now look like this.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/microbit-screenshot--1-.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="362" srcset="https://walmsley.tech/content/images/size/w600/2022/11/microbit-screenshot--1-.png 600w, https://walmsley.tech/content/images/2022/11/microbit-screenshot--1-.png 1000w" sizes="(min-width: 720px) 720px"></figure><p>Finally we&apos;re ready to start making the rainbow pattern, begin by dragging into the on start block the &quot;strip show rainbow&quot; block. This will set it so the SnowPi displays a rainbow across it.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/microbit-screenshot--2-.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="424" srcset="https://walmsley.tech/content/images/size/w600/2022/11/microbit-screenshot--2-.png 600w, https://walmsley.tech/content/images/2022/11/microbit-screenshot--2-.png 1000w" sizes="(min-width: 720px) 720px"></figure><p>If you click the download button and save the hex file to your micro:bit you should see it light up!</p><p>Now, we want to animate it so the rainbow &quot;rotates&quot; around the board, or put simply so that the LEDs change their colour in sequence.</p><p>To do this click the neopixel library again and drag in the &quot;strip rotate pixels by&quot; block into the forever block, next we need to add in from the same library the &quot;strip show&quot; block directly underneath. This means now it&apos;ll swap the colours around once per loop and then show the result.</p><p>Finally we want to add in a short delay between each loop, to do this click the basic library and drag in the &quot;pause (ms)&quot; block underneath the show block, this can be left at the 100ms delay.</p><p>And that&apos;s it! Your code should now look like this.</p><p>ryanteck.uk/ghost/#/editor/post/62cade4b52228e040b97eb14</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/microbit-screenshot--3-.png" class="kg-image" alt="Getting Started with SnowPi RGB &amp; micro:bit" loading="lazy" width="1000" height="573" srcset="https://walmsley.tech/content/images/size/w600/2022/11/microbit-screenshot--3-.png 600w, https://walmsley.tech/content/images/2022/11/microbit-screenshot--3-.png 1000w" sizes="(min-width: 720px) 720px"></figure><p>Click download and copy it over to your microbit, it should update the code and you&apos;ll have your snowman blinking away with rainbow goodness!</p>]]></content:encoded></item><item><title><![CDATA[Getting started with the SnowPi RGB & Raspberry Pi using Python]]></title><description><![CDATA[<p>In this tutorial we&apos;ll connect up the SnowPi RGB to the Raspberry Pi and getting it to light up.</p><p>All models of Raspberry Pi should work fine, in this tutorial I&apos;ll be using a Model 3 A+ Myself.</p><p>The Raspberry Pi needs to be connected to</p>]]></description><link>https://walmsley.tech/getting-started-with-the-snowpi-rgb-raspberry-pi-using-python/</link><guid isPermaLink="false">656525843cecfe5adc2511aa</guid><category><![CDATA[SnowPi]]></category><dc:creator><![CDATA[Ryan Walmsley]]></dc:creator><pubDate>Sun, 11 Oct 2020 23:00:00 GMT</pubDate><media:content url="https://walmsley.tech/content/images/2023/02/f57423e1433593003d39e7625608a9b6_original.jpeg" medium="image"/><content:encoded><![CDATA[<img src="https://walmsley.tech/content/images/2023/02/f57423e1433593003d39e7625608a9b6_original.jpeg" alt="Getting started with the SnowPi RGB &amp; Raspberry Pi using Python"><p>In this tutorial we&apos;ll connect up the SnowPi RGB to the Raspberry Pi and getting it to light up.</p><p>All models of Raspberry Pi should work fine, in this tutorial I&apos;ll be using a Model 3 A+ Myself.</p><p>The Raspberry Pi needs to be connected to the internet to be able to download all the software too.</p><h2 id="hardware-assembly"><strong><strong>Hardware Assembly</strong></strong></h2><p>First we need to connect the SnowPi RGB to the Raspberry Pi, to do this is simple as:</p><p>Ensure the Raspberry Pi is unplugged, and then simply connect it to the first 6 Pins in the top right of the header closest to the Micro SD card slot.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/IMG_20201013_0008297-COLLAGE.jpg" class="kg-image" alt="Getting started with the SnowPi RGB &amp; Raspberry Pi using Python" loading="lazy" width="1000" height="1000" srcset="https://walmsley.tech/content/images/size/w600/2022/11/IMG_20201013_0008297-COLLAGE.jpg 600w, https://walmsley.tech/content/images/2022/11/IMG_20201013_0008297-COLLAGE.jpg 1000w" sizes="(min-width: 720px) 720px"></figure><h2 id="pre-preparation"><strong><strong>Pre Preparation</strong></strong></h2><p>This tutorial will assume that you&apos;ve already got your Raspberry Pi setup and ready to use, including being connected to the internet already. A getting started with Raspberry Pi guide can be found at <a href="https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up">https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up</a></p><p>While shown in this tutorial we&apos;re using the GUI, for the entire tutorial we&apos;ll be using the Terminal so if you prefer to use SSH you can do so for this tutorial.</p><h2 id="installing-the-python-library"><strong><strong>Installing the Python Library</strong></strong></h2><p>To begin open the terminal by clicking the icon with the <code>&gt;_</code> characters in it, your screen should then look like this.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/rpi-1.png" class="kg-image" alt="Getting started with the SnowPi RGB &amp; Raspberry Pi using Python" loading="lazy" width="1280" height="720" srcset="https://walmsley.tech/content/images/size/w600/2022/11/rpi-1.png 600w, https://walmsley.tech/content/images/size/w1000/2022/11/rpi-1.png 1000w, https://walmsley.tech/content/images/2022/11/rpi-1.png 1280w" sizes="(min-width: 720px) 720px"></figure><p>Then to ensure all software is updated type <code>sudo apt update &amp;&amp; sudo apt upgrade</code> and press enter, if prompted press enter to continue to update. If you&apos;ve recently updated nothing may happen.</p><p>Only if you&apos;re using the &quot;Lite&quot; version of Raspberry Pi OS then run <code>sudo apt install python3-pip</code> to install Python 3 Pip which is the tool we use to install the library.</p><p>The SnowPi RGB uses the rpi_ws281x library which is available at <a href="https://github.com/rpi-ws281x/rpi-ws281x-python">https://github.com/rpi-ws281x/rpi-ws281x-python</a> , in the below tutorial we install this and the demo program is based on this library.</p><p>Next we can install the library with <code>sudo pip3 install rpi_ws281x</code>.</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/rpi-2-1.png" class="kg-image" alt="Getting started with the SnowPi RGB &amp; Raspberry Pi using Python" loading="lazy" width="1280" height="720" srcset="https://walmsley.tech/content/images/size/w600/2022/11/rpi-2-1.png 600w, https://walmsley.tech/content/images/size/w1000/2022/11/rpi-2-1.png 1000w, https://walmsley.tech/content/images/2022/11/rpi-2-1.png 1280w" sizes="(min-width: 720px) 720px"></figure><p>Finally we can download our demo programs, to do this type:</p><pre><code class="language-git">git clone https://github.com/ryanteck/snowpirgb-python.git</code></pre><p>Then navigate into the folder by typing <code>cd snowpirgb-python</code> and then we&apos;re ready to run the demo program.</p><p>Finally type in <code>sudo python3 demo.py -a</code> &#xA0;and your SnowPi RGB should start blinking!</p><figure class="kg-card kg-image-card"><img src="https://walmsley.tech/content/images/2022/11/rpi-3-1.png" class="kg-image" alt="Getting started with the SnowPi RGB &amp; Raspberry Pi using Python" loading="lazy" width="1280" height="720" srcset="https://walmsley.tech/content/images/size/w600/2022/11/rpi-3-1.png 600w, https://walmsley.tech/content/images/size/w1000/2022/11/rpi-3-1.png 1000w, https://walmsley.tech/content/images/2022/11/rpi-3-1.png 1280w" sizes="(min-width: 720px) 720px"></figure><figure class="kg-card kg-video-card kg-card-hascaption"><div class="kg-video-container"><video src="https://walmsley.tech/content/media/2022/11/SnowPi-RGB-Demo.mp4" poster="https://img.spacergif.org/v1/406x720/0a/spacer.png" width="406" height="720" loop autoplay muted playsinline preload="metadata" style="background: transparent url(&apos;https://walmsley.tech/content/images/2022/11/media-thumbnail-ember271.jpg&apos;) 50% 50% / cover no-repeat;"></video><div class="kg-video-overlay"><button class="kg-video-large-play-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/></svg></button></div><div class="kg-video-player-container kg-video-hide"><div class="kg-video-player"><button class="kg-video-play-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M23.14 10.608 2.253.164A1.559 1.559 0 0 0 0 1.557v20.887a1.558 1.558 0 0 0 2.253 1.392L23.14 13.393a1.557 1.557 0 0 0 0-2.785Z"/></svg></button><button class="kg-video-pause-icon kg-video-hide"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><rect x="3" y="1" width="7" height="22" rx="1.5" ry="1.5"/><rect x="14" y="1" width="7" height="22" rx="1.5" ry="1.5"/></svg></button><span class="kg-video-current-time">0:00</span><div class="kg-video-time">/<span class="kg-video-duration"></span></div><input type="range" class="kg-video-seek-slider" max="100" value="0"><button class="kg-video-playback-rate">1&#xD7;</button><button class="kg-video-unmute-icon"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M15.189 2.021a9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h1.794a.249.249 0 0 1 .221.133 9.73 9.73 0 0 0 7.924 4.85h.06a1 1 0 0 0 1-1V3.02a1 1 0 0 0-1.06-.998Z"/></svg></button><button class="kg-video-mute-icon kg-video-hide"><svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 24 24"><path d="M16.177 4.3a.248.248 0 0 0 .073-.176v-1.1a1 1 0 0 0-1.061-1 9.728 9.728 0 0 0-7.924 4.85.249.249 0 0 1-.221.133H5.25a3 3 0 0 0-3 3v2a3 3 0 0 0 3 3h.114a.251.251 0 0 0 .177-.073ZM23.707 1.706A1 1 0 0 0 22.293.292l-22 22a1 1 0 0 0 0 1.414l.009.009a1 1 0 0 0 1.405-.009l6.63-6.631A.251.251 0 0 1 8.515 17a.245.245 0 0 1 .177.075 10.081 10.081 0 0 0 6.5 2.92 1 1 0 0 0 1.061-1V9.266a.247.247 0 0 1 .073-.176Z"/></svg></button><input type="range" class="kg-video-volume-slider" max="100" value="100"></div></div></div><figcaption></figcaption></figure>]]></content:encoded></item></channel></rss>