Featured

sBitx.net to learn and share about the hackable SDR

The sBitx is a 25 watts, high performance SDR that you can easily build, it has all  popular digital modes like FT8 integrated. This is a blog that gathers all the help, tips, modifications and information about this little radio.

Buy the sBitx | Technical Details | Get the Software

Testing of sBitx at HF Signals

Testing of sBitx at HF Signals

This a document of the current process of testing the sBitx before they are shipped. From 1st May, 2023 onwards, all the sBitxs shipped will carry the test report.

Do not try this at home. You will need a dummy load and an oscilloscope with 50 MHz bandwidth and a signal generator to try it by yourself.

Setting the the test bench

1 The power supply should be on 13.8v, connect mic, and key paddle
2 Set Antuino (signal generator) to 7035, set the wweep 1 KHz to be 1 KHz wide. The signal source should be from another power supply to prevent signal leakage via power cables.
3 Connect Antuino to the other side of the dummy load with at least 60 db Attenuation (50 ohms in series with 100K resistor).
4 A PC/laptop and the  sbitx to an ethernet hub before switching on the radio.
5. Set the  Oscilloscope, to 200 uSec/horizontal division, 20v/vertical division rang. Connect the probe across the dummy load.

1. Initial test

1 Switch on the set,
2 Connect dummy load, oscilloscope, other side of dummy to antuino
3 Power on the radio
4 ssh into the radio, they default userid is pi and the password is hf12345
5 run ntpstat, if not synchronized, run

sudo apt install ntp
sudo apt install ntpdate
sudo ntpdate -u time.nist.gov

Type ntpstat until it says the time is synchronized
6 get the latest version of sbitx from the github

git reset --hard
 ./update
 ./build sbitx

7 Note the DC Idling current, start sbitx from the ssh command line
8 Check that the RTC clock is detected (look for the message in the Terminal window)
9 Check that the RTC clock is synchronized (this needs active internet) (look for the message in the Terminal window)

10. Note the DC current consumption of the radio in receive mode.

 

Receive test

1 Tune the Antuino/Signal generator to 7035
2. set RF gain to maximum
3 Set frequency of sbitx to 7035,
4. AGC OFF
5. Is the noise grass visible yes/no
6.  Note the signal level on the spectrum display. Each horizontal division is 10 dB. What is the Antuino sweep level above the noise floor? The -65 dBm signal from through the dummy load should still be at least 60 dB above the noise floor.
8.9 Check the earphone audio of sweep. The audio should be clear and distortion free.

PA bias current

1 Set Mode toUSB
2 Set Mic to 1
3 Set Drive to 1
4 Set PA_BIAS1 preset to zero (fully counter-clockwiseBias)
5 Note DC current on PTT
6.. Slowly increase the bias current until the total current consumed by teh radio is increased by approximately 250 mA.

Bridge calibration.

We first check to see if the bridge is already calibrated and if it isn’t we will proceed with the calibration

1 Set Mode to CW
2 Set Freq to 7035 KHz
3 Set CW INPUT to straight key
4 Set Drive to 1
5 Press the PTT and increase the drive gradually to bring up to the RF voltage on the across the dummy to load to read 125 v peak to peak (or, 62 volts peak).
6. Check the power reading on sbitx screen. If power is between 35 and 45 watts, skip the Part B

PartB : Setting the SWR bridge to correct reading
7. Open console panel
8. Enter “metercal” (DO NOT TOUCH ANY OTHER CONTROL ON SCREEN)
9. Press PTT, note that the output as shown on the oscilloscope is still between 120v and 130 v peak to peak RF
10 Adjust function knob until the power reading is 40 watts on sbitx screen.
11 Press the function knob once, change the mode to trigger saving the configuration.

Band Power calibration

1 Keep the dummy load inserted as before, with the oscilloscope probe connected across it.
2 Open the sbitx console panel
3 Enter “txcal”
4 Watch the screen show the power being gradually increased to the correct levels on all bands
6 Delete the wifi connection or take off the ethernet
7. Switch off the sBitx and switch it back again for the next test (two tone test)

Two tone test (switch it on, without Ethernet)

