Introducing Custom Boards #387
Replies: 1 comment 1 reply
-
Trying it myself, you really need to plan your routing proper before you start to route. Since the entire board is regenerated, it's not very good at diffing. Also, since it's regenerated, it's extremely important to save your work. For this, since $ git add -f artifacts/hardware/mymodule.kicad_pcb The most annoying part of diffing is probably not being able to do pin swapping from a Apart from that, works like a charm from my (maintainer) perspective 🙂 |
Beta Was this translation helpful? Give feedback.
-
Today, Eurorack-blocks is built around the concept of
board
. Aboard
mediates between the UI and the Daisy Patch Submodule, by expanding the features of the latter. Technically aboard
likekivu12
is just a set of pin headers, which forward or retrieve signals from a back board. The back board stuffs as many features as possible, to match all potential features of any digital module for a given HP width, at least conforming to what ModularGrid returns about digital modules for a specific width.Today a Eurorack-block module is composed of 3 parts, the front PCB holding the user interface, the back board like
kivu12
and finally the Daisy Patch Submodule.While the
kivu12
is OK for prototyping quickly, and is reusable, it has some limitations:In addition, some companies express their need to use Eurorack-blocks, but suitable for mass production.
For this we are introducing "custom boards" which allows, in a nutshell, to "merge" the UI component PCB that Eurorack-blocks was already producing, with the back board, which typically contains multiplexers and demultiplexers.
We've just merged part of this feature so companies could use it now, but there is still no documentation for it. What it does is add a syntax in
erbui
to add inlineboard
s, where the fields are the same in theboard
definition.py
file, but in theerbui
style rather thanpython
style.Here is what it looks like:
This is exactly like kivu12 python definition except you have it inline in the code.
Also you can notice the syntactic sugar
pins P1..14 Pot, Trim { bind "p({index-1})" }
: it expands fromP1
toP14
, whichaccept
(in the original definition) controls of kindPot
andTrim
andbind
to an expression"p({index-1})"
. What is in those{}
is evaluated when parsing the board.index
here is the index of the pin, so here ranging from 1 to 14 (that we map back to a 0-based indexes).This feature was quite made on a rush, but seems to fit the need.
Any opinion on it? Ways to improve it? Please comment below!
Beta Was this translation helpful? Give feedback.
All reactions