электроника сәнгате
658 subscribers
656 photos
72 videos
56 files
328 links
сәлам дуслар! здесь схемотехника, pcb дизайн, микроконтроллеры, линукс встроенный и десктопный
Download Telegram
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.

• Недавно я сделал 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 там должно быть лучше.
🔥7
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
🔥7
https://github.com/Svat-linux/Rus-The-Little-Book-About-OS-Development
Немного замутил перевод книги 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-
🔥11
собрала новый домашний сервер :3

старый совсем помирать начал, китайский минипк видимо отслужил свое
собирала сразу на века и с запасом, поэтому под капотом тут 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
7
Forwarded from Andrey Dogadkin
У Микрона пополнение на Озон. Не Кремний Элом единым теперь
🔥91
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 - тулза для заливки в МК
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
❤‍🔥9👍1
как вам трассировка?
❤‍🔥226
Forwarded from Интернет ненужных вещей (Oleg Artamonov)
У моего коллеги Саши Батина (техлида проекта Станции Стрит) — первая статья на Хабре.

https://habr.com/ru/companies/yandex/articles/925610/
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
А вы знали, на что готовилось нападение?!

Альт Гном команда сбросила свою йадерку!

ALR! Это аур для альта! Приплыли. Хром можно поставить на раз два. Яндекс музыку на счёт три!

И для это нужен простой, современный набор команд в ваше чёрное окно

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

📹 https://youtu.be/Pv-u9DShmWg и youtube версия для друга

С понедельником Вас!

@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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
признайтесь захотелось?
🤣7
Forwarded from Грокаем C++
​​Volatile
#опытным

Ключевое слово, которое не 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 Идиот в компиках
9