{"id":4970,"date":"2026-08-30T01:00:39","date_gmt":"2026-08-29T16:00:39","guid":{"rendered":"https:\/\/donguri3.net\/server-tech\/how-to-create-pin-assignment-images-2\/"},"modified":"2026-08-30T01:00:40","modified_gmt":"2026-08-29T16:00:40","slug":"how-to-create-pin-assignment-images","status":"publish","type":"post","link":"https:\/\/donguri3.net\/en\/diy-repair\/electronics-microcontroller\/how-to-create-pin-assignment-images\/","title":{"rendered":"I Looked into How to Create Custom Pinout Images"},"content":{"rendered":"<p>When checking the pinout of electronic components, store listing images are helpful, but reusing them directly may raise copyright concerns. Therefore, I decided to look for a tool that allows me to create my own.<\/p>\n<h2>Investigating Tools for Creating Pinout Images<\/h2>\n<p>I tried the following tools:<\/p>\n<ul>\n<li><strong>Graphical_Datasheets<\/strong> (<a>https:\/\/github.com\/sparkfun\/Graphical_Datasheets<\/a>)<\/li>\n<li><strong>GenPinoutSVG<\/strong> (<a>https:\/\/github.com\/stevenj\/GenPinoutSVG\/tree\/master<\/a>)<br \/>A project inspired by Graphical_Datasheets<\/li>\n<li><strong>ic-pinout-diagram-generator<\/strong> (<a>https:\/\/github.com\/cmfcmf\/ic-pinout-diagram-generator<\/a>)<br \/>A tool to view various pinouts in the browser. I gave up on this because the pin numbering started from the top left and went counterclockwise (perhaps it can be changed?).<\/li>\n<li><strong>Pinout.xyz<\/strong> (<a>https:\/\/github.com\/pinout-xyz\/Pinout.xyz<\/a>)<br \/>Not quite what I was looking for, as I wanted the pinout layout to correspond directly with the pins on the image.<\/li>\n<\/ul>\n<h3>GenPinoutSVG Performed Closest to What I Expected<\/h3>\n<p>After trying these tools, I found that <strong>GenPinoutSVG<\/strong> was the closest to the behavior I wanted.<\/p>\n<p>This tool allows you to generate pinout images in SVG format by writing pinout information into a CSV file. Its appeal lies in its ease of customization and simple structure, making it very manageable.<\/p>\n<h2>How to Use GenPinoutSVG<\/h2>\n<p>GenPinoutSVG requires the following python3 libraries:<\/p>\n<pre>svgwrite==1.2.1(Graphical_Datasheets\u3067\u8981\u6c42\u3055\u308c\u3066\u3044\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u3067\u52d5\u3044\u305f)\ndocpt\nwand<\/pre>\n<p>Additionally, you need to install the following Ubuntu package:<\/p>\n<pre>sudo apt install libmagickwand-dev<\/pre>\n<p>Once the installation is complete, specify the CSV file containing the pinout information and run it, which will generate an SVG file with the same name inside the svg directory.<\/p>\n<pre>python3 GenPinoutSVG.py data\/RP2040-zero.csv<\/pre>\n<div class=\"wp-block-cocoon-blocks-toggle-box-1 toggle-wrap toggle-box block-box not-nested-style cocoon-block-toggle\"><input id=\"toggle-checkbox-202503090738211\" class=\"toggle-checkbox\" type=\"checkbox\" \/><label class=\"toggle-button\" for=\"toggle-checkbox-202503090738211\">RP2040-zero.csv<\/label><\/p>\n<div class=\"toggle-content\">LABELS,DEFAULT,TYPE,GROUP,Name, Official Name, GPIO, Analog 1, Analog 2, RTC, Func 1, Func 2, Func 3 BORDER COLOR, grey BORDER WIDTH, 2 BORDER OPACITY, 1 # FILL COLOR, white, white, white, white, deepskyblue, black, yellow, green, cornflowerblue, plum, yellow, grey FILL COLOR, white, white, white, white, deepskyblue, gray, yellow, limegreen, cornflowerblue, plum, yellow, grey OPACITY, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 FONT , Rubik, , , Work Sans, Work Sans FONT SIZE , 25, , , 25, 25 # FONT COLOR , black, , , , , white FONT COLOR , black, , , , , FONT SLANT , normal , , , , , FONT BOLD , 700 , , , 700 FONT STRETCH , normal # FONT OUTLINE , yellow , , , , blue FONT OUTLINE , black , , , , FONT OUTLINE THICKNESS, 0.1 BOXES, STD, , , PIN BOX, NAME BOX, SKEWED, SKEWED, SKEWED, SKEWED, SKEWED, SKEWED, SKEWED TYPE, IO, black, 1 TYPE, INPUT, black, 1 TYPE, OUTPUT, black, 1 WIRE, DIGITAL, black, 1, 5 WIRE, PWM, black, 1, 5 WIRE, ANALOG, black, 1, 5 WIRE, HS-ANALOG, black, 1, 5 WIRE, POWER, black, 1, 10 GROUP, ESP32 VSDIO, fuchsia, 0.5 GROUP, ESP32 RTC, chartreuse, 0.5 GROUP, ESP32 VIO, deepskyblue, 0.5 GROUP, SAML21 VDDANA, khaki, 0.5 GROUP, SAML21 VDDIO, khaki, 0.5 GROUP, COMBINED, chocolate, 0.5 GROUP, POWER, black, 0 GROUP, NONE, grey, 0.1 BOX, STD, black, 1, white, 0, 1, 100,55,2,2,0,0 BOX, PIN BOX, black, 1, white, 0, 1, 80, 55, 5, 5, -10, 0 BOX, NAME BOX, black, 1, white, 0, 1, 125, 55, 5, 5, -10, 0 BOX, SKEWED, black, 1, white, 0, 1, 125,55,5,5,-10,0 BOX, PAGE BORDER, black, 1, white, 1, 50, 100,100,0,0,0,0 BOX, DETAIL BOX, darkblue, 1, white, 0, 3, 250, 200, 15,15,0,0 TEXT FONT, PowerPin, Dejavu Sans, 25, , black, normal, bold, normal TEXT FONT, Heading, BenchNine, 50, , black, normal, 700, normal PAGE, A4-L DPI, 300 DRAW # Load up the fonts we use GOOGLEFONT,&#8221;https:\/\/fonts.googleapis.com\/css?family=BenchNine:300,400,700|Pragati+Narrow:700|Rubik|Ruslan+Display|Work+Sans:700,800,900&#8243; # Draw a border on the page BOX, PAGE BORDER, 0,0, 100%, 100% # Left Side Pins ANCHOR, 1000,100 PINSET, LEFT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 PINTEXT, POWER, OUTPUT, POWER, 5V, PowerPin, PINTEXT, POWER, IO, POWER, GND, PowerPin, PINTEXT, POWER, OUTPUT, POWER, 3.3V , PowerPin, PIN, POWER , IO,,GP29,ADC3,,,,,,, PIN, POWER , IO,,GP28,ADC2,,,,,,, PIN, POWER , IO,,GP27,ADC1,,I2C1 SCL,,,,, PIN, POWER , IO,,GP26,ADC0,,I2C1 SDA,,,,, PIN, POWER , IO,,GP15,,SPI1 SCK,I2C1 SDA,,,,, PIN, POWER , IO,,GP14,,SPI1 TX,I2C1 SDA,,,,, # Right Side Pins ANCHOR, 1100,100 PINSET, RIGHT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 PIN, POWER , IO,,GP0,,SPI0 RX,I2C0 SDA,UART0 TX\\n(def.),,,, PIN, POWER , IO,,GP1,,SPI0 CSn,I2C0 SCL,UART0 RX\\n(def.),,,, PIN, POWER , IO,,GP2,,SPI0 SCK,I2C1 SDA,,,,, PIN, POWER , IO,,GP3,,SPI0 TX,I2C1 SCL,,,,, PIN, POWER , IO,,GP4,,SPI0 RX,I2C0 SDA,UART1 TX,,,, PIN, POWER , IO,,GP5,,SPI0 CSn,I2C0 SCL,UART1 TX,,,, PIN, POWER , IO,,GP6,,SPI0 SCK,I2C1 SDA,,,,, PIN, POWER , IO,,GP7,,SPI0 TX,I2C1 SCL,,,,, PIN, POWER , IO,,GP8,,SPI1 RX,I2C0 SDA,UART1 TX,,,, PIN, POWER , IO,,GP9,,SPI1 CSn,I2C1 SCL,UART1 TX,,,, PIN, POWER , IO,,GP10,,SPI1 SCK,I2C1 SDA,,,,, PIN, POWER , IO,,GP11,,SPI1 TX,I2C1 SCL,,,,, PIN, POWER , IO,,GP12,,SPI1 RX,I2C0 SDA,UART0 TX,,,, PIN, POWER , IO,,GP13,,SPI1 CSn,I2C0 SCL,UART0 TX,,,, # Right Side Pins ANCHOR, 2100,100 PINSET, RIGHT, PACKED, CENTER, CENTER, 74.75, 30, 45, 60, 10, 0 PINTEXT, POWER, IO, POWER, GND, PowerPin, PIN, POWER , IO,,GP25,,,,,,,, PIN, POWER , IO,,GP24,,,,,,,, PIN, POWER , IO,,GP23,,,,,,,, PIN, POWER , IO,,GP22,,,,,,,, PIN, POWER , IO,,GP21,,,I2C0 SCL,,,,, PIN, POWER , IO,,GP20,,,I2C0 SDA,,,,, PIN, POWER , IO,,GP19,,SPI0 TX,I2C1 SCL,,,,, PIN, POWER , IO,,GP18,,SPI0 SCK,I2C1 SDA,,,,, PIN, POWER , IO,,GP17,,SPI0 CSn,I2C0 SCA,UART0 RX,,,,<\/div>\n<\/div>\n<p>The generated SVG image is shown below.<br \/><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024.png\"><img decoding=\"async\" class=\"aligncenter wp-image-844 size-large\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-1024x576.png\" alt=\"RP2040-zero\u3082\u3069\u304d\u306e\u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\u306e\u307f\" width=\"1024\" height=\"576\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-1024x576.png 1024w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-300x169.png 300w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-768x432.png 768w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-1536x864.png 1536w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-320x180.png 320w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-530x298.png 530w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-565x318.png 565w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-710x399.png 710w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-725x408.png 725w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024-160x90.png 160w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1d88957e5b1d8ea8455525aaafed0024.png 1920w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h2>Overlaying the SVG Image onto a Photo<\/h2>\n<p>By overlaying the created SVG image onto an actual photo of the electronic component, I made the pinout visually clearer. This allows for a more intuitive understanding of the pin layout. I used <a href=\"https:\/\/www.canva.com\/\">Canva<\/a> for image overlay and composition.<br \/><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1.png\"><img decoding=\"async\" class=\"aligncenter wp-image-846 size-full\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1.png\" alt=\"RP2040-zero\u3082\u3069\u304d\u306e\u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\" width=\"1024\" height=\"768\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1.png 1024w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1-300x225.png 300w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/1-768x576.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><a href=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/2.png\"><img decoding=\"async\" class=\"aligncenter wp-image-847 size-full\" src=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/2.png\" alt=\"RP2040-zero\u3082\u3069\u304d\u306e\u88cf\u306e\u30d4\u30f3\u30a2\u30b5\u30a4\u30f3\" width=\"1024\" height=\"768\" srcset=\"https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/2.png 1024w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/2-300x225.png 300w, https:\/\/donguri3.net\/wp-content\/uploads\/2025\/03\/2-768x576.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/p>\n<h2>Might There Be an Even Better Tool?<\/h2>\n<p>However, it appears that <strong>GenPinoutSVG is currently no longer maintained<\/strong>. There may be newer and more user-friendly tools available.<\/p>\n<p>In particular, if there is a tool that allows pin information to be written in JSON or YAML instead of CSV, it would enable more flexible data management, so I would like to continue investigating if such a tool exists.<\/p>\n<p>If I find any new tools in the future, I will be sure to introduce them.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When checking the pinout of electronic components, store listing images are helpful, but reusing them directly [&hellip;]<\/p>\n","protected":false},"author":4,"featured_media":844,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"en_US","_original_post":"https:\/\/donguri3.net\/?p=831","footnotes":""},"categories":[1163],"tags":[9,51,52,290,47,262,291,274,278,270],"class_list":["post-4970","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-electronics-microcontroller","tag-diy","tag-git","tag-https","tag-json","tag-python","tag-rp2040-zero","tag-yaml","tag-274","tag-278","tag-270","en-US"],"_links":{"self":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/4970","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/comments?post=4970"}],"version-history":[{"count":1,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/4970\/revisions"}],"predecessor-version":[{"id":4973,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/posts\/4970\/revisions\/4973"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media\/844"}],"wp:attachment":[{"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/media?parent=4970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/categories?post=4970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/donguri3.net\/wp-json\/wp\/v2\/tags?post=4970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}