Read Voltage Is Outside Selected Devices Operating Range Nano

Transceiver uSDX with Arduino Nano

Personally, I recollect that a "real" SDR radio is i where the radio indicate is received past the antenna and so (mayhap after passing through passive filtering circuits) is sampled by an analog-to-digital converter. Further processing of the signal takes place in the digital domain. However, the SDR category also includes other devices which to a greater or lesser extent utilise digital signal processing. One of the uSDX transceiver variants described below is an example. It was created later reading an interesting article "QRP uSDX Transceivers", which was published in Shine magazine "Świat Radio" No. 2/2021.

The uSDX projection goes dorsum to the products of the "QRP Labs" company. On the basis of the highly successful QCX mini-transceiver, Guido (PE1NNZ) came up with the uSDX design in order to try out what can exist accomplished with minimal system complexity by transferring it to implementation in the digital domain of the ATmega328P 8-bit microcontroller. The approach followed is to simplify the design where possible while keep a reasonable performance. The upshot is a cheap, easy to build, versatile QRP SSB/CW/digi transceiver that actually is quite suitable for making QSOs (even in competition situations), nonetheless due to the experimental nature some parts are still in progress and hence limited.

The receiver circuit is a direct conversion type. It uses the 74HC4053 IC every bit a loftier performance quadrature detector, also known as "Tayloe N7VE detector" or "I-Q mixer". This detector is characterized past a very high value of the third order intercept point (IP3) and a large dynamic range, as well as low losses. In fact, we have 2 mixers here, which are keyed with signals with the operating frequency, but shifted betwixt each other by 90 degrees. Clock signals CL0/CL1 for the detector are generated in the module containing the Si5351 type PLL frequency synthesizer circuit, which is controlled from the processor via the I2C passenger vehicle.

At that place are several types of dual DIL-8 amplifiers on the market; the NE5532 shown in the schematic is readily available, merely it works here in off-catalog conditions. Better to use an amplifier from the low-noise category LM4562, or fifty-fifty LT6231. Instead of the 74HC4053, the FST3253 is more frequently used as a quadrature detector. The resistance of the switch in it is much lower, so you need to limit the IC1A/B gain by adding 100 ohm resistors between C28 and pin 2 and between C11 and pin 6. The symmetry of both analog I and Q paths likewise affects the performance. It is good to friction match the components in such a way that their values in the groups are as close equally possible to each other: C9/C10/C11 C28; R6/R7; C7/C30; C26 C27; R2/R3/R4/R5.

The output signals from the detector, after amplification and band-limiting by the IC1A/B dual operational amplifier, are fed directly to the inputs of the ATmega328P microcontroller analog-to-digital converter multiplexer, which is used in the Arduino Nano module hither. Further processing of the indicate takes identify only in the digital domain, which is quite an achievement, considering the limited capabilities of the 8-flake microcontroller. The ATmega28P samples the ADC input at a 62kHz sample-rate, and decimates this high-samplerate to a lower samplerate, performs a phase-shift by means of a Hilbert-transform, summing the upshot to obtain side-band rejection; it subsequently applies a low-pass filtering, AGC and noise-reduction functions. With the 10-fleck ADCs and a 4x over-sampling rate, a theoretical dynamic range of 72dB can be obtained in ii.4kHz SSB bandwidth. LSB/USB mode switching is done past changing the ninety caste phase shift on the CLK0/CLK1 signals of the SI5351 PLL. 3 embedded attenuators are available for optimally using dynamic range; the beginning attenuator is the RX FET switch Q2 responsible for 20dB attenuation, the second attenuator is ADC range (1.1V or 5V) selected by the ATMEGA ADC analog reference (AREF) logic and is responsible for 13dB attenation, the tertiary attenuator is a pull-downwards of an analog input on the ATMEGA with a GPIO port responsible for 53dB attenation. Combining the 3 attenuators provides the attenation steps 0dB, -13dB, -20dB, -33dB, -53dB, -60dB, -73dB. The receiver circuit does non take an analog headphone amplifier – a digital output with PWM pulse width modulation is used. The sound signal is strong enough, fifty-fifty a small speaker with an impedance of viii ohms tin can exist used.

The SSB transmit-phase is implemented entirely in digital and software-based manner: at the heart the ATmega328P is sampling the input-sound from the electret microphone and reconstructing a SSB-signal by controlling the SI5351 PLL phase (through tiny frequency changes over 800kbit/southward I2C) and controlling the PA Power (through PWM on the fundamental-shaping circuit). In this fashion a highly power-efficient form-E driven SSB-betoken tin exist realized; a PWM driven class-East pattern keeps the SSB transceiver simple, tiny, absurd, power-efficient and low-cost.

