2026-05-25

умвч 28М 510

 

https://youtu.be/85fL1b7mWlY?t=1

https://www.youtube.com/watch?v=7W26HpNryhY

2026-03-28

SI5351-IRF510


 Igonin 
The simplest radio beacon based on Si5351 and Arduino. 28МГц
https://youtu.be/1aasO60XZ5o?t=298

si5351 + irf510 (9520), без буфера до 10МГц нормально
3МГц 3Ват 300км вебсдр
14МГц 1Ват

https://youtu.be/lf7M396e3cc?t=114


с предусилителем и буфером, 28МГц

https://groups.io/g/DIYRadio/topic/driver_circuit_for_a_5_watt/81447795

ищите микросхемы с буквенными индексами 
AC (Серия AC (Advanced CMOS) гораздо быстрее, чем HC. )
ACT((буква T означает совместимость с TTL уровнями, она идеально поймет 3.3 В)) или LVC(Серия LVC работает до 3.6 В (редко до 5 В в зависимости от производителя, проверяйте даташит).): 

 
74ACT541 /74ACT540inverting
8 каналов параллельно 
. .
74ACT244 
2 × 4-bit buffers
. .


. .
 74ACT125  4 lines — Шинный буфер, очень быстрый и мощный. (Четыре буфера с тремя состояниями)Если нет 541-й или 244-й, эта микросхема — следующий кандидат. . .
74ACT125 / 74ACT00 / 74ACT08
(четыре элемента И-НЕ) . .
 

74AC04 / 74AC14 kHz?— (6 инверторов) Самый доступный вариант. Соедините все 6 каналов параллельно. Триггер Шмитта  отлично убирает звон и шум с выхода синтезатора. . .


. .
74LVC1G125 
— Крошечный, но очень «злой» буфер, способный работать на сотнях МГц.
1 канал
. .
74LVC125AD 
(Четыре буфера)
Дает самый чистый и мощный импульс.
. .
74LVC14AD
  (Шесть инверторов с триггером Шмитта)
риггер Шмитта «подчистит» сигнал от Si5351,
если дорожки длинные и насасывают помехи.
. .
74LVC00AD 
(Четыре элемента И-НЕ)
. .
Итоговый рейтинг (от лучшего к хорошему):
74ACT541 / 74ACT540 (8 каналов, идеальная разводка).

74ACT244 (8 каналов, очень мощная).

74ACT04 / 74ACT14 (6 каналов, компактно).

74ACT125 / 74ACT00 / 74ACT08 (4 канала, «программа минимум»).

Важное напоминание про серию «F»
Если вдруг увидите в магазине микросхемы серии 74F... (например, 74F244), берите не задумываясь! Буква F означает Fast. Это старая биполярная логика, которая потребляет больше тока, но «жарит» на высоких частотах просто невероятно. Она была королем КВ-драйверов до появления современной ACT-серии.

74LVC125AD/74LVC14AD/74LVC00AD
  1 место: 74LVC125AD (Четыре буфера) 
Это шинный буфер. У него самая мощная выходная каскадная структура из всего списка.

Плюс: Дает самый чистый и мощный импульс.

2 место: 74LVC14AD (Шесть инверторов с триггером Шмитта)
Отличный вариант за счет того, что внутри целых 6 каналов.

Плюс: Триггер Шмитта «подчистит» сигнал от Si5351, если дорожки длинные и насасывают помехи.

3 место: 74LVC00AD (Четыре элемента И-НЕ)
Чуть слабее, чем 125-я, но тоже рабочая схема.

Как соединить: У каждого элемента два входа (A и B). Соединяем их вместе (A=B), тогда элемент работает как инвертор. Затем все 4 получившихся инвертора соединяем параллельно.

https://www.aliexpress.com/item/1005009320073049.html?spm=a2g0o.productlist.main.24.3129617c2OOfgl&algo_pvid=226b0971-3e43-481b-8e61-03630a2c9add&algo_exp_id=226b0971-3e43-481b-8e61-03630a2c9add-18&pdp_ext_f=%7B%22order%22%3A%227%22%2C%22eval%22%3A%221%22%2C%22fromPage%22%3A%22search%22%7D&pdp_npi=6%40dis%21EUR%210.43%210.43%21%21%210.48%210.48%21%40211b819117747328365581641e31a0%2112000048738150720%21sea%21SK%21139857366%21X%211%210%21n_tag%3A-29919%3Bd%3A9afaa231%3Bm03_new_user%3A-29895&curPageLogUid=6pWV1OZ9uH5l&utparam-url=scene%3Asearch%7Cquery_from%3A%7Cx_object_id%3A1005009320073049%7C_p_origin_prod%3A
 
