So i was having trouble the other day with a circuit I was testing and my oscilloscope going bonkers. I did not know what was going on, so I did some investigating and low and behold my homebrew power supply was acting up and had massive amounts of noise and ripple on all the power rails. So i grabbed a couple of these off ebay cheep, thinking well if they are crap i will send them back. Checked the ripple on the output and its not bad at about 100mv, not the greatest, but not bad enough to cause the scope to act up. Time will tell how they go. About the only thing I really need is a 3rd channel. I often need to run 2 12v rails and a 5v. So im going to have to hack up some dual leads. I went looking for double adaptors with 4mm banana and dual terminals, but they just don’t exist anywhere i can find anyway LOL
So while working on the code for the control board part of the receiver project, I came across an interesting conflict. The keyboard and the rotary encoder did not want to play nice with each other than and the compiler was spitting out an error about a vector conflict. Keyboard worked fine by itself and the rotary encoder worked fine by itself but put the code for both into the once program and the compiler went bonkers.
So i set about learning everything i could about interrupts on the Mega 2560. And this was where the fun began and i ended up going down a rabbit hole from which i was lucky to escape. Well i did survive and i did actually learn about interrupt vectors, pin change interrupts and external interrupts and a little about library conflicts along the way.
So this is not really a tutorial on using interrupts or the differences between pin change or external, but rather a rant about the 2 hours I spent last night reading and trying to understand what I had done and why there was a conflict. In the end it was because i programmed the rotary encoder to use pin change interrupts and it was the library i used that was in conflict with the keyboard library. I did not know that was what i had done, i had assumed that using pins 18 and 19 on the mega, being the external interrupt pins just worked in one way only. But no no no, they can be either external or pin change interrupts depending on how you code for it. Yes, a very rookie mistake.
So after finally working out what I had done wrong, or in reality why the libraries were in conflict, i changed 2 lines of code and had the rotary encoder working as it should be with the keyboard and everyone is happy. So at the moment I have a working keyboard, rotary encoder and VFO and now that my work week is done, I will hit the code hard tomorrow and make some real inroads into getting features in there that I want in my radio. Its not going to be as pretty as the Nextion vfo codes that are floating about the internet, but its going to be all mine. And sometimes, its good to know you have rolled your own and it does what you want.
This is the 2nd time that i have rolled my own control board using the SI5351A. The first one was much simpler than this and had a few other bits on the board. This time around I have gone to town on features that i will incorporate into the firmware. This is why i have used the Mega, i am using just about all the IO pins on offer. 38 pins are being used for the TFT LCD display. I would have preferred to use an I2C or SPI display, or perhaps even a nextion, but they are either 2 times the price or in the case of the nextion, i would have to learn how to program it first.
I have a total of 8 push buttons or switch control lines, 5 are currently going to be used for things like band change, mode change, tx/rx switching etc. The bandpass and lowpass filters take up another 4 lines each. Yes, this is a 4 band receiver/transceiver. The IF filters will also be switchable between 2 filters, one for SSB and the other a narrow CW filter.
7 of the analog pins will be used to control an attenuator that will give the radio between 0 and -31db of attenuation and finally, we have a rotary encoder for the VFO a keyboard and real time clock. I plan to incorporate my arduino logging software into the radio to have everything in the one box.
The plan at the moment is to have 80, 40, 20 and 15m SSB and CW receiver with a CW transmitter for the same bands, with the option of using the same boards to make a SSB/CW version at a latter date.
Boards were designed and laid out by me and manufactured in China at JLCPCB This is the 2nd time i have used them for prototype boards. The first order was great, nothing wrong with the boards at all. This last lot have a lot of pads with solder mask covering parts of the pads. Nothing that cannot be fixed with a little sandpaper, but very annoying. I think the issue was due to them being rushed because of a public holiday in China. I will give them another go and if the same thing happens I will go back to using PCBWay.
I have been planing ahead for this project for sometime. I had ordered these 40pin ribbon cables on the understanding that it was row compatible for use on LCD displays. Its not, it reverses inside row to outside somehow. Anyway I got Ebay China’d on that part LOL. So I had to make one using using a bit of superglue and some female to female dupont jumpers. Its rather stiff, but will work till a new part arrives.
The new desoldering vacuum made light work of removing the female headers off the Mega, being replaced with pin headers.
Board layout is a skill in and of itself. Its nothing easy and something that i struggle with. But i am getting better everytime i do a board. Above you can see i added parts to the other side of the board. LOL this is a first for me and I did not stuff it up. The 5v regulator is orientated the right way. 🙂
The fun part is about to start. And that is developing the firmware to make this thing do what it is meant to do. And no, i will not be sharing my firmware. The main reason is because I do not want to have the issue of supporting it or helping people who cannot get it to work. Most of the code is already on the net. There are a dozen VFO codes already on the web, the Arduino Logger code is on my site, things like push buttons etc are easy enough to do, so anyone who is keen enough can very easily integrate these things together and make a functioning vfo, logging and rig control board.
Here is the PCB layout as it currently stands. All the connectors are 2.54mm JST-XH connectors. The SI5351A is from QRP LABS I know you can get these also off ebay and simular places and the footprint is probably a little more friendly, but I choose to support QRP LABS when ever i can. They are a good grass roots company that has never let me down.
Gerber Files: Control_Board Use these at your own risk. At the time of posting the board was not 100% checked to see if all functions worked as designed or the layout to be suitable for any particular task. By downloading these files, you agree that you will only use them for your own personal projects and not to sell bare boards, kits or to make a commercial product with them. I call this, the don’t be an arsehole license. If you cannot agree to not be an arsehole, do not download my files.
I am no fan of desoldering, so when i saw this tool on ebay i was skeptical that it would perform any good. So i gave it a whirl today to see if it was going back or staying. Well its staying, its actually pretty damn good. Its not cheep for Chinese crap but it does the job. Nozzle over a pin, wait a second or 2 for the solder to melt, hit the button and suck it out.
I have been doing a little watching and learning on 20m FT8 over the last couple of days. Not the best on a 40m dipole, but hey if i put up a real antenna for the band it can only improve. So in the next couple of weeks I will have access to 20m, something that i cannot do on my current license, so i figured i should start to learn when and where the propagation tends to go in preparation for when I have access. There are a couple of all time new ones in that list, not enough to get me to DXCC in a hurry, but its good to know there will be DX to potentially work.
Well its good that you asked this LMAO. Well i have not been posting here much that is for sure, but i have been very busy with things. I have sat and passed a license upgrade and I have been working on fixing the uBitx lack of audio on the V4 boards, have been working on designing and prototyping stages for a receiver/transmitter/transceiver, it keeps evolving and have had a bunch of boards made in China and they are sitting on my desk AM waiting for me to populate and test them.
So there has been lots going on, more on all that to come and more over the next couple of weeks as i start to pull all these disparate threads together into something cohesive. Oh and I started to discuss with a mate the possibility of together designing and building a rig for SOTA etc that is cheep and simple. And in 6 weeks or so when I have the new call sign and I can use homebrew on air and just into a dummy load, I will be certainly looking to get some homebrew transmitting capability happening here at home.
A mate of mine needed a case for a homebrew radio he is building. So i knocked one up for him on my homebrew bending brake. A couple of bucks in sheet metal and screws and about 30 minutes of my time. Its not my best or neatest work, but its functional and will survive a lot of abuse doing SOTA and WWFF etc where it will be thrown in a backpack often.