<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6954656</id><updated>2026-09-26T09:59:21.590-04:00</updated><category term="dual XML8100 XML8110 ipod car stereo 8100 8110"/><category term="Debunking Speeding"/><category term="G5 hard drive screws Power mac"/><category term="Gaming RPG Morrow Project"/><category term="Google"/><category term="HP laptops customer service Dell"/><category term="Hack toughbook wifi"/><category term="Lies Defmation and Reputation"/><category term="Nexus HSPA+"/><category term="RPG weather"/><category term="Review"/><category term="Security"/><category term="Ubuntu 11.10"/><category term="Ubuntu Tablet"/><category term="WB8TNE"/><category term="XBMC"/><category term="XBMC RaspberryPi"/><category term="bibble linux photography"/><category term="blackberry email"/><category term="cabelas deluxe cot tent"/><category term="camping"/><category term="dell laptop bluetooth windows 7"/><category term="fall"/><category term="film scheduling"/><category term="filmmaking"/><category term="galaxy"/><category term="indie software"/><category term="ipad screen protector application install"/><category term="laptop"/><category term="motorcycle"/><category term="obama"/><category term="outdoors"/><category term="pre-production"/><category term="preproduction"/><category term="sheevaplug  marvell  embedded linux"/><category term="survival"/><category term="theft"/><category term="ubuntu computers OS linux"/><category term="used cars extended warranties warranty"/><category term="winter camping"/><category term="work"/><title type='text'>Inane ramblings of Tim</title><subtitle type='html'>This is pretty much my life. It&#39;s boring, I am not a rock star, nor am I a  mad scientist (well not publically.) I&#39;m a regular guy that figures that the internet is not fuil of enough worthless drivel and I feel the need to add mine to the world.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>506</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6954656.post-1536559335888523783</id><published>2026-08-08T08:57:03.796-04:00</published><updated>2026-08-08T08:57:03.797-04:00</updated><title type='text'>What I Actually Carry Hiking or going anywhere, My EDC</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;&lt;br /&gt;&lt;/h2&gt;&lt;p&gt;I&#39;m probably controversial on this one. I prefer tech, because I use tech today. It works if you take the time to learn and choose your tech wisely.&lt;/p&gt;&lt;p&gt;My primary navigation is my Apple watch and my phone with offline maps. I&#39;ve been plenty of places with no cell service, which is exactly why I download the maps ahead of time. The GPS still works just fine without cell service. I also carry a small folding 10-watt solar charger in every single pack. I even take the damned thing to Disney. Yes, I have sat there eating a Mickey-shaped cookie with a solar panel unfolded next to me charging somebody&#39;s phone. Usually not mine. I don&#39;t go on a hike or excursion without my phone and watch charged. The number of times I&#39;ve saved somebody else with either my USB battery or solar panel is nuts.&lt;/p&gt;&lt;p&gt;People, charge your phone.&lt;/p&gt;&lt;p&gt;&quot;Oh, I went on this hike and thought 9% battery would be enough.&quot;&lt;/p&gt;&lt;p&gt;Why? In modern society your phone is probably the single most important piece of EDC you have. It&#39;s communication, navigation, information, weather, maps, emergency contact, flashlight, camera, all in one thing that you were going to carry anyway.&lt;/p&gt;&lt;h3&gt;How Much I Carry Depends on the Weather&lt;/h3&gt;&lt;p&gt;How light I pack depends heavily on how hot it is. If it&#39;s 104°F with approximately 500% humidity, I try not to carry a pack at all. I&#39;ll switch to a runner&#39;s belt that can hold a large water bottle and the essentials because I get annoyed carrying extra crap almost immediately.&lt;/p&gt;&lt;p&gt;Rain gear is either a proper nylon parka or the garbage-bag emergency parka. If I&#39;m carrying the good parka, I still carry the garbage-bag one. I&#39;m one of those radicalized Boy Scouts who still has &quot;Be Prepared&quot; rattling around in his head somewhere. The cheap one isn&#39;t really for me. It&#39;s for somebody else. I&#39;ve had to give those away more times than I ever expected. I was on a freaking four-mile hike up in the sand dunes along Lake Michigan once and ran across a tourist in a rainstorm who had absolutely nothing.&lt;/p&gt;&lt;p&gt;Like, really?&lt;/p&gt;&lt;p&gt;I pointed them toward the nearest fire road and actual trail, which, again, phone wins here, then handed them the garbage-bag parka.&lt;/p&gt;&lt;h3&gt;Food, Water, and the Important Stuff Nobody Talks About&lt;/h3&gt;&lt;p&gt;Food is usually a non-chocolate candy bar or granola bar. I prefer something high in fiber because one of the more miserable experiences on a very long hike is needing to shit and not being able to. Which brings me to one of the most important pieces of expensive high-tech wilderness survival equipment I carry.&lt;/p&gt;&lt;p&gt;Compressed pill-shaped paper towels.&lt;/p&gt;&lt;p&gt;I throw a couple into a little ziplock bag and then use a heat sealer to make a sealed pouch. Humidity will make the things expand, so seal them well. Nothing beats having something available to actually wipe your ass in the woods. Or clean your face. Sure. That too.&lt;/p&gt;&lt;p&gt;I also carry a cheap pair of thin mechanic&#39;s or work gloves. I don&#39;t expect to use them. They&#39;re there because they weigh almost nothing and there are plenty of situations where I&#39;d rather not grab something with my bare hands. For longer hikes, I&#39;ll throw extra water into the pack in disposable bottles. That&#39;s another item I&#39;ve ended up giving away to the same sort of person who thought going four miles into the wilderness carrying absolutely nothing was a solid plan.&lt;/p&gt;&lt;h3&gt;Do I Carry Emergency Shelter?&lt;/h3&gt;&lt;p&gt;No.&lt;/p&gt;&lt;p&gt;I have no desire to huddle under a tarp for three days pretending I&#39;m on &lt;em&gt;Alone&lt;/em&gt;.&lt;/p&gt;&lt;p&gt;More importantly, there is basically zero chance of me getting trapped deep in untouched wilderness because I don&#39;t go blazing trails across untouched wilderness. That&#39;s stupid, and if you actually care about land conservation, you shouldn&#39;t be doing it anyway. I know where I am. I know where the trails are. I know where the roads are. I know where the nearby shelters and structures are, and I&#39;ve usually marked anything useful on my phone before I leave.&lt;/p&gt;&lt;p&gt;Even if something ridiculous happens, I can get back to the car, a road, a ranger station, a shelter, or somewhere useful.&lt;/p&gt;&lt;h3&gt;&quot;But What If Your Phone Gets Destroyed?&quot;&lt;/h3&gt;&lt;p&gt;I&#39;ve been asked this one.&lt;/p&gt;&lt;p&gt;&quot;What if your phone gets destroyed?&quot;&lt;/p&gt;&lt;p&gt;I get it. Maybe I drop the phone and then accidentally stomp on it until the screen is completely unreadable. Happens all the time, oh crap it just happened here again...&amp;nbsp; dang that happens all the time!&lt;/p&gt;&lt;p&gt;That&#39;s where the watch comes in. It has GPS and waypoints.&lt;/p&gt;&lt;p&gt;It also doesn&#39;t have to be a specific brand like Garmin. Apple Watch, Android/Wear OS watches, and plenty of other modern watches can provide some form of offline navigation or GPS capability. Learn how yours works before you need it. Oh and no you dont need the $2200 Army special forces tactical edition one that has an infrared mode for use with night vision.&amp;nbsp; Does it look badass? yes.&amp;nbsp; do you need it? no.&amp;nbsp; You also dont need your phone in a flip down molle attachment to your chest plate.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Usually at this point somebody asks, &quot;Well, what if the watch falls off and gets stomped on 30 or 40 times too?&quot;&lt;/p&gt;&lt;p&gt;That&#39;s usually when I walk away from the conversation.&lt;/p&gt;&lt;p&gt;I don&#39;t plan for every imaginable silly unrealistic &quot;what if.&quot; I plan for reality.&lt;/p&gt;&lt;p&gt;The world is probably not going to end while I&#39;m on my hike. I don&#39;t plan for that. I&#39;m not going to get surprised by a sudden blizzard, and a Category 5 hurricane isn&#39;t going to materialize from a clear sky halfway through lunch.&lt;/p&gt;&lt;p&gt;Same thing with severe thunderstorms and other weather.&lt;/p&gt;&lt;p&gt;Why?&lt;/p&gt;&lt;p&gt;Because I check conditons before I go do things.&amp;nbsp; I know right?&amp;nbsp; What kind of wierdo does that?&lt;/p&gt;&lt;p&gt;Preparation isn&#39;t carrying 60 pounds of equipment because technically something could happen. A lot of preparation happens before you ever leave the house.&lt;/p&gt;&lt;h3&gt;First Aid&lt;/h3&gt;&lt;p&gt;I almost forgot first aid.&lt;/p&gt;&lt;p&gt;I have a small red pouch with several good cloth Band-Aids, preferably the ones with antibiotic ointment already on the pad. There are some wipes for cleaning wounds and random little packets of painkillers I&#39;ve raided out of work first-aid kits over the years.I also carry my cheap Leatherman knockoff. That gives me tweezers, a knife, pliers, and a handful of other little tools. Yes stored in the First aid kit. Thats where it actually belongs.&lt;/p&gt;&lt;p&gt;Actually, thinking about this reminded me of something I need to put back in there: a couple rolls of Smarties.&lt;/p&gt;&lt;p&gt;I&#39;ve run across people on hikes who were diabetic and having a blood sugar crash, so having some fast sugar available is one of those tiny things that can be useful. Smarties work well for the pack because they&#39;re basically pressed powder candy. Keep them sealed in a dry baggie and they&#39;ll survive the heat and a year or two forgotten in the bottom of the pack. Hard candy eventually turns into a sticky blob of goo.&lt;/p&gt;&lt;p&gt;Mine currently doesn&#39;t have any.&lt;/p&gt;&lt;p&gt;I think I ate them after too much beer at Epcot when I suddenly remembered, &quot;Hey, I have candy.&quot; So apparently I need to restock the medical supplies. That&#39;s basically the extent of my first-aid kit. I can&#39;t set bones. I don&#39;t carry a stretcher. I don&#39;t have a field surgery kit so I can remove somebody&#39;s appendix beside the trail. If somebody gets seriously hurt, that&#39;s what the phone is for. The first-aid kit handles the things I can realistically handle myself. Cuts, scrapes, splinters, headaches, minor injuries, and the usual stupid stuff that happens outdoors.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h3&gt;And No, I Don&#39;t Carry a Gun Everywhere&lt;/h3&gt;&lt;p&gt;I&#39;m also apparently one of those really freaking weird Americans who doesn&#39;t carry a gun 24/7/365.&lt;/p&gt;&lt;p&gt;First, anybody who has actually carried one knows it&#39;s annoying as hell.&lt;/p&gt;&lt;p&gt;If you&#39;re a responsible gun owner, you&#39;re constantly aware of where it is and whether it&#39;s secure. A holster catches on every damned thing including sling pack straps. Appendix carry is just uncomfortable. Yes, it&#39;s uncomfortable. Anybody telling you otherwise is probably trying to justify why they carry all the time.&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;More importantly, I really don&#39;t have much need to shoot things while hiking or out and about.&lt;/p&gt;&lt;p&gt;In Michigan, one of my bigger concerns on state land was freaking hunters, not bears or cougars. In Florida, if you have more than about 15 functioning brain cells, alligators aren&#39;t much of a danger while hiking. Don&#39;t wander along the edge of the water like an idiot, and especially don&#39;t walk what amounts to gator bait on a leash along the shoreline. Wild boar are a legitimate concern here, but I&#39;m also not convinced a pistol improves that particular situation. Those things are incredibly tough, and turning an angry wild pig into a slightly more angry wild pig isn&#39;t high on my list of wilderness survival strategies. Biggest danger at Disney is the cougars, but I&#39;m far too old to get their attention as they stalk younger prey.&lt;/p&gt;&lt;p&gt;So no gun.&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Apparently I Carry &quot;Almost Nothing&quot;&lt;/h3&gt;&lt;p&gt;That&#39;s the funny part.&lt;/p&gt;&lt;p&gt;Most people who are really into EDC and survival equipment would probably look at what I carry and say I have almost nothing. Phone. Watch. Water. A little food. Small battery. Solar panel. Basic rain protection. Tiny first-aid kit. Multitool. Gloves. A couple of compressed towels.&lt;/p&gt;&lt;p&gt;That&#39;s about it.&lt;/p&gt;&lt;p&gt;But compared to some of the normal people I&#39;ve run across on trails, people I&#39;ve handed water to, given rain gear to, charged phones for, or pointed back toward civilization, apparently I&#39;m a walking hardware store.&lt;/p&gt;&lt;p&gt;I don&#39;t pack for the apocalypse that will never happen.&lt;/p&gt;&lt;p&gt;I pack for the hike or park I&#39;m actually going to, the conditions I&#39;m actually going to encounter, and a little extra for the person who thought 9% battery and half a bottle of Mountain Dew was adequate preparation for four miles in the woods.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/1536559335888523783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2026/08/what-i-actually-carry-hiking-or-going.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/1536559335888523783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/1536559335888523783'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2026/08/what-i-actually-carry-hiking-or-going.html' title='What I Actually Carry Hiking or going anywhere, My EDC'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-8130526547448766253</id><published>2026-07-19T20:53:36.916-04:00</published><updated>2026-07-19T20:53:36.917-04:00</updated><title type='text'>Sample and old the highest value in a Node Red flow</title><content type='html'>&lt;p&gt;I cant believe something like this is not built into Node red.&amp;nbsp; &amp;nbsp;I want to see the highest value a sensor reads, specifically I want to see how hot it actually gets in my attic.&amp;nbsp; &amp;nbsp;Mostly because I need to do some calculations for wire loading and temperatures for an EV charger.&amp;nbsp; I need to run the wires through the attic and you have limits to the wires insulation temperatures.&amp;nbsp; a LOT of people never think of this stuff, heck many electricians dont.&amp;nbsp; But running a wire at 80% capacity for 3-8 hours can generate significant heat.&amp;nbsp; Estimate about a 10-20C rise in temperature just from the power run through it.&amp;nbsp; &amp;nbsp;in the wall in an airconditioned home, that rise is nothing.&amp;nbsp; in a 140F attic, that is a problem. at that temp the wire under load will hit 185F&amp;nbsp; &amp;nbsp;Still under the 194F insulation rating for THHN, but too close for my comfort.&amp;nbsp; so I need to do data gathering.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: #fffffe; color: green; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; white-space: pre;&quot;&gt;// Initialize flow variable for the highest value if it doesn&#39;t exist yet&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;background-color: #fffffe; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;var&lt;/span&gt; highestValue = flow.&lt;span style=&quot;color: blue;&quot;&gt;get&lt;/span&gt;(&lt;span style=&quot;color: #a31515;&quot;&gt;&#39;highestValue&#39;&lt;/span&gt;) || &lt;span style=&quot;color: #098658;&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;var&lt;/span&gt; incomingValue = parseFloat(msg.payload);&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: green;&quot;&gt;// Check if a reset command was sent, or if this is the first run&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (msg.payload &amp;amp;&amp;amp; msg.payload.reset === &lt;span style=&quot;color: blue;&quot;&gt;true&lt;/span&gt;) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; highestValue = &lt;span style=&quot;color: #098658;&quot;&gt;0&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; flow.&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;(&lt;span style=&quot;color: #a31515;&quot;&gt;&#39;highestValue&#39;&lt;/span&gt;, highestValue);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; msg.payload = &lt;span style=&quot;color: #a31515;&quot;&gt;&quot;Peak value reset to 0&quot;&lt;/span&gt;;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; msg;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: green;&quot;&gt;// Compare incoming value to highest stored value&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;if&lt;/span&gt; (!isNaN(incomingValue) &amp;amp;&amp;amp; incomingValue &amp;gt; highestValue) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; highestValue = incomingValue;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; flow.&lt;span style=&quot;color: blue;&quot;&gt;set&lt;/span&gt;(&lt;span style=&quot;color: #a31515;&quot;&gt;&#39;highestValue&#39;&lt;/span&gt;, highestValue);&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: green;&quot;&gt;// Append the peak value to the message payload to pass to the next node&lt;/span&gt;&lt;/div&gt;&lt;div&gt;msg.payload = highestValue;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;return&lt;/span&gt; msg;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;background-color: #fffffe; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 14px; line-height: 19px; white-space: pre;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/8130526547448766253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2026/07/sample-and-old-highest-value-in-node.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/8130526547448766253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/8130526547448766253'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2026/07/sample-and-old-highest-value-in-node.html' title='Sample and old the highest value in a Node Red flow'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-6857646590878542730</id><published>2026-07-03T07:46:50.207-04:00</published><updated>2026-07-03T07:46:50.208-04:00</updated><title type='text'>How to ACTUALLY program homelink garage door in a modern 2020+ car.</title><content type='html'>&lt;p&gt;nearly 100% of all guides online are WRONG. I have the process corrected and tried this multiple times now it works every time.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;For first-time training, or if you want to clear old settings, press and hold the two outer HomeLink buttons (usually buttons 1 and 3) simultaneously. Keep holding them until the HomeLink indicator light begins to flash after about 20 seconds. Release the buttons once it starts flashing. DO NOT perform this step if you&#39;re just adding an additional HomeLink button.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Step 2: Position Your Original Remote&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Take your original hand-held garage door transmitter (remote) and position it 1-3 inches away from the HomeLink surface in your car (usually on your visor, overhead console, or mirror). Make sure you can see the HomeLink indicator light.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Step 3: Begin the Programming Process&amp;nbsp;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Using both hands, press the garage door remote button and immediately after doing that press the desired homelink button and hold both down.&amp;nbsp; Ignore the people that claim simultaneous press, they are so wrong it&#39;s not funny.&lt;/p&gt;&lt;p&gt;DO NOT release until the HomeLink indicator light flashes slowly and then rapidly. The rapid flashing indicates successful training. Once it&#39;s flashing rapidly, you can release both buttons.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Step 4: Check the Indicator Light&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Now, press and hold the trained HomeLink button (the one you just programmed). Observe the indicator light:&lt;/p&gt;&lt;p&gt;Solid/Continuous Light: Training is complete! Your device should activate when the HomeLink button is pressed and released. Give it a try!&lt;/p&gt;&lt;p&gt;Blinks Rapidly for 2 Seconds, then Turns Solid: This means you have a rolling code system. Don&#39;t worry, we just have a few more steps. Proceed to Step 5.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Step 5: Locate the &quot;Learn&quot; or &quot;Smart&quot; Button on Your Garage Motor&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Head over to your garage door opener&#39;s motor unit (usually on the ceiling). You&#39;ll need to locate the &quot;learn&quot; or &quot;smart&quot; button. This button&#39;s name and color can vary by manufacturer. It&#39;s often near where the hanging antenna wire is attached.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Step 6: Press the &quot;Learn&quot; Button&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Head back to your garage door motor. Press and release the &quot;Learn&quot; or &quot;Smart&quot; button. You&#39;ll usually see an indicator light on the motor unit come on or flash, signifying that the system is ready to receive a signal.&lt;/p&gt;&lt;p&gt;IMPORTANT: Once you press this button, you typically have about 30 seconds to complete the next step before the &quot;learn&quot; mode times out. So, be ready to move quickly!&lt;/p&gt;&lt;p&gt;&lt;b&gt;Step 7: Activate HomeLink (First Press)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Quickly return to your vehicle. Press and hold the trained HomeLink button (the one you programmed in Step 3) for about two seconds, then release it.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Step 8: Finalize Programming (Repeat Press Sequence)&lt;/b&gt;&lt;/p&gt;&lt;p&gt;To finalize the rolling code programming, you&#39;ll need to send the signal a few more times.Press and hold the same HomeLink button for two seconds, then release.Repeat this sequence one more time: Press and hold for two seconds, then release.Your garage door should activate on either the second or third press of the HomeLink button. This confirms that the programming for your rolling code system is complete!&amp;nbsp;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/6857646590878542730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2026/07/how-to-actually-program-homelink-garage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6857646590878542730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6857646590878542730'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2026/07/how-to-actually-program-homelink-garage.html' title='How to ACTUALLY program homelink garage door in a modern 2020+ car.'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-2685146435606698039</id><published>2026-05-13T19:24:05.481-04:00</published><updated>2026-05-13T19:24:05.482-04:00</updated><title type='text'>Tasmota searching is a dumpster fire: how to set time settings in Tasmota</title><content type='html'>&lt;p&gt;&amp;nbsp;first is you search for that you will get 20 links of absolute trash bad info. all of them tell you time -m 0 and -m all over the place.&amp;nbsp; &amp;nbsp;Whoever told someone to use -m needs to be kicked in the junk, and all those posts need to be deleted.&amp;nbsp; it&#39;s never been that way.&lt;/p&gt;&lt;table style=&quot;background-color: white; border-collapse: initial; border-color: rgba(0, 0, 0, 0.12); border-image: none 100% / 1 / 0 stretch; border-radius: 0.1rem; border-spacing: 0px; border-style: solid; border-width: 1px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); display: inline-block; font-family: Barlow, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 0.64rem; margin: 0px; max-width: 100%; overflow: auto; touch-action: auto; width: 756.844px;&quot;&gt;&lt;tbody style=&quot;box-sizing: inherit;&quot;&gt;&lt;tr style=&quot;background-color: rgba(0, 0, 0, 0.035); box-shadow: rgb(255, 255, 255) 0px 1.1px 0px 0px inset; box-sizing: inherit; transition: background-color 125ms;&quot;&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;NtpServer&amp;lt;x&amp;gt;&lt;a class=&quot;cmnd&quot; id=&quot;ntpserver&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; margin-bottom: 0px; margin-top: 0px; transition: color 125ms; word-break: normal;&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;NTP server setup (x= &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; margin-top: 0px; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1..3&lt;/code&gt;)&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;0&lt;/code&gt; = clear NtpServer&amp;lt;x&amp;gt; settings&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1&lt;/code&gt; = reset NtpServer&amp;lt;x&amp;gt; settings to firmware defaults&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; margin-bottom: 0px; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;&amp;lt;value&amp;gt;&lt;/code&gt; = set NtpServer&amp;lt;x&amp;gt; host or IP address (32 char limit)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table style=&quot;background-color: white; border-collapse: initial; border-color: rgba(0, 0, 0, 0.12); border-image: none 100% / 1 / 0 stretch; border-radius: 0.1rem; border-spacing: 0px; border-style: solid; border-width: 1px; box-sizing: inherit; color: rgba(0, 0, 0, 0.87); display: inline-block; font-family: Barlow, -apple-system, BlinkMacSystemFont, Helvetica, Arial, sans-serif; font-size: 0.64rem; margin: 0px; max-width: 100%; overflow: auto; touch-action: auto; width: 756.844px;&quot;&gt;&lt;tbody style=&quot;box-sizing: inherit;&quot;&gt;&lt;tr style=&quot;box-sizing: inherit; transition: background-color 125ms;&quot;&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;Time&lt;a class=&quot;cmnd&quot; id=&quot;time&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; margin-bottom: 0px; margin-top: 0px; transition: color 125ms; word-break: normal;&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; margin-top: 0px; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;0&lt;/code&gt; = enable NTP &lt;em style=&quot;box-sizing: inherit;&quot;&gt;(default)&lt;/em&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1&lt;/code&gt; = format JSON message timestamp in ISO format&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;2&lt;/code&gt; = format JSON message timestamp in both ISO and Epoch format&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;3&lt;/code&gt; = format JSON message timestamp in Epoch format&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;4&lt;/code&gt; = format JSON message timestamp in milliseconds&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;&amp;lt;value&amp;gt;&lt;/code&gt; = disable NTP and set UTC time as epoch value if greater than &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; margin-bottom: 0px; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1451602800&lt;/code&gt; (January 1, 2016)&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;box-sizing: inherit; transition: background-color 125ms;&quot;&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;TimeStd&lt;br style=&quot;box-sizing: inherit; margin-top: 0px;&quot; /&gt;TimeDst&lt;a class=&quot;cmnd&quot; id=&quot;timestd&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; transition: color 125ms; word-break: normal;&quot;&gt;&lt;/a&gt;&lt;a class=&quot;cmnd&quot; id=&quot;timedst&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; margin-bottom: 0px; transition: color 125ms; word-break: normal;&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;Set policies for the beginning of daylight saving time (DST) and return back to standard time (STD) &lt;br style=&quot;box-sizing: inherit; margin-top: 0px;&quot; /&gt;Use the &lt;a href=&quot;https://tasmota.github.io/docs/Timezone-Table/&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; text-decoration: none; transition: color 125ms; word-break: normal;&quot;&gt;Tasmota timezone table&lt;/a&gt; to find the commands for your time zone.&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;0&lt;/code&gt; = reset parameters to firmware defaults&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;H&lt;/code&gt;,&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;W&lt;/code&gt;,&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;M&lt;/code&gt;,&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;D&lt;/code&gt;,&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;h&lt;/code&gt;,&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;T&lt;/code&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;H&lt;/code&gt; = hemisphere (&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;0&lt;/code&gt; = northern hemisphere / &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1&lt;/code&gt; = southern hemisphere)&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;W&lt;/code&gt; = week (&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;0&lt;/code&gt; = last week of month, &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1..4&lt;/code&gt; = first .. fourth)&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;M&lt;/code&gt; = month (&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1..12&lt;/code&gt;)&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;D&lt;/code&gt; = day of week (&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1..7&lt;/code&gt; &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;1&lt;/code&gt; = Sunday &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;7&lt;/code&gt; = Saturday)&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;h&lt;/code&gt; = hour (&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;0..23&lt;/code&gt;) in &lt;strong style=&quot;box-sizing: inherit;&quot;&gt;local&lt;/strong&gt; time&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;T&lt;/code&gt; = time zone (&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;-780..780&lt;/code&gt;) (offset from UTC in &lt;strong style=&quot;box-sizing: inherit;&quot;&gt;MINUTES&lt;/strong&gt; - 780min / 60min=13hrs)&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;em style=&quot;box-sizing: inherit;&quot;&gt;Example:&lt;/em&gt; &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;TIMEDST 1,1,10,1,2,660&lt;/code&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;_If time zone is &lt;strong style=&quot;box-sizing: inherit;&quot;&gt;NOT&lt;/strong&gt; 99, DST is not used (even if displayed) &lt;a href=&quot;https://github.com/arendst/Tasmota/issues/8528#issuecomment-633247984&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; margin-bottom: 0px; text-decoration: none; transition: color 125ms; word-break: normal;&quot;&gt;see&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style=&quot;background-color: rgba(0, 0, 0, 0.035); box-shadow: rgb(255, 255, 255) 0px 1.1px 0px 0px inset; box-sizing: inherit; transition: background-color 125ms;&quot;&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;Timezone&lt;a class=&quot;cmnd&quot; id=&quot;timezone&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; margin-bottom: 0px; margin-top: 0px; transition: color 125ms; word-break: normal;&quot;&gt;&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;border-top: 1px solid rgba(0, 0, 0, 0.12); box-sizing: inherit; padding: 0.9375em 1.25em; vertical-align: top;&quot;&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; margin-top: 0px; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;-13..+13&lt;/code&gt; = set time zone offset from UTC in hours&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;-13:00..+13:00&lt;/code&gt; = set time zone offset from UTC in hours and minutes&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;&lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;99&lt;/code&gt; = use time zone configured with &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;TimeDst&lt;/code&gt; and &lt;code style=&quot;-webkit-box-decoration-break: clone; -webkit-tap-highlight-color: transparent; background-color: whitesmoke; border-radius: 0.1rem; box-decoration-break: clone; box-sizing: inherit; color: #36464e; direction: ltr; font-family: &amp;quot;Roboto Mono&amp;quot;, SFMono-Regular, Consolas, Menlo, monospace; font-feature-settings: &amp;quot;kern&amp;quot;; font-size: 0.85em; font-variant-ligatures: none; outline: none; padding: 0px 0.294118em; transition: color 125ms, background-color 125ms; word-break: break-word;&quot;&gt;TimeStd&lt;/code&gt;&lt;br style=&quot;box-sizing: inherit;&quot; /&gt;Use the &lt;a href=&quot;https://tasmotatimezone.com/&quot; style=&quot;-webkit-tap-highlight-color: transparent; box-sizing: inherit; color: #2094f3; margin-bottom: 0px; text-decoration: none; transition: color 125ms; word-break: normal;&quot;&gt;Tasmota time zone command helper&lt;/a&gt; to find the commands for your time zone and correctly set sunrise and sunset times.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/2685146435606698039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2026/05/tasmota-searching-is-dumpster-fire-how.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/2685146435606698039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/2685146435606698039'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2026/05/tasmota-searching-is-dumpster-fire-how.html' title='Tasmota searching is a dumpster fire: how to set time settings in Tasmota'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-1055104525037833081</id><published>2025-11-21T13:59:00.006-05:00</published><updated>2025-11-21T14:15:30.689-05:00</updated><title type='text'>Actual getting started with Nano Framework What they refuse to tell you in the &quot;getting started guide&quot;</title><content type='html'>&lt;p&gt;&amp;nbsp;They want yout to just load their code &quot;because this is not this guide&quot;&amp;nbsp; yet they refuse to give you that guide.&amp;nbsp; &amp;nbsp; loading their demo code teaches you nothing... so here is that guide&lt;/p&gt;&lt;p&gt;I am using a 2.8&quot; Cheap Yellow Display from a random china store.&lt;/p&gt;&lt;p&gt;Launch VS2022 and follow their guide up to the &quot;just load this demo&quot; but do not do that.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In VS 2022 click on &quot;View&quot; then scroll down and find the &quot;Other Windows&quot; click on that.&amp;nbsp; In there is the device explorer window.&amp;nbsp; you NEED this critically and it&#39;s wierd they do not tell you this in their guide.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ok now go to solution explorer, click on references, right click and select manage nuget packages.&lt;/p&gt;&lt;p&gt;Click on browse, and check the &quot;include prerelease checkbox next to the search box.&amp;nbsp; now type &quot;nanoframework&quot; in that box.&amp;nbsp; Select nanoframework.system.device.gpio and install it.&lt;/p&gt;&lt;p&gt;Now you can actually program this thing to do blinky.&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;using System;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;using System.Diagnostics;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;using System.Threading;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;using System.Device.Gpio;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;namespace MyFirstNanoApp&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; public class Program&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public static GpioController mygpio;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public static void Main()&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; mygpio = new GpioController();&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; GpioPin led = mygpio.OpenPin(17, PinMode.Output);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; while (true)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; led.Write(PinValue.High);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thread.Sleep(1000);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; led.Write(PinValue.Low);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Thread.Sleep(1000);&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Ok compile. now select your board in the device explorer and then click on the play button &quot;.net Framework device&quot;&amp;nbsp; it should compile and upload and run in debugging mode.&amp;nbsp; the pin 17 is for the CYD led on the back blue channel.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display&quot;&gt;https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display&lt;/a&gt; for more info on these boards.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Why the hell nearly all C# developer or library project people just utterly refuse to give you the info needed to do something to get started I&#39;ll never understand.&amp;nbsp; they all act like &quot;you should know what libraries to grab&quot;&lt;br /&gt;&lt;br /&gt;Granted I have been doing C# development for only 10 years so I&#39;m a noob and should know better.&lt;br /&gt;&lt;br /&gt;Yes I&#39;m spicy on this because I am tired of the &quot;sucks to be you&quot; attitude from all the C# devs out there. we NEED to help newbies get started, yes that means hand holding. and in this case that hand hold would have taken honestly 60 seconds.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/1055104525037833081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2025/11/actual-getting-started-with-nano.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/1055104525037833081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/1055104525037833081'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2025/11/actual-getting-started-with-nano.html' title='Actual getting started with Nano Framework What they refuse to tell you in the &quot;getting started guide&quot;'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-8775449930999461080</id><published>2025-09-15T16:45:00.006-04:00</published><updated>2026-05-13T19:49:31.479-04:00</updated><title type='text'>Disable BMW X1 E84  SOS calling system that failed but is calling 911 over and over</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj7_Mly9xlpyTCb59SIKNvlrLESnkfAauePjnG-LCr59XoBvBrFZvlDvzLBcNtAPKDzIQByBTImX7KbnyKCkX6tWt1DGRJf949jJCU66G7r9NjOglNKdsI8hE4WaDW_iwnRpLygSSvEjmKNJPNLUkodkgrbTuWt5-eUuV7VfhBmmiCAwA9rDLCc&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;640&quot; data-original-width=&quot;480&quot; height=&quot;444&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj7_Mly9xlpyTCb59SIKNvlrLESnkfAauePjnG-LCr59XoBvBrFZvlDvzLBcNtAPKDzIQByBTImX7KbnyKCkX6tWt1DGRJf949jJCU66G7r9NjOglNKdsI8hE4WaDW_iwnRpLygSSvEjmKNJPNLUkodkgrbTuWt5-eUuV7VfhBmmiCAwA9rDLCc=w371-h444&quot; width=&quot;371&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;First, the internet is useless.&amp;nbsp; 100% of the info out there on this module are wrong and people being dumb, just parrot the same info as if they were correct.&amp;nbsp; &amp;nbsp;Maybe for the 2019+ models they are correct, but they are utterly and totally wrong for the E84 X1.&lt;br /&gt;No the backup battery did not die. The E84 does not have one.&amp;nbsp; &amp;nbsp;No the module is not under the headliner by the antenna Fin.&amp;nbsp; Again that&#39;s incredibly wrong.&amp;nbsp; wanna see what is there?&amp;nbsp; Here&#39;s a photo,&amp;nbsp; I ruined my headliner for you. That&#39;s the Pano roof control module. All the bimmer forum people can STFU with telling people wrong info and acting like they are experts.&amp;nbsp; They are not experts and don&#39;t listen to those morons.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The BMW forums are all full of shit, Youtube is full of shit, Reddit is full of shit.&amp;nbsp; the SOS system is built into the telematics box.&amp;nbsp; &amp;nbsp;There it is down by the car battery.&amp;nbsp; &amp;nbsp;Now I thought I could disable this by disconnecting the antennas.&amp;nbsp; Nope that thing will do whatever it can to get a cellular signal out.&amp;nbsp; Found out that did not work as the thing called 911 while sitting in a airport parking lot.&amp;nbsp; So it&#39;s time to either buy a replacement box for $1500 from BMW,&amp;nbsp; $199 to $350 from Ebay,&amp;nbsp; or use my electronics know how.&amp;nbsp; &amp;nbsp;Just disconnecting the box makes you lose all radio audio and you lose your bluetooth phone stuff.&amp;nbsp; the radio can be fixed with a fiberoptic loopback. you still lose the bluetooth and aux in.&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhFT9Pg5Y5-eULkd4-x8sm-Ua4HT5P7KU0FNn692PoI9nRz8PLEG_mMiU3Rgo0ofl-Ef6NEbASDBa-lgHTONFELqv3r36JWJ4vn7OKIsbxaFpX61LplU5NPeVLIM3LRt9pU3s2HAP_APMtYNem9A5q642PaLBEauwDJNtsiZAavGMCYI2gI46by&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;640&quot; data-original-width=&quot;480&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhFT9Pg5Y5-eULkd4-x8sm-Ua4HT5P7KU0FNn692PoI9nRz8PLEG_mMiU3Rgo0ofl-Ef6NEbASDBa-lgHTONFELqv3r36JWJ4vn7OKIsbxaFpX61LplU5NPeVLIM3LRt9pU3s2HAP_APMtYNem9A5q642PaLBEauwDJNtsiZAavGMCYI2gI46by=w252-h336&quot; width=&quot;252&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;But I figured out a better solution,&amp;nbsp; open it up and rip out it&#39;s mouth&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj4lyh-PcvqSjsl3VwEp15duPpuolLy2W2UTI-d9rooe3DSM21vDjkPUzXDZ-ZKYOuuIMOyIMuNILDUNfnTI0up0rqUYa3HUUewZISCFVMqHZG7uK2q0XuhYLF66__YUsmc-HU4XJqLdQvTt6XkxxQMCm4Gz4GRUenaK-Pz1tnOR9hrlbgX_J7D&quot; style=&quot;clear: right; display: inline; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgQOfK5v_w_k8d6zB8H7n7-HVPUqa-GXCu7hooVzrkWuxpFsuJWxvhFPqMA4UtJ4hX4o3nlmjQbQ-96O9YBexZyhT2aCatGKVCi1fm5BB54cJrmPDR3vRS4-u5twVaPATG450MpkqMUxRFSQuLPkDyf9mCUMjsEzFnsHCLUZPld63iisUhp9A9e&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;640&quot; data-original-width=&quot;480&quot; height=&quot;329&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgQOfK5v_w_k8d6zB8H7n7-HVPUqa-GXCu7hooVzrkWuxpFsuJWxvhFPqMA4UtJ4hX4o3nlmjQbQ-96O9YBexZyhT2aCatGKVCi1fm5BB54cJrmPDR3vRS4-u5twVaPATG450MpkqMUxRFSQuLPkDyf9mCUMjsEzFnsHCLUZPld63iisUhp9A9e=w298-h329&quot; width=&quot;298&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEihr0Cg7V3QFWJEqM7e9BQThND87GlSpwCGo9U4C3PFMDXDvhRswyViG-gyG50FH3UYEm1gOf_w1z3JcDPRC3Ghy0T4YTtj46RRiK_cMfM_HC5aS4a7sDzWVAmT31ThBym_B9z4B4lx6UkeJvx33t_nEKQq4O_kysW_PUr08n0MNAAb_uYYiFJR&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;640&quot; data-original-width=&quot;480&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEihr0Cg7V3QFWJEqM7e9BQThND87GlSpwCGo9U4C3PFMDXDvhRswyViG-gyG50FH3UYEm1gOf_w1z3JcDPRC3Ghy0T4YTtj46RRiK_cMfM_HC5aS4a7sDzWVAmT31ThBym_B9z4B4lx6UkeJvx33t_nEKQq4O_kysW_PUr08n0MNAAb_uYYiFJR&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Inside there is a daughterboard that is the cellular part.&amp;nbsp; why is it a daughter board? because the USA is different from europe so they just want to swap that part.&lt;br /&gt;&lt;br /&gt;Grab it and remove it.&amp;nbsp; reassemble the box and reinstall.&lt;br /&gt;&lt;br /&gt;You now stopped it from EVER calling 911 again. and you retain the audio and bluetooth hands free and connectivity that way as well as the &quot;AUX INPUT&quot;&amp;nbsp; yes for some strange ass reason AUX is routed back to this box and back up to the head unit..&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Oh the dealer?&amp;nbsp; they wanted $5000 to fix this. $1500 for the box and the rest as a diagnostic and labor.&amp;nbsp; &amp;nbsp;now on every start I get a SOS failed warning that goes away. after a moment.&amp;nbsp; &amp;nbsp; Will it hurt my resale? yes!&amp;nbsp; I can no longer make $60,000 selling it!&amp;nbsp; THE HORROR!&amp;nbsp; IT&#39;s a 2013 that is over 80,000 miles so the timing chain guides are already a ticking time bomb.&amp;nbsp; &amp;nbsp; Don&#39;t really give a flying fart about resale,&amp;nbsp; I just want 2 more years without a car payment.&lt;br /&gt;&lt;br /&gt;If I can figure out how to code out the check for the stupid SOS I&#39;ll post it here.&amp;nbsp; That&#39;s a whole nother ball of raging bullshit on the internet. 100% of the instructions to do so are completely wrong and can not work for an E84.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I remember back when BMW enthusiasts shared good info instead of being dumb parrots.&lt;br /&gt;&lt;br /&gt;UPDATE:&amp;nbsp; After more investigation and getting my hands on BMW dealer diagnostic software (don&#39;t ask, not It&#39;s not legal)&amp;nbsp; I got more info and started to do a little more research because I am annoyed by the &quot;SOS fault&quot; error that is showing on every start.&amp;nbsp; &amp;nbsp;It&#39;s only an annoyance, and does not have to be actually fixed.&amp;nbsp; &amp;nbsp; the diagnostic software shows a fault in the SOS switch,&amp;nbsp; it&#39;s in the big overhead module that controls the sunroof, so I took that apart thinking, well sunroof&#39;s leak and this got wet?&amp;nbsp; looked that over and tested everything. switch looks good and perfectly clean,&amp;nbsp; powering it and looking at the canbus messages with a scope shows it&#39;s not &quot;shorted&quot; as claimed.&amp;nbsp; yes the switch is canbus as it also get messages back to make the green led give you status info.&amp;nbsp; I checked wiring and that&amp;nbsp; is all clean.&amp;nbsp; &amp;nbsp; so I am focusing on the actual module that I ripped the cellular board out of as well as ordered a used one off ebay.&amp;nbsp; &amp;nbsp;NOTE: this box is a pain in the ass to find exact replacements as there are 100 variations of it.&amp;nbsp; &amp;nbsp;look for the same connectors, and then compare the part numbers as well as date codes.&amp;nbsp; This is when I discovered this box had been replaced once in my 2013 X1....&amp;nbsp; the box I have installed there is a 2018 date code.... Huh... someone replaced this with a new one before I got the car.&amp;nbsp; So I did some cross checking on realOEM and found what it replaced and found the older part numbers.&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have the older 2013 box coming from ebay.&amp;nbsp; Lets see what I can learn from this box.&amp;nbsp; I have a sneaking suspicion that the errors are not real and are being caused by the telematics box. which may explain why this one is a replacement already and BMW actually has a problem with this box and it failing.&lt;br /&gt;&lt;br /&gt;2026 update,&amp;nbsp; Nope. used ebay box did the same thing. so there is something freaking it out but I&#39;m no longer caring on this $2000 value vehicle that looks great, runs great but complains it cant bother 911.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/8775449930999461080/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2025/09/disable-bmw-x1-e84-sos-calling-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/8775449930999461080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/8775449930999461080'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2025/09/disable-bmw-x1-e84-sos-calling-system.html' title='Disable BMW X1 E84  SOS calling system that failed but is calling 911 over and over'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEj7_Mly9xlpyTCb59SIKNvlrLESnkfAauePjnG-LCr59XoBvBrFZvlDvzLBcNtAPKDzIQByBTImX7KbnyKCkX6tWt1DGRJf949jJCU66G7r9NjOglNKdsI8hE4WaDW_iwnRpLygSSvEjmKNJPNLUkodkgrbTuWt5-eUuV7VfhBmmiCAwA9rDLCc=s72-w371-h444-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-1792779637132458773</id><published>2025-08-25T07:30:00.007-04:00</published><updated>2026-05-13T19:28:10.388-04:00</updated><title type='text'>Fixing CanBUS  BUS-OFF  error with Klipper and a Voron </title><content type='html'>&lt;br /&gt;&lt;br /&gt; It&#39;s not a Klipper problem or a Voron problem.   It&#39;s a Linux Networking Sucks problem.  The Linux devs are constantly changing things so it is a moving target to set up networking making most documentation out on the internet wrong in a short amount of time.&lt;br /&gt;&lt;br /&gt;I have my voron set up with a red emergency stop button.  It kills the 120V power to the heated bed and the 24V power to the hotend, motors, chamber heater.  I just felt better building it having an E stop... and honestly I use it to shut down the thing for the night so it only uses 5 watts for the Pi instead of the additional 35 watts the rest of the boards are using just sitting there as well as the lighting.  Before I went to canbus this all worked perfectly until wires started to fail in the cable chain.  So I upgraded to canbus.   Problem is canbus does NOT recover cleanly from power loss.  This is not a fault of canbus, its the fault of the idiots that wrote the linux software to manage networking.  canbus can be in a &quot;up&quot; state but not be up and left in a BUS-OFF state.  but the linux drivers see the network is up and does nothing.    &lt;br /&gt;&lt;br /&gt;So we need to fix it.   and yes this is a dirty hack.&lt;br /&gt;&lt;br /&gt;First write a script.  I called mine canbus_restart.sh&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;#!/bin/bash&lt;br /&gt;# Simple script to check and restart the can0 interface&lt;br /&gt;# Check if the can0 interface is in BUS-OFF condition&lt;br /&gt;# The output is piped to grep to check for the word &#39;BUS-OFF&#39;.&lt;br /&gt;&lt;br /&gt;if ip -s -d link show can0 | grep &#39;BUS-OFF&#39; &amp;amp;&amp;gt;/dev/null; then&lt;br /&gt; &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;echo &quot;can0 is down, attempting to restart it...&quot;&lt;br /&gt; &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;# If can0 is down, bring it down and then up again.&lt;br /&gt; &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;sudo ip link set can0 down&lt;br /&gt; &lt;span&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;sudo ip link set can0 up&lt;br /&gt;fi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make it executable and put it somewhere that you can find it.&lt;br /&gt;&lt;br /&gt;The next part I am doing the easy way and not the overly convoluted mess that 90% of t he freaking internet wants you to follow. no we are not going to create service files and timer files for the service. Thats just stupid, and linux in general is running face first towards being extra stupid. we are going to go old school BOOMER style of running a script regularly and as root. Damned kids get off my lawn!&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;sudo crontab -e&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Thats the command you issue. we are going to add TWO lines to crontab because I want to run the script every 30 seconds. Wait Cron cant do that! actually it can, and we are gonna do it the dirty ugly way that will have reddit wailing like banshees about it. add these two lines of code to the bottom of your crontab -e file.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;* * * * *       /home/tim/canbus_restart.sh&lt;br /&gt;* * * * *       ( sleep 30; /home/tim/canbus_restart.sh )&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;ERmaGherd! you know my username is tim!  All the Russian hackers in the world will now P0wn me and make my printer burn the house down!   Yeah no the internet makes people stupid  they cant do shit with that.&lt;br /&gt;&lt;br /&gt;Ok what the hell is going on with the crontab?    the first line runs the script every minute.  the second line runs it also every minute, but with a 30 second sleep.  Meaning the scrip now runs every 30 seconds.&lt;br /&gt;&lt;br /&gt;See us old fuckers are useful.  Back in my day when we had to compile the linux kernel with a chisel and a bag of electrons we did things the simple way.  Cron job and a script.   Not all this overly convoluted service bullshit that seems to be shoved down everyone&#39;s throat today.&lt;br /&gt;&lt;br /&gt;If this blog post feels extra spicy it is because I wasted several hours trying to solve this problem and it seems like 100% of all the klipper pages and forums don&#39;t have a clue how to fix it, reddit has no clue, nobody has looked for an answer.  and of course the main source of info for setting up canbus for klipper has ZERO info about it.  And from all my searching, I found a LOT of people have ran into this exact problem and everyone&#39;s answer is &quot;you did something wrong&quot;  or &quot;You sux lol&quot;So now you have an actual answer to this problem. &lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: arial;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;font-family: courier;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/1792779637132458773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2025/08/fixing-canbus-bus-off-error-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/1792779637132458773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/1792779637132458773'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2025/08/fixing-canbus-bus-off-error-with.html' title='Fixing CanBUS  BUS-OFF  error with Klipper and a Voron '/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-6292002329327162543</id><published>2025-08-01T08:54:00.002-04:00</published><updated>2025-08-01T08:54:52.857-04:00</updated><title type='text'>Making Serial ports on a Windows PC in C# work with arduino</title><content type='html'>&lt;p&gt;&amp;nbsp;This has driven me nuts for 2 days.&amp;nbsp; I found an obscure note in the corner of the internet that gave me the answer.&amp;nbsp; &amp;nbsp;To get a serial port on a windows PC&amp;nbsp; using C# to talk to an arduino.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort = new SerialPort();&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.BaudRate = 9600;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.PortName = &quot;COM5&quot;;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.Parity = Parity.None;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.DataBits = 8;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.StopBits = StopBits.One;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.Handshake = Handshake.None;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.RtsEnable = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.DtrEnable = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.Encoding = Encoding.ASCII;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.ReadTimeout = 550;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.WriteTimeout = 550;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.Open();&lt;/div&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;This right here is the part that NONE of the damned microsoft examples tell you.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.RtsEnable = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.DtrEnable = true;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; myPort.Encoding = Encoding.ASCII;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;After testing I found that a LOT of serial devices need that.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/6292002329327162543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2025/08/making-serial-ports-on-windows-pc-in-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6292002329327162543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6292002329327162543'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2025/08/making-serial-ports-on-windows-pc-in-c.html' title='Making Serial ports on a Windows PC in C# work with arduino'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-7583508263122864488</id><published>2025-07-20T16:23:00.006-04:00</published><updated>2025-10-29T15:57:06.150-04:00</updated><title type='text'>VR flying and Racing on a budget</title><content type='html'>&lt;p&gt;I recently had a friend ask how to get into VR sim racing or VT flight simming on a budget.&amp;nbsp; and I found the answer for him so I feel it&#39;s a good topic to talk about and give real warnings about finding used VR gear.&lt;br /&gt;&lt;br /&gt;He had almost no money, but had a PC with a 1070 Video card.&amp;nbsp; This means nothing that is current is useable.&amp;nbsp; &amp;nbsp;He had almost pulled the trigger on a use Valve Index that was $900 when I talked him off the ledge.&amp;nbsp; &amp;nbsp;The valve index is incredibly old and out of date. and paying a grand for a used one is utter stupidity.&amp;nbsp; There are a lot of very stupid people trying to sell the kit for that.&amp;nbsp; &amp;nbsp;Dont do it.&amp;nbsp; &amp;nbsp;The index is low res and has god rays problems as well as a pronounced screen door effect.&amp;nbsp; &amp;nbsp; For it&#39;s time it was great, but today it&#39;s not worth more than $350 for a full kit in perfect condition.&amp;nbsp; &amp;nbsp; Plus his wife was going to murder him for spending that.&lt;br /&gt;&lt;br /&gt;Time for an intervention,&amp;nbsp; after finding his real budget of about $250 for a headset. I set out on craigslist and FB marketplace.&amp;nbsp; specifically looking for a HTC Vive.&amp;nbsp; &amp;nbsp;First gen.&amp;nbsp; Why not the HP G2?&amp;nbsp; Because that headset was killed by Microsoft.&amp;nbsp; &amp;nbsp;It&#39;s dead will not work under Windows 11 it&#39;s E waste that you can not get functioning unless you build a Windows 10 PC and disable all updates.&amp;nbsp; DO NOT buy an HP G2 used, you will waste all your money. No you cant get it to work.&lt;br /&gt;&lt;br /&gt;The choice for a cheap entry is a HTC Vive.&lt;br /&gt;&lt;br /&gt;Wait the Vive is a 10 year old headset!&amp;nbsp; Yes. it is.&amp;nbsp; it also doesnt require stupid extra drivers and follows a standard.&amp;nbsp; &amp;nbsp;It has low res screens, has god rays badly tiny in focus point i nthe middle, and a pronounced screen door effect.&amp;nbsp; &amp;nbsp; All the bad things I mentioned above will annoy you.&amp;nbsp; Except you can find these with 2 lighthouses for about $125 used.&amp;nbsp; &amp;nbsp;at $125-$135 this is a decent price for such an old headset.&amp;nbsp; &amp;nbsp; DO NOT PAY MORE.&amp;nbsp; &amp;nbsp;Let me repeat myself.&amp;nbsp; &amp;nbsp;People asking more than $150 for a complete Vive setup are smoking crack.&amp;nbsp; &amp;nbsp;Walk away from these idiots.&amp;nbsp; pay no more than $135 for a complete setup.&amp;nbsp; &amp;nbsp;That is headset 2 controllers and 2 lighthouses with the big cable, adapter box and power supplies.&amp;nbsp; DO NOT pay more than $50 for a setup without lighthouses.&amp;nbsp; all the value is in those.&amp;nbsp; If the seller tells you only need one.&amp;nbsp; Walk away as they are lying.&amp;nbsp; &amp;nbsp;If the seller says the cables are easily purchased.&amp;nbsp; WALK AWAY THEY ARE LYING.&lt;br /&gt;&lt;br /&gt;you can find used cables for $50 hope it&#39;s not broken. you can find used Lighthouses for $100 hope those dont vibrate due to throwing a lens.&amp;nbsp; but now you are back up to the price of buying a good headset.&amp;nbsp; &amp;nbsp;HTC Vive and Vive pro are E-Waste with their age. no matter what these crackhead sellers tell you it&#39;s not worth more than $135 complete. or $180 complete for a pro.&lt;br /&gt;&lt;br /&gt;Ok what can you get cheap.&amp;nbsp; &amp;nbsp; Power supplies for the lighthouses.&amp;nbsp; these are standard 12V 2A 5.1 OD barrel power supplies. but drop the price by $20 for each one missing. you will pay about $16 each.&lt;br /&gt;&lt;br /&gt;the USB cable to the PC is a special A to A cable.&amp;nbsp; the HDMI cable is a standard one.&amp;nbsp; every cable missing&amp;nbsp; is another $20 off.&amp;nbsp; the big cable missing is $70 off.&amp;nbsp; &amp;nbsp; Just a headset should be about $35 in perfect condition.&amp;nbsp; and Avoid the HTC wireless even if all the parts are there.&amp;nbsp; It&#39;s trash.&lt;br /&gt;&lt;br /&gt;I got him one and spent 2 hours cleaning off all the kid goo and people goo.&amp;nbsp; &amp;nbsp;remember people are Gross.&amp;nbsp; Windex electronics wipes.&amp;nbsp; clean everything.&amp;nbsp; if there are rubber protectors remove them and toss them. all pads need to be tossed and replaced. HTC was idiots and made everything out of a foam that sucks up people goo.&amp;nbsp; Yuck.&lt;br /&gt;&lt;br /&gt;Ok after cleaning,&amp;nbsp; when you plug it in Steam VR will start setting things up, you may need to get the HTC vive app installed for the room setup once, and then never run it again.&lt;br /&gt;&lt;br /&gt;Is the view awesome?&amp;nbsp; nope the Vive is low res and looks like a bug screen is in front of you.&amp;nbsp; but it&#39;s a cheap VR that will do 90hz even on a i5-8th gen and a 8 year old video card.&amp;nbsp; &amp;nbsp;He&#39;s playing Elite Dangerous in VR,&amp;nbsp; MSFS, and Asseto Corsa and having a blast.&amp;nbsp; &amp;nbsp;Because the Vive is so low res do not bother with correction lenses if you wear glasses,&amp;nbsp; It&#39;s better without a clear view.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;But for a couple of hours and a total of $150 including a new face gasket he&#39;s enjoying PCVR and learning if it&#39;s right for him and if he will really enjoy it.&amp;nbsp; Instead of dumping a grand or more and discovering he needs a new video card, new pc, then afterwards, Oh this VR thing is not for him and tries to sell it for MSRP with the other crackheads.&lt;br /&gt;&lt;br /&gt;It&#39;s enjoyable and is a great entry for you to test the waters cheaply.&amp;nbsp; so if you are interested,&amp;nbsp; try a used HTC vive,&amp;nbsp; just dont pay much.&amp;nbsp; Because honestly nobody is buying them at the high prices people are trying to get.&lt;br /&gt;&lt;br /&gt;He now also has an upgrade path that is affordableish.&amp;nbsp; &amp;nbsp;a HTV vive pro 2 headset only.&amp;nbsp; &amp;nbsp;the lighthouses and the controllers will work with just a headset. This means he can get one for $600 ish and get a quadruple jump in video quality (Still craptastic fresnel lenses with god rays and ghosting) if he also upgrades at least to a 10th gen i7 and a 3080 video card.&amp;nbsp; &amp;nbsp;still afforadable unlike anything new needs.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/7583508263122864488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2025/07/vr-flying-and-racing-on-budget.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/7583508263122864488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/7583508263122864488'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2025/07/vr-flying-and-racing-on-budget.html' title='VR flying and Racing on a budget'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-3998472089098942929</id><published>2025-06-06T14:15:00.003-04:00</published><updated>2025-06-06T14:19:19.918-04:00</updated><title type='text'>Why does everyone  hide where Klipper stores your machine config files?</title><content type='html'>&lt;p&gt;&amp;nbsp;Ok I just spent a stupid amount of time trying to find where a modern Klipper install stores the printer.cfg and other configuration files.&amp;nbsp; &amp;nbsp;No I dont want to store them in github, No I dont want some other cloud backup.&amp;nbsp; I want them right here on my NAS or a USB stick.&amp;nbsp; &amp;nbsp;Searching official docs or anything online all gives you wrong or out of date info.&amp;nbsp; WTF people?&lt;/p&gt;&lt;p&gt;Where the hell are they?&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgqpy4Qr0DJM44Ve13FatBUh6rz4UgR3-KFeNKubWE_b1EGTMsvMrKNCgzBFUUm9TCKDI9HBum1420P5csS56-wbKrfXoaxrXIhtUFRKuG-1pNd8szYh-tRDdMGcYg3W1hfbHjZ8tbWnmGxh5YsyliXIgHG6IGejAXjQXWrtlwIshwTZdk5CShF&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;326&quot; data-original-width=&quot;836&quot; height=&quot;176&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgqpy4Qr0DJM44Ve13FatBUh6rz4UgR3-KFeNKubWE_b1EGTMsvMrKNCgzBFUUm9TCKDI9HBum1420P5csS56-wbKrfXoaxrXIhtUFRKuG-1pNd8szYh-tRDdMGcYg3W1hfbHjZ8tbWnmGxh5YsyliXIgHG6IGejAXjQXWrtlwIshwTZdk5CShF=w451-h176&quot; width=&quot;451&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Here is my printers home directory.&amp;nbsp; OMG you know my username is tim...&amp;nbsp; Russian hackers are going to hack norad through my printer OMG OMG OMG OMG!&amp;nbsp; &amp;nbsp;Yeah no, people go way overboard on that kind of shit.&amp;nbsp; hack me I dare you!.&amp;nbsp; &amp;nbsp; &amp;nbsp;there is a folder there...&amp;nbsp; &amp;nbsp;printer_data&amp;nbsp; &amp;nbsp;that is where you go first. then jump into the config folder inside that.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgfS0BrUxjyNGHUn3uHRFLluj8-tE-0cexgnJhs6ZarzlariNmjEh21rPwxWdhYl1HpLAs4zgShMjga3bKIeZA_UIrQItT2LdWAITLjkWJTNEHPVb7grFGmMfc0Zb4PMzI5EC2CUA1USOaDFQiAXGG3KmJ8UYATqzSK5zKCcZZ2eo2nTyNE_DJN&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;505&quot; data-original-width=&quot;878&quot; height=&quot;385&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgfS0BrUxjyNGHUn3uHRFLluj8-tE-0cexgnJhs6ZarzlariNmjEh21rPwxWdhYl1HpLAs4zgShMjga3bKIeZA_UIrQItT2LdWAITLjkWJTNEHPVb7grFGmMfc0Zb4PMzI5EC2CUA1USOaDFQiAXGG3KmJ8UYATqzSK5zKCcZZ2eo2nTyNE_DJN=w670-h385&quot; width=&quot;670&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;There we go. all my files and the revisions.&amp;nbsp; This one has only ran for 2.5 years. after 20Km of filament printed It&#39;s time to upgrade it.&amp;nbsp; &amp;nbsp;I&#39;m replacing the pi knockoff with a real one and upgrading to canbus because my wires are failing after being flexed constantly.&amp;nbsp; stupid china quality wires.&amp;nbsp; &amp;nbsp;Dont buy any of the Voron wiring harnesses, they all are made of crap wire.&amp;nbsp; &amp;nbsp;buy the crimpers and make your own.&amp;nbsp; or better yet go canbus.&lt;br /&gt;&lt;br /&gt;So there you have it.&amp;nbsp; &amp;nbsp; your printer config files are in &lt;b&gt;~/printer_data/config&lt;/b&gt;&amp;nbsp; &amp;nbsp; all other guides and websites on the internet are phreaking wrong....&amp;nbsp; unless you did some kind of hack job installing it&amp;nbsp; manually, then it&#39;s all on you.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/3998472089098942929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2025/06/why-does-everyone-hide-where-klipper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3998472089098942929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3998472089098942929'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2025/06/why-does-everyone-hide-where-klipper.html' title='Why does everyone  hide where Klipper stores your machine config files?'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgqpy4Qr0DJM44Ve13FatBUh6rz4UgR3-KFeNKubWE_b1EGTMsvMrKNCgzBFUUm9TCKDI9HBum1420P5csS56-wbKrfXoaxrXIhtUFRKuG-1pNd8szYh-tRDdMGcYg3W1hfbHjZ8tbWnmGxh5YsyliXIgHG6IGejAXjQXWrtlwIshwTZdk5CShF=s72-w451-h176-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-5957019921360405644</id><published>2025-01-02T09:18:00.000-05:00</published><updated>2025-01-02T09:18:14.377-05:00</updated><title type='text'>Migrating a config from a Mikrotik 4011 to the newer 5009</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8sFOfsgGWA7RqegO7cZ5elhJKym3pZgYoYomLt9WMnCoR130-j-SGREv3rauoc63V57y_KuCtNk9VMkEuW9pw0SVwmYiIfKiQEVQV96yHiFmb7DEeYNVWNkYe8NlklOWrbPvddzYk-gNiLYn_EATe5KoAuZHh0mnIN3wXfyMwrWAvmxHF5DIG/s404/images.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;125&quot; data-original-width=&quot;404&quot; height=&quot;99&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8sFOfsgGWA7RqegO7cZ5elhJKym3pZgYoYomLt9WMnCoR130-j-SGREv3rauoc63V57y_KuCtNk9VMkEuW9pw0SVwmYiIfKiQEVQV96yHiFmb7DEeYNVWNkYe8NlklOWrbPvddzYk-gNiLYn_EATe5KoAuZHh0mnIN3wXfyMwrWAvmxHF5DIG/s320/images.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A LOT of the articles online and the Mikrotik forums are filled with easily panicked people. they will tell you what I am about to tell you to do &quot;is impossible&quot; or &quot;highly dangerous&quot;.&amp;nbsp; They are all extremely wrong.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The 4011 and the 5009 are basically the same thing but with upgraded processing and communication on the 5009.&amp;nbsp;&amp;nbsp; It has 2 less ports and does not have 2 serial interfaces.&lt;/p&gt;&lt;p&gt;Step 0 upgrade both routers to the exact same firmware version of routerOS&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Step 1.&amp;nbsp; Export the config from your 4011.&amp;nbsp; I use winbox on a mac fire up a console and&amp;nbsp; /export show-sensitive file=4011&lt;/p&gt;&lt;p&gt;Step 2 copy that file to your laptop/GamingPC/Mainframe/Space Shuttle Computer/whatever and open in a text editor on that file&lt;br /&gt;&lt;/p&gt;&lt;p&gt;delete anything in the interface setup (top of file) that talks about ether 9 and ether 10&lt;/p&gt;&lt;p&gt;delete both of the serial interfaces&lt;/p&gt;&lt;p&gt;Using winbox. blow out the config on the new 5009. tell it you want no default config.&lt;/p&gt;&lt;p&gt;reconnect and set your password as it forces you to.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;using winbox copy the file you edited to the 5009&lt;/p&gt;&lt;p&gt;go into the terminal and type /import 4011.rsc&lt;/p&gt;&lt;p&gt;if successful (mine was) you should be good to go.&amp;nbsp; I would look around at your settings and compare to the old one.&amp;nbsp; In my case I also have Mikrotik AP&#39;s so I had to remove the running router from my network by unplugging,&amp;nbsp; and then plugged in the new router and let everything settle down.&amp;nbsp; the AP&#39;s found the new router and were happy as clams in warm shallow water and everything was working perfect after the AP&#39;s found the new router and re pulled their config.&lt;br /&gt;&lt;br /&gt;Now this works because the two routers are basically the same thing just slight port differences and we edited it to remove the ports that dont exist.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This only works for an export.&amp;nbsp; DO NOT try this with a binary backup unless you want a dead 5009.&lt;br /&gt;&lt;br /&gt;Can I use this to migrate from a 30 year old router?&amp;nbsp; no of course not and you should not be that silly to think it would.&amp;nbsp; And yes I had that question from someone when talking on those forums.&lt;br /&gt;&lt;br /&gt;Be aware that both the mikrotik subreddit and their own forums are filled with a lot of people that really dont know what they are doing and they parrot others a lot.&amp;nbsp; There are some great people in both that actually know what they are doing, and you can figure out who they are quickly.&lt;br /&gt;&lt;br /&gt;How did I figure this out?&amp;nbsp; I used my brain and read the specs on both routers,&amp;nbsp; I looked up info on both and asked questions about both.&amp;nbsp; when I had enough to tell me they are basically the same thing with the 5009 being a 4011 with all the bugs fixed and a 2.5gig port.&amp;nbsp; I went for it.&amp;nbsp; worst that would happen using export and import is to blow it out and do all the configurations from scratch.&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/5957019921360405644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2025/01/migrating-config-from-mikrotik-4011-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/5957019921360405644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/5957019921360405644'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2025/01/migrating-config-from-mikrotik-4011-to.html' title='Migrating a config from a Mikrotik 4011 to the newer 5009'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8sFOfsgGWA7RqegO7cZ5elhJKym3pZgYoYomLt9WMnCoR130-j-SGREv3rauoc63V57y_KuCtNk9VMkEuW9pw0SVwmYiIfKiQEVQV96yHiFmb7DEeYNVWNkYe8NlklOWrbPvddzYk-gNiLYn_EATe5KoAuZHh0mnIN3wXfyMwrWAvmxHF5DIG/s72-c/images.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-2795398348839131979</id><published>2024-03-05T13:16:00.001-05:00</published><updated>2024-03-05T13:16:20.629-05:00</updated><title type='text'>Dont bother trying a mini PC as a Steam OS Box</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhI9eVsIro0f9OuV2eaI8CmFl2uRUYEF6DXVrRUbKacXn1juR_iPGc2HzYF0cMGG8HjVybV89BETe4riUbt0WjqqBH1tUZENGHmvwMp1jlkA1VanbrFenacfPklv07Z7oukCOG259dpcivHDzaM-iv5UJ4DhC4hTjHJ7qBVq8plvon8s7d1s4-8&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;832&quot; data-original-width=&quot;1600&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhI9eVsIro0f9OuV2eaI8CmFl2uRUYEF6DXVrRUbKacXn1juR_iPGc2HzYF0cMGG8HjVybV89BETe4riUbt0WjqqBH1tUZENGHmvwMp1jlkA1VanbrFenacfPklv07Z7oukCOG259dpcivHDzaM-iv5UJ4DhC4hTjHJ7qBVq8plvon8s7d1s4-8&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;I&#39;m a huge fan of SteamOS and the Steam Deck.&amp;nbsp; &amp;nbsp;This is just perfect as a portable game system,&amp;nbsp; but I want my games progress to also be on the console in my living room.&amp;nbsp; &amp;nbsp;Yes I know I can buy a dock,&amp;nbsp; but 720p gaming on a 90 inch screen&amp;nbsp; just sucks.&amp;nbsp; &amp;nbsp;I wanted at least 1080p, so I went down the road of the SteamBox and found 2 things.&lt;p&gt;&lt;/p&gt;&lt;p&gt;1 - the only ISO to use is ChimeraOS, https://chimeraos.org/&amp;nbsp; &amp;nbsp;the rest are all dumpster fires of unmaintained or something broken. Nobora and Bazzite both have problems with AMD video card drivers.&amp;nbsp; both did not even try to use the video chipset and were massively worse. HoloISO is dead and buried with even the fork being out of date it also had issues.&amp;nbsp; it would never let my bluetooth xbox controller&amp;nbsp; reconnect automatically.&lt;br /&gt;&lt;br /&gt;Chimera is the only one that gave me a complete clean SteamDeck like experience.&lt;/p&gt;&lt;p&gt;2 - not a single &quot;tiny pc&quot; has enough power to really game on.&lt;/p&gt;&lt;p&gt;You need a half way decent video card,&amp;nbsp; AMD&amp;nbsp; at least a RX580 GTR or higher. and at least a 7th gen i7&amp;nbsp; &amp;nbsp;oh and an SSD helps a lot in load times.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Do not even think any of these mini pc&#39;s or the old NUC8 hades canyon you can game on.&amp;nbsp; &amp;nbsp;you just cant.&amp;nbsp; Their claims that it can do VR are 100% bull crap.&amp;nbsp; &amp;nbsp;I have one,&amp;nbsp; the processor is fine and speedy.&amp;nbsp; It&#39;s the garbage mobile chipset that is causing the problems. Radeon RX Vega M or the Vega 8 or any of them are just hot garbage and that is what every single one of these mini pc&#39;s use for the claimed &quot;video card chipset&quot;&amp;nbsp; &amp;nbsp;even at 1080p on low settings palworld chugs at 7-14fps.&amp;nbsp; processor is happy as a clam as the 4 cores are more than enough but the video chipset is pegged and you can watch the temps soar along with the fans kicking in hard.&amp;nbsp; I decided to be insane and see how Apex Legends ran... It&#39;s not bad, but again 720p and low settings on everything.&amp;nbsp; lag is enough that you are nothing but free kills for other players.&lt;br /&gt;&lt;br /&gt;Even dropping it back down to 720p makes it run crappier than the steam deck.&amp;nbsp; and at that point I might as well plug the steam deck in.&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Moral of the story,&amp;nbsp; you need to build your SteamBox as a PC with an itx board and use a decent AMD gaming video card that is from a gen or two ago.&lt;br /&gt;&lt;br /&gt;I now have a couple of mini PC&#39;s that I guess I can find another use for.&amp;nbsp; &amp;nbsp;So do not waste your money, Do not try and make a steam Box out of these mini pc&#39;s.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/2795398348839131979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2024/03/dont-bother-trying-mini-pc-as-steam-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/2795398348839131979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/2795398348839131979'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2024/03/dont-bother-trying-mini-pc-as-steam-os.html' title='Dont bother trying a mini PC as a Steam OS Box'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhI9eVsIro0f9OuV2eaI8CmFl2uRUYEF6DXVrRUbKacXn1juR_iPGc2HzYF0cMGG8HjVybV89BETe4riUbt0WjqqBH1tUZENGHmvwMp1jlkA1VanbrFenacfPklv07Z7oukCOG259dpcivHDzaM-iv5UJ4DhC4hTjHJ7qBVq8plvon8s7d1s4-8=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-2602575218222607082</id><published>2023-10-17T05:44:00.003-04:00</published><updated>2023-10-17T07:03:11.159-04:00</updated><title type='text'>China Knockoff hifiberry,   pifi digi+ configuration</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEie9A0287STR3EhFTYHYF419YSIYhgmBHrc4kscsUeRER34PK8CJimXJCNi2WxkncD6dquzlEANyge5UQ4Av3n_8CUyMHxjQELCpHGBm8-jrs4WiJcV-K3HztWCWgYWJKoaYVj0Xpzevpw__7QRRMbPAh8kx7lLc_sjpV2kLsLo1-3oXnk7-uFQ&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;435&quot; data-original-width=&quot;473&quot; height=&quot;285&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEie9A0287STR3EhFTYHYF419YSIYhgmBHrc4kscsUeRER34PK8CJimXJCNi2WxkncD6dquzlEANyge5UQ4Av3n_8CUyMHxjQELCpHGBm8-jrs4WiJcV-K3HztWCWgYWJKoaYVj0Xpzevpw__7QRRMbPAh8kx7lLc_sjpV2kLsLo1-3oXnk7-uFQ=w320-h285&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;I got one of these China knockoffs of the hifiberry board called the &quot;pifi&quot;,&amp;nbsp; mostly because I want to dink around with making an MPD server and writing a crestron driver to control MPD in C#.&amp;nbsp; &amp;nbsp;trying to find all the actual details for these is a pain considering they seem to be popular.... so what do you do?&amp;nbsp; I found the following in a random forum and it works perfect.&amp;nbsp; &amp;nbsp;the official hifiberry doesn&#39;t have the IR receiver and that part was a key bit missing.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;Configuration is dead simple: Plug in the board, add 2 lines to the config.txt and reboot. The config varies depending on the kernel version.&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;On&amp;nbsp;&lt;span class=&quot;bbcode-b&quot; style=&quot;font-weight: bold;&quot;&gt;current Debian Jesse&lt;/span&gt;&amp;nbsp;(=Raspbian) it’s:&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;dtoverlay=hifiberry-digi&lt;br /&gt;dtoverlay=lirc-rpi:gpio_in_pin=26&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;On&amp;nbsp;&lt;span class=&quot;bbcode-b&quot; style=&quot;font-weight: bold;&quot;&gt;OSMC&lt;/span&gt;&amp;nbsp;it’s:&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;dtoverlay=hifiberry-digi-overlay&lt;br /&gt;dtoverlay=lirc-rpi:gpio_in_pin=26&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;On&amp;nbsp;&lt;span class=&quot;bbcode-b&quot; style=&quot;font-weight: bold;&quot;&gt;older Debian (Wheezy) and Openelec 6&lt;/span&gt;&amp;nbsp;it’s:&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;dtoverlay=hifiberry-digi&lt;br /&gt;dtoverlay=lirc-rpi,gpio_in_pin=26&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;&lt;span style=&quot;color: black; font-family: Times; font-size: medium;&quot;&gt;Also on a pi. Pulseaudio is your enemy as always...&amp;nbsp; so you will have issues with it and MPD until you issue the following command to just outright remove pulseaudio.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;code style=&quot;background-color: var(--black-075); border-radius: var(--br-sm); border: 0px; box-sizing: inherit; color: #232629; font-family: var(--ff-mono); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-code-fs); font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variant-position: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px; padding: var(--su2) var(--su4); vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;&lt;br /&gt;&lt;/code&gt;&lt;/p&gt;&lt;p style=&quot;background-color: white; color: #222222; font-family: Arial, sans-serif; font-size: 15.008px;&quot;&gt;&lt;code style=&quot;background-color: var(--black-075); border-radius: var(--br-sm); border: 0px; box-sizing: inherit; color: #232629; font-family: var(--ff-mono); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-code-fs); font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variant-position: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px; padding: var(--su2) var(--su4); vertical-align: baseline; white-space-collapse: preserve;&quot;&gt;sudo apt remove pulseaudio&lt;/code&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/2602575218222607082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2023/10/china-knockoff-hifiberry-pifi-digi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/2602575218222607082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/2602575218222607082'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2023/10/china-knockoff-hifiberry-pifi-digi.html' title='China Knockoff hifiberry,   pifi digi+ configuration'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEie9A0287STR3EhFTYHYF419YSIYhgmBHrc4kscsUeRER34PK8CJimXJCNi2WxkncD6dquzlEANyge5UQ4Av3n_8CUyMHxjQELCpHGBm8-jrs4WiJcV-K3HztWCWgYWJKoaYVj0Xpzevpw__7QRRMbPAh8kx7lLc_sjpV2kLsLo1-3oXnk7-uFQ=s72-w320-h285-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-5822781463433177160</id><published>2023-09-04T10:54:00.007-04:00</published><updated>2025-06-16T16:52:15.557-04:00</updated><title type='text'>Digispark atTiny85 and how to get it working in 2025</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh6otMip4U2Inl3Z5WYv_lduxGfumWpgEyw-KVi8a8hBjw8L4uXIqlNSK985zGVzTXA40Gx27HXunsWSFseMYjigKwHY69edOLilMA7B6DU-6uxHUzV7bit5hHECAWNtjtYI95mN0JEOV359sV6RGsNdM-HkWK3U8zM67UVDw4cJFpAvHhHvVLN&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;4032&quot; data-original-width=&quot;3024&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh6otMip4U2Inl3Z5WYv_lduxGfumWpgEyw-KVi8a8hBjw8L4uXIqlNSK985zGVzTXA40Gx27HXunsWSFseMYjigKwHY69edOLilMA7B6DU-6uxHUzV7bit5hHECAWNtjtYI95mN0JEOV359sV6RGsNdM-HkWK3U8zM67UVDw4cJFpAvHhHvVLN=w160-h200&quot; width=&quot;160&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;If you follow 95% of what is online on how to use the digispark,&amp;nbsp; it&#39;s wrong because it is 8 years out of date.&amp;nbsp; &amp;nbsp; The Repo on GitHub has been utterly abandoned and is useless.&lt;br /&gt;&lt;strike&gt;http://digistump.com/package_digistump_index.json&lt;br /&gt;https://github.com/digistump/DigistumpArduino/tree/master&lt;/strike&gt;&lt;div&gt;Nope dead now...&amp;nbsp; Use this instead.&lt;br /&gt;https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json&lt;/div&gt;&lt;div&gt;&lt;br /&gt;You can install it, it has one of the only working digimouse libraries.&lt;br /&gt;&lt;br /&gt;the uploader in it&amp;nbsp; is such a piece of garbage, I was able to get loaded in 10 tries.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;To get it working decently you need two other repos.&lt;br /&gt;&lt;br /&gt;https://github.com/ArminJo/DigistumpArduino. This one has been less abandoned.&amp;nbsp; &amp;nbsp;It&#39;s not been touched in 2 years and has all the same problems in the libraries.&amp;nbsp; but at least you can compile and upload.&lt;br /&gt;&lt;br /&gt;http://drazzy.com/package_drazzy.com_index.json this one is live and works great with actual working micronucleus.&amp;nbsp; but does not have any of the keyboard or mouse libraries that the previous has.&amp;nbsp; which are just garbage buggy old versions of the&amp;nbsp;https://www.obdev.at/products/vusb/index.html library that is a better choice anyways.&lt;br /&gt;&lt;br /&gt;if you want to go with something that is well maintained and very stable&amp;nbsp;https://github.com/SpenceKonde/ATTinyCore&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote style=&quot;border: none; margin: 0px 0px 0px 40px; padding: 0px;&quot;&gt;&lt;p style=&quot;text-align: left;&quot;&gt;So install both. to get these working,&amp;nbsp; &amp;nbsp;this is the sad part of being a maker,&amp;nbsp; &amp;nbsp;if you are not using the latest hotness new toy it becomes dead in short order.&amp;nbsp; and making these old but working things useable can be a nightmare.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;Updated to current info in 2025 as digistump died.&amp;nbsp;&lt;/p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/5822781463433177160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2023/09/digispark-attiny85-and-how-to-get-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/5822781463433177160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/5822781463433177160'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2023/09/digispark-attiny85-and-how-to-get-it.html' title='Digispark atTiny85 and how to get it working in 2025'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEh6otMip4U2Inl3Z5WYv_lduxGfumWpgEyw-KVi8a8hBjw8L4uXIqlNSK985zGVzTXA40Gx27HXunsWSFseMYjigKwHY69edOLilMA7B6DU-6uxHUzV7bit5hHECAWNtjtYI95mN0JEOV359sV6RGsNdM-HkWK3U8zM67UVDw4cJFpAvHhHvVLN=s72-w160-h200-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-341820024852873504</id><published>2023-06-29T09:39:00.004-04:00</published><updated>2023-09-04T10:59:41.173-04:00</updated><title type='text'>Averaging power in Node-Red</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhdbDwiVTowWuuzb1h-D--tx-_J8NbqrNpN9jhPzIIpY-pM73ikgoV0vbpB5WeSE2EgAFshK4rVyp3MmFO5z3Dw-gQE4yAC8LsXkgM4Mb532PO1AEBSw0Vihrqre6cPXp-Tk0kH3uSLnlfJn_govzNqBG3lyqI36OrCAFHGT5ASp1C7sOZ4zL9U&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;680&quot; data-original-width=&quot;982&quot; height=&quot;279&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhdbDwiVTowWuuzb1h-D--tx-_J8NbqrNpN9jhPzIIpY-pM73ikgoV0vbpB5WeSE2EgAFshK4rVyp3MmFO5z3Dw-gQE4yAC8LsXkgM4Mb532PO1AEBSw0Vihrqre6cPXp-Tk0kH3uSLnlfJn_govzNqBG3lyqI36OrCAFHGT5ASp1C7sOZ4zL9U=w402-h279&quot; width=&quot;402&quot; /&gt;&lt;/a&gt;&lt;/div&gt;I spent WAY more time trying to figure out how to average values a little for my solar array in node red than I should have.&amp;nbsp; &amp;nbsp;I blame how utterly shitty documentation is today in open source and programming projects.&amp;nbsp; &amp;nbsp;Note,&amp;nbsp; this is not JUST the fault of OSS...&amp;nbsp; multi billion dollar corporations with multi billion dollar software projects also have the worlds shittiest documentation.&amp;nbsp; &amp;nbsp;I blame CS professors not whipping students and failing them for not doing proper comments and documentation.&amp;nbsp; &amp;nbsp;Hey programmers,&amp;nbsp; you SUCK at what you do if you don&#39;t comment your code and write documentation.&amp;nbsp; Yep called all you out.&amp;nbsp; Come at me Bro!&amp;nbsp; &amp;nbsp; &amp;nbsp; I also blame that many projects as they get older they make all kinds of breaking changes and never update docs,&amp;nbsp; or the only docs that are written by someone like me that got all pissed off at how shitty the docs were, wrote how to do something and its now out of date because the project was modified so much it should have been forked, renamed, and released as something different.&amp;nbsp; But they dont, they call it the same thing.&lt;br /&gt;&lt;br /&gt;I LOVE NODE RED,&amp;nbsp; let&#39;s get that out here.&amp;nbsp; &amp;nbsp;It&#39;s honestly the single best, home automation software on the planet and it makes the other open source ones look like low grade dog food.&amp;nbsp; So dont think this is a bitch-fest hating on node red.&amp;nbsp; &amp;nbsp;It&#39;s not.&amp;nbsp; &amp;nbsp;It&#39;s hating on the lazy devs that dont document things well.&lt;br /&gt;&lt;br /&gt;Ok so what am I up to?&amp;nbsp; &amp;nbsp; my solar array uses&amp;nbsp; power meters that go over MODBUS to an ESP32 that then runs Tasmota to take that data and shovel it at my MQTT broker.&amp;nbsp; &amp;nbsp;then node red I use make that data into something readable.&amp;nbsp; &amp;nbsp; so far so good.&amp;nbsp; &amp;nbsp; &amp;nbsp;problem is it&#39;s all over the place as clouds float by, a bee farts in front of the array, etc...&amp;nbsp; and I want the data smoothed a little.&amp;nbsp; &amp;nbsp;Just a little,&amp;nbsp; like an average of the last 3 reported values.&amp;nbsp; &amp;nbsp; First I need to store them, so trying to figure that crap out was a nightmare of contradiction.&amp;nbsp; every link I went to was completely different process than before. meaning everything did not work.&amp;nbsp; &amp;nbsp;I finally stumbled on the answer.&amp;nbsp; Below I get the last 3 values,&amp;nbsp; rotate them and then slap the new value in and then store it.&amp;nbsp; &amp;nbsp;Then I add them together and divide by 3 to get my moving average.&amp;nbsp; &amp;nbsp; stupid simple except for the how to keep data alive in Node Red functions.&amp;nbsp; Now this all resets if you restart node red.&amp;nbsp; and that is fine.&amp;nbsp; you can write to disk instead but thats only good if you hate your SSD drive.&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;var val1 = context.get(&#39;val1&#39;)||0;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;var val2 = context.get(&#39;val2&#39;)||0;&lt;/p&gt;&lt;p&gt;var val3 = context.get(&#39;val3&#39;)||0;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;val1=val2;&lt;/p&gt;&lt;p&gt;val2=val3;&lt;/p&gt;&lt;p&gt;val3=msg.payload;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;context.set(&#39;val1&#39;,val1);&lt;/p&gt;&lt;p&gt;context.set(&#39;val2&#39;,val2);&lt;/p&gt;&lt;p&gt;context.set(&#39;val3&#39;,val3);&lt;/p&gt;&lt;p&gt;//node.warn(&quot;val1=&quot;+val1+&quot; val2=&quot;+val2+&quot; val3=&quot;+val3);&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;var sum = (val1 + val2 + val3) / 3;&lt;/p&gt;&lt;p&gt;var newMsg = { payload: sum }&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;return newMsg;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/341820024852873504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2023/06/averaging-power-in-node-red.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/341820024852873504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/341820024852873504'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2023/06/averaging-power-in-node-red.html' title='Averaging power in Node-Red'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhdbDwiVTowWuuzb1h-D--tx-_J8NbqrNpN9jhPzIIpY-pM73ikgoV0vbpB5WeSE2EgAFshK4rVyp3MmFO5z3Dw-gQE4yAC8LsXkgM4Mb532PO1AEBSw0Vihrqre6cPXp-Tk0kH3uSLnlfJn_govzNqBG3lyqI36OrCAFHGT5ASp1C7sOZ4zL9U=s72-w402-h279-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-6478451264079045242</id><published>2023-06-14T12:57:00.006-04:00</published><updated>2024-05-13T07:59:42.915-04:00</updated><title type='text'>Real facts about meshtastic and LoRa Boards.</title><content type='html'>&lt;p&gt;&amp;nbsp;Meshtastic is an amazing open source project for a great low data rate RF messaging system.&amp;nbsp; It uses LORA radios for the communication and are low power and &quot;long range&quot;.&amp;nbsp; &amp;nbsp;The project it&#39;s self is Solid and has made HUGE advances in the past year.&amp;nbsp; &amp;nbsp;They have solid phone apps and a great web interface.&lt;br /&gt;&lt;br /&gt;The problem lies with the hardware and boards most people recommend.&amp;nbsp; &amp;nbsp;There is a whole LOT of misinformation around the capabilities of the boards commonly used.&amp;nbsp; &amp;nbsp; TTGO boards are the most popular and unfortunately the absolute worst choice, and sadly nobody calls this out.&amp;nbsp; &amp;nbsp; You see claims of 3+ days of battery life and 100Km range.&amp;nbsp; &amp;nbsp;Both are extreme bullshit or out of context claims.&amp;nbsp; &amp;nbsp; First a T-Beam&amp;nbsp; device from TTGO will NEVER get you more than 8 hours of battery life with a standard 18650 battery.&amp;nbsp; &amp;nbsp;it&#39;s just power hungry hardware, and turning the GPS off only extends battery life a small amount.&amp;nbsp; the only board that is worth buying is the RAK Wireless products based on WizBlock.&amp;nbsp; These do deliver decent battery life and are made MASSIVELY better in nearly every way.&amp;nbsp; &amp;nbsp;So a real world recommendation,&amp;nbsp; do NOT buy TTGO or Haltec boards.&amp;nbsp; they suck and are just toys for playing.&amp;nbsp; &amp;nbsp;if you want working radios that have good battery life.&amp;nbsp; &amp;nbsp;RAK wireless is the only real choice. do not waste your money on the TTGO or Haltec junk.&amp;nbsp; But even the RAK stuff has a lot of misinformation.&amp;nbsp; claims of 1week battery on a tiny battery are all bullshit as well.&amp;nbsp; My tests on RAK boards that do not have anything but the carrier board and the radios + the buzzer add on board.&amp;nbsp; I get 1 week solid out of a 3000mah Lipo battery. (Latest meshtastic as of 5/10/24)&amp;nbsp; &amp;nbsp;so those claiming a week from a tiny 600mah or 1200mah battery are really making up these claims.&amp;nbsp; &amp;nbsp;After tests my meshtastic RAK boards are getting from 7-8 days from that 30000mah battery on a quiet network that really rarely has the bluetooth connected.&amp;nbsp; if you are connected a lot and transmitting a lot expect only about 4-5 days of battery life.&amp;nbsp; This is real world&amp;nbsp; measured multiple times and averaged.&amp;nbsp; The LiliGo boards the longest I ever got was 24 hours from a massive 7500mah battery.&lt;br /&gt;&lt;br /&gt;The second lie is range.&amp;nbsp; you are NOT getting any of the claimed distances in the real world unless your world is flying a balloon in giant open fields.&amp;nbsp; &amp;nbsp;Real world is 2Km MAX and half that in woods/city.&amp;nbsp; People claiming more are intentionally not telling you the truth that they are doing testing on top of poles in open fields.&amp;nbsp; &amp;nbsp;Sadly none of the community tempers these&amp;nbsp; outlandish claims and let them perpetuate.&amp;nbsp; &amp;nbsp;It&#39;s not real, you will NOT get those ranges in real life.&amp;nbsp; &amp;nbsp; &amp;nbsp;expect 1-2 Km MAX range, anyone saying otherwise is misleading you.&amp;nbsp; Just keep in mind real range and plan accordingly.&lt;br /&gt;&lt;br /&gt;But this is where Meshtastic can solve this.&amp;nbsp; you can make &quot;repeaters&quot; or &quot;relays&quot; that are solar powered (Again with RAK Wireless boards) and a rechargeable battery and solar panel that you can spread around the area you want to cover and extend the range with every single node you add.&amp;nbsp; &amp;nbsp; adding only 4 of these nodes in cheap plastic enclosures you can easily make/buy and mount on the tops of buildings, or in trees, etc...&amp;nbsp; you extend the coverage of your setup by that 1-2 Km.&amp;nbsp; keep going and you can with only a few of these cover a decent chunk of your town or your private property,&amp;nbsp; campground, etc...&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;You can create a network of Meshtastic devices and make a very nice emergency communications system, but you need a bunch of radios.&amp;nbsp; you are NOT doing it with 2 or 3 of them, and certainly not going to get the outrageous claims of range you will find all over the forums, because the people making those claims are doing it in unrealistic situations that nobody ever has in the real world.&lt;br /&gt;&lt;br /&gt;Also do not think that commercial products like goTenna have more range.&amp;nbsp; They also lie a LOT about range.&amp;nbsp; I have been unable to get more than 1KM with goTenna radios&amp;nbsp; in real world operation.&amp;nbsp; &amp;nbsp;My set of 4 were returned for a refund after a single weekend of using them at a state park.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;One last thing,&amp;nbsp; &amp;nbsp;the antennas that come with any of these boards are utter crap. RAK antennas sold separately do work but are pricey.&amp;nbsp; Be very careful buying antennas from amazon as nearly all the sellers are selling junk that are not even tuned for the LORA bands.&amp;nbsp; &amp;nbsp;the Meshtastic Discord has a great antenna thread with known working and tested antenna listings.&lt;br /&gt;&lt;br /&gt;Update: Heltec has a board people are claiming is a lot better with power.&amp;nbsp; &amp;nbsp;The Wireless stick lite.&amp;nbsp; I am testing two of these to see if they actually have fixed their power hungry problems (I doubt it as they are still ESP32) but will report back here after testing a couple for a few weeks.&amp;nbsp; &amp;nbsp; After testing them I am getting a solid 26 hours on a 3000mah lipo battery.&amp;nbsp; This is significantly better than any T-Beam board.&amp;nbsp; No display and no GPS.&amp;nbsp; both you really never need as the phone you have to use with it has both of those.&amp;nbsp; Remember you only ever Need a GPS on board if you are attaching the device to a Dog/Horse/Vehicle that you want to track.&amp;nbsp; All personal devices can just use the GPS data the phones already have.&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/6478451264079045242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2023/06/real-facts-about-meshtastic-and-lora.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6478451264079045242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6478451264079045242'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2023/06/real-facts-about-meshtastic-and-lora.html' title='Real facts about meshtastic and LoRa Boards.'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-6043007147001348936</id><published>2023-05-15T08:25:00.000-04:00</published><updated>2023-05-15T08:25:01.063-04:00</updated><title type='text'>NanoFramework on China Knockoff ESp32-WROOM boards  AKA the Teyleten Robot ESP32S ESP32 ESP-WROOM-32 Development Board</title><content type='html'>&lt;p&gt;&amp;nbsp;there is a knockoff of a knockoff&amp;nbsp; ESP-32-WROOM-32 DevKit board out there that is&amp;nbsp; selling at 1/3rd the price of the real ones,&amp;nbsp; but info on it is near impossible to find.&amp;nbsp; &amp;nbsp;It is sold under several names but I found mine on amazon under the Teyleton Robot brand.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgibhUFPYirKYgBIHnuimXn_DmsDNGDHiJQOMPEjTP7w2vboHX-sSjISp9CwQYHZpKnhv9mJ45m10Tn1VuAEHNV4nXX6Gbob8r1H9uLPc-AHliMBsyh9DalBDmsvmjN5hwXGxV1utun6YOZXRxPJk1ejgn3A9MasCI5eZahgFn7LfNCW_cHOw&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;967&quot; data-original-width=&quot;2292&quot; height=&quot;135&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgibhUFPYirKYgBIHnuimXn_DmsDNGDHiJQOMPEjTP7w2vboHX-sSjISp9CwQYHZpKnhv9mJ45m10Tn1VuAEHNV4nXX6Gbob8r1H9uLPc-AHliMBsyh9DalBDmsvmjN5hwXGxV1utun6YOZXRxPJk1ejgn3A9MasCI5eZahgFn7LfNCW_cHOw&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;It has a blue led on the board at GPIO2 you can use to blink or for status, and it seems to be lacking some ram.&amp;nbsp; &amp;nbsp;the laser etching on the can does not look like any of my other real ESP32-WROOM-32 and it seems to be lacking in storage.Only about 320K&amp;nbsp; and some of the pins only work in input mode and not output.&amp;nbsp; Further pointing at these are knockoffs not on just the board but also the chip.&lt;br /&gt;&lt;br /&gt;But They do work.&amp;nbsp; &amp;nbsp;the bluetooth works, the wifi works,&amp;nbsp; &amp;nbsp;I have tried both standard c++ code as well as nanoframework and C#&amp;nbsp; and they work just fine.&amp;nbsp; &amp;nbsp; It&#39;s a good cheap option for simpler projects.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/6043007147001348936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2023/05/nanoframework-on-china-knockoff-esp32.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6043007147001348936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6043007147001348936'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2023/05/nanoframework-on-china-knockoff-esp32.html' title='NanoFramework on China Knockoff ESp32-WROOM boards  AKA the Teyleten Robot ESP32S ESP32 ESP-WROOM-32 Development Board'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgibhUFPYirKYgBIHnuimXn_DmsDNGDHiJQOMPEjTP7w2vboHX-sSjISp9CwQYHZpKnhv9mJ45m10Tn1VuAEHNV4nXX6Gbob8r1H9uLPc-AHliMBsyh9DalBDmsvmjN5hwXGxV1utun6YOZXRxPJk1ejgn3A9MasCI5eZahgFn7LfNCW_cHOw=s72-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-4040412952750934869</id><published>2023-01-03T12:47:00.005-05:00</published><updated>2023-01-03T12:59:10.891-05:00</updated><title type='text'>What none of the 3d printing you-tubers tell you.</title><content type='html'>&lt;p&gt;&amp;nbsp;Ive been in the world of 3d printing for a while now.&amp;nbsp; I started with a tiny little toy printer and recently build from scratch a Voron 2.4.&amp;nbsp; I have modded several ender&#39;s into way more capable printers than they ever were out of the box.&amp;nbsp; But one thing I have not really done is print in ABS, ASA, or any of the high temp finicky filaments.&amp;nbsp; &amp;nbsp;Most of the time it was PLA, PETG if I wanted to be fancy, and some of the flexible stuff for silly projects.&lt;/p&gt;&lt;p&gt;There is one thing I learned that I never EVER hear from youtubers is that the filament matters.&amp;nbsp; &amp;nbsp;I see so many people frustrated with 3d printing and I ask,&amp;nbsp; &quot;what filament do you use?&quot; and I get screamed down in forums that it doesnt matter,&amp;nbsp; &amp;nbsp;the cheap stuff is as good as the expensive stuff, etc...&amp;nbsp; &amp;nbsp; And those people are all very wrong and are causing people to suffer.&amp;nbsp; &amp;nbsp;Filaments like PLA it doesnt make a huge difference but print quality will change significantly for the better in the higher quality stuff.&amp;nbsp; I&#39;m personally a fan of 3dFuel Pro PLA.&amp;nbsp; &amp;nbsp;But where is really REALLY matters is when you step up to ABS, ASA and beyond.&amp;nbsp; &amp;nbsp; &amp;nbsp;Cheap ABS is a nightmare even on a perfectly dialed in printer.&amp;nbsp; you hear the comments like &quot;well you need to use slurry&quot;,&amp;nbsp; or a hundred of other stupid ideas that are only bandaids to fix a problem that your filament is junk and you should throw it away.&lt;br /&gt;&lt;br /&gt;The past few years a LOT of good filament formulas have came out and in the world of ABS there is ABS pro ABS+&amp;nbsp; etc...&amp;nbsp; that is a night and day difference.&amp;nbsp; &amp;nbsp;FlashForge ABS Pro is massively better to print in than any cheap traditional ABS.&amp;nbsp; adhesion is rock solid,&amp;nbsp; it doesnt warp like a lunatic. And yes I am printing on a 110C bed with a heated enclosure.&amp;nbsp; &amp;nbsp;Cheap ABS just sucks and you should never EVER try to make it work with all these workarounds to save you nothing in money and spend your time.&lt;br /&gt;&lt;br /&gt;I have never EVER had to use a gluestick, slurry, or any of these workarounds to compensate for good filament on any of my printers.&amp;nbsp; &amp;nbsp; and Yes I have printed on every possible surface.&amp;nbsp; Steel, Glass, Mirrors (Claims that all mirrors are perfectly flat out there on reddit is so dumb) every possible surface made and sold for printer beds...... what do I use now?&amp;nbsp; Textured PEI on spring steel,&amp;nbsp; nothing else comes close to it.&amp;nbsp; &amp;nbsp;Except when printing the Flexible filaments, then I coat it in Blue tape as that stuff wants to become one with the PEI and will never come off.&lt;br /&gt;&lt;br /&gt;So the TLDR:&amp;nbsp; Your filament sucks,&amp;nbsp; buy the better stuff and stop listening to youtubers that profit off of you coming back to watch more videos because their last tip did not work.&lt;br /&gt;&lt;br /&gt;Note:&amp;nbsp; I can print in ABS (barely) on the ender3 I have&amp;nbsp; not in an enclosure with the flashforge abs pro filament.&amp;nbsp; &amp;nbsp;Ender 3 heated bed can barely reach 95C is so weak.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/4040412952750934869/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2023/01/what-none-of-3d-printing-yourtubers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/4040412952750934869'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/4040412952750934869'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2023/01/what-none-of-3d-printing-yourtubers.html' title='What none of the 3d printing you-tubers tell you.'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-3897983214912697402</id><published>2022-11-08T13:22:00.005-05:00</published><updated>2022-12-01T07:40:12.855-05:00</updated><title type='text'>Ninja Creami Low Carb tips.</title><content type='html'>&lt;p&gt;&amp;nbsp;This device is really cool.&amp;nbsp; it&#39;s basically a concrete grinder for your countertop to grind down a hard frozen&amp;nbsp; pint of something.&amp;nbsp; &amp;nbsp; It makes a can of fruit intoa sorbet.&amp;nbsp; It really is neat.&amp;nbsp; &amp;nbsp;It&#39;s also a darling of the low carb croud as you can make keto ice cream cheaply...&amp;nbsp; well you are supposed to be able to,&amp;nbsp; nearly every recipie I find people try to make it expensive with exotic ingredients.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This thing is not that picky or difficult.&amp;nbsp; &amp;nbsp;I do not know why I need protein powder,&amp;nbsp; Xanthan gum, Guar gum,&amp;nbsp; Beaver lips, or the heart of a oompa loompa for these recipes.&amp;nbsp; &amp;nbsp;It seems as if all these people are trying to over complicate things.&amp;nbsp; So I am here to debunk all of the bloggers out there.&amp;nbsp; &amp;nbsp;you dont need their ingredients.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Heavy whipping cream.&amp;nbsp; &amp;nbsp;This is perfect as it&#39;s a creamy good ness and extremely low sugar and carbs.&lt;/p&gt;&lt;p&gt;unsweet almond milk.&amp;nbsp; Another good lower carb liquid that is not water.&lt;/p&gt;&lt;p&gt;sugar free pudding mixes.&amp;nbsp; &amp;nbsp;not super low in carbs but you dont need much.&amp;nbsp; This is for thickening. If you are making sorbets you can use sugar free jello for thickening.&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;I have used cream cheese as a thickener as well.&lt;/p&gt;&lt;p&gt;Allulose sweetener.&amp;nbsp; &amp;nbsp;This is the only Exotic one as it acts like suger as an antifreeze lowering the freezing temperature of the ice cream.&amp;nbsp; &amp;nbsp; This is the one you want,&amp;nbsp; NOTE:&amp;nbsp; use less than you think it&#39;s not as sweet when you mix it but the sweet kicks it up after it sat for a while.&amp;nbsp; If you use too much it will be a shake after spinning.&amp;nbsp; &amp;nbsp;Thats ok if you do,&amp;nbsp; Spin it,&amp;nbsp; then use it&amp;nbsp; as a base to split between two mixes, topping off with cream and more flavor.&lt;/p&gt;&lt;p&gt;Flavors or berries.&amp;nbsp; &amp;nbsp;unless you like unflavored frozen cream, you needs this stuff.&amp;nbsp; Instant coffee powder works fantastic to make coffee ice cream.&amp;nbsp; Torani syrups can be used if you skip the splenda as it&#39;s usually sweetened.&amp;nbsp; a Tablespoon of&amp;nbsp; baking cocoa makes chocolate ice cream.&lt;br /&gt;&lt;br /&gt;Mixing&amp;nbsp; cream to almond milk 50/50 works great. you can use 100% cream if you want, it has a strange mouth feel though.&lt;/p&gt;&lt;p&gt;I am a fan of frozen fruit and berries.&amp;nbsp; &amp;nbsp;berries are the most keto. put in a serving and top with the cream and a TSP of the pudding mix. add a tablespoon of splenda. add sugar free flavoring.&amp;nbsp; blend this well&amp;nbsp; &amp;nbsp;I use a drink blender that I can clean easily.&amp;nbsp; then stop blending and taste.&amp;nbsp; does it have STRONG flavor and sweetness?&amp;nbsp; then you are perfect for freezing.&lt;br /&gt;&lt;br /&gt;That is it.&amp;nbsp; you do not need ANY exotic ingredients these people try and act like you need.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/3897983214912697402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2022/11/ninja-creami-low-carb-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3897983214912697402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3897983214912697402'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2022/11/ninja-creami-low-carb-tips.html' title='Ninja Creami Low Carb tips.'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-3974016774555711224</id><published>2022-10-28T13:56:00.004-04:00</published><updated>2026-07-19T21:00:51.536-04:00</updated><title type='text'>Real advice for fitness as you age.  A rant of a old fat guy that is sick of the scam that is the fitness industry.</title><content type='html'>&lt;p&gt;&amp;nbsp;So I have been looking at things to get fit,&amp;nbsp; what do I buy,&amp;nbsp; what books should I read, etc...&amp;nbsp; and I realized.&amp;nbsp; &amp;nbsp;100% of that stuff is all bullshit.&amp;nbsp; &amp;nbsp;What do you need to do to get fit?&amp;nbsp; &amp;nbsp;exercise and eat better,&amp;nbsp; duh.&amp;nbsp; &amp;nbsp; no $1500 bike will get you fit.&amp;nbsp; &amp;nbsp;no $4500 home gym will get you fit,&amp;nbsp; &amp;nbsp;no number of books on the subject will get you fit.&lt;/p&gt;&lt;p&gt;What will?&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Getting off your ass and doing it will.&amp;nbsp; And as you get older it&#39;s more important.&amp;nbsp; &amp;nbsp;in fact that is what just pissed me off is that in high school gym class why don&#39;t they tell you &quot;you will get fat and lazy as you age, get off your ass and move EVERY DAY,&amp;nbsp; pick things up&amp;nbsp; spend 15 minutes daily doing things and stop eating crap.&quot;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;That&#39;s it.&amp;nbsp; I just summed up what&amp;nbsp; 10,000 fitness books will tell you and saved you thousands.&amp;nbsp; &amp;nbsp;Get off your ass.&amp;nbsp; Go walk what you can twice a day.&amp;nbsp; one in the morning one at night. add a third for lunch if you can find the time at work.&amp;nbsp; &amp;nbsp;Cant make a 1/2 mile?&amp;nbsp; fine do what you can and reassess if you can go farther every weekend.&amp;nbsp; &amp;nbsp;Saturday morning is when you try and walk further.&amp;nbsp; &amp;nbsp; get up to a mile,&amp;nbsp; get up to 2 miles.&amp;nbsp; when you start hitting a time limit, &quot;Crap Tim I gotta get ready for work I cant walk 5 miles in the morning!&quot;&amp;nbsp; &amp;nbsp;then you start jogging/running/speed walking.&amp;nbsp; &amp;nbsp;up the effort for the shorter distances and time limit.&amp;nbsp; what is important is you get off your ass daily no matter how you feel.&amp;nbsp; &amp;nbsp;Ignore the BS of &quot;well you should do it every other day..... bla bla... You and I are not weight training&amp;nbsp; to your physical limits and needing a day for the rips in your muscles to heal...&amp;nbsp; That is who that is for.&amp;nbsp; &amp;nbsp;You are a lazy blob like I am, walk twice daily and do more when you can.&lt;/p&gt;&lt;p&gt;Also do sit-ups.&amp;nbsp; stupid old sit-ups on a cheap bench. as an old fart getting on the floor sucks,&amp;nbsp; &amp;nbsp;a bench works great.&amp;nbsp; &amp;nbsp;also get a cheap set of&amp;nbsp; weights and lift a little daily.&amp;nbsp; &amp;nbsp;Being the lazy blob you only do 12oz beer curls,&amp;nbsp; get about 40-50 pounds and start lifting.&amp;nbsp; work up to that&amp;nbsp; if you cant start there.&amp;nbsp; you need to lift things daily&amp;nbsp; but not stupid levels of weight.&amp;nbsp; &amp;nbsp;no you don&#39;t need to be deadlifting 200 pounds.&amp;nbsp; &amp;nbsp;50 pounds 20 reps get it done every morning&amp;nbsp; &amp;nbsp;I bought cheap crap weights.&amp;nbsp; you can do it with milk jugs full of sand.&amp;nbsp; just do it.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;that is it.&amp;nbsp; 30 minutes every morning walking and doing a tiny bit of exercise and 15 minutes at night walking.&amp;nbsp; &amp;nbsp;no you don&#39;t have to run marathons,&amp;nbsp; you don&#39;t have to have a 6 pack you will actually never get.&amp;nbsp; you don&#39;t have to kill yourself.&amp;nbsp; no yoga unless you want to.&lt;br /&gt;&lt;br /&gt;the secret is simple.&amp;nbsp; get off your ass, stop eating doughnuts and other junk, and put in a little effort.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Yes only a little effort is enough to improve your health a LOT.&lt;br /&gt;&lt;br /&gt;Update, Add 5mg daily of Creatine to your diet.&amp;nbsp; As an old fart it brought me back to gains I saw when I was in my 40&#39;s and exercising.&amp;nbsp; as someone pushing 60, we need all the advantages we can get.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/3974016774555711224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2022/10/real-advice-for-fitness-as-you-age-rant.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3974016774555711224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3974016774555711224'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2022/10/real-advice-for-fitness-as-you-age-rant.html' title='Real advice for fitness as you age.  A rant of a old fat guy that is sick of the scam that is the fitness industry.'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-7712117627729487756</id><published>2022-09-26T10:29:00.004-04:00</published><updated>2022-09-26T10:29:39.758-04:00</updated><title type='text'>ONVIF cameras with OBS</title><content type='html'>&lt;p&gt;&amp;nbsp;Quick Tip:&amp;nbsp; &amp;nbsp;Everything I found out there for using ONVIF cameras with OBS is 100% wrong.&amp;nbsp; none of it worked.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;What did work is&amp;nbsp; the VLC as a video source.&amp;nbsp; &amp;nbsp; add the VLC video source (need the right version of VLC installed)&amp;nbsp; &amp;nbsp;and add the URL as a part of the &quot;playlist&quot; as the firest and only item.&amp;nbsp; &amp;nbsp;works 100% of the time every time.&lt;br /&gt;&lt;br /&gt;They need to remove all the OBS forum posts that are outdated bad information as it only leads to frustration.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/7712117627729487756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2022/09/onvif-cameras-with-obs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/7712117627729487756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/7712117627729487756'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2022/09/onvif-cameras-with-obs.html' title='ONVIF cameras with OBS'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-3174354955976901819</id><published>2022-08-09T08:45:00.004-04:00</published><updated>2022-08-09T08:45:21.303-04:00</updated><title type='text'>Updating the BigTree TFT35 E3 V3 LCD for the Creality printers</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhuq6bhmyxfM7lhD31qDUjpA0_J7jndzDty3SIN9-Yrcy1vQt44csgxIWw5gVsHcgmHkuXYfQsRtn_l3OxgURsesxw1kafQwEDXp20fOcXXY6iiz3d1O3P5j8Pj3PXLCQS6cUYMSat2_TUYB3ZuhYIP1EMDFBsrP_ETGkRQFNupJ9ziixCc8g&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;501&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhuq6bhmyxfM7lhD31qDUjpA0_J7jndzDty3SIN9-Yrcy1vQt44csgxIWw5gVsHcgmHkuXYfQsRtn_l3OxgURsesxw1kafQwEDXp20fOcXXY6iiz3d1O3P5j8Pj3PXLCQS6cUYMSat2_TUYB3ZuhYIP1EMDFBsrP_ETGkRQFNupJ9ziixCc8g=w282-h501&quot; width=&quot;282&quot; /&gt;&lt;/a&gt;&lt;/div&gt;I decided it&#39;s time to upgrade my printer and went with the Bigger name of main board and their fancy touch controller screen.&amp;nbsp; &amp;nbsp;All was well until it is time to update it.&amp;nbsp; &amp;nbsp; &amp;nbsp;It went to a &quot;Illegal user App!&quot; message and nothing at all could recover it.&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Well I figured out why,&amp;nbsp; BigTree&amp;nbsp; has poor to non existent documentation and using their firmware for what you THINK is the touchscreen is not the right firmware.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The photo below is the back of my board.&amp;nbsp; &amp;nbsp;look at the first 2 letters of the processor.&amp;nbsp; see that GD as the first two letters of the processor number?&amp;nbsp; &amp;nbsp;You need to look for that in the firmware repository.&lt;br /&gt;&lt;br /&gt;I used the BIGTREE_GD-TFT35_E3.27.x.bin, added the config.ini, and the TFT32 folder of the graphics and uploaded.&lt;br /&gt;&lt;br /&gt;After hitting reset a few times as their bootloader is buggy it finally started to load the new firmware update and fix my board.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEioVKAhAfyfo2X5h3pqHdDckb5LyNa0dP3bErbD0XKTq09ZasJP6O0fEKiNFL_bwC2auIbyjxsvqJ85rRHl6aKp9akWHsI9ysubp9B288afqicGJICTFCx-0DgOS0ABjY6rh-uzfoS5jl6xQEDjKl9QwDPO2y9ytZeGkWXfuQ5zmkRcbWeA3Q&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEioVKAhAfyfo2X5h3pqHdDckb5LyNa0dP3bErbD0XKTq09ZasJP6O0fEKiNFL_bwC2auIbyjxsvqJ85rRHl6aKp9akWHsI9ysubp9B288afqicGJICTFCx-0DgOS0ABjY6rh-uzfoS5jl6xQEDjKl9QwDPO2y9ytZeGkWXfuQ5zmkRcbWeA3Q=w360-h640&quot; width=&quot;360&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;p&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/3174354955976901819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2022/08/updating-bigtree-tft35-e3-v3-lcd-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3174354955976901819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/3174354955976901819'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2022/08/updating-bigtree-tft35-e3-v3-lcd-for.html' title='Updating the BigTree TFT35 E3 V3 LCD for the Creality printers'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhuq6bhmyxfM7lhD31qDUjpA0_J7jndzDty3SIN9-Yrcy1vQt44csgxIWw5gVsHcgmHkuXYfQsRtn_l3OxgURsesxw1kafQwEDXp20fOcXXY6iiz3d1O3P5j8Pj3PXLCQS6cUYMSat2_TUYB3ZuhYIP1EMDFBsrP_ETGkRQFNupJ9ziixCc8g=s72-w282-h501-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-8348378178630672498</id><published>2022-08-02T09:47:00.004-04:00</published><updated>2022-08-02T09:47:44.351-04:00</updated><title type='text'>Linux on a Getac B300 Tip to fix it turning its self back on.</title><content type='html'>&lt;p&gt;&amp;nbsp;I love rugged laptops and I have a couple of Getac B300&#39;s for ham radio and DIY drone stuff that are rain resistant and sunlight readable.... you know for outdoorsy stuff.&amp;nbsp; But there is a massively annoying thing they do when running Linux.&amp;nbsp; &amp;nbsp;They turn themselves back on after having&amp;nbsp; linux do a shutdown.&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;I found out why,&amp;nbsp; the Intel chipset they use have a hardware issue.&amp;nbsp; DH77 based motherboards flip out on power off if the USB ports are set to xHCI on shutdown.&amp;nbsp; &amp;nbsp; Windows by default switches all usb poarts to EHCI so this is why it doesnt happen with windows.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;to fix it,&amp;nbsp; go into /etc/default/grub. and add xhci_hcd.quirks=270366 into the GRUB_CMDLINE_LINUX_DEFAULT variable.&lt;/p&gt;&lt;p&gt;Then issue a sudo update-grub.&amp;nbsp; &amp;nbsp;reboot.&amp;nbsp; then shut down to test.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;It will make your shutdown a LOT slower,&amp;nbsp; I had to wait an extra 200ms on shutdown with that setting.&amp;nbsp; &amp;nbsp;I used that time for meditation and writing my autobiography.&lt;br /&gt;&lt;br /&gt;Note this will work on a lot of other laptops and montherboards infected with the Intel H77 express chipset.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/8348378178630672498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2022/08/linux-on-getac-b300-tip-to-fix-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/8348378178630672498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/8348378178630672498'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2022/08/linux-on-getac-b300-tip-to-fix-it.html' title='Linux on a Getac B300 Tip to fix it turning its self back on.'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-6440916601773091083</id><published>2022-07-22T15:47:00.003-04:00</published><updated>2022-07-22T15:48:28.759-04:00</updated><title type='text'>Quick tip if you are unlucky and have a motherboard with intel I225-V networking</title><content type='html'>&lt;p&gt;&amp;nbsp;Intel&#39;s engineers were idiots on this chipset.&amp;nbsp; it doesnt work well in any way on normal networking gear.&amp;nbsp; &amp;nbsp;to fix this&amp;nbsp;go to the your adapter driver settings, disable power saving features and green ethernet, manually set speed and duplex instead of auto negotiation intel claims 2.5gb negotiation with certain routers can cause this problem so might want to set to 1gb to see if it works first.&amp;nbsp; &amp;nbsp;It&#39;s because intel does 2.5gb negotiation wrong and they refuse to fix it.&lt;br /&gt;&lt;br /&gt;The above will fix your network on your motherboard.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/6440916601773091083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2022/07/quick-tip-if-you-are-unlucky-and-have.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6440916601773091083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/6440916601773091083'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2022/07/quick-tip-if-you-are-unlucky-and-have.html' title='Quick tip if you are unlucky and have a motherboard with intel I225-V networking'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6954656.post-9081846293366042247</id><published>2021-12-18T15:41:00.013-05:00</published><updated>2023-09-04T11:09:44.275-04:00</updated><title type='text'>Hacking the Atomi Smart Wifi Color String lights.</title><content type='html'>&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkUfukR-YViKMSxHq8seVlXMn69ZuAQZSGy3BPdjh0eOhsd6jaRA47_cg4x3PBX_j9BXGAaPMbFM07C__P1kx1gdl0JoJl8lP_71QPJd-IydYCEf7e4X5W8PO0GSWUzq70W12J/&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkUfukR-YViKMSxHq8seVlXMn69ZuAQZSGy3BPdjh0eOhsd6jaRA47_cg4x3PBX_j9BXGAaPMbFM07C__P1kx1gdl0JoJl8lP_71QPJd-IydYCEf7e4X5W8PO0GSWUzq70W12J/&quot; width=&quot;135&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;My local costco was selling a string of lights that were &quot;commercial grade&quot; and &quot;waterproof&quot; and looked to be addressable RGBW. it used a Wi-Fi connection so I risked it and bought 2 sets. Anything that uses Wi-Fi probably has an ESP8266 or ESP32 variant in it (I was hoping for the latter) but after cracking it open, it has a china knockoff variant instead. (Kind of funny that a china knock off of a china knockoff the TYWE3S. It&#39;s a 2meg flash and almost correct pin out of a ESP-12 so this will work for us.&amp;nbsp; &amp;nbsp;We are going to use Pin2 of this as out output and it&#39;s freely available and conveniently located.&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So lets get inside it to access the delicious center.&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoye2-FRRZCC564GvI6NpeW8_j4NiB8OWD2lg1ZVwZfQZ2GOoWmeiLvbEcPyOdu7cBzUHABsG8giBAvUhTJCKY7RcGvVRFAkJXNPMkE3G-pMRdA8FOdjz3QSqtcmSio1h5zBhi/&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoye2-FRRZCC564GvI6NpeW8_j4NiB8OWD2lg1ZVwZfQZ2GOoWmeiLvbEcPyOdu7cBzUHABsG8giBAvUhTJCKY7RcGvVRFAkJXNPMkE3G-pMRdA8FOdjz3QSqtcmSio1h5zBhi/&quot; width=&quot;135&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I decided to use a very&amp;nbsp; high tech and surgical process to get inside this sealed waterproof case.&amp;nbsp; &amp;nbsp; Over the past year I have watched the videos of people trying to hack these and all of them do it the hard way.&amp;nbsp; &amp;nbsp; Nothing beats a welded plastic seam like a 2.5 pound sledge.&amp;nbsp; So I sat down, calculated the weight, local gravity strength,&amp;nbsp; average temperature in kelvin and the hardness of the bench and then grabbed the hammer and whacked it.&lt;br /&gt;This worked better than I expected....&amp;nbsp; to be fair I already hacked one of these before writing this.&amp;nbsp; &amp;nbsp;This is my second set.&amp;nbsp; The first time I tried to get info from a YouTube video and while entertaining, the video creator gave everyone zero information.&amp;nbsp; &amp;nbsp;his was also butchered pretty badly to get inside.&amp;nbsp; &amp;nbsp;You could use a dremel and carve off the side seams. That is what I did the first time..... The hammer worked better and was way more satisfying.&amp;nbsp; &amp;nbsp;It was not cold when I did this,&amp;nbsp; room temperature was about 80F.&amp;nbsp; and no I did not whack it hard.&amp;nbsp; I started with some lighter love taps and hit it progressively harder until I saw a gap form.&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkBS6a1Lb3sBwOa9jFXWAVcnJ9GTb_lOF8II8RlYsgk-DTNhLA-wNo8GkLMcN7nCIr_Yww8Rz2BfULa-htxjhBz1VDUqeFgLMqf22NRkmpJPuV_LaWRivy2N6NFqtmTAK989zd/&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkBS6a1Lb3sBwOa9jFXWAVcnJ9GTb_lOF8II8RlYsgk-DTNhLA-wNo8GkLMcN7nCIr_Yww8Rz2BfULa-htxjhBz1VDUqeFgLMqf22NRkmpJPuV_LaWRivy2N6NFqtmTAK989zd/&quot; width=&quot;135&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Once the crack formed I tapped a few more times and then used a flat blade screwdriver CAREFULLY to pry it the rest of the way apart. Don&#39;t go shoving a screwdriver inside and whacking it around,&amp;nbsp; there is a circuit board right there so take your time and be careful. The AC cord on mine got stuck to the bottom half, so I had to carefully pry it free from that and reattach it to the top half. (Top half has the button).&amp;nbsp; if you go ripping on it like a caveman you will break something.&amp;nbsp; &amp;nbsp;The board is screwed to the top half with 3 screws as you can see in the next photos.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQIU5LfLPmlSZOZUYOHShlcZKl6hEKr6XUAS2HkQXUQFmMh2YPIZu3yBQx9j5gXau9yDLt-BAQLbzO8TzPfpxtmSJm5iSVPOsnuFSA5n1_QbedlRWIPeg2i05HPND5slzByEDf/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;665&quot; data-original-width=&quot;1182&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQIU5LfLPmlSZOZUYOHShlcZKl6hEKr6XUAS2HkQXUQFmMh2YPIZu3yBQx9j5gXau9yDLt-BAQLbzO8TzPfpxtmSJm5iSVPOsnuFSA5n1_QbedlRWIPeg2i05HPND5slzByEDf/w640-h360/FD16DF27-1B02-4A73-8BDC-3C3CDE295B87_1_105_c.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoCgQusRcaohdu1twk3rw5nIjws-qWvSrEvm2ckPprxIVeCA7PAALDujQPhjsHWIlP780Qr1zqbAS5vI4JC4ky6BPKIlPuZFi1bnCS1M4X-SC5eBymjbf1XytEjgs0uIkS9XVZ/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;665&quot; data-original-width=&quot;1182&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoCgQusRcaohdu1twk3rw5nIjws-qWvSrEvm2ckPprxIVeCA7PAALDujQPhjsHWIlP780Qr1zqbAS5vI4JC4ky6BPKIlPuZFi1bnCS1M4X-SC5eBymjbf1XytEjgs0uIkS9XVZ/w640-h360/3673752A-AD07-4633-9E8B-C8F135AEB4E1_1_105_c.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Insides showing the TYWE3S, the wires and pads we will use as well as the 8 pin chip we are going to rip off the board.&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwXJnjIoW2xc21H4XAu69KIBFEx4LnhDMeotMFa00IWIMmAMHuglkaVIhNHjBUEK6u5Qwt3gbbeojcakXHpI7QmaAA9OrKBq3cHuD7FgwIb280s9OtQGjVB-Bplela0wfGGjCJ/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;665&quot; data-original-width=&quot;1182&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwXJnjIoW2xc21H4XAu69KIBFEx4LnhDMeotMFa00IWIMmAMHuglkaVIhNHjBUEK6u5Qwt3gbbeojcakXHpI7QmaAA9OrKBq3cHuD7FgwIb280s9OtQGjVB-Bplela0wfGGjCJ/w640-h360/44C6EE6B-EFC0-4994-9973-E51FF7865980_1_105_c.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;I got tired of holding a jumper wire on ground and the gpio0. so I soldered a wire up to the switch.&amp;nbsp; Left side is already at ground,&amp;nbsp; right top side is unused, so it&#39;s perfect for a press to go into programming mode.&amp;nbsp; Note you only have 2meg storage in these... pick the right version of WLED....&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;Once inside, we can start assessing what is going on here. AC voltage power supply to make 5Volts at about 2 amps and a separate 3.3v power supply for the ESP clone.&amp;nbsp; the 4 pads at the top edge to the right of the ESP&amp;nbsp; is the programming header. 3.3v/TX/RX/Gnd left to right.&amp;nbsp; &amp;nbsp; Between R27 and R26 is a pin 3rd from the bottom on the ESP on the RH side.... this is Gpio2 and what we will be using for communication.&amp;nbsp; &amp;nbsp; There is another chip under the wires at the bottom.&amp;nbsp; &amp;nbsp;This is a co-processor that does all that talking to the LED&#39;s. this thing is going to interfere with us.&amp;nbsp; BUT U3, the 8 pin chip directly to the right of the green wire pad and above the white (yes the photo looks light blue) wire. is the chip used in all these LED&#39;s. if we remove that, the Co-Processor can not talk to the LED string and that is what we want.&amp;nbsp; &amp;nbsp;Removal of that little chip also removes a &quot;phantom&quot; LED from the string that does nothing.&amp;nbsp; &amp;nbsp;I think the engineers were using it as a buffer for the serial data, we will not need that.&lt;br /&gt;&lt;br /&gt;During programming I ran into some issues.&amp;nbsp; It kept acting like it was programming but failed.&amp;nbsp; you will notice that the LED string lights up and does the dance mode when you plug in your programmer.&amp;nbsp; so you have 2 choices.&amp;nbsp; &amp;nbsp; unsolder the 5V to the string, &lt;strike&gt;or do what I did,&amp;nbsp; &amp;nbsp;plug in and get into program mode, then plug int he power for the whole string.&amp;nbsp; &amp;nbsp; yes you will be back feeding 3.3v into your usb programmer.&amp;nbsp; Yes this is probably sketchy and dangerous.&amp;nbsp; &amp;nbsp;Use a laptop that is not plugged into mains power. It worked on my USB programmer.... it might blow up yours or make your laptop explode killing your whole family.... or burn out the USB port.&amp;nbsp; &amp;nbsp;if you try and program it while it&#39;s live.... your fault for doing something so stupid.&amp;nbsp; &lt;/strike&gt;&amp;nbsp; Unsolder the red wire to the string,&amp;nbsp; &amp;nbsp;honestly this only needs&amp;nbsp; to be done once.&amp;nbsp; I did blow up a USB TTL rs232 adapter with the power the string method.... bad bad idea.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI7aDpoXlMS337w3aBUn4y8ocJOCJGprSUEDSEdPqZxn3dKsFjOk5kImx29UpmJA5fb_N7RCekc7yQfuVvET6lZt3UYqwy6mq0EPa2Tsnf5HVp7Tyoi9chjahG9Yy4t9riy3Ke/&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI7aDpoXlMS337w3aBUn4y8ocJOCJGprSUEDSEdPqZxn3dKsFjOk5kImx29UpmJA5fb_N7RCekc7yQfuVvET6lZt3UYqwy6mq0EPa2Tsnf5HVp7Tyoi9chjahG9Yy4t9riy3Ke/&quot; width=&quot;135&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;So this is a destructive, (no going back) hack, and that is OK for me.&amp;nbsp; You need to decide if you want to go back to the poorly designed app, and it&#39;s limited control, or forever have a superior thing that does what you want....&amp;nbsp; &amp;nbsp;&lt;br /&gt;For some reason, these product makers are hell bent on making garbage UI&#39;s instead of using something like WLED that destroys anything their best programmers could ever come up with..... and that is my target... run WLED on this.&amp;nbsp; &amp;nbsp;It&#39;s going to make this do a whole lot more,&amp;nbsp; be controllable in a smart home AND&amp;nbsp; be useful with SaCN DMX control.&lt;p&gt;&lt;/p&gt;&lt;p&gt;A level shifter needs to change theESP 3.3V signal to the 5V signal the led string needs.&amp;nbsp; &amp;nbsp;there are tons of level shifters out there but one of the best is the 74HCT125.&amp;nbsp; &amp;nbsp;it does not need dual power supplies like most AND acts as a signal buffer.&amp;nbsp; it&#39;s also more robust and overall a better option than anything else I have seen or used.&amp;nbsp; &amp;nbsp; Biggest advantage is it only needs a single popwer supply, your target voltage and a couple of ground connections ans signal in/out.&amp;nbsp; &amp;nbsp;This chip is available in SMD and DIP.&amp;nbsp; &amp;nbsp;I am using the DIP for easier soldering and I have about 20 of them.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQHrY49DsQdMhK6H0y25Fxa1wAVrQTtsLrMYmk02coViRjm9xeBRq0fxqcIFtCqqPj-sWRVJZ1yUKIOp1G4McPp7Rn5ruKIEyFv8_hlvGaeYAvkvYmZlvxl1jUcyvapoxcrjwc/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;665&quot; data-original-width=&quot;1182&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQHrY49DsQdMhK6H0y25Fxa1wAVrQTtsLrMYmk02coViRjm9xeBRq0fxqcIFtCqqPj-sWRVJZ1yUKIOp1G4McPp7Rn5ruKIEyFv8_hlvGaeYAvkvYmZlvxl1jUcyvapoxcrjwc/w640-h360/33CA6D38-BFAB-485E-ABC5-BE09C9F49B00_1_105_c.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWD8vedbkJECLLK0XMl5_a2c1ZxEayjCQ0Z3en6g0NIkjk-RBRConfFmGNaPmmRbOxKN8NvtrlcYwJaeQjuEywZiJc7N0R7NzSjheUJ7TSAwGNszFBivuJ7flBu33ozmqWUE-S/&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWD8vedbkJECLLK0XMl5_a2c1ZxEayjCQ0Z3en6g0NIkjk-RBRConfFmGNaPmmRbOxKN8NvtrlcYwJaeQjuEywZiJc7N0R7NzSjheUJ7TSAwGNszFBivuJ7flBu33ozmqWUE-S/&quot; width=&quot;135&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9hL2BrNVWpOwdZonbAAhquQPq5s6OeDxEABJPNQ2WXQ56mmP-dYmMEIHCJXdWm-GcwG4o5vzGsaN3-20OQuEaC3ducsQf3Cax_zAoU_nVURy4554EKJnc3sS4etGqnBnPKFSl/&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1182&quot; data-original-width=&quot;665&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9hL2BrNVWpOwdZonbAAhquQPq5s6OeDxEABJPNQ2WXQ56mmP-dYmMEIHCJXdWm-GcwG4o5vzGsaN3-20OQuEaC3ducsQf3Cax_zAoU_nVURy4554EKJnc3sS4etGqnBnPKFSl/&quot; width=&quot;135&quot; /&gt;&lt;/a&gt;I looked up the data sheet for it remembered that you have to tie the enable pin to ground and came up with this diagram.&amp;nbsp; Pin 2 is going to connect to the 3.3v signals coming out of the ESP on it&#39;s Gpio2.&amp;nbsp; Pin3 is going to go to the big fat green D0 wire on the board that sends the serial data out to the led string.&amp;nbsp; &amp;nbsp;Soldering it up Dead bug style allowed me some leeway.&amp;nbsp; I could test it and verify it worked.&lt;br /&gt;&lt;br /&gt;Interesting thing about these strange LED driver chips they are TM1814 and if they do not get addressed and a constant data stream, they go into a color blink mode.&amp;nbsp; &amp;nbsp; This freaked me out for a while trying to figure out what the heck was sending them data so I started cutting wires and they kept blinking.&amp;nbsp; &amp;nbsp;Once I had the ESP sending data, they stopped blinking and did what they were told.&amp;nbsp; &amp;nbsp;This means these have a strange bit of behavior you will see until the ESP is booted and sending data.&amp;nbsp; &amp;nbsp; After testing ans seeing that it was working I was going to glue the chip to the board when I realized that cutting its legs off and using heat shrink will do the job.&amp;nbsp; This allowed me to just stuff it back in the case and tape it closed for now.&amp;nbsp; &amp;nbsp; I&#39;m a chicken and will not glue the case back closed until I am certain it will stay running....&amp;nbsp; &amp;nbsp;Who am I kidding,&amp;nbsp; I&#39;ll never glue it back closed.&amp;nbsp; Tape is your friend.&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxzpBhriS5ADCA6qlRFGT_vwXUsjGfkWYpxIADCnGRRTilAcTqJ7qufLXAZmB7VOK75yxZy-7DCu5yz_4vqOeDxltTlv7NKkH62SEdeuh3XI1sez1NlPx2qN_XnApVPsetiqM/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;1466&quot; data-original-width=&quot;1788&quot; height=&quot;524&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifxzpBhriS5ADCA6qlRFGT_vwXUsjGfkWYpxIADCnGRRTilAcTqJ7qufLXAZmB7VOK75yxZy-7DCu5yz_4vqOeDxltTlv7NKkH62SEdeuh3XI1sez1NlPx2qN_XnApVPsetiqM/w640-h524/details+on+board.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Lastly, some details on the board. Power the level shifter from the 5V wire and ground wire.&amp;nbsp; Your data out is the D0 as marked. And you go for the gpio2 on the ESP clone. I soldered a header on the 4 holes for a programming header and shorted GPIO0 while powering up to get it into program mode like all ESP8266 devices want. GPIO0 is directly above GPIO2 in the photo above.&lt;br /&gt;&lt;br /&gt;I was able to glean a LOT of this info from a bug report on the WLED github page.&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;https://github.com/Aircoookie/WLED/issues/1519&lt;br /&gt;&lt;br /&gt;How to install WLED is here&amp;nbsp;https://kno.wled.ge/basics/install-binary/&lt;div&gt;&lt;br /&gt;&lt;div&gt;They have a very cool web-based uploader if you have the correct usb 3.3v TTY serial adapter.&lt;br /&gt;Note: do not try the OTA wifi updater.&amp;nbsp; The TYWE3S has only 2 meg of flash and cannot handle it.&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd9yF9YDgeZvXrNoi1BAQkh0xT47INeIzEl4vm5Mvop9vOSOGgKan5OzZjp8_dNNygTP7psaeTTIVyNWQXO0RYcFbJ03KC-b5N7XAf3yVZmQCzjDS4sqHCf4snOXUVoQnoq2sJ/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;2778&quot; data-original-width=&quot;1284&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd9yF9YDgeZvXrNoi1BAQkh0xT47INeIzEl4vm5Mvop9vOSOGgKan5OzZjp8_dNNygTP7psaeTTIVyNWQXO0RYcFbJ03KC-b5N7XAf3yVZmQCzjDS4sqHCf4snOXUVoQnoq2sJ/w296-h640/6F3E66FA-84C4-495B-A00D-0A0835B29BD5.png&quot; width=&quot;296&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7krjE9Dekj4qszZzGAwZp2Ros9TnU0ztBob503HkKpvde6DUG4ar8D-QFV8C8ufWcUgY9cjOWUTh_qXup6TuWxSu4cUCXgoflTXqJRtv4bJIGle5ARR6tItWXwBLdTYeZJAkG/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;2778&quot; data-original-width=&quot;1284&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7krjE9Dekj4qszZzGAwZp2Ros9TnU0ztBob503HkKpvde6DUG4ar8D-QFV8C8ufWcUgY9cjOWUTh_qXup6TuWxSu4cUCXgoflTXqJRtv4bJIGle5ARR6tItWXwBLdTYeZJAkG/w296-h640/07E6E2AD-033D-47D3-AA97-CA3E14E3EDD3.png&quot; width=&quot;296&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnvvwiGfczvEP58U7K4cwEkZiourgkPFEJjMkadtHlQRCgPt5kLFhZ8Pk-HGJRvh6e46xqX0d-NbTM_y2p3rAluW9UIlB5bKyelZAjdBcxFN3ru1Qc0FWNB7-b50sqJVV_58f_/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;2778&quot; data-original-width=&quot;1284&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnvvwiGfczvEP58U7K4cwEkZiourgkPFEJjMkadtHlQRCgPt5kLFhZ8Pk-HGJRvh6e46xqX0d-NbTM_y2p3rAluW9UIlB5bKyelZAjdBcxFN3ru1Qc0FWNB7-b50sqJVV_58f_/w296-h640/775D591A-4561-44F7-B3E2-0D0057DBB584.png&quot; width=&quot;296&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq69JjTGctOOEKmaKLFO513zqwnkBYQolETjbsvEoc2NNE9QTd_l9MrMQTMfNs60VlUAPQ4lBIf_T01e-nLUIYLUpXinZQI81b6J-VDcSDv83pUsk7msKHBVs-JKRViXfMf7SV/&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The above is how I have mine configured in the configuration.&amp;nbsp; &amp;nbsp;(Yes I know all the Russian hackers are going to attack me now for showing the world my test network address.).&amp;nbsp; &amp;nbsp; I have max current set at 650ma to limit the maximum brightness for what I want.&amp;nbsp; After leaving it run for 24 hours, the box was only slightly warm to the touch.&amp;nbsp; &amp;nbsp;be sure to enter pin 2 and the color order as GRBW for the TM1814 settings.&amp;nbsp; &amp;nbsp;these strings have Red and Green swapped.&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;To control the setup from a HTTP API if you wanted to use it with home automation&amp;nbsp; the info for this is at https://kno.wled.ge/interfaces/http-api/&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;[IPADDRESS]/win&amp;amp;T=0 turns it off,&amp;nbsp; 1 turns it on,&amp;nbsp; 2 makes it toggle state.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://timgray.blogspot.com/feeds/9081846293366042247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://timgray.blogspot.com/2021/12/hacking-atomi-smart-wifi-color-string.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/9081846293366042247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6954656/posts/default/9081846293366042247'/><link rel='alternate' type='text/html' href='http://timgray.blogspot.com/2021/12/hacking-atomi-smart-wifi-color-string.html' title='Hacking the Atomi Smart Wifi Color String lights.'/><author><name>Tim Gray</name><uri>http://www.blogger.com/profile/17048268810330128913</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkUfukR-YViKMSxHq8seVlXMn69ZuAQZSGy3BPdjh0eOhsd6jaRA47_cg4x3PBX_j9BXGAaPMbFM07C__P1kx1gdl0JoJl8lP_71QPJd-IydYCEf7e4X5W8PO0GSWUzq70W12J/s72-c" height="72" width="72"/><thr:total>0</thr:total></entry></feed>