Forwarded from letters to robot (Artsiom K)
KiCAD and Wayland support
https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/
Прогоним пару матов про статью выше и контекст около неё и автора канала:
• Статья хорошая в техническом плане. В кои-то веки объективные и адекватные претензии к протоколу, а не луддитская бредятина, как в том треде на лейнчане, где пишут претензии в духе того, что вейланд не поддерживает оконный менеджер cwm из иксов.
• We do not investigate or support bug reports related to Wayland-specific issues — это грустно. Чтобы задачку решить надо где-то записать условие, так легче. По этому принципу и багтрекер нужен и то что часть проблем нельзя будет записать в одном месте это плохо.
• С другой стороны, их можно понять: С чего бы прикладным программистам надо решать то за что ответственность должны нести системные программы?
• Нужно допиливать wxWidgets. В том числе поддержку Wayland в нём. Это графический тулкит, который использует KiCAD. Разработчики кикада уже отправляют часть своих донатов разрабам wxWidgets. Они так например заплатили за поддержку темной темы в этом тулките. Имаджинируйте просто: в IDE Code::Blocks вероятно скоро появится нормальная поддержка темной темы, потому что за эту фичу заплатили разработчики EDA CAD.
• Недавно я сделал
• Могу пруфануть юзабельность кикада на wayland, проведя стрим на котором буду в KiCAD, запущенном в GNOME shell, трассировать какую-то простую печатную плату, по схеме из журнала «Радио». Просто показать вам, как у меня всё (не)работает. Только с вас минимум 30 реактов на этот пост тогда.
• В OpenBSD-current портировали девятый кикад. В OpenBSD используют Xenocara. Это X11, но не разбитый на отдельный пакеты, а лежащий в одном CVS монорепозитории и собираемый не скриптами configure, а OpenBSD make с инклюдами. Можете поставить и потестить, это просто.
• А можете просто забить хер. Можно не переходить с вейланда назад на иксы. Траст ми, айм ан инженегр
• Ещё можно попробовать horizon-eda. Эта открытая САПР для печатных плат использует gtkmm в качестве тулкита, поэтому с поддержкой Wayland там должно быть лучше.
https://www.kicad.org/blog/2025/06/KiCad-and-Wayland-Support/
Прогоним пару матов про статью выше и контекст около неё и автора канала:
• Статья хорошая в техническом плане. В кои-то веки объективные и адекватные претензии к протоколу, а не луддитская бредятина, как в том треде на лейнчане, где пишут претензии в духе того, что вейланд не поддерживает оконный менеджер cwm из иксов.
• We do not investigate or support bug reports related to Wayland-specific issues — это грустно. Чтобы задачку решить надо где-то записать условие, так легче. По этому принципу и багтрекер нужен и то что часть проблем нельзя будет записать в одном месте это плохо.
• С другой стороны, их можно понять: С чего бы прикладным программистам надо решать то за что ответственность должны нести системные программы?
• Нужно допиливать wxWidgets. В том числе поддержку Wayland в нём. Это графический тулкит, который использует KiCAD. Разработчики кикада уже отправляют часть своих донатов разрабам wxWidgets. Они так например заплатили за поддержку темной темы в этом тулките. Имаджинируйте просто: в IDE Code::Blocks вероятно скоро появится нормальная поддержка темной темы, потому что за эту фичу заплатили разработчики EDA CAD.
• Недавно я сделал
zypper dup
и перезагрузившись оказался в графическом окружении гномья щель (GNOME shell). Я подумал что теперь надо выбрать между щелью и булкой циннамон (cinnamon). Я запустил KiCAD, и знаете что ? В девятый версии окно кикада отрисовывается лучше чем в восьмой. Без блюра, который я раньше замечал на своём 175% fractional scaled HiDPI дисплее. Ну и снёс циннамон. В нём тоже достаточно багов, решение которых меня особо не интересует на самом деле.• Могу пруфануть юзабельность кикада на wayland, проведя стрим на котором буду в KiCAD, запущенном в GNOME shell, трассировать какую-то простую печатную плату, по схеме из журнала «Радио». Просто показать вам, как у меня всё (не)работает. Только с вас минимум 30 реактов на этот пост тогда.
• В OpenBSD-current портировали девятый кикад. В OpenBSD используют Xenocara. Это X11, но не разбитый на отдельный пакеты, а лежащий в одном CVS монорепозитории и собираемый не скриптами configure, а OpenBSD make с инклюдами. Можете поставить и потестить, это просто.
• А можете просто забить хер. Можно не переходить с вейланда назад на иксы. Траст ми, айм ан инженегр
• Ещё можно попробовать horizon-eda. Эта открытая САПР для печатных плат использует gtkmm в качестве тулкита, поэтому с поддержкой Wayland там должно быть лучше.
www.kicad.org
KiCad and Wayland Support
The KiCad development team frequently receives questions about our support for Wayland. Given that Fedora and Ubuntu are both planning to drop X11 support from their main desktop environments in the near future, we want to provide clear, transparent guidance…
🔥7
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