Ham License Study Tool v1r0 Documentation 9/2025

A program by Alan Biocca w6akb aided by ChatGPT

HLST is like having your own dedicated AI Elmer to help you study

This program was made for a friend who is studying for their extra class
and expanded from there into a significant bit of effort and cost. It is 
provided free as an aid to those wanting to study for their FCC Ham Radio 
License Tests. The goal is to figure out exactly which questions in the pool 
you need help with and provide explanations specific to those while minimizing 
time spent with the questions that you are already answering correctly. It is 
good to start with a book such as those from ARRL or Gordon West but after 
reading that this program helps you efficiently study the question pool and 
focus on preparing with the actual questions you will face on the license test.

Designed to work from the US VEC Question Pools which are currently
Technician 2022-2026 410 questions
General 2023-2027 425 questions
Extra 2024-2028 601 questions
Contains ChatGPT AI generated explanations for all questions

Uses Python 3, the Streamlit library and a web browser
This was chosen to facilitate ease of programming and render the
math equations in the normal fashion. ChatGPT versions 4 and 5 were
used to help write the software as well as generate the answer explanations
for the entire question pools at several levels.

For those concerned that AI will put them out of work, it still requires
a lot of human expertise to get the AI to generate the right code, to fix the
not quite right code, and to design the overall logic. The work of answering
the question pool is where AI really helps, typing the 1500 technical question 
explanations is not the kind of work most people really want to be doing.
Having a good AI is like having a team to support a good leader.

Files in the zip archive:

readme.txt         this document
hamStudyTool.png   image of typical screen
mkBat.py           program to create the batch file
run_hlst.bat       batch file to launch the program
hlst.py            main python program
technician/*       files for the technician class license
general/*          files for the general class license
extra/*            files for the extra class license

files in each license directory tree include
    explanations/* ChatGPT generated explanations for each question
    questions.txt file used by this study tool program
    figures for the questions file in pdf for reference
    question pool in pdf format for reference
    question pool in docx format for reference

hlstLog.txt     program generated logfile of user answers (not in zip file)


Installation Instructions for Use with Thonny Python

Any recent Python 3 should work, we used Thonny for simplicity

Unzip the hamStudyTool zip file
Install Thonny Python or whichever Python you are going to use
Add the Streamlit library via Thonny tools/manage packages menu or use 
"pip install streamlit" in a command window
Navigate a file manager to the hamStudyTool directory
Run the mkBat.py script with python to create the proper run_hlst.bat file,
Or edit the supplied run_hlst.bat file to adjust the path to python

Ham Study Tool Program Operation

Navigate a file manager to the hamStudyTool directory
Run the program by double clicking on run_hlst.bat
It opens a web browser for user interaction and a black window for error messages

Select Questions to Study

The pulldown menus on the left support selecting and filtering the question pool.
Start by selecting the license exam to study from the three classes of US ham 
licenses.

Select License Exam Class

Technician
General
Extra

Select Question Set

The program supports focusing on parts of the question pool. 'New' is defined as 
questions that have not been previously answered. 'Recently Missed' are questions
that were answered incorrectly the last time they were answered. 'New or Recently
Missed' includes both groups. 'Ever Missed' includes questions that were missed at 
any time in the past. 'Troublesome' initially includes those from 'Ever Missed' but
the 'Remove Q' button will allow questions to be removed from the 'Troublesome' 
group as the material is mastered to focus on what remains.

Start with 'New' or 'New or Recently Missed'. Each session will include recent 
new questions and possibly missed questions if that was selected. You can end a
session any time by closing the program. Do a few or do a lot as fits your 
interest and schedule. Work through the pool. Then shift focus to those that
gave trouble the first pass.

You can focus on the questions you are having trouble with using the 'Troublesome'
set of questions. As you master those you can remove questions from that group.

  All
  New
  Recently Missed
  New or Recently Missed
  Ever Missed
  Troublesome

Select Question Section(s)

The questions can be further limited to a section of the questions as defined by
the question numbers which begin with a letter and 0 through 9. Those sections 
are documented below. An individual section can be selected, or All.

  All Sections
  0-Safety
  1–Commission Rules
  2–Operating Procedures
  3–Radio Wave Propagation
  4–Amateur Practices
  5–Electrical Principles
  6–Circuit Components
  7–Practical Circuits
  8–Signals and Emissions
  9–Antennas and Transmission Lines

Select Explanation Level

ChatGPT operates at various levels depending on the model and settings.
We have answers at some of these various levels, though not
all of them have been collected. V4-mini is the lowest cost and we have
those for all license classes. V4 is ChatGPT V4, V4-mini is the lower
cost mini version and V5 is the newer ChatGPT version. Not all versions 
responses are populated and some of the explanation sets have older formatting. 
This will be discussed later in this documentation. Choose the level that you
find the most helpful if there is more than one choice.

Explanation Level
  V4-mini    ChatGPT V4 lower cost smaller model
  V4         regular V4 model
  V5         new V5, highest cost model

Button Operation

  Remove Q
  Submit Answer
  Next Question
  Explain Answer

Answer Selection

  A  Answer A
  B  Answer B
  C  Answer C
  D  Answer D

If the question references a Figure the figures can be viewed by clicking on
the 'Open Figures Page' link on the Progress line. It will pop a separate window 
for the Figures pdf file. You may have to scroll if there are many figures to get
to the correct figure. They are numbered. There is also a copy of the figures file
in the appropriate class directory with the program.

If you know the answer select the appropriate letter and click 'Submit Answer'. 
It will show whether your answer was correct. If it was incorrect it will show 
the explanation below.

If you don't know the answer then click the 'Explain Answers' button to reveal 
the correct answer in italics according to the Question Pool followed by a detailed 
explanation of why the correct answer is right as well as why the others are not 
the best choice. The explanations are generated by AI and there are occasionally 
errors, see if you can spot any. :)

Click 'Next Question' to advance to the next question.

If you are working with the 'Troublesome' group the 'Remove Q' button will appear.
This can be used to remove questions from the troublesome group. Select the
correct answer, click 'Remove Q' then 'Submit Answer'. If the answer was correct that
question will be removed from the troublesome group. This facilitates focus on
the questions that remain as you remove those you have mastered.

User progress is stored in the hlstLog.txt file. Rename or remove it to start 
with a clean slate.

When you are scoring above 75% on the 'Ever Missed' Questions and the 'New' group 
is empty you are quite ready for the real exam. Best of luck on your test session.

ChatGPT Answer Quality

I have experimented with various AI Engines and Settings on the answers. Typically
the explanations for the correct answer are ok, sometimes the explanations for
why the other answers are not correct are not as good. ChatGPT V5 tends to be more 
college level with lots of equations and perhaps less understandable descriptions, 
and the cost of getting a set of answers is noticeable. If users want to select 
between all 3 AI answer sets the program supports I'd have to spend more money 
to fully populate or update them. If you'd like to see that let me know and provide 
funding, see below. :)

Note that the V5 answers provided in the extra class were run some time ago with 
different formatting. They don't contain the warning about errors and they
repeat all the question options which I changed later to the italics format
with the error warning subtitle. If we get enough funding we will rerun V5 
with the revised formatting. Some of the non-extra class answers mention the 
Extra test even if they are not for the extra exam, that has been corrected 
in the query code but until those AI responses are regenerated they remain. 
This should not affect the actual explanations in any important way.

Anyone wishing to contribute to funding this effort may send via PayPal to 
sales@akbeng.com for "hamStudyTool" improvements. Thanks in advance.

73 de Alan w6akb
