Peter DK7IH is a master of compact homebrew transceivers. I’ve been reading his excellent blog where he chronicles more than half a dozen homebrew HF transceivers and related projects. Most are compact SSB superhet transceivers with digital VFOs, AGC, metering and PAs in the range 5 to 50 watts. A few of these rigs are just so remarkably tiny I wonder how he has the persistence and patience, not to mention how he gets them stable. With Peter’s fine examples in my head, I started daydreaming about a compact SSB/CW transceiver, hoping to go a fair bit smaller than my slightly chunky attempt at a hand-held from last year.
This project was to be an exercise in compact physical, electrical and RF layout and construction. Some of the techniques I’ve found useful in my earlier projects would assist. It was designed and built in modules, some of which, with overlay boards, became assemblies — the VFO/BFO/controller, receiver/exciter, bandpass filters and switching, low pass filters and switching, and a T/R relay/power regulator and RF sampling board. In each case, the board was designed to fit snugly in the compact chassis, and the necessary parts squeezed in. In some cases, double sided boards with components on both sides, mounted vertically and spaced off an angle aluminum divider aids physical robustness and screening.
The complete circuits:
- The transceiver proper, with mixers, IF, filters and transmitter PA — SP6-DK7IH;
- The digital parts, Arduino Nano, si5351, and control circuitry — SP6-DK7IH – Page2.
VFO / BFO / Controller / Keyer
I started with the Arduino /si5351 module, built onto an angle aluminium front panel. The Arduino and si5351 provide the VFO, 12MHz BFO, all supervision and control functions, and a CW semi-breakin keyer. The screen is a 128×64 SSD1306 OLED.The primary challenge with this module was to minimize physical size and make it all fit in the 32mm height. A lot of sketching led to a custom PCB with 0.1 inch header sockets for OLED, si5351 breakout and Nano, as well as a discrete MMBT2222 buffer amp on the CW carrier. This unit measures 95x32x45mm and gets its own video and write-up here.Adding support for an OLED display into my SummitProwler script involved a fair amount of code refactoring, some of which was overdue. Each of my transceiver projects has its own #define label which allows the pre-processor to select the appropriate code blocks for that particular rig. I will continue to refine this common script and put latest versions on github.
Receiver / Exciter module
Peter DK7IH has several rigs that use the symmetrical SA612 architecture, where a pair of relays route receive and transmit signals between two SA612 Gilbert Cell mixers. This is an established pattern, used the Peregrino and other rigs. I stole ideas from two of Peter’s designs, adding dual date MOSFET gain stages (an RF and two IF stages) in the receiver signal path.My experience with dual SA612 receivers on the HF bands is that they lack gain. Two additional gain stages should suffice. I reserved board space for two, thinking I’d use one in the IF and one in the RF signal paths. The Exciter board was made in my usual fashion — hand-drawn with various marker pens on a cleaned PCB blank, etched, cleansed again, and sprayed with matt clear enamel.
Settling on the receiver’s gain distribution was experimental. I populated the Exciter board, containing the SA612 mixers and relays, electret microphone amp, two dual gate MOSFET gain stages, socketed 12MHz homebrew crystal filter, AGC, and the audio chain. Room was reserved for the transmitter pre-driver and driver. A lot of the radio right there, courtesy of this very compact 2 x SA612 architecture.During development, I hooked both MOSFET gain stages in, either side of the crystal filter. Both were running at moderate gain, 10 to 12 dB. With no RF amplifier, the receiver sounded lively on all bands 80 to 20m. I experimented with un-tuned drain loads and source bypassing to achieve moderate IF stage gain with stability.
Band Pass Filter module
Next, I designed the Band Pass Filter board to host four two-pole BPFs with T/R switching and a trailing dual gate MOSFET amplifier stage. I chose the QRP Labs BPF designs for 80, 40, 30 and 20 meters, being the four HF bands that carry a reasonable amount of SSB and CW traffic in VK.Each filter was individually characterised and adjusted by sweeping the band on the VFO’s 10kHz step. The lower three bands give about 4 to 500kHz before receiver gain noticeably drops off. Twenty is narrower, about 150kHz, which could be re-tuned, if my personal homebrew energy levels permit down the track. I left it peaking on the lower end of 20m for SOTA CW work.
Hooking this in made the receiver lively and under AGC control, no distortion could be discerned, even on the huge local signals coming off a full sized dipole during evenings on 80 meters.That’s how I ended up with dual gate MOSFET RF and two IF gain stages, in a dual SA612 receiver architecture. I used on-hand junk box MOSFETs — a couple of MFE131s from my youth (probably collected around 1980) and a BF960 (bought early 2000s). There was no science in where these devices were placed, I was simply experimenting, and the results were good!
A narrow single-sided board was made to overlay the MOSFET amplifier side of the BPF board, hosting a PCF8574 demux SOIC IC and four 2N7002 FET relay switches. This board takes 12VDC and an I2C clock/data pair from the Nano and selects the correct BPF. Since these relays draw about 30mA when closed, and the LED around 5mA, the total current drawn is well within the 2N7002’s 300mA Id limit.
12MHz was chosen as the IF for no particular reason other than I could draw from a bag of surface mount crystals on hand. And because a previous transceiver project has proven that 12MHz works fine for a rig covering 80 to 20m. A four pole filter was knocked up in the usual fashion (G3UUR). 100pF capacitors should have resulted in a 3kHz bandwidth, but possibly due to variances in the junk box bag of 12MHz crystals, which spread up to 200Hz apart, the bandwidth is wider, and a bit peaky around 2kHz.The Spectroid plot below shows the 2kHz peak graphically, and no real ‘plateau’ in the receiver’s audio spectrum. Could do better. But it allowed for testing and debugging. I’ll rebuild this filter later. The filter was made shielded and pluggable on 0.1″ header pins to allow replacement.
Driver / PA
The room on the Exciter board near the SA612 receive/transmit mixer was populated with a small ‘drop-in’ board hosting the transmitter driver (BFU590GX) and PA (IRF510). This irregular shaped board has its origins in a change of mind — the space on the exciter board was originally etched for just the pre-driver and driver, but upon closer inspection, I realised I could fit the PA FET as well. So an overlay board was made up for the available space.
The BFU590GX driver is a ‘modern’ replacement for the venerable (but forty year old) 2N3866 or 2N5109. It has an unusual pin arrangement, three pins and a flange– the two outer pins are emitter, base in the middle, flange is the collector. It is designed to heatsink to the copper plane. The IRF510 is placed so that its flange can be bolted to an angle aluminium divider running between the Exciter and BPF boards.The IRF510’s drain is brought out to the DC socket on the rear panel before the 7812 12 volt regulator. This allows use of a LiFePO4 4S (12.8V), LiPo 4s (14.8V) or LiPo 5S pack (18.5V). At 20V, the single IRF510 delivered 10 watts or more, and should be reliable as long as I don’t mistreat it. The driver runs cool at all times but the IRF510 got really hot at these higher voltages, so the excess heat needed to be taken care of — more on this later.
I tested the driver/PA on the bench, using a 2N3904 crystal oscillator and buffer as a signal source. Finding that this little PA module was stable, 160 to 20m, from 1 to 10 watts output, made me happy. Further tests gave predictable but interesting results.The first table illustrates the gain characteristics of the crystal oscillator, driver and PA , at 7MHz, with DC supply voltage varying from 12 to 18 volts. The increasing DC supply voltage was supplied to all stages including the crystal oscillator and buffer, which partly accounts for increased output as the supply voltage is wound up. At 7MHz, I got a clean 8 watts from the single IRF510. Needless to say, it gets quite hot very quickly at this power level and 100% duty cycle.
|DC V||Drive (Vpp)||Driver out (Vpp)||Driver gain (dB)||PA output (Vpp)||PA power||Overall gain (dB)|
The next table shows the gain characteristics of the driver and PA from 160 to 20m on a fixed 13.8 volt supply. The drop in the 2N3904 crystal oscillator output (and presumably the actual crystals themselves) with frequency is noteworthy. Different crystals would have given more or less output — I did not take the time to experiment:
|Band||Drive (Vpp)||Driver out (Vpp)||Driver gain (dB)||PA out (Vpp)||PA power||Overall gain (dB)|
Both the driver stage and the complete PA strip (driver, IRF510 PA) maintain their gain (18dB, 42dB) from 12 to 18 volts. In both cases, gain drops off with increasing frequency, which is a known characteristic of the IRF510 when used in its basic single-ended configuration. Higher drive at 7MHz and above from the exciter (rather than from a test oscillator) will improve things.
LPF and T/R Relay boards
Hosting the driver/PA stages on the Exciter board meant that only two more boards were needed, one with the four LPFs and relay switching logic, and a second board mounted on the rear panel for the T/R antenna relay, RF sampling, and DC power regulation.
The LPFs reproduce the W3NQN design, see QRPLabs LPF kit page for the link. The T37-2 and T37-6 toroids are good for 10 watts of RF power.The LPF relays each have a 2N7000 switch that connects to another PCF8574. Independent BPF and LPF control allows the script to drop out the LPF relay when the transmitter is inactive, a feature in my script that saves 35mA (one relay current load) in one of my earlier transceivers.
Boxing, socketry, switchery
I made up an ‘angle and sheet’ chassis with aluminium angle pieces for back panel and sides, and a 1.5mm base panel. The rear panel mounts the BNC antenna socket, DC socket, and two keyer memory push-buttons. Space is quite limited.
A compact box made including a loudspeaker difficult, so I dropped it. On the shack bench, a decent quality comms extension speaker provides good sounding audio. In a noisy environment, earbuds deliver a good sound.
Final wiring and debugging
Assembly was a process of interactively building in and wiring up features. Having a well worked Arduino script to use makes this easy, as you connect up Nano pins, things– like the keyer, s-meter, T/R switching — all start to work, usually with only minor if any script tweaks. All code specific to this transceiver is wrapped with #ifdef SP_VI #endif preprocessor directives. This keeps the script common to all my transmitters, receivers and transceivers.
The transmitter came together well, but two problems had to be overcome. Firstly, the SSB signal on the output of the BPF amplifier stage was dirty. It took me a while to discover the cause. The BFU590GX driver has two inputs — one from the transmit BPF amp stage for the SSB drive, and the other from a gain stage on si5351 CLK#1 which is keyed CW generated directly at the transmit frequency (the CW drive). In SSB transmit mode, this CW amp was left on, and despite the fact that CLK#1 is disabled for SSB, it was picking up micro-volts of stray BFO and VFO signal from the si5351 bay, amplifying this RF jumble, and dropping 50mV of it onto the base of the driver.When I added a mode switch to only apply 12v to the CLK#1 amp stage in CW mode, the problem disappeared. It’s obvious if you think about it. A 20dB gain stage a few cm away from +3dBM clocks, of course it’s going to amplify the noise it hears.
The physical switch was later replaced with a high-side DC switching pair (BC846, BD140) wired directly to a spare Nano digital pin, with the Carrier Oscillator buffer as its load. When the paddle is pressed, the script engages transmit, and raises this pin, turning on the buffer, a fraction of a second later.
SSB vs CW drive levels
The second transmitter problem was uneven outputs between CW and SSB. RF power output on 80m was 9 watts CW and 3 watts SSB (reducing to 6 watts CW and 1 watt SSB on 20m). Measuring the drive levels to the BFU590GX driver revealed a huge difference, several volts p-p of CW carrier versus 150mV of SSB. Some difference is inevitable if you use separate paths for CW and SSB, but clearly the SSB drive was at least 15dB too low.
I experimented with the BPF amplifier’s MOSFET drain transformer, replacing the bifilar centre-tapped arrangement with a 10T:3T transformer, both on FT37-43s, which made little difference. Increasing the MOSFET stage’s gain might have helped, but it is shared with the receiver, and the receiver gain distribution was about right.
So I opted to make up another gain stage, with a 2N3904, a pre-driver in the transmit signal path, between MOSFET amp and the BFU590GX driver. I made this on a tiny overlay board, just 18x10mm, substituting a tiny BN-43-2402 for the FT37-43 (5T:2T). It worked perfectly on the bench, delivering 23dB gain at 12v and 20mA.
The transmitter now had too much gain on SSB, breaking into oscillation in the sections of 80 and 40m where the BPFs peaked. Winding the mic gain back didn’t solve the problem. After some more hours of fiddling around, a ferrite bead with two turns of fine wire on gate 1 stabilized it.
One more transmit bug, a big squeal in the speaker when switching from receive to transmit. The TDA2003 audio amp is always powered on, but the BC547 audio preamp draws from the +12v receive line. Powering the TDA2003 on receive only causes other problems due to the charge and discharge times for some big electrolytics. I deemed it necessary to keep the audio power amp on during transmit for the sidetone which you really want to have in earphones, and injected before the volume control. So powering it down on transmit was not an option.
I realised that the squeal disappeared as the mic gain was turned down. A 2N7000 mute switch across the mic gain control didnt work. Then it occurred to me that the electret mic could be disabled by removing bias. So the bias line was lifted from +12v Tx and connected to a spare Arduinio digital pin. When the PTT is pressed, the script does the usual T/R switching, waits a hundred milliseconds, then raises the digital output to put bias on the mic. This slightly unconventional mechanism well and truly cured it.
At the Homebrew Group’s April 2019 meeting (Amateur Radio Victoria) Rob VK3MQ brought along his spectrum analyser and we measured the rig’s spectral signature. The 7Mhz carrier is shown below. There is nothing much at all above the fundamental, proving the LPF is doing it’s thing, and a series of 2MHz spikes at -45dB below the fundamental. Other than the 3.5MHz band (where the second harmonic was -40dB) the other bands were similar. Of interest is the spike series at 2 MHz intervals, origin unknown, but not related to the VFO.
A ‘gumption trap’ is a term coined by author Robert Pirsig to describe an aspect of working with your mind and hands that frustrates, or erodes your energies. Gumption traps are often due to bad design, or point to opportunities for better design. It’s worth thinking about these situations when they occur because they are prompts for better homebrewing.
One gumption trap I fell into concerned reading the paddle. This employed the old trick of using Arduino’s analog input to read the voltage from a string of pushbuttons with resistors forming a voltage divider. It’s handy because you can get 4 to 6 buttons with one Arduino analog input. It’s fiddly because if you don’t align the range test values, the buttons can stop working or the circuit can behave unpredictably. I’ve used this mechanism half a dozen times but never has it given me grief like on this project.The keyer, which reads only three values (left, right or open) was randomly generating a dash when the paddle’s dot arm was pushed. Not always, just occasionally. One occasional dash, followed by the expected string of dots. Monitoring the analogRead() return values, the rogue dash was a legitimate dash, a number exactly in the middle of the range. There was no pattern I could discern. I changed the resistor values, thinking it might be a problem due to the relative position of the dot and dash numeric ranges. Made no difference.
Finally, after a number of hours’ gumption loss, I scrapped the resistive voltage divider and hardwired the paddle onto two unused digital pins. This was only possible because the OLED connects with I2C, freeing up six digital pins normally used for parallel LCD data and control lines. ‘Backpacking’ an LCD would similarly free up pins. It occurred to me that multiplexed pushbuttons used elsewhere (band change, for example) do misread sometimes, with no harmful results. But there is no room for error with a keyer.
Another afternoon was lost to landing two of the I2C devices on the same address 0x3C with unpredictable effects. After a good break I returned to the bench and discovered the address clash within minutes.
With the little transceiver mostly finished, and unable to get out to a SOTA summit due to other commitments, I took it out for a field test to a park bench on The Diamond Creek Trail, north of Edendale Farm (Sunday April 14th 2019) on a beautiful 23 degree C mid-autumn afternoon. With my 40-30-20m trap dipole (with 80m tails) on a squid pole, I played radio from twilight thru to about 8pm on 40m and 80m CW. Video highlights are included in the feature video at the top of this post.
The highlight was working KA6BIM (Oregon, USA, received 599, a contest report!). A bit later, ZL2RX (559) on 40m CW just after sunset. Then a bit later again, ZL3XX and VK2CCW on 80m CW (both 339). The place was RF quiet, except when a Metro train rolled past on the Eltham to Diamond Creek rail line, about 200m away, which raised an S9 RF hash for about 30 seconds. There were no issues whatsoever, the rig performed exactly as expected.
On a summit
On Sunday April 28, 2019, I took the little rig up to Mt Dandenong VK3/VC-025), 630 meters, 2 points, Melbourne’s closest SOTA summit on the east side. Starting early, going on air around 0830, both weather and HF band conditions were fairly poor, but despite constant drizzle and rain, I got the requisite four contacts (559 from Ian VK5CZ, 559 Steve VK7CW, 5×9 from Peter VK3PF, 419 from xxxx VK3KTT, 5X9 from VK2UH). With the summit qualified, the little rig was christened Summit Prowler 6!
Post build reflection
This project consolidated my approach to homebrewing transceivers. Not much in this little rig is new, but the compact size enforced a design constraint and a focus that helped with many of the choices. The ‘gainy’ receiver is lively and fun to use, and with the help of the AGC works on a short run of hookup wire or a full sized dipole.
A few potential improvements come to mind. One is to consider eliminating the physical T/R relay and use solid state T/R switching instead. This may necessitate a number of 2N7000 muting FETs spread around the receiver. An idea for a rainy day.Another is to replace the BPF and small signal T/R relays with a modern RF switch. I’ve used the SA630D for this in the past. Glenn VK3PE is experimenting with a new RF microwave switch () in a BPF board. I’m keenly awaiting the results of his experiments.
Solid state BPF and low level T/R RF switches like these would have many advantages, including cutting current consumption by 60 to 70mA, and eliminating the 2N7000 relay drivers and relays, allowing even smaller modules.Finally, this was my first transceiver build with my Siglent CML1102 digital storage scope in the shack, and using it has been a joy! Compared to my old 30 year old cheapie analog scope, it’s been like turning a light on in a dark room. Why didn’t I get one of these earlier?
This project used parts from my junk box and also from the usual suppliers — Jaycar, Altronics, Minikits, element14, eBay.
None of the stages are critical and common-sense component substitutions will work throughout.
Peter DK7IH’s Micro42 circuit and details here.
Raduino circuit is here.
My code is here.
If you want to build something like this, in part or as a whole transceiver, in a large or compact style, do post a comment and let us know how you progress.
There is a register setting that will disable the SI5351 output buffers. I added this to the librarey to do it.
* output_driver(enum si5351_clock clk, uint8_t enable)
* added by JBH
* Enable or disable a chosen output driver
* clk – Clock output
* (use the si5351_clock enum)
* enable – Set to 1 to enable, 0 to disable
void Si5351::output_driver(enum si5351_clock clk, uint8_t enable)
// reg_val = si5351_read(SI5351_OUTPUT_ENABLE_CTRL);
reg_val = si5351_read(SI5351_CLK0_CTRL + (uint8_t)clk);
if(enable == 1)
reg_val &= ~(1<<7);
reg_val |= (1<<7);
// si5351_write(SI5351_OUTPUT_ENABLE_CTRL, reg_val);
si5351_write(SI5351_CLK0_CTRL + (uint8_t)clk, reg_val);
LikeLiked by 1 person
Thanks James. I use Jason NT7S’ si5351 library, it includes a method to enable and disable each of the three clocks. I use this to key the CW characters. The method is
void si5351_clock_enable(enum si5351_clock, uint8_t);
where the uint8_t is a boolean; call it on a clock with 1 and the clock comes on, 0 and it stops. So all the clever si5351 register clever code is hidden from me. Well done for working it out!
Another great build! Still don’t know where you find the time!
73 David VK3IL
LikeLiked by 1 person
Thanks David, this project has taken 5 months from start to finish. It was quite labour intensive, being 4-band and very compact (for me). The things that don’t work as expected always slow things down. Think I’ll build a crystal set on a lump of wood next for some rest & relaxation.
beautiful construction, very nice Paul ,congratulations ,I might put it instead of irf510 ,rd16hhf1.yes i know ,the bias current is highest but however …I’ll have a couple of questions about this but first i must finishing ei9gq rtx 😉 🙂
LikeLiked by 1 person
Mikele, thanks for your informed comments, FB. I debated with myself, tried and tested IRF510? Or the Motorolla device? I opted for the old IRF510 because, as you say, bias current is lower. And it really has lots of gain. It’s a bit fragile, I’ve smoked one already. But it always seems to work for me.
73 and keep melting solder.
Looks fantastic Paul! Looks like a lot of heads-cratching and design work has gone in to it.
LikeLiked by 1 person
Thanks Glenn. Yes a few things had to be sorted out. But I’ve done a few of tbese kinds of rigs now and am getting better at diagnosing. The new digital scope made a huge difference, I should have replaced my junky old analog one a long time ago. See you sometime. Keep activating, I always chase you if I can. 73 de VK3HN.
Great build Paul. Wow, you manged to squeeze so much into a small package! Did you have any problems with noise coming from the OLED screen? I ask as I’ve had a few problems in the past and have moved away from them. I’d love to use them again if I could, as the they are nice and small and offer so much. Just look at your display!
Keep up the nice work
LikeLiked by 1 person
Thanks for your comments Charlie. It was a challenge to ‘build tight’. It requires a bit of extra care and concentration. But I really like the result. A compact, versatile rig is likeable! But I now feel like building a crystal set on a slab of Oak!
Re OLED1306, I followed DK7IHs advice and decoupled the DC supply via a 100uH series L and various decoupling caps. I also bus 12v around the chassis, tap it onto each board, and then derive +5v or +8v via onboard 78 and 78L regulators. There’s a bit of digital noise audible with no antenna, but with antenna, its swamped.
Keep melting solder and making videos 😀.
73 Paul VK3HN.
Excellent, thanks Paul. I’ll look to try that approach in the next build(s).
LikeLiked by 1 person
Hi Paul, great design and realization! ***Thumbs up***
vy 73 de Peter
LikeLiked by 1 person
Hi Peter, thanks for commenting, as you can see, your Micro42 rig was the inspiration for this design, so credit where credit is due! Your detailed write ups and circuits left little for me to follow up. Maybe others will try their hand at this configuration.
Overall I am very pleased with how well this simple design works from 80 to 20m. Particularly the receiver gain distribution, stability and AGC. I think it hits a kind of sweet spot. To improve it would necessitate a significant jump in transceiver complexity, and size.
I’ll keep watching your blog and projects with great interest. Keep up the good work.
73 from Paul VK3HN.
Hello Paul ,i have some problem with pcf8574.h when i try compile sketch for dds ,can you give me your e-mail?thanks in advance ,73 de 9a3xz-Mikele
Vk3hn at Yahoo.com
Paul sorry but isnt posible ,554 delivery error: dd This user doesn’t have a yahoo.com account (email@example.com)
LikeLiked by 1 person
I am planning to build this in parts. and I find a small discrepancy in your circuit diagram. First of all what are you selecting different pins for VFO/BFO injection on the two NE612 ? is it a mistake or is it intentional. Your first relay to which your antenna is connected is shorted. I guess that’s a mistake in your schematic.
Just my observation.
Hello Paul, congratulations on great devices!
I decided to build something similar to your SP_VI radio only on 80, 40, 30 and 20 meters. I am an amateur (from Poland) and I have no experience in Arduino programming. I’m not an IT specialist and I’m just starting to work as an amateur on this platform. I save your program on my Nano without any problems. Si5351 and the Oled display and band decoder on PCF8574 work. The S meter and output power meter also work. The power consumption is below 80 mA. So all is well. However, I don’t have 10 Hz and 10 kHz encoder steps. I only have 100 Hz and 1 kHz. The transmitter tuning button (Tune) also does not work. It’s a pity because it’s important to me. The bands decrease only: 14, 10, 7, 3.5 MHz and so on in the loop down. And not up. Only PB_down works. PB_up is not responding. I cannot enable reflected power reading (VSWR_METER). If you can help me, give me a hint, I will be grateful. I sent you an email, but I’m afraid my email is not working properly and not all messages reach me. Regards Robert
Hello Robert, thankyou for your comments and congratulations on getting as far as you have. This is not an easy project, it took me many months! And there were many problems to be overcome. It seems you sorted out how to include the lite ASCII OLED library and the S-meter font. Good work. There are a number of things to discuss, let’s resume on email. Prt459 at gmail dot com
Thank you. I sent an email with a modified sketch. Regards
Hi Charudatt, thanks for commenting. I am on mobile at the moment so will check the schematic when in the shack . Good luck with your build, its a conventional design but a good performer.
Thank you, can I send you the schematic that I have drafted for your review ?
Planning to make a proper PCB for it.
Sure, my email can be found from WordPress, Google or YouTube, or firstname.lastname@example.org (hoping that still works).
Dear friend, can you post me the library of this project for “arduino nano- si5351”
Hi Dundas, everything you need can be found on my github account, start at the ‘Arduino si5351 Script’ page on this blog and work it out from there.
Great porting of DK7IH’s project, I really like the Arduino and Si5351 portion of the whole radio. I have started to prepare for building my own version of your schematics and I found a couple of discrepancies.
First one is the resistor configuration of the Band Up/Down buttons, shouldn’t the 1k resistor tie to +5V and the PB/Resistor junction goes to the Arduino in a fashion similar to the Keyer push buttons?
The second one is the SideTone_Out signal. Where does it tie to? Does it go straight to the TD2003 input?
And last but not least a question, the A1 and A7 pins of the Arduino are free, is it possible to use them for VSWR? Any recommendations?
Thanks and 73
LikeLiked by 1 person
Hi Elia, thanks so much for your comment and interest in this project. First to your questions. On the schematic page 2, well spotted, you are correct, the band up down should have 1k to 5v and the junction to the Arduino analog input. Sidetone is taken to the top of the volume control potentiometer so that it’s volume rises and falls with the receiver volume. Use the trimpot to trim it to an acceptable amplitude.
Finally, in my script, A6 and A7 may be used for other things, I have code in my script for an SWR monitor but I’ve never used it, so go for your life! If you want to #include the keyer code, then A1 will be needed for the paddle, unless you find another way to read the paddle, which you can easily do if you use an OLED, which leaves 6 digital pins free. If you don’t want a software keyer, A1 and A2 are free. A3 is an s-meter, see the code from line 266 forward.
If you want to get ideas for an SWR meter search ND6T or look in the BiTx20 forum on Groups.io.
Good luck with your build, I am happy with mine, the receiver is lively and it is a pleasure to use, mainly CW for me.
73 Paul VK3HN.
Thank you for your prompt reply. Yes I did notice reading your code that the keyer actually requires A1 and A2 to function (as explained in the “Gumption Trap” section :))
I also found in the code that A3 is used to set the speed of the keyer with a pot but the schematic shows A3 as being the AGC S-Meter input, easy to fix.
One last question if you don’t mind, in my version of the radio I am planning to remove the software keyer as I mostly prefer a straight key, so am I right in saying that the straight key can be connected to drive the CO Buffer power supply and change the software slightly to have a SSB/CW mode button for enabling CW mode? Or is there a simpler way of connecting a straight key to the radio?
73 Elia, M0ZHN
LikeLiked by 1 person
Elia, You are correct that A3 has seen two uses, S-meter (or AGC) input, and keyer speed control. As I prefer to make these rigs with as few controls as possible, and I am the only user, I am happy to fix the keyer speed in software. That resolves that clash!
Regarding straight key support instead of the keyer, that will require a few code changes. When the paddle closes (left or right) the script executes a receive-to-transmit sequence which involves throwing the TR relay, receiver muting, and in some cases, applying VFO or lifting a drive-enable line. Sidetone should be sounded on key-down as well. It does the reverse on the transmit-to-receive transition. Some code will need to be written to support this, including sensing a digital key line. It won’t be difficult, you may like to do it, or I can, just let me know and I will code it and do a basic test, then hand it over to you when you are ready. The script could use straight key support. Or you might want to use another script.
By not #defining CW_KEYER the keyer code will be omitted from the uploaded image, which will get noticeably smaller, mainly due to the CW character table being excluded.
Do ask anything, there is a lot to consider in a homemade SSB and CW trabnsceiver, however I expect you are an experienced builder and will only ask hard questions! I am happy to provide whatever support I can.
73 M0ZHN de VK3HN.
hello paul, I am having trouble uploading a constrained program on D: \ ORARI \ vk3hn_VFO_controller \ Arduino_si5351_VFO_Controller_Keyer-master \ Arduino_si5351_VFO_Controller_Keyer-master \ SP_VFO_Controller_Keyer \ SPO.c.
#include // pcf8574 library by Rob Tillaart 02-febr-201; many others should work
exit status 1
Error compiling for Arduino Nano boards.
while the pfc8574 library from rob tillaart I have entered. please help yc6lhg regards
Hi Suherman, thanks for your comment. I cannot see enough of the compiler error to diagnose. If you have added Rob Tillart’s PCF8574 library, try his example code. If that compiles then my script should also. Let me know how you go.
ok poul thank you for the explanation now it can be compiled. I just ask for an arduino nano and si5351 connection scheme. so that I can start to try to build dds for the 6 bands.
No problems, the wiring is shown on the schematic above, see Page 2. It is the same as the VU2ESE Raduino circuit, except that I use si5351 breakouts and an OLED.
ok thanks for the answer. because i am new in this field so i beg you to provide code using si5153 with incoder with oled lcd screen also cw keyer. I hope you are willing to give it.
Ok, I’ll help you if I can. You have the code. And the schematic. Both on my blog and github. Over to you.
ok paul if you may. I ask for the code you use using oled lcd and schematic. SUMMIT PROWLER 6. So I can upload it directly to my Arduino. That way I don’t need to change the code because I don’t know about the code … I hope you can send it to my email email@example.com
Thankyou for your interest in mu code and my homebrew transceivers. The schematic for Summit Prowler 6 is on the blog post page. The code or Arduino script is on my github, here: https://github.com/prt459/Arduino_si5351_VFO_Controller_Keyer
This script is the ‘brain’ of an SSB and CW multiband transceiver. Therefore it does not run out of the box, rather, you need to consider each of its code functions and fit these into your design for your transceiver project. If you want to reproduce my Summit Prowler 6 project, you could, with little hardware or software modification, I guess. But that is not how most people approach these transceiver projects. Put another way, Summit Prowlers are not kits or turnkey designs, they are my projects that I offer up to share with other makers. Almost all aspects of the Summit Prowler designs have been copied from elsewhere. Nothing of these rigs is original.
To build something similar you will need to build and test each module of the transceiver and probably modify the code as you go. The results can be good and you will learn an enormous amount.
Having said all of that, good luck. I have told you where the schematic and code is. You must read readme in the github repo, read the code, and then read the wiki in the repo. If you want to run with the OLED you must follow a sequence of instructions to install my custom s-meter font.
Good luck. QRPLabs has some excellent kits and modules that will avoid much of this if you choose that path.
73 from Paul VK3HN.
Do you have the possibility to send me the hex data required for DDS.
Thank you very much if you provide this opportunity.
Thanks for reading and commenting. There is no PIC, the code is C/C++ targeting Arduino and si5351. You can read about the code here:
The link takes you to a Github repository. If you want to try it please read the readme and also look at the repo wiki.
Good luck! If you have any problems please raise a Github defect report or issue. If that is too unfamiliar you mat comment here and I will try to help.
Hi, Great work but looking at your schmatic it looks like the nets “Sidetone_out”, “RX_mute” and “RF_sample” go nowhere. Is this intentional or a mistake?
Thanks for carefully studying the schematics of SP6. There are a few errors in my schematics, very few people read them closely enough to pick them up.
[Sidetone_out] goes to top of volume control at input to TDA2003 audio amp on page 1 (label omitted).
[RF_Sample] goes to [RF_Ind] on page 1 (labels should match).
[RX_Mute] goes to ??
It appears that I have not documented how I muted this receiver. RX_Mute is a standard Arduino control line that goes high (5V) on transmit. I typically use this to switch FETs in series with low level audio, or relays that do same. On SP6 page 1 I cannot see any Rx muting arrangement.
In this rig I had a problem with a squeal when going from receive to transmit. I fixed this by powering the electret mic bias from another Arduino control line — 5v at very low current from an Arduino digital IO line is perfect for biasing an electret. This line goes high with some careful T/R sequence timing. This fixed the noise. Maybe that is the only receiver muting I used. I would have to go back and trace the circuit now!
Subsequent SP rigs demonstrate other receiver muting arrangements I have used. I’ve also just built an audio mute into my latest SP, using the old 4066 quad bilateral switch which works perfectly.
73 Paul VK3HN.
I’m from Colorado, USA, with lots of QRP/SOTA possibilities. With only an idea for a construction project, I was unknowingly gathering together the parts to build exactly this radio. I even had a large stash of 12 MHz crystals on hand to use to build filters with. I’d also gathered most of the toroid cores, the Arduino, and the 5351 module. And some single and double-sided bd material, as well as a handful of IRF510’s to blow up. However, I was dreading the learning curve needed to write the code to talk to the 5351 and the display, since I’m in my 70’s and still stuck in the QBASIC code era. I was planning on mixing and matching parts of other people’s projects and adapting, and changing, and adding bits of my own to build just what I wanted. Then I found this, and it looks like you have already solved most of my concerns, leaving me with just the most fun parts to do. Thank you so very much.
John – ad0wo
P.S. I have 2 copies of Zen and the Art of Motorcycle Maintenance so I can loan 1 out, knowing I’ll never get it back just as I’ve never gotten back the other 4 spare copies that I’ve ‘loaned’ out. It’s a book a lot more people need, even if they don’t realize it yet. 🙂
Thanks for your comment, and for describing your project to build a SSB/CW transceiver for (I guess) a few bands. SP6 was a successful project, a particularly lively receiver, a good CW transmitter and and an acceptable SSB transmitter. The pattern of switching the crystal filter and IF gain stages between receiver and transmitter, and putting two SA612s to dual service works well. It reduces parts count but at the cost of some loss of control over the critical transceiver stages — receiver mixer and product detector, transmitter balanced modulator and mixer. I later moved to using a dedicated suprhet scheme with separate LM1496 balanced modulator and receiver/transmitter mixers (see SP7) but this is more work, more complexity, more PCB space and a lot more parts.
Regardless of what analogue transceiver pattern you choose, the Arduino and si5351 VFO, BFO, display, CW generator, keyer and controller works a treat. If you use my script, let me know (here) if you need any assistance to get it going. Please read the Wiki pages on the github repository, most questions are answered there.
As for Pirsig’s ZAMM, I’ve also passed on copies to at least 3 others who have shown an interest in making and repairing things, it opened my eyes to how making and our attitude to machines (even electronic machines) are a living philosophy, one of my top 10 all time favourite books!
73 Paul VK3HN.
It’s quite a while since I’m not done anything on my TRx… but now I have some transistors for FI(dual-gate fets) the SA612 with adapter to DIL8 pin socket, 6 cristals of 4,9152MHz and lot of other stuff…
I etched the PCB for cristal filter and I have a question: what happened if I use 120pF instead of 100pF? Can you teach me?…
Hi Dan, good to hear from you. It seems like you are ready to build a receiver with the components you have. I do not think substituting 120p for 100p in a crystal filter at 4.9MHz will make much of a difference, try it and see. In general, a higher C results in narrower bandwidth and vice versa (to a point), but 20pF shouldn’t make much difference.
Nick M0NTV has a very good YouTube video on homebrew crystal filters.
Watching your videos I saw that you’re using Li-Ion batteries…
I have some spare(recycled) 18650 cells(from laptop batteries, huh…) wich I intend to use to my “toy”… but:
4×4,2=16,8V that means I need a 12V regulator,
on the other hand, 3×4,2=12,6V but when the batt comes discharged, it remains with only 9V.
What you suggest? 4 or 3 cells in series?
To provide necessary current, there are plenty of cells, so an architecture of 4P4S or 4P3S is not an issue…Even two sets of them…
A quick response… take a look at Sotawatch reflector at the category ‘batteries’, or it might be in ‘equipment ‘. The SOTA community are experts on choosing and caring for LiPO and LiFePO batteries.
I have 4S and 3S packs. Usually, I prefer 4S, 16v, because it livens up my FET QRP PAs. I always incorporate a 7812 12v regulator to the small signal modules to make them independent of the supply voltage, up to about 20v. More recently, I’ve woken up to the fact that 4 watts is mostly indistinguishable from 6 or 7 watts and so I’ve started using 3S packs. A receiver should work fine down to 9 volts.
73 Paul VK3HN.
LikeLiked by 1 person
…Again and again… I’m bother you again wit my “rookie” questions… please “don’t shoot me”…
As I said before I have gather a bunch of good stuff… like 10 relays NAIS TQ2-5V…
so, for band switching on BPF for my SP-7 replica those will be perfect(I guess)…Now, for Rx preamp can I use a single one? Or it’s mandatory to have them separate for input and output? Same question I have for BPF T/R switch…
Thank you and excuse my insistence…
Hi Dan, no problem, I’m not always fast but try to reply to every comment. I’m not exactly sure what you’re asking. I use a single RF preamp stage and switch the BPFs with relays or diodes. In a few transceivers I have used a common BPF and preamp block between receiver and transmitter, with relays either side to switch it between the receiver input and the transmitter out put (pre-driver). This is easy enough to do. Have a look at my schematics for SP7, and 9 for examples. 73 Paul VK3HN.
Apparently I was a little bit confusing… Even me I don’t understand what I write… Sorry…
What I want to do: To use a single relay with two sections to include or bypass the RF preamp. One section for input and one for output from RF preamp.
I’m thinking about possible positive feedback thorough relay sections….The relay will be NAIS TQ2-5V…
About delayed answers, I am the one who steal from your’s time, instead of spending it with your family you waste it answering to my noobie questions. And I appreciate that so much.
I’m so proud about our conversations… it’s something that I couldn’t even imagine several years ago… Thank you so much.
No problems Dan, I enjoy chatting with anyone who is interested and motivated enough to want to build these kinds of projects with just basic discrete components and bare hands!
I do not recommend switching a gain stage with a DPDT relay. It may work at lower gain settings but you will inevitably want more gain at some point, turn it up and you will have an oscillator on your hands. Much depends on gain, device and frequency, but I suggest it is not worth trying. A golden rule of amplifiers of every kind is to keep inputs well away from outputs.
I have used DPDT relays to switch BPFs and LPFs, this works precisely because the filter has no gain, in fact it attenuates at all frequencies (some a lot more than others).
All the best, 73 Paul VK3HN.