1 Select MODE 2TONE
2 Set frequency to 7035
3 Set Drive to 100
4 Press PTT
5 See the oscilloscope for perfect shape, (no flat top, no underflow)
6. Power output
7 Measure the output with Drive 100 on all bands, on each band. To prevent aliasing perform all transmit tests at 35 KHz from the band edge.

RTC check (after booting it without the Internet)

Check that the RTC time on sbitx screen is same as utctime.net (on phone)

Hardware check

1 Set mode to USB,
2 Mic gain to 25,
3 Frequency on 7043 freq
4 Speak into the mic, note the peak voltage
5 Remove mic
6 Set mic gain to 50
7 Speak into the mic and note the RF
8. From settings panel, Change mode to cw, cwinput to Iambic paddle
9. Test dots and dashes

RF power stress tests

  1. et the drive to maxium, mode to CW and frequency to 7035 KHz
  2. Press the PTT and transmit the full carrier for 30 seconds
  3. Disconnect the PA dummy load and transmit for for 10 seconds with antenna connector open.

Updating the sBitx

Updating the sBitx software

The latest version of the sBitx software is always on github.com. The easiest way to get this is use the update script and rebuild the sBitx. Here is how :

Open a terminal by clicking Terminal Icon from the top bar. Another way to open the Terminal is to Hold Ctrl and Shift down together and press T.

In terminal, type:

pi@sbitx:~ $cd sbitx
pi@sbitx:~/sbitx $./update
pi@sbitx:~/sbitx $./build sbitx

Here is what it will look like (the exact output from git pull maybe different, depending upon the version you are pulling from github):

May 4th update for sbitx

The May 4th, 2023 update fixed many things. This post describes how to update the sBitx with these updates.

Step 1 Get Online and get the RTC running

You can still proceed to the next steps even if the RTC is not working properly.

Step 2 Update the sBitx software.

The latest version of the sBitx software is always on github.com. The easiest way to get this is use the update script and rebuild the sBitx. Here is how :

Open a terminal by clicking Terminal Icon from the top bar. Another way to open the Terminal is to Hold Ctrl and Shift down together and press T.

In terminal, type:

pi@sbitx:~ $cd sbitx
pi@sbitx:~/sbitx $./update
pi@sbitx:~/sbitx $./build sbitx

Here is what it will look like (the exact output from git pull maybe different, depending upon the version you are pulling from github):

Step 3: Calibrating the SWR/Power meter

The power meter will report your output so you can adjust it to save battery or excessive output that can destroy the transistors. The software updates after May 4th, 2023, also have an ALC (Automatic Level Control) that limits the power output of the PA to below 40 watts by monitoring the power and SWR bridge.

Variations in the diodes used in the power meter make it necessary to use calibration of the meter.

What if I don’t calibrate?

If you don’t calibrate, the radio will work all the same, at slightly reduced output. Others will hear you half an S-unit down.

What do I need?

You will need two things:

  1. An external SWR/Power meter that can measure the output power to within 10% accuracy. That is, if it reads 36 watts or 44 watts intead of 40 watts, it is good enough.
  2. A dummy load or an antenna . If you are using an antenna, it should have an SWR of less than 1:1.5 on 40 meters or 80 meters.

Checking the Meter Calibration Procedure