The Arduino module additionally supports a 2×16 character LCD display, buttons and a rotary encoder (pulser with a switch). The entire transceiver is powered by 5V through the 7805 stabilizer, except for the E-class power amplifier, powered directly by the input voltage – typically 13.8V.

The layout is so elementary that I decided to assemble it on a universal printed circuit board. I used the mechanical concept of my GNI-r8 rotor controller with a two×16 OLED display.

Source codes (open source), detailed principles of functioning and documentation of the originator of the project, Guido PE1NZZ, are bachelor on GitHub https://github.com/threeme3/QCX-SSB and https://github.com/threeme3/QCX-SSB/tree/feature-rx-improved . In addition to the theory and diagram, there is also a description of the software command menu. In a curt time, the project found many enthusiasts gathered in the group on the forum https://groups.io/m/ucx . The projection is nether abiding evolution, in diverse variations and versions. My scheme is mainly based on solutions of: Barb WB2CBA https://antrak.org.tr/blog/projeler/usdx-an-arduino-based-sdr-all-mode-hf-transceiver-pcb-iteration-v1-02/ ,  Manuel DL2MAN https://dl2man.de/ and Miguel PY2OHH https://www.qsl.net/py2ohh/trx/usdxnano/usdxnano.html . Information technology's also worth taking a look at Bob'southward KD8CGH website https://sites.google.com/view/kd8cgh/Domicile/introduction-to-the-usdx .

Instead of the Arduino Nano module in other uSDX variants, the ATmega328P processor in the DIL package is most often used. In this case, a 20MHz crystal is connected to information technology, and an boosted programming interface must be provided (or the microcontroller must exist programmed after removing it from the socket). In my case, the Arduino module can be programmed directly via a USB cablevision. The module, all the same, requires a modification. The original 16 MHz quartz must be exchanged for xx MHz and the SMD resistor fastened to the LED (marked Fifty) must be removed. Subsequently such conversion, it is no longer possible to programme from a computer from the Arduino IDE environment, unless the method of direct programming the Arduino Nano 20MHz via the Arduino IDE proposed by PE1DDA is followed:

i.Find the file named boards.txt from arduino IDE, information technology is located in the fold like "home of arduino\hardware\arduino\avr".
two.Edit boards.txt.
2.one Find the line: nano.proper noun = Arduino Nano
2.2 Copy the lines from "## Arduino Nano westward/ ATmega328P (old bootloader)" down to "nano.menu.cpu.atmega328old.build.mcu=atmega328p"
2.three Paste these lines beneath "nano.menu.cpu.atmega328old.build.mcu=atmega328p"
two.4 In each line, replace atmega328old with "atmega328old20MHz"
2.5 Replace this line "nano.bill of fare.cpu.atmega328old20MHz=ATmega328P (Erstwhile Bootloader)"   with "nano.bill of fare.cpu.atmega328old20MHz=ATmega328P (Old Bootloader-change-20MHz)"
2.half dozen Edit this line "nano.menu.cpu.atmega328old20MHz.upload.speed=57600", supercede with "57600" with "72000"
2.7 Save and close the boards.txt file
iii.Run the Arduino IDE: Tools, Arduino Nano Board, Board Manager …, click Update
iv.Restart Arduino IDE, yous can find a new board as shown beneath

At present you tin can upload programs to Arduino Nano with 20MHz from IDE via USB directly.

The Si5351 frequency synthesizer module also requires some rework. It is controlled from the microcontroller via the I2C omnibus with an above-standard speed of 800 kbit/south, and the voltage translator circuits used there are too slow. Y'all need to remove two FET SMD transistors and iv 10k SMD resistors. Then install two 1k SMD resistors and two jumpers between the drain and the source instead of FET transistors. The appearance of both modules afterward the modifications is shown below.

Three 74ACT00 gates in parallel were used to bulldoze the Q1 power transistor. These may be other gates, just necessarily from the Human action – HC or HCT series practice not have plenty current chapters to bulldoze the PA amplifier transistor well. On the forum https://groups.io/g/ucx   you can detect a number of other proposals for controlling the output transistor, but my experience confirms that 3 parallel 74ACT00 gates seem to be the optimal solution, too due to the relatively proficient availability of these ICs.

