<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on Blog of TahomaSoft.com</title>
    <link>https://blog.tahomasoft.com/en/</link>
    <description>Recent content in Home on Blog of TahomaSoft.com</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Mon, 20 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.tahomasoft.com/en/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>About</title>
      <link>https://blog.tahomasoft.com/en/pages/about/</link>
      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.tahomasoft.com/en/pages/about/</guid>
      <description>&lt;p&gt;Using hugo to build this site.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Buildroot, Linkstar, and Alpine</title>
      <link>https://blog.tahomasoft.com/en/posts/buildroot-alpine-linkstar-april2026/</link>
      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.tahomasoft.com/en/posts/buildroot-alpine-linkstar-april2026/</guid>
      <description>&lt;p&gt;Progress has also been made to get the Hinlink/Linkstar H68K to&#xA;compile and run under other distributions. Notably:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;We&amp;rsquo;ve been able to formulate a build recipe for the Linkstar under&#xA;buildroot;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The resulting kernel and supporting files will run as-is on the&#xA;Linkstar, but with limited functionality, as buildroot is a&#xA;bare-bones &amp;ldquo;distro&amp;rdquo; only;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Those bones though can be combined with some flesh from Alpine Linux&#xA;to make a &amp;ldquo;frankenDistro&amp;rdquo;; namely, the boot code, kernel, and&#xA;supporting files can be combined, carefully, with Alpine Linux to&#xA;have a more fully-featured system.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Next Steps:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Once buildroot is updated to use U-Boot from 2026.04 or later (which&#xA;has migrated the Linkstar dts files from Linux 6.18.X into it),&#xA;we&amp;rsquo;ll submit a pull request to buildroot to incorporate the build&#xA;recipe into the tree;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Once Alpine Linux begins using U-Boot 2026.04 in their ARM64&#xA;distributions, the Linkstar should be fully supported by that&#xA;distro. We&amp;rsquo;ll check that out when the time comes.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Misadventures in Microprocessor Cloning</title>
      <link>https://blog.tahomasoft.com/en/posts/adventures-atmega368-cloning/</link>
      <pubDate>Mon, 20 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.tahomasoft.com/en/posts/adventures-atmega368-cloning/</guid>
      <description>&lt;p&gt;I recently purchased an electronics kit to build a component tester&#xA;(capacitors, resistors, diodes, transistors and inductors). While&#xA;putting it together, I experienced issues installing the ATMEGA 328p&#xA;chip into its socket, breaking off one of the 28 leads. Half-luckily,&#xA;that broken lead (pin 28) didn&amp;rsquo;t seem to impact the main function of&#xA;the board, although it may be responsible in part for giving bogus&#xA;low-battery warnings.&lt;/p&gt;&#xA;&lt;p&gt;I bought the board on clearance sale; it has been discontinued by the&#xA;manufacturer for some time. And the manufacturer&amp;rsquo;s support site wasn&amp;rsquo;t&#xA;great; I had to contact them to remove an IP-Geo block to North&#xA;America so I could download the assembly and usage manuals. So&#xA;figuring getting a replacement part was unlikely, and with the source&#xA;code not available, I came up with the bright idea to try cloning the&#xA;programming to a new 328p; they are still reasonably easy to get at&#xA;about $2.50 each.&lt;/p&gt;&#xA;&lt;p&gt;First step on this journey was to get an in-system programmer (ISP)&#xA;for the ATMEGA to copy off the code from the bunged-up chip and put it&#xA;on a new chip. It took some trial and error to hit on the right&#xA;combination of programmer and target arrangement to get this to work&#xA;for me. I tried putting the target on a breadboard and using a&#xA;TinyUSBisp (from HiLetgo via Amazon.com) as the programmer. Avrdude&#xA;was able to access the TinyUSBisp programmer, but reading the contents&#xA;of the chip off the breadboard was problematic (note I also used some&#xA;pre-programmed ATMEGA 328p chips from Arduino Uno and clones to try&#xA;and work out the methodology). This was using the simplest possible&#xA;wiring from the programmer to the chip, without an external crystal,&#xA;resistors, capacitors, etc.&lt;/p&gt;&#xA;&lt;p&gt;Next attempts were at using an Arduino Uno instead of the TinyUSBisp&#xA;as the programmer, with the chip again on a breadboard. I tried&#xA;various wiring arrangements, with and without a 16MHZ crystal,&#xA;resistors, and capacitors.  This also didn&amp;rsquo;t work well (but later I&#xA;noticed that I used a very wrong pair of capacitance values).&lt;/p&gt;&#xA;&lt;p&gt;What worked best for me was using the TinyUSBisp as the programmer,&#xA;and wiring it up to an Arduino Uno from which the usual 328p chip was&#xA;swapped out for the target chip. This generally worked; I was able to&#xA;read and write to practice chips fine. Initially, reading the flash&#xA;from the chip with the missing leg seemed to work fine; but on further&#xA;inspection, I discovered the lock bits were set, and so all the chip&#xA;would give up to avrdude for the flash data were a bunch of 0xFFs;&#xA;avrdude does not raise an error if the lock bits are set, it just&#xA;won&amp;rsquo;t work correctly.&lt;/p&gt;&#xA;&lt;p&gt;So I did what I could to make the damaged chip run as well as possible&#xA;in the component tester kit.&lt;/p&gt;&#xA;&lt;p&gt;And next time I need to program a 328p, I&amp;rsquo;ll probably start with the&#xA;TinyUSBisp -&amp;gt; Arduino, but will give the breadboard arrangement, with&#xA;the right capacitors this time, a try.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Update on OpenWRT for Hinlink/Linkstar</title>
      <link>https://blog.tahomasoft.com/en/posts/hinlink-linkstar-updates-jan2026/</link>
      <pubDate>Sun, 04 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://blog.tahomasoft.com/en/posts/hinlink-linkstar-updates-jan2026/</guid>
      <description>&lt;h1 class=&#34;heading&#34; id=&#34;jan-2026-update&#34;&gt;&#xA;  Jan 2026 Update&lt;span class=&#34;heading__anchor&#34;&gt; &lt;a href=&#34;#jan-2026-update&#34;&gt;#&lt;/a&gt;&lt;/span&gt;&#xA;&lt;/h1&gt;&lt;p&gt;Recently, the mainline Linux kernel (v6.18) has included the needed&#xA;support for the HinLink/LinkStar H66 and H68 boards.&lt;/p&gt;&#xA;&lt;p&gt;As downstream sites start integrating this new kernel into their&#xA;projects and distributions, these small travel routers should gain&#xA;more support. Alpine Linux recently included v6.18 in most of their&#xA;products (not including Raspberry Pi currently).&lt;/p&gt;&#xA;&lt;p&gt;Trying out the Alpine distribution for the LinkStar H68K is on my&#xA;to-do list; higher up though is getting it included into the mainline&#xA;OpenWRT distribution.&lt;/p&gt;&#xA;&lt;p&gt;There are a couple of pull requests at this writing seeking to do&#xA;that; one of mine (21015) and another person&amp;rsquo;s (21270). They have&#xA;received some preliminary review by the site developers and code&#xA;custodians, with more hopefully coming soon.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>OpenWRT Development</title>
      <link>https://blog.tahomasoft.com/en/posts/july2025-linkstar/</link>
      <pubDate>Mon, 28 Jul 2025 00:00:00 +0000</pubDate>
      <guid>https://blog.tahomasoft.com/en/posts/july2025-linkstar/</guid>
      <description>&lt;p&gt;Working on supporting the LinkStar H68K-1432v1 travel router in&#xA;OpenWRT and Linux.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