Attach the SWR/Power meter to the sBitx and a dummy load (or an antenna with an SWR of less than 1:1.5 on 80m or 40 meters.

  1. Start the sBitx, enter the passkey to get to sBitx main screen
  2. Set Mode to CW
  3. Set Freq to 7035 (or 3035 Khz, if you are using an 80 antenna) KHz
  4. From the Set CW INPUT to straight key
  5. Set Drive to 1
  6. Press the PTT to generate the carrier.
  7. Slowly bring up the drive until the external SWR/Power meter shows 20 watts.
  8. Note the reading of the on-screen power. The attached meter and the sBitx meter should be within a few watts of each other. If they are not, you will have to calibrate the meter.

Here is picture of the well calibrated meter. Note that the sBitx power meter on the left is reading 42 watts and the oscilloscope connected across the dummy load is showing 127 volts peak to peak (127v peak to peak across a 50 ohms is  40.3 watts).

Calibrating the meter

  1. Keep the mouse and keyboard attached to the sBitx
  2. Start the sBitx, enter the passkey
  3. Select 40 meter band, mode CW. (If you are using an 80 meter antenna), select 80 meter band.
  4. From the left panel, scroll  down to the Console button and press it to open the console panel.
  5. Console panel, type metercal and press Enter (from this point on do not touch anywhere on the screen)
  6. Press the PTT to generate the carrier and use the function knob on the top right to set the power reading on the sBitx to with 5 watts of the extrernal power meter reading.
  7. Change the mode, and wait for a minute to allow the periodic saving to settings to save the meter calibration.

For those who live dangerously

The meter calibration is stored at the value bridge in the user_settings.ini file. You will find the file at /home/pi/sbitx/data/user_settings.ini.

The two usual values for bridge are 100 or 72. If your uncalibrated power meter is reporting excessive power compared to the external power meter reading, you can just edit the bridge setting to 70 (if it is at 100).

Check that the values at 20 watts and 40 watts are within a few watts of each other between the sbitx readings and the attached power meter.

Re-Calibrating the Transmit output for different bands

The power amplifier gain decreases from 3.5 MHz to 30 MHz. The gain is compensated by decreasing the drive on lower frequencies and increasing it on the higher frequencies. These settings are in the file /home/pi/sbitx/data/hw_settings.ini. In almost all cases, these settings will work for you.

If you would want to recalibrate the drive for each band, this is how it can be done:

The sbitx can automatically run this calibration. Before you do that, you need

  1. The sbitx power meter must be calibrated as described above
  2. Attach a dummy load (not an antenna)

Start the sbitx, from the left panel, choose console. In the edit window of console, type txcal and press Enter. The software will trudge along for a minute or so and complete the calibration process.

If the settings get messed up, the there is a backup file called default_hw_settings.ini that you can use to restore the factory defaults.

 

Syncing the Real time clock

Syncing the Real time clock

Why do we need the Real Time clock?

The sBitx uses a battery backed real time clock(RTC) to keep track of the Coordinated Universal Time  even when powered off or offline. This is required for the logbook and the FT8 to work properly.

The UTC maintained by the sBitx is independent of the time reported by the Raspberry Pi’s Desktop/Operating system. The real time clock is accessed and updated only through the sBitx software.

Technical Tip: The sBitx checks to see if the operating system time is synced with the UTC by runnning the ntpstat utility, if it reports that the Raspberry Pi time is synchronized to the UTC, then it copies the current time and date over to the Real Time Clock module.
Each time the sBitx starts, it looks to see if the time is synced and updates the RTC. The code for this in a function called rtc_sync() .

To update the Real time clock properly, you must have the ntp utility working on the Raspberry Pi desktop.

Install the NTP utilities

  • Attach a keyboard and mouse
  • Keep the sBitx online (Read here)
  • Open the terminal with Ctrl-Shift-T (or choosing the Terminal icon from the top bar.

In the terminal, type the following:

In terminal, type:

pi@sbitx:~ $cd sbitx
pi@sbitx:~ $ntpstat

If the ntptstat is working, it will report something  like :

pi@sbitx:~$ ntpstat
synchronised to NTP server (164.100.255.123) at stratum 3 
 time correct to within 57 ms
 polling server every 64 s

If not, we will have to install three new packages. Enter the following commands:

pi@sbitx:~$ sudo apt install ntp
pi@sbitx:~$ sudo apt install ntpstat
pi@sbitx:~$ sudo apt install ntpdate

After each of these commands, it will ask your permission to download, just press ‘Y’ for yes.

Now, reboot your sBitx from the Terminal.

Now, reboot your sBitx from the Terminal

sudo reboot

When it reboots, reopen the Terminal and type ntpstat again, this time it should synchronize  with the network time. It may take a few seconds for the time sync to work, but it usually syncs within a minute. You may have to repeat the command a few times, see the last time of the screen shot below:

The UTC is now working and it will be picked up by sBitx next time it starts.

To check this, you can run the sbitx from the terminal with :

Checking if the RTC module is properly installed and working:

pi@sbitx:~$ cd ~/sbitx
pi@sbitx:~$ cd ./sbitx

Note that there is a dot before the /sbitx in the second command. The screen will show a number of messages (most of them are from the Chromium that the sBitx launches). Watch for the messages that says “synchronized to NTP server” and “Reading rtc…done!”. If you  don’t get these messages, then the RTC module is not working properly.

See the screen shot below

Connecting the sBitx to Internet

Connecting the sBitx to Internet

Though sBitx works offline, you may need to conenct to the Internet to to sync time and get the latest software update. Here is how you do it.

You will need to attach a keyboard and mouse to the sBitx to do this.

Connecting with Ethernet

Plug in an Ethernet cable from your access point into the sBitx (see picture), and you are done.

Connecting with Wifi

Click on the Internet Icon from the top bar and choose your WiFi access point:

Now, enter your WiFi password/key,

Press Enter and you are done.

Tip: To test the Internet, you can open the chromium browser (it is the blue globe Icoon on the top left) and see if you can browse the Internet.

PA sequencing to avoid blow outs

PA sequencing to avoid blow outs

There have been many reports of the PA blowing up. The PA transistor is a MOSFET that can blow up due to high input voltages that can lead to the input gates blowing up or drawing too much current and blowing up the source-drain channel.

What is going on? 

We applied an oscilloscope probe to the TX_LINE. The TX_LINE goes high under raspberry Pi control during transmission. We applied the second probe to a dummy load connected to the antenna socket. What we found is below.

sBITX PA spike on TX->RX

As you can see, there is an enormously high power spike of 220V peak to peak (more than 100 watts of power).  Even more telling is that the gate RF t has 20 volts of RF. The maximum rating for the gate is +/-20V as per the datasheet some of the spikes are hitting that as well. See below

PA Spike on the Gate

Why is this happening?

The power amplifier is permanently connected between the exciter portion and the harmonic filters. On receive, the power to the drivers and the bias is switched off and the relay K9 with U3 bypass the PA to directly the signal to the rest of the radio.

When the transmission ends, the TX_LINE goes low and the power to the PA is switched off, simultaneously, the relay K9 and the analog switch U3 are released, allowing the RF to flow back from the PA output to the input. The power amplifier takes a few hundred microseconds to power down as the bypass capacitors still hold charge. This sets up the oscillations that we are seeing. To confirm this, I desoldered C14 and the spike went away, (it also renders the receiver dead) by breaking the feedback loop.

The spike of the oscillations remains on for as long as the bypass capacitors of the PA hold charge and they quickly discharge, killing the oscillations. Not quickly enough  to do damage.

What is to be done?

The powering up and down of the PA has to be sequenced. When we switch to transmit, we must first switch off the relay and U3, give it a millisecond and then power up the PA. When transiting to receive from transmit, we have to follow the reverse sequence. First power down the PA, wait for the caps to discharge and then switch the relay K9 and the switch at U3 to bypass the PA.

How can it be done?

The PA power is turned on and off in the existing sBitx when TX_LINE goes high at the gate of Q10. Now, instead of the TX_LINE, we take another GPIO line (we can call it TX_POWER) to separately control the powering up and down of the PA. This makes the spike go away.

Four things to do: 

  1. We pull in the new code from github. This software mod does not impact the unmodded sbitx but it can potentially blow up the modified sBitx if this mod is not in place.
    Power on the sBitx, open the terminal with Ctrl-Alt-T and type the following:

    cd sbitx
    git pull
    ./build sbitx
  2. We cut the track that brings the TX_LINE to the gate of the Q10 with a sharp knife.
  3. We add a wire from the Gate of Q10 to be taken to pin 36 of the Raspberry Pi’s connector on the digital board.

    Gate of Q10 isolated from TX_LINE and connected to TX_POWER
  4. We solder the wire coming from the Q10 gate to pin 36 of the Raspberry Pi’s connector on the digital board.

    Wire soldered to Pin 36 of RPI to connect to Q10 gate (TX_POWER)

 

Result

You can see that the spike is gone. The two pictures are taken with different timing bases to be sure.

PA showing no spike after the mod
PA output clean after the mod at greater resolution

sBitx Basic Kit Assembly Notes

sBitx Basic Kit Assembly Notes

Ken, N2VIP
Here are some photos/steps I took to assemble my sBitx “kit” (complete minus RPi 4 and Raspberry Official 7″ Display).
A reminder, here’s what’s included:
image9.jpeg
image11.jpeg
1) remove the front and top panel, being careful to not damage the wires attached to them. There is no reason to remove the back or bottom. Disconnect the speaker lead from the circuit board and put the top aside.
2) remove the back plate from the front panel, re-attach the back plate to the front panel. Connect the red lead included with the display to the 5v connection on the display board, the black lead to the GND connection. Do not attach the display ribbon cable (yet – it turns out it’s easier to attach the ribbon cable to the display later, trust me.)
image0.jpeg
3) Prepare the RPi 4 – insert the MicroSD card in the reader and attach the Display ribbon cable to the display connector on the RPi 4, the silver leads face “up” the blue tape is down, against the black ‘wedge’. If you are not familiar with these connectors, there is a wedge that lies against the circuit board – pull it out a tiny amount, don’t force it) the ribbon cable should just slide right in, then slide the ‘wedge’ into the connector.
image1.jpeg
4) Mount the RPi 4 to the digital board, being sure the 40 pins on the are correctly inserted into the socket (tip – if you can’t see any pins on top of the black connector, and you don’t feel any pins on the bottom of the black connector, you’ve got it right). The screw holes on the RPi 4 won’t match the standoffs on the digital board if the pins are not correct. (Again, the display ribbon cable should be installed before you secure the RPi 4)
image2.jpeg
5) Lean the front panel against the front of the chassis, twist (!) the display ribbon cable then insert it into the display connector, silver leads facing away from the circuit board, blue tape against display PCB.
image3.jpeg
Secure the front panel to the radio with the 4 screws you previously removed.
6) Connect the red lead from the display board to the lower power connector on the component side of the digital board, the black lead from the display board to the top pin as shown:
image4.jpeg
7) Re-attach the speaker connector to the three-pin connector on the digital board (it only attaches one way), then seat the top of the case back on top and secure it with the 4 screws you previously removed.
NOTE: HF Signals assembly instructions instruct you to use the included two pin jumper cable, soldering the wires to the pins on the display board, but the supplied jumpers that came with the display (red/black/yellow/green, female-female, about 7-8″ long) are just fine and should be secure for most users.
There were some leftover parts:
image5.jpeg
8) So then I applied 12v (13.8v) DC and my unit powered up!
image6.jpeg
Starting the sBitx application, you see this:
image8.jpeg
The wifi ‘burp’ is quite obvious, I know turning off wifi will stop that, but now to grab my mic from my uBitx and hook it up to an antenna.
Thanks to everyone at HF Signals, I’m very pleased with this build.
I hope these instructions help others decide if they want to buy a “kit” or “assembled” sBitx.

