Keyboard Shortcuts
Likes
Search
QMX practice mode suggestions
Hi,
I have three suggestions on how to improve the practice mode usability on QMX. 1. TX switch in digi mode When we enable the CW practice mode, QMX stops transmitting even in digi mode. I think it misses the most common use case of the practice mode, which is to use QMX as a digi transceiver and as a CW trainer. Practice mode should toggle TX only in CW mode, leaving digi mode alone. Perhaps there could be a separate setting to globally toggle TX off, if anyone needs it. 2. Muting QMX kills practice sidetone When practicing, I don't want to hear the static from the antenna. That's why I set the sidetone volume to absolute. Unfortunately, when I mute the QMX (set volume to minimum), sidetone stops as well. I have to toggle the knob just a little above minimum to enable sidetone. It makes sense if the sidetone volume is set to relative, but if it's absolute, then I think it should never be muted, even if the volume knob is set to minimum. 3. Easy toggle of the practice mode At some point in our CW journey we start making QSOs, but we still need to practice. Right now, toggling the practice mode is a pain, we have to do it through menus. It would be very, very useful to be able to personalize keys and do it with a single key press. It would be best to add an option to personalize all keys and pressing patterns (short, double, and long presses), but if it's too much work, then at least one button and one pattern could be personalized this way. I suggest a short press of the right button (VFO A/B). I never use double VFOs, but I frequently toggle the practice mode, so if I could just reconfigure the VFO A/B action to toggle the practice mode, it would be great. But other people might have different needs, so the option to reconfigure everything (maybe except the on/off switch, because I suspect it's handled differently) would be great. If it's still asking for too much, then, as as a last resort, a CAT command to toggle the practice mode would be useful. Thank you! |
Hello Adam ? I have three suggestions on how to improve the practice mode usability on Thank you for the suggestions.? ? 1. TX switch in digi mode I have added this request to my list.?? ? 2. Muting QMX kills practice sidetone I agree, I have added to my list.?? ? 3. Easy toggle of the practice mode Once I have implemented the planned BASIC scripting, it will become feasible to personalize the UI including making the buttons or button combinations do different things.? 73 Hans G0UPL |
I'm also curious as to the answer, but 14 year old me cutting his teeth on his Commodore 64 is tickled to think he might be able to program a radio with BASIC :-D On Thu, Sep 12, 2024, at 09:12, John Dusek wrote:
|
Hello John I am not very very familiar with Python but my impression is that it would?be a lot less useful without the plethora of libraries available for every little thing.? A microcontroller (even a powerful?one like on QMX) is a very limited environment. Limited Flash program memory, RAM, processing speed. I think BASIC is ideal? to be able to implement in a minimal system. It's also ideal in other ways too; very easy to learn and use.? And I HAVE written a BASIC interpreter which exists in the current U4B - an enhancement to this will suit QMX very well. I have not tried writing a Python interpreter/compiler/whateverer.? Basically (pun not necessarily intended but) I think BASIC is ideal from the perspective of suiting very small systems, being easy to learn and use for non-software folks, as well as being flexible and powerful enough to do everything?necessary in the QMX context.? 73 Hans G0UPL On Thu, Sep 12, 2024 at 5:13?PM John Dusek via <johndusek3=[email protected]> wrote:
|
I agree with this assessment. By modern standards, a Commodore 64, despite being a pretty powerful machine for the money at the time, is basically an embedded system. It was able to squeeze a BASIC interpreter into 8KB and the rest of it's OS into another 8KB, and people were able to do fairly sophisticated things with it despite the limitations of unstructured BASIC as a language. The only other still-current language I can think of that would be as useful in such a small amount of space is Forth, which has a grammar many people find opaque. Forth is still out there in embedded systems, too, though, and for exactly this reason. Python is a fantastic language (my current main day-job language, and I love it), but it's not a language for a micro-controller environment. Michael WD0OM On Thu, Sep 12, 2024, at 10:20, Hans Summers wrote:
|
Oh yeah, the practice mode behavior has bitten me in two scenarios. First time trying out FT8, it just wouldn't transmit. Took me a whole before finding out it was because CW Practice mode was on. Second time was when tuning my antenna. It seemed to give me random values, that didn't react at all to any changes to my antenna tuner. Then I thought: maybe it's the practice mode again.
?
I can imagine there being an actual use case for a "disable transmit" option though (example: people getting a QMX, but not having a license yet, or not having an antenna connected), which could maybe be a separate option?
?
I would really love to have easy access to practice mode on/off. My use case is that I'm pretty inexperienced with CW. So I tend to practice a bit before going on the air, and I switch between practice mode and "scary mode" quite often. |
Hans, I'm so curious about the planned scripting! Whatever language you choose, it sounds like it would be awesome to have. One thought: have you heard about MicroPython? It's a lightweight Python implementation, specifically for microcontrollers. I have no idea if it's even possible to use it here, but could be interesting to look at. |
Hi All,?
I¡¯ve experience of both Basic and Python on microntrollers. There are two main dialects of Python for microcontrollers, MicroPython and CircuitPython. Both are available for the STM32 used by QRPLabs . They are widely used and it¡¯s possible to develop sophisticated application with them. For beginners CircuitPython is the way to go mostly because of the huge amount of learning material provided by Adafruit. However because Python is interpreted it¡¯s never going to be as fast, flexible or efficient as a compiled language as C. BASIC is also interpreted but doesn¡¯t suffer from the Object Orientated overhead that Python does.? Good old MMBASIC is available for many Microcontrollers. One implementation is here:? Microcontroller Pythons and Basics both use libraries for similar things, for example talking to common sensors.? Given that Hans has provided a BASIC interpreter tailored for use with one¡¯s radio of choice I would argue that, providing it has functions for everything one would reasonably wish to do, that¡¯s sufficient.? Years ago I bought a Jupiter Ace z80 based computer which attempted, and failed, to take on the ZX spectrum by using Forth as a programming language. Forth was lightning fast compared with ZXBasic however so different in concept that it failed though implementations are still around.? There is an interesting scripting language called LUA which is very fast and used in the gaming community. A few years ago I got it to run on a Raspberry Pi. See? It¡¯s been implemented on various microcontrollers including my personal favourite the RPI Pico. See? Have fun,? Steve G0XAR? |
Now we just need to add a VIC II and SID chip and we're most of the way to a C64 again :-D On Thu, Sep 12, 2024, at 12:48, Jim wrote:
|
Hi Steve, all Thanks, that was some interesting reading. MicroPython, CircuitPython and MicroLua. All still too big though for what I have in mind. For example, MicroPhython?says it runs on as little as 256K Flash. That would be half the entire program memory of QMX. It would fit, now... but would consume a lot more space than I'd like; and that's even before you consider adding a full screen text editor, file system and other parts of a minimal operating system.? Consider the U4B, the CPU has 128 Flash only, and there's still load spare; it has a miniature operating system with a file manager, a command line, full screen text editor, BASIC and debugger. As well as the radio and all that's necessary to send WSPR, CW, FSKCW, Hellshreiber etc. The 128K EEPROM "Disk" is formatted in a FAT16-ish file structure and can store really substantial programs and/or data, considering the BASIC commands are tokenized so are very compact, as well?as fast to execute. All the functions such as communicating with I2C devices and reading or writing digital or analog from GPIO pins, controlling the transmitter, allowing the use of external sensors and controlling external things, are all supported in the BASIC, reading and writing data files, as well as all the normal control structures etc.? When Dave VE3KCL and I started the U4B project it was way back in early 2015 or so, when I was still living in Tokyo. A colleague at work had given me his old Kindle3 ebook reader with its ePaper display and mini QWERTY keyboard; I'd found a jailbreak to unlock it, inside it's Linux with vi editor and I was able to install a C compiler. I used to write code on the 30-minute subway ride to and from the office. It's where I started work on the BASIC and the Virtual Machine, originally running on the ATmega328 but later ported to the much more powerful STM32F103 used in U4B.? For QMX, if I make it do everything U4B can do and improve it a lot compared to U4B, it will provide loads of fun and functionality. Even non BASIC fans will be happy. Trust me, y'all gonna love it...? 73 Hans G0UPL On Thu, Sep 12, 2024 at 8:37?PM Stephen Farthing G0XAR JO92ON97 via <squirrox=[email protected]> wrote: Hi All,? |
¿ªÔÆÌåÓýI'll join in the fray, here: I don't know what radio libraries exist for Basic (or
Python) at this time, but I'll point out that Python is currently
a popular language where Basic is fading. It's also got a lot of
"modern" features (like local, rather than global variables!) and
there are more libraries available than you can shake a stick at.
You might also want to consider whether you really want an
interpreter in the radio--maybe it would be easier to use a
cross-compiler in the development environment, and load a binary
to the radio? That might let users pick the language they want to
work in, and connect to a language independent API in the radio. I've been away from it all for a number of years, now, and I don't really know what the state of affairs is at this time. So take that into consideration as you consider my comments! ;-) 73, Paul -- AI7JR On 9/12/24 10:27, Willem VA2WLM via
groups.io wrote:
-- Paul -- AI7JR |
At the risk of speaking out of turn, I think the problem (and this is speaking as a firmware engineer in my daily life) is that we're dealing with a real "potato" of a processor here. It really is closer to the old Commodore 64 in terms of its capabilities (faster, but not that much more memory or storage, if I'm getting the chip right). As Hans points out elsewhere in the thread, even Micropython is kind-of big for that environment. Cross-compiling, in turn, is great for nerds who know how, but for people just learning and wanting to play around a bit with some scripting, it's a lot more work. It would raise the bar of entry. I'd never defend BASIC in **general** terms compared to other, more modern interpreted languages, but in this environment, many of the advantages that made BASIC popular in the First Microcomputer Era of the 1980s also fit well here! 10 Michael WD0OM 20 GOTO 10 On Thu, Sep 12, 2024, at 20:02, Paul - AI7JR wrote:
|
Hi Adam,
?
Practice mode is very good as it is.?
The background sound which is very useful in learning in a real life context is?
one of its best attributes. Most of the other changes, you can easily accomplish
by learning to program yourself.
?
Programming yourself, is a very basic skill in learning. Practice, practice practice,
and then keep on practicing.?
?
What is the language of self programming??
Write yourself notes, and stick them around.?
For instance I have one in front of me now on a 3x5 card.
BEFORE POWER
ALL SYSTEMS
DOUBLE CHECK
?
I suggest morse code is a great tool for programming yourself.
In practice mode.?
?
? |
I'm actually super excited about getting BASIC on my QMX. A surprising language choice at first sight maybe, but it makes sense in the context of the limited resources. I didn't know MicroPython was still pretty large. But it makes sense that Python would be much larger than BASIC.
?
On a personal note, I got started with programming BASIC as a kid in the 80s, on my Commodore 64. I still have a Commodore 64 (and some other 8 bit computers from that era) and play around with it from time to time. So it's going to be fun to play around with BASIC on the QMX. |
I well remember when?you could walk into a WH Smiths newsagent in the town high street, back in around 1982, and touch a real?Sinclair ZX Spectrum 16K RAM computer with its squiggy rubbery keys. I was probably around 11 years old. I could walk up to that thing and (annoyingly, perhaps) pull the power plug to get it out of whatever game the staff had loaded into it from the attached cassette player. Then type in a few lines of BASIC and straight?away, make it do fun stuff. One of my early favorites was making the screen fill up with random coloured blocks (characters), on the 12-inch color TV they'd have it hooked up to. From there it progressed to random lines, random circles plotted on the screen.? The user manual next to the demo computer had a comprehensive guide to all the BASIC commands. Heaven! I could normally stand there for about half an hour teaching myself programming before some staff member would eventually notice my crimes and come and kick me out. Then spend the rest of the day dreaming about my parents, maybe someday, having enough money to actually buy me one of these miraculous machines.? It took some years, until eventually I carried enough rounds of golf clubs for lazy golfers, delivered enough newspapers, and sold enough golf balls fished out of the rivers on the nearby golf course, and had done?enough? babysitting for neighborhood?brats... to make some money myself then?I could buy my own. That was a factory-reject Acorn Electron, from a surplus store in Hove on England's south coast. I never did find out why it was a factory-reject, it worked fine! I had no TV but they sold a 9-inch monochrome open-frame CRT monitor. First job was building a 15V 1A power supply for that, no major challenge there; then a slightly more challenging (to me, at the time) H-sync vs V-sync separator to make the video output of the Electron suit this little monitor. The Electron was a 6502-based stripped down BBC computer; the nice thing about these was the built-in Assembler and that the manual described both the BASIC commands and machine code and the Assembler.? My maternal Grandfather was very much into the Sinclair stuff and eventually upgraded to a ZX Spectrum from his ZX81, so that came to me... before long I had added a real keyboard from a surplus store in London and adapted a scrap 32K RAM board. My pimped up ZX81 looked a mess but worked great. Eventually I got a ZX Spectrum too when he changed to ZX Spectrum+.? These were all great learning tools.? So if a lanky hairy teenager could do all this on limited machines 4 decades ago, I think it will be perfect for a minimal scripting tool in QMX, without consuming all the machine memory?and resources. We'll have fun, trust? me! 73 Hans G0UPL On Fri, Sep 13, 2024 at 11:43?AM Willem VA2WLM via <wkjagt=[email protected]> wrote:
|
Bull Electrical for the win!
toggle quoted message
Show quoted text
So much of my paper-round money was spent there. Good memories. On 13/09/2024 10:45, Hans Summers wrote:
Electron, from a surplus store in Hove on England's south coast. |
George Korper <georgekorper@...> wrote:
The background sound which is very useful in learning in a real lifeYes, when I want to turn it on, not when I'm forced to do it. Plus when I practice with others on Zoom (CW Academy), I don't want any background noise. The audio through Zoom isn't perfect even without any extra noise added. |