tag:blogger.com,1999:blog-319558932024-03-05T07:43:45.566+00:00The "Speaky" HF SSB transceiver and other homebrew projectsHomebrew of radio equipment, antennas, tuner, etc.Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.comBlogger544125tag:blogger.com,1999:blog-31955893.post-17671758948144258582023-06-25T22:24:00.002+01:002023-06-25T22:24:30.559+01:00Simple ESR meter<p> Almost a copy from <a href="https://www.eevblog.com/forum/projects/5-transistor-esr-meter-design/">here</a>.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmodwHl7QgOTOL5M-ivxqZBcxWv51Dda_UhLweRwaAADwWCTvxdKlkFbyGeBUOpI8JSFgOIKKX9my5F8P6TbPMm5-oXqVsxOYLEahUnAFoWXbsb-IaxlCuoUVOR150AXwJ9uPJZAwr3Y1FGMcFyjP4zH8BxTBPZLbOL57sim04cNrLTH8-6ghb/s3264/20230107_135357.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmodwHl7QgOTOL5M-ivxqZBcxWv51Dda_UhLweRwaAADwWCTvxdKlkFbyGeBUOpI8JSFgOIKKX9my5F8P6TbPMm5-oXqVsxOYLEahUnAFoWXbsb-IaxlCuoUVOR150AXwJ9uPJZAwr3Y1FGMcFyjP4zH8BxTBPZLbOL57sim04cNrLTH8-6ghb/s320/20230107_135357.jpg" width="320" /></a></div>Only added provision for self "TEST", that is; the switch disconnects the terminals and connect internally to know resistor values via rotary switch (minimum 2 Ohm since had nothing smaller at the time). Also add zeroing via a pot on R24 place.<br /><p></p><p>Diagram from the original site:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtVSMMedh_pN5pzDCeONrPoFKF1OqdwkmxpI8qk68LjQFedgyb6N1Pr_mm0HMl3zwfRsvo4-1B3mTiksOT6wduMNOglFEpvoKNUIVoI-8TOULB-iCwdWlIuFPSMY9TQ_hDPRlTx5g1uqBlng-CUbXEO_C85y7CC4G4RXubjD3EBuEXphF5csOe/s1630/%25%20transistor%20ESR%20meter%20Orcad%20schematic.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="577" data-original-width="1630" height="113" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtVSMMedh_pN5pzDCeONrPoFKF1OqdwkmxpI8qk68LjQFedgyb6N1Pr_mm0HMl3zwfRsvo4-1B3mTiksOT6wduMNOglFEpvoKNUIVoI-8TOULB-iCwdWlIuFPSMY9TQ_hDPRlTx5g1uqBlng-CUbXEO_C85y7CC4G4RXubjD3EBuEXphF5csOe/s320/%25%20transistor%20ESR%20meter%20Orcad%20schematic.JPG" width="320" /></a></div><br /><p></p><p>Inside: <br /></p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpeFqfNx9SIskOourF_MU7O40w-uy8gE_TrsgZWDxzRefXLjMbXioIPu6gRIfVYDMTeb7ESUCXqmhl3wCihepW082r7Bmt-WC0r-668BY6g7bmMPdZZuRyzZFwTW2B3YIsxvAbBbqecGcH4gpfMAhHrn6aeOe0gV2DPa0KP9YiOurbztQ7uvxZ/s3264/20230107_114055.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpeFqfNx9SIskOourF_MU7O40w-uy8gE_TrsgZWDxzRefXLjMbXioIPu6gRIfVYDMTeb7ESUCXqmhl3wCihepW082r7Bmt-WC0r-668BY6g7bmMPdZZuRyzZFwTW2B3YIsxvAbBbqecGcH4gpfMAhHrn6aeOe0gV2DPa0KP9YiOurbztQ7uvxZ/s320/20230107_114055.jpg" width="320" /></a></div><br />and during testing:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY94ViiTTNRkx28RlRST2rPj6ci3V52dsIRAYmS-cR7Y5VT9mzVlZMI6jWxYGElg_GTUY40AYozc4_IMtPD_3JQfs_iXpxxZYza-B49z6GhTF2hF1jpQ4ncLl542W61_492-1gdbPd-2ZXf6X3I8CX2YB8OPvN3NlXnP7DWJhM3HL1GpLwm3QV/s1600/index.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="900" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY94ViiTTNRkx28RlRST2rPj6ci3V52dsIRAYmS-cR7Y5VT9mzVlZMI6jWxYGElg_GTUY40AYozc4_IMtPD_3JQfs_iXpxxZYza-B49z6GhTF2hF1jpQ4ncLl542W61_492-1gdbPd-2ZXf6X3I8CX2YB8OPvN3NlXnP7DWJhM3HL1GpLwm3QV/s320/index.jpeg" width="180" /></a></div><p>Works nice, handy for testing old caps.</p><p>Have a nice day!<br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-29390813349755527502023-04-29T13:23:00.000+01:002023-04-29T13:23:13.360+01:00Simple Capacitance Meter<p> As title says; a simple capacitance meter.</p><p></p><p>One youtube video by <a href="https://www.youtube.com/watch?v=oV1CyqP6ZFA">VK3YE</a> was enough to get me started building, after all, the meter that I was using before was not behaving correctly (latter found the problem).</p><p>The outcome was this:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUGGbiM_iNBv_WXEtDEvl2vQWUiLSbCNwTnEJSjw3iMnKkoBm2TJf4gF_bqa6KqFDD7SO0DrRZxxZC9paWBBh58PddEa4jCn_3nXGzlipiiasuRYxkMka70wxDvk1BcefRCrE6At6BGBwT5ZTlTc4D_2JtJxctRi2rlqx0TigrpAE0W9iEfQ/s3264/20230423_182021.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUGGbiM_iNBv_WXEtDEvl2vQWUiLSbCNwTnEJSjw3iMnKkoBm2TJf4gF_bqa6KqFDD7SO0DrRZxxZC9paWBBh58PddEa4jCn_3nXGzlipiiasuRYxkMka70wxDvk1BcefRCrE6At6BGBwT5ZTlTc4D_2JtJxctRi2rlqx0TigrpAE0W9iEfQ/s320/20230423_182021.jpg" width="320" /></a></div>(scale on the left switch is wrongly printed, where is x2 should be x0.5/divide by 2)<br /><br />During build:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wbfT_tF5Q5s2ox508efkB1ZXGRGyUfbRLrYENo8YJzb1DHhmeyg4G55ItyxBu_rrSmEjEyTNuxTv2pTA8uE50BHBOJre1QsAIRexFEfFsp6wh0qqimnD3LNj9b02XKSFWxUJew9KS4QpbmPziOgVbi19Yn3VGHIMXSKwdTLXh7BSVH0DQw/s3264/20230423_134232.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6wbfT_tF5Q5s2ox508efkB1ZXGRGyUfbRLrYENo8YJzb1DHhmeyg4G55ItyxBu_rrSmEjEyTNuxTv2pTA8uE50BHBOJre1QsAIRexFEfFsp6wh0qqimnD3LNj9b02XKSFWxUJew9KS4QpbmPziOgVbi19Yn3VGHIMXSKwdTLXh7BSVH0DQw/s320/20230423_134232.jpg" width="180" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDPKO_1zzaBztMCRvI_YKl2XwyREOZntWY15RQ60MChqhF5LGEAPQ_Hm2uVXKQyAXNt4KGRtb1W9kq706v64RAp2eb7KcDPJxkOCbvpITQD7wqqJaXV2GWdm3hnFDJQR9kq9jQHvw1Ak5da_dR6sQnTcqJ3fexFc9GQ6j0VITowJQIbJyS8A/s3264/20230422_211614.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDPKO_1zzaBztMCRvI_YKl2XwyREOZntWY15RQ60MChqhF5LGEAPQ_Hm2uVXKQyAXNt4KGRtb1W9kq706v64RAp2eb7KcDPJxkOCbvpITQD7wqqJaXV2GWdm3hnFDJQR9kq9jQHvw1Ak5da_dR6sQnTcqJ3fexFc9GQ6j0VITowJQIbJyS8A/s320/20230422_211614.jpg" width="180" /></a></div>Making the scale:<br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVEwR5ZY840Ezy6yd81m7M-xt3oWy2fZGB7AV8i6BUmS65HzrWFLlAGbADGZ0sBhtHMJkfJptzykmz8zKMALUHp_miELOMfOrpMckL1GrkzMlM9L7EH5PDqPeqJhRHBxAW0KaOL8LMYs-tbpGGejI-vAV8p5ytLp04Jyl4U8AjbhnJ8au7Vw/s3264/20230421_112556.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVEwR5ZY840Ezy6yd81m7M-xt3oWy2fZGB7AV8i6BUmS65HzrWFLlAGbADGZ0sBhtHMJkfJptzykmz8zKMALUHp_miELOMfOrpMckL1GrkzMlM9L7EH5PDqPeqJhRHBxAW0KaOL8LMYs-tbpGGejI-vAV8p5ytLp04Jyl4U8AjbhnJ8au7Vw/s320/20230421_112556.jpg" width="320" /></a></div>The scale on the meter was changed from the original 0-50 to 0-100, the easiest way was to scan the original face-place and then edit on a image editor.<br /><p>To calibrate I used a 68pF and 27pF capacitor, the idea was not to have highest precision possible only to be in a position of having certain about unmarked capacitors. <br /></p><p>Some description/schematic from <a href="http://lojoner.blogspot.com/2013/05/5-range-simple-capacitance-meter-ne555.html">here</a> and <a href="http://www.afiata.com/vibration-control-switch-circuit/electronic-component-detector-circuit-using-ne555-bc108/">here</a>:<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVk3_wJhXdFqipmVPwu6KkPppNp8TJjPNGEQ40uGdmm0XCVvpQtuBiG2k-55E-1aoyZBsoJ_nQqci302y4h_lQH_J8PqBriU_VAyUjNW6CFMQCjEwgR6krg4wEmkXLECGTLnJ016U8p22gIEb2vKqBSCbcEjDwjhXlG4zTnSD8N-I1cdH4ZQ/s591/Electronic-Component-Detector-Circuit-using-NE555-BC108.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="343" data-original-width="591" height="186" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVk3_wJhXdFqipmVPwu6KkPppNp8TJjPNGEQ40uGdmm0XCVvpQtuBiG2k-55E-1aoyZBsoJ_nQqci302y4h_lQH_J8PqBriU_VAyUjNW6CFMQCjEwgR6krg4wEmkXLECGTLnJ016U8p22gIEb2vKqBSCbcEjDwjhXlG4zTnSD8N-I1cdH4ZQ/s320/Electronic-Component-Detector-Circuit-using-NE555-BC108.gif" width="320" /></a></div><p></p><p>I used different Ge diodes and the 10K pot was changed for 2 of 5K in series to give better adjustment range. The Zener was changed to 6.8v.<br />Ranges like this:</p><p>E: 100pF<br />D: 1nF <br />C: 10nF<br />B: 100nF <br />A: 1uF<br /></p><p> </p><p>Have a nice day!</p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-5222523090208373802023-04-01T22:07:00.000+01:002023-04-01T22:07:05.239+01:00Clock for a clock - 32.768Khz oscillator<p> Not planing to build any electronic clock but who knows. Just found one of those round clock crystals and decided to give it a go.</p><p>The diagram and assembly<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU7U1HwdBt0winY-ISDT2mLklO3oZQ4euKOclYHyN5eWfNajUddFhaWR4rSbI097m_G9QmuiaYfS3dQl84qKD5OD16ksM8d2vqh5128Ix7uaCNLm8_-kTaQFn7xFn8sM9R1ODRoLXaFzSyDQvsouakmkU5yD11Sc0JzzsfiFyNaUFrQxOrGA/s3264/20221023_131737.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjU7U1HwdBt0winY-ISDT2mLklO3oZQ4euKOclYHyN5eWfNajUddFhaWR4rSbI097m_G9QmuiaYfS3dQl84qKD5OD16ksM8d2vqh5128Ix7uaCNLm8_-kTaQFn7xFn8sM9R1ODRoLXaFzSyDQvsouakmkU5yD11Sc0JzzsfiFyNaUFrQxOrGA/s320/20221023_131737.jpg" width="180" /></a></div><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0wOA5vCJeTLWXkH8nDJbZACgU8e10_fs66mx0HM5ecNhjBey3F9R8K1M7iASVCW_O5PTHzOMCM_gEpr4OhRAjV3Zhy76o2Ii7MK8uJeQu2vNBDrWvvqSAnF4bsfyjhJvKJ4NK4WB4RuU9fUUi31gQhx6XqueZaEHqcnBqElcd-Pw4oTIjtQ/s3264/20221022_205600.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0wOA5vCJeTLWXkH8nDJbZACgU8e10_fs66mx0HM5ecNhjBey3F9R8K1M7iASVCW_O5PTHzOMCM_gEpr4OhRAjV3Zhy76o2Ii7MK8uJeQu2vNBDrWvvqSAnF4bsfyjhJvKJ4NK4WB4RuU9fUUi31gQhx6XqueZaEHqcnBqElcd-Pw4oTIjtQ/s320/20221022_205600.jpg" width="180" /></a></div> The output, ideally it will be 32.768Khz so that diving for the same number will tick at 1s:<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0YnezWG86AkGQeRzwGMTRrT7rG3zTC1VXPVsNj_DFG-ZKO1qCtb_o_yJAGvOGsAqyeOSqBXK4pH2dAkNBTbWKobcdWItymVHJgUnAkB1vhCvuEinoFPTB7uOlXkOlrsBtcarv6iNXVYbwwiGcC-hj-XvkJ_lkAUUCYkrwvg7DW0w46hP4uA/s3264/20221023_111327.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0YnezWG86AkGQeRzwGMTRrT7rG3zTC1VXPVsNj_DFG-ZKO1qCtb_o_yJAGvOGsAqyeOSqBXK4pH2dAkNBTbWKobcdWItymVHJgUnAkB1vhCvuEinoFPTB7uOlXkOlrsBtcarv6iNXVYbwwiGcC-hj-XvkJ_lkAUUCYkrwvg7DW0w46hP4uA/s320/20221023_111327.jpg" width="320" /></a></div>As low as it was possible to adjust, it will be less than 1s faster per day... time flies! <p></p><p><br /></p><p>Have a nice day!<br /></p><p><br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-65277659539200920922023-03-05T15:31:00.004+00:002023-03-05T15:31:57.749+00:00Interdigital Bandpass Filter for 1.2Ghz / 23cm<p> Part of a project on 1.2Ghz that will include this band-pass filter.</p><p></p><p>Main dimensions got online via the tool here: https://www.changpuak.ch/electronics/interdigital_bandpass_filter_designer.php<br /><br />Some details of similar construction for different frequency range (ADS-B) here: https://keptenkurk.wordpress.com/2014/11/05/a-homebrew-1090mhz-ads-b-filter/</p><p> </p><p>My construction:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwSlLzhZ-61s2Jol-lq0sw5jz-wgu_elCj0ppqZpX5xrUq7UhHpRjAoe7c4sI0ayDK1rD0cTuApq7NJ9x_OsVrHQ0pGmHm_OhnsXPEKzmpVtp-NZXwO4ZDJWjMvpkWxvTDD6JFzIJv6Gybfxd222WDeg6XR0gEr9Uyk84tfT75xTLDXOBC8Q/s3264/20230218_100830.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwSlLzhZ-61s2Jol-lq0sw5jz-wgu_elCj0ppqZpX5xrUq7UhHpRjAoe7c4sI0ayDK1rD0cTuApq7NJ9x_OsVrHQ0pGmHm_OhnsXPEKzmpVtp-NZXwO4ZDJWjMvpkWxvTDD6JFzIJv6Gybfxd222WDeg6XR0gEr9Uyk84tfT75xTLDXOBC8Q/s320/20230218_100830.jpg" width="180" /></a></div>Used FR4 double sided PCB for the sides and brass for elements, bottom and top<br /><p></p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOfcYj0mCBaNg4ftRvtEd85Hfhjicodrj8izRODL1HD2Uq0nM_f3cYuoNn240y1m1y9U271SL6YMQWViUc25g7j6PGEt-xPzhUYONRJlWthz3-t76_wfIwOY4PDNFcnUqPr3IjolrDEmtfSSshVwpGfdQRp_fLv4RvXlYnPHnNTS0j1aXRWw/s3264/20230217_132906.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOfcYj0mCBaNg4ftRvtEd85Hfhjicodrj8izRODL1HD2Uq0nM_f3cYuoNn240y1m1y9U271SL6YMQWViUc25g7j6PGEt-xPzhUYONRJlWthz3-t76_wfIwOY4PDNFcnUqPr3IjolrDEmtfSSshVwpGfdQRp_fLv4RvXlYnPHnNTS0j1aXRWw/s320/20230217_132906.jpg" width="180" /></a></div>Online results example for dimensions:<br /><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9QG2Oy8rcKf10JEnIphqt2wmLLtKvNrCMSUHRRxLhxE4TvYCXdq4p-8AZ3z4SoYpxtTf19CvRnHcjyQYOb1_DnQZiocZ4UO45mkj4KY7QjrpAJo4T8If1Iqo08-gZTmjEW0SZnIpErdTiziRJ_Ni6UAHlfo4kj1drP25mVBjuEcDsf81sDA/s672/values2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="394" data-original-width="672" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9QG2Oy8rcKf10JEnIphqt2wmLLtKvNrCMSUHRRxLhxE4TvYCXdq4p-8AZ3z4SoYpxtTf19CvRnHcjyQYOb1_DnQZiocZ4UO45mkj4KY7QjrpAJo4T8If1Iqo08-gZTmjEW0SZnIpErdTiziRJ_Ni6UAHlfo4kj1drP25mVBjuEcDsf81sDA/s320/values2.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifzgnGH4tvjx8JSPgEA9MR78yku272f204LlZ-fBR5tr88WLRyYZWQYcS6wwmu530qf3RrTBGukFOYo9yJAne_lyJavQJDK1Qck-f3XYiMUAIVWmKHkl5eDByJKNZ8sW8gY6qRwfFQ0h72J0UhbGsrO4k1btzrQ9LhsXU8xr4X3TRdQ16Mfw/s678/values1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="390" data-original-width="678" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifzgnGH4tvjx8JSPgEA9MR78yku272f204LlZ-fBR5tr88WLRyYZWQYcS6wwmu530qf3RrTBGukFOYo9yJAne_lyJavQJDK1Qck-f3XYiMUAIVWmKHkl5eDByJKNZ8sW8gY6qRwfFQ0h72J0UhbGsrO4k1btzrQ9LhsXU8xr4X3TRdQ16Mfw/s320/values1.png" width="320" /></a></div><br /><p> And the outcome:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheJ9wbdZR13ziYWEsOhOQSnHqlk4fHhC5qKlowWEkLZXyrQVBsBsAh__6NkX-wGoGa6CHyLr8uAI5gmH0KU8vuuFmse_tptxWKtyN9poKWdfVsj89qQAi_llrjTGf6ZuK3TYvgnqi7G04c-d_Kn_fpGfqBljSC2jFptWkSeaLkK94fljRYww/s3264/20230228_215823.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheJ9wbdZR13ziYWEsOhOQSnHqlk4fHhC5qKlowWEkLZXyrQVBsBsAh__6NkX-wGoGa6CHyLr8uAI5gmH0KU8vuuFmse_tptxWKtyN9poKWdfVsj89qQAi_llrjTGf6ZuK3TYvgnqi7G04c-d_Kn_fpGfqBljSC2jFptWkSeaLkK94fljRYww/s320/20230228_215823.jpg" width="320" /></a></div><br /><p></p><p>Regarding results; not the best optimization for attenuation but not bad either considering the dimensions and construction not to the greatest dimensional andards: <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEVS_oJ-sXJpRfZfRfAI3QwATfzJSLCdP58TGWLxScFqdSeFG50LFWwbccFY_sZlZYuOKJjheIItqQ-kbw4hjF8y6RMux3qe6DgAUddSHoyFnJKiGjzhCGob2c5cAjKkwLi520Id9cCEhb9sgGa399zGcGSTFANQdXBv83biy_aJMHIKaQg/s800/1.2g-filter.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZEVS_oJ-sXJpRfZfRfAI3QwATfzJSLCdP58TGWLxScFqdSeFG50LFWwbccFY_sZlZYuOKJjheIItqQ-kbw4hjF8y6RMux3qe6DgAUddSHoyFnJKiGjzhCGob2c5cAjKkwLi520Id9cCEhb9sgGa399zGcGSTFANQdXBv83biy_aJMHIKaQg/s320/1.2g-filter.bmp" width="320" /></a></div><br /><p><br /></p><p><br /></p><p>Have a nice day!<br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-63182144428378731152022-11-19T15:50:00.001+00:002022-11-19T15:50:18.129+00:00High voltage supply for tube/valve tester<p> A power supply for a future tube/valve tester</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh226J-WUGnTi-0QIcz2_16vZeCyqhC47P_yKCfAtVnwulTAHkN-wi60iseGho49lewvDp4_CnJQmsBKZFdJ8z2RtkhCybngTCYghc6sgF8jhOlpAr8PRG7S7xy9c1ePIWOE_znW7qAXl9vhTgr9GxDygb5V2SQh7DyQuXbBGv26L7PDFkbTQ/s3264/20221021_130329.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh226J-WUGnTi-0QIcz2_16vZeCyqhC47P_yKCfAtVnwulTAHkN-wi60iseGho49lewvDp4_CnJQmsBKZFdJ8z2RtkhCybngTCYghc6sgF8jhOlpAr8PRG7S7xy9c1ePIWOE_znW7qAXl9vhTgr9GxDygb5V2SQh7DyQuXbBGv26L7PDFkbTQ/s320/20221021_130329.jpg" width="320" /></a></div><br /><p></p><p>Main circuit for the positive side is similar to the one bellow (the top section),</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirjdBJYD8p1zg66lI4UJMlDM6Pm4GF-iU5cN85SaGVeSxmkcmtU-0nNz3OBLKH0DgDRL78NZnUXzNLX6sZS8aQdMj7acgAOGLvq753V9081t-CCdRIXKQHqOCrqCeuOrFVvER8pt0Egc9FuMxGtmH4HAkWFh3qwSfP4-n683vkTszDEYeflg/s1368/Screenshot%20at%202022-01-15%2015-03-46.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="761" data-original-width="1368" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirjdBJYD8p1zg66lI4UJMlDM6Pm4GF-iU5cN85SaGVeSxmkcmtU-0nNz3OBLKH0DgDRL78NZnUXzNLX6sZS8aQdMj7acgAOGLvq753V9081t-CCdRIXKQHqOCrqCeuOrFVvER8pt0Egc9FuMxGtmH4HAkWFh3qwSfP4-n683vkTszDEYeflg/s320/Screenshot%20at%202022-01-15%2015-03-46.png" width="320" /></a></div><br /> The filament circuit is similar to the bottom section.<br /><p></p><p> The negative supply is similar to the diagram bellow("Standard") with small adaptations to allow 2 different ranges:<br /><br /><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilXhUU5Db5yZ6fnRtHn6FUG9ZmddhmqcWsQwsv79G8Coqssh5TsSHVl7W40di6Il98638fnnIiiP5GFdZgA_cGGXkS79AaO2GV9iz16GMZoXsAlW1I6U76f9cJHJ7wgUfjl8q9v2YzSCyBY5xYVJq9IKQdLhYvBJTRPVlvu-ygti4oHQTguA/s1050/Screenshot%20at%202022-06-18%2021-34-55.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="731" data-original-width="1050" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilXhUU5Db5yZ6fnRtHn6FUG9ZmddhmqcWsQwsv79G8Coqssh5TsSHVl7W40di6Il98638fnnIiiP5GFdZgA_cGGXkS79AaO2GV9iz16GMZoXsAlW1I6U76f9cJHJ7wgUfjl8q9v2YzSCyBY5xYVJq9IKQdLhYvBJTRPVlvu-ygti4oHQTguA/s320/Screenshot%20at%202022-06-18%2021-34-55.png" width="320" /></a></div><br /><p></p><p> There's a separate transformer for each of the supplies; the filament the positive and the negative, also other separate on to power the voltage meters.<br /><br /></p><p>Was added a small relay controlled high voltage supply output so I don't get accidentally zapped, you need to constantly press enable button to have high voltage output at the terminals.</p><p></p><p>The internals:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdxyzwmX0uF7voKs3WZXKBz_yonZTA1xRCMiOK32K3Tcm2jAmk1vKNVungzlpo86z8Nn55M_bTFKVdS8bHhKi7jfNZ0AwxZkpESPjSKa2G8RTIQt2EayWbR8T-iYovKSEBA1sMjyBPc6fHGJI7yd3nu3_bxskFGFx4UvR5pWw5ZY6b3LRXaQ/s3264/20221008_141935.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdxyzwmX0uF7voKs3WZXKBz_yonZTA1xRCMiOK32K3Tcm2jAmk1vKNVungzlpo86z8Nn55M_bTFKVdS8bHhKi7jfNZ0AwxZkpESPjSKa2G8RTIQt2EayWbR8T-iYovKSEBA1sMjyBPc6fHGJI7yd3nu3_bxskFGFx4UvR5pWw5ZY6b3LRXaQ/s320/20221008_141935.jpg" width="180" /></a></div><br /> Finished here:<br /><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXaqeDotIwdZORJpyJ7uCg95AsUE1wiwDmc3cSfacmXEGfgcENrACKOPGxWf64_8FLcDxBA6w5bgDo4_t0YKGfd67qwEX91tkY57csQQusZhJANQdcxoKWJ4zjcOFn9FT4xBLVjyVqwgjyEjMscBaO6rsdfwO7uNp_7F0LKEVVJ3aCcwbUMg/s3264/20221021_103913.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXaqeDotIwdZORJpyJ7uCg95AsUE1wiwDmc3cSfacmXEGfgcENrACKOPGxWf64_8FLcDxBA6w5bgDo4_t0YKGfd67qwEX91tkY57csQQusZhJANQdcxoKWJ4zjcOFn9FT4xBLVjyVqwgjyEjMscBaO6rsdfwO7uNp_7F0LKEVVJ3aCcwbUMg/s320/20221021_103913.jpg" width="180" /></a></div><br /><p> <br />Working during testing:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb90xx-Hf7qc9pSG-ATfLF-fGmwmxRwQhAqe2Ojybs0aotLg72ws6yhPkVUpsgchrxZ8uqDFtCc3YnRV_8ZtbJ9dWDKm0fIGeqz2tNhC-qwOrUZO01wbNl373vlwiXTqNigKhd_OwMUmbFT9HRDjdEli4NjBU3wp66vIBRwvJGPekBPMDXqg/s3264/20221021_104235.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgb90xx-Hf7qc9pSG-ATfLF-fGmwmxRwQhAqe2Ojybs0aotLg72ws6yhPkVUpsgchrxZ8uqDFtCc3YnRV_8ZtbJ9dWDKm0fIGeqz2tNhC-qwOrUZO01wbNl373vlwiXTqNigKhd_OwMUmbFT9HRDjdEli4NjBU3wp66vIBRwvJGPekBPMDXqg/s320/20221021_104235.jpg" width="320" /></a></div><br /><p></p><p>Now I still need the tube socket and metering part for the full valve/tube test set, eventually something like this (only the top section):<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9s1gBWJlxUykFQx-NjixOjC4vdhw3RAk6C3TWMeI0EId4Q0JO4i-KSRPZ1KHSvWB7ykXUuddqkYXqgZUXdS509bL1ytlD1HTd6HWdvEu_LdVWhE2Pa3IJk7sYQfMDpfeBUmRRgMmlorg3OeJRya6o_E8k-QaYiapxUd-s1NEHVffynphZUg/s836/Screenshot%20at%202022-06-18%2021-33-39.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="618" data-original-width="836" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9s1gBWJlxUykFQx-NjixOjC4vdhw3RAk6C3TWMeI0EId4Q0JO4i-KSRPZ1KHSvWB7ykXUuddqkYXqgZUXdS509bL1ytlD1HTd6HWdvEu_LdVWhE2Pa3IJk7sYQfMDpfeBUmRRgMmlorg3OeJRya6o_E8k-QaYiapxUd-s1NEHVffynphZUg/s320/Screenshot%20at%202022-06-18%2021-33-39.png" width="320" /></a></div><br /><p>Have a nice day!<br /></p><p><br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-46288447367864501542022-10-03T22:12:00.003+01:002022-10-03T22:14:22.860+01:00Arduino bootloader burner<p>I have some spare ATmega328 chips that are not programed and can be used in some projects specially now the prices Arduino boards got some inflation.<br /><br />In order to upload the program to the IC's you will need to burn first the bootloader, at least so that later you then upload via de Arduino IDE. </p><p>Schematic and instruction are from here: https://docs.arduino.cc/built-in-examples/arduino-isp/ArduinoISP<br /></p><p>End result:</p><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBiRlCY_X1SmiUmL3EFsShgzrpptC0DZf1iQ2lE1JgYleSn-nIEPCQO0-4JamWGXbMRzOU389SGRj-LlxbmuCzBjkqacUuRl4FzC1yFmBIyHeWsc7m-xKHLER02PZx9ujJVzC8rJuTYEHveZydwojj_kDv_4PKED9GHIxoEUhes0X4A5LG5g/s3264/20221003_174732.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBiRlCY_X1SmiUmL3EFsShgzrpptC0DZf1iQ2lE1JgYleSn-nIEPCQO0-4JamWGXbMRzOU389SGRj-LlxbmuCzBjkqacUuRl4FzC1yFmBIyHeWsc7m-xKHLER02PZx9ujJVzC8rJuTYEHveZydwojj_kDv_4PKED9GHIxoEUhes0X4A5LG5g/s320/20221003_174732.jpg" width="180" /></a></div><br />Bottom Arduino is the programmer where you upload the ArduinoISP.ino code, it connects to the Arduino on top (target) that is going to have the chip to be programmed/burn.<br />The zif socket on the target Arduino just facilitates the insertion of the ATmega IC.<p></p><p>Another view:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQ3sTy7LXUk5lGEaCkzcUoJiT6DZ0ehrS0twj4F-E8qU69Dtfynz0WkaaiFwagDiJ_cuKFK8tWx5TPwuj_E5-RvF47DB_t0jvXW-Okn-sCqzwGam3NsSeIsWCmr-8LUVMj4Tfx8ZZkBvnW4JAp7iYj-Tm23i50ZG4-86sSeILmFCBHRoz5w/s3264/20221003_174713.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiQ3sTy7LXUk5lGEaCkzcUoJiT6DZ0ehrS0twj4F-E8qU69Dtfynz0WkaaiFwagDiJ_cuKFK8tWx5TPwuj_E5-RvF47DB_t0jvXW-Okn-sCqzwGam3NsSeIsWCmr-8LUVMj4Tfx8ZZkBvnW4JAp7iYj-Tm23i50ZG4-86sSeILmFCBHRoz5w/s320/20221003_174713.jpg" width="320" /></a></div><br /><p>For uploading: select the Arduino programmer USB port and then the programmer type "Arduino as ISP", in the end just "burn bootloader".</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyV6CETv8JXs1KiDD_JGmOUQuxXodQnNMzNQaaE_LqaJet5zw8lMKb8ZXGfwh7Rrt_6mEDbDhDeo1hLvUwaRBMoA4FzRphdk5oSLPEwPJHwtpBNoIbqiees7YkH8Lzh-beiQ_kBoxfqo5ksRLDCds3TWt3Dlkt0fN72nUeSSdqvTR8T2zTaQ/s1070/Screenshot%20at%202022-10-03%2017-34-41.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="839" data-original-width="1070" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyV6CETv8JXs1KiDD_JGmOUQuxXodQnNMzNQaaE_LqaJet5zw8lMKb8ZXGfwh7Rrt_6mEDbDhDeo1hLvUwaRBMoA4FzRphdk5oSLPEwPJHwtpBNoIbqiees7YkH8Lzh-beiQ_kBoxfqo5ksRLDCds3TWt3Dlkt0fN72nUeSSdqvTR8T2zTaQ/s320/Screenshot%20at%202022-10-03%2017-34-41.png" width="320" /></a></div><br /><p>After bootloader burn:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Ws8Yyc6uxKNmShoE65sFq8Qp1aKJNFqFQ9nKr68r0VYP_PXJZOM8WOVp5jTx9upCyznOomPCnbpa3ZpfcLu2A8JiTTbMk80EaqCwKZ92sVlCXsh4A0avBWIQW4gbrO6zpqsW3Z0CPPSrn_AyKXkOatDJPyExWOdCJuIY5pxPawgHLfGG-g/s918/Screenshot%20at%202022-10-03%2017-35-43.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="786" data-original-width="918" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Ws8Yyc6uxKNmShoE65sFq8Qp1aKJNFqFQ9nKr68r0VYP_PXJZOM8WOVp5jTx9upCyznOomPCnbpa3ZpfcLu2A8JiTTbMk80EaqCwKZ92sVlCXsh4A0avBWIQW4gbrO6zpqsW3Z0CPPSrn_AyKXkOatDJPyExWOdCJuIY5pxPawgHLfGG-g/s320/Screenshot%20at%202022-10-03%2017-35-43.png" width="320" /></a></div><p>Have a great day!<br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p></p><p><br /><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-72802360810433053062022-03-21T17:56:00.000+00:002022-03-21T17:56:02.421+00:00External PLL reference for Redline WL-2 Twin LNB<p> As part of the construction of a QO-100 station decided to try and convert a common satellite LNB from internal PLL crystal reference to an external one.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfUKQKCdGYJukCCD7yKaagijqwg6dpuxWc48O-IQ_zdTM5YcIiMsBlwD_pQjD0-dyNOB4zPWPTnGfAnRdzZNJqtXOexukfY3UBEpnCfOijUibvvkMYR05LDr-UHDOVBl3qt_tbvHvpliMLO1FRlpbSqVQF2nSC_o3JWOkq-PRnt9mVn88qiw/s1073/if-9.736844.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="740" data-original-width="1073" height="221" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfUKQKCdGYJukCCD7yKaagijqwg6dpuxWc48O-IQ_zdTM5YcIiMsBlwD_pQjD0-dyNOB4zPWPTnGfAnRdzZNJqtXOexukfY3UBEpnCfOijUibvvkMYR05LDr-UHDOVBl3qt_tbvHvpliMLO1FRlpbSqVQF2nSC_o3JWOkq-PRnt9mVn88qiw/s320/if-9.736844.png" width="320" /></a></div>On the image, during testing after the convertion was still drifting a bit since the Wavetek signal generator used was still warming up.<br /><p></p><p> This is the inside of the LNB after plastic and metal cover removed:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJfUAss7_c7yrQYRFg1hZLIZWIihiU0fQZBvrqV2LbFJ9vKKvsE_4Zo2k2kC7Jg5rd42TuI0jkVHqDvvbIlJ_rGqTneEuoo1chcXiBta1aj_Ls1ER_g95i6M8bQsXh2LSKD2EHlyjvMe0FQ8QxIbhsMmYeO1qVJKwN15A1yr80AEb1pbarqA/s3264/20220313_105645.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJfUAss7_c7yrQYRFg1hZLIZWIihiU0fQZBvrqV2LbFJ9vKKvsE_4Zo2k2kC7Jg5rd42TuI0jkVHqDvvbIlJ_rGqTneEuoo1chcXiBta1aj_Ls1ER_g95i6M8bQsXh2LSKD2EHlyjvMe0FQ8QxIbhsMmYeO1qVJKwN15A1yr80AEb1pbarqA/s320/20220313_105645.jpg" width="320" /></a></div><p>Another view bellow. The crystal oscillator is on the other side of the PCB so it's needed to de-solder the F plugs terminals (top left and right):</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZOl9hhcc3my4J-HTHcYgQhzMqxqI855x4N8EIbfwdMKL8Yu9HS3x7c0ltNiE2uYaovyvVtGSlL9pwtb5D_XBNzyYX1MDsLniGA-6boPmkMXw47gte4H22hoJ-bvHBT3YJ5OErZQs5ZWskOUo85QM4gBsvJ8v8UjwUhJDUPkTm4nZdEa2Hdw/s3264/20220313_105912.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZOl9hhcc3my4J-HTHcYgQhzMqxqI855x4N8EIbfwdMKL8Yu9HS3x7c0ltNiE2uYaovyvVtGSlL9pwtb5D_XBNzyYX1MDsLniGA-6boPmkMXw47gte4H22hoJ-bvHBT3YJ5OErZQs5ZWskOUo85QM4gBsvJ8v8UjwUhJDUPkTm4nZdEa2Hdw/s320/20220313_105912.jpg" width="180" /></a></div><p>After completion of the operation I can confirm It does work, still need to do more testing with different input signal reference, at the moment it accepts/works from around -10dbm to 0 dbm. Also tried to inject different reference besides the 25Mhz to shift the IF and works with ref. higher than the 25Mhz, bellow testing with 25.787Mhz as the PLL reference<br /></p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJUlCZhxRcJeAvZxBYORKZFzqU1WYA-atqZjWazmzaOWDEhYQUPO6RDd1v1fk6wfmpkAa34TXKHnoTgdgo-TBKzgwE2IPfOQg5iv76VsNVUvbfZ98oO5nadsP_7lSHLiONZXXucfD41iZTbi9eDcjujs5iDB5qM_gNw_i_-e-VfHLmkK-8Sw/s1075/25787Mhz-2022-03-13%2011-23-12.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="771" data-original-width="1075" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJUlCZhxRcJeAvZxBYORKZFzqU1WYA-atqZjWazmzaOWDEhYQUPO6RDd1v1fk6wfmpkAa34TXKHnoTgdgo-TBKzgwE2IPfOQg5iv76VsNVUvbfZ98oO5nadsP_7lSHLiONZXXucfD41iZTbi9eDcjujs5iDB5qM_gNw_i_-e-VfHLmkK-8Sw/s320/25787Mhz-2022-03-13%2011-23-12.png" width="320" /></a></div>The drift is the fine adjust being done on the signal generator, the actual LO LNB frequency is the crystal frequency times 390.<br /><p></p><p>The mod bellow, I also had to remove one cap from the input line to the output filter so that there is no load to the reference signal in.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq1Xyk8vKKxCgkH8dwpJCUqkIea_r366Zbhi-ZdV7VaPM63jII-TIZMRM2Uj5mV1T2Um1FIVYWh_zIs8AAYHAoGzGZ8Fh8Z9bdLSKQDAX8QkELbYoawi8xQyl68Nlu3eNJLePKyqHhpZ1M0fG94thqpQGzDkJL2BuL7vhR0_Z2vim9Ok_Jhw/s3264/20220313_110252.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq1Xyk8vKKxCgkH8dwpJCUqkIea_r366Zbhi-ZdV7VaPM63jII-TIZMRM2Uj5mV1T2Um1FIVYWh_zIs8AAYHAoGzGZ8Fh8Z9bdLSKQDAX8QkELbYoawi8xQyl68Nlu3eNJLePKyqHhpZ1M0fG94thqpQGzDkJL2BuL7vhR0_Z2vim9Ok_Jhw/s320/20220313_110252.jpg" width="320" /></a></div>The jumper wire is from one of the LNB external output plugs to the place where the crystal was (the two big blobs of solder).<p></p><p><br /> This is the original schematic (it's a RDA3567 chip on the LNB board) with the mods made:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjol04MSxIer9wAknVrBHsUtB6NHTuElD2IqEfLT8Sfho50BndAFKstQb6ufm9aadICP3-EA3O091eE7GDXvVCXnpcdnpZWaA-1vtCVyY2MXPsxzdQyCZKESuJP1guFgd2bfJkTkuWu3Tpn051BBmHlX32oQ4Fhekedf_ZhVCGK-JhPlsDKrQ/s496/Screenshot%20at%202022-03-21%2017-28-05.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="354" data-original-width="496" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjol04MSxIer9wAknVrBHsUtB6NHTuElD2IqEfLT8Sfho50BndAFKstQb6ufm9aadICP3-EA3O091eE7GDXvVCXnpcdnpZWaA-1vtCVyY2MXPsxzdQyCZKESuJP1guFgd2bfJkTkuWu3Tpn051BBmHlX32oQ4Fhekedf_ZhVCGK-JhPlsDKrQ/s320/Screenshot%20at%202022-03-21%2017-28-05.png" width="320" /></a></div><p>The capacitor used was one of the ones that were connected to the 25Mhz crystal on the original diagram<br /></p><p>To remove the original crystal since I don't have SMD tools, I placed the iron with a bit of solder on top of it and waited for warming up the underlying terminals until it could be removed (note: this voids the warranty).<br /></p><p>Another view of the LNB inside:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx06Fw4bC8dOGzPUzEJOZCbNSkOHn-OVIk2vdqNk-aSHeqEg4IhGcduU8K5Uz3FvDQm-n08bWHhiD3-iVo7LPY5jB0sjIKgc60Hf3QXq4R8ACWQHI7qTgCSyr4CBdm9adNhHeKEV5FCrkBXrZ4O_zDLmcZYL4AHneDtliNW4_BKYsE1D-r1w/s3264/20220313_110308.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjx06Fw4bC8dOGzPUzEJOZCbNSkOHn-OVIk2vdqNk-aSHeqEg4IhGcduU8K5Uz3FvDQm-n08bWHhiD3-iVo7LPY5jB0sjIKgc60Hf3QXq4R8ACWQHI7qTgCSyr4CBdm9adNhHeKEV5FCrkBXrZ4O_zDLmcZYL4AHneDtliNW4_BKYsE1D-r1w/s320/20220313_110308.jpg" width="180" /></a></div><br /><p></p><p> I also tried injecting on the LNB a parallel signal from the reference oscillator in the ADF4351 generator board to good success. Bellow the part where I took the signal from the ADF4351 reference:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUNVtZq8XbW9fXLV4oU_Uv2O-QsqrG17PeizJTeqvyB7MiVtt0oWs8M4hZTkUSw3fEz3vcVjl1ZBPqLjH11qH4xsk1ViR2Do3lepKRran-VSbUb--1HL6lwCydbCRagFXojm9x74Kx6ZANSnletmSKVWxZf5Bump3Z5KP4AAo_CAPYpdaeyw/s3264/20220321_103004.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUNVtZq8XbW9fXLV4oU_Uv2O-QsqrG17PeizJTeqvyB7MiVtt0oWs8M4hZTkUSw3fEz3vcVjl1ZBPqLjH11qH4xsk1ViR2Do3lepKRran-VSbUb--1HL6lwCydbCRagFXojm9x74Kx6ZANSnletmSKVWxZf5Bump3Z5KP4AAo_CAPYpdaeyw/s320/20220321_103004.jpg" width="180" /></a></div><p>I connected to the terminal normally used for the reference input and bridged the missing place for the 0 ohm resistor case you reference it externally. <br /></p><p>Let's see in the future how stable is this internal reference of the AD4351, if good enough it avoids having to build an external TCXO for the LNB.<br /></p><p>Have a nice day!<br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-71028046334790343852022-02-06T14:46:00.005+00:002022-03-19T15:27:49.001+00:00ADF4351 Signal Generator with frequency select<p>Another one for the list of projects with the ADF4351, following the <a href="https://speakyssb.blogspot.com/2021/01/adf4351-signal-generator.html">ADF4351 Signal Generator</a> and the <a href="https://speakyssb.blogspot.com/2021/09/adf4351-signal-generator-with-sweep.html">ADF4351 signal generator with sweep</a>. </p><p> This one to be used on a future project, a transverter for QO-100 satellite where a TX and RX frequency will be needed, depending if RX or TX enabled. The original design of the RX for around 50Mhz is that it can be divided by two so that signal will drive the 25Mhz oscillator of the LNB. I'll probably do that way for the LNB but also as full down conversion from 790Mhz.<br /></p><p> Main code is from F1CJN at: https://github.com/F1CJN/ARDUINO-ADF4351-QO-100/blob/master/ADF4351_Dual_251119.ino with small changes for my particular board and needs. </p><p> </p><p> The end result:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhTpDG6LCeRLa5IeVT81GRRR8GGUu1GaRwmyVx1JGTWCRcre-Mujkobz6kgh_1DB6bExj6x3YVJHr-sk5Ig_bVYVT39WqANOXc5yGPP5IPe5sPualt9QOgXFcre_CgC7bgeCKaRMEnjB-1wDysyIH6y16x6gV4bY_MHP7ryxjBfitMyDztNyA=s3264" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEhTpDG6LCeRLa5IeVT81GRRR8GGUu1GaRwmyVx1JGTWCRcre-Mujkobz6kgh_1DB6bExj6x3YVJHr-sk5Ig_bVYVT39WqANOXc5yGPP5IPe5sPualt9QOgXFcre_CgC7bgeCKaRMEnjB-1wDysyIH6y16x6gV4bY_MHP7ryxjBfitMyDztNyA=s320" width="180" /></a></div><br /> The diagram:<br /> <p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgd4V53uIyhjuC1KOK32inrvzi0HvdClyPCvKmh9qCJ9oZO2krc_LGMRy3v8wL6qas_qsqANQWfS0qEgDQdt8ebbvKowJLhIEAN_EsuVtcnEWd7skahF26nN1iTn1Sd-0jPQBG_6QQX2p7arlF8MayfUH8tTyOA7pD9IGt6vdDPcerx5-6KCg=s1884" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1884" data-original-width="1805" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgd4V53uIyhjuC1KOK32inrvzi0HvdClyPCvKmh9qCJ9oZO2krc_LGMRy3v8wL6qas_qsqANQWfS0qEgDQdt8ebbvKowJLhIEAN_EsuVtcnEWd7skahF26nN1iTn1Sd-0jPQBG_6QQX2p7arlF8MayfUH8tTyOA7pD9IGt6vdDPcerx5-6KCg=s320" width="307" /></a></div>might need a pull down resistor on pin D5 to ground since on open air even a finger touch will make it select the TX frequency. On "0" then default to enable the RX frequency. Added an LED to be on during TX frequency select and blinking 3 times during boot. The MUX out is not needed but could be implemented on the future to check if the lock is on.<br /><p></p><p>The code (will change the TX and RX frequency for my needs in the future): </p><p> Original at: https://github.com/F1CJN/ARDUINO-ADF4351-QO-100/blob/master/ADF4351_Dual_251119.ino<br /></p><p>Bellow with changes:<br />///// code adf4351_dual_v1.ino<br />/// look for " PFDRFout=25; // Frequence de reference" if using a 10Mhz reference /// on the board<br /></p><p><br />// ADF4351 with fixed frequency<br />// By Alain Fort F1CJN november 29,2019<br />// alain.fort.f1cjn@orange.fr<br />// <br />//<br />//<br />// ****************************************************** FRANCAIS *******************************************************<br />// Ce programme permet de programmer un ADF 4351 avec deux fréquences fixes et en utilisant une fréquence de reférence de 10 MHz.<br />// La premiére frequence frequence est utilisée avec un convertisseur émission (RX=0 et la seconde avec RX=1.Selection par PIN 5<br />// Les fréquence de sortie peuvent être modifiées aux lignes 79 et 80 en conservant le format.<br />// La frequence de reference peut être modidiée à la ligne ligne 70 (10MHz par défaut)<br />// ********************************************* HARDWARE IMPORTANT *******************************************************<br />// Avec un Arduino UN0 : utilise un pont de résistances pour réduire la tension, MOSI (pin 11) vers<br />// ADF DATA, SCK (pin13) vers CLK ADF, Select (PIN 3) vers LE<br />// Resistances de 560 Ohm avec 1000 Ohm à la masse sur les pins 11, 13 et 3 de l'Arduino UNO pour<br />// que les signaux envoyés DATA, CLK et LE vers l'ADF4351 ne depassent pas 3,3 Volt.<br />// Pin 2 de l'Arduino (pour la detection de lock) connectee directement à la sortie MUXOUT de la carte ADF4351<br />// La carte ADF est alimentée en 5V par la carte Arduino (les pins +5V et GND sont proches de la LED Arduino).<br />// ***********************************************************************************************************************<br />// <br />//<br />// *************************************************** ENGLISH ***********************************************************<br />// This software is used to programm an ADF4351 with Two fixed frequency, using a 10 MHz reference frequency.<br />// The frequency can be changed at lines 79 and 80, using the same format.Frequency selection is done with Arduino PIN 5.<br />// The reference frequency can be changed at line 70, using the same format (Default 10 MHz)<br />// ******************************************** HARDWARE IMPORTANT********************************************************<br />// With an Arduino UN0 : uses a resistive divider to reduce the voltage, MOSI (pin 11) to<br />// ADF DATA, SCK (pin13) to ADF CLK, Select (PIN 3) to ADF LE<br />// Resistive divider 560 Ohm with 1000 Ohm to ground on Arduino pins 11, 13 et 3 to adapt from 5V<br />// to 3.3V the digital signals DATA, CLK and LE send by the Arduino.<br />// Arduino pin 2 (for lock detection) directly connected to ADF4351 card MUXOUT.<br />// The ADF card is 5V powered by the ARDUINO (PINs +5V and GND are closed to the Arduino LED).<br /><br />#include <SPI.h><br />#define ADF4351_LE 3<br /><br />uint32_t registers[6] = {0x4580A8, 0x80080C9, 0x4E42, 0x4B3, 0xBC803C, 0x580005} ; // 437 MHz avec ref à 25 MHz<br />//uint32_t registers[6] = {0x3D88FA8, 0x8009F41, 0x14E42, 0x4B3, 0x91003C, 0x580005} ; // 1969,501 MHz avec ref à 10 MHz<br />//uint32_t registers[6] = {0, 0, 0, 0, 0xBC803C, 0x580005} ; // 437 MHz avec ref à 25 MHz<br />int address,modif=0;<br />unsigned int i = 0;<br />double FreqTX, FreqRX, RFout, REFin, INT, PFDRFout, OutputChannelSpacing, FRACF;<br />double RFoutMin = 35, RFoutMax = 4400, REFinMax = 250, PDFMax = 32;<br />unsigned int long RFint,RFintold,INTA,RFcalc,PDRFout, MOD, FRAC;<br />byte OutputDivider;byte lock=2; byte RX=1;<br />unsigned int long reg0, reg1;<br /><br />void WriteRegister32(const uint32_t value) //Programme un registre 32bits<br />{<br /> digitalWrite(ADF4351_LE, LOW);<br /> for (int i = 3; i >= 0; i--) // boucle sur 4 x 8bits<br /> SPI.transfer((value >> 8 * i) & 0xFF); // décalage, masquage de l'octet et envoi via SPI<br /> digitalWrite(ADF4351_LE, HIGH);<br /> digitalWrite(ADF4351_LE, LOW);<br />}<br /><br />void SetADF4351() // Programme tous les registres de l'ADF4351<br />{ for (int i = 5; i >= 0; i--) // programmation ADF4351 en commencant par R5<br /> WriteRegister32(registers[i]);<br />}<br /><br />//************************************ Setup ****************************************<br /> void setup() {<br /> Serial.begin (9600); // Serial to the PC via Arduino "Serial Monitor" at 9600<br /> <br /> pinMode(2, INPUT); // PIN 2 en entree pour lock<br /> pinMode(5, INPUT); // Pin 5 for TX/RX<br /> pinMode(ADF4351_LE, OUTPUT); // Setup pins<br /> digitalWrite(ADF4351_LE, HIGH);<br /> SPI.begin(); // Init SPI bus<br /> SPI.setDataMode(SPI_MODE0); // CPHA = 0 et Clock positive<br /> SPI.setBitOrder(MSBFIRST); // poids forts en tête<br /><br /> PFDRFout=25; // Frequence de reference<br /> RFintold=1234;//pour que RFintold soit different de RFout lors de l'init<br /> RFout = RFint/100 ; // fréquence de sortie<br /> OutputChannelSpacing = 0.005; // Pas de fréquence min<br /> //******************************************************<br /> FreqTX=1969.501; <br /> FreqRX=51.8462;<br /> //******************************************************<br /> RX=1; // <br /><br />// ct2gqv<br /> pinMode(6, OUTPUT); // PIN 6 for display if on tx and blink 3 times during boot.<br /> digitalWrite(6, HIGH); delay(500); digitalWrite(6, LOW); delay(500);<br /> digitalWrite(6, HIGH); delay(500); digitalWrite(6, LOW); delay(500);<br /> digitalWrite(6, HIGH); delay(500); digitalWrite(6, LOW);<br />} // Fin setup<br /><br />void loop()<br />{ <br /> //********************************************** <br /> RX = digitalRead(5); // reading RX/TX<br /> if (RX==0){RFout=FreqTX; digitalWrite(6, HIGH);} // output frequency selection // ct2gqv put out 6 high to display we are in tx<br /> if (RX==1){RFout=FreqRX; digitalWrite(6, LOW);} // output frequency selection // ct2gqv put out 6 high to low since we are in rx<br /> RFint=RFout;<br /> //********************************************<br /> if (RFint != RFintold) {<br /> if (RFout >= 2200) {<br /> OutputDivider = 1;<br /> bitWrite (registers[4], 22, 0);<br /> bitWrite (registers[4], 21, 0);<br /> bitWrite (registers[4], 20, 0);<br /> }<br /> if (RFout < 2200) {<br /> OutputDivider = 2;<br /> bitWrite (registers[4], 22, 0);<br /> bitWrite (registers[4], 21, 0);<br /> bitWrite (registers[4], 20, 1);<br /> }<br /> if (RFout < 1100) {<br /> OutputDivider = 4;<br /> bitWrite (registers[4], 22, 0);<br /> bitWrite (registers[4], 21, 1);<br /> bitWrite (registers[4], 20, 0);<br /> }<br /> if (RFout < 550) {<br /> OutputDivider = 8;<br /> bitWrite (registers[4], 22, 0);<br /> bitWrite (registers[4], 21, 1);<br /> bitWrite (registers[4], 20, 1);<br /> }<br /> if (RFout < 275) {<br /> OutputDivider = 16;<br /> bitWrite (registers[4], 22, 1);<br /> bitWrite (registers[4], 21, 0);<br /> bitWrite (registers[4], 20, 0);<br /> }<br /> if (RFout < 137.5) {<br /> OutputDivider = 32;<br /> bitWrite (registers[4], 22, 1);<br /> bitWrite (registers[4], 21, 0);<br /> bitWrite (registers[4], 20, 1);<br /> }<br /> if (RFout < 68.75) {<br /> OutputDivider = 64;<br /> bitWrite (registers[4], 22, 1);<br /> bitWrite (registers[4], 21, 1);<br /> bitWrite (registers[4], 20, 0);<br /> }<br /><br /> INTA = (RFout * OutputDivider) / PFDRFout; <br /> MOD = (PFDRFout / OutputChannelSpacing);<br /> FRACF = (((RFout * OutputDivider) / PFDRFout) - INTA) * MOD;<br /> FRAC = round(FRACF); // On arrondit le résultat<br /><br /> registers[0] = 0;<br /> registers[0] = INTA << 15; // OK<br /> FRAC = FRAC << 3;<br /> registers[0] = registers[0] + FRAC;<br /><br /> registers[1] = 0;<br /> registers[1] = MOD << 3;<br /> registers[1] = registers[1] + 1 ; // ajout de l'adresse "001"<br /> bitSet (registers[1], 27); // Prescaler sur 8/9<br /><br /> bitSet (registers[2], 28); // Digital lock == "110" sur b28 b27 b26<br /> bitSet (registers[2], 27); // digital lock <br /> bitClear (registers[2], 26); // digital lock<br /> <br /> SetADF4351(); // Programme tous les registres de l'ADF4351<br /> RFintold=RFint;//modif=0;<br /> <br /> }<br />} // fin loop<br /></p><p>//// end code<br /></p><p><br /></p><p>Have a nice day!<br /></p><p><br /></p><p> </p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-78465004021428794702021-12-18T13:08:00.001+00:002021-12-18T13:08:08.703+00:00HP 3312A small repair<p> No big troubleshooting here, the HP3312A function generator had been developing small fault over time, the last time I used it was not outputting signal or with the wrong shape, so decided to see what could be done.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiCv3dvn1uq_NNXP3axgSRoMODl5eSUPTkj8KQt9iHI1c1BaA3AYrE_Ghh8bhzFxZKeDT6DzGzDXwtjTyCOtuuKjBJzpzKCOR5jOgCiebfeqritnceCvx2atjj8ix0_j-ciNmJmNufYjK0B7xSdrQXA5Ahf90STG9ksdbXmYjSbmnqAihW7hQ=s3264" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1836" data-original-width="3264" height="180" src="https://blogger.googleusercontent.com/img/a/AVvXsEiCv3dvn1uq_NNXP3axgSRoMODl5eSUPTkj8KQt9iHI1c1BaA3AYrE_Ghh8bhzFxZKeDT6DzGzDXwtjTyCOtuuKjBJzpzKCOR5jOgCiebfeqritnceCvx2atjj8ix0_j-ciNmJmNufYjK0B7xSdrQXA5Ahf90STG9ksdbXmYjSbmnqAihW7hQ=s320" width="320" /></a></div><p></p><p></p><p>This was the "sinusoidal" output:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEggNmZI1hMsEiZTtO2klUI3zF-q9OTfYjwi_m4Ag-eIFsI6VHDLU0pGkr_HQxTMLKd5xI0mh9Xia9z0pW-yGoTw2_IssVC5LhiTZFyZghm3klrwjKmMDG-RSy1TI43v_fT71ApBdvW300L3qRZnZ3fC1VkaHJzyNGi31UQ1wN4HDmUwsnn18A=s3264" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEggNmZI1hMsEiZTtO2klUI3zF-q9OTfYjwi_m4Ag-eIFsI6VHDLU0pGkr_HQxTMLKd5xI0mh9Xia9z0pW-yGoTw2_IssVC5LhiTZFyZghm3klrwjKmMDG-RSy1TI43v_fT71ApBdvW300L3qRZnZ3fC1VkaHJzyNGi31UQ1wN4HDmUwsnn18A=s320" width="180" /></a></div><br /><p></p><p>Not good! Also the frequency was not in line with the bezel markings.<br /></p><p></p><p>Here's the offending component on top board near the front panel.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjTvzl1L0sra9qBFsNtJmKj6i1144SApJqkJetpbng8YUmdCkYmZGfIuv3lAcuT7AXRa4Tu77LLdkHwYQx6N993gUKpF0F8LQWLRKseq90Ir9nrhZapbncYVDt58Vc-N9Ni79E-1EpZlLItXWPIyUgxsD8RuhokqPVkLZoV007sSr_QoDXHvw=s1600" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEjTvzl1L0sra9qBFsNtJmKj6i1144SApJqkJetpbng8YUmdCkYmZGfIuv3lAcuT7AXRa4Tu77LLdkHwYQx6N993gUKpF0F8LQWLRKseq90Ir9nrhZapbncYVDt58Vc-N9Ni79E-1EpZlLItXWPIyUgxsD8RuhokqPVkLZoV007sSr_QoDXHvw=s320" width="240" /></a></div>I just guessed it was the one causing the issue, the crack was easy to spot.<br /><p></p><p>The reference marked in the capacitor, if needed:</p><p>TRW 8508<br />HEW-331<br />.5MF +/- 10%<br />50 VDC<br /><br /></p><p>Better now after replacement, I didn't had 0.5MF as originally so by mistake placed a 2.2uF, got better but still some distortion seen:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiUx8rhw-w1Ntcp8qxY8w3jPQYkloyCYPc30SJ1MW0i6YW-W-N3RWltXAn5RBWZSsA5KnpFpyq0I-gyOEbqgyHD95PFylSRti_8YYdKCeto6K3210POt9biNWJyw_O4z-hpWX-ML_6VgYv24seJsalvvST3JQHxLOvuz_dkEwyeDFmxJgqfZQ=s1600" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEiUx8rhw-w1Ntcp8qxY8w3jPQYkloyCYPc30SJ1MW0i6YW-W-N3RWltXAn5RBWZSsA5KnpFpyq0I-gyOEbqgyHD95PFylSRti_8YYdKCeto6K3210POt9biNWJyw_O4z-hpWX-ML_6VgYv24seJsalvvST3JQHxLOvuz_dkEwyeDFmxJgqfZQ=s320" width="240" /></a></div><br /><p></p><p> I then replaced by a 1uF one and now it's perfect, in the future I will probably try to find the right value (0.5uF) and replace.</p><p><br /></p><p>Have a nice day!<br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-64704224060086195912021-12-15T19:22:00.001+00:002021-12-15T19:22:09.685+00:00PGA103+ Ultra Linear Low Noise Monolithic Amplifier<p>Had this little device for some time, an offer from a fellow ham some time ago (thank you Allan).</p><p>Schematic used is similar to the datasheet at: https://www.minicircuits.com/pdfs/PGA-103+.pdf</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjgBV-k8pYCX1_lEeoeCGyeFU8IqHPR3eSvnMOgKihWlPKRRHZo51_Y8NlO8gg5uNIWi3d_IqVNMbnXcoWQqnTIyOme6_kBiP-oemut-LxGfN0CCbE-oSZ0umE1NVKYMQJkwr7JUc7AsNfUTafs7ZP0IZCe_ena78s55H6FOjogfrY_PfjPxw=s1212" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="705" data-original-width="1212" height="186" src="https://blogger.googleusercontent.com/img/a/AVvXsEjgBV-k8pYCX1_lEeoeCGyeFU8IqHPR3eSvnMOgKihWlPKRRHZo51_Y8NlO8gg5uNIWi3d_IqVNMbnXcoWQqnTIyOme6_kBiP-oemut-LxGfN0CCbE-oSZ0umE1NVKYMQJkwr7JUc7AsNfUTafs7ZP0IZCe_ena78s55H6FOjogfrY_PfjPxw=s320" width="320" /></a></div><br />with small changes (similar to https://vu2bfo.in/pga-103-lna/), in the implementation I didn't included the front end diodes:<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiH3UbcIWwvSAVskK-k7VxpXpk-wXldD1xxGYsJZtLcnZ9stFZqmQRIjSryo0I2xHIcWzsGqebMHwRuymp57pWgH_xXOCCKtzp7Hf1wmSvam-6bSPsaoycpQ_1HNB80D3qYRNDplwGEF2dFu8b5pis7rWmT8zKQr0_UB803wbe2IxZOTWHb7g=s1600" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEiH3UbcIWwvSAVskK-k7VxpXpk-wXldD1xxGYsJZtLcnZ9stFZqmQRIjSryo0I2xHIcWzsGqebMHwRuymp57pWgH_xXOCCKtzp7Hf1wmSvam-6bSPsaoycpQ_1HNB80D3qYRNDplwGEF2dFu8b5pis7rWmT8zKQr0_UB803wbe2IxZOTWHb7g=s320" width="240" /></a></div><br /> The PCB was done with very few resources so it had to be tinned.<p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhDHfok9KmgQgCa9GilCiWDOlHZ0o0aWlCcbk4BuzFLJrfAkG6uoakab45qqjb6ZD9D_oTB9v4AD7tl6et0QDg7_mAzHW1tRUuT34jbjknlElbNPphufEVOuW3hoviWcikyLnnNAaMDbWnost2DyFBRRMRnwNs3a16_HJ_W1J0hlKxyjsfLUA=s3264" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="3264" data-original-width="1836" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEhDHfok9KmgQgCa9GilCiWDOlHZ0o0aWlCcbk4BuzFLJrfAkG6uoakab45qqjb6ZD9D_oTB9v4AD7tl6et0QDg7_mAzHW1tRUuT34jbjknlElbNPphufEVOuW3hoviWcikyLnnNAaMDbWnost2DyFBRRMRnwNs3a16_HJ_W1J0hlKxyjsfLUA=s320" width="180" /></a></div>Basically made with a mix of vinegar and oxygenated water<br /> <p></p><p>On the sweep on the spectrum analyzer this is what you get.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhOFiQP1H27cFe7WiBOaFw_ago4ZxvwHUL2At_NCPkiaNLS5IdeLt-Umx00UD7lvQen3Y60FEFSoop91Mqrwvx-t8MpEjG2f3sAtWNdCskYE3Pm2wN7MkU_r0s2v-nUcf4_Takc383O9HlN9HY17vUG-tseWyHwUynFXQo6HFuQ8OH_sSDxcw=s800" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/a/AVvXsEhOFiQP1H27cFe7WiBOaFw_ago4ZxvwHUL2At_NCPkiaNLS5IdeLt-Umx00UD7lvQen3Y60FEFSoop91Mqrwvx-t8MpEjG2f3sAtWNdCskYE3Pm2wN7MkU_r0s2v-nUcf4_Takc383O9HlN9HY17vUG-tseWyHwUynFXQo6HFuQ8OH_sSDxcw=s320" width="320" /></a></div><br /> Will try this further on as fronted for a VHF/UHF radio.<br /><p></p><p> Other sources of information with more comprehensive details here:</p><p>http://www.g4ddk.com/PGA103amp.pdf </p><p>(includes an HPF design for 130Mhz)<br /></p><p>https://vu2bfo.in/pga-103-lna/ <br /></p><p>https://www.w6pql.com/LNAs%20(preamps)%20and%20MMICs.htm <br /></p><p><br /></p><p>Have a great day!<br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-1539570253469359722021-12-05T13:07:00.006+00:002021-12-05T13:07:42.569+00:0010Ghz downconverter for 1.5Ghz spectrum Analyser<p>Had this build for some time, now it's time to show. </p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhv0SgL7euy8PUbitLTdGwekXRTkt3tiWLTUJx4f9tfCykbGR39SzJA9xbl7RxrV5Rc4oDH2yUvzkbRQ-TwL59PReNx13ppJnUtYCmH2Ad3lniob1YYxHlo6BhyHHG9aEzeAJ0uggPETs2jtg3Vnad0icmo6Zp9w23h12wmZbGgqL3lOa0nAw=s2448" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1166" data-original-width="2448" height="152" src="https://blogger.googleusercontent.com/img/a/AVvXsEhv0SgL7euy8PUbitLTdGwekXRTkt3tiWLTUJx4f9tfCykbGR39SzJA9xbl7RxrV5Rc4oDH2yUvzkbRQ-TwL59PReNx13ppJnUtYCmH2Ad3lniob1YYxHlo6BhyHHG9aEzeAJ0uggPETs2jtg3Vnad0icmo6Zp9w23h12wmZbGgqL3lOa0nAw=s320" width="320" /></a></div><br /><p></p><p> I was doing some experiments on the 10Ghz band and wanted a way of looking at the signals. Because the spectrum analyser I have only good to 1.5Ghz had to find a cheap way of doing it to get this:<br /></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgjuYhi8VY3WXtHvET7w-YwTzEhoWRc9xxuKCVp5Qr7fafQxajgJJeVrfvNe3-RIHHJOGlvu1BLv7bSoYsQpq12wSa4yYxrBFiIccwUNzU_QtJalzlGMDd5nT909EzTxi-TIbVj0fN04YCE1hP7omKvP6Hf54qv-nNLrkjwil8C7ebdkWghsg=s800" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/a/AVvXsEgjuYhi8VY3WXtHvET7w-YwTzEhoWRc9xxuKCVp5Qr7fafQxajgJJeVrfvNe3-RIHHJOGlvu1BLv7bSoYsQpq12wSa4yYxrBFiIccwUNzU_QtJalzlGMDd5nT909EzTxi-TIbVj0fN04YCE1hP7omKvP6Hf54qv-nNLrkjwil8C7ebdkWghsg=s320" width="320" /></a></div>Here looking at the third harmonic from an ADF4351 on 3.3Ghz after a pipe cap 10Ghz filter experiment.<br /> <p></p><p>The diagram explanation: a dbm mixer (Watkins-Johnson M80LCA) with a local oscillator based on a FVC99 10Ghz oscillator module (cheapest VCO I could find for 10Ghz). Some preamps on the input and output using 2Ghz preamp modules and replacing the MMIC amplifiers for the ones like Corvo NLB300 or ERA-1 that are good to 10Ghz.</p><p></p><p><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjFDpNWl_OAxitDYUEi_Rsk6y0Yqk5HGBw9ZlWTcdwcoJQ8LW1AktyffpRHnosQaraK3fz3Hj7pPvM9U2RzHpVM0W216Ds9fRoYC_krYDobc3T65SwnYDQCOAvaG79VFZyDEvErLSafEk72bjhF_1xkwso4UVlhNmz6PQx7kBd6bVrdn0KVuA=s2048" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1296" data-original-width="2048" height="203" src="https://blogger.googleusercontent.com/img/a/AVvXsEjFDpNWl_OAxitDYUEi_Rsk6y0Yqk5HGBw9ZlWTcdwcoJQ8LW1AktyffpRHnosQaraK3fz3Hj7pPvM9U2RzHpVM0W216Ds9fRoYC_krYDobc3T65SwnYDQCOAvaG79VFZyDEvErLSafEk72bjhF_1xkwso4UVlhNmz6PQx7kBd6bVrdn0KVuA=s320" width="320" /><br /><br /></a> The basic design:<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgXQJh6PfhkKYGTbX-vNv30s03hPZ0HiFxcGDG64OZjoHSMZ8QUNkbBLTpwG3R6CHzCtSwvsbW8wMlkB_iXWDfRb0ALlkbWllL16sLpMboey2CI94_J8EVNK8xx5mcIUjJKbT3y1ECiWtjaZMD2_0bRrvm9u286bZNZhGvoJbOHRf9JJDbAeA=s2048" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1303" data-original-width="2048" height="204" src="https://blogger.googleusercontent.com/img/a/AVvXsEgXQJh6PfhkKYGTbX-vNv30s03hPZ0HiFxcGDG64OZjoHSMZ8QUNkbBLTpwG3R6CHzCtSwvsbW8wMlkB_iXWDfRb0ALlkbWllL16sLpMboey2CI94_J8EVNK8xx5mcIUjJKbT3y1ECiWtjaZMD2_0bRrvm9u286bZNZhGvoJbOHRf9JJDbAeA=s320" width="320" /></a></div><br /> To this diagram I added a 6db directional coupler inline with the FVC99 VCO (used a Omni Spectra PN2023, good from 8 12.4Ghz) so I could measure the LO frequency and PLL it. <p></p><p>There is no stability control on the FVC99 oscillator, still working on a PLL system (maybe one of these days) but in my case I have two select positions, one: VCO is controlled by a single pot (like on the diagram) and the other position controlled by an EIP371 frequency counter (from the Lo Out via directional coupler) that makes the PLL loop. With EIP371 and since the output voltage of the loop is very small the control range seats near 9.5Ghz, there is an option of extending the range like on the EIP manual:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhxQxEuPMIyXAtduFb9XEtQbpLAZIB8czpCvilGDUlod7TnxbNIhqKqyfrnmTt-_Cje38rKn7qUqqEncWLTugx7eMG9lCasxdnQdVtAiFgKwYcuVqDB5aSS30crybyFWdwlgFLQpo6h7jwwmsoGQc8i7O-AyfRA4ZFbBov-9MK0_lG0KfqNsg=s928" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="735" data-original-width="928" height="253" src="https://blogger.googleusercontent.com/img/a/AVvXsEhxQxEuPMIyXAtduFb9XEtQbpLAZIB8czpCvilGDUlod7TnxbNIhqKqyfrnmTt-_Cje38rKn7qUqqEncWLTugx7eMG9lCasxdnQdVtAiFgKwYcuVqDB5aSS30crybyFWdwlgFLQpo6h7jwwmsoGQc8i7O-AyfRA4ZFbBov-9MK0_lG0KfqNsg=s320" width="320" /></a></div><p>Or with a similar diagram, a multiply by 10 of the PLL voltage out of the EIP371, that would be enough to use the full range of the FVC99.</p><p>For now I use 9.5 Ghz if using the EIP371 for more stability and around 10Ghz set by the pot ("Flo" on the panel) if it's just a quick test. <br /></p><p></p><p>Here the EIP working as external PLL controling the FVC99 so the LO gets more stable.<br /></p><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiB_iEgPSBRcZmRf0mwEgbeN8r1kqZTlvVX36gUBhahOnuAafl-Mv7bU20_N3KhCho_itm6-z-hh2vRp3FhyKGcAFQW0Zeznz0fm1tbTUB0R-bTcegB9oN1JQN7BFRp87zJyJ1OVWXy6fiWlSv35rmgz0PJci_jeVa7YLSFHxzu3e6Pss54Kw=s2448" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="660" data-original-width="2448" height="86" src="https://blogger.googleusercontent.com/img/a/AVvXsEiB_iEgPSBRcZmRf0mwEgbeN8r1kqZTlvVX36gUBhahOnuAafl-Mv7bU20_N3KhCho_itm6-z-hh2vRp3FhyKGcAFQW0Zeznz0fm1tbTUB0R-bTcegB9oN1JQN7BFRp87zJyJ1OVWXy6fiWlSv35rmgz0PJci_jeVa7YLSFHxzu3e6Pss54Kw=s320" width="320" /></a></div><br /><p></p><p>On the Rigol DSA815 spectrum analyser you can set the input offset to get the display right on the band of interest<br /></p><p>Displaying here a 10Ghz signal using the 9.5Ghz Lo frequency <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEhc1uY1yenUqMUomKg1AI_Y3Jo5Or-90MvK9qPnPWBaJKKDvOxA_Ii21c0JJrZ6UpbaJvbWAI3DagWuL3Ynd3Z9QL8spjo9pFn84Xo0J_2uqB4II7im2rm-yjbBERG5e-upVOeIjRN-sEAaLW12OJ7nmp3qIYxfzbtEwr5xK63iMfpS7sAgyg=s800" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" height="192" src="https://blogger.googleusercontent.com/img/a/AVvXsEhc1uY1yenUqMUomKg1AI_Y3Jo5Or-90MvK9qPnPWBaJKKDvOxA_Ii21c0JJrZ6UpbaJvbWAI3DagWuL3Ynd3Z9QL8spjo9pFn84Xo0J_2uqB4II7im2rm-yjbBERG5e-upVOeIjRN-sEAaLW12OJ7nmp3qIYxfzbtEwr5xK63iMfpS7sAgyg=s320" width="320" /></a></div>If you want to just check if the signal is around there, no need to use external PLL control to the FVC99, the "stability" with a simple potentiomenter is enough. <br /><p></p><p>Inside view:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgQrrICNrdFXCkPgEbIAS6bI5eN6YLKi7GYkwOIIJgcuAg3t-GpjzBXrlkzHvv9RoY2LBcgFWOnbhXuXGZez195zmEjKY3rjynrTiRVKy8BTYbnfdxtjsPZMBsiZ_3q1-P9E5gKgbH6DfVg9pUvdNBc-MBe7mBJckri5HEglofhAHLPHhA-4Q=s2048" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgQrrICNrdFXCkPgEbIAS6bI5eN6YLKi7GYkwOIIJgcuAg3t-GpjzBXrlkzHvv9RoY2LBcgFWOnbhXuXGZez195zmEjKY3rjynrTiRVKy8BTYbnfdxtjsPZMBsiZ_3q1-P9E5gKgbH6DfVg9pUvdNBc-MBe7mBJckri5HEglofhAHLPHhA-4Q=s320" width="240" /></a></div>The VCO adjust pot (top right in blue) is glued directly to the front panel<br /><p>Some other images during prototype development:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiWG6crplIlE05gojkVecItvg4nxNrKtsUQQUSw6ZL3A3rRhYP424rb-Bh7EYfRAXG5z-5Wq00iWUKeVwlzIOcIhDkJqp-yVOSeLPrtsSuMi1axfxQdfrSQSYCp6oVpDFavDRdJxIOZSeg20MixxaSQwLeqaf4k7R9sBam-KBKWmoRRQeIA4g=s2048" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEiWG6crplIlE05gojkVecItvg4nxNrKtsUQQUSw6ZL3A3rRhYP424rb-Bh7EYfRAXG5z-5Wq00iWUKeVwlzIOcIhDkJqp-yVOSeLPrtsSuMi1axfxQdfrSQSYCp6oVpDFavDRdJxIOZSeg20MixxaSQwLeqaf4k7R9sBam-KBKWmoRRQeIA4g=s320" width="240" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg8R5S-TGyKNQrIzEftVYJgS_uVO5NF5tBuyxiIhyql4TwvU8Pz7R-JWpknFe_F2tONtl5BX3g5xluEjwK9L0TIXN5DQpWrNt2M7xt6WLMaSjOAYR91EB2fWPwhC2_J9dnaU7OuD1ui76sgQH00PQPA6QmCZ0jmEj4D1I9bFispU0pLnQ8VBA=s2048" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1031" data-original-width="2048" height="161" src="https://blogger.googleusercontent.com/img/a/AVvXsEg8R5S-TGyKNQrIzEftVYJgS_uVO5NF5tBuyxiIhyql4TwvU8Pz7R-JWpknFe_F2tONtl5BX3g5xluEjwK9L0TIXN5DQpWrNt2M7xt6WLMaSjOAYR91EB2fWPwhC2_J9dnaU7OuD1ui76sgQH00PQPA6QmCZ0jmEj4D1I9bFispU0pLnQ8VBA=s320" width="320" /></a></div><br />Here one of the firsts tests, just an input amplifier, the mixer, the VCO and VCO amplifier and the mixer IF output directly to the spectrum analyser.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgCLL7KSgckBrMFJnzTquOFPBiSbEH481wQaJsigWkj5XW6EK5Y7sMgYZ0FE-JUeVu4OVA2rCnidz1I8FSMMO02UB9PP7jyQOyNgXzLtXA0DF2U90dyU14MjQO4_0fQw0X-ywnqnWCTrVkd7iTV8ie4sJfH9XjySBWUEOiImoDxcslHguoECw=s2048" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1206" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEgCLL7KSgckBrMFJnzTquOFPBiSbEH481wQaJsigWkj5XW6EK5Y7sMgYZ0FE-JUeVu4OVA2rCnidz1I8FSMMO02UB9PP7jyQOyNgXzLtXA0DF2U90dyU14MjQO4_0fQw0X-ywnqnWCTrVkd7iTV8ie4sJfH9XjySBWUEOiImoDxcslHguoECw=s320" width="188" /></a></div><p></p><p>Testing during early days of the prototype with a 10Ghz homemade flange to SMA adapter and a pipe cap filter:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEjc0ECOuvUvu62UwwWsCAXuWjOz9D4LZAri2nje-OVqrzQXoYxPYQD1v0wBClZhvlH70Ey44_jl2jxKSJp_KS18JP3kXYOebCq55NuJniI5TNo9ZwmOQyzt-9Q3ueDuUMWiNtkb-B6ra4kdrnXTsImSc-nhtRexxDoIgsJ7LFFZTmrSxpjizw=s2048" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEjc0ECOuvUvu62UwwWsCAXuWjOz9D4LZAri2nje-OVqrzQXoYxPYQD1v0wBClZhvlH70Ey44_jl2jxKSJp_KS18JP3kXYOebCq55NuJniI5TNo9ZwmOQyzt-9Q3ueDuUMWiNtkb-B6ra4kdrnXTsImSc-nhtRexxDoIgsJ7LFFZTmrSxpjizw=s320" width="240" /></a></div><br /><br /><p></p><p> </p><p>Anyhow, not a measuring device but it serves the purpose of checking if you have any signal around the 10Ghz band and for experiments, still very happy with the outcome and sensitivity.<br /></p><p><br /></p><p></p><p>Have a nice day!<br /></p><p><br /></p><p><br /></p><br />Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-71742063020770932232021-11-14T13:18:00.001+00:002021-11-14T13:18:06.874+00:00Linux PIC16F628 programing on the cheap<p>Had to program a 16F628 PIC for a frequency counter kit that let the magic smoke out.</p><p>First I tested with the PIC included on a different kit to see if would work, in fact looks like all these kits use the same code from <a href="https://www.qsl.net/dl4yhf/freq_counter/freq_counter.html">DL4YHF</a>. </p><p>The programmer diagram was a re-use of one that I used in the <a href="https://speakyssb.blogspot.com/2010/11/pic16f88-programing-under-linux.html">past</a>, see schematic:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBAouJ17P7nJVQHo5KdnOYSVpbjVXwYCj60FTdMs7s-frP179PC1Oxl1PI6pl9SLW-VqK6Oy5qT6KU9IXh02VGQxbNC4vx5POJjPS1fD_8biB0D6GCTskEEnwYGfyvkDcIklkD/s478/diagram.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="285" data-original-width="478" height="191" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBAouJ17P7nJVQHo5KdnOYSVpbjVXwYCj60FTdMs7s-frP179PC1Oxl1PI6pl9SLW-VqK6Oy5qT6KU9IXh02VGQxbNC4vx5POJjPS1fD_8biB0D6GCTskEEnwYGfyvkDcIklkD/s320/diagram.png" width="320" /></a></div><br /><p></p><p> From <a href="https://fruttenboel.verhoeven272.nl/pic/picJDM.html">here</a> and other ideas <a href="https://hyvatti.fi/~jaakko/pic/picprog.html">here</a>.</p><p> I had some problems making it to run on the laptop but using the serial port from the desktop it worked.</p><p>Commands to use were this ones:</p><p># picprog --device=pic16f628 --pic /dev/ttyS0 --erase<br /># picprog --input-hexfile=counter2.hex --device=pic16f628 --pic /dev/ttyS0 --burn<br />(Picprog version 1.9.1)<br /></p><p>I did not had a serial port plug so resorted to use some terminals, for a one of, it's ok</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje_Yly13HHjEz1X020cI-RuYOKt8yDmZ123CrHSoFcDEgUoHlWNbguYr8IAcuimNRXd4VSWeF8FuKaSXz2Pu3nN8aBWs916-P2ILGW2o0-bZK0RvOyZhLtLj8vJV3hnHibh7YK/s2048/20210522_105139-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1129" data-original-width="2048" height="176" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEje_Yly13HHjEz1X020cI-RuYOKt8yDmZ123CrHSoFcDEgUoHlWNbguYr8IAcuimNRXd4VSWeF8FuKaSXz2Pu3nN8aBWs916-P2ILGW2o0-bZK0RvOyZhLtLj8vJV3hnHibh7YK/s320/20210522_105139-1.jpg" width="320" /></a></div><br /><p>The assembly re-using the board from another test project:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVbBlMvk6G7tD5oLgeemZiZya06GwtrthRzpC6Xn0rViOr8pUEkp6U-nphQ5vM0fRE3lZFx1pvObQmuLMHau5uWmg-nFTWT_hHf5WbmI6CwAW8UpuQYjAtEOt-IJLryZSxyb8G/s2048/20210522_154236.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVbBlMvk6G7tD5oLgeemZiZya06GwtrthRzpC6Xn0rViOr8pUEkp6U-nphQ5vM0fRE3lZFx1pvObQmuLMHau5uWmg-nFTWT_hHf5WbmI6CwAW8UpuQYjAtEOt-IJLryZSxyb8G/s320/20210522_154236.jpg" width="240" /></a></div><br /><p>The programmer that had the PIC issue, now running:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-QZZYZGpTeA-jFGj0TD9pC56NDE_kCV4v2r7xujrAQ6KDw9IvP97u32JetFegjz8c0vxzKdX7BNMfE3q14MOQLhf9b5G8rObNrZeoF6EpjMWwxJSDNjTyBNI8avPg3TukwLiw/s2087/20210514_221514-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="854" data-original-width="2087" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-QZZYZGpTeA-jFGj0TD9pC56NDE_kCV4v2r7xujrAQ6KDw9IvP97u32JetFegjz8c0vxzKdX7BNMfE3q14MOQLhf9b5G8rObNrZeoF6EpjMWwxJSDNjTyBNI8avPg3TukwLiw/s320/20210514_221514-1.jpg" width="320" /></a></div> and the clone kit used for testing the PIC:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibCpTKB2_tHL8lFM8kCmU69yQl0AXO9e2L_ln9an81KVfLUWop2zbGCNhZBYOLvANuKXGF8zQIh_7Lx-Fome2LVlHFAQdwmxbwiJenm_CgjfEF7qAj6lDaUIl75sUiilbG1oma/s2048/20210510_212942-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1446" data-original-width="2048" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibCpTKB2_tHL8lFM8kCmU69yQl0AXO9e2L_ln9an81KVfLUWop2zbGCNhZBYOLvANuKXGF8zQIh_7Lx-Fome2LVlHFAQdwmxbwiJenm_CgjfEF7qAj6lDaUIl75sUiilbG1oma/s320/20210510_212942-1.jpg" width="320" /></a></div><p> </p><p>...eventually one day ill get a "proper" programmer but for one PIC every so often it's perfectly fine this way.<br /></p><p></p><p>That's it, have a nice day! <br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-57298825439970239192021-10-31T19:04:00.000+00:002021-10-31T19:04:52.591+00:00Arduino Antenna Rotator for rotctld/gpredict on Linux<p> I have an unused TV aerial rotator and would be good to put it, along with an motorized elevation control, for some satellite work. </p><p>Googling around for some Arduino controller code I found from fellow ham YO3RAK at: <a href="https://racov.ro/index.php/2020/12/09/arduino-based-antenna-rotator-part3-software-tracking-update/">https://racov.ro/index.php/2020/12/09/arduino-based-antenna-rotator-part3-software-tracking-update/</a> <br />and:<br /> <a href="https://create.arduino.cc/projecthub/viorelracoviteanu/antenna-rotator-controller-compatible-with-tracking-software-48f9cd#code ">https://create.arduino.cc/projecthub/viorelracoviteanu/antenna-rotator-controller-compatible-with-tracking-software-48f9cd#code </a><br />a nice bit of a project.</p><p>Compiled it along with some LCD library changes and noted that was not fully working with rotctld (Hamlib 1.2.15.3) and gredict (1.3) on Linux. Long story short I ended up starting my own code, half way trough discovered what looks like a different implementation or EasyComm II protocol on hamlib in Linux depending on version.</p><p>At some point trough my code I reverted to do changes on YO3RAK code to accommodate my setup, a mix of hamlib 1.2.15.3 and 3.1 along with gpredict 1.3 and 2.0-4. Now works fine on both implementations in Linux.</p><p>Since I've seen some posts with similar issues here's what I got while testing regarding behaviour:</p><p>hamlib <b>1.2.15</b>:</p><p><b>Query position</b>: "!"<br /><b>Return</b>: "TM0 AZ<AZIM>0.0 EL<ELEVATION>0.0"<br />See "0.0" appended, that sends 10x more angle, else gpredict will receive angle/10<br /><br /></p><p>hamlib <b>3.1</b>:</p><p><b>Query position</b>: "AZ EL ."<br /><b>Return</b>: "AZ<AZIM>.0 EL<ELEVATION>.0"<br />Here only appending the decimal point and works correctly on gpredict 2.0-4.<br /></p><p>To start the process, besides having the the Arduino rotator controller you need to start rotctld similar to:<br /><b>rotctld -m 202 -r /dev/ttyUSB0 -s 9600 -T 192.168.0.14 -t 4533</b><br /></p><p>where 192.168.0.14 will be your computer IP address, rotctld will listen on port 4533 for rotator commands from gpredict. /dev/ttyUSB0 will be the virtual USB port of the Arduino/rotator controller device. So, in simple terms, rotctld connects to the Arduino and listens on IP commands that gpredict sends to control the rotator.<br /></p><p>Some images of gpredict and rotctld in action along wiht the Arduino code:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD8cTTXAiBTlXzH9valAGZRAkX6NnUr0DLnEnaKusmS4A9GIGU2HFbKdM332otopfxYRH5F1cdVEwHE9I9O72_HsMKvlm0Yj535WaZFe7nCcM2weDq_6kldgJjYs-mAcdGlJDr/s899/Screenshot+at+2021-10-31+16-38-00.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="469" data-original-width="899" height="167" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhD8cTTXAiBTlXzH9valAGZRAkX6NnUr0DLnEnaKusmS4A9GIGU2HFbKdM332otopfxYRH5F1cdVEwHE9I9O72_HsMKvlm0Yj535WaZFe7nCcM2weDq_6kldgJjYs-mAcdGlJDr/s320/Screenshot+at+2021-10-31+16-38-00.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIrmkIEhwW9hTrg8WxD6VRkNIOi0MfjETW4cFzlj_MjkUngEC2-5aoy4fQE6AQdjUCkkZE-nDIzVvWdZ6_jA0_35QjyDXXinRW3tJq5tYBkPRJ1ZGEaEc0dMn-YpmhuSlX-qE2/s1111/Screenshot+at+2021-10-31+16-32-52.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="483" data-original-width="1111" height="139" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIrmkIEhwW9hTrg8WxD6VRkNIOi0MfjETW4cFzlj_MjkUngEC2-5aoy4fQE6AQdjUCkkZE-nDIzVvWdZ6_jA0_35QjyDXXinRW3tJq5tYBkPRJ1ZGEaEc0dMn-YpmhuSlX-qE2/s320/Screenshot+at+2021-10-31+16-32-52.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9gF2jczfxbIQ52T1LHeJXwxunD3_V3vRVwF8CNmQSYzzP26tWE_5wn0wHRX51njxonKddmtA3hUFQNjTPBjDC65F20SiVEwWbiiQ_IS38lc1jJpiFch_YFZCfTABcwl0YvXF6/s1116/Screenshot+at+2021-10-31+16-32-28.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="418" data-original-width="1116" height="120" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9gF2jczfxbIQ52T1LHeJXwxunD3_V3vRVwF8CNmQSYzzP26tWE_5wn0wHRX51njxonKddmtA3hUFQNjTPBjDC65F20SiVEwWbiiQ_IS38lc1jJpiFch_YFZCfTABcwl0YvXF6/s320/Screenshot+at+2021-10-31+16-32-28.png" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMXBoG-SJt6jbxZfod95oNbRri6GYZZ1HAJSkEydgp03Id2pPfoinY0i1b2yCSCa-uOH8jQ32RG1mhkAWLM_kRWqmpgsRU4RTU3hOo1Gu_-q7b6_z4E4O8FV1eA6bUimHCfAWr/s1117/Screenshot+at+2021-10-31+16-31-50.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="392" data-original-width="1117" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMXBoG-SJt6jbxZfod95oNbRri6GYZZ1HAJSkEydgp03Id2pPfoinY0i1b2yCSCa-uOH8jQ32RG1mhkAWLM_kRWqmpgsRU4RTU3hOo1Gu_-q7b6_z4E4O8FV1eA6bUimHCfAWr/s320/Screenshot+at+2021-10-31+16-31-50.png" width="320" /></a></div><br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJhtHPCsGqLyoWIeX45XtwqZm37_M3tWeYxP6940L3uFrzjIEj8Vfxu62-5p8nij1tDG5-bPzfO_sanwewFVVxXGPaeRSqTaDYvnJ_BjRumx5cKrJoNBNdvX_bUoO2ezPMAur6/s1632/20211031_163655-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="757" data-original-width="1632" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJhtHPCsGqLyoWIeX45XtwqZm37_M3tWeYxP6940L3uFrzjIEj8Vfxu62-5p8nij1tDG5-bPzfO_sanwewFVVxXGPaeRSqTaDYvnJ_BjRumx5cKrJoNBNdvX_bUoO2ezPMAur6/s320/20211031_163655-1.jpg" width="320" /></a></div><br /><p></p><p> To configure gpredict will be similar to this:<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKLHf62R-oPU-af_Nn0YBnBxW15dGk6pEU4J6mBDyLPZ6-p0H3dfjp-SOTAR1DaqZSgwedHG2SucEhYPQ18kWdcCbYpPiQC-sUT28SO0hAYwUbmf8ssjtw1ENNe4bqr0cfrVzK/s771/Screenshot+at+2021-10-31+17-36-14.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="652" data-original-width="771" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKLHf62R-oPU-af_Nn0YBnBxW15dGk6pEU4J6mBDyLPZ6-p0H3dfjp-SOTAR1DaqZSgwedHG2SucEhYPQ18kWdcCbYpPiQC-sUT28SO0hAYwUbmf8ssjtw1ENNe4bqr0cfrVzK/s320/Screenshot+at+2021-10-31+17-36-14.png" width="320" /></a></div><br /><p></p><p><br />To connect to the rotator, this way:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZAVS5VQjzFeDp2v5xp6AklcbIGxXa_QYf_wKOeryeyYen_k3Uz-S6787RO1p7PqvXQ62dAaMU8pEYvemxWr_vjg46QjtIyfBOOlNGNTr0E5R-zXi892om-c-rqMJ9aWGWpQw-/s841/Screenshot+at+2021-10-31+18-56-13.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="435" data-original-width="841" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZAVS5VQjzFeDp2v5xp6AklcbIGxXa_QYf_wKOeryeyYen_k3Uz-S6787RO1p7PqvXQ62dAaMU8pEYvemxWr_vjg46QjtIyfBOOlNGNTr0E5R-zXi892om-c-rqMJ9aWGWpQw-/w445-h231/Screenshot+at+2021-10-31+18-56-13.png" width="445" /></a></div><p><br /></p><p>I still don't have the hardware, will update when done.</p><p>The code bellow, since blogspot breaks a bit on the formating send me and email if you need a file with the code, file is: original_ant_rotator_easycom2_aug2021_mod_ct2gqv_v3.ino</p><p>/// code start</p><p>/* AZ/EL Antenna Rotator controller for Arduino - DC motors<br /> * ========================================================<br /> * Uses EasyComm protocol for computer - Tracking Software<br /> * Manual command by means of two rotary encoders AZ - EL<br /> * <br /> * Viorel Racoviteannu<br /> * https://www.youtube.com/channel/UCiRLZX0bV9rS04BGAyUf-fA<br /> * https://racov.ro<br /> * YO3RAK@gmail.com<br /> * <br /> * I cannot take any responsibility for missuse of this code<br /> * or any kind of damage it may occur from using this code.<br /> * <br /> * dec 2020 v2 - improved serial comm stability<br /> * january 2021 - improved near target dead-zone, for which antenna won't move<br /> * apr 2021 - improved serial comm stability<br /> * jun 2021 - error proportional power for tracking movement<br /> * aug 2021 - faster USB update, cold switching Az/El direction, small optimizations in the code<br /> *<br /> * Mods by CT2GQV bellow<br /> * 2021-10-31 added code to accept AZ EL as query since Hamlib 3.1 sends it, while Hamlib 1.2.15.3 sends the "!"<br /> * 2021-10-30 Original code moded to acept the "!" from Hamlib 1.2.15.3 using gpredict in 1.3 Linux<br /> * to include parsing of rotctld commands from Linux via gpredict.<br /> * gpredict will connect to "rotator" (rotctld) with IP 192.168.0.14 (example)<br /> * and rotctld will listen to IP 192.168.0.14 and send commands for the arduino rotator <br /> * controler (from YO3RAK with mod CT2GQV) * via serial USB<br /> * ex: rotctld -m 202 -r /dev/ttyUSB0 -s 9600 -T 192.168.0.14 -t 4533.<br /> * ex: rotctld -m 202 -r /dev/<arduino usb> -s 9600 -T <your IP address to listen> -t <port to listen><br /> *<br /> * <br /> */<br /> <br />#include <Wire.h> // Library for I2C communication<br />#include <LiquidCrystal_I2C.h> // Library for LCD<br />// Wiring: SDA pin is connected to A4 and SCL pin to A5.<br />// Connect to LCD via I2C, default address 0x27 (A0-A2 not jumpered)<br />// LiquidCrystal_I2C lcd(0x27, 16, 2); // address, chars, rows.<br /><br />// CT2GQV mod<br />LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // 0x27 is the default I2C bus address (this could be different for some modules)<br />// how much serial data we expect from rotctld before a newline<br />const unsigned int MAX_INPUT = 14; // "AZ360.0 EL90.0", that is: 14 char's <br />int soft_az,soft_el ; // to hold the azimuth and elevation values sent from the gpredict via rotctld software<br />// end mod CT2GQV<br /><br />// declaring custom symbol for up/down arrow<br /> byte DownArrow[8] = {<br /> B00000,<br /> B00100,<br /> B00100,<br /> B00100,<br /> B10101,<br /> B01110,<br /> B00100,<br /> B00000<br />};<br /> byte UpArrow[8] = {<br /> B00000,<br /> B00100,<br /> B01110,<br /> B10101,<br /> B00100,<br /> B00100,<br /> B00100,<br /> B00000<br />};<br /><br />/***********************************THIS IS WHERE YOU REALY TWEAK THE ANTENNA MOVEMENT***************/<br />// ANTENNA potentiometers CALIBRATION<br /> int AzMin = 1; //begining of the potentiometer<br /> int AzMax = 1023; //end of the potentiometer <br /> int ElMin = 1;<br /> int ElMax = 1023;<br /><br />// Allowed error for which antennna won't move. Minimum 1 degree<br /> int AzErr = 9;<br /> int ElErr = 4;<br /><br />// Angle difference where soft stop begins<br /> int Amax = 25; //azimuth<br /> int Emax = 15; //elevation<br /><br />// min and max power for motors, percents;<br /> int PwAzMin = 40; //minimum power for which the motor doesn't stall and starts under load<br /> int PwAzMax = 100; //full power for the fastest speed<br /> int PwElMin = 30;<br /> int PwElMax = 100;<br /> <br /> int PwAz = 0; //calculated power to be transmitted to motor (percents);<br /> int PwEl = 0;<br />/***************************************************************************************************/<br /><br />// Azim encoder variables<br /> enum AzPinAssignments {<br /> AzEncoderPinA = 2, // encoder right<br /> AzEncoderPinB = 3, // encoder left<br /> AzClearButton = 4}; // encoder push<br /> unsigned int lastReportedPos = 1; // change management<br /> static boolean rotating = false; // debounce management<br /> // interrupt service routine vars<br /> boolean A_set = false;<br /> boolean B_set = false;<br /> <br />//Elev encoder variables<br /> enum ElPinAssignments{<br /> ElEncoderPinA = 6, // encoder right<br /> ElEncoderPinB = 5, // encoder left<br /> ElClearButton = 7}; // encoder push<br /> int aState;<br /> int aLastState; <br /> <br />// other variables<br /> int AzPotPin = A0; // select the input pin for the azim. potentiometer<br /> int AzRotPin = 12; // select the out pin for rotation direction<br /> int AzPWMPin = 11; // select the out pin for azimuth PWM command<br /> int TruAzim = 0; // calculated real azimuth value<br /> int ComAzim = 0; // commanded azimuth value<br /> int OldTruAzim = 0; // to store previous azimuth value<br /> int OldComAzim = 0;<br /> char AzDir; // symbol for azim rot display<br /> int AzEncBut = 1; // variable to toggle with encoder push button <br /> int ElPotPin = A1; // select the input pin for the elev. potentiometer<br /> int ElRotPin = 13; // select the out pin for elevation rotation direction<br /> int ElPWMPin = 10; // select the out pin for elevation rotation PWM command<br /> int TruElev = 0; // calculated real elevation value<br /> int ComElev = 0; // commanded elevation value<br /> int OldTruElev = 0; // to store previous elevation value<br /> int OldComElev = 0;<br /> char ElDir; // symbol for elev. rot display<br /> <br />// flags for AZ, EL tolerances<br /> bool AzStop = false;<br /> bool ElStop = false;<br /> int ElUp = 0; // 1 = Elevation Dn, 0 = Elevation STOP, 2 = Elevation Up<br /> <br />//averaging loop<br /> const int numReadings = 25;<br /> int readIndex = 0; // the index of the current reading <br /> int azimuth[numReadings]; // the readings from the analog input<br /> int elevation[numReadings];<br /> int totalAz = 0; // the running total<br /> int totalEl = 0;<br /><br />// variables for serial comm<br /> String Azimuth = "";<br /> String Elevation = "";<br /> String ComputerRead;<br /> String ComputerWrite;<br /> bool AZser = false;<br /> bool ELser = false;<br /> bool ANTser = false;<br /><br />/*************** END VARIABLE DECLARATION ************/<br /><br />void setup() {<br /> Serial.begin(9600);<br /> Serial.setTimeout(50); // miliseconds to wait for USB sata. Default 1000<br />// Initiate the LCD:<br />// lcd.begin(16,2);<br />// lcd.init();<br />// lcd.backlight();<br /><br /> // LCD initialization<br /> lcd.begin(16, 2); // LCD set for 16 by 2 display<br /> lcd.setBacklightPin(3,POSITIVE); // (BL, BL_POL)<br /> lcd.setBacklight(HIGH); // LCD backlight turned ON<br /> lcd.clear(); <br /><br />//creating custom symbol for up/dwn arrow<br /> lcd.createChar(1, DownArrow);<br /> lcd.createChar(2, UpArrow);<br /> <br />// pin declaration<br /> pinMode(AzRotPin, OUTPUT); //declaring azim. rotation direction Pin as OUTPUT<br /> pinMode(AzPWMPin, OUTPUT); //declaring azimuth PWM command Pin as OUTPUT<br /> pinMode(ElRotPin, OUTPUT); //declaring elev. rotation direction Pin as OUTPUT<br /> pinMode(ElPWMPin, OUTPUT);<br /> pinMode(AzPotPin, INPUT);<br /> pinMode(ElPotPin, INPUT);<br /> pinMode(AzEncoderPinA, INPUT);<br /> pinMode(AzEncoderPinB, INPUT);<br /> pinMode(AzClearButton, INPUT);<br /> pinMode(ElEncoderPinA, INPUT);<br /> pinMode(ElEncoderPinB, INPUT);<br /> pinMode(ElClearButton, INPUT);<br /><br />// AzEncoder pin on interrupt 0 (pin A)<br /> attachInterrupt(0, doEncoderA, CHANGE);<br />// AzEncoder pin on interrupt 1 (pin B)<br /> attachInterrupt(1, doEncoderB, CHANGE);<br />// Reads the initial state of the ElEncoderPinA<br /> aLastState = digitalRead(ElEncoderPinA);<br /><br />// write on display name and version<br /> lcd.setCursor(0, 0); // Set the cursor on the first column first row.(counting starts at 0!)<br /> lcd.print("EasyCom AntRotor"); // display "..."<br /> lcd.setCursor(0, 1); // Set the cursor on the first column the second row<br />// changed to reflect mod by CT2GQV<br /> lcd.print("*YO3RAK/CT2GQV*");<br /> delay(2000); // keep for 2 seconds<br /><br />// display Azim. and Elev. values<br /> lcd.setCursor(0, 0);<br /> lcd.print("Azm.---" + String(char(223)) + "=Cd.---" + String(char(223))); // char(223) is degree symbol<br /> lcd.setCursor(0, 1); <br /> lcd.print("Elv. --" + String(char(223)) + "=Cd. --" + String(char(223)));<br /><br /><br />/* initialization of the averaging loop */<br />// this is to set azim-command the same value as real, not to jerk the antenna at start-up<br /> TruAzim = (map(analogRead(AzPotPin), AzMin, AzMax, 0, 359)); // azimuth value 0-359<br /> if (TruAzim<0) {TruAzim=0;}<br /> if (TruAzim>359) {TruAzim=359;} // keep values between limits<br /> TruElev = (map(analogRead(ElPotPin), ElMin, ElMax, 0, 90)); // elev value 0-90<br /> if (TruElev<0) {TruElev=0;}<br /> if (TruElev>90) {TruElev=90;} // keep values between limits<br /><br />// initialize all the readings<br /> for (int thisReading = 0; thisReading < numReadings; thisReading++) {<br /> azimuth[thisReading] = 0;<br /> elevation[thisReading] = 0;<br /> }<br /> ComAzim = TruAzim;<br /> ComElev = TruElev;<br /> OldTruAzim = TruAzim;<br /> OldComAzim = ComAzim;<br /> OldTruElev = TruElev;<br /> OldComElev = TruElev;<br /> DisplAzim(TruAzim, 4,0);<br /> DisplAzim(ComAzim,12,0);<br /> DisplElev(TruElev, 5,1);<br /> DisplElev(ComElev,13,1);<br />}<br />// end SETUP<br /><br /><br />// here to process incoming serial data after a terminator received<br />void process_data (const char * data) // ct2gqv<br /> {<br /> char data1[3]="", data2[3]=""; // to hold azimuth and elevation sent by gpredict/rotctld<br /> int j = 0, k = 0 ; // for counters to insert in data1 and data2<br /> int select = 1; // holding which data to insert the character<br /> <br /> // for AZxxx ELxxx command but will also try to parse something like "AZ EL." so we don't do it if data[3] == 'E'<br /> if (data[0] == 'A' && data[1] == 'Z' && data[3] != 'E'){ // we wait for the AZ command, it comes similar to AZ3599.0 EL900.0<br /><br /> for (int i = 0; i < MAX_INPUT; i++)<br /> {<br /> char x = data[i];<br /> if (x == ' ') {select = 2;}; // we are done, we had the first space and means we are on to the second value for azimuth<br /> if (x == '.') {select = 3;}; // we have a dot so we don't parse the data1 until we have the previous wich is a spce then we do data2<br /> <br /> if (isdigit(x) == 0) <br /> {<br /> // do nothing only if needed to get AZ or EL string's<br /> }<br /> else // it's a number<br /> { <br /> if (select == 1) { // holds the azimuth characters until the dot <br /> data1[k] = x; <br /> k++; }; <br /> if (select == 2) { // holds the elevation <br /> data2[j] = x; <br /> j++; }; <br /> }<br /> }; // end of if loop to separate AZ and EL from the rotator command software<br /> <br /> soft_az = atoi(data1);<br /> soft_el = atoi(data2);<br /> <br /> // we need to send now the data to the original code <br /> ComAzim = soft_az;<br /> ComElev = soft_el;<br /> };<br /> <br /> // for "AZ EL ." command of query position on gpredict 2.0-4 since it's diferent from gpredict 1.3 (we only care about knowing if "AZ EL" was received)<br /> if (data[0] == 'A' && data[1] == 'Z' && data[3] == 'E' && data[4] == 'L'){<br /> // removed the "TM0" (ComputerWrite = "TM0 AZ...") on the ComputerWrite string for gpredict 2.0-4 , also on gpredict 2.0-4 the x10 of the el/az looks fixed so removed<br /> // the adding of "0.0" to the sent position and elevation, now only decimal dedgrees is send ".0"<br /> ComputerWrite = "AZ"+String(TruAzim)+".0 EL"+String(TruElev)+".0"; // need to be x10 (add 0.0) or gpredict 1.3 will read divide by 10 (might be rotctld causing it also).<br /> Serial.println(ComputerWrite);<br /> };<br /> <br /> // for "SA SE ." command of stop azimuth and stop postion.... blank for now.. need to study betther the code<br /> if (data[0] == 'S' && data[1] == 'A' && data[3] == 'S' && data[4] == 'E'){<br /> // how should we stop here ? and should we report something ? Should we apply breaks on rotator ?<br /> // for now we do nothing.....to be continued...<br /> };<br /> <br /> <br /> <br /> <br /> } // end void process_data<br /> <br />void processIncomingByte (const byte inByte) // CT2GQV<br /> {<br /> static char input_line [MAX_INPUT];<br /> static unsigned int input_pos = 0;<br /> switch (inByte)<br /> {<br /> // for gpredict 1.3 w report the position here, there is also a factor of 10 that needs to be send, so it's "0.0" apended<br /> // this is on Hamlib 1.2.15.3 but diferent on Hamlib 3.1 where it sends "AZ EL"<br /> case '!': // rotctld when sending "!" is asking rotator position so let's send it<br /> ComputerWrite = "TM0 AZ"+String(TruAzim)+"0.0 EL"+String(TruElev)+"0.0"; // need to be x10 (add 0.0) or gpredict 1.3 will read divide by 10 (might be rotctld causing it also).<br /> Serial.println(ComputerWrite);<br /> break; <br /> case '\n': // end of text<br /> input_line [input_pos] = 0; // terminating null byte <br /> // terminator reached! process input_line here ...<br /> process_data (input_line); <br /> // reset buffer for next time<br /> input_pos = 0; <br /> break;<br /> case '\r': // discard carriage return<br /> break;<br /> default:<br /> // keep adding if not full ... allow for terminating null byte<br /> if (input_pos < (MAX_INPUT - 1))<br /> input_line [input_pos++] = inByte;<br /> break;<br /> } // end of switch<br /> } // end of processIncomingByte <br /><br />void loop() {<br />/************** FYI, this loop repeats 500 times per second !!! **************/<br />// AZIMUTH/ELEVATION AVERAGING LOOP<br /> // subtract the oldest value<br /> totalAz = totalAz - azimuth[readIndex];<br /> totalEl = totalEl - elevation[readIndex];<br /> // read from the sensor:<br /> azimuth[readIndex] = (map(analogRead(AzPotPin), AzMin, AzMax, 0, 359));<br /> elevation[readIndex] = (map(analogRead(ElPotPin), ElMin, ElMax, 0, 90));<br /> // add the reading to the total:<br /> totalAz = totalAz + azimuth[readIndex];<br /> totalEl = totalEl + elevation[readIndex];<br /> // do the average<br /> TruAzim = totalAz / numReadings;<br /> TruElev = totalEl / numReadings;<br /> // keep values between limits<br /> if (TruAzim<0) {TruAzim=0;}<br /> if (TruAzim>359) {TruAzim=359;}<br /> if (TruElev<0) {TruElev=0;}<br /> if (TruElev>90) {TruElev=90;}<br /> // advance to the next position in the array:<br /> readIndex = readIndex + 1;<br /> // if we're at the end of the array, wrap around to the beginning:<br /> if (readIndex >= numReadings) {readIndex = 0;} <br /><br />// this is to read the command from encoder<br /> ReadAzimEncoder();<br /> ReadElevEncoder();<br /> <br />// original code<br />// if (Serial.available()) {SerComm();} // read USB data<br /><br />while (Serial.available () > 0) // CT2GQV<br /> processIncomingByte (Serial.read ()); <br /><br />// update antenna position display only if value change<br /> if ((millis()%500)<10){ // not to flicker the display<br /> if (OldTruAzim!=TruAzim) {<br /> DisplAzim(TruAzim,4,0);<br /> OldTruAzim = TruAzim;<br /> }<br /> if (OldTruElev!=TruElev) {<br /> DisplElev(TruElev,5,1);<br /> OldTruElev = TruElev;<br /> }<br /> }<br /><br />// update target position display only if value change<br /> if (OldComAzim != ComAzim) {<br /> DisplAzim(ComAzim,12,0);<br /> OldComAzim = ComAzim;<br /> }<br /> if (OldComElev != ComElev) {<br /> DisplElev(ComElev,13,1);<br /> OldComElev = ComElev;<br /> }<br /><br />// this is to rotate in azimuth<br /> if (TruAzim == ComAzim) { // if equal, stop moving<br /> AzStop = true;<br /> analogWrite(AzPWMPin, 0);<br /> lcd.setCursor(8, 0);<br /> lcd.print("=");<br /> }<br /> else if ((abs(TruAzim - ComAzim)<=AzErr)&&(AzStop == false)) { // if in tolerance, but it wasn't an equal, rotate<br /> AzimRotate();}<br /> else if (abs(TruAzim - ComAzim)>AzErr){ // if target is off tolerance<br /> AzStop = false; // it's not equal<br /> AzimRotate(); // rotate<br /> }<br /><br />// this is to rotate in elevation<br /> if (TruElev == ComElev) { // if equal, stop moving<br /> ElStop = true;<br /> analogWrite(ElPWMPin, 0);<br /> lcd.setCursor(8, 1);<br /> lcd.print("=");<br /> ElUp = 0; // flag for elevation STOP<br /> }<br /> else if ((abs(TruElev - ComElev)<=ElErr)&&(ElStop == false)) { // if in tolerance, but it wasn't an equal, rotate<br /> ElevRotate();}<br /> else if (abs(TruElev - ComElev)>ElErr){ // if target is off tolerance<br /> ElStop = false; // it's not equal<br /> ElevRotate(); // rotate<br /> }<br />// this is to interpret Az encoder x10 multiplication<br /> while (AzEncBut == 10) { // while toggled to x10<br /> analogWrite(AzPWMPin, 0); // STOP antenna rotation<br /> analogWrite(ElPWMPin, 0);<br /> lcd.setCursor(8, 0);<br /> lcd.print("*");<br /> ReadAzimEncoder();<br /> if (OldComAzim != ComAzim){ // update display only if numbers change<br /> DisplAzim(ComAzim, 12, 0);<br /> OldComAzim = ComAzim;<br /> }<br /> delay (100);<br /> }<br />}<br />// end main LOOP<br /><br />//____________________________________________________<br />// ___________procedures definitions__________________<br /><br />void DisplAzim(int x, int y, int z) {<br /> char displayString[7] = "";<br /> sprintf(displayString, "%03d", x); //outputs a fixed lenght number (3 integer)<br /> lcd.setCursor(y, z); // for no leading zeros "__7" use "%3d"<br /> lcd.print(displayString);<br /> <br />// ************** FOR CALIBRATION PURPOSES **************<br />// Serial.print ("Az ");<br />// Serial.println (analogRead(AzPotPin));<br />}<br /><br />void DisplElev(int x, int y, int z){<br /> char displayString[7] = "";<br /> sprintf(displayString, "%02d", x); //outputs a fixed lenght number (2 integer)<br /> lcd.setCursor(y, z); // for no leading zeros "_7" use "%2d"<br /> lcd.print(displayString);<br /><br />// ************** FOR CALIBRATION PURPOSES **************<br />// Serial.print ("El ");<br />// Serial.println (analogRead(ElPotPin));<br />}<br /><br />void ReadElevEncoder() {<br /> aState = digitalRead(ElEncoderPinA); // Reads the "current" state of the ElEncoderPinA<br /> // If the previous and the current state of the ElEncoderPinA are different, that means a Pulse has occured<br /> if (aState != aLastState){ <br /> // If the ElEncoderPinB state is different to the ElEncoderPinA state, that means the encoder is rotating clockwise<br /> if (digitalRead(ElEncoderPinB) != aState) { ComElev ++;}<br /> else { ComElev --;}<br /> if (ComElev <0) {ComElev = 0;}<br /> if (ComElev >90) {ComElev = 90;}<br /> }<br /> aLastState = aState; // Updates the previous state of the ElEncoderPinA with the current state<br />}<br /><br />void ReadAzimEncoder() {<br /> rotating = true; // reset the debouncer<br /> if (lastReportedPos != ComAzim) {<br /> lastReportedPos = ComAzim;<br /> }<br /> delay(10);<br /> if (digitalRead(AzClearButton) == LOW ) { // if encoder switch depressed<br /> delay (250); // debounce switch <br /> if (AzEncBut == 1){<br /> AzEncBut = 10;<br /> ComAzim = int(ComAzim/10)*10; // ComAzim in 10deg. steps <br /> }<br /> else {<br /> AzEncBut = 1;<br /> }<br /> }<br />} //end ReadAzimEncoder()<br /><br />// Interrupt on A changing state<br />void doEncoderA() {<br /> // debounce<br /> if ( rotating ) delay (1); // wait a little until the bouncing is done<br /> // Test transition, did things really change?<br /> if ( digitalRead(AzEncoderPinA) != A_set ) { // debounce once more<br /> A_set = !A_set;<br /> // adjust counter + if A leads B<br /> if ( A_set && !B_set )<br /> ComAzim += AzEncBut;<br /> ComAzim = ((ComAzim + 360) % 360); // encoderPos between 0 and 359 deg.<br /> rotating = false; // no more debouncing until loop() hits again<br /> }<br />}<br />// Interrupt on B changing state, same as A above<br />void doEncoderB() {<br /> if ( rotating ) delay (1);<br /> if ( digitalRead(AzEncoderPinB) != B_set ) {<br /> B_set = !B_set;<br /> // adjust counter - 1 if B leads A<br /> if ( B_set && !A_set )<br /> ComAzim -= AzEncBut;<br /> ComAzim = ((ComAzim + 360) % 360); // encoderPos between 0 and 359 deg.<br /> rotating = false;<br /> }<br /> }<br /><br />void AzimRotate() {<br /> if ((ComAzim-TruAzim) > (TruAzim-ComAzim)) { // this to determine direction of rotation<br />// cold switching - stop motor before changing direction - to protect mechanic and electric parts<br /> if (AzDir == char(127)) { // if previously rotating in the oposite direction<br /> analogWrite(AzPWMPin, 0); // STOP the motor<br /> delay(400); // pre-switch delay<br /> digitalWrite(AzRotPin, LOW); // deactivate rotation pin - rotate right<br /> delay(200); // post-switch delay<br /> }<br /> else { // same directin, no Stop, no delay<br /> digitalWrite(AzRotPin, LOW); // deactivate rotation pin - rotate right<br /> }<br /> AzDir = char(126); // "->"<br /> }<br /> else {<br /> if (AzDir == char(126)) { // if previously rotating in the oposite direction<br /> analogWrite(AzPWMPin, 0); // STOP the motor<br /> delay(400); // pre-switch delay<br /> digitalWrite(AzRotPin, HIGH); // activate rotation pin - rotate left<br /> delay(200); // post-switch delay<br /> }<br /> else { // same directin, no Stop, no delay<br /> digitalWrite(AzRotPin, HIGH); // activate rotation pin - rotate left<br /> }<br /> AzDir = char(127); // "<-"<br /> }<br /> lcd.setCursor(8, 0);<br /> lcd.print(String(AzDir));<br /> // this activates azim PWM pin proportional with angle error<br /> PwAz = PwAzMin + round((abs(ComAzim-TruAzim))*(PwAzMax-PwAzMin)/(Amax-AzErr)); //formula which outputs a power proportional with angle difference<br /> if (PwAz > 100) {PwAz = 100;}<br /> analogWrite(AzPWMPin, round(2.55*PwAz)); // activate Azim drive PWM pin <br />}<br /><br />void ElevRotate() {<br />// this to determine direction of rotation<br /> if ((ComElev-TruElev) > (TruElev-ComElev)) {<br /> if (ElUp == 1) { // if previously rotating in the oposite direction<br /> analogWrite(ElPWMPin, 0); // STOP the motor<br /> delay(400); // pre-switch delay<br /> digitalWrite(ElRotPin, LOW); // deactivate rotation pin - rotate UP<br /> delay(200); // post-switch delay<br /> }<br /> else { // same directin, no Stop, no delay<br /> digitalWrite(ElRotPin, LOW); // deactivate rotation pin - rotate UP<br /> }<br /> lcd.setCursor(8, 1);<br /> lcd.write(2); // arrow up<br /> ElUp = 2;<br /> }<br /> else {<br /> if (ElUp == 2) { // if previously rotating in the oposite direction<br /> analogWrite(ElPWMPin, 0); // STOP the motor<br /> delay(400); // pre-switch delay<br /> digitalWrite(ElRotPin, HIGH); // deactivate rotation pin - rotate UP<br /> delay(200); // post-switch delay<br /> }<br /> else { // same directin, no Stop, no delay<br /> digitalWrite(ElRotPin, HIGH); // deactivate rotation pin - rotate UP<br /> }<br /> lcd.setCursor(8, 1);<br /> lcd.write(1); // arrow down<br /> ElUp = 1;<br /> }<br /> // this activates elev PWM pin proportional with angle error<br /> PwEl = PwElMin + round((abs(ComElev-TruElev))*(PwElMax-PwElMin)/(Emax-ElErr)); //formula which outputs a power proportional with angle difference<br /> if (PwEl > 100) {PwEl = 100;}<br /> analogWrite(ElPWMPin, round(2.55*PwEl)); // activate Elev drive PWM pin<br />}<br /><br />/* removed by CT2GQV<br />void SerComm() {<br /> // initialize readings<br /> ComputerRead = "";<br /> Azimuth = "";<br /> Elevation = "";<br /><br /> while(Serial.available()) {<br /> ComputerRead= Serial.readString(); // read the incoming data as string<br />// Serial.println(ComputerRead); // echo the reception for testing purposes<br /> } <br /><br />// looking for command <AZxxx.x><br /> for (int i = 0; i <= ComputerRead.length(); i++) {<br /> if ((ComputerRead.charAt(i) == 'A')&&(ComputerRead.charAt(i+1) == 'Z')){ // if read AZ<br /> for (int j = i+2; j <= ComputerRead.length(); j++) {<br /> if (isDigit(ComputerRead.charAt(j))) { // if the character is number<br /> Azimuth = Azimuth + ComputerRead.charAt(j);<br /> }<br /> else {break;}<br /> }<br /> }<br /> }<br /> <br />// looking for command <ELxxx.x><br /> for (int i = 0; i <= (ComputerRead.length()-2); i++) {<br /> if ((ComputerRead.charAt(i) == 'E')&&(ComputerRead.charAt(i+1) == 'L')){ // if read EL<br /> if ((ComputerRead.charAt(i+2)) == '-') {<br /> ComElev = 0; // if elevation negative<br /> break;<br /> }<br /> for (int j = i+2; j <= ComputerRead.length(); j++) {<br /> if (isDigit(ComputerRead.charAt(j))) { // if the character is number<br /> Elevation = Elevation + ComputerRead.charAt(j);<br /> }<br /> else {break;}<br /> }<br /> }<br /> }<br /> <br />// if <AZxx> received<br /> if (Azimuth != ""){<br /> ComAzim = Azimuth.toInt();<br /> ComAzim = ComAzim%360; // keeping values between limits(for trackers with more than 360 deg. rotation)<br /> }<br /><br />// if <ELxx> received<br /> if (Elevation != ""){<br /> ComElev = Elevation.toInt();<br /> if (ComElev>180) { ComElev = 0;}<br /> if (ComElev>90) { //if received more than 90deg. (for trackers with 180deg. elevation)<br /> ComElev = 180-ComElev; //keep below 90deg.<br /> ComAzim = (ComAzim+180)%360; //and rotate the antenna on the back<br /> }<br /> }<br /><br />// looking for <AZ EL> interogation for antenna position<br /> for (int i = 0; i <= (ComputerRead.length()-4); i++) {<br /> if ((ComputerRead.charAt(i) == 'A')&&(ComputerRead.charAt(i+1) == 'Z')&&(ComputerRead.charAt(i+3) == 'E')&&(ComputerRead.charAt(i+4) == 'L')){<br /> // send back the antenna position <+xxx.x xx.x><br /> ComputerWrite = "+"+String(TruAzim)+".0 "+String(TruElev)+".0";<br /> Serial.println(ComputerWrite);<br /> }<br /> }<br />}<br />// end SerComm()<br />*/<br /></p><p>/// code end<br /></p><p><br /></p><p>Have a nice day!<br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com4tag:blogger.com,1999:blog-31955893.post-89259557580624071342021-10-02T17:44:00.000+01:002021-10-02T17:44:15.226+01:00Raspberry rotary encoder in Python<p> Nothing fancy here, just an adaptation of the code in <a href="https://ozeki.hu/p_3054-how-to-setup-a-rotary-encoder-on-raspberry-pi.html">here</a> to add the switch function in the rotary encoder software.<br /></p><p></p><p>Connections are like this:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJQ-eMx20-_QamcM9NGn6I50nJr8isPLPrX5jmmxTYqOGGPvhl8RKQtVkGJL5_gDFjdxwVv6o3ot6B501IMfN1wN-1H2rcHEBKZm55YjMiytyVAhcdDexTYu-8w9PZqbWqwvNH/s754/Rotary_RPI.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="754" data-original-width="640" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJQ-eMx20-_QamcM9NGn6I50nJr8isPLPrX5jmmxTYqOGGPvhl8RKQtVkGJL5_gDFjdxwVv6o3ot6B501IMfN1wN-1H2rcHEBKZm55YjMiytyVAhcdDexTYu-8w9PZqbWqwvNH/s320/Rotary_RPI.png" width="272" /></a></div><br /><p>Output will be "UP", "Down" an "click" messages depending on the rotary encoder change, you can then re-use for your own code inside the functions.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKMnNQwFEd0J9CxZcRmkmZdXfppkqz0LqsseWj0jLjrAJGFq6nl_rcE96YlDJBITNWIowrXC5WIMiNE5tyrT88UhI8LaKEG0pofcMExydXGjWBSJvc2hx4FqTabi037FWlD0R/s623/Screenshot+at+2021-10-02+17-29-24.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="404" data-original-width="623" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLKMnNQwFEd0J9CxZcRmkmZdXfppkqz0LqsseWj0jLjrAJGFq6nl_rcE96YlDJBITNWIowrXC5WIMiNE5tyrT88UhI8LaKEG0pofcMExydXGjWBSJvc2hx4FqTabi037FWlD0R/s320/Screenshot+at+2021-10-02+17-29-24.png" width="320" /></a></div><br /><p>I'm using it now to control an SDR receiver (rtl_sdr), might post about it when finished.<br /></p><p></p><p>The code after the change is this one:</p><p>##############</p><p>import RPi.GPIO as GPIO<br />from time import sleep<br /> <br />counter = 10<br /> <br />Enc_A = 17 <br />Enc_B = 27 <br />Enc_SW = 22 <br /> <br />def init():<br /> print "Rotary Encoder Test Program"<br /> GPIO.setwarnings(True)<br /> GPIO.setmode(GPIO.BCM)<br /> GPIO.setup(Enc_A, GPIO.IN)<br /> GPIO.setup(Enc_B, GPIO.IN)<br /> GPIO.setup(Enc_SW, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)<br /> GPIO.add_event_detect(Enc_A, GPIO.RISING, callback=rotation_decode, bouncetime=10)<br /> GPIO.add_event_detect(Enc_SW, GPIO.FALLING, callback=swClicked, bouncetime=300)<br /> return<br /><br /><br />def swClicked(channel):<br /># global paused<br /># paused = not paused<br /> print ("click") <br /> <br /> def rotation_decode(Enc_A):<br /> global counter<br /> sleep(0.002)<br /> Switch_A = GPIO.input(Enc_A)<br /> Switch_B = GPIO.input(Enc_B)<br /> <br /> if (Switch_A == 1) and (Switch_B == 0):<br /> counter += 1<br /># print "direction -> ", counter<br /> print "UP"<br /> while Switch_B == 0:<br /> Switch_B = GPIO.input(Enc_B)<br /> while Switch_B == 1:<br /> Switch_B = GPIO.input(Enc_B)<br /> return<br /> <br /> elif (Switch_A == 1) and (Switch_B == 1):<br /> counter -= 1<br /># print "direction <- ", counter<br /> print "DOWN"<br /> while Switch_A == 1:<br /> Switch_A = GPIO.input(Enc_A)<br /> return<br /> else:<br /> return<br /> <br />def main():<br /> try:<br /> init()<br /> while True :<br /> sleep(1)<br /> <br /> except KeyboardInterrupt:<br /> GPIO.cleanup()<br /> <br />if __name__ == '__main__':<br /> main()<br /><br /></p><p>##############<br /></p><p>As you can see side by side, only some extra lines, all credit to the original code creator.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFVmzdu49n_VHa65W6HfUp1WSRm6AwleKv94RTdhvjRg0GW8uEAhYGKPT8ynB7zXnWwEIF9DtKw6QF3-96b0-bWbKqYiK3Tv4PfflJyxZZqDW59A2ftKhMCKW-X7PpLqfoJwII/s1042/Screenshot+at+2021-10-02+17-31-57.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="754" data-original-width="1042" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFVmzdu49n_VHa65W6HfUp1WSRm6AwleKv94RTdhvjRg0GW8uEAhYGKPT8ynB7zXnWwEIF9DtKw6QF3-96b0-bWbKqYiK3Tv4PfflJyxZZqDW59A2ftKhMCKW-X7PpLqfoJwII/s320/Screenshot+at+2021-10-02+17-31-57.png" width="320" /></a></div><br /><p><br /></p><p>Have a nice day!<br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-4541202093630300922021-09-12T16:46:00.005+01:002022-03-19T15:48:35.268+00:00ADF4351 signal generator with sweepNothing major here, needed a small signal generator to test in the 10Ghz range (using harmonics from 3.3Ghz), decided to go with the ADF4351 module available everywhere. This is an improvement over the previous iteration <a href="https://speakyssb.blogspot.com/2021/01/adf4351-signal-generator.html">here</a>.<br /><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht3_I47VM3MCCnZLGztnl3DgoQQBfN05ply9pqFlp_S4ypQVUWJo6TEVQZoaqaM0MCI7Ao_Kwisn59o-9JyEjE45R6jX2sm0-angRfKOuBBk64nu5wi8mhf5PEwjX9Ch3lNDqC/s2048/20210130_112951-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="1526" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht3_I47VM3MCCnZLGztnl3DgoQQBfN05ply9pqFlp_S4ypQVUWJo6TEVQZoaqaM0MCI7Ao_Kwisn59o-9JyEjE45R6jX2sm0-angRfKOuBBk64nu5wi8mhf5PEwjX9Ch3lNDqC/s320/20210130_112951-1.jpg" width="320" /></a></div>
After the initial testing on 3.3Ghz made some changes on the software in order to set some common frequencies for future testing with QO-100 satellite equipment and also added provision to sweep around the frequency currently set in order to test some filters.
Output on 3.4Ghz:
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW4lR5ETlRHCgxbm_ZspT1g8giejJhhvEzDXuYjJFG4XS47SMvCS1Sr4CmEOjdh6WYxM44rlYKorgUIixP47t99glRqrZwzBMEAr3z7AK-WrQtfi8Db2QTGqaUCBroS1dW0Jl1/s2312/20201203_180623-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="829" data-original-width="2312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW4lR5ETlRHCgxbm_ZspT1g8giejJhhvEzDXuYjJFG4XS47SMvCS1Sr4CmEOjdh6WYxM44rlYKorgUIixP47t99glRqrZwzBMEAr3z7AK-WrQtfi8Db2QTGqaUCBroS1dW0Jl1/s320/20201203_180623-1.jpg" width="320" /></a></div>
And testing the third harmonic:
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtcH759OKMI8KPdCdgcThiKVVPmE1fRR0mhZnRKztdByfp3LJ0jTzaLfAitz6wLhG43_gEqCO_NBjjD0BGYzihyS8bBejy1tZVwyb2BCG16NLP5IMsfYRa2dCTpeK_YyeD4qS-/s505/screenshot_192.168.0.25_2020-12-10_09%253A13%253A02.bmp" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="303" data-original-width="505" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtcH759OKMI8KPdCdgcThiKVVPmE1fRR0mhZnRKztdByfp3LJ0jTzaLfAitz6wLhG43_gEqCO_NBjjD0BGYzihyS8bBejy1tZVwyb2BCG16NLP5IMsfYRa2dCTpeK_YyeD4qS-/s320/screenshot_192.168.0.25_2020-12-10_09%253A13%253A02.bmp" width="320" /></a></div>
The Rigol is not a 10Ghz version, I'm using a down converter before the input, that will be another post...
The diagram, at this stage I still didn't added the two extra buttons (look on code for mode and band), to change band and to change mode between set frequency and sweep.
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHL8gGBoBJ8hQtIgOiS4XBa6j11ztv6Df4-MhxblVrlKMXM9WKSrcUfV1qlZWjpNfK3FVk9MZxqmHvc2AummeYSbKMoUKffsnCrPa6Jh1ybvJysXI7U-sgQXGTSATHjtkKwU8a/s2048/20210130_125907-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="1720" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHL8gGBoBJ8hQtIgOiS4XBa6j11ztv6Df4-MhxblVrlKMXM9WKSrcUfV1qlZWjpNfK3FVk9MZxqmHvc2AummeYSbKMoUKffsnCrPa6Jh1ybvJysXI7U-sgQXGTSATHjtkKwU8a/s320/20210130_125907-1.jpg" width="320" /></a></div>
Inside on the almost final interaction (waiting SMA's to connect to front pannel):
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhttU18yg_Mi3sIrZ6TRwBs7V0pq3jmeoLkPyLH02UFtYZzlby07pjRZUfZW_FXx1kbma-T-boOxzJlhhExWHQKFMYFGOV9FRFFaka7PbAua0xfgCjj1wMhPHTghTMcndi8mRdl/s2048/20210911_171651-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="1658" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhttU18yg_Mi3sIrZ6TRwBs7V0pq3jmeoLkPyLH02UFtYZzlby07pjRZUfZW_FXx1kbma-T-boOxzJlhhExWHQKFMYFGOV9FRFFaka7PbAua0xfgCjj1wMhPHTghTMcndi8mRdl/s320/20210911_171651-1.jpg" width="320" /></a></div>
And the front panel view working:
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIFE8OwRtG2RgnbnMYTrkNlA_p_eGYYS0nc8px2cB54gpEhOacdQKnz5Z8wA_g-5Bn6jK9EVz1L6kUimP04rTv8d1jDHtoTv7w94aiSzYf4tLNhtj1ql9jOm99W08WScyhu-Il/s2027/20210829_101853-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="838" data-original-width="2027" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIFE8OwRtG2RgnbnMYTrkNlA_p_eGYYS0nc8px2cB54gpEhOacdQKnz5Z8wA_g-5Bn6jK9EVz1L6kUimP04rTv8d1jDHtoTv7w94aiSzYf4tLNhtj1ql9jOm99W08WScyhu-Il/s320/20210829_101853-1.jpg" width="320" /></a></div><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpebkQusmuOle47Kg_1LNiGi8gYEthPFbeuBxBtEBUyRWoyWDeliFzM96VJBsXUDLk-K4Ji-neyICIR53yRzvpwlyk1fLle9KIePCnNhXHQCpKlbp31DHcq2hXNNvqoL34EGYg/s2448/20210911_154354-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="985" data-original-width="2448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpebkQusmuOle47Kg_1LNiGi8gYEthPFbeuBxBtEBUyRWoyWDeliFzM96VJBsXUDLk-K4Ji-neyICIR53yRzvpwlyk1fLle9KIePCnNhXHQCpKlbp31DHcq2hXNNvqoL34EGYg/s320/20210911_154354-1.jpg" width="320" /></a></div><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAZ0ijy8gWnhpSXk3UxL0R8-DK5a1sgOtd-GHTRkGHMwrHvCoFa2WeWhS5P-gAnagoabvuDW4gnmj1kTDSt1u2KQDJk2inuK5xMXFW3xcvKCqc_HBbM1T3Hal4IHFKEQC14Uvi/s2448/20210911_154405-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAZ0ijy8gWnhpSXk3UxL0R8-DK5a1sgOtd-GHTRkGHMwrHvCoFa2WeWhS5P-gAnagoabvuDW4gnmj1kTDSt1u2KQDJk2inuK5xMXFW3xcvKCqc_HBbM1T3Hal4IHFKEQC14Uvi/s2448/20210911_154405-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="1049" data-original-width="2448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAZ0ijy8gWnhpSXk3UxL0R8-DK5a1sgOtd-GHTRkGHMwrHvCoFa2WeWhS5P-gAnagoabvuDW4gnmj1kTDSt1u2KQDJk2inuK5xMXFW3xcvKCqc_HBbM1T3Hal4IHFKEQC14Uvi/s320/20210911_154405-1.jpg" width="320" /></a></div><div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioVEI3j1LJs0JR4aX01FA-etO0_6u8LCjaWjxt-fYBWF8H4BX5Jgf6Upo7QebC122aLWcyfmrEHQnhdBSO7YzlTmAz16UMeKuB1el1aHkbzsnLejgaE3JFn4sZrPyKztl5Dw-V/s2448/20210911_154416-1.jpg" style="display: block; padding: 1em 0px; text-align: center;"><img alt="" border="0" data-original-height="1121" data-original-width="2448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioVEI3j1LJs0JR4aX01FA-etO0_6u8LCjaWjxt-fYBWF8H4BX5Jgf6Upo7QebC122aLWcyfmrEHQnhdBSO7YzlTmAz16UMeKuB1el1aHkbzsnLejgaE3JFn4sZrPyKztl5Dw-V/s320/20210911_154416-1.jpg" width="320" /></a></div><p>
The code on the current version, keep in mind might still have some bugs, reach me for latest version if there is one:
If blogger breaks formatting ask me a copy by email. </p><p><arduino .h=""><liquidcrystal_i2c .h=""> /*!<br /> ADF4351 signal generator<br /> <br /> CT2GQV 2020<br /> v1.4<br /><br /> Based on code from: ADF4351 example program https://github.com/dfannin/adf4351<br /><br /> VFO with 100Khz steps starting from a predifined frquency (UL frequencia) using 2 buttons for up and down.<br /> Display on 16x2 I2C LCD of the frequency set and the third harmonic value<br /> Also serial output of the main frequency set. <br /> Possibility to sweep for filter testing.<br />*/<br /><br />#include <Arduino.h><br />#include "adf4351.h"<br />#include <LiquidCrystal_I2C.h><br /><br />#define SWVERSION "1.4" // 2021-09-11<br />#define PIN_SS 9 ///< SPI slave select pin, default value<br />ADF4351 vfo(PIN_SS, SPI_MODE0, 1000000UL , MSBFIRST) ;<br /> <br />//unsigned long frequencia = 3333320000UL ; // 3.333.334 (10 Ghz n=3)<br />unsigned long frequencia = 3496500000UL ; // 3.496.000 (10.489 Ghz n=3)<br />unsigned long maxfrequencia;<br />unsigned long minfrequencia;<br /><br />// unsigned long frequencia = 2000000000UL ; // 2.000.000 (10 Ghz n=5)<br />// unsigned long frequencia = 414000000UL ; // 414.000 (10.368 Ghz n=25)<br />// for 442Mhz use the bellow and comment the above<br />// unsigned long frequencia = 442000000UL ; // 442Mhz or 1.326 Ghz , tird harmonic<br /><br />// I2C LCD virtual pinout<br />#define I2C_ADDR 0x27 // I2C Address for my LCD, found with I2C scanner<br />#define BACKLIGHT_PIN 3<br />#define En_pin 2<br />#define Rw_pin 1<br />#define Rs_pin 0<br />#define D4_pin 4<br />#define D5_pin 5<br />#define D6_pin 6<br />#define D7_pin 7<br />LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);<br /><br />// buttons for up/down in frequency, puleed up from 5v with a 10K resistor, analog pin will be short to ground for button press<br /><br />int button0 = 0; // mode<br />int button1 = 1; // up<br />int button2 = 2; // down<br />int button3 = 3; // select / band / step<br /><br />int opmode = 0; // <br />int tempopmode = 0; // <br />int band = 0; <br />// Band 0 - 10Ghz (3.3Ghz harmonic) - 10489.550 to 10489.795MHz -> <br />// Band 1 - 2400.050 frequencia = 2400500000UL<br />// Band 2 - 1969.5Mhz (-2400 = 431Mhz ) <br />// Band 3 - 2256 (2400-144Mhz) - 2400.050 to 2400.295MHz<br />// band 4 - 739.55 - LNB out<br /><br />void setup()<br />{<br /> Serial.begin(9600) ;<br /> Serial.print("adf4351 VFO CT2GQV "); Serial.println(SWVERSION) ;<br /><br /> pinMode(button0, INPUT); // mode<br /> pinMode(button1, INPUT); // up<br /> pinMode(button2, INPUT); // down<br /> pinMode(button3, INPUT); // band<br /><br /> lcd.begin (16, 2, LCD_5x8DOTS); lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE); lcd.setBacklight(HIGH); // 20x4 lines display LCD<br /> lcd.home();<br /> lcd.setCursor(0, 0); lcd.print("Signal Generator ");<br /> lcd.setCursor(0, 1); lcd.print("Ver: "); lcd.print(SWVERSION);<br /><br /> Wire.begin() ;<br /> /*!<br /> setup the chip (for a 10 mhz ref freq)<br /> most of these are defaults<br /> */<br /> vfo.pwrlevel = 3 ; // measured at 3.3Ghz after 1m cable >> "0" = -8 dBm / "1" = -5.8dbm / "2" = -3.3dbm / "3" = -0.4dbm<br /> vfo.RD2refdouble = 0 ; ///< ref doubler off<br /> vfo.RD1Rdiv2 = 0 ; ///< ref divider off<br /> vfo.ClkDiv = 150 ;<br /> vfo.BandSelClock = 80 ;<br /> vfo.RCounter = 1 ; ///< R counter to 1 (no division)<br /> vfo.ChanStep = steps[2] ; ///< set to 10 kHz steps<br /><br /> /*!<br /> sets the reference frequency to 10 Mhz<br /> */<br /> if ( vfo.setrf(10000000UL) == 0 )<br /> Serial.println("REF.SET: 10 Mhz") ;<br /> else<br /> Serial.println("ERROR: reference freq set error") ;<br /> /*!<br /> initialize the chip<br /> */<br /> vfo.init() ;<br /><br /> /*!<br /> enable frequency output<br /> */<br /> vfo.enable() ;<br /><br /> delay(500);<br /> lcd.clear();<br /><br /> if ( vfo.setf(frequencia) == 0 ) {<br /> Serial.print("VFO.SET:") ; Serial.println(vfo.cfreq) ;<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("F(3):"); lcd.print((frequencia/1000)*3);<br /> } else {<br /> Serial.println("ERROR: Set init Frequency") ;<br /> }<br /><br />vfo.ChanStep = steps[4] ; ///< change to 100 kHz<br />}<br /><br />void loop()<br />{<br /> int buttonState0 = analogRead(button0); // mode<br /> int buttonState3 = analogRead(button3); // band<br /> <br /> int buttonState1 = analogRead(button1); // up<br /> int buttonState2 = analogRead(button2); // down<br /> // serial debug for the button for +/- frequency<br /> // Serial.print("B1,B2:"); Serial.print(buttonState1); Serial.print(","); Serial.println(buttonState2);<br /><br /><br />// band / start/stop sweep<br /> // button pin is puled down to ground...or close to it (100) as long as lower than 2049<br /> if (buttonState3 <= 100) {<br /> {<br /><br /><br /> if (opmode == 1 ){ <br /> /////// start stop start procedure<br /> if(tempopmode == 1) // started<br /> {<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("SWEEPING starded "); <br /> lcd.setCursor(0, 1); lcd.print("Stop----------> "); <br /> tempopmode = 255;<br /> maxfrequencia=frequencia+10000000; //compute the max frequency so we start from the one now and 100Mhz down and up<br /> minfrequencia=frequencia-10000000; //compute the min frequency so we start from the one now and 100Mhz down and up<br /> delay(150);<br /> }<br /> else // is stoped<br /> {<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("SWEEPING stoped "); <br /> lcd.setCursor(0, 1); lcd.print("Start---------->"); <br /> tempopmode = 1;<br /> delay(150);<br /> }<br /> };<br /> <br /> // we are in band mode<br /> if (opmode == 0 ){ <br /> Serial.print ("BAND: ");<br /> band++;<br /> if (band > 4){band=0;};<br /> if(band == 0){<br /> frequencia=3496500000UL;<br /> vfo.setf(frequencia);<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("F(3):"); lcd.print((frequencia/1000)*3); };<br /> <br /> if(band == 1){<br /> frequencia=2400500000UL;<br /> vfo.setf(frequencia);<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("TX QO100 "); };<br /> <br /> if(band == 2){<br /> frequencia=1969500000UL;<br /> vfo.setf(frequencia);<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("+430Mhz QO100 TX"); }; <br /> <br /> if(band == 3){<br /> frequencia=2256000000UL;<br /> vfo.setf(frequencia);<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("+144Mhz QO100 TX"); }; <br /><br /> if(band == 4){<br /> frequencia=739550000UL;<br /> vfo.setf(frequencia);<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("LNB OUT 10.48955"); }; <br /><br /> Serial.println(band) ;<br /> <br /> }; // let's change band<br /> <br /> };<br /> }<br />// end band up <br /><br />// mode <br /> if (buttonState0 <= 100) {<br /> {<br /> if(opmode == 0)<br /> {<br /> opmode=1; tempopmode = 1;<br /> Serial.print ("SWEEP MODE:"); Serial.print(opmode); Serial.print(","); Serial.println(tempopmode) ;<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("SWEEPING MODE "); <br /> lcd.setCursor(0, 1); lcd.print("START/STOP----->"); <br /> delay(150); <br /> }<br /> else<br /> {<br /> opmode=0; tempopmode =0;<br /> Serial.print ("BAND MODE:"); Serial.print(opmode); Serial.print(","); Serial.println(tempopmode) ;<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("BAND MODE "); lcd.print(frequencia/1000);<br /> <br /> };<br /> <br /> }<br /> } // end if (buttonState0 <= 100) {<br /><br /><br /><br />// if we are sweeping<br />if (opmode==1 && tempopmode == 255){lcd.print(" .");}; <br />if (opmode==1 && tempopmode == 255){lcd.print(" o");}; <br />if (opmode==1 && tempopmode == 255){lcd.print(" O");};<br /><br />if (opmode==1 && tempopmode == 255){<br /> frequencia += vfo.ChanStep; // increase frquency by step<br /> if (frequencia >= maxfrequencia){frequencia=minfrequencia;}; // if we are on the limit then go to lower value<br /> vfo.setf(frequencia);<br /> Serial.print ("F:"); Serial.println(frequencia) ;<br /> };<br /><br /><br /><br />// up frequency <br /> // button pin is puled down to ground...or close to it (100) as long as lower than 2049<br /> if (buttonState1 <= 100) {<br /> frequencia += vfo.ChanStep;<br /> if ( vfo.setf(frequencia) == 0 )<br /> {<br /> Serial.print ("VFO.SET: "); Serial.println(vfo.cfreq) ;<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> if (band == 0 ){lcd.setCursor(0, 1); lcd.print("F(3):"); lcd.print((frequencia/1000)*3);};<br /> }<br /> }<br />// end up frequency <br /><br />// down frequency <br /> if (buttonState2 <= 100) {<br /> frequencia -= vfo.ChanStep;<br /> if ( vfo.setf(frequencia) == 0 )<br /> {<br /> Serial.print ("VFO.SET: "); Serial.println(vfo.cfreq) ;<br /> lcd.clear();<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> if (band == 0 ){lcd.setCursor(0, 1); lcd.print("F(3):"); lcd.print((frequencia/1000)*3);};<br /> }<br /> }<br />// end down frequency <br /><br /> <br /> // button software debounce if we are not sweeping<br /> if (opmode == 0) { delay(150); };<br /> <br />} // end code</liquidcrystal_i2c></arduino></p><p><arduino .h=""><liquidcrystal_i2c .h=""> </liquidcrystal_i2c></arduino></p><p><arduino .h=""><liquidcrystal_i2c .h=""> </liquidcrystal_i2c></arduino></p><p><arduino .h=""><liquidcrystal_i2c .h=""> </liquidcrystal_i2c></arduino></p><p><arduino .h=""><liquidcrystal_i2c .h=""> Have a great day!
</liquidcrystal_i2c></arduino></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-51916033869141640032021-05-22T18:09:00.001+01:002021-05-22T18:10:27.600+01:00Fan/temperature control for Agilent/HP6621A<p> This power supply is a bit noisy with the fan being constantly on. </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeZE1PLbf-33nE9j9rFSCUrdeYplRVkdrgaaKliSoTUwzbjYi004yYmADNgXFKiByYKV5RhqXS_oiovBF-4HjoTFqV84D0n_rQD6bzd-vNzvz1dorycT-zXQUgWAJcZ2xxJbQ/s2610/20190108_234114-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1205" data-original-width="2610" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoeZE1PLbf-33nE9j9rFSCUrdeYplRVkdrgaaKliSoTUwzbjYi004yYmADNgXFKiByYKV5RhqXS_oiovBF-4HjoTFqV84D0n_rQD6bzd-vNzvz1dorycT-zXQUgWAJcZ2xxJbQ/s320/20190108_234114-1.jpg" width="320" /></a></div><br /><p>Decided to change the fan status to come on only when temperature rise since it will be mostly used for small loads. </p><p>The approach decided was the simplest one without much changes internally, a temperature activated switch for 30C inline with the fan supply (110V). <br /></p><p>The switch was bolted to the heat-sync in the small available space and tested before drilling so it would not touch the lid after closing.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNW3Q5TlD9OA75Fv0tx9pRBq01zNltIuWOIt7DExdJRHfg4jer4k7TUvUeGrtK5Mm6AxZvIbWo0PCjqoOUCtlBp5GwRXTWa6PPzd3xJXKq7icbvOLlJKgGiDK9o0ooopwQ9tem/s2048/20210227_133426.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNW3Q5TlD9OA75Fv0tx9pRBq01zNltIuWOIt7DExdJRHfg4jer4k7TUvUeGrtK5Mm6AxZvIbWo0PCjqoOUCtlBp5GwRXTWa6PPzd3xJXKq7icbvOLlJKgGiDK9o0ooopwQ9tem/s320/20210227_133426.jpg" /></a></div><br /><p>For example it would not fit on the following position:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaNZPvNaHAs3dUbXnWZQSLfrQVkhECoDaZpx8sVlrqOlLn_J127D0qmsPircjpC3dKNCIxri44XItHUFRaAZU0UQ4rTYD55Zh43kJBmXVkNWR3thXm3z-bUh5eIFN66xfnkfd4/s2048/20210227_131411.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaNZPvNaHAs3dUbXnWZQSLfrQVkhECoDaZpx8sVlrqOlLn_J127D0qmsPircjpC3dKNCIxri44XItHUFRaAZU0UQ4rTYD55Zh43kJBmXVkNWR3thXm3z-bUh5eIFN66xfnkfd4/s320/20210227_131411.jpg" /></a></div><br /><p></p><p>The end result:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnj7UqwNmeYzGa6EtJTvNXAd2PjrS1DYen1nAJC9A4YivBCM-PGNxqjzKnCktaVAx6d5FY_3HV8pjZ6g6IoQOb9-WN6MOoArqoRJqt2aDV8nlL5k8EgTkV7Lf09e-n1sSsUGGj/s2048/20210227_140751.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnj7UqwNmeYzGa6EtJTvNXAd2PjrS1DYen1nAJC9A4YivBCM-PGNxqjzKnCktaVAx6d5FY_3HV8pjZ6g6IoQOb9-WN6MOoArqoRJqt2aDV8nlL5k8EgTkV7Lf09e-n1sSsUGGj/s320/20210227_140751.jpg" /></a></div>No schematic here, just placed the switch inline/series with one of the fan power cable line.<br /><p></p><p>keep in mind that the thermal switch used is a normally open one (NO) and not like the most common ones, normally closed (NC), used in home appliances, like toasters and grills, also called thermal cut out switch. It closes on reaching 30C.<br /></p><p>The switch is just on the heath sync of power supply A, that will be the most used output. For output B would be just a matter of paralleling another thermal switch. The power supply it self has temperature control for thermal shutdown, that will be the second "line of defense" in case anything to go wrong and also the transformer itself resonates so it will be not a full quiet power supply.<br /></p><p><br /></p><p>Have a nice day!</p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-34779700988848798582021-03-07T20:08:00.000+00:002021-03-07T20:08:10.076+00:00Microphone amplifier for signal generator external modulation input<p> Needed a small microphone signal amplifier to connected to the external modulation input of the Wavetek 3001 signal generator so I can test an AM de-modulator.</p><p>Nothing fancy here, just basic electret microphone amplifier. Microphone is of the basic type sold for computers voice calls.<br /></p><p> The diagram/schematic:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8CWMvMjJ8EoQNncIC8OA39NvOF87Dh4XbVTCldlQG-JxO8TqClPHaLXRfyJcAb7N7LyNi6Xm3QoFym5ZMCQOB-x5o7OgOix6yN3kLr_d9VHw55DF_kMNLg6QF3MxwfVONluCG/s2048/20210307_144510-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1487" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8CWMvMjJ8EoQNncIC8OA39NvOF87Dh4XbVTCldlQG-JxO8TqClPHaLXRfyJcAb7N7LyNi6Xm3QoFym5ZMCQOB-x5o7OgOix6yN3kLr_d9VHw55DF_kMNLg6QF3MxwfVONluCG/s320/20210307_144510-1.jpg" width="320" /></a></div><br />The result:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6iZeAJBtaKSxXf1tXd_xfR3voI_Y_7oKkgqrndfOfveStd4VpJMxll-BmZQuONodXubRWS-cDHvr8Rkam7shibqsLx7uxBWmnyx8DENqzhjlQsOjO4jcrkEckWO3CT9S5q6Hp/s1552/20210227_091442-1-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1346" data-original-width="1552" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6iZeAJBtaKSxXf1tXd_xfR3voI_Y_7oKkgqrndfOfveStd4VpJMxll-BmZQuONodXubRWS-cDHvr8Rkam7shibqsLx7uxBWmnyx8DENqzhjlQsOjO4jcrkEckWO3CT9S5q6Hp/s320/20210227_091442-1-1.jpg" width="320" /></a></div><p></p><p>Works OK for basic testing, maybe in the future will join a noise and dual tone generator.<br /></p><p></p><p>Have a nice day!<br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-45468288845121238342021-01-30T16:34:00.002+00:002021-09-12T16:54:18.929+01:00ADF4351 Signal Generator<p> Not much here, just a simple signal generator based on ADF4351 module from "fleebay". PS: there is an improvement over this code at this new <a href="https://speakyssb.blogspot.com/2021/09/adf4351-signal-generator-with-sweep.html">post</a>.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFhd0WuaYunFh61AZZy2V1vlVtaxlJczrlYQD1Dbe7tGLCL-MEDoolbP14C7P6GES3VEsDFSNgEFH0Hi69bunUA-kFXlxTu61WOLeRGYHLLEWbu3tF_LwpnSAh7MgpYY25vJBJ/s2048/20210130_112951-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1526" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFhd0WuaYunFh61AZZy2V1vlVtaxlJczrlYQD1Dbe7tGLCL-MEDoolbP14C7P6GES3VEsDFSNgEFH0Hi69bunUA-kFXlxTu61WOLeRGYHLLEWbu3tF_LwpnSAh7MgpYY25vJBJ/s320/20210130_112951-1.jpg" width="320" /></a></div><br /> I just needed to generate one single frequency that can go up or down in 100Khz steps via two push buttons. Added an optional LCD to display the main frequency and the third harmonic since I'm using it to verify some equipment on 10Ghz.<p></p><p>Test board: <br /></p><p></p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4a-aRWfbXgRTgCthqGHnVQD4NEbuBGBJstFkuciLVrrKvehgz66DI8RAT4UmI9C4CGsts40xwJMi4h4dacHoqRqld3eh9ZNW7VLoWVcrlFJRl_BFNCiHhDEC2uObmCLHUMHro/s2048/20210130_112838-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1615" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4a-aRWfbXgRTgCthqGHnVQD4NEbuBGBJstFkuciLVrrKvehgz66DI8RAT4UmI9C4CGsts40xwJMi4h4dacHoqRqld3eh9ZNW7VLoWVcrlFJRl_BFNCiHhDEC2uObmCLHUMHro/s320/20210130_112838-1.jpg" width="320" /></a><br /><br />On the frequency counter:<br /></p><p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAm5U5JpUanTV26l5eBnsU4vMClEURJetJVY7CChNp8W5QZWyA_-hcD_rC2pGl9pNPnbJnA2uGi0S8n3qVoMXkSytnmYd6QkxpvRPJ8meFLlq0XonBTsWsDoDxkC85nVZoZYSV/s2448/20201206_132907-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="842" data-original-width="2448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAm5U5JpUanTV26l5eBnsU4vMClEURJetJVY7CChNp8W5QZWyA_-hcD_rC2pGl9pNPnbJnA2uGi0S8n3qVoMXkSytnmYd6QkxpvRPJ8meFLlq0XonBTsWsDoDxkC85nVZoZYSV/s320/20201206_132907-1.jpg" width="320" /></a><br /><br />Schematic based on an Arduino Nano controler:<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkcIB-4bmWU_kEf0JhKca_auT83X4isJvR5XFirRaHkY04N0d2WVengcxC-Dsczqe8_vh13Tyt35F5a0qDvBFFQdINXwDJfeOn-j2r_R_vVOT6k__ed9WPOgxSPSFWfw0IPs_j/s2048/20210130_125907-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1720" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkcIB-4bmWU_kEf0JhKca_auT83X4isJvR5XFirRaHkY04N0d2WVengcxC-Dsczqe8_vh13Tyt35F5a0qDvBFFQdINXwDJfeOn-j2r_R_vVOT6k__ed9WPOgxSPSFWfw0IPs_j/s320/20210130_125907-1.jpg" width="320" /></a></div><p></p><p>Spectrum output on lower frequencies (414Mhz) and output level at "0" (add 20db attenuation at the spectrum input):<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZbnzZ2nrf71im6lbUYfrXndc5fycss_jAdUPG7oQef4kVDwSZjwj-9__0bPZ-2tH71iXgQdUQCTUXTvRe1yzgG4uCFMTElHJWy7iV6jgVtgdPKYYDv8UdPBEeygi_Q65BOCf/s800/adf4351-414Mhz.bmp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUZbnzZ2nrf71im6lbUYfrXndc5fycss_jAdUPG7oQef4kVDwSZjwj-9__0bPZ-2tH71iXgQdUQCTUXTvRe1yzgG4uCFMTElHJWy7iV6jgVtgdPKYYDv8UdPBEeygi_Q65BOCf/s320/adf4351-414Mhz.bmp" width="320" /></a></div>and the third harmonic:<br /><div style="margin-left: 160px; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIWCguC6b5ONRN0LoRZUpJHyxmv9DNLFsfdQBQgMsFUqCS87-gWXBuWb0uiywhWm84mIjHP0anqViUba8a6duBlGZzcqjG6DLe_wySb-5PuW68LoLBn97T5vRQh2YAq8wHj7EZ/s800/adf4351-414Mhz-2.bmp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIWCguC6b5ONRN0LoRZUpJHyxmv9DNLFsfdQBQgMsFUqCS87-gWXBuWb0uiywhWm84mIjHP0anqViUba8a6duBlGZzcqjG6DLe_wySb-5PuW68LoLBn97T5vRQh2YAq8wHj7EZ/s320/adf4351-414Mhz-2.bmp" width="320" /></a></div><p>Power at "3" (second harmonic now visible)<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ULO2qThPLSrbwwE-mWo5Ot4sV7aru2QucQEb24B1Ro-wtItXtWIoBdxpQVEZsa3yGZrKAxA4u6KgPKDo5r2hWGn-oydf9ynvnk4dcA8pNwfRQy_u86MyjTyrhm9bQUcRNctA/s800/adf4351-414Mhz--power-3-3.bmp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ULO2qThPLSrbwwE-mWo5Ot4sV7aru2QucQEb24B1Ro-wtItXtWIoBdxpQVEZsa3yGZrKAxA4u6KgPKDo5r2hWGn-oydf9ynvnk4dcA8pNwfRQy_u86MyjTyrhm9bQUcRNctA/s320/adf4351-414Mhz--power-3-3.bmp" width="320" /></a></div><br /> 3rd harmonic as seen on a 10Ghz adapter for a 1.5Ghz spectrum analyzer:<br />(not calibrated):<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxC4Stq3Aqk3K2aBBuXU1910Jwc46n_u8YLyl-cAPosqJh7xCOs1L0RyEBY5TIG39fW2tpfimT2vaumknxdb3mXmPJf615tISbdAdlhd2PctHIBYpG7ciQlip43LfCzl6chhSw/s800/adf4351-10ghz-after-filter.bmp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxC4Stq3Aqk3K2aBBuXU1910Jwc46n_u8YLyl-cAPosqJh7xCOs1L0RyEBY5TIG39fW2tpfimT2vaumknxdb3mXmPJf615tISbdAdlhd2PctHIBYpG7ciQlip43LfCzl6chhSw/s320/adf4351-10ghz-after-filter.bmp" width="320" /></a></div><p></p><p>Code:</p><p> /// code start<br />/*!<br /> ADF4351 signal generator<br /> <br /> CT2GQV 2020<br /> v1.3<br /><br /> Based on code from: ADF4351 example program https://github.com/dfannin/adf4351<br /><br /> VFO with 100Khz steps starting from a predifined frquency (UL frequencia) using 2 buttons for up and down.<br /> Display on 16x2 I2C LCD of the frequency set and the third harmonic value<br /> Also serial output of the main frequency set. <br />*/<br /><br />#include <Arduino.h><br />#include "adf4351.h"<br />#include <LiquidCrystal_I2C.h><br /><br />#define SWVERSION "1.3"<br />#define PIN_SS 9 ///< SPI slave select pin, default value<br />ADF4351 vfo(PIN_SS, SPI_MODE0, 1000000UL , MSBFIRST) ;<br /> <br />unsigned long frequencia = 3333320000UL ; // 3.333.334 (10 Ghz n=3)<br />// unsigned long frequencia = 2000000000UL ; // 2.000.000 (10 Ghz n=5)<br />// unsigned long frequencia = 414000000UL ; // 414.000 (10.368 Ghz n=25)<br />// for 442Mhz use the bellow and comment the above<br />// unsigned long frequencia = 442000000UL ; // 442Mhz or 1.326 Ghz , tird harmonic<br /><br />// I2C LCD virtual pinout<br />#define I2C_ADDR 0x27 // I2C Address for my LCD, found with I2C scanner<br />#define BACKLIGHT_PIN 3<br />#define En_pin 2<br />#define Rw_pin 1<br />#define Rs_pin 0<br />#define D4_pin 4<br />#define D5_pin 5<br />#define D6_pin 6<br />#define D7_pin 7<br />LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);<br /><br />// buttons for up/down in frequency, puleed up from 5v with a 10K resistor, analog pin will be short to ground for button press<br />int button1 = 1;<br />int button2 = 2;<br /><br /><br />void setup()<br />{<br /> Serial.begin(9600) ;<br /> Serial.print("adf4351 VFO CT2GQV "); Serial.println(SWVERSION) ;<br /><br /> pinMode(button1, INPUT);<br /> pinMode(button2, INPUT);<br /><br /> lcd.begin (16, 2, LCD_5x8DOTS); lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE); lcd.setBacklight(HIGH); // 20x4 lines display LCD<br /> lcd.home();<br /> lcd.setCursor(0, 0); lcd.print("Signal Generator ");<br /> lcd.setCursor(0, 1); lcd.print("Ver: "); lcd.print(SWVERSION);<br /><br /> Wire.begin() ;<br /> /*!<br /> setup the chip (for a 10 mhz ref freq)<br /> most of these are defaults<br /> */<br /> vfo.pwrlevel = 3 ; // measured at 3.3Ghz after 1m cable >> "0" = -8 dBm / "1" = -5.8dbm / "2" = -3.3dbm / "3" = -0.4dbm<br /> vfo.RD2refdouble = 0 ; ///< ref doubler off<br /> vfo.RD1Rdiv2 = 0 ; ///< ref divider off<br /> vfo.ClkDiv = 150 ;<br /> vfo.BandSelClock = 80 ;<br /> vfo.RCounter = 1 ; ///< R counter to 1 (no division)<br /> vfo.ChanStep = steps[2] ; ///< set to 10 kHz steps<br /><br /> /*!<br /> sets the reference frequency to 10 Mhz<br /> */<br /> if ( vfo.setrf(10000000UL) == 0 )<br /> Serial.println("REF.SET: 10 Mhz") ;<br /> else<br /> Serial.println("ERROR: reference freq set error") ;<br /> /*!<br /> initialize the chip<br /> */<br /> vfo.init() ;<br /><br /> /*!<br /> enable frequency output<br /> */<br /> vfo.enable() ;<br /><br /> delay(1000);<br /> lcd.clear();<br /><br /> if ( vfo.setf(frequencia) == 0 ) {<br /> Serial.print("VFO.SET:") ; Serial.println(vfo.cfreq) ;<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("F(3):"); lcd.print((frequencia/1000)*3);<br /> } else {<br /> Serial.println("ERROR: Set init Frequency") ;<br /> }<br /><br />vfo.ChanStep = steps[4] ; ///< change to 100 kHz<br />}<br /><br />void loop()<br />{<br /> int buttonState1 = analogRead(button1);<br /> int buttonState2 = analogRead(button2);<br /> // serial debug for the button for +/- frequency<br /> // Serial.print("B1,B2:"); Serial.print(buttonState1); Serial.print(","); Serial.println(buttonState2);<br /><br />// up frequency <br /> // button pin is puled down to ground...or close to it (100) as long as lower than 2049<br /> if (buttonState1 <= 100) {<br /> frequencia += vfo.ChanStep;<br /> if ( vfo.setf(frequencia) == 0 )<br /> {<br /> Serial.print ("VFO.SET: "); Serial.println(vfo.cfreq) ;<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("F(3):"); lcd.print((frequencia/1000)*3);<br /> }<br /> }<br />// end up frequency <br /><br />// down frequency <br /> if (buttonState2 <= 100) {<br /> frequencia -= vfo.ChanStep;<br /> if ( vfo.setf(frequencia) == 0 )<br /> {<br /> Serial.print ("VFO.SET: "); Serial.println(vfo.cfreq) ;<br /> lcd.setCursor(0, 0); lcd.print("F :"); lcd.print(frequencia/1000);<br /> lcd.setCursor(0, 1); lcd.print("F(3):"); lcd.print((frequencia/1000)*3);<br /> }<br /> }<br />// end down frequency <br /><br /> <br />// button software debounce<br /> delay(150);<br />}<br />/// code end<br /><br /></p><p>Some other signal generators based on similar modules and also the ADF4355:<br />http://f6kbf.free.fr/html/ADF4351%20and%20Arduino_Fr_Gb.htm<br />https://pa0rwe.nl/?page_id=1345 (for the ADF4355)<br /></p><p> </p><p>Have a nice day! <br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-90621475253579529592021-01-27T21:33:00.003+00:002021-01-27T21:33:40.389+00:00EIP-371 Source Locking Microwave Counter repair<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMHNdDFKWn0tCcq-zb0ZhrELpvJj0GeRjVDJ1JZQs_lvax7DHLXaU0p20JQAg-8m6K4tVDDncODEuNQiuFS1MEKnw4LTbUlesrzIZglbqPX-uFOGLSx7UDMVNUAVmgA8eJhDgn/s2448/20190609_193337-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="882" data-original-width="2448" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMHNdDFKWn0tCcq-zb0ZhrELpvJj0GeRjVDJ1JZQs_lvax7DHLXaU0p20JQAg-8m6K4tVDDncODEuNQiuFS1MEKnw4LTbUlesrzIZglbqPX-uFOGLSx7UDMVNUAVmgA8eJhDgn/s320/20190609_193337-1.jpg" width="320" /></a></div><br /><p> I've done a previous repair on this device because I got it without being working on the 18Ghz range. I suspect this will not be the last one given it's age.<br /></p><p>Anyhow, one of this days I turned it on to check the output frequency of a FVC99 module and it was displaying all entrance selector LED's on (should be one at a time) and no change on the input by pressing the band selector. Also there was no activity on the display for the source locking.</p><p>I suspect the usual bad contacts (it's slot based construction) or power supply, more to the power supply side since the equipment hadn't been moved (it's a bit sensitive on moving/vibrations and that had been the cause of the first repair).</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVj2lorJDLdzLCLv69L7QDqfnI9Uin4FkvT3G_2jT5_7ctauYld4QN6jR0alXvr2zuPaP3w84VmxFsb1Ymy54bFz31CQTpTAApJqzqaN11wphZdhSlOXXfsabgEucBbLwl8nc/s2048/20210109_111834.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVj2lorJDLdzLCLv69L7QDqfnI9Uin4FkvT3G_2jT5_7ctauYld4QN6jR0alXvr2zuPaP3w84VmxFsb1Ymy54bFz31CQTpTAApJqzqaN11wphZdhSlOXXfsabgEucBbLwl8nc/s320/20210109_111834.jpg" /></a></div><br /> First thing I did was removing and inserting all the boards one by one trying to find the one responsible for the selector LED's, I have the manual but didn't feel like to read it. In the end, had no luck. Then I realized there's another board that does not slide, instead is attached to the side panel. So I moved that one to the side and checked all the connections. <p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWtrVlWm-Zx6HZeetf95XZEZqfgvafg9_c8IRxli-8ISzpzwXmsPWPgqjE42xYZKbjTxJxyL07QRroao4Q1lVi2QJ7HYagYpGY_p1An-ljlTB_o60s0YIEvkK2yPFyT8lPy0dk/s2048/20210109_111839.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWtrVlWm-Zx6HZeetf95XZEZqfgvafg9_c8IRxli-8ISzpzwXmsPWPgqjE42xYZKbjTxJxyL07QRroao4Q1lVi2QJ7HYagYpGY_p1An-ljlTB_o60s0YIEvkK2yPFyT8lPy0dk/s320/20210109_111839.jpg" /></a></div><br /> Image, now, after connecting back, started working, I can now select the input and have the digits lit:<br /><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9k_-P3AGZ7PJlhW-aF_jIhBILLEChX-YSrqURb1K0B2eFLrsmGGuumzjbLlQKwqzKc_VmyNALBY0Mps_tKShVaU949di4Y2NGL-2CxqhCyot7mLDXaXFiK2JZI_JlwI4ALLe3/s2048/20210109_111851.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9k_-P3AGZ7PJlhW-aF_jIhBILLEChX-YSrqURb1K0B2eFLrsmGGuumzjbLlQKwqzKc_VmyNALBY0Mps_tKShVaU949di4Y2NGL-2CxqhCyot7mLDXaXFiK2JZI_JlwI4ALLe3/s320/20210109_111851.jpg" /></a></div><p>I can measure again but I'm preparing a home made counter in case this one fails again in the future.</p><p><br /></p><p>Have a nice day!<br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-81678243493849885022021-01-03T19:31:00.004+00:002021-01-03T19:31:45.426+00:00Return loss bridge<p> Small project made last year (4 days ago) just for fun and to try out the SWR feature of the spectrum analyzer.</p><p>Design is based on this <a href="https://www.qsl.net/kl7jef/Build%20a%20Return%20Loss%20Bridge.pdf">one</a> to the exception of the ferrite material, I used 43 instead of 77.</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYmeBeO3CBz51GNNjN9MD7A7s2eAJ-4_YXo3sGg4DGkhIieTym58ZSsi2v_SXqvv-1JdKEqtxdcvo8osEjeUKERnbQYdzGCpoIWWGpHvc6jcbJs8RA8MR-L8bzsFbXqYOafOyo/s274/schematic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="233" data-original-width="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYmeBeO3CBz51GNNjN9MD7A7s2eAJ-4_YXo3sGg4DGkhIieTym58ZSsi2v_SXqvv-1JdKEqtxdcvo8osEjeUKERnbQYdzGCpoIWWGpHvc6jcbJs8RA8MR-L8bzsFbXqYOafOyo/s0/schematic.png" /></a></div>RF source will be the tracking generator, load will be device under test and detector the spectrum analyzer RF input. <br /><br />For the 50 Ohm resistors (R1,R2,R3) I used two leaded 100 Ohm in parallel, SMD and shorter leads between components would help more on the high frequency side of the spectrum.<br /><p></p><p>Build:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheQ2vd7HRngBgJF-2iwMUnBp6t1-chOEUq-oThE4utiyjF-imOgtw-m2z1p6uur7PLV5IpL2MNmgVuEn1ZgEPHcIJKtHdiaCo7e9EHzd9LAVEmdyVI9OFax_WY4VuZppUf6Uz_/s2048/20210101_175315-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1991" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheQ2vd7HRngBgJF-2iwMUnBp6t1-chOEUq-oThE4utiyjF-imOgtw-m2z1p6uur7PLV5IpL2MNmgVuEn1ZgEPHcIJKtHdiaCo7e9EHzd9LAVEmdyVI9OFax_WY4VuZppUf6Uz_/s320/20210101_175315-1.jpg" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3TkNDNDIKuEJrGmvmKmL7jIhSFSsjsNYBCyn05xHob7Bo0jxGQjybrK8jOYLYY5NACCi7PaN53WiDLXZxNs6R2jksPb4ozT2eudOx_Mks0L8RmubWuCQEm88dR5hzEqPkbJbE/s2048/20210101_175226-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1787" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3TkNDNDIKuEJrGmvmKmL7jIhSFSsjsNYBCyn05xHob7Bo0jxGQjybrK8jOYLYY5NACCi7PaN53WiDLXZxNs6R2jksPb4ozT2eudOx_Mks0L8RmubWuCQEm88dR5hzEqPkbJbE/s320/20210101_175226-1.jpg" width="320" /></a></div><br /> Some data taken:<p></p><p>With no load connected in one direction and then the opposite one (cable swap), if all is perfectly balanced it should show equal lines, in this case....almost there, in any case the return loss line is all but flat...<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZQp9Eb2XB6qUD7tazLSW8UKIZXmIcjJlnf6oIcB-BsjVt5GA7UFVsfBzPeXo4iVGr2B6rdGpS89uBjOPW8XX1Jb0i_3M2Ng6Mp2QztiaGIGrNkMXGeh-2au0qQszxwFq4PYD3/s800/dir2.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZQp9Eb2XB6qUD7tazLSW8UKIZXmIcjJlnf6oIcB-BsjVt5GA7UFVsfBzPeXo4iVGr2B6rdGpS89uBjOPW8XX1Jb0i_3M2Ng6Mp2QztiaGIGrNkMXGeh-2au0qQszxwFq4PYD3/s320/dir2.bmp" width="320" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYfeZhJcaegLib6VkTnsGLDJ4L_yFI91VgW59_PQHAzvAbf-3y5k8Oa01C_XNrzhSc_GM1C40UMEdLDDAxKfwSpWMsWJR4jhPCuoB2uT4KnSD5N03wSYm7J6xdS1_F6m11L2CN/s800/dir1.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYfeZhJcaegLib6VkTnsGLDJ4L_yFI91VgW59_PQHAzvAbf-3y5k8Oa01C_XNrzhSc_GM1C40UMEdLDDAxKfwSpWMsWJR4jhPCuoB2uT4KnSD5N03wSYm7J6xdS1_F6m11L2CN/s320/dir1.bmp" width="320" /></a></div><p>Now measuring a 50 Ohm load, ideally should give the lowest possible result and a flat line for all the frequency range:</p><p>At 1.6Mhz: 1.22, so not very usable at the low range, probably due to lack of inductance on the core.<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVsf-DsvV8AnKjkR0elOHrQrR6Lgb-pEVFw-yUtssLEuiDvwV2RwF36LkTELVOWjPPkxQoqi_gZvzMKFhcT4U9LDFvbwKFrgsLqxAOu-b9ZBR6mqWH7IbqdR6cDYXwdytugbvP/s800/0-500-after-call-open-measuring-vswr-wiht50load5.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVsf-DsvV8AnKjkR0elOHrQrR6Lgb-pEVFw-yUtssLEuiDvwV2RwF36LkTELVOWjPPkxQoqi_gZvzMKFhcT4U9LDFvbwKFrgsLqxAOu-b9ZBR6mqWH7IbqdR6cDYXwdytugbvP/s320/0-500-after-call-open-measuring-vswr-wiht50load5.bmp" width="320" /></a></div><p>At 10.8 Mhz, 1.05, much more inline with and expected result (very low VSWR).<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHCCrhshF3IrSQKwvE7b72LH6HS0e0Uth_CsTR7oMmoRRE0nh-fBxt6L7Ytwn1VEaaNDXjgB8SEHGCibcRSu8xf-WH39pRxlWCN4VNWPR45pcpRxOxLET8m4CERGM3JwBjf9Mf/s800/0-500-after-call-open-measuring-vswr-wiht50load4.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHCCrhshF3IrSQKwvE7b72LH6HS0e0Uth_CsTR7oMmoRRE0nh-fBxt6L7Ytwn1VEaaNDXjgB8SEHGCibcRSu8xf-WH39pRxlWCN4VNWPR45pcpRxOxLET8m4CERGM3JwBjf9Mf/s320/0-500-after-call-open-measuring-vswr-wiht50load4.bmp" width="320" /></a></div><br /><p>At 152 Mhz looks like it starts to break the measurement again.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqy9PvfDAPCU7vniCUMAbwwukcQ1m4BMyksi1xqx3syvhSkiNJqIQsNT0xO9U0hElv64lq_W29XV2Uk-aQJHcXrll3v5ZxJK1I7f7KrhuoYVx8kdMDDVkeVVU7brz9EhZNSVox/s800/0-500-after-call-open-measuring-vswr-wiht50load6.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqy9PvfDAPCU7vniCUMAbwwukcQ1m4BMyksi1xqx3syvhSkiNJqIQsNT0xO9U0hElv64lq_W29XV2Uk-aQJHcXrll3v5ZxJK1I7f7KrhuoYVx8kdMDDVkeVVU7brz9EhZNSVox/s320/0-500-after-call-open-measuring-vswr-wiht50load6.bmp" width="320" /></a></div><br /><p>And forget it at 433 Mhz since it's too off.<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZT4DwDLP-ENPTonO1BZooTF0U0ZTx2_dOBm7ULJi57BQDMQs9suFMToncS7rcFAcxDHaHHtiINF_QrQijiwNSZdI_9OvBztS0XHbTJVcDl5ZFhOrf3LMmx-35SaVCCzqbFh-p/s800/0-500-after-call-open-measuring-vswr-wiht50load2.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZT4DwDLP-ENPTonO1BZooTF0U0ZTx2_dOBm7ULJi57BQDMQs9suFMToncS7rcFAcxDHaHHtiINF_QrQijiwNSZdI_9OvBztS0XHbTJVcDl5ZFhOrf3LMmx-35SaVCCzqbFh-p/s320/0-500-after-call-open-measuring-vswr-wiht50load2.bmp" width="320" /></a></div><br /><p>The load used was a Narda 370 BNM, 5W and good to 18Ghz.</p><p>Basically it's very usable on the HF range or just as general curve tracer for antenna VSWR at VHF frequency ranges.</p><p>You can also take the same info without the SWR measurement option on the Spectrum Analyzer, just use the tracking generator, normalize in the open position (no device under testing connected) and then look for the SWR from the return loss measured, you can use this <a href="https://www.minicircuits.com/app/DG03-111.pdf">table</a> or calculate it yourself.<br /></p><p></p><p></p><p> </p><p>Have a great Year!<br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-66633745182511098472020-12-29T14:28:00.001+00:002020-12-30T21:54:13.456+00:00LXI - Rigol DSA815 Spectrum Analyzer - remote control<p> Following on the series for "<a href="http://speakyssb.blogspot.com/search/label/GPIB">GPIB</a>" control of instruments, this post is about LXI control, in particular the Rigol DSA815-TG spectrum analyzer. It is more Linux oriented but commands can be ported to other systems.<br />Did this out of need since I could not find a single explanatory source of information for all the commands listed besides the programing guide and as all programing guides, they never have a simple; "how to to this"<br />Most of the command are using the "<a href="https://lxi-tools.github.io/">lxi</a>" tool v1.21. You can use also the gui version "lxi-gui"<br /></p><p>LXI is nothing more than LAN extensions for instrumentation control. Same end result as GPIB or Serial port control, that is, you have a system that controls and queries the instrument, only the medium is different on this case, it uses a more modern approach, the Ethernet/LAN.</p><p>Recently acquired a Rigol DSA815-TG 1.5Ghz spectrum analyzer and although at the moment I only use computer control for taking some screenshots would be interesting to know how to take more advantage of instrument remote control.</p><p>First thing you will need is connect your instrument via the LAN port to your local network, in my case I just connect it back to back to my laptop. Then you will need to set the IP via instrument panel, in my case I used a static IP in the same range as the Ethernet port of the laptop.</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimWOrKeqSshDzAjs2bhMcLr7wjPOmFyw8UyFD6PjZmDX6EQN8budj_NpdYraqOFGgUWA2M1scPt_DCaYYReu9gExS1MecT4lrVRsPS0AQ6r4hSjsTO90_qBntC9Mqd-QaLxz5U/s800/ip-config-rigol.bmp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimWOrKeqSshDzAjs2bhMcLr7wjPOmFyw8UyFD6PjZmDX6EQN8budj_NpdYraqOFGgUWA2M1scPt_DCaYYReu9gExS1MecT4lrVRsPS0AQ6r4hSjsTO90_qBntC9Mqd-QaLxz5U/s320/ip-config-rigol.bmp" width="320" /></a></div>Laptop was configured with IP 192.168.1.65 / netmask 255.255.255.0 (/24 for the hard core one)<br /><p></p><p>In case you don't know your instrument IP, case configured by DHCP for example, you can use the "lxi" tool <b>discover</b> command to "automatically" discover the instruments available on you local are network.<br /></p><p>==<br /># lxi discover<br />Searching for LXI devices - please wait...<br /> <br />Broadcasting on interface lo
<br />Broadcasting on interface enp9s0
<br /> Found "Rigol Technologies,DSA815,DSA8A22XXXXXX,00.01.19.00.02" on address 192.168.1.81
<br />Broadcasting on interface wlp12s0
<br /> <br />Found 1 device <br />==<br /></p><p></p><p>If you are more inclined to review some additional <b>protocol</b> specifications,you can find it <a href="https://www.lxistandard.org/members/Editorial%20Documents/LXI%20Example%20and%20Reference%20Material%20July%2010,%202017.pdf">here</a>. <br />A simple wireshark capture allows to have an idea of the inner workings of the discovery process.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkmZ5G-mXo_3vSSLvgUgURYhtUUCXNZCQcmy6fHB2uSBWmzoKgRERI7NXxgJlU5v6TJHYGjcgGeafXvfuYtlwGHtd8ta5y9iemAJa5xTpFRWusem6DnFgmXGUj00RyGTwwHCr-/s1128/discover-process-wire.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="456" data-original-width="1128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkmZ5G-mXo_3vSSLvgUgURYhtUUCXNZCQcmy6fHB2uSBWmzoKgRERI7NXxgJlU5v6TJHYGjcgGeafXvfuYtlwGHtd8ta5y9iemAJa5xTpFRWusem6DnFgmXGUj00RyGTwwHCr-/s320/discover-process-wire.png" width="320" /></a></div><br /> <p></p><p>At this stage you can <b>query</b> the instrument with the classic "*IDN?" command:<br /> </p><p>==<br /># lxi scpi --address 192.168.1.81 "*IDN?"
<br />A: Rigol Technologies,DSA815,DSA8A22XXXXXX,00.01.19.00.02<br />==<br />Note: I replaced part of the instrument identifier string with X's.<br /></p><p> </p><p>You can also use a normal "telnet" to port 5555 and make de same query:<br />==<br /># telnet 192.168.1.81 5555<br />Trying 192.168.1.81...<br />Connected to 192.168.1.81.<br />Escape character is '^]'.<br />*IDN?<br />Rigol Technologies,DSA815,DSA8A22XXXXX,00.01.19.00.02<br />==<br /></p><p></p><p>Now let's take some data from the instrument, a <b>screenshot</b> for a start, using the lxi tool screenshot option:</p><p>==<br /> # lxi screenshot --address 192.168.1.81 trace.bmp<br />== <br /><br />Result is is "trace.bmp file saved on the current working directory:<br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkH4ng_KJVZYo8DIdiXb9HDdqq40oqMittSzVwQ6XW8UHiNIAgoRXEh0Iy7f2EJ27S8zwllEYzTwr2zaqKjWv0mBaWstVqV3wDBaEOENVqgmsLy_J2IYJr8Q7TzE70IkUln9GT/s800/trace.bmp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkH4ng_KJVZYo8DIdiXb9HDdqq40oqMittSzVwQ6XW8UHiNIAgoRXEh0Iy7f2EJ27S8zwllEYzTwr2zaqKjWv0mBaWstVqV3wDBaEOENVqgmsLy_J2IYJr8Q7TzE70IkUln9GT/s320/trace.bmp" width="320" /></a></div><br /><p>The screenshot will literary take a screenshot of what's visible on the screen be it a trace or a configuration screen.<br /></p><p>Even more complicated screenshot for the command line die hard's:<br />==<br /># echo ":PRIV:SNAP? BMP" | nc -w 5 192.168.1.81 5555 | dd bs=1 skip=11 of=screen.bmp<br />==<br /></p><p>Continuing with some other commands...</p><p>Display <b>brightness</b> query:</p><p>==<br /># lxi scpi --address 192.168.1.81 "DISP:BRIG?"<br />==<br />Note: answer with be a numeric value of the the setting, in my case is "1"<br /><br />If you need to change to "2" the screen <b>brightness</b>:<br />==<br /># lxi scpi --address 192.168.1.81 "DISPlay:BRIGhtness 2"<br />==</p><p><br /></p><p>Turning the <b>tracking generator</b>/TG <b>on</b>:<br /><br />==<br /># lxi scpi --address 192.168.1.81 "OUTP:STATE 1"<br />==<br /></p><p></p><p>Querying the <b>tracking generator</b>/TG status:<br />==<br /># lxi scpi --address 192.168.1.81 "OUTP:STATE?"<br />==<br />Output will be 1 or 0 if ON or OFF.<br /></p><p><br /></p><p>Setting and querying the <b>start frequency</b>:</p><p>==<br /># lxi scpi --address 192.168.1.81 "FREQ:START 124Mhz"<br />==<br />Query:<br />==<br /># lxi scpi --address 192.168.1.81 "FREQ:START?"
<br />==<br />Note: it will answer the previous set frequency: "124000000"<br /><br />For <b>stop frequency</b> should be "FREQuency:STOP", bellow for a 450Mhz stop frequency<br />==<br /># lxi scpi --address 192.168.1.81 "FREQ:STOP 450Mhz"<br />==<br />The result will be like this on the spectrum analyzer:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg8-01S_yWRtsIi80zN_CUUQAGtJxWUZz4mtD3ftklwgL8R7Vqn5XLlFBDycOfDkWMquW1dCQ1TNbQdRuuEvEHGjnstzpm8PJhG1cCzQqt_d8IEQw1rh3kl7-ixCSLSmBteKVN/s800/start-stop-freq.bmp" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg8-01S_yWRtsIi80zN_CUUQAGtJxWUZz4mtD3ftklwgL8R7Vqn5XLlFBDycOfDkWMquW1dCQ1TNbQdRuuEvEHGjnstzpm8PJhG1cCzQqt_d8IEQw1rh3kl7-ixCSLSmBteKVN/s320/start-stop-freq.bmp" width="320" /></a></div><br /><p> Now we need to take/download <b>traces</b>: this for me is the most interesting part since we can take the traces and then compute over the results, for instance in SWR (when trial license expires ) or 3db bandwidth for example.</p><p><br />Download data of <b>trace 1</b><br />==<br /># lxi scpi --address 192.168.1.81 ":TRACe:DATA? TRACe1"<br />==<br />Output, (shortened version) will be similar to this:<br />#9000009014 -2.017071e+01, -5.862679e+01, -6.025334e+01, -6.129734e+01, -6.015621e+01, -6.299181e+01, -5.941000e+01, -6.174416e+01, -5.768233e+01, -6.222626e+01, -6.008302e+01, -6.109689e+01, -6.196978e+01, -6.302518e+01, -6.228621e+01, -6.230527e+01, -6.312371e+01, -6.304392e+01, -6.187805e+01, -6.133699e+01, -6.096120e+01, -5.720531e+01, -5.873640e+01, -6.165216e+01, -5.796873e+01, -5.905419e+01, -5.763849e+01, -6.094759e+01, -6.073965e+01,..<br /><br />You can "pipe" the command to file this way:<br />==<br /># lxi scpi --address 192.168.1.81 ":TRACe:DATA? TRACe1" > trace1.csv<br />==<br />Open "trace1.csv" on a spreadsheet software and plot a graph:<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg53sI1H-vYFOgxeE6duEjpCI-VxSCmRCFNiRF-_Gpatv9Ii0IpbB9WKMTGb9-bKs1C1mmcny-UVlJ2y45cINTjFvoTOPgJx8FxT_M3e7Wlj0ekyta_Wbc3RYufItVjALqRi6Lc/s1318/trace-office.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="801" data-original-width="1318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg53sI1H-vYFOgxeE6duEjpCI-VxSCmRCFNiRF-_Gpatv9Ii0IpbB9WKMTGb9-bKs1C1mmcny-UVlJ2y45cINTjFvoTOPgJx8FxT_M3e7Wlj0ekyta_Wbc3RYufItVjALqRi6Lc/s320/trace-office.png" width="320" /></a><br /><br />To download <b>trace 3</b> for example:<br />==<br /># lxi scpi --address 192.168.1.81 ":TRACe:DATA? TRACe3"<br />==<br />If nothing is set for that trace the output will look like this:<br />#9000009014 -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02, -4.000000e+02,...(continues)<br /></p><p></p><p><br />As last command on this series, let's query the instrument <b>language</b>:<br />==<br /> # lxi scpi --address 192.168.1.81 "SYST:LANG?"<br />==<br />Output is on my case: "ENGl"<br /></p><p>==========<br /></p><p>- In the future will try to add more commands in this document and write some scripts for automation, maybe even a GUI program. </p><p>- If you copy past the command in this post, don't forget to set your instrument IP instead of the one I used (192.168.1.81)<br /><br />- Rigol DSA800 programing guide can be downloaded at: https://www.batronix.com/files/Rigol/Spektrum-Analysatoren/DSA800/DSA800_ProgrammingGuide_EN.pdf<br /></p><p>Hope this helps someone,<br /></p><p>Have a nice day! <br /></p><p> </p><p> </p><p> </p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-84354735707774334802020-12-26T16:48:00.001+00:002020-12-26T16:48:46.644+00:00VHF Low Pass filter for DRA818V module<p> It is best to use the DRA818V VHF voice transceiver module with a low pass filter.</p><p>Since I'm building a VHF/UHF transceiver using the 818V and 818U modules, the VHF low pass filter was missing from the build.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNPG53OfyPzFp4MtcqXLyXwi3oYOL44Nfu9y839r1T4lWfXqhLjfHP-2Z2iw9Ft13133i2LPz-xPUz9SQU-dKm1EzVa2VLQ_biXbCWYxwO7Nrhgvrvd7ZVAdiwamIQAflUQv2F/s1491/20201226_142752-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1088" data-original-width="1491" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNPG53OfyPzFp4MtcqXLyXwi3oYOL44Nfu9y839r1T4lWfXqhLjfHP-2Z2iw9Ft13133i2LPz-xPUz9SQU-dKm1EzVa2VLQ_biXbCWYxwO7Nrhgvrvd7ZVAdiwamIQAflUQv2F/s320/20201226_142752-1.jpg" width="320" /></a></div><br /><p></p><p>This design was based from the one <a href="http://599.cz/view.php?cisloclanku=2018082201">here</a> and only some small values changes made , I placed adjustable cap's on the center elements (the 56pF), so used 10-60pF trimmer cap and used 32pF on the ends (10+22pF parallel). </p><p>Schematic:<br /> <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmEIHx7GQmKHOYTjigXhZyFczH9UEMzMffTBrITa7tocoGybIiZQ9ze97215FrtDwA6dxcj0z4OsNoBYngWhRiuwL_x4_P0mqwYvejq0OkMbS3EZYuwBf9ZX6IpJ-gfZwO7dM0/s622/schematic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="177" data-original-width="622" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmEIHx7GQmKHOYTjigXhZyFczH9UEMzMffTBrITa7tocoGybIiZQ9ze97215FrtDwA6dxcj0z4OsNoBYngWhRiuwL_x4_P0mqwYvejq0OkMbS3EZYuwBf9ZX6IpJ-gfZwO7dM0/s320/schematic.png" width="320" /></a></div><br /><p> After build did some measurement on the spectrum analyzer:</p><p>Final iteration of the trimmers:</p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5n0cTKD_5m-FH6fVglIcx62k7veC7LoCIGY5kY2DoAJhDi9-cbXX1Pwlp5A0vsgLdFvx21P2yCcN13WE2HE_c4e9c_dV27IsiCuj6OTHHEIruGUPXnDI6X-PxWByj5eNWFqGu/s800/lowpass-5.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5n0cTKD_5m-FH6fVglIcx62k7veC7LoCIGY5kY2DoAJhDi9-cbXX1Pwlp5A0vsgLdFvx21P2yCcN13WE2HE_c4e9c_dV27IsiCuj6OTHHEIruGUPXnDI6X-PxWByj5eNWFqGu/s320/lowpass-5.bmp" width="320" /></a></div><br /> Attenuation at 200Mhz:<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2x_SlyEblkBNPbzg2IOqfV3cNTJ4jHUnbb2elLbHRj_yVyjf4vpqU9xk2VMQegY7fPodaE04JYX2I19-dofwbk_y8GgqfQ-_41IEpucfdSCIrSAz083WKdpl6NTTA918xZpCr/s800/lowpass-4.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2x_SlyEblkBNPbzg2IOqfV3cNTJ4jHUnbb2elLbHRj_yVyjf4vpqU9xk2VMQegY7fPodaE04JYX2I19-dofwbk_y8GgqfQ-_41IEpucfdSCIrSAz083WKdpl6NTTA918xZpCr/s320/lowpass-4.bmp" width="320" /></a></div><br /><p>Filter shape from 100 to 300Mhz without normalization:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijfQDyVK0HKnxQ3BqBc7b-6YZ0lRuIXMmxl94Q6JMNmj7KlvAZQ3KGnAE4zpKbenHcdbDWqZIJQGotG6VAaBZaOXzJlihTZbGx8LBDeSDQ87Z3P4ObyaaBcJzxbNGlNiLU8tM-/s800/lowpass-1.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="480" data-original-width="800" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEijfQDyVK0HKnxQ3BqBc7b-6YZ0lRuIXMmxl94Q6JMNmj7KlvAZQ3KGnAE4zpKbenHcdbDWqZIJQGotG6VAaBZaOXzJlihTZbGx8LBDeSDQ87Z3P4ObyaaBcJzxbNGlNiLU8tM-/s320/lowpass-1.bmp" width="320" /></a></div><br /><p>...now I need to finish the remaining of the transceiver..<br /></p><p> </p><p>Have a great day! <br /></p><p><br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-78957127793220235482020-10-25T12:22:00.002+00:002020-10-25T12:23:29.301+00:00Wavetek 3001 signal generator repair - II<p> Following the first repair of the <a href="https://speakyssb.blogspot.com/2020/08/wavetek-3001-signal-generator-repair.html">Wavetek 3001</a>, I knew that there was another issue with the 400Hz modulation oscillator, it was doing some "FM" oscillations so in practice I could only use the 1Khz tone.<br /><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkVNXIT5M_iDVmWhvVghCb7-ekzVNBssay5iR5V26R3AHUkGc5t2IosRkjpVrjdOk-m_iSLogsCtDzh5UG21n8Ol6eylmdts7huhC8EAIyt863iEWjfcPZCgz5kFqw8cxgJ97/s507/Wavetek-3001.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="388" data-original-width="507" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPkVNXIT5M_iDVmWhvVghCb7-ekzVNBssay5iR5V26R3AHUkGc5t2IosRkjpVrjdOk-m_iSLogsCtDzh5UG21n8Ol6eylmdts7huhC8EAIyt863iEWjfcPZCgz5kFqw8cxgJ97/s320/Wavetek-3001.png" width="320" /></a></div><br /><p>Troubleshooting and comparing with the 1Khz oscillator, it was visible the waveform at C6/CR2 junction oscillating/FM'ing a little. Interesting enough by probing with the scope at the drain of Q2 it disappeared. I tried first to swap C6 to no effect, then swapped CR2 and it stopped but trying with the diode in and inverted polarization it would continue the same so it was either wrong assembled at the factory or it's for the moment just masking any other situation, probably Q2.<br />Before the previous testing I replace IC2 with IC1 (for the 1Khz) to no good effect so decided the issues was not the opamp.<br /><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdLnluWwZOnIKKe5cCXA5YohTFgXOpo0VcEh2e_sHLsY0yQP0z3TWjYTowgSsuN1i8SmVIS5PMc8w7S0xjs-Fn-olcyC2gPLKT2rOnsKoJaku-lsIS42Wmh4YrKfjP2g9pPcjC/s473/Screenshot+at+2020-10-24+19-58-59.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="381" data-original-width="473" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdLnluWwZOnIKKe5cCXA5YohTFgXOpo0VcEh2e_sHLsY0yQP0z3TWjYTowgSsuN1i8SmVIS5PMc8w7S0xjs-Fn-olcyC2gPLKT2rOnsKoJaku-lsIS42Wmh4YrKfjP2g9pPcjC/s320/Screenshot+at+2020-10-24+19-58-59.png" width="320" /></a></div><p>I left like that, with the diode replaced (used a 1n4148 for the
moment, didn't even checked the exact spec in the manual) <br /><br />After demodulation on an envelop detector it's now fine:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwzLXGgOwMqsdEWkcvHorY0Sw9Z5tSOkXr_sRxf1Xi23bWlHN6Xy-ZTgHjBAdhuD63IwpsKR7etMCOE1OnMTc1cGkVDLXHis7I68LOus10f7AeoX3q0ZPNrn2TXHM8lY-S7XOy/s2048/20201024_142637.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwzLXGgOwMqsdEWkcvHorY0Sw9Z5tSOkXr_sRxf1Xi23bWlHN6Xy-ZTgHjBAdhuD63IwpsKR7etMCOE1OnMTc1cGkVDLXHis7I68LOus10f7AeoX3q0ZPNrn2TXHM8lY-S7XOy/s320/20201024_142637.jpg" /></a></div><br />..envelope detector circuit and input signal (-25dBm) without the 56 ohm input load resistor connected on the circuit:<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPj_nR68Kk0IM-C3WRY6xnJ_tm42AgwEVievJWOxmnhCmKM6kH4gZ78Z4AkJqHLTxjvihQyMkRFYkcLoRMiOY_mA0G_CryZ375uRpJoyBzJZy44rvQUVgcKrxDrum67m43rQy/s2048/20201024_164936.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqPj_nR68Kk0IM-C3WRY6xnJ_tm42AgwEVievJWOxmnhCmKM6kH4gZ78Z4AkJqHLTxjvihQyMkRFYkcLoRMiOY_mA0G_CryZ375uRpJoyBzJZy44rvQUVgcKrxDrum67m43rQy/s320/20201024_164936.jpg" /><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHWVy3804X2McENsn-W-Z9ve_n6u1ypNjpKsOT3B_ucfoRF2rQnbX0trqfNoA-1SczwgR51GCwghPD6tcn47oJ6CSHghjGMSmhyHD-LrpDCIR2Cqp4H57SXlQlUnTa5YHuAi_-/s320/20201024_124519.jpg" /></a><br />..I might start an AM receiver from here...<br /><br /><p></p><p>Since it's a bit of a pain to take and access the modulator/modulation board I opted to solder the diode from the pcb track side and leave it for the moment, also left the original diode in place with one leg open:<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPVVpvsvFLL9CP3SxjhPcpEAXlX8gTd1l1UT00g3SVlec4omidnN3TCrChJLTn-RJzIf7xIEB44rCaiYE1WyIFbKNwUXudqCsCtH8AB-_T349EPRUEEhnUtTeqETUBW3TxT5fS/s2048/20201024_163457.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPVVpvsvFLL9CP3SxjhPcpEAXlX8gTd1l1UT00g3SVlec4omidnN3TCrChJLTn-RJzIf7xIEB44rCaiYE1WyIFbKNwUXudqCsCtH8AB-_T349EPRUEEhnUtTeqETUBW3TxT5fS/s320/20201024_163457.jpg" /></a></div><br /><p></p><p>Since some times the unleveled light still comes on I suspect further recapping at the internal modules might be needed in the future.<br /><br />Have a great day!<br /></p><p></p><p><br /><br /></p><br />Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-81482322350059886032020-10-18T17:38:00.000+01:002020-10-18T17:38:03.275+01:00Ferranti 5820-99-795-7922 Noise Generator Coupler<div><p> If anyone know the exact specification for this device I appreciate some comments.<br /></p><p></p><p>Got this from the usual flee bay expecting to have a cheap noise source capable of 10Ghz since they are normally a bit on the expensive side.</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtOPuI0Z9aSjy3FZ5BGoceC7y68k_xCy6QiGMQlET7K_sQ1C51Ywdp0bFjXMUkO4RwmlbqaVi06E5EY9ECzostBDDlFn3-XlUGDJEh9X1Ci2Mt_vpg4RHk0r0p8dwkIclZuzNG/s2048/20200701_194539-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtOPuI0Z9aSjy3FZ5BGoceC7y68k_xCy6QiGMQlET7K_sQ1C51Ywdp0bFjXMUkO4RwmlbqaVi06E5EY9ECzostBDDlFn3-XlUGDJEh9X1Ci2Mt_vpg4RHk0r0p8dwkIclZuzNG/s320/20200701_194539-1.jpg" /></a></div><br /><br /><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiME0r1T15H5hBlsge1Co84D7ZZHKe0NBqa67vwt46Iks6AMZWB7AL6fqLd83ccIHEdltmwHcxAhsG1y2kJkNcuSit8fmf1Ob5rnGKQR7qSimA5B7A-MkTenFqMV0Tr4r5HY0K/s2239/20200701_194554-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1624" data-original-width="2239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiME0r1T15H5hBlsge1Co84D7ZZHKe0NBqa67vwt46Iks6AMZWB7AL6fqLd83ccIHEdltmwHcxAhsG1y2kJkNcuSit8fmf1Ob5rnGKQR7qSimA5B7A-MkTenFqMV0Tr4r5HY0K/s320/20200701_194554-1.jpg" width="320" /></a></div><p><br />Separating the two parts:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihQU2FLe7h_nD7uQ9iEcsSm9tVPHVx4YFCQ-Mg7ydj6rE7B8yptA220zx_FlrlQXViSSKomqC_Zvn0TBcMVaG-ZEfacFP7Xag_TZOkV7phY4p-D9X5Nu8v2jwx3o44soY8gRAO/s2048/20200702_004820.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihQU2FLe7h_nD7uQ9iEcsSm9tVPHVx4YFCQ-Mg7ydj6rE7B8yptA220zx_FlrlQXViSSKomqC_Zvn0TBcMVaG-ZEfacFP7Xag_TZOkV7phY4p-D9X5Nu8v2jwx3o44soY8gRAO/s320/20200702_004820.jpg" /></a></div><br /><p><br />This is the power supply side:<br /><br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2jtLq8dN1K0e9kJDxcNsmof2hPtEYM6DzdPHuu1bG_4tyH4mpoCurvqCoZBwAIUsd4F2FefbdR3FA6wSSRYGCC7A72Jvf3gejmo5IfVKHQqUm6CtUKH6kW1PwAz9NVt4o1pW/s2048/20200701_190949-1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1485" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW2jtLq8dN1K0e9kJDxcNsmof2hPtEYM6DzdPHuu1bG_4tyH4mpoCurvqCoZBwAIUsd4F2FefbdR3FA6wSSRYGCC7A72Jvf3gejmo5IfVKHQqUm6CtUKH6kW1PwAz9NVt4o1pW/s320/20200701_190949-1.jpg" /></a></div><br /><p><br />And here the noise generator (underneath), a common noise source diagram:<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaGFx18FwIlzjfPvtm2k3BDLdoO0iTOtEPUIKJq8mBD0L8pEsAmxe0C3vpW8ro0HSRYL-GpYP6UMe6Vm9TjPy7CcL3FcbxpK2P6hPzqV6GHS7SmZy_acdnPhxF7YvTjgmJLXoA/s2048/20200701_191850.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1536" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaGFx18FwIlzjfPvtm2k3BDLdoO0iTOtEPUIKJq8mBD0L8pEsAmxe0C3vpW8ro0HSRYL-GpYP6UMe6Vm9TjPy7CcL3FcbxpK2P6hPzqV6GHS7SmZy_acdnPhxF7YvTjgmJLXoA/s320/20200701_191850.jpg" width="320" /></a></div><br /></div><div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUc-Zenh4EfmmK7FoTO7JeEwI6reQ1a5okNYgjwembw_gxqAMaCqxR9mnzNINyYY_Fb7Z8TtUwGO_is0Fd0FIufXIAhFkwKOwgQfsugh1gX03duCQKBQB7iaFmCe3Vjzx5LZZu/s2048/20200702_180618-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1832" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUc-Zenh4EfmmK7FoTO7JeEwI6reQ1a5okNYgjwembw_gxqAMaCqxR9mnzNINyYY_Fb7Z8TtUwGO_is0Fd0FIufXIAhFkwKOwgQfsugh1gX03duCQKBQB7iaFmCe3Vjzx5LZZu/s320/20200702_180618-1.jpg" /></a></div><p>Some similar Ferranti references, so this could be part of the same set:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBlJVw9WloqoNcgqoP88HTiD_3XtQDaDx3rv53-xk4bwde6wcqyAlA4RAcc-fiYU7CT5Qw5d14rlrwrbAwtbMB4XR-WzxuQ4Hl1QlvTGTkwDvhSVPeCjSs39MlduMXLOOxxsyz/s884/Screenshot+at+2020-07-01+22-16-43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="610" data-original-width="884" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBlJVw9WloqoNcgqoP88HTiD_3XtQDaDx3rv53-xk4bwde6wcqyAlA4RAcc-fiYU7CT5Qw5d14rlrwrbAwtbMB4XR-WzxuQ4Hl1QlvTGTkwDvhSVPeCjSs39MlduMXLOOxxsyz/s320/Screenshot+at+2020-07-01+22-16-43.png" width="320" /></a></div><br />Im assuming this is a 10 Ghz capable noise generator because of the waveguide and because Ferranti was involved in earlier radar set's at around the 10Ghz range.</div><div><br />End up doing an adapter/transition to SMA using just the noise module part, separating it from the waveguide:<br /></div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOzgEFIyyu_eAEHD9vswjeJ505JvsexXByHvDxHOf_Ivtp6jkJxbKslzf1QLBmnmao42oZ1w-5fleHdpmeyXaORYfyuLvkVOyey5gc2hwWOkT8K1pp2R1wrsafKaJjvURs8Zbi/s2048/20200704_101451-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1850" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOzgEFIyyu_eAEHD9vswjeJ505JvsexXByHvDxHOf_Ivtp6jkJxbKslzf1QLBmnmao42oZ1w-5fleHdpmeyXaORYfyuLvkVOyey5gc2hwWOkT8K1pp2R1wrsafKaJjvURs8Zbi/s320/20200704_101451-1.jpg" /></a><br /></div><div><br /></div><div><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirvZUXdS6ucQXql16LGWqlfpbDLtNb9-xBEjJUJ9wENI7mvaZBKuRwxDcemh2GrQ0IA9iUxA_6PaU4eBrsUNKN1lBbPwbglO4Yn3W-lD0JGNE6aQqJ6mUg7fbr-7pxiVd-agfy/s2048/20200704_101515-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1872" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirvZUXdS6ucQXql16LGWqlfpbDLtNb9-xBEjJUJ9wENI7mvaZBKuRwxDcemh2GrQ0IA9iUxA_6PaU4eBrsUNKN1lBbPwbglO4Yn3W-lD0JGNE6aQqJ6mUg7fbr-7pxiVd-agfy/s320/20200704_101515-1.jpg" /></a></div><p></p><p>Since I am a bit limited on 10Ghz test equipment the most I could do was connect it to an LNB and checking the level on an DVB-T USB dongle. <br /></p><p></p><p>Bellow with power on at around 11Ghz (given the LNB offset of 9.750Mhz)<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQHIhpX6J0ICApzv0IAAIvdG6xFFJsUzX_70JGlXz9u3l1rE4J1mIf0MktqVN7NuIeiZvn2UzOxBRjyjrLNFTZsI6DSrGgk5Fz_9jBnXCKmqNrxJbNfLWA9-Ymvjrh7U2SYhme/s1440/on3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="875" data-original-width="1440" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQHIhpX6J0ICApzv0IAAIvdG6xFFJsUzX_70JGlXz9u3l1rE4J1mIf0MktqVN7NuIeiZvn2UzOxBRjyjrLNFTZsI6DSrGgk5Fz_9jBnXCKmqNrxJbNfLWA9-Ymvjrh7U2SYhme/s320/on3.png" width="320" /></a></div>With the generator OFF:<br /></div><br /><div style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-qSKNyIn3Rv6_rLDj1pyPlrJCfgCRCEGknhvzliLHf30SzLF8XnFUOicPwDtM-qfoWmfpGlL3PplW6xAlWlptIrZC2gZ9B1Dd80cIyElsrLqg-8WE6ItIMqvhgQkU9cs_kFk-/s1440/off3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="875" data-original-width="1440" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-qSKNyIn3Rv6_rLDj1pyPlrJCfgCRCEGknhvzliLHf30SzLF8XnFUOicPwDtM-qfoWmfpGlL3PplW6xAlWlptIrZC2gZ9B1Dd80cIyElsrLqg-8WE6ItIMqvhgQkU9cs_kFk-/s320/off3.png" width="320" /></a></div><p></p><p></p><p>...so I know that there's some noise, anyhow could also be 1.7Ghz noise leaking on the SDR dongle.<br /><br />I also tested using one LNB as amplifier for the noise (getting the signal before mixing) and then connected the output to the conversion LNB.<br /><br /></p><p style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEsGP4G6sIxm0iha2sbI4K3TIyzd0f8_6gZyWaHOO_yZtGCSpu6pQ3dBMly1_ygDa7PE3AxmZeWFwz9U54YcYZroR0-klj5QC0tnqnMrnSGgz3_Gek9_EWImOZlUbcWIJTT0mP/s2048/20201010_150849-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1961" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEsGP4G6sIxm0iha2sbI4K3TIyzd0f8_6gZyWaHOO_yZtGCSpu6pQ3dBMly1_ygDa7PE3AxmZeWFwz9U54YcYZroR0-klj5QC0tnqnMrnSGgz3_Gek9_EWImOZlUbcWIJTT0mP/s320/20201010_150849-1.jpg" width="320" /></a><br /></p><p>The results with the noise generator OFF (on the left) and ON (on the right):<br /><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlu7bYEuTHE3csYeMDsBt9fb5tCFd53gVsYJJB9xoBLl3lKdJP_uQJ9c8DMtSkLd20ZD4x4UFVVAovoCuidiDZhoGrbc6x1ggmlba8tba-ovOhOAh9P5NllHXSRR8OwjAX1mSQ/s1384/compare-lnb-and-lnb-preamp-noise.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="668" data-original-width="1384" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlu7bYEuTHE3csYeMDsBt9fb5tCFd53gVsYJJB9xoBLl3lKdJP_uQJ9c8DMtSkLd20ZD4x4UFVVAovoCuidiDZhoGrbc6x1ggmlba8tba-ovOhOAh9P5NllHXSRR8OwjAX1mSQ/s320/compare-lnb-and-lnb-preamp-noise.png" width="320" /></a></div><br /><p>Anyhow since I have no spectrum analyzer capable of 10Ghz, for now I assume it kind of works. I plan to do a filter around 10.3GHz and run noise trough it and then use the LNB and connect to an 1.5Ghz spectrum analyzer (or similar) for better conclusions. <br /></p><p>Have a great day! <br /></p><p><br /></p><p><br /></p><br /><br />Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0tag:blogger.com,1999:blog-31955893.post-41793187980284245012020-09-20T11:48:00.005+01:002020-10-03T10:57:18.125+01:00DCF 77 Clock controller (hopf - HKW - clock mouse)<p> I had a past <a href="https://speakyssb.blogspot.com/2018/06/back-to-future-arduino-dcf77-transmitter.html">test</a> on this device but didn't touched it for around two years. Was convinced that it was a software or serial port situation. In the end nothing more than the antenna coil wire broken beneath the enamel (at the coil side) and one other that I had fixed previously at the PCB side. Because I tested continuity from the PCB to the antenna terminals only at that time I didn't realized the second situation until returning to it this last week.<br /></p><p>Bellow the device: <br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-RrVL5Vdc45Hs4lcPGiZ4KpDTrmDF8DT9rjiqZZn_c-t-Zc2OvpcmRQnWGYUJ1X6MLLc2BTCEfrjFCeDgi6thHJQ9gg-TxjwGVHCLy0PlDW4a8jMInnRArH25C6zfLpYL3Od4/s2048/20200916_211823-1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1160" data-original-width="2048" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-RrVL5Vdc45Hs4lcPGiZ4KpDTrmDF8DT9rjiqZZn_c-t-Zc2OvpcmRQnWGYUJ1X6MLLc2BTCEfrjFCeDgi6thHJQ9gg-TxjwGVHCLy0PlDW4a8jMInnRArH25C6zfLpYL3Od4/s320/20200916_211823-1.jpg" width="320" /></a></div>And the antenna coil details:<br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghz84UkbGaBwK7Xp2WlFOpKVw2T50auFiuq0RT-7ifG8yTnNtJyKubWIeHPsfAuwiVfqBuAUIspntmqOn5Sn5hEFRRhJDxGxhVDkDFEBQgNdMFU47vOqIyeYEdr1vRzjlrB_h9/s2048/20170413_183335.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghz84UkbGaBwK7Xp2WlFOpKVw2T50auFiuq0RT-7ifG8yTnNtJyKubWIeHPsfAuwiVfqBuAUIspntmqOn5Sn5hEFRRhJDxGxhVDkDFEBQgNdMFU47vOqIyeYEdr1vRzjlrB_h9/s320/20170413_183335.jpg" /></a><p></p><p></p><p>After that sorted it works receiving the DCF 77 <a href="https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiC9KjuxvfrAhVaQhUIHbsRAoEQFjAAegQICRAB&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDCF77&usg=AOvVaw2MZL4x3pSOb0qb3osSad-w">transmiter</a> time. It's just a little picky in the direction and placement since I'm currently on the actual range limits. I used "<a href="https://www.voacap.com/hf/">vocap</a>" site for the actual direction of the signal.</p><p>There is a long thread on this device (in German) <a href="https://www.mikrocontroller.net/topic/108641">here</a>. Also has a link for the "RCCD" software if you don't have original DOS software diskette provided with the device, it also runs under "dosemu" in Linux:</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-4TgmxqhPBKronaKm7A8cV1NDZ4P3K2GaxmjRwlNU9k4RxAQHTbmLflqX9wLcCzdeKNVuzcmupiXhwhR4b_GIg6I8sGCLlbds_AoAY1lWTaODZU_-6hN5L7q8L_0sjfLU8VW3/s724/first-time-works.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="412" data-original-width="724" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-4TgmxqhPBKronaKm7A8cV1NDZ4P3K2GaxmjRwlNU9k4RxAQHTbmLflqX9wLcCzdeKNVuzcmupiXhwhR4b_GIg6I8sGCLlbds_AoAY1lWTaODZU_-6hN5L7q8L_0sjfLU8VW3/s320/first-time-works.png" width="320" /></a></div><p></p><p>A native build for Linux can be found <a href="http://www.gbl-software.de/hopf/index.html">here</a> (thanks to Guntram). I tested under Linux Mint 32 Bit. Bellow the debug output.<br /></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqNn5-V0luykiYWFqKvAj7l7S-rF_LCfHnBVc2KpVNVNfS7DW7dn3g_gEZJbtkx14OVfYdREC1VeclQhbeChUScf1vu8A5-ZpQuIFK8EQ3ZAlx4n_gP4tLQhyphenhyphen74ESEZ5ixFz-9/s519/first-time-linux.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="34" data-original-width="519" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqNn5-V0luykiYWFqKvAj7l7S-rF_LCfHnBVc2KpVNVNfS7DW7dn3g_gEZJbtkx14OVfYdREC1VeclQhbeChUScf1vu8A5-ZpQuIFK8EQ3ZAlx4n_gP4tLQhyphenhyphen74ESEZ5ixFz-9/s320/first-time-linux.png" width="320" /></a></div><p></p><p>In the format HHMMSS and then day of week date year (better visible on the source code). <br /></p><p>For 64 Bit Linux Mint you will probably get when running the hopf binary: "No such file or directory" when running "./hopf -d /dev/ttyS0" , you need to install the following lib32 "sudo apt-get install lib32stdc++6"<br /><br />Inside the box:</p><p> </p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdstKOZ4Z3TqqP9cVEmIdwhRxMoqw7vPNTLRWMZwfuaHE285zeK8vfYQVp2FwQoOVqkTnGk1DkOY0CGu_RNdPs0ePVFDD1UvFzF05qSWrhMRG3ChyphenhyphenQsZ-Twqllx2DDN-uol4z8/s2048/20200916_221422.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="2048" data-original-width="1536" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdstKOZ4Z3TqqP9cVEmIdwhRxMoqw7vPNTLRWMZwfuaHE285zeK8vfYQVp2FwQoOVqkTnGk1DkOY0CGu_RNdPs0ePVFDD1UvFzF05qSWrhMRG3ChyphenhyphenQsZ-Twqllx2DDN-uol4z8/s320/20200916_221422.jpg" /></a></div> <p></p><p>The main chip for the RF reception is marked U2900, I could not find the datasheet for it but did found one that could be similar in terms of connections, as far as I reverse engineering it; the U2775B :</p><p> </p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghyphenhyphenvYRdjaam2RpZhV2aArFCv9Mkp-o0zgWGE95XwG54PowV1EeDrMEK6Gd0Xg8-GhWK6p1sOIq0XzMvlkipHywe8SiBrG9I5JJlVUIep4P7WgKKYootheQyrbb6OYvhmu-tUG7/s751/U2775B.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="706" data-original-width="751" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghyphenhyphenvYRdjaam2RpZhV2aArFCv9Mkp-o0zgWGE95XwG54PowV1EeDrMEK6Gd0Xg8-GhWK6p1sOIq0XzMvlkipHywe8SiBrG9I5JJlVUIep4P7WgKKYootheQyrbb6OYvhmu-tUG7/s320/U2775B.png" width="320" /></a></div><br /> <p></p><p>..still not sure if the same or not. </p><p>Anyhow, I'm happy that the device is confirmed working and will go now to the box of the finished stuff without immediate use...! <br /></p><p><br /></p><p>Have a nice day! <br /></p><p><br /></p><p><br /></p><p><br /></p><p><br /></p>Ricardo - CT2GQVhttp://www.blogger.com/profile/10682005152577217807noreply@blogger.com0