The situation is similar with the Q1 transistor – you tin can follow diverse options on the forum mentioned in a higher place. I had BS170, 2N7000, IRF510, IRF540N and IRF610 at my disposal. The IRF540N worked best for me on the 80m and 40m bands, and three 2N7000 connected in parallel on the 20m band. It'southward worth checking out other options.

In guild to obtain the appropriate output power, the output circuit is very important for a class Due east amplifier. By design, it is a resonant amplifier. I chose to use one of the WB2CBA solutions, which seems to exist a skillful compromise between quality and simplicity. In gild to obtain satisfactory results, I had to adjust the values of the circuit parameters. I must arrive articulate that the values given beneath are not necessarily optimal values. First of all – their values strongly depend on the type and even the unit of measurement of the transistor, construction and load. I fabricated tests with a 13.8V power supply with an artificial load of fifty ohms until I was satisfied with the results I considered:

3.700 MHz power five.8 West, efficiency 76% (IRF540N)
three,500 MHz, power 9.four Due west, efficiency 78% (IRF540N)
7.100 MHz, power 8.8 West, efficiency 93% (that's how I came out of the calculations!) (IRF540N)
14.200 MHz, power 2.vii W, efficiency 56% (3x 2N7000)

Below is a screenshot of the output oscilloscope on an bogus load for the 80m ring. I have not measured the harmonic content, but the betoken looks quite "clean". Next to it is the RF point on the Q1 drain. As you can encounter, the Q1 transistor works in the keying mode. The bleed current flows when the voltage across information technology is close to zero, which ensures high gain efficiency. This is shown very nicely in the article https://people.physics.anu.edu.au/~dxt103/160m/class_E_amplifier_design.pdf . As y'all can encounter, the voltage value reaches 81.6V. Miguel PY2OHH made tested with a supply voltage of up to 32.5V. For the 80m ring it gave 20W output ability with 75% efficiency. The drain voltages are therefore much college, hence the Q2 2N7000 transistor must exist replaced with a more than resistant one, eg IRF510. You cannot forget almost the D1 and D2 protective diodes!

The original WB2CBA series resonant filter solution is available at https://antrak.org.tr/blog/usdx-multiband-low-pass-filter/ . The component values for the three about pop bands are given below. The values that I have changed from the original are in bold. The L1 choke is 12 turns on the T50-2 ring core (not FT37-43 as shown on the schematics!). The L2 and L3 inductances can be wound with a winding wire 0.2-0.4mm or a wire with insulation (e.g. kynar as in the photo above) on T37-2 cores.

Ring C1 C2 C3 C4 C5 C6 L2 L3
fourscore m 680pF 360pF ane,5nF one,8nF 620pF 1,8nF 15 t. 15 t.
forty grand 360pf 180pF 470pf 1nF 180pF 1nF 12 t. 10t.
20 one thousand 100pF 470pF x 470pF 150pF 470pF 8 t. vii t.

I made filters in the course of plug-in modules. There are a number of examples and gear up-made solutions of multi-ring output circuits with switches or relays in the network, e.g.: https://dl2man.de/lesser-layer-rf-board/ .

The original source code for ATmega328P is available for download on GitHub https://dl2man.de/bottom-layer-rf-board/ . I checked several versions of the program in my uSDX system, it is worth looking for the latest one, e.g. HERE. In order for the program to work on Arduino Nano, it was slightly reworked. In version five.1.02p I changed but ii lines:

line 12: //#ascertain True cat             1   // GNI blocked, CAT-interface (CAT takes a lot of retentiveness infinite)
(True cat part disabled to gratuitous retentiveness resources of the microcontroller)
line 15: #define F_XTAL 25000373   // GNI inverse, 25MHz SI5351 crystal  (enable for 25MHz TCXO)
(the value was adjusted experimentally for my Si5351 module)

In my uSDX image, I used a more modern 2×16 OLED brandish. It worked in my rotor controller https://hf5l.pl/wp-content/uploads/2020/11/User-manual-EN_r8_v03.pdf .  For it to piece of work properly, I had to add D3/R19 parts. In the case of a standard LCD with backlight, they are non needed, merely y'all need to add a potentiometer to adjust the dissimilarity and a resistor for the backlight as shown in the diagram below.

Subsequently programming the module in the Arduino IDE (Nano – Atmega328P – Old Bootloader-alter-20MHz)) and placing it in the socket of the assembled transceiver, first set up the brandish contrast using the 10k potentiometer. In that location are 3 buttons to operate the radio: left L, right R, ENC encoder push and a mechanical rotary encoder (the encoder button tin can be doubled with a micro-switch, which requires much less pressure level and is more convenient to apply). The buttons have the following functions (x means press, 2x double press, d long press):

