<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Software on intnsity</title>
        <link>https://intnsity.com/categories/software/</link>
        <description>Recent content in Software on intnsity</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Sun, 30 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://intnsity.com/categories/software/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>BigDice and notyas</title>
            <link>https://intnsity.com/posts/bigdice-and-notyas/</link>
            <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
            <guid>https://intnsity.com/posts/bigdice-and-notyas/</guid>
            <description>&lt;img src=&#34;https://intnsity.com/posts/bigdice-and-notyas/both-boards.jpg&#34; alt=&#34;Featured image of post BigDice and notyas&#34; /&gt;&lt;p&gt;Both projects came out of the Coldcard hack. People spent $150-400 on what was supposed to be the best hardware wallet, then firmware bugs made those devices not secure. The goal: low cost, secure, offline device that anyone can flash themselves, a quarter of the cost, and with code you can read or modify as you please.&lt;/p&gt;&#xA;&lt;p&gt;BigDice was named randomly as it is focused on dice BIP39 mnemonic generation and sounded good. notyas means &amp;rsquo;not yasmarang&amp;rsquo; the favorite pseudo-random-number generator of coinkite company and coldcard wallet firmware developers.&lt;/p&gt;&#xA;&lt;p&gt;There are many ways to generate a seed phrase from dice, nothing in BigDice or notyas is unique or groundbreaking. They do serve a purpose allowing users to generate seed phrases or sign transactions in offline environments with cheap hardware. They are both a.i. generated tools that cost some in tokens and time to developi. They are both open-source so you can inspect, use, or modify how you please.&lt;/p&gt;&#xA;&lt;h2 id=&#34;bigdice&#34;&gt;BigDice&#xA;&lt;/h2&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;334px&#34; data-flex-grow=&#34;139&#34; height=&#34;891&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/bigdice-main.png&#34; srcset=&#34;https://intnsity.com/posts/bigdice-and-notyas/bigdice-main_hu_b2abd8fa7b724ef9.png 800w, https://intnsity.com/posts/bigdice-and-notyas/bigdice-main.png 1240w&#34; width=&#34;1240&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;BigDice is a standalone Windows .exe. Roll dice, type them in, get a BIP39 phrase plus addresses in all four common styles (BIP44, BIP49, BIP84, BIP86) with QR codes. Same rolls, same wallet, so you can verify by repeating. It never touches the network. Run it on an old machine with the wireless pulled.&lt;/p&gt;&#xA;&lt;p&gt;Code: &lt;a class=&#34;link&#34; href=&#34;https://git.intnsity.com/intnsity/BigDice&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://git.intnsity.com/intnsity/BigDice&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;notyas&#34;&gt;notyas&#xA;&lt;/h2&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;240px&#34; data-flex-grow=&#34;100&#34; height=&#34;720&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/notyas-dice.png&#34; width=&#34;720&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;notyas started as &amp;ldquo;BigDice on an ESP32&amp;rdquo; and grew. It runs on ESP32-P4 touch panels as a stateless seed generator, or as a wallet manager and transaction signer. Dice rolls or typed words, PIN, wallets saved to flash, PSBTs on microSD, multisig up to 15 cosigners. No radio, no network stack, no USB data path. Similar to SeedSigner. A Raspberry Pi Zero v1.3 is probably a better offline device than the ESP32 boards I have.&lt;/p&gt;&#xA;&lt;p&gt;I built it on a Waveshare 4B and an Elecrow 5 inch touch panel, $50-60 each at the time. A smaller device is on the way, the waveshare esp32-s3 2 inch at $25USD with touchscreen and included camera. Working on raspi camera and Arducam support (currently working on waveshare), plus a couple of 3d printed case designs to share.&lt;/p&gt;&#xA;&lt;p&gt;Code: &lt;a class=&#34;link&#34; href=&#34;https://git.intnsity.com/intnsity/notyas&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://git.intnsity.com/intnsity/notyas&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;180px&#34; data-flex-grow=&#34;75&#34; height=&#34;1600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/waveshare-open.jpg&#34; srcset=&#34;https://intnsity.com/posts/bigdice-and-notyas/waveshare-open_hu_f3090a743875bf50.jpg 800w, https://intnsity.com/posts/bigdice-and-notyas/waveshare-open.jpg 1205w&#34; width=&#34;1205&#34;&gt;&#xA;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;318px&#34; data-flex-grow=&#34;132&#34; height=&#34;1205&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/elecrow-board.jpg&#34; srcset=&#34;https://intnsity.com/posts/bigdice-and-notyas/elecrow-board_hu_7b44862910ec3dbb.jpg 800w, https://intnsity.com/posts/bigdice-and-notyas/elecrow-board.jpg 1600w&#34; width=&#34;1600&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;signing-on-mainnet&#34;&gt;Signing on mainnet&#xA;&lt;/h2&gt;&lt;p&gt;I&amp;rsquo;ve signed real transactions. Single-sig, mainnet, money back and forth, from a wallet generated with dice on the device itself. PSBT on the card, review page by page, hold to sign, generated signed qr code and scanned qr in hot wallet to broadcast transaction.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;180px&#34; data-flex-grow=&#34;75&#34; height=&#34;1600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/xpub-addresses.jpg&#34; srcset=&#34;https://intnsity.com/posts/bigdice-and-notyas/xpub-addresses_hu_9085b333d9e13291.jpg 800w, https://intnsity.com/posts/bigdice-and-notyas/xpub-addresses.jpg 1205w&#34; width=&#34;1205&#34;&gt;&#xA;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;180px&#34; data-flex-grow=&#34;75&#34; height=&#34;1600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/save-or-use-once.jpg&#34; srcset=&#34;https://intnsity.com/posts/bigdice-and-notyas/save-or-use-once_hu_eab4660e82dc07a7.jpg 800w, https://intnsity.com/posts/bigdice-and-notyas/save-or-use-once.jpg 1205w&#34; width=&#34;1205&#34;&gt;&#xA;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;180px&#34; data-flex-grow=&#34;75&#34; height=&#34;1600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/wallet-menu.jpg&#34; srcset=&#34;https://intnsity.com/posts/bigdice-and-notyas/wallet-menu_hu_dcb410c55246bb2b.jpg 800w, https://intnsity.com/posts/bigdice-and-notyas/wallet-menu.jpg 1205w&#34; width=&#34;1205&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;There is a &amp;lsquo;use once, write nothing&amp;rsquo; mode for the wallet. For this your seed phrase or dice rolls are your backup.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;180px&#34; data-flex-grow=&#34;75&#34; height=&#34;1600&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/bigdice-and-notyas/next-to-trezor.jpg&#34; srcset=&#34;https://intnsity.com/posts/bigdice-and-notyas/next-to-trezor_hu_5add784f804c8284.jpg 800w, https://intnsity.com/posts/bigdice-and-notyas/next-to-trezor.jpg 1205w&#34; width=&#34;1205&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next to a Trezor Model T for size.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-it-was-built&#34;&gt;How it was built&#xA;&lt;/h2&gt;&lt;p&gt;I wrote these with Opus 4.8 and Opus 5 on a subscription, and had GLM 5.2 review the codebase a few times. The plan is to keep having frontier models review it, especially the wallet management and signing paths.&lt;/p&gt;&#xA;&lt;p&gt;Do not take risks with these tools, use your own utilities or skill to inspect the code and only test BigDice or notyas with small amounts of funds. Always write down and backup seed phrases, passphrases, or derivation paths made with BigDice or notyas in case of device failure.&lt;/p&gt;&#xA;&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s next&#xA;&lt;/h2&gt;&lt;p&gt;More seed sources than dice, maybe. More attack review on signing and storage with diversity of frontier models. Camera support. The $25 device. Case designs.&lt;/p&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t know how much time I&amp;rsquo;ll put into these going forward, but the code is out under GPL-3.0, the hardware is cheap, and you can flash it yourself. If you build one or find improvements i want to hear about it.&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>OpenNTRIPClient</title>
            <link>https://intnsity.com/posts/open-ntrip-client/</link>
            <pubDate>Sun, 30 Aug 2026 00:00:00 +0000</pubDate>
            <guid>https://intnsity.com/posts/open-ntrip-client/</guid>
            <description>&lt;img src=&#34;https://intnsity.com/posts/open-ntrip-client/open-ntrip-client-main.jpg&#34; alt=&#34;Featured image of post OpenNTRIPClient&#34; /&gt;&lt;p&gt;For years the tool we use to check NTRIP casters is the Lefebure NTRIP Client. It is free, open source, and has been around since 2009. It is an incredible piece of software, written by a real person (wow), and I trust it more than anything on this page. I still use it regularly, probably more than my own client. But it has no saved connections or &amp;lsquo;profiles&amp;rsquo;, so we created one subdirectory per CORS station, each with its own copy of the exe and its own config. Additionally, if the mountpoint you needed was not in the dropdown and needed manual entry, there was no way to type it in without exiting the software and editing the config.&lt;/p&gt;&#xA;&lt;p&gt;I wanted saved connections and a mountpoint box I could type into, so I wrote a client. OpenNTRIPClient was not meant to replace but to build on and add features to an already great concept.&lt;/p&gt;&#xA;&lt;h2 id=&#34;openntripclient&#34;&gt;OpenNTRIPClient&#xA;&lt;/h2&gt;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;308px&#34; data-flex-grow=&#34;128&#34; height=&#34;593&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/open-ntrip-client/open-ntrip-client-main.jpg&#34; width=&#34;762&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;A clean-room rewrite of the Lefebure client in Rust. One portable exe, no installer, writes everything to its own folder. Drop your old &lt;code&gt;Settings.txt&lt;/code&gt; or &lt;code&gt;ntripconfig.txt&lt;/code&gt; next to it on first run and it imports them.&lt;/p&gt;&#xA;&lt;p&gt;Code: &lt;a class=&#34;link&#34; href=&#34;https://git.intnsity.com/intnsity/OpenNTRIPClient&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;https://git.intnsity.com/intnsity/OpenNTRIPClient&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Connection profiles are the reason it exists: every caster, credential set, and mountpoint saved and switchable from one dropdown, and a mountpoint box you can type into.&lt;/p&gt;&#xA;&lt;p&gt;The rest was accidents. The app decodes the whole protocol conversation for diagnostics, which made it a decent RTCM analysis tool. The inspector counts every message type live, tracks CRC failures and garbage bytes, and decodes the base station position, antenna, receiver model and serial, firmware version, GLONASS biases:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img class=&#34;gallery-image&#34; data-flex-basis=&#34;326px&#34; data-flex-grow=&#34;135&#34; height=&#34;771&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://intnsity.com/posts/open-ntrip-client/rtcm-inspector.jpg&#34; srcset=&#34;https://intnsity.com/posts/open-ntrip-client/rtcm-inspector_hu_147d2fdf065f9de.jpg 800w, https://intnsity.com/posts/open-ntrip-client/rtcm-inspector.jpg 1048w&#34; width=&#34;1048&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;That is a Trimble BD990, station 14, 681 km from me, streaming GPS, GLONASS, Galileo, and BeiDou at 1 Hz. The original client never told you any of that. There is also an elevation strip chart: hook an RTK rover up over Bluetooth serial, feed it corrections, and you get a live elevation graph and the fix readouts.&lt;/p&gt;&#xA;&lt;p&gt;It also handles NTRIP v1 and v2, TLS with a loud override for self-signed casters, raw TCP, GGA reporting with an offline city and ZIP geocoder, auto-reconnect, and a headless &lt;code&gt;--selftest&lt;/code&gt; mode. Version 0.2.1 fixed a deadlock with CHC APIS casters that hold the stream until you send a GGA, verified live against apis-usa.chcnav.com. Pre-1.0, expect rough edges.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-it-was-built&#34;&gt;How it was built&#xA;&lt;/h2&gt;&lt;p&gt;The original is open source, so I studied how it behaved and had an LLM rewrite the functions to match in Rust. No code reused, behavior only. Then a lot of testing against real casters, including the ones we run.&lt;/p&gt;&#xA;&lt;p&gt;When my client will not connect, my first instinct is that my tool is broken, so I open the Lefebure client to check. Sometimes the problem is the caster, sometimes it is my bug. That loop is the QA process.&lt;/p&gt;&#xA;&lt;p&gt;Passwords sit in plaintext in &lt;code&gt;settings.toml&lt;/code&gt;, same as the original stored them in &lt;code&gt;ntripconfig.txt&lt;/code&gt;. The portable folder is the security boundary. Keep it off shared drives if your caster account matters.&lt;/p&gt;&#xA;&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s next&#xA;&lt;/h2&gt;&lt;p&gt;More caster testing, probably more weird caster behaviors like the APIS one. Windows is the primary build; Linux and macOS binaries are on the releases page. I do not expect it to fully replace the original for me.&lt;/p&gt;&#xA;&lt;p&gt;If you try it, or find a caster it chokes on, I want to hear about it.&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
