Bad Case of the DTs PCB

Not rated 19,045

Circuit Image

The circuit is functioning well, and there are no signs of withdrawal or autonomic instability. The focus is on the "DT" data column in the WSPR GUI, which tracks time differences. Recently, large and seemingly random timing errors were observed, particularly noticeable in performance data from Thursday. This issue was traced back to an interaction between the new controller board and the Direct Digital Synthesis (DDS) unit with the main Voltage-Controlled Oscillator (VXO) system. The interaction may have occurred through various means, including ground connections, power lines, interface lines, or even radiation from clocks and RF sources. Disconnecting the controller and reverting to the SDR Kits USB synthesizer resolved the timing issues temporarily. The DDS board was built using surface mount technology, and tactile momentary action switches were sourced from Farnell for user input. A conventional layout was employed, where columns of switches are sequentially pulled low by pull-down transistors (MMBT3904s), which are the surface-mount equivalent of the 2N3904. Two columns of three switches were arranged, providing four directional keys for navigation and two additional switches that are currently unassigned. The software interface for the keypad is straightforward, with the primary challenge being the optimization of delays and switch debounce rules. A strategy was implemented to require two consecutive valid reads of the same key, separated by a small delay, before allowing another key press to be registered. The navigation through the menu structure utilizes the left/right keys to move between different operating configurations, and the up/down keys select options on each menu page, including a programmable Boolean "On/Off" option.

The circuit described involves a multi-mode beacon utilizing a Direct Digital Synthesizer (DDS) alongside a Voltage-Controlled Oscillator (VXO) system, which are critical components for generating precise frequency signals. The interaction between the controller board and the DDS could suggest potential grounding or electromagnetic interference issues that may arise in RF applications. To mitigate such problems, careful PCB layout practices should be employed, including minimizing loop areas for signal paths and ensuring proper grounding techniques to reduce noise susceptibility.

The tactile momentary switches are integrated into the design to facilitate user interaction with the device. The use of pull-down transistors (MMBT3904) ensures that the microcontroller can accurately read the state of each switch without floating inputs, which could lead to erratic behavior. The arrangement of the switches allows for intuitive navigation through the device's menu system, enhancing user experience.

The software aspect of the circuit is crucial for ensuring reliable operation. The debounce logic implemented for switch presses is essential to prevent false triggering, which is common in mechanical switches. By requiring two consecutive valid reads, the design minimizes the chance of erroneous inputs due to switch bounce. The menu navigation system, which allows users to cycle through different configurations and options, should be designed to be user-friendly while maintaining functionality.

Overall, this circuit design emphasizes the importance of both hardware and software integration in achieving a reliable and user-friendly device. Future iterations may benefit from further testing to refine the interaction between components and enhance the robustness of the software interface.Circuit Fear not, dear reader - I haven`t given up the sauce. I am not in withdrawal, suffering severe autonomic instability. I refer not to Delirium Tremens, but to time differences, dt. Specifically to the "DT" data column in the WSPR GUI. Everything was going FB with the multi-mode beacon and its new internal DDS until Thursday, when I started to notice large (and apparently random) timing errors. You can see the fall-off in performance on Thursday in this plot of the number of spots in each 24 hour period over the past two weeks. Eventually I discovered it was caused by some kind of interaction between the new Controller board and DDS and the main VXO system.

The interaction was either conducted through ground, power lines or interface lines or through radiation from clocks, RF sources etc. Whatever the cause, simply un-plugging the controller (and reverting to the SDR Kits USB synth ) has cleared up the jitters for the moment.

I had so much fun with building the DDS board in surface mount technology that I decided to stick in the nano scale and got some tiny tactile momentary action switches from Farnell (seen here against a PIC 16F873 for scale). . a conventional layout in which columns of switches are sequentially pulled low by pull-down transistors (in this case MMBT3904s - the surface-mount version of my beloved 2n3904) and read in "rows".

I arranged two columns of three switches - four "arrow" keys to navigate up/down, left/right and two (as yet) un-designated switches. The actual software interface to the keypad is simple enough - the only real issue being the optimisation of the delays and rules for switch de-bouncing.

I tested for two consecutive valid "reads" of the same key, separated by a small delay and then imposed another delay before looking for another key push. However, reading the state of a key and getting that state to do something useful are two very different things - especially in assembly language!

I have implemented a menu structure, in which the left/right keys are used to navigate from the "standard" operating configuration ("Menu 0") to a umber of other menu "pages". Each page has a (programmable) number of options, which are selected using the up/down keys (including a Boolean "On/Off" option if required).

🔗 External reference




Warning: include(partials/cookie-banner.php): Failed to open stream: Permission denied in /var/www/html/nextgr/view-circuit.php on line 713

Warning: include(): Failed opening 'partials/cookie-banner.php' for inclusion (include_path='.:/usr/share/php') in /var/www/html/nextgr/view-circuit.php on line 713