Skip to main content

Posts

Showing posts with the label chatGPT

GPT5 Reads Schematics,Does Simple RF Analysis!

 GPT5 helped me understand how the Tuna Topper ][ amplifier in Project TouCans operates yesterday. It started from just this clip of the schematic! While debugging the power supply relay of Project TouCans a few days ago, I noticed an interesting thing. With the Pico-W rig controller plugged into the supply brick TouCans itself was only being doled out twelve volts by the phone charging brick in its base, not the fifteen volts its USB-C adapter was asking for. That mattered the most to the Tuna Topper II  amplifier that drives the five watts to the antenna. I changed the rig so that, for now,  the Pico-W runs on three AA batteries. That upped the supplly to the rig back to its intended fifteen volts. I wanted to understand in broad terms what that meant for the power output of the rig. I tooled around for a bit on paper and spreadsheets before it occurred to me to ask GPT5. I didn't expect to get an answer at all. I definitely didn't expect it to be able to read the sc...

OpenAI ChatGPT Frequently (Always?) Opening in 4o

 Early Sunday morning, the code generated by ChatGPT became noticeably clunky. Why!? I figured it out when this message arrived Ah yes! The LLM that berates me a bit for the code it wrote :) At some point after the release of GPT5, OpenAI started defaulting my chats back to 4o. For me GPT5 is better. I switched back over 5 and a bit later, the code coming out of the LLM was just working, and when it didn't, I got messages like this By the way, at that point GPT5 was fixing code created by 4o when I had specifically asked for: " Also save the vh and vw settings of the subpanel in subpanelsize and resize it to its original extent if the subpanelsize arg is present in a url  " Anyway! GPT5 rocks for me. If you're using the browser UI instead of the API, check to see what model you're using before you go too far down the wrong path.

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...

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 ...

Learning Python Parallel with GenAI

 I've been looking for an excuse to try parallel processing with Python for a few months and yesterday, the FBI provided one. They released a collection of records related to the assassination of Reverend Dr. Martin Luthor King Jr. It's easy enough to get a count of the pdf files released from the announcement page . Information about the files released to the National Archives I was able to quickly read that there were 6,301 files. A brief internet search indicated that the files have not been released in any kind of compressed container, like a zip file yet. I also tested that the search box only searches the pdf file names, not their contents. The immediate next question was how many bytes of disc space do all the pdfs consume? I asked Chat GPT o4-mini-high to write a Python script to determine the size of the all the files combined. The script was unable to determine the size of each file by looking at the HEAD of the URL for each file, so it wound up having to use GET req...

Things I Learned: Google Drive Downloads and Long Windows Paths

 While doing some experiments about how someone might backup the Soldersmoke blog, I came across an interesting issue. I'd worked with ChatGPT to create a Python script that stored a post from the soldersmoke blog in a directory. The name of the directory was the date and time of the blog post concatentated with the the blog post title. In most cases, this wound up being a file name with more than 256 characters. I dont' remember where I tried my first prototypes a few months ago, but whatever system I was on, it wasn't Windows, because Windows doesn't support folder or file names longer than 256 characters. Google drive, however, does. As a result, when I tried to download the folders to a Windows machine, I got an error message indicating that the zipped directories from Google Drive could not be read. The simple fix, it turned out, was to change the naming scheme of the folders so that they contained only the timestamp of the post down to the second in UTC time. Wit...