https://www.aliexpress.com/item/1005009971062999.html?spm=a2g0o.detail.0.0.2f707Lpg7Lpg2h&mp=1&pdp_npi=6%40dis%21EUR%21EUR%200.15%21EUR%200.14%21%21EUR%200.14%21%21%21%40210385bb17747333715685840e3b91%2112000050724985184%21ct%21SK%21139857366%21%211%210%21




2025-02-18

balun

 без балуна
1:4
1:9
1:9


 






https://www.youtube.com/watch?v=nn8hNtysaxw&t=8s


https://www.youtube.com/watch?v=Ec0UeZMximU












2024-12-27

rf

12V 28MHz

pamp

ток сопр индук вит  
24 500 2.85 21.2
120 100 0.57 7.2
500 24 0.14 3

LC 
(50 Ohm)  C:114pF L:0.3uH 5t 8D 0.3d
100Ohm C:57pF L:0.57uH 7t

2024-12-15

noise gen шум

 https://www.youtube.com/watch?v=TRuuhKeiscw

2n3904 npn, 2n3906 pnp

2024-12-14

sdr

 msi.sdr: sdrplay

https://groups.io/g/SDRPlayUsers/topic/rsp1_on_ubuntu_20_04_no_joy/91588947

https://github.com/pothosware/SoapySDRPlay3/wiki#troubleshooting

--------------------------

rtl-sdr: https://www.rtl-sdr.com/V4/ #Linux (Debian)

sudo apt-get install libusb-1.0 

 1412  sudo touch /etc/modprobe.d/rtl-sdr.conf

 1417  sudo touch /etc/udev/rules.d/20.rtlsdr.rules

 rtl_power -f 25M:30M:5k 25M.30M.5k.csv

https://github.com/dernasherbrezon/rtlSpectrum?tab=readme-ov-file

2024-11-30

React Native

 youtube: Codevolution,

Expo CLI vs React Native CLI



youtube:Programming with Mosh
VS Code plugins: React Native Tools, React-Native/React/Redux, Prettier,Material Icon Theme
Settings: formatonsave
npm i -g expo-cli
(old?) expo init projectTitle
(npx create-expo-app --template)


npx expo run:android
https://docs.expo.dev/workflow/android-studio-emulator/#set-up-android-studio
expo init test1
npx expo run:android
./gradlew assembleDebug ? https://docs.expo.dev/workflow/android-studio-emulator/#set-up-android-studio
npx create-expo-app@latest npm run reset-project

npx create-expo-app app2 --template blank npm start rm -rf node_modules npm install npx expo start -c

2024-08-17

Links

 https://nomadmania.com/my_map/

const response = await fetch('https://jsonplaceholder.typicode.com/posts/1'); // Fetch data from API

https://jsfiddle.net/
https://codesandbox.io/

https://owasp.org/www-project-top-ten/

namecheap.com, hostinger.com

https://app.gptzero.me/
platform.openai.com
copyleaks.com
huggingface.co
quillbot.com

https://picsum.photos/
https://pixabay.com/photos/search/cook/

https://rx-tx.info/map-sdr-points?freq_of=28&freq_to=28&bands=All&country=All&title=&qth=&url=#close
http://sdr.so8oo.net/
http://www.websdr.org/
http://sdr.noip.pl:8073/#freq=439600000,mod=dmr,sql=-46
http://sdr.racuszki.pl:8073/#freq=88000000,mod=wfm,sql=-150
http://om7zy.proxy.kiwisdr.com:8073/

2024-08-06

Selenium

 https://googlechromelabs.github.io/chrome-for-testing/#stable

unzip & copy to /opt/chromedriver


download latest chrome.deb; 

sudo dpkg -i google-chrome-stable_current_amd64.deb 


pom.xml: 

<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.23.0</version>
</dependency>
</dependencies>

System.setProperty("webdriver.chrome.driver", "/opt/chromedriver");

WebDriver driver = new ChromeDriver();

driver.get("http://www.google.com");



2024-06-18

React forms

Working with form data in React can be approached in several ways, depending on the complexity of the form and the specific requirements of your application. Here are some common methods:

1. Controlled Components

In controlled components, form data is handled by the React component’s state. This is the most common method for managing form data in React.

