DIY высоковольтный трансформатор ☠️
YouTube
Как сделать ВЫСОКОВОЛЬТНЫЙ ТРАНСФОРМАТОР? Мотаем и страдаем!
Смотрите «Мосгаз. Розыгрыш» только в Okko: https://okko.tv/s/q0v
Оформить подписку на 30 дней за 1₽ по промокоду «MOSGAZ»
Сегодня мы намотаем маленький и мощный высоковольтный трансформатор, разберемся как он работает, расскажу все нюансы, и поделюсь 3мя…
Оформить подписку на 30 дней за 1₽ по промокоду «MOSGAZ»
Сегодня мы намотаем маленький и мощный высоковольтный трансформатор, разберемся как он работает, расскажу все нюансы, и поделюсь 3мя…
🔥4
новый проект Олега 🤲
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Схемотехника и технологии
Про проект, для которого недавно доделал трассировку платы и файлы выслала на завод, скрестил пальцы что всё сделал правильно. Проект IP камера. Камеры ранее не приходилось разрабатывать, но почитав документацию на компоненты, подумал, что всё реально и сделал…
🔥8❤1
Forwarded from ElectronIX
Написал свой обзор на HackRF. https://habr.com/ru/companies/beget/articles/921894/
Хабр
HackRF One. Доступный SDR трансивер для каждого
В очередной раз перебирая залежи своей электроники мне на глаза попался старый добрый товарищ - SDR-трансивер HackRF от Great Scott Gadgets. И я вспомнил, что у меня когда-то давно были планы написать...
🔥8
Forwarded from Merkwürdige Dinge
Linux Foundation Open Source Summit NA 2025
Это правда, что Linux Foundation тратит больше денег на сторонние проекты чем на сам линукс — но не потому что они страшные распильные воук-корпораты от Билла Гейтса, а потому что в задачи Фонда входит поддержка среды программного обеспечения, благодаря которой ядро Linux релевантно. Фонд поддерживает до десятка тысяч проектов, от альтернативных хрому и гекко свободных браузерных движков, над которыми работает 2 человека до команд по портированию драйверов и проектов масштаба u-boot или Git.
Два дня как закончился очередной саммит, где выступили сотни лекторов с докладами о тысячах проектов благодаря которым доля Linux во всех сферах нарастает. От Kubernetes до кода ядра, от Go до правительственных инициатив в сфере опенсорса, роли линукса в сфере автомобилестроения на примере такого гиганта, как Honda до актуальнейших угроз в инфобезе — на саммите покрыли множество тем
https://youtube.com/playlist?list=PLbzoR-pLrL6oVKdG6lLVXeCYVbt_NnS4c&si=0NmHWJSP4umB8SGk
Это правда, что Linux Foundation тратит больше денег на сторонние проекты чем на сам линукс — но не потому что они страшные распильные воук-корпораты от Билла Гейтса, а потому что в задачи Фонда входит поддержка среды программного обеспечения, благодаря которой ядро Linux релевантно. Фонд поддерживает до десятка тысяч проектов, от альтернативных хрому и гекко свободных браузерных движков, над которыми работает 2 человека до команд по портированию драйверов и проектов масштаба u-boot или Git.
Два дня как закончился очередной саммит, где выступили сотни лекторов с докладами о тысячах проектов благодаря которым доля Linux во всех сферах нарастает. От Kubernetes до кода ядра, от Go до правительственных инициатив в сфере опенсорса, роли линукса в сфере автомобилестроения на примере такого гиганта, как Honda до актуальнейших угроз в инфобезе — на саммите покрыли множество тем
https://youtube.com/playlist?list=PLbzoR-pLrL6oVKdG6lLVXeCYVbt_NnS4c&si=0NmHWJSP4umB8SGk
YouTube
Open Source Summit NA 2025
Share your videos with friends, family, and the world
🔥7
Forwarded from Заметки пингвина
https://github.com/Svat-linux/Rus-The-Little-Book-About-OS-Development
Немного замутил перевод книги https://littleosbook.github.io/. Я бы сказал, что это краткая выжимка из книги "Современные операционные системы" Таненбаума, но с большим уклоном в практику. Можно сказать, что она заточена под практику. Так что буду раз звездочкам))) пришлось аж маркдавн поизучать чутка))
Немного замутил перевод книги https://littleosbook.github.io/. Я бы сказал, что это краткая выжимка из книги "Современные операционные системы" Таненбаума, но с большим уклоном в практику. Можно сказать, что она заточена под практику. Так что буду раз звездочкам))) пришлось аж маркдавн поизучать чутка))
❤🔥7
Forwarded from TDM Lab
Сделал я все-таки усиление дорожек шины DC. За аккуратность поставил себе 3 с плюсом😁
Материал латунь толщиной 0,7мм.
Ну, для первого раза пойдет.
upd Измерение сопротивления плюсовая шина на всю длину только лужение ~3мОм, с усилением ~1мОм.
И да, медь ЗНАЧИТЕЛЬНО лучше по удельному сопротивлению.
upd upd Латунные с никелевым покрытием шины для печатных плат https://www.lcsc.com/products/Metal-Products-SMT-Copper-Sheet_13371.html?keyword=YTC-&s_z=n_YTC-
Материал латунь толщиной 0,7мм.
Ну, для первого раза пойдет.
upd Измерение сопротивления плюсовая шина на всю длину только лужение ~3мОм, с усилением ~1мОм.
И да, медь ЗНАЧИТЕЛЬНО лучше по удельному сопротивлению.
upd upd Латунные с никелевым покрытием шины для печатных плат https://www.lcsc.com/products/Metal-Products-SMT-Copper-Sheet_13371.html?keyword=YTC-&s_z=n_YTC-
🔥11
Forwarded from зачем алине канал
собрала новый домашний сервер :3
старый совсем помирать начал, китайский минипк видимо отслужил свое
собирала сразу на века и с запасом, поэтому под капотом тут 9900х, 64 озу, 6 дисков по 8тб (~30тб в raid6) + room for growth в виде ещё 6 слотов под диски и свободный слот под видеокарту. и еще снаружи висюлька в виде nanokvm.
а ещё это первый раз когда я собираю пк :D
выглядит все довольно на соплях потому что ну по факту так и есть. но в этой квартире особо вариантов больше нет, с проводкой тут грустно, из-за чего пришлось ибп и роутеры ставить сверху и тянуть провода вниз(
старый совсем помирать начал, китайский минипк видимо отслужил свое
собирала сразу на века и с запасом, поэтому под капотом тут 9900х, 64 озу, 6 дисков по 8тб (~30тб в raid6) + room for growth в виде ещё 6 слотов под диски и свободный слот под видеокарту. и еще снаружи висюлька в виде nanokvm.
а ещё это первый раз когда я собираю пк :D
выглядит все довольно на соплях потому что ну по факту так и есть. но в этой квартире особо вариантов больше нет, с проводкой тут грустно, из-за чего пришлось ибп и роутеры ставить сверху и тянуть провода вниз(
🔥16🤷♂1
KWIK_FAQ_1MHz,_Single_Supply,_Photodiode_Transimpedance_Amplifier.pdf
730.9 KB
исәнмесез дуслар, занимаюсь щас проектированием измерительного тракта с трансимпедансным усилителем, хочу поделиться наиболее прикладной из найденных статей по этой теме
1MHz, Single Supply, Photodiode Transimpedance Amplifier
(TIA) Design | KWIK CIRCUIT FAQ
1MHz, Single Supply, Photodiode Transimpedance Amplifier
(TIA) Design | KWIK CIRCUIT FAQ
❤7
160 Core RISC-V supercluster on a single M.2
YouTube
I made a GPU at home
Take back your personal data with Incogni! Use code BITLUNI at the link
below and get 60% off an annual plan: https://incogni.com/BITLUNI (sponsor)
Code & Designs: https://github.com/bitluni/Supercluster2
Tools and parts (affiliate links):
RISC-V CH32V208:…
below and get 60% off an annual plan: https://incogni.com/BITLUNI (sponsor)
Code & Designs: https://github.com/bitluni/Supercluster2
Tools and parts (affiliate links):
RISC-V CH32V208:…
❤5
Forwarded from learning log
Добрался наконец до работы с atmega под линукс на C
https://www.tonymitchell.ca/posts/setup-avr-toolchain-on-linux/
Здесь, в принципе, все описано
gcc-avr - компилятор
avr-libc - имплементация стандартной библиотеки для AVR https://avr-libc.nongnu.org/user-manual/index.html)
avrdude - тулза для заливки в МК
Код "мигалки"
Команды для компиляции и заливки. Единственное я поменял программатор на usbasp
Здесь -DF_CPU=тактовая частота в Гц,
#tetris_c #avr
https://www.tonymitchell.ca/posts/setup-avr-toolchain-on-linux/
Здесь, в принципе, все описано
gcc-avr - компилятор
avr-libc - имплементация стандартной библиотеки для AVR https://avr-libc.nongnu.org/user-manual/index.html)
avrdude - тулза для заливки в МК
sudo apt install make gcc-avr avr-libc avrdude
Код "мигалки"
#include <avr/io.h>
#include <util/delay.h>
int main()
{
// Set built-in LED pin as output
DDRB |= (1 << DDB5);
while (1) {
PORTB |= (1 << PB5); // LED on
_delay_ms(500);
PORTB &= ~(1 << PB5); // LED off
_delay_ms(500);
}
return 0;
}
Команды для компиляции и заливки. Единственное я поменял программатор на usbasp
avr-gcc blink.c -o blink.elf -mmcu=atmega328p -DF_CPU=16000000UL -Os
avr-objcopy blink.elf -O ihex blink.hex
avrdude -c usbasp -p m328p -U flash:w:"blink.hex":a
Здесь -DF_CPU=тактовая частота в Гц,
#tetris_c #avr
Tony Mitchell
How to setup the AVR toolchain on Linux
Overview
❤🔥9👍1
Forwarded from Интернет ненужных вещей (Oleg Artamonov)
У моего коллеги Саши Батина (техлида проекта Станции Стрит) — первая статья на Хабре.
https://habr.com/ru/companies/yandex/articles/925610/
https://habr.com/ru/companies/yandex/articles/925610/
🔥7
Forwarded from Toxblч. Не только Linux
This media is not supported in your browser
VIEW IN TELEGRAM
А вы знали, на что готовилось нападение?!
Альт Гном команда сбросила свою йадерку!
ALR! Это аур для альта! Приплыли. Хром можно поставить на раз два. Яндекс музыку на счёт три!
И для это нужен простой, современный набор команд в ваше чёрное окно
Ссылочек вам тут насыплю:
https://altlinux.space/aides-pkgs
https://altlinux.space/aides-community
https://t.iss.one/aides_space
📹 https://youtu.be/Pv-u9DShmWg и youtube версия для друга
С понедельником Вас!
@toxblh_linux
Альт Гном команда сбросила свою йадерку!
И для это нужен простой, современный набор команд в ваше чёрное окно
epmi 386131
alr repo add aides https://altlinux.space/aides-community/aides.git
alr in yandex-music
Ссылочек вам тут насыплю:
https://altlinux.space/aides-pkgs
https://altlinux.space/aides-community
https://t.iss.one/aides_space
С понедельником Вас!
@toxblh_linux
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
Forwarded from dlinyj
Один мой хороший товарищ - @nikhotmsk, организует фестиваль самодельной электроники и компьютерного искусства в Рощино, Ленинградская область.
Восьмой по счету Undefined состоится 16 августа и будет идти два дня подряд. Никита активно ищет докладчиков, волонтеров и просто посетителей, кто желает отважиться на путешествие в живописный лес, навстречу 8-битным консолям, старинным компьютерным играм и демосцене!
Конечно, один анонс не сможет вместить всего, что может быть на Undefined, ведь это фестиваль всего на свете.
Итак:
Телеграм-канал Никиты: @undefined_diy_fest
Сайт фестиваля Undefined: https://undefined.chaosconstructions.ru/👈
@dlinyj_news
Восьмой по счету Undefined состоится 16 августа и будет идти два дня подряд. Никита активно ищет докладчиков, волонтеров и просто посетителей, кто желает отважиться на путешествие в живописный лес, навстречу 8-битным консолям, старинным компьютерным играм и демосцене!
Конечно, один анонс не сможет вместить всего, что может быть на Undefined, ведь это фестиваль всего на свете.
В своё время, я даже принимал участие в демосцене этого мероприятия и делал демку для "Микроши", которую можно увидеть тут.
Итак:
Телеграм-канал Никиты: @undefined_diy_fest
Сайт фестиваля Undefined: https://undefined.chaosconstructions.ru/
@dlinyj_news
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Forwarded from Грокаем C++
Volatile
#опытным
Ключевое слово, которое не embedded С++ разработчик вряд ли когда-нибудь встречал в код. Сегодня мы поговорим, для чего оно используется.
Предположим, что у нас есть переменная keyboard_press, память под которую замаплена на память устройства ввода-вывода. Когда нажимается кнопка клавиатуры, изменяется переменная keyboard_press. Оставим сам маппинг за скобками и попробуем написать какую-то детсадовскую логику с переменной keyboard_press:
Что в ассемблере?
А где цикл? А где инкремент count_test?
На самом деле код собран с -О3 и компилятор просто выкинул цикл. Он не видит, что в данном коде где-то еще изменяется keyboard_press, поэтому разумно полагает, что мы написали бесконечный цикл без сайдэффектов, который вообще-то ub.
Но keyboard_press может изменяться, просто это никак не понятно по коду программы.
Теоретически компилятор мог бы увидеть, что мы замапили устройство ввода-вывода на эту переменную. А может и не увидеть. Если маппинг происходит в другой единице трансляции, то точно не увидит. Компилятор технически не может знать всего, что творится в коде. Он оптимизирует какой-то локальный участок кода на основе своих эвристик, которые просто не могут учитывать весь код программы.
Однако компилятор точно видит тип переменной. И на него мы можем повлиять. Вот чтобы отучить компилятор от таких фокусов, нужно пометить keyboard_press ключевым словом volatile.
Теперь ассемблер выглядит так:
Все, что делает volatile - все операции над переменной становятся видимыми спецэффектами и не могут быть оптимизированы компилятором. Ну и еще операции над volitile переменными не могут переупорядочиваться с другими видимыми спецэффектами в порядке кода программы.
Говорится ли здесь что-нибудь о потоках? Нет! Здесь говорится только об оптимизациях компилятора.
Поэтому использовать volatile можно только для обработки сигналов(хэндлер которых вызывается в том же прерванном потоке), либо в тех местах, где вы работаете с переменной строго в одном потоке.
Доступ к volatile переменным не атомарный + с их помощью нельзя делать синхронизацию неатомарных переменных между потоками, так как volitile не подразумевает барьеров памяти.
Именно из-за этих ограничений volatile используется в очень узком спектре задач работы с I/O. Во всех остальных случаях в С++ используются атомики.
Don't be optimized out. Stay cool.
#cppcore #multitasking #memory
#опытным
Ключевое слово, которое не embedded С++ разработчик вряд ли когда-нибудь встречал в код. Сегодня мы поговорим, для чего оно используется.
Предположим, что у нас есть переменная keyboard_press, память под которую замаплена на память устройства ввода-вывода. Когда нажимается кнопка клавиатуры, изменяется переменная keyboard_press. Оставим сам маппинг за скобками и попробуем написать какую-то детсадовскую логику с переменной keyboard_press:
int keyboard_press = 0;
size_t count_test = 0;
void some_function() {
while(keyboard_press == 0) {
count_test++;
}
// doing stuff
}
Что в ассемблере?
some_function():
mov eax, DWORD PTR keyboard_press[rip]
test eax, eax
jne .L1
.L3: // это кстати пустой бесконечный цикл, куда нельзя попасть и откуда нельзя выбраться
jmp .L3
.L1:
ret
count_test:
.zero 8
keyboard_press:
.zero 4
А где цикл? А где инкремент count_test?
На самом деле код собран с -О3 и компилятор просто выкинул цикл. Он не видит, что в данном коде где-то еще изменяется keyboard_press, поэтому разумно полагает, что мы написали бесконечный цикл без сайдэффектов, который вообще-то ub.
Но keyboard_press может изменяться, просто это никак не понятно по коду программы.
Теоретически компилятор мог бы увидеть, что мы замапили устройство ввода-вывода на эту переменную. А может и не увидеть. Если маппинг происходит в другой единице трансляции, то точно не увидит. Компилятор технически не может знать всего, что творится в коде. Он оптимизирует какой-то локальный участок кода на основе своих эвристик, которые просто не могут учитывать весь код программы.
Однако компилятор точно видит тип переменной. И на него мы можем повлиять. Вот чтобы отучить компилятор от таких фокусов, нужно пометить keyboard_press ключевым словом volatile.
volatile int keyboard_press = 0;
size_t count_test = 0;
// same
Теперь ассемблер выглядит так:
some_function():
mov eax, DWORD PTR keyboard_press[rip]
test eax, eax
jne .L1
mov rax, QWORD PTR count_test[rip]
add rax, 1
.L3:
mov edx, DWORD PTR keyboard_press[rip]
mov rcx, rax
add rax, 1
test edx, edx
je .L3
mov QWORD PTR count_test[rip], rcx
.L1:
ret
Все, что делает volatile - все операции над переменной становятся видимыми спецэффектами и не могут быть оптимизированы компилятором. Ну и еще операции над volitile переменными не могут переупорядочиваться с другими видимыми спецэффектами в порядке кода программы.
Говорится ли здесь что-нибудь о потоках? Нет! Здесь говорится только об оптимизациях компилятора.
Поэтому использовать volatile можно только для обработки сигналов(хэндлер которых вызывается в том же прерванном потоке), либо в тех местах, где вы работаете с переменной строго в одном потоке.
Доступ к volatile переменным не атомарный + с их помощью нельзя делать синхронизацию неатомарных переменных между потоками, так как volitile не подразумевает барьеров памяти.
Именно из-за этих ограничений volatile используется в очень узком спектре задач работы с I/O. Во всех остальных случаях в С++ используются атомики.
Don't be optimized out. Stay cool.
#cppcore #multitasking #memory
❤10❤🔥2👍2
Forwarded from Embedded Doka (Dmitry Murzinov)
В электронике тоже есть своё правило№34:
Правило#35: если нет микросхемы, перепроверь еще раз у китайцев
Правило#36: всегда существует еще болеетупая дешевая дискретная реализация нужного функционала из говна и палок на рассыпухе
Правило#37: рассыпуха под рукой всегда будет не той мощности, которая нужна в данный момент, поэтому TO-3 балласт будет соседствовать с 0201
Правило#38: Всегда существует реализация которая займет больше времени на разработку и отладку и вы выберете именно ее
Правило#39: [Если вы не китаец, то] что бы вы не делали у китайцев этот же функционал реализован проще
@embedoka
На любую вашу хотелку существует готовая реализация в интегральном исполнении (с) Doka 😅
Правило#35: если нет микросхемы, перепроверь еще раз у китайцев
Правило#36: всегда существует еще более
Правило#37: рассыпуха под рукой всегда будет не той мощности, которая нужна в данный момент, поэтому TO-3 балласт будет соседствовать с 0201
Правило#38: Всегда существует реализация которая займет больше времени на разработку и отладку и вы выберете именно ее
Правило#39: [Если вы не китаец, то] что бы вы не делали у китайцев этот же функционал реализован проще
@embedoka
❤13👍1
Forwarded from Segment@tion fault
This media is not supported in your browser
VIEW IN TELEGRAM
Это я, сижу жду когда ИИ меня наконец заменит на работе
😁15