Today I Learned: Samsung S23 One UI Closes WebSocket Connections on Task Switch from Chrome Browser

 During yesterday's POTA activations, I kept losing my control panel connection to Project TouCans. I restarted the rig's Pico-W several times to re-establish the connection before it occurred to me to think through the symptoms which were: Productively using the control panel to key the rig Switch to any other app on the phone besides the Chrome browser Return to control panel on Chrome browser and the connection is gone. On my implementation, the control panel's On button first opens a WebSocket to Project TouCans' Pico-W. As an experiment, rather than power cycling the Pico-W, I simply hit the 'On' button again even though the rig was already on. Sure enough, that did it. The connection was back up and running. I asked ChatGPT what might have caused this. I mentioned that the phone, as Samsung Galaxy 23 had forced an update of One UI. The answer that came back was that versions of One UI newer than 6, (I'm on 7 now), do indeed cut socket connections when...

Today I Learned: Default CZML "great cirlce" aerial paths can be made straight line with "arcType: NONE

 I spent a little bit of time doing math debug this weekend, but in the end it turned out the QSO mapping app had a visualization issue, not a math issue. It was fun to get to look at the math for calculating the apparent launch angle of our antenna using F2 height data and rx/tx station locations. I wouldn't have thought to do the review except I had data that didn't match the maps I was getting back. According to the launch ange calculations made by our, (mine and KO6BTY's), QSO mapping app, the launch angle for the signal from our QTH was 0.00227 degrees. The map however, showed the path of the signal soaring over the very nearby Bay Bridge. The angle shown is much larger than 0.00227 degrees. Here's a picture of the nearby Bay Bridge with our antenna in the foreground. After completely reviewing the underlying math, it occurred to me that CZML likes to make lines that follow great circles. To make something that approximated a circle out of a path with a very low ...

Adding Elevation Control to QSO Maps with ChatGPT and Cesium

When making our QSO skip maps one of the issues we encounter is that the lines from our station to the F2 layer don't always start right at the ground. This seems to be an artifact of CZML and the fact that the Earth is not a sphere, but rather an ellipsoid, and even then, there are all those hills and mountains. The initial QSOs can wind mapped as up coming from underground: or, they can wind up starting from above the surface of the Earth In any event, it's been necessary with each map to adjust the elevation height of our station. I've yet to find a parameter to set in a czml that makes the starting point always be on the ground. "clampToGround" works for polylines that are always on the ground, but not polylines whose next point has an altitude greater than zero as the ground station to F2 layer polylines do. I added a feature into the JavaScript mapping application this week that allows me to adjust the height of all of the QSO's starting points at...

Today I Learned: Google Geocoding Costs More but ChatGPT Helped Me Fix It

 Google changed their billing scheme for geocoding in March. Previously, all users were given a $200 credit for Google geocoding per month. Google removed the credit and replaced it with 10,000 geocoding calls per month, and my bill went up! I've known for a while that my pytest code is running every time the QSO tracker is automatically kicked off by github, (which is about 4 times per hour.) Those test cases make seven Google geocoding API calls each. As of April, they mattered. Adding up all the calls assuming that my QSO tracker spots me zero times in a month and that I log no QSOs, so just the calls from the test cases, gives: geocodes runs/hour hours days/month geocodes/month 7 4 24 30 20160 which is well over the free limit. I asked ChatGPT to change my action  so that the test cases would only run when Python files in the repo changed. This was NOT vibe coding. I had to ask ChatGPT to fix its own coding errors 3 times, handing it the error message each time. It did i...

Today I Learned: Pattern for Specifying the CZML Map to Load in an iframe URL

 I learned a way to make my POTA activation blogs a bit easier to create today.  When to Use the Pattern When you'd like to use the same Sandcastle to open multiple different czml files without having to edit Sandcastle code every time. More generally, the pattern can be used to pass any number of URL encoded parameters to your Sandcastle Javascript via your Sandcastle's web address. What the Pattern Enables The user can specify a czml file URL like this https://sandcastle.cesium.com/standalone.html?mapurl=https://raw.githubusercontent.com/hcarter333/rm-rbn-history/refs/heads/main/maps/2024_11_18_Civic_Center_Juan_Bautista.czml#c=dV... Where the #c is the usual 64 bit encoded contents of your Sandcastle from the share link. Your Sandcastle will need to include this  code  through line 15. At that point, you'll have the address of your map in the variable mapurl2 and can do whatever you like with it. In the example above, the czml file pointed to is simply loaded into...

The Project TouCans CZML Tester: Another o3-mini Rapid Prototyping Tool

 Did you know you can store czml maps in github and then load them into the Cesium Sandcastle to try things out? I didn’t for the longest time, but now I do! I recently ran into an issue where I needed to test the differences between several different versions of the same CZML file with one incrmental change per file to debug an issue I was seeing on my maps. I asked ChatGPT to write some JavaScript code that would allow me to simply place the URL into a text input box, click a button, and view the newly specified map on a web page. It wasn’t quite ‘vibe coding’ but a little while later, I had this tool for working through my test maps. You can load any github (or other cors-exporting-happy site) czml file to visualize it.  As an example, I walked through my use case–debugging the slider position on an animated czml map of ham radio QSOs Finally, if you’d like to play around with the code o3-mini and I generated as the basis for a project of yours, it can be found in this gis...

Using o3-mini to Set up a Log Book Transfer for use with QRZ.com

 New ham cleans up log book on QRZ with the help of o3-mini. A few days back, after the completion of SKCC month, a ham sent out a message asking others to please post their QSOs ot LoTW and/or QRZ.com for award verification. For me, a light bulb burst on. It does matter that I log my QSOs publicly. It had frankly, never occurred to me before, but it made sense. o3-mini and I got to work. I already have a log book built on Datasette for my QSOs. I just needed to get the QSOs from there and ship them off to QRZ.com . I needed it to be automatic though, since there were more than 1,000 QSOs to transfer. I asked o3-mini to write a Python script to do this for me. I gave it the database schema for my QSO database. I also fed it the l ogging API instructions for QRZ.com.  I had something that worked well enough after about 40 minutes. After three hours, that included a 40 minute coffe break, I had a script that automatically calculated my tx grid square, (it changes a lot becuase...