L x – entering the carte and sub-menu
R ten – manner alter: LSB (lower band), USB (upper band), CW and exit from the Card
R 2x – change of reception bandwidth: Filter Full, 3000 Hz, 2400 Hz, 1800 Hz (different for CW)
R d – change of VFO A, RIT, VFO B, RIT
ENC x – tuning step: 1M, 100k, 10k, 1k, 500, 100, 10 Hz
ENC d – tuning footstep: 10 Hz 100, 500, 1k, 10k, 100k, 1M,
ENC 2x – band-switch to pre-defined CW/FT8 frequencies on successive amateur bands
ENC + turn – changes the volume.

And then in short – tuning tin be done past turning the rotary encoder. Its step size can be decreased or increased by a brusque or long ENC press. A change of band tin can be done with a double ENC press. The fashion of performance is altered with a short press on the correct button; a double printing on right button narrows the receiver filter bandwidth, the bandwidth is reset every time way is changed. The volume is changed by turning the rotary encoder while pressed. The content of the bill of fare slightly depends on the version of the program, descriptions of its functions tin be plant in the documentation, due east.g. : https://github.com/threeme3/QCX-SSB/tree/feature-rx-improved .

For receive, by default an AGC is enabled (item ane.8 in menu). This increases the volume when there are weak signals and decreases for stiff signals. This is good for SSB signals merely tin can be annoying for CW operation. The AGC tin be turned off in the menu, this makes the receiver less noisy but require more than manual book modify. To further reduce the dissonance, a noise-reduction function tin can be enabled in the menu with the NR parameter (1.nine in bill of fare). To use the bachelor dynamic range optimally, you tin attenuate incoming betoken by enabling a front-end attenuator with "ATT" parameter (1.ten in menu). Especially for frequencies iii.5-vii MHz the atmospheric racket levels are much higher, so yous can increase the receiver performance by adding attenuation (e.g -13dB) such that the noise-floor is nevertheless audible.

A Southward-meter of choice (dBm, S, S-bar) can exist selected with the S-meter parameter. Selecting an Southward-bar, shows a point-strength bar where each tick represents a Due south-point (6dB).

To calibrate the transceiver frequency, you tin can tune to a calibrated signal source (e.thousand. WWV on 10 MHz) and zip-beat the betoken by changing "Ref freq" parameter (8.one in menu).

For FT8 (and whatsoever other digital) operation, select ane of the pre-programmed FT8 bands by double press the rotary encoder, connect the headphone jack to sound card microphone jack, sound card speaker jack to microphone jack, and give a long printing on right push button to enter Vox mode. Adjust the book to a minimum and start your favorite FT8 application (WSJT-Ten for example). The sensitivity of the VOX can be set in the "Vox threshold" parameter.

The values of the transmitter parameters are best chosen experimentally. The TX Drive value (pos. menu 3.three) is normally used in the range 4-6 (my 6). Having an oscilloscope is helpful to observe the modulation envelope of the signal at the output. Eavesdropping on another receiver does non piece of work. The signals generated by the digital circuits on the uSDX board overlap the useful signal, which makes it seem very distorted and information technology is impossible to assess the real quality of the SSB signal at the antenna output. PA Bias min (item viii.1) in my opinion does non matter much (I have x). PA Bias max (particular 8.2) can be selected in the post-obit way: in CW mode, we simultaneously discover the indicate on the bogus load and the electric current drawn from the power supply; using the encoder, we increment the value of the PA Bias max parameter until a further increase in current does not issue in an increment in output power. For me the value of PA Bias max = 105 came out.

I checked the functioning of my transceiver on the air. The farthest connections on the SSB were IZ2LSR at 80m (ane,130km), YU1XA at 40m (950km), EC5K at 20m (2,200km).

Have fun installing and using the uSDX transceiver. Withal, it should be remembered that this is an experimental solution and has a number of limitations resulting not only from the simplicity of construction. It is worth checking new ideas and solutions on the web, eastward.yard. hither: https://github.com/KD9PDP/uSDX-x . The finished boards accept already been developed by several colleagues and should be available, due east.g. here: https://world wide web.hamshop.cz/usdx-c57/dl2man-sandwich-oled-partially-assembled-i403/ .

Mirek SP5GNI

bergeronkelin1954.blogspot.com

Source: https://hf5l.pl/en/transceiver-usdx-with-arduino-nano/

0 Response to "Read Voltage Is Outside Selected Devices Operating Range Nano"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel