Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

README.md

2026-07-10

Youtube-запись от 2026-07-10: https://youtu.be/mXOjK-27A90

Программируем рядышком с KiCad

  • KiCad — программа для рисования вот такого (и всего, что из него следует).
drawing
  • Чертёж в KiCad. PCB — если есть — там же.
  • А монтажную плату куда?
mvp-2

Caution

Давайте делать массивы в KiCad.
Потому что сам он не может.

Нужны посадочные места

И неважно, что мы только что узнали этот термин. Всё равно нужны.

  • Массив NxM, и наверняка в нём есть подводные грабли
  • Это не просто геометрия, там должна быть медь
  • Мы знаем расстояние между точками — 2.54 мм
  • Надо, чтобы детали схемы «прилипали» к точкам
  • Генерить будем где-то, где попроще
  • А ещё круто будет получить 3D-модель!

Что может быть проще текстовых файлов?

Tip

Да, «штуки» в KiCad — обычные текстовые файлы.
Проекты, схемы, платы, библиотеки символов, посадочные места,…

  • Формат S-Expression — человекочитаем, хоть и с трудом    

  • Lisp • польская запись • IMAP-протокол • наверняка и другие гики    

  • Дерево с очень, очень простым обработчиком

lisp-s-expression

Давайте сгенерим S-файл посадочного места

По сути мы хотим описать отверстия и их омеднение. Так и сделаем.

Все S-файлы выглядят примерно одинаково — там много скобок:

(файл_посадочного_места "Имя"
	(версия ВЕРСИЯ)
	(генератор КТО_СДЕЛАЛ_ТО)
	(точка)
	(точка)
	(точка)
	…
	(точка)
)

Что конкретно писать в файл

  • Там будут — сюрприз! — токены
  • В этом вся суть S-Expression Format
(footprint "NAME"
	(version VERSION)
	(generator GENERATOR)
	…
)

Дальше — очень много всяких вариантов описания посадочных мест:

footprint-details

Нам нужны:

	…
	(layer F.Cu)
	(attr through_hole)
	(fp_text … )
	…
  • На самом деле fp_text — это GRAPHIC_ITEMS
  • А вот так!
	…
	(fp_text reference "REF**"
		(at 0 -PITCH)
		(layer "F.SilkS"
		(effects
			(font (size 1 1) (thickness 0.15))
		)
	)
 
	(fp_text value "NAME"
		(at 0 ROWS * PITCH)
		(layer "F.Fab")
			(effects
				(font (size 1 1) (thickness 0.15))
			)
	)
	…
Контактная площадка

Тоже возможностей немало:

pad-description

Нам нужны:

	(pad "NAME" thru_hole circle
		(at X Y)
		(size D_PAD D_PAD)
		(drill D_HOLE)
		(layers "*.Cu" "*.Mask")
	)

Измерим макетную плату

  • Расстояние между точками — 2,54 мм → расчёт X и Y
  • Диаметр контактного пятна — 1,8 мм → D_PAD
  • Диаметр отверстия — 1 мм → D_HOLE

Нюансы

  • У библиотеки посадочных мест должен быть суффикс .pretty
  • К NAME никаких особых требований — можно нумеровать
  • На *.Mask можно и не писать — это для производства (чтобы площадку не закрасили)

Всё знаем, можно писать код

==<вот в код и посмотрим, а не в конспект>==

Tip

Пользуйтесь родным языком.
Тут C вовсе не обязателен.
Он пригодится позже.
Пока же — да хоть в Excel.

И что теперь делать?

  1. Настроим библиотеку
    • можно глобальную, можно проектную
  2. Создадим отдельную плату
    • официально KiCad этого не умеет, но мы не скажем никому
  3. Загрузим посадочные места прямо на плату
    • ==Редактор посадочных мест==
    • По умолчанию библиотеки спрятаны — покажем, найдём
  4. Покидаем каких-нибудь деталек - не забудем и им присвоить посадочные места - для точного попадания в отверстия установим сетку с шагом 2.54 мм
  5. Проведём соединения
    • Cmd + Alt + W — только под прямым углом
  6. Посмотрим на эту красоту во FreeCAD - сначала верстак KiCad StepUp - дорожки добавляем отдельно — Add Tracks

Warning

Welcome to Ugly UI League 🔥