Skip to main content

Posts

Showing posts from August, 2025

Things I Learned: Using URLs to Store Web App State in Cesium Sandcastle

 With Cesium Ion Sandcastle users can try out various parts of the Cesium JS library to create maps. Once their code is working, they can also share those maps with the code. I initially wondered about the infrastructure that required to store and then serve every single map examples code. Then, I realized that the code isn't stored in a server, it's in the share URL! I originally started to put this together when I noticed how long a typical Cesium Sandcastle is. They tend to look like this: except longer. The seemingly random characters are a base64 encoded transcript of the JavaScript code along with the html and styling for the Sandcastle project. The fact that everything was encoded in the URL made me wonder what else could be achieved with the URL. A lot, it turns out. NOTE : I discovered it's important to place your additional URL args before the #c anchor that contains the Sandcastle code. Otherwise, your args get interpreted as being part of the JavaScript that...

Grey Line in Sweden and New Mexico Demonstration

 I'm using the new map in map feature I coded up this week to for a map that demonstrates that as the sun sets in Sweden, it's rising near Las Cruces, NM. A few minutes later, my QSO to Sweden from the Organ Mountains went through. The code is in a github repo . Here's the map: And here's a video demonstrating how to interact with the map above: For those who are curious, here's how Project TouCans was situated that day. Note that the dipole is only about five feet off the ground.

Implementing the new QSO Map in Map View

 I frequently find myself zooming in and out of QSO maps to see where the sun was with regard to my station's horizon  vs how far a given QSO propagated. I wanted a way to view maps without all the zooming. Now I have it! How I got It I've had Cesium maps on the blog for a while. Once I got the idea for a better way to view QSO maps, I deliberately executed on the habit I've been trying to build in myself:  I immediately asked GPT5 if it could augment my existing code. It turned out that it definitely could. In under half an hour, I had the new map view pictured above. You can steer around the maps at my POTA post .  The code for implementing map in map can be found in the csm-map-n-map repo.

Project TouCans Back on the Air on the San Juan Bautista National Historic Trail

 Project TouCans made it back on the HF airwaves last night! I had forgotten that urban POTAs are kind the epitome of luxury here in San Francisco. On my way to the bus stop for the MUNI 49, I noticed that it was happy hour, so I stepped in for a drink. Perched on a barstool at the joint's open front window, I contemplated the world outside and whether or not the radio would work. The power switch latching relay for the rig gave up on the last day of our Great Basin National Park camping trip. That'd been perfect timing, (if the thing was going to break at all), but also led to me not being on the air in the better part of two months. I wound up making the ten QSOs to activate the park in just over half an hour. My operating site was on the campus of City College San Francisco (CCSF.) The view across the city is kind of nice. I was there just into the night this time, and the city lights up after dark. I'm trying something new in the map below. I asked GTP5 to help me with...

RockMite Sidetone Spectrum: Why That QRP Beep Sounds So Square

 One of the first things I realized about my RockMite, (the tranciever at the heart of Project TouCans, our low power, Morse code only, ham radio), is that the sidetone output is, shall we say, LOUD! This works for me since my hearing isn't great and I'm frequently operating from urban environments where there's lots of ambient QRM in the air around me: horns, crowds, sirens, and so on. I'm often reminded of that the sidetone is loud by other posts I find00 about working on old RockMites. The author usually starts by mentioning that theyauthor turned down the sidetone volume by changing the circuit. The post that comes to the top of my mind is  Taming the Wild Rockmite  by G. Forrest Cook. It has a great section on boosting the output power Rockmite's that I've put to good use. In any event, while workking on training an AI to decode Morse code, I started looking at spectograms of the Project TouCans audio output. Here's what I saw  Those vertical bands tha...

Why the TouCans CW AI Isn't Decoding Real CW Yet

 Yesterday I posted about ChatGPT5 writing a TensorFlow CW decoder. It's actually decoding clean CW from its training data, but when I feed it audio recorded from an actual HF receiver, nope. I asked ChatGPT to write me a script to inspect the recorded audio and found out why this morning. The first thing I should point out is that this particular model is learning Morse code the wrong way. It is defineitly comparing dots and dashes. It's based on a vision neural net and so... The second thing I should point out is that it's learning Morse code faster than I did, so, you know, that's pretty impressive. OK. Here's why the AI isn't understanding RF-borne CW yet. Here's a spectrogram that corresponds to its self created training data. This particular one is from the video I posted about yesterday. The video is included again below so you can listen to the code as well. This is fairly impressive in that you can in fact actually read out the dits and dahs. Now, ...

Using AIs to Build AIs ChatGPT5 -> Morse Code AI

 This week's AI project is to create an AI Morse code decoder. I've been working with the new ChatGPT 5 model since late last week. I've asked a few different models if they could understand Morse code. ChatGPT 5 couldn't. Gemini couldn't. That's when it occurred to me that this was probably the perfect time to learn how to use TensorFlow to make an AI. So, I changed my question. I asked ChatGPT 5, "If I wanted to setup a model that learned Morse code using Google's Tensor engines, could you describe the entire process and output the code for me?" To which it promptly, (what an awesome pun!), replied, "Heck yes—that’s a super fun project. Here’s a complete, practical path to a TPU-accelerated Morse code recognizer using TensorFlow + CTC (Connectionist Temporal Classification). It generates synthetic Morse audio (with realistic timing/noise/tempo wobble), trains a small CRNN on log-mel spectrograms, and decodes with greedy CTC. You can run it ...

DC POTA QSO Map from Freedom Plaza

  Almost a year ago, I made a POTA activation from DC in Freedom Plaza. I'm discussing antennas and buildings today with Bill Meara of the soldersmoke blob and published this map to carry along the conversation. I alternately convince my myself that buildings do not matter, and then a few weeks later, that they do. QSO Map

Things I Learned: Logitech Capture vs. Windows Snipper for Screen Capture

 Logitech Logi Capture turns out to be better at capturing fine details in  a screen replay than the Microsoft Snipping tool.  Here's a demo. The Windows munging is more apparent in a larger frame or full screen. Videos Logi Capture Windows Snipping Tool