Example

jsx
import React, { useState } from 'react'; const ControlledForm = () => { const [formData, setFormData] = useState({ name: '', email: '', }); const handleChange = (e) => { const { name, value } = e.target; setFormData((prevData) => ({ ...prevData, [name]: value, })); }; const handleSubmit = (e) => { e.preventDefault(); console.log(formData); }; return ( <form onSubmit={handleSubmit}> <div> <label>Name:</label> <input type="text" name="name" value={formData.name} onChange={handleChange} /> </div> <div> <label>Email:</label> <input type="email" name="email" value={formData.email} onChange={handleChange} /> </div> <button type="submit">Submit</button> </form> ); }; export default ControlledForm;

2. Uncontrolled Components with Refs

Uncontrolled components store form data in the DOM itself and use refs to access the data. This approach is useful for simple forms or when integrating with non-React libraries.

Example

jsx
import React, { useRef } from 'react'; const UncontrolledForm = () => { const nameRef = useRef(); const emailRef = useRef(); const handleSubmit = (e) => { e.preventDefault(); console.log({ name: nameRef.current.value, email: emailRef.current.value, }); }; return ( <form onSubmit={handleSubmit}> <div> <label>Name:</label> <input type="text" ref={nameRef} /> </div> <div> <label>Email:</label> <input type="email" ref={emailRef} /> </div> <button type="submit">Submit</button> </form> ); }; export default UncontrolledForm;

3. Using Form Libraries

Form libraries like Formik and React Hook Form can simplify form management by handling validation, state, and submission more efficiently.

Formik Example

jsx
import React from 'react'; import { Formik, Form, Field, ErrorMessage } from 'formik'; import * as Yup from 'yup'; const SignupForm = () => { return ( <Formik initialValues={{ name: '', email: '' }} validationSchema={Yup.object({ name: Yup.string().required('Required'), email: Yup.string().email('Invalid email address').required('Required'), })} onSubmit={(values, { setSubmitting }) => { console.log(values); setSubmitting(false); }} > <Form> <div> <label htmlFor="name">Name:</label> <Field name="name" type="text" /> <ErrorMessage name="name" component="div" /> </div> <div> <label htmlFor="email">Email:</label> <Field name="email" type="email" /> <ErrorMessage name="email" component="div" /> </div> <button type="submit">Submit</button> </Form> </Formik> ); }; export default SignupForm;

React Hook Form Example

jsx
import React from 'react'; import { useForm } from 'react-hook-form'; const HookForm = () => { const { register, handleSubmit, formState: { errors } } = useForm(); const onSubmit = (data) => { console.log(data); }; return ( <form onSubmit={handleSubmit(onSubmit)}> <div> <label>Name:</label> <input {...register('name', { required: 'Name is required' })} /> {errors.name && <span>{errors.name.message}</span>} </div> <div> <label>Email:</label> <input {...register('email', { required: 'Email is required', pattern: { value: /^\S+@\S+$/i, message: 'Invalid email address' } })} /> {errors.email && <span>{errors.email.message}</span>} </div> <button type="submit">Submit</button> </form> ); }; export default HookForm;

4. Custom Hooks

For more complex forms, you can create custom hooks to manage form state and validation logic.

Example

jsx
import React, { useState } from 'react'; const useForm = (initialValues) => { const [values, setValues] = useState(initialValues); const handleChange = (e) => { const { name, value } = e.target; setValues((prevValues) => ({ ...prevValues, [name]: value, })); }; const resetForm = () => { setValues(initialValues); }; return [values, handleChange, resetForm]; }; const CustomHookForm = () => { const [formData, handleChange, resetForm] = useForm({ name: '', email: '' }); const handleSubmit = (e) => { e.preventDefault(); console.log(formData); resetForm(); }; return ( <form onSubmit={handleSubmit}> <div> <label>Name:</label> <input type="text" name="name" value={formData.name} onChange={handleChange} /> </div> <div> <label>Email:</label> <input type="email" name="email" value={formData.email} onChange={handleChange} /> </div> <button type="submit">Submit</button> </form> ); }; export default CustomHookForm;

Summary

  • Controlled Components: Use when you want React to manage form state.
  • Uncontrolled Components: Use when you prefer to keep form data in the DOM and access it with refs.
  • Form Libraries (Formik, React Hook Form): Use for complex forms that require robust validation and state management.
  • Custom Hooks: Use for custom form logic and state management.