How to set the bias

How to set the bias

Siegfried Jackstien, DG9BFC

  1. Set both the POTS to minimum current
  2. Select Mode as USB. Reduce the MIC to zero.
  3. Press the PTT.
  4. Without speaking into the microphone, carefully increase the DRIVE_BIAS POT until the current increases by 200 mA. Note the current.
  5. Keeping the PTT on the microphone pressed, now increase the PA_BIAS POT until the current increases by another 200 mA.
  6. Release the PTT.

Eliminating Periodic Noise in the Speaker (Developer Edition)

Eliminating Periodic Noise in the Speaker (Developer Edition)

Ashhar Farhan, VU2ESE

The LM380 audio amplifier is picking up the Wifi RF and it results in a noise that repeats every 8 seconds of so as a series of quick pulses.

The noise is not present if you use earphones as they bypass the LM380 audio amplifier.

The current solution is to just turn off the WiFi and use Ethernet instead for Internet.

Corrupted sBitx – How to reset the settings.ini

Corrupted sBitx – How to reset the settings.ini

Anthony Good

Before you replace files, try deleting (or renaming) your settings file, /home/pi/sbitx/data/user_settings.ini.  I have had it several times where upon restart of the app or restart of the Pi, something goes wonky and deleting the settings file fixes it.  I haven’t gotten to the bottom of it yet.

If you need to toss a hand grenade, I would do the following (First open a terminal with Ctrl-Alt-T and then type:)
cd /home/pi
mv ./sbitx ./sbitx.old
git clone https://github.com/afarhan/sbitx.git
cd ./sbitx
./build sbitx
./sbitx