<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sgmk-ssam.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gandalf</id>
	<title>SGMK-SSAM-WIKI - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sgmk-ssam.ch/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Gandalf"/>
	<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/wiki/Special:Contributions/Gandalf"/>
	<updated>2026-10-27T07:25:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=MechArtLab_Infrastructure&amp;diff=14499</id>
		<title>MechArtLab Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=MechArtLab_Infrastructure&amp;diff=14499"/>
		<updated>2026-10-18T13:36:00Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: resize 3D stuff&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MechArtLab]]&lt;br /&gt;
&lt;br /&gt;
== Electronics ==&lt;br /&gt;
=== Workspace ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s around 8 electronics workstations equipped with soldering mats, irons, helping hands, side cutters, multimeters and illumination&lt;br /&gt;
&lt;br /&gt;
[[File:electronics_workspace.png|320px]] [[File:mechartlab_adam.png|320px]] &lt;br /&gt;
&lt;br /&gt;
=== Components &amp;amp; Tools ===&lt;br /&gt;
&lt;br /&gt;
A reasonable amount of components and additional tools is available&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; gap:1em; align-items:flex-start;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;&lt;br /&gt;
    [[[[File:electronics_components.png|320px|Portrait]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display:flex; flex-direction:column; gap:1em;&amp;quot;&amp;gt;&lt;br /&gt;
    [[File:more_components.png|320px|Top]]&lt;br /&gt;
    [[File:bw_oubliette.png|320px|Bottom]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look / ask around in case you&#039;re looking for something specific.&lt;br /&gt;
&lt;br /&gt;
=== SMD collection ===&lt;br /&gt;
&lt;br /&gt;
See a list of all our parts: https://sgmkcloud.ocloud.de/index.php/s/GmFmeziyQkk9cCM&lt;br /&gt;
&lt;br /&gt;
Or for nextcloud users, editable: https://sgmkcloud.ocloud.de/index.php/f/43592&lt;br /&gt;
&lt;br /&gt;
[[File:photo_2025-04-21_14-11-33.jpg|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Workshop ==&lt;br /&gt;
&lt;br /&gt;
The mechanical workshop holds an array of tools and supplies, as well as a pneumatic compressor&lt;br /&gt;
&lt;br /&gt;
[[File:mechanical_workshop.png|320px]] [[File:workshop_reverse.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:workshop_tools.png|320px]] [[File:workshop_supplies.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Crime support Dremel ===&lt;br /&gt;
&lt;br /&gt;
To better support criminal activities, the workshop also features a Proxmox dremel device&lt;br /&gt;
&lt;br /&gt;
[[File:proxmox_large.png|320px]] [[File:dremel_crime.png|320px]] &lt;br /&gt;
&lt;br /&gt;
=== Mysterious Machine ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s a mysterious machine attached to the far wall of the mechanical workshop&lt;br /&gt;
&lt;br /&gt;
[[File:mysterious_machine.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Your mileage may vary.&lt;br /&gt;
&lt;br /&gt;
== 2D Printers ==&lt;br /&gt;
=== HP LaserJet ===&lt;br /&gt;
[[File:laserjet_p3015.png|thumb|right|alt=Photo of an HP LaserJet 3015P|Our trusty 2D printing workhorse 🖨️]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Next to Retro Computing area &lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; HP LaserJet 3015P&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing two-dimensional objects in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; ipp://npi0e1641.local/ (IPP) or socket://npi0e1641.local:9100 (JetDirect)&lt;br /&gt;
* &#039;&#039;&#039;Toner&#039;&#039;&#039; HP 55A (CE255A)&lt;br /&gt;
&lt;br /&gt;
=== Samsung ProXpress ===&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; DigiGes office&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Samsung ProXpress M3325ND&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing two-dimensional objects in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; Walk over and plug into USB&lt;br /&gt;
&lt;br /&gt;
=== ✨ Stikka Centraal ✨ ===&lt;br /&gt;
[[File:Stikka Printa.jpg|thumb|right|alt=A Brother QL550 label printer|✨ Stikka Centraal ✨: &#039;&#039;&amp;quot;Kleben und kleben lassen&amp;quot;&#039;&#039;]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Table near DigiGes entrance&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Brother QL570 etc, ESP32&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing sticky labels in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;Features&#039;&#039;&#039; Label &amp;amp; sticker printing, generating QR code labels etc&lt;br /&gt;
* &#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
** Brother QL &lt;br /&gt;
*** Transparent or non-transparent [white | pink] sticker rolls of 62mm or 50mm width&lt;br /&gt;
** Zebra&lt;br /&gt;
*** Transparent or non-transparent [white | pink] sticker rolls of 62mm or 50mm width without the black plastic parts&lt;br /&gt;
*** Whatever thermodirect label you find (needs calibration though) big boi (GK420) accepts up 108mm width&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; https://stikka-factory.github.io/stikka-mqtt&lt;br /&gt;
[[File:Stikka Roll.jpg|thumb|right|alt=A Brother QL550 label printer with its cover open, showing the handle used to change label rolls|Stikka Printa: Upskirt shot 😍]]&lt;br /&gt;
&lt;br /&gt;
==== Caveats ====&lt;br /&gt;
* The non-transparent paper labels don&#039;t come off easily. After peeling off parts of it, you might have to use a solvent or duct tape to completely remove the remains.&lt;br /&gt;
&lt;br /&gt;
==== Changing supplies ====&lt;br /&gt;
&lt;br /&gt;
===== Brother QL =====&lt;br /&gt;
* Open the cover&lt;br /&gt;
* Pull orange lever up&lt;br /&gt;
* Remove previous roll&lt;br /&gt;
* Insert new roll&lt;br /&gt;
* Feed new roll through front feeder&lt;br /&gt;
* Push orange lever back down&lt;br /&gt;
* Close cover&lt;br /&gt;
&lt;br /&gt;
===== Zebra Printers =====&lt;br /&gt;
* Open the cover&lt;br /&gt;
* Pull back the labels&lt;br /&gt;
* Remove previous roll pushing the yellowish plastic things appart&lt;br /&gt;
* Insert new roll&lt;br /&gt;
* Feed it through the yellow hooks and the front feeder&lt;br /&gt;
* Close cover&lt;br /&gt;
* The printer should feed one label, if that doesn&#039;t work it needs calibration &lt;br /&gt;
* If the print doesn&#039;t fit horizontally after changing to a new label type, it&#039;s needs to be calibrated on the printer (for now)&lt;br /&gt;
&lt;br /&gt;
==== Debugging ====&lt;br /&gt;
* The printers have all their own ESP32 reachable from the Bitwäscherei-Bau network under the hostnames &amp;lt;PRINTERNAME&amp;gt;.local (for example btw-pink.local). It has a tab for logs there&lt;br /&gt;
* The ESP32 boards have a blinking LED&lt;br /&gt;
** red means no connection to MQTT broker&lt;br /&gt;
** yellow means connecting to MQTT broker&lt;br /&gt;
** green means connection established&lt;br /&gt;
** cyan means some data been sent&lt;br /&gt;
* On the ESP32 WebUI should be a button to make a test print&lt;br /&gt;
* If the stikka-factory website shows some USB not enumerated error, restart the ESP32 (for now)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* There&#039;s an orga on GitHub (https://github.com/stikka-factory)&lt;br /&gt;
* https://github.com/stikka-factory/stikka-esp32 is the firmware running on the ESP32 boards&lt;br /&gt;
* https://github.com/stikka-factory/stikka-mqtt is the website hosted on github.io&lt;br /&gt;
&lt;br /&gt;
== 3D Printers  ==&lt;br /&gt;
&lt;br /&gt;
=== Prusa CORE One ===&lt;br /&gt;
[[File:prusa-core-one.jpeg|thumb|right|220px]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Next to DigiGes entrance &lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Prusa CORE One&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing three-dimensional objects&lt;br /&gt;
* &#039;&#039;&#039;Nozzle&#039;&#039;&#039; 0.4mm&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; prusa-core-one.local&lt;br /&gt;
* &#039;&#039;&#039;Protocol&#039;&#039;&#039; PrusaLink&lt;br /&gt;
* &#039;&#039;&#039;Authentication&#039;&#039;&#039; HTTP Digest&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039; maker&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039; WSVXcPiZtFmmCMk&lt;br /&gt;
&lt;br /&gt;
=== Ender 3 &amp;quot;Coconut 1&amp;quot; – 1.4 mm nozzle ===&lt;br /&gt;
[[File:Ender3_MechArtLab.jpg|thumb|right|220px]]&lt;br /&gt;
&#039;&#039;The old workhorse (since 2019): fast prototypes and vase mode 🏺&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; MechArtLab&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Creality Ender 3 (Marlin)&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Fast prototypes, vases, boxes and enclosures in spiral vase mode&lt;br /&gt;
* &#039;&#039;&#039;Nozzle&#039;&#039;&#039; 1.4 mm&lt;br /&gt;
* &#039;&#039;&#039;Printing&#039;&#039;&#039; microSD card&lt;br /&gt;
* &#039;&#039;&#039;Slicer profile&#039;&#039;&#039; [[File:SGMK_Ender3_1.4mm_Vase_PrusaSlicer.ini.zip]]&lt;br /&gt;
* &#039;&#039;&#039;Instructions&#039;&#039;&#039; [[Ender3]]&lt;br /&gt;
&lt;br /&gt;
=== Ender 3 V2 &amp;quot;Coconut 2&amp;quot; ===&lt;br /&gt;
[[File:Ender3_v2.jpg|thumb|right|220px]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; MechArtLab&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Creality Ender 3 V2, upgraded to Klipper&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing three-dimensional objects&lt;br /&gt;
* &#039;&#039;&#039;Nozzle&#039;&#039;&#039; 0.4 mm&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; http://coconut2.local&lt;br /&gt;
* &#039;&#039;&#039;Instructions&#039;&#039;&#039; [[Ender3 v2]] (being updated)&lt;br /&gt;
&lt;br /&gt;
=== Bed leveling for Ender 3 (&amp;amp; V2) ===&lt;br /&gt;
Check this movie: https://www.youtube.com/watch?v=4JSa_r8xgX8&lt;br /&gt;
&lt;br /&gt;
== Laser Cutters ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a public MacBook with [https://lightburnsoftware.com/LightBurn LightBurn] preinstalled and configured for our laser cutter armada&lt;br /&gt;
&lt;br /&gt;
[[File:laser_macbook.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Creality Falcon A1 Pro ===&lt;br /&gt;
&lt;br /&gt;
[[File:falcon_exhaust.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
==== Specifications ====&lt;br /&gt;
&lt;br /&gt;
* 20W blue diode laser&lt;br /&gt;
* 2W infrared module for glass and metal, at 455±5 nm wavelength&lt;br /&gt;
* Engraving area: 358 × 268mm&lt;br /&gt;
* Max. Working Speed: 600mm/s&lt;br /&gt;
* Cuts up to: 10mm basswood, 8mm black acrylic or 0.04mm stainless sheet&lt;br /&gt;
* For full specs, see [https://www.creality.com/products/falcon-a1-pro-20w vendor website]&lt;br /&gt;
&lt;br /&gt;
==== General usage ====&lt;br /&gt;
&lt;br /&gt;
[[File:falcon_vali.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
* Ensure the compressor in the wood workshop is turned on ☝️&lt;br /&gt;
* Place the exhaust hose through the window&lt;br /&gt;
* Ensure the devices tubular lock is in the unlocked position&lt;br /&gt;
* Ensure power switch is in in the ON position&lt;br /&gt;
* Unlock the Emergency Stop by turning the knob&lt;br /&gt;
* Connect LightBurn via USB-C and laser away ⚡&lt;br /&gt;
&lt;br /&gt;
==== Known quirks ====&lt;br /&gt;
&lt;br /&gt;
* The devices touch display turns off after a few minutes. Just touch it to make it shine again&lt;br /&gt;
* Though the laser cutter comes with USB-C ports, using a USB-C to USB-C cable has been problematic&lt;br /&gt;
* Using USB-C to USB-A cable with a USB-A-to-USB-C adapter is known to work 🫠&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
&lt;br /&gt;
* To operate the Falcon A1 Pro using LightBurn on your own device, see [https://wiki.creality.com/en/laser-engraver/falcon-a1-pro/lightburn-guide their Wiki]&lt;br /&gt;
* For improved settings, use Aaron&#039;s magic [[:File:Creality Falcon A1 Pro Aa 08-2026.lbzip.zip|Girlen Core config]] ✨&lt;br /&gt;
&lt;br /&gt;
=== ORTUR Laser Master 2 ===&lt;br /&gt;
&lt;br /&gt;
[[File:ORTUR_installed.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
The attached computer has already LightBurn installed, it&#039;s the best software to use many different laser machines: https://www.youtube.com/watch?v=YLhbvwq_EDc&lt;br /&gt;
&lt;br /&gt;
You find drivers and firmware updates here: https://ortur.tech/olm2/&lt;br /&gt;
&lt;br /&gt;
Hackaday wrote a few articles on mods and improvements, aswell as a nice discussion on open source hardware around the ORTUR company: https://hackaday.com/tag/ortur/&lt;br /&gt;
&lt;br /&gt;
== WetLab ==&lt;br /&gt;
&lt;br /&gt;
Use the WetLab for PCB etching and other activities involving chemicals or fluids&lt;br /&gt;
&lt;br /&gt;
[[File:wetlab.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== [[PCB Etching]] ===&lt;br /&gt;
&lt;br /&gt;
Instructions on how to use the PCB etching facility can be found under [[PCB Etching]].&lt;br /&gt;
&lt;br /&gt;
Instructions for [[Mask design and print]] for custom PCBs.&lt;br /&gt;
&lt;br /&gt;
=== Oven for Reflow and PDMS ===&lt;br /&gt;
&lt;br /&gt;
There is a temperature sensor in the oven connected to an arduino that can be read through serial terminal. At the moment the sensor is mounted at the wrong position and shows around 40° less than the real temperature in the moddle of the oven. more about the code and connection of the [[temperature sensor]] is documented.&lt;br /&gt;
&lt;br /&gt;
Instructions for [[reflow soldering]].&lt;br /&gt;
&lt;br /&gt;
Instructions for [[PDMS bioelectronix]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lasercutter for PCB stencils ===&lt;br /&gt;
&lt;br /&gt;
[http://hardwarebreakout.com/2013/03/diy-laser-cutter-for-pcb-stencils http://hardwarebreakout.com/2013/03/diy-laser-cutter-for-pcb-stencils]&lt;br /&gt;
&lt;br /&gt;
== Library ==&lt;br /&gt;
&lt;br /&gt;
=== Book Shelves ===&lt;br /&gt;
&lt;br /&gt;
Bitwäscherei features a couple of bookshelves containing physical books&lt;br /&gt;
&lt;br /&gt;
[[File:bw_bookshelf1.png|320px]] [[File:bw_bookshelf2.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Online Services ===&lt;br /&gt;
&lt;br /&gt;
Check out the online [http://www.librarything.de/catalog/SGMK Library]. Login is &#039;SGMK&#039; combined with our beloved password...&lt;br /&gt;
&lt;br /&gt;
[[File:Solderingiseasy.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
Comic on soldering [[File:FullSolderComic_EN.pdf|FullSolderComic_EN.pdf]] PDF booklet. by [http://log.andie.se Andie Nordgren]&lt;br /&gt;
[http://www.example.com link title]&lt;br /&gt;
&lt;br /&gt;
== Office / Public Station ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:mechartlab_office.jpg|320px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:IMG_0082.jpg|180px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Storage ==&lt;br /&gt;
&lt;br /&gt;
The shelves for personal storage boxes are located in the hallway towards the smoking area &amp;lt;small&amp;gt;*&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:smoking_hallway.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;* Feature exclusive to MechArtLab Pro subscription members&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PowerPoint Arena ==&lt;br /&gt;
&lt;br /&gt;
Bitwäscherei features a large area dedicated to holding conventions and presentations&lt;br /&gt;
&lt;br /&gt;
[[File:bw_powerpoint_arena.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use at your own risk.&lt;br /&gt;
&lt;br /&gt;
== Chill out / Coffee ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a lounge with a couple of sofas, as well as a kitchen / bar area&lt;br /&gt;
&lt;br /&gt;
[[File:bw_chillout.png|320px]] [[File:bw_bar.png|320px]]&lt;br /&gt;
&lt;br /&gt;
Maybe clean up your mess up after you&#039;re done?&lt;br /&gt;
&lt;br /&gt;
== Refreshments ==&lt;br /&gt;
&lt;br /&gt;
Various cold beverages are available in the two public fridges.&lt;br /&gt;
&lt;br /&gt;
[[File:bw_fridge1.png|320px]] [[File:bw_fridge2.png|320px]]&lt;br /&gt;
&lt;br /&gt;
Please use the attached TWINT QR code to pay for your purchases.&lt;br /&gt;
&lt;br /&gt;
== Entertainment ==&lt;br /&gt;
=== Toilet DJ ===&lt;br /&gt;
Plays random WAV files from SD card upon poweron, with randomness being a bit wonky due to seeding from a floating analog pin.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse:collapse; border:0;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:0;&amp;quot; |&lt;br /&gt;
[[File:toilet_rave.jpg|320px]]&lt;br /&gt;
| style=&amp;quot;padding:0;&amp;quot; |&lt;br /&gt;
[[File:toiletdj-amp.jpg|320px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:toiletdj-ui.jpg|320px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Currently features about 100 tunes, feel free to add your own favourites! &amp;lt;small&amp;gt;*Note the file format requirements [[MechArtLab_Infrastructure#System_specs|below]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Amplifier inputs ====&lt;br /&gt;
The amplifier is located on top of the flushing tank, and has three inputs:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Tape&#039;&#039;&#039; ToiletDJ&lt;br /&gt;
* &#039;&#039;&#039;Tuner&#039;&#039;&#039; Bluetooth dongle&lt;br /&gt;
* &#039;&#039;&#039;CD&#039;&#039;&#039; &#039;&#039;unassigned&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== System specs ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Amplifier&#039;&#039;&#039; [https://www.radiomuseum.org/r/sintron_dynavox_cs_pa1.html Dynavox CS-PA 1]&lt;br /&gt;
* &#039;&#039;&#039;Speakers&#039;&#039;&#039; [https://hifi-wiki.com/index.php/Grundig_Box_510 Grundig Kugelbox 510]&lt;br /&gt;
* &#039;&#039;&#039;System&#039;&#039;&#039; Arduino Uno, [https://www.adafruit.com/product/94 Adafruit Wave Shield v1.1]&lt;br /&gt;
* &#039;&#039;&#039;Storage&#039;&#039;&#039; 32GB SD card, FAT (MS-DOS) filesystem&lt;br /&gt;
* &#039;&#039;&#039;WAV format&#039;&#039;&#039; Mono, 22kHz, 16-bit sampling rate&lt;br /&gt;
* &#039;&#039;&#039;Repo&#039;&#039;&#039; [https://github.com/gand417/toiletdj GitHub]&lt;br /&gt;
&lt;br /&gt;
==== File conversion ====&lt;br /&gt;
&lt;br /&gt;
To convert a sound file into the required format, you can use tools like &#039;&#039;ffmpeg&#039;&#039; as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ffmpeg -i input.mp3 -ac 1 -ar 22050 -sample_fmt s16 output.wav&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14498</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14498"/>
		<updated>2026-10-18T13:33:59Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
* See https://github.com/bdring/FluidNC/releases for the latest release&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://github.com/bdring/FluidNC/&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
For a more Cartman-friendly version of the WebUI, see the Salome [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-southpark-theme South Park theme]&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
An evolution of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
[[File:brušograf_webui_simlulator.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
=== OpenBrushograph Studio &amp;amp; Co ===&lt;br /&gt;
&lt;br /&gt;
OpenBrushograph Studio and many other extensions can be found at &lt;br /&gt;
&lt;br /&gt;
https://openbrushograph.github.io/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support (including LCD display showing voltage)&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration (including RJ12 connector for pendants)&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
* Switch to ESP32-S3&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14484</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14484"/>
		<updated>2026-09-30T20:36:57Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: chab.is&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:93%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 5px;&lt;br /&gt;
padding-bottom: 10px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;font:Helvetica;font-size:3em;&amp;quot;&amp;gt;Welcome to the [[SGMK-SSAM-WIKI:About|Swiss Mechatronic Art Society]] Wiki!&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Everyone is welcome to register and contribute to the wiki! Let&#039;s make it big!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#555;font-size:1.0em;font-weight:bolder;&amp;quot;&amp;gt;To register or edit you need the code: transist0r&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:40%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fee;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 20px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Topics==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style-type:none; list-style-image:none; font-size:; margin: 0; color:#555;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mechartlab===&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab]] - Our hackerspace in Zurich&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Infrastructure|MechArtLab Infrastructure]] - Know the tools!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab NutzerInnen]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab goes Bitwäscherei - Join the Fun]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab at Bitwäscherei]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Hacker-in-Residence Programme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[OpenLab]] - Every tuesday, 8pm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;li&amp;gt;[[Hardware_Library|Hardware Library]] - Sharing is caring!&amp;lt;/li&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Wishlist|MechArtLab Wishlist]] - Wish list for parts and tools for the lab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[EGO Labs]] - Tinker tools available for the community&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Festivals and Events===&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2026]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2025]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2024]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2025]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2024]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archipelago]] - Art and Science Investigations in Times of Unstable Knowledge&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2023]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[International Open Hackerspace Day 2023 - Bitwäscherei]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2022]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK X-mas Umtrunk 2021]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on-Tour 005: Chill &amp;amp; Taste, St. Gallen]] weltraum.sg spielzimmer.org&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2021]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2020]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK On-Tour: WERK Spionage]] - 27. Feb - 1. Mar 2020 (Basel)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäsching se Fjutscher]] - 1. Feb 2020 (L200, Zürich)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on tour: odenwilusenz]] - 20/21 Sept. 2019&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Flick the World 2019]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2019]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[DIY Gathering - Flick the World]] 2018&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KitSprint @ ANORG 2018]] - Forschungswochenende in Zürich 23-25. Feb [[Shenzhen Ready]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2018]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2017]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[ANYMA 2016]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2016]] - Forschungs- und Arbeitswoche zum 10 Jahre Jubel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Festival der Mechatronischen Künste]] 10 Jahre Jubiläum 2016&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Faker Faire]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KIBLIX 2011]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2007]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE resources]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archive HOME MADE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Projects===&lt;br /&gt;
&amp;lt;li&amp;gt;[[merch]]- sunvernir or colletion troohy&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Projects]] - Project documentation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Water Project]] - Resources &amp;amp; ideas for DIY water analysis and treatment &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[L200_showcase]] - Our window to the world&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]] - Workshop pages&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Meta===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK admin]] - Meeting Infos&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäscherei]] - Meeting Infos &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Parts]] - Find the right parts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[treasure_trove]] - Fundgrube Suche / Biete&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Partners/Links]] - Find out more about our partners&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Help]] - How to use this wiki (insert videos, images, calendar etc.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK-SSAM-WIKI:Community_portal|Feedback]] - Your feedback is important for us!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#efe;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Matrix==&lt;br /&gt;
&lt;br /&gt;
Join us on [https://matrix.to/#/#bw-general:chab.is chab.is]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#eef;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mailinglists==&lt;br /&gt;
&lt;br /&gt;
[http://mechatronicart.ch/mailman/listinfo Overview of SGMK mailing lists and subscription options]&lt;br /&gt;
&lt;br /&gt;
===makers===&lt;br /&gt;
makers list is an open discussion list for the maker community hosted by the Swiss Mechatronic Art Society. Anything related to activities, hacking, electronics, calls for help, special announcments, invitations etc. may be posted to the list. !!![http://secure7.tophost.ch/mailman/listinfo/makers_mechatronicart.ch subscribe]!!!&lt;br /&gt;
&lt;br /&gt;
===Mitgliederversand===&lt;br /&gt;
Dedicated [http://newsletter.mechatronicart.ch/newsletter/mitgliederversand/archive/ mailing tool] (Django) to communicate to all SGMK members. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Calendar]]==&lt;br /&gt;
&lt;br /&gt;
[https://www.google.com/calendar/embed?src=uk591vdm59td54dg1vrtfb2ebg%40group.calendar.google.com Google Calendar]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==Statuten==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/sgmk/statuten/blob/master/STATUTEN.md Statuten]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==[[Banking Account]]==&lt;br /&gt;
&lt;br /&gt;
Nr: 85-690767-2&lt;br /&gt;
&lt;br /&gt;
IBAN: CH42 0900 0000 8569 0767 2&lt;br /&gt;
&lt;br /&gt;
SWIFT/BIC: POFICHBEXXX&lt;br /&gt;
&lt;br /&gt;
Bank: PostFinance AG, Mingerstrasse 20, 3030 Bern, Schweiz&lt;br /&gt;
&lt;br /&gt;
Begünstigter: Schweizerische Gesellschaft für Mechatronische Kunst SGMK, 8004 Zürich&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14483</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14483"/>
		<updated>2026-09-30T20:33:41Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: /* Topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:93%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 5px;&lt;br /&gt;
padding-bottom: 10px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;font:Helvetica;font-size:3em;&amp;quot;&amp;gt;Welcome to the [[SGMK-SSAM-WIKI:About|Swiss Mechatronic Art Society]] Wiki!&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Everyone is welcome to register and contribute to the wiki! Let&#039;s make it big!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#555;font-size:1.0em;font-weight:bolder;&amp;quot;&amp;gt;To register or edit you need the code: transist0r&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:40%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fee;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 20px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Topics==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style-type:none; list-style-image:none; font-size:; margin: 0; color:#555;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Mechartlab===&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab]] - Our hackerspace in Zurich&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Infrastructure|MechArtLab Infrastructure]] - Know the tools!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab NutzerInnen]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab goes Bitwäscherei - Join the Fun]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab at Bitwäscherei]]&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Hacker-in-Residence Programme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[OpenLab]] - Every tuesday, 8pm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;li&amp;gt;[[Hardware_Library|Hardware Library]] - Sharing is caring!&amp;lt;/li&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Wishlist|MechArtLab Wishlist]] - Wish list for parts and tools for the lab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[EGO Labs]] - Tinker tools available for the community&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Festivals and Events===&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2026]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2025]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2024]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2025]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2024]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archipelago]] - Art and Science Investigations in Times of Unstable Knowledge&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2023]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[International Open Hackerspace Day 2023 - Bitwäscherei]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2022]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK X-mas Umtrunk 2021]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on-Tour 005: Chill &amp;amp; Taste, St. Gallen]] weltraum.sg spielzimmer.org&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2021]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2020]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK On-Tour: WERK Spionage]] - 27. Feb - 1. Mar 2020 (Basel)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäsching se Fjutscher]] - 1. Feb 2020 (L200, Zürich)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on tour: odenwilusenz]] - 20/21 Sept. 2019&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Flick the World 2019]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2019]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[DIY Gathering - Flick the World]] 2018&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KitSprint @ ANORG 2018]] - Forschungswochenende in Zürich 23-25. Feb [[Shenzhen Ready]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2018]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2017]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[ANYMA 2016]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2016]] - Forschungs- und Arbeitswoche zum 10 Jahre Jubel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Festival der Mechatronischen Künste]] 10 Jahre Jubiläum 2016&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Faker Faire]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KIBLIX 2011]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2007]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE resources]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archive HOME MADE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Projects===&lt;br /&gt;
&amp;lt;li&amp;gt;[[merch]]- sunvernir or colletion troohy&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Projects]] - Project documentation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Water Project]] - Resources &amp;amp; ideas for DIY water analysis and treatment &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[L200_showcase]] - Our window to the world&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]] - Workshop pages&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Meta===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK admin]] - Meeting Infos&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäscherei]] - Meeting Infos &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Parts]] - Find the right parts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[treasure_trove]] - Fundgrube Suche / Biete&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Partners/Links]] - Find out more about our partners&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Help]] - How to use this wiki (insert videos, images, calendar etc.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK-SSAM-WIKI:Community_portal|Feedback]] - Your feedback is important for us!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#efe;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Slack/Metaverse/IRC==&lt;br /&gt;
&lt;br /&gt;
===SLACK===&lt;br /&gt;
&lt;br /&gt;
join us at [http://gosgmk.slack.com gosgmk.slack.com]&lt;br /&gt;
&lt;br /&gt;
===Metaverse===&lt;br /&gt;
&lt;br /&gt;
visit bitwäscherei at [https://lab.mechatronicart.ch lab.mechatronicart.ch]&lt;br /&gt;
&lt;br /&gt;
===IRC (for oldschool people)===&lt;br /&gt;
&lt;br /&gt;
join us on [https://libera.chat libera.chat] #mechatronicart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#eef;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mailinglists==&lt;br /&gt;
&lt;br /&gt;
[http://mechatronicart.ch/mailman/listinfo Overview of SGMK mailing lists and subscription options]&lt;br /&gt;
&lt;br /&gt;
===makers===&lt;br /&gt;
makers list is an open discussion list for the maker community hosted by the Swiss Mechatronic Art Society. Anything related to activities, hacking, electronics, calls for help, special announcments, invitations etc. may be posted to the list. !!![http://secure7.tophost.ch/mailman/listinfo/makers_mechatronicart.ch subscribe]!!!&lt;br /&gt;
&lt;br /&gt;
===Mitgliederversand===&lt;br /&gt;
Dedicated [http://newsletter.mechatronicart.ch/newsletter/mitgliederversand/archive/ mailing tool] (Django) to communicate to all SGMK members. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Calendar]]==&lt;br /&gt;
&lt;br /&gt;
[https://www.google.com/calendar/embed?src=uk591vdm59td54dg1vrtfb2ebg%40group.calendar.google.com Google Calendar]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==Statuten==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/sgmk/statuten/blob/master/STATUTEN.md Statuten]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==[[Banking Account]]==&lt;br /&gt;
&lt;br /&gt;
Nr: 85-690767-2&lt;br /&gt;
&lt;br /&gt;
IBAN: CH42 0900 0000 8569 0767 2&lt;br /&gt;
&lt;br /&gt;
SWIFT/BIC: POFICHBEXXX&lt;br /&gt;
&lt;br /&gt;
Bank: PostFinance AG, Mingerstrasse 20, 3030 Bern, Schweiz&lt;br /&gt;
&lt;br /&gt;
Begünstigter: Schweizerische Gesellschaft für Mechatronische Kunst SGMK, 8004 Zürich&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14482</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14482"/>
		<updated>2026-09-30T20:32:18Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: /* Mechartlab */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:93%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 5px;&lt;br /&gt;
padding-bottom: 10px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;font:Helvetica;font-size:3em;&amp;quot;&amp;gt;Welcome to the [[SGMK-SSAM-WIKI:About|Swiss Mechatronic Art Society]] Wiki!&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Everyone is welcome to register and contribute to the wiki! Let&#039;s make it big!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#555;font-size:1.0em;font-weight:bolder;&amp;quot;&amp;gt;To register or edit you need the code: transist0r&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:40%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fee;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 20px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Topics==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style-type:none; list-style-image:none; font-size:; margin: 0; color:#555;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bitwäscherei - unser Hackerspace beim Bhf Hardbrücke===&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab at Bitwäscherei]]&lt;br /&gt;
&lt;br /&gt;
===Mechartlab===&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab]] - Our hackerspace in Zurich&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Infrastructure|MechArtLab Infrastructure]] - Know the tools!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab NutzerInnen]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab goes Bitwäscherei - Join the Fun]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Hacker-in-Residence Programme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[OpenLab]] - Every tuesday, 8pm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;li&amp;gt;[[Hardware_Library|Hardware Library]] - Sharing is caring!&amp;lt;/li&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Wishlist|MechArtLab Wishlist]] - Wish list for parts and tools for the lab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[EGO Labs]] - Tinker tools available for the community&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Festivals and Events===&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2026]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2025]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2024]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2025]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2024]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archipelago]] - Art and Science Investigations in Times of Unstable Knowledge&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2023]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[International Open Hackerspace Day 2023 - Bitwäscherei]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2022]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK X-mas Umtrunk 2021]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on-Tour 005: Chill &amp;amp; Taste, St. Gallen]] weltraum.sg spielzimmer.org&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2021]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2020]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK On-Tour: WERK Spionage]] - 27. Feb - 1. Mar 2020 (Basel)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäsching se Fjutscher]] - 1. Feb 2020 (L200, Zürich)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on tour: odenwilusenz]] - 20/21 Sept. 2019&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Flick the World 2019]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2019]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[DIY Gathering - Flick the World]] 2018&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KitSprint @ ANORG 2018]] - Forschungswochenende in Zürich 23-25. Feb [[Shenzhen Ready]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2018]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2017]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[ANYMA 2016]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2016]] - Forschungs- und Arbeitswoche zum 10 Jahre Jubel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Festival der Mechatronischen Künste]] 10 Jahre Jubiläum 2016&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Faker Faire]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KIBLIX 2011]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2007]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE resources]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archive HOME MADE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Projects===&lt;br /&gt;
&amp;lt;li&amp;gt;[[merch]]- sunvernir or colletion troohy&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Projects]] - Project documentation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Water Project]] - Resources &amp;amp; ideas for DIY water analysis and treatment &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[L200_showcase]] - Our window to the world&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]] - Workshop pages&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Meta===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK admin]] - Meeting Infos&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäscherei]] - Meeting Infos &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Parts]] - Find the right parts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[treasure_trove]] - Fundgrube Suche / Biete&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Partners/Links]] - Find out more about our partners&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Help]] - How to use this wiki (insert videos, images, calendar etc.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK-SSAM-WIKI:Community_portal|Feedback]] - Your feedback is important for us!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#efe;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Slack/Metaverse/IRC==&lt;br /&gt;
&lt;br /&gt;
===SLACK===&lt;br /&gt;
&lt;br /&gt;
join us at [http://gosgmk.slack.com gosgmk.slack.com]&lt;br /&gt;
&lt;br /&gt;
===Metaverse===&lt;br /&gt;
&lt;br /&gt;
visit bitwäscherei at [https://lab.mechatronicart.ch lab.mechatronicart.ch]&lt;br /&gt;
&lt;br /&gt;
===IRC (for oldschool people)===&lt;br /&gt;
&lt;br /&gt;
join us on [https://libera.chat libera.chat] #mechatronicart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#eef;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mailinglists==&lt;br /&gt;
&lt;br /&gt;
[http://mechatronicart.ch/mailman/listinfo Overview of SGMK mailing lists and subscription options]&lt;br /&gt;
&lt;br /&gt;
===makers===&lt;br /&gt;
makers list is an open discussion list for the maker community hosted by the Swiss Mechatronic Art Society. Anything related to activities, hacking, electronics, calls for help, special announcments, invitations etc. may be posted to the list. !!![http://secure7.tophost.ch/mailman/listinfo/makers_mechatronicart.ch subscribe]!!!&lt;br /&gt;
&lt;br /&gt;
===Mitgliederversand===&lt;br /&gt;
Dedicated [http://newsletter.mechatronicart.ch/newsletter/mitgliederversand/archive/ mailing tool] (Django) to communicate to all SGMK members. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Calendar]]==&lt;br /&gt;
&lt;br /&gt;
[https://www.google.com/calendar/embed?src=uk591vdm59td54dg1vrtfb2ebg%40group.calendar.google.com Google Calendar]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==Statuten==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/sgmk/statuten/blob/master/STATUTEN.md Statuten]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==[[Banking Account]]==&lt;br /&gt;
&lt;br /&gt;
Nr: 85-690767-2&lt;br /&gt;
&lt;br /&gt;
IBAN: CH42 0900 0000 8569 0767 2&lt;br /&gt;
&lt;br /&gt;
SWIFT/BIC: POFICHBEXXX&lt;br /&gt;
&lt;br /&gt;
Bank: PostFinance AG, Mingerstrasse 20, 3030 Bern, Schweiz&lt;br /&gt;
&lt;br /&gt;
Begünstigter: Schweizerische Gesellschaft für Mechatronische Kunst SGMK, 8004 Zürich&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14481</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Main_Page&amp;diff=14481"/>
		<updated>2026-09-30T20:19:10Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Move Mechartlab up&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:93%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 5px;&lt;br /&gt;
padding-bottom: 10px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1 style=&amp;quot;font:Helvetica;font-size:3em;&amp;quot;&amp;gt;Welcome to the [[SGMK-SSAM-WIKI:About|Swiss Mechatronic Art Society]] Wiki!&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Everyone is welcome to register and contribute to the wiki! Let&#039;s make it big!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#555;font-size:1.0em;font-weight:bolder;&amp;quot;&amp;gt;To register or edit you need the code: transist0r&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:40%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#fee;&lt;br /&gt;
color:#000;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 20px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Topics==&lt;br /&gt;
&amp;lt;ul style=&amp;quot;list-style-type:none; list-style-image:none; font-size:; margin: 0; color:#555;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Bitwäscherei - unser Hackerspace beim Bhf Hardbrücke===&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab at Bitwäscherei]]&lt;br /&gt;
&lt;br /&gt;
===Mechartlab===&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab NutzerInnen]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab goes Bitwäscherei - Join the Fun]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Hacker-in-Residence Programme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[sans-les-murs]] - von Februar bis Ende April 2020 im [https://zurich.fablab.ch/ Fablab Zürich]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[OpenLab]] - Every tuesday, 8pm&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab]] - Our hackerspace in Zurich&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Infrastructure|MechArtLab Infrastructure]] - Know the tools!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;!--&amp;lt;li&amp;gt;[[Hardware_Library|Hardware Library]] - Sharing is caring!&amp;lt;/li&amp;gt;--&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[MechArtLab_Wishlist|MechArtLab Wishlist]] - Wish list for parts and tools for the lab&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[EGO Labs]] - Tinker tools available for the community&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Festivals and Events===&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2026]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2025]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Xmas Umtrunk 2024]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2025]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2024]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archipelago]] - Art and Science Investigations in Times of Unstable Knowledge&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2023]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[International Open Hackerspace Day 2023 - Bitwäscherei]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2022]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK X-mas Umtrunk 2021]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on-Tour 005: Chill &amp;amp; Taste, St. Gallen]] weltraum.sg spielzimmer.org&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2021]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2020]] - DIY Forschungs- und Arbeitswoche&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK On-Tour: WERK Spionage]] - 27. Feb - 1. Mar 2020 (Basel)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäsching se Fjutscher]] - 1. Feb 2020 (L200, Zürich)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK on tour: odenwilusenz]] - 20/21 Sept. 2019&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Flick the World 2019]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2019]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[DIY Gathering - Flick the World]] 2018&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KitSprint @ ANORG 2018]] - Forschungswochenende in Zürich 23-25. Feb [[Shenzhen Ready]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2018]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2017]] - Forschungs- und Arbeitswoche für DIY-, Technologie- und Kunstprojekte&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[ANYMA 2016]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2016]] - Forschungs- und Arbeitswoche zum 10 Jahre Jubel&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Festival der Mechatronischen Künste]] 10 Jahre Jubiläum 2016&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Faker Faire]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[KIBLIX 2011]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE 2007]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[HOME MADE resources]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Archive HOME MADE]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Projects===&lt;br /&gt;
&amp;lt;li&amp;gt;[[merch]]- sunvernir or colletion troohy&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Projects]] - Project documentation&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Water Project]] - Resources &amp;amp; ideas for DIY water analysis and treatment &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[L200_showcase]] - Our window to the world&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Workshops]] - Workshop pages&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Meta===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK admin]] - Meeting Infos&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Bitwäscherei]] - Meeting Infos &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Parts]] - Find the right parts&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[treasure_trove]] - Fundgrube Suche / Biete&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[Partners/Links]] - Find out more about our partners&amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt;[[Help]] - How to use this wiki (insert videos, images, calendar etc.)&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[SGMK-SSAM-WIKI:Community_portal|Feedback]] - Your feedback is important for us!&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#efe;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Slack/Metaverse/IRC==&lt;br /&gt;
&lt;br /&gt;
===SLACK===&lt;br /&gt;
&lt;br /&gt;
join us at [http://gosgmk.slack.com gosgmk.slack.com]&lt;br /&gt;
&lt;br /&gt;
===Metaverse===&lt;br /&gt;
&lt;br /&gt;
visit bitwäscherei at [https://lab.mechatronicart.ch lab.mechatronicart.ch]&lt;br /&gt;
&lt;br /&gt;
===IRC (for oldschool people)===&lt;br /&gt;
&lt;br /&gt;
join us on [https://libera.chat libera.chat] #mechatronicart&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:45%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
background-color:#eef;&lt;br /&gt;
padding-top: 10px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Mailinglists==&lt;br /&gt;
&lt;br /&gt;
[http://mechatronicart.ch/mailman/listinfo Overview of SGMK mailing lists and subscription options]&lt;br /&gt;
&lt;br /&gt;
===makers===&lt;br /&gt;
makers list is an open discussion list for the maker community hosted by the Swiss Mechatronic Art Society. Anything related to activities, hacking, electronics, calls for help, special announcments, invitations etc. may be posted to the list. !!![http://secure7.tophost.ch/mailman/listinfo/makers_mechatronicart.ch subscribe]!!!&lt;br /&gt;
&lt;br /&gt;
===Mitgliederversand===&lt;br /&gt;
Dedicated [http://newsletter.mechatronicart.ch/newsletter/mitgliederversand/archive/ mailing tool] (Django) to communicate to all SGMK members. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Calendar]]==&lt;br /&gt;
&lt;br /&gt;
[https://www.google.com/calendar/embed?src=uk591vdm59td54dg1vrtfb2ebg%40group.calendar.google.com Google Calendar]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==Statuten==&lt;br /&gt;
&lt;br /&gt;
[https://github.com/sgmk/statuten/blob/master/STATUTEN.md Statuten]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&lt;br /&gt;
width:22%; float:left; margin-left:auto; margin-right:auto;&lt;br /&gt;
height:auto;&lt;br /&gt;
background-color:#fff;&lt;br /&gt;
padding-top: 0px;&lt;br /&gt;
padding-bottom: 0px;&lt;br /&gt;
padding-left: 30px;&lt;br /&gt;
padding-right: 30px;&lt;br /&gt;
border: 0px solid #aaa;&lt;br /&gt;
border-radius: 5px;&amp;quot;&amp;gt;&lt;br /&gt;
==[[Banking Account]]==&lt;br /&gt;
&lt;br /&gt;
Nr: 85-690767-2&lt;br /&gt;
&lt;br /&gt;
IBAN: CH42 0900 0000 8569 0767 2&lt;br /&gt;
&lt;br /&gt;
SWIFT/BIC: POFICHBEXXX&lt;br /&gt;
&lt;br /&gt;
Bank: PostFinance AG, Mingerstrasse 20, 3030 Bern, Schweiz&lt;br /&gt;
&lt;br /&gt;
Begünstigter: Schweizerische Gesellschaft für Mechatronische Kunst SGMK, 8004 Zürich&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14479</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14479"/>
		<updated>2026-09-28T16:30:01Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Cartman would be happy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
* See https://github.com/bdring/FluidNC/releases for the latest release&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://github.com/bdring/FluidNC/&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
For a more Cartman-friendly version of the WebUI, see the Salome [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-southpark-theme South Park theme]&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
An evolution of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
[[File:brušograf_webui_simlulator.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
=== OpenBrushograph Studio &amp;amp; Co ===&lt;br /&gt;
&lt;br /&gt;
OpenBrushograph Studio and many other extensions can be found at &lt;br /&gt;
&lt;br /&gt;
https://openbrushograph.github.io/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support (including LCD display showing voltage)&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration (including RJ12 connector for pendants)&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14478</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14478"/>
		<updated>2026-09-27T15:49:05Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: /* PCB Redesign */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
* See https://github.com/bdring/FluidNC/releases for the latest release&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://github.com/bdring/FluidNC/&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
An evolution of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
[[File:brušograf_webui_simlulator.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
=== OpenBrushograph Studio &amp;amp; Co ===&lt;br /&gt;
&lt;br /&gt;
OpenBrushograph Studio and many other extensions can be found at &lt;br /&gt;
&lt;br /&gt;
https://openbrushograph.github.io/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support (including LCD display showing voltage)&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration (including RJ12 connector for pendants)&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=MechArtLab_Infrastructure&amp;diff=14474</id>
		<title>MechArtLab Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=MechArtLab_Infrastructure&amp;diff=14474"/>
		<updated>2026-09-24T12:57:24Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MechArtLab]]&lt;br /&gt;
&lt;br /&gt;
== Electronics ==&lt;br /&gt;
=== Workspace ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s around 8 electronics workstations equipped with soldering mats, irons, helping hands, side cutters, multimeters and illumination&lt;br /&gt;
&lt;br /&gt;
[[File:electronics_workspace.png|320px]] [[File:mechartlab_adam.png|320px]] &lt;br /&gt;
&lt;br /&gt;
=== Components &amp;amp; Tools ===&lt;br /&gt;
&lt;br /&gt;
A reasonable amount of components and additional tools is available&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; gap:1em; align-items:flex-start;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;&lt;br /&gt;
    [[[[File:electronics_components.png|320px|Portrait]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display:flex; flex-direction:column; gap:1em;&amp;quot;&amp;gt;&lt;br /&gt;
    [[File:more_components.png|320px|Top]]&lt;br /&gt;
    [[File:bw_oubliette.png|320px|Bottom]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look / ask around in case you&#039;re looking for something specific.&lt;br /&gt;
&lt;br /&gt;
=== SMD collection ===&lt;br /&gt;
&lt;br /&gt;
See a list of all our parts: https://sgmkcloud.ocloud.de/index.php/s/GmFmeziyQkk9cCM&lt;br /&gt;
&lt;br /&gt;
Or for nextcloud users, editable: https://sgmkcloud.ocloud.de/index.php/f/43592&lt;br /&gt;
&lt;br /&gt;
[[File:photo_2025-04-21_14-11-33.jpg|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Workshop ==&lt;br /&gt;
&lt;br /&gt;
The mechanical workshop holds an array of tools and supplies, as well as a pneumatic compressor&lt;br /&gt;
&lt;br /&gt;
[[File:mechanical_workshop.png|320px]] [[File:workshop_reverse.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:workshop_tools.png|320px]] [[File:workshop_supplies.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Crime support Dremel ===&lt;br /&gt;
&lt;br /&gt;
To better support criminal activities, the workshop also features a Proxmox dremel device&lt;br /&gt;
&lt;br /&gt;
[[File:proxmox_large.png|320px]] [[File:dremel_crime.png|320px]] &lt;br /&gt;
&lt;br /&gt;
=== Mysterious Machine ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s a mysterious machine attached to the far wall of the mechanical workshop&lt;br /&gt;
&lt;br /&gt;
[[File:mysterious_machine.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Your mileage may vary.&lt;br /&gt;
&lt;br /&gt;
== 2D Printers ==&lt;br /&gt;
=== HP LaserJet ===&lt;br /&gt;
[[File:laserjet_p3015.png|thumb|right|alt=Photo of an HP LaserJet 3015P|Our trusty 2D printing workhorse 🖨️]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Next to Retro Computing area &lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; HP LaserJet 3015P&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing two-dimensional objects in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; ipp://npi0e1641.local/ (IPP) or socket://npi0e1641.local:9100 (JetDirect)&lt;br /&gt;
* &#039;&#039;&#039;Toner&#039;&#039;&#039; HP 55A (CE255A)&lt;br /&gt;
&lt;br /&gt;
=== Samsung ProXpress ===&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; DigiGes office&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Samsung ProXpress M3325ND&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing two-dimensional objects in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; Walk over and plug into USB&lt;br /&gt;
&lt;br /&gt;
=== ✨ Stikka Centraal ✨ ===&lt;br /&gt;
[[File:Stikka Printa.jpg|thumb|right|alt=A Brother QL550 label printer|✨ Stikka Centraal ✨: &#039;&#039;&amp;quot;Kleben und kleben lassen&amp;quot;&#039;&#039;]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Table near DigiGes entrance&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Brother QL570 etc, ESP32&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing sticky labels in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;Features&#039;&#039;&#039; Label &amp;amp; sticker printing, generating QR code labels etc&lt;br /&gt;
* &#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
** Brother QL &lt;br /&gt;
*** Transparent or non-transparent [white | pink] sticker rolls of 62mm or 50mm width&lt;br /&gt;
** Zebra&lt;br /&gt;
*** Transparent or non-transparent [white | pink] sticker rolls of 62mm or 50mm width without the black plastic parts&lt;br /&gt;
*** Whatever thermodirect label you find (needs calibration though) big boi (GK420) accepts up 108mm width&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; https://stikka-factory.github.io/stikka-mqtt&lt;br /&gt;
[[File:Stikka Roll.jpg|thumb|right|alt=A Brother QL550 label printer with its cover open, showing the handle used to change label rolls|Stikka Printa: Upskirt shot 😍]]&lt;br /&gt;
&lt;br /&gt;
==== Caveats ====&lt;br /&gt;
* The non-transparent paper labels don&#039;t come off easily. After peeling off parts of it, you might have to use a solvent or duct tape to completely remove the remains.&lt;br /&gt;
&lt;br /&gt;
==== Changing supplies ====&lt;br /&gt;
&lt;br /&gt;
===== Brother QL =====&lt;br /&gt;
* Open the cover&lt;br /&gt;
* Pull orange lever up&lt;br /&gt;
* Remove previous roll&lt;br /&gt;
* Insert new roll&lt;br /&gt;
* Feed new roll through front feeder&lt;br /&gt;
* Push orange lever back down&lt;br /&gt;
* Close cover&lt;br /&gt;
&lt;br /&gt;
===== Zebra Printers =====&lt;br /&gt;
* Open the cover&lt;br /&gt;
* Pull back the labels&lt;br /&gt;
* Remove previous roll pushing the yellowish plastic things appart&lt;br /&gt;
* Insert new roll&lt;br /&gt;
* Feed it through the yellow hooks and the front feeder&lt;br /&gt;
* Close cover&lt;br /&gt;
* The printer should feed one label, if that doesn&#039;t work it needs calibration &lt;br /&gt;
* If the print doesn&#039;t fit horizontally after changing to a new label type, it&#039;s needs to be calibrated on the printer (for now)&lt;br /&gt;
&lt;br /&gt;
==== Debugging ====&lt;br /&gt;
* The printers have all their own ESP32 reachable from the Bitwäscherei-Bau network under the hostnames &amp;lt;PRINTERNAME&amp;gt;.local (for example btw-pink.local). It has a tab for logs there&lt;br /&gt;
* The ESP32 boards have a blinking LED&lt;br /&gt;
** red means no connection to MQTT broker&lt;br /&gt;
** yellow means connecting to MQTT broker&lt;br /&gt;
** green means connection established&lt;br /&gt;
** cyan means some data been sent&lt;br /&gt;
* On the ESP32 WebUI should be a button to make a test print&lt;br /&gt;
* If the stikka-factory website shows some USB not enumerated error, restart the ESP32 (for now)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* There&#039;s an orga on GitHub (https://github.com/stikka-factory)&lt;br /&gt;
* https://github.com/stikka-factory/stikka-esp32 is the firmware running on the ESP32 boards&lt;br /&gt;
* https://github.com/stikka-factory/stikka-mqtt is the website hosted on github.io&lt;br /&gt;
&lt;br /&gt;
== 3D Printers  ==&lt;br /&gt;
&lt;br /&gt;
=== Prusa CORE One ===&lt;br /&gt;
[[File:prusa-core-one.jpeg|thumb|right|320px]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Next to DigiGes entrance &lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Prusa CORE One&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing three-dimensional objects&lt;br /&gt;
* &#039;&#039;&#039;Nozzle&#039;&#039;&#039; 0.4mm&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; prusa-core-one.local&lt;br /&gt;
* &#039;&#039;&#039;Protocol&#039;&#039;&#039; PrusaLink&lt;br /&gt;
* &#039;&#039;&#039;Authentication&#039;&#039;&#039; HTTP Digest&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039; maker&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039; WSVXcPiZtFmmCMk&lt;br /&gt;
&lt;br /&gt;
=== Random Machines ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;[[Ender3]]&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;[[Ender3 v2]]&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;[[MicroDelta]]&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Ultimaker&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:Ender3_MechArtLab.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:Ender3_v2.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:IMG 0083.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:8870471861 c28d68fa6d.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bed leveling for Ender 3 (&amp;amp; V2) ===&lt;br /&gt;
&lt;br /&gt;
Check this movie: https://www.youtube.com/watch?v=4JSa_r8xgX8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
Currently a [[MicroDelta]] printer is installed, use the page linked to get started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Design: Download Sketchup from [http://www.sketchup.com/ http://www.sketchup.com/] =&amp;gt; Design =&amp;gt; Export .STL&lt;br /&gt;
&lt;br /&gt;
Slice: Download Cura from [http://software.ultimaker.com/ http://software.ultimaker.com/] =&amp;gt; Load .STL =&amp;gt; Prepare =&amp;gt; Write .GCODE to SD card&lt;br /&gt;
&lt;br /&gt;
Print: Insert SD card into Ultimaker =&amp;gt; Push, Scroll to Card =&amp;gt; Select .GCODE =&amp;gt; Push&lt;br /&gt;
&lt;br /&gt;
Share: Upload model and .STL (but not .GCODE) to [http://thingiverse.com/ http://thingiverse.com/]&lt;br /&gt;
&lt;br /&gt;
First time? Ask [http://twitter.com/tamberg @tamberg].&lt;br /&gt;
&lt;br /&gt;
== Laser Cutters ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a public MacBook with [https://lightburnsoftware.com/LightBurn LightBurn] preinstalled and configured for our laser cutter armada&lt;br /&gt;
&lt;br /&gt;
[[File:laser_macbook.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Creality Falcon A1 Pro ===&lt;br /&gt;
&lt;br /&gt;
[[File:falcon_exhaust.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
==== Specifications ====&lt;br /&gt;
&lt;br /&gt;
* 20W blue diode laser&lt;br /&gt;
* 2W infrared module for glass and metal, at 455±5 nm wavelength&lt;br /&gt;
* Engraving area: 358 × 268mm&lt;br /&gt;
* Max. Working Speed: 600mm/s&lt;br /&gt;
* Cuts up to: 10mm basswood, 8mm black acrylic or 0.04mm stainless sheet&lt;br /&gt;
* For full specs, see [https://www.creality.com/products/falcon-a1-pro-20w vendor website]&lt;br /&gt;
&lt;br /&gt;
==== General usage ====&lt;br /&gt;
&lt;br /&gt;
[[File:falcon_vali.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
* Ensure the compressor in the wood workshop is turned on ☝️&lt;br /&gt;
* Place the exhaust hose through the window&lt;br /&gt;
* Ensure the devices tubular lock is in the unlocked position&lt;br /&gt;
* Ensure power switch is in in the ON position&lt;br /&gt;
* Unlock the Emergency Stop by turning the knob&lt;br /&gt;
* Connect LightBurn via USB-C and laser away ⚡&lt;br /&gt;
&lt;br /&gt;
==== Known quirks ====&lt;br /&gt;
&lt;br /&gt;
* The devices touch display turns off after a few minutes. Just touch it to make it shine again&lt;br /&gt;
* Though the laser cutter comes with USB-C ports, using a USB-C to USB-C cable has been problematic&lt;br /&gt;
* Using USB-C to USB-A cable with a USB-A-to-USB-C adapter is known to work 🫠&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
&lt;br /&gt;
* To operate the Falcon A1 Pro using LightBurn on your own device, see [https://wiki.creality.com/en/laser-engraver/falcon-a1-pro/lightburn-guide their Wiki]&lt;br /&gt;
* For improved settings, use Aaron&#039;s magic [[:File:Creality Falcon A1 Pro Aa 08-2026.lbzip.zip|Girlen Core config]] ✨&lt;br /&gt;
&lt;br /&gt;
=== ORTUR Laser Master 2 ===&lt;br /&gt;
&lt;br /&gt;
[[File:ORTUR_installed.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
The attached computer has already LightBurn installed, it&#039;s the best software to use many different laser machines: https://www.youtube.com/watch?v=YLhbvwq_EDc&lt;br /&gt;
&lt;br /&gt;
You find drivers and firmware updates here: https://ortur.tech/olm2/&lt;br /&gt;
&lt;br /&gt;
Hackaday wrote a few articles on mods and improvements, aswell as a nice discussion on open source hardware around the ORTUR company: https://hackaday.com/tag/ortur/&lt;br /&gt;
&lt;br /&gt;
== WetLab ==&lt;br /&gt;
&lt;br /&gt;
Use the WetLab for PCB etching and other activities involving chemicals or fluids&lt;br /&gt;
&lt;br /&gt;
[[File:wetlab.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== [[PCB Etching]] ===&lt;br /&gt;
&lt;br /&gt;
Instructions on how to use the PCB etching facility can be found under [[PCB Etching]].&lt;br /&gt;
&lt;br /&gt;
Instructions for [[Mask design and print]] for custom PCBs.&lt;br /&gt;
&lt;br /&gt;
=== Oven for Reflow and PDMS ===&lt;br /&gt;
&lt;br /&gt;
There is a temperature sensor in the oven connected to an arduino that can be read through serial terminal. At the moment the sensor is mounted at the wrong position and shows around 40° less than the real temperature in the moddle of the oven. more about the code and connection of the [[temperature sensor]] is documented.&lt;br /&gt;
&lt;br /&gt;
Instructions for [[reflow soldering]].&lt;br /&gt;
&lt;br /&gt;
Instructions for [[PDMS bioelectronix]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lasercutter for PCB stencils ===&lt;br /&gt;
&lt;br /&gt;
[http://hardwarebreakout.com/2013/03/diy-laser-cutter-for-pcb-stencils http://hardwarebreakout.com/2013/03/diy-laser-cutter-for-pcb-stencils]&lt;br /&gt;
&lt;br /&gt;
== Library ==&lt;br /&gt;
&lt;br /&gt;
=== Book Shelves ===&lt;br /&gt;
&lt;br /&gt;
Bitwäscherei features a couple of bookshelves containing physical books&lt;br /&gt;
&lt;br /&gt;
[[File:bw_bookshelf1.png|320px]] [[File:bw_bookshelf2.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Online Services ===&lt;br /&gt;
&lt;br /&gt;
Check out the online [http://www.librarything.de/catalog/SGMK Library]. Login is &#039;SGMK&#039; combined with our beloved password...&lt;br /&gt;
&lt;br /&gt;
[[File:Solderingiseasy.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
Comic on soldering [[File:FullSolderComic_EN.pdf|FullSolderComic_EN.pdf]] PDF booklet. by [http://log.andie.se Andie Nordgren]&lt;br /&gt;
[http://www.example.com link title]&lt;br /&gt;
&lt;br /&gt;
== Office / Public Station ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:mechartlab_office.jpg|320px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:IMG_0082.jpg|180px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Storage ==&lt;br /&gt;
&lt;br /&gt;
The shelves for personal storage boxes are located in the hallway towards the smoking area &amp;lt;small&amp;gt;*&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:smoking_hallway.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;* Feature exclusive to MechArtLab Pro subscription members&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PowerPoint Arena ==&lt;br /&gt;
&lt;br /&gt;
Bitwäscherei features a large area dedicated to holding conventions and presentations&lt;br /&gt;
&lt;br /&gt;
[[File:bw_powerpoint_arena.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use at your own risk.&lt;br /&gt;
&lt;br /&gt;
== Chill out / Coffee ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a lounge with a couple of sofas, as well as a kitchen / bar area&lt;br /&gt;
&lt;br /&gt;
[[File:bw_chillout.png|320px]] [[File:bw_bar.png|320px]]&lt;br /&gt;
&lt;br /&gt;
Maybe clean up your mess up after you&#039;re done?&lt;br /&gt;
&lt;br /&gt;
== Refreshments ==&lt;br /&gt;
&lt;br /&gt;
Various cold beverages are available in the two public fridges.&lt;br /&gt;
&lt;br /&gt;
[[File:bw_fridge1.png|320px]] [[File:bw_fridge2.png|320px]]&lt;br /&gt;
&lt;br /&gt;
Please use the attached TWINT QR code to pay for your purchases.&lt;br /&gt;
&lt;br /&gt;
== Entertainment ==&lt;br /&gt;
=== Toilet DJ ===&lt;br /&gt;
Plays random WAV files from SD card upon poweron, with randomness being a bit wonky due to seeding from a floating analog pin.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse:collapse; border:0;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:0;&amp;quot; |&lt;br /&gt;
[[File:toilet_rave.jpg|320px]]&lt;br /&gt;
| style=&amp;quot;padding:0;&amp;quot; |&lt;br /&gt;
[[File:toiletdj-amp.jpg|320px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:toiletdj-ui.jpg|320px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Currently features about 100 tunes, feel free to add your own favourites! &amp;lt;small&amp;gt;*Note the file format requirements [[MechArtLab_Infrastructure#System_specs|below]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Amplifier inputs ====&lt;br /&gt;
The amplifier is located on top of the flushing tank, and has three inputs:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Tape&#039;&#039;&#039; ToiletDJ&lt;br /&gt;
* &#039;&#039;&#039;Tuner&#039;&#039;&#039; Bluetooth dongle&lt;br /&gt;
* &#039;&#039;&#039;CD&#039;&#039;&#039; &#039;&#039;unassigned&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== System specs ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Amplifier&#039;&#039;&#039; [https://www.radiomuseum.org/r/sintron_dynavox_cs_pa1.html Dynavox CS-PA 1]&lt;br /&gt;
* &#039;&#039;&#039;Speakers&#039;&#039;&#039; [https://hifi-wiki.com/index.php/Grundig_Box_510 Grundig Kugelbox 510]&lt;br /&gt;
* &#039;&#039;&#039;System&#039;&#039;&#039; Arduino Uno, [https://www.adafruit.com/product/94 Adafruit Wave Shield v1.1]&lt;br /&gt;
* &#039;&#039;&#039;Storage&#039;&#039;&#039; 32GB SD card, FAT (MS-DOS) filesystem&lt;br /&gt;
* &#039;&#039;&#039;WAV format&#039;&#039;&#039; Mono, 22kHz, 16-bit sampling rate&lt;br /&gt;
* &#039;&#039;&#039;Repo&#039;&#039;&#039; [https://github.com/gand417/toiletdj GitHub]&lt;br /&gt;
&lt;br /&gt;
==== File conversion ====&lt;br /&gt;
&lt;br /&gt;
To convert a sound file into the required format, you can use tools like &#039;&#039;ffmpeg&#039;&#039; as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ffmpeg -i input.mp3 -ac 1 -ar 22050 -sample_fmt s16 output.wav&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=MechArtLab_Infrastructure&amp;diff=14473</id>
		<title>MechArtLab Infrastructure</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=MechArtLab_Infrastructure&amp;diff=14473"/>
		<updated>2026-09-24T12:50:15Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Add Prusa CORE One&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:MechArtLab]]&lt;br /&gt;
&lt;br /&gt;
== Electronics ==&lt;br /&gt;
=== Workspace ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s around 8 electronics workstations equipped with soldering mats, irons, helping hands, side cutters, multimeters and illumination&lt;br /&gt;
&lt;br /&gt;
[[File:electronics_workspace.png|320px]] [[File:mechartlab_adam.png|320px]] &lt;br /&gt;
&lt;br /&gt;
=== Components &amp;amp; Tools ===&lt;br /&gt;
&lt;br /&gt;
A reasonable amount of components and additional tools is available&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex; gap:1em; align-items:flex-start;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div&amp;gt;&lt;br /&gt;
    [[[[File:electronics_components.png|320px|Portrait]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;display:flex; flex-direction:column; gap:1em;&amp;quot;&amp;gt;&lt;br /&gt;
    [[File:more_components.png|320px|Top]]&lt;br /&gt;
    [[File:bw_oubliette.png|320px|Bottom]]&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look / ask around in case you&#039;re looking for something specific.&lt;br /&gt;
&lt;br /&gt;
=== SMD collection ===&lt;br /&gt;
&lt;br /&gt;
See a list of all our parts: https://sgmkcloud.ocloud.de/index.php/s/GmFmeziyQkk9cCM&lt;br /&gt;
&lt;br /&gt;
Or for nextcloud users, editable: https://sgmkcloud.ocloud.de/index.php/f/43592&lt;br /&gt;
&lt;br /&gt;
[[File:photo_2025-04-21_14-11-33.jpg|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Workshop ==&lt;br /&gt;
&lt;br /&gt;
The mechanical workshop holds an array of tools and supplies, as well as a pneumatic compressor&lt;br /&gt;
&lt;br /&gt;
[[File:mechanical_workshop.png|320px]] [[File:workshop_reverse.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:workshop_tools.png|320px]] [[File:workshop_supplies.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Crime support Dremel ===&lt;br /&gt;
&lt;br /&gt;
To better support criminal activities, the workshop also features a Proxmox dremel device&lt;br /&gt;
&lt;br /&gt;
[[File:proxmox_large.png|320px]] [[File:dremel_crime.png|320px]] &lt;br /&gt;
&lt;br /&gt;
=== Mysterious Machine ===&lt;br /&gt;
&lt;br /&gt;
There&#039;s a mysterious machine attached to the far wall of the mechanical workshop&lt;br /&gt;
&lt;br /&gt;
[[File:mysterious_machine.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Your mileage may vary.&lt;br /&gt;
&lt;br /&gt;
== 2D Printers ==&lt;br /&gt;
=== HP LaserJet ===&lt;br /&gt;
[[File:laserjet_p3015.png|thumb|right|alt=Photo of an HP LaserJet 3015P|Our trusty 2D printing workhorse 🖨️]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Next to Retro Computing area &lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; HP LaserJet 3015P&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing two-dimensional objects in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; ipp://npi0e1641.local/ (IPP) or socket://npi0e1641.local:9100 (JetDirect)&lt;br /&gt;
* &#039;&#039;&#039;Toner&#039;&#039;&#039; HP 55A (CE255A)&lt;br /&gt;
&lt;br /&gt;
=== Samsung ProXpress ===&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; DigiGes office&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Samsung ProXpress M3325ND&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing two-dimensional objects in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; Walk over and plug into USB&lt;br /&gt;
&lt;br /&gt;
=== ✨ Stikka Centraal ✨ ===&lt;br /&gt;
[[File:Stikka Printa.jpg|thumb|right|alt=A Brother QL550 label printer|✨ Stikka Centraal ✨: &#039;&#039;&amp;quot;Kleben und kleben lassen&amp;quot;&#039;&#039;]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Table near DigiGes entrance&lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Brother QL570 etc, ESP32&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing sticky labels in black &amp;amp; white&lt;br /&gt;
* &#039;&#039;&#039;Features&#039;&#039;&#039; Label &amp;amp; sticker printing, generating QR code labels etc&lt;br /&gt;
* &#039;&#039;&#039;Options&#039;&#039;&#039;&lt;br /&gt;
** Brother QL &lt;br /&gt;
*** Transparent or non-transparent [white | pink] sticker rolls of 62mm or 50mm width&lt;br /&gt;
** Zebra&lt;br /&gt;
*** Transparent or non-transparent [white | pink] sticker rolls of 62mm or 50mm width without the black plastic parts&lt;br /&gt;
*** Whatever thermodirect label you find (needs calibration though) big boi (GK420) accepts up 108mm width&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; https://stikka-factory.github.io/stikka-mqtt&lt;br /&gt;
[[File:Stikka Roll.jpg|thumb|right|alt=A Brother QL550 label printer with its cover open, showing the handle used to change label rolls|Stikka Printa: Upskirt shot 😍]]&lt;br /&gt;
&lt;br /&gt;
==== Caveats ====&lt;br /&gt;
* The non-transparent paper labels don&#039;t come off easily. After peeling off parts of it, you might have to use a solvent or duct tape to completely remove the remains.&lt;br /&gt;
&lt;br /&gt;
==== Changing supplies ====&lt;br /&gt;
&lt;br /&gt;
===== Brother QL =====&lt;br /&gt;
* Open the cover&lt;br /&gt;
* Pull orange lever up&lt;br /&gt;
* Remove previous roll&lt;br /&gt;
* Insert new roll&lt;br /&gt;
* Feed new roll through front feeder&lt;br /&gt;
* Push orange lever back down&lt;br /&gt;
* Close cover&lt;br /&gt;
&lt;br /&gt;
===== Zebra Printers =====&lt;br /&gt;
* Open the cover&lt;br /&gt;
* Pull back the labels&lt;br /&gt;
* Remove previous roll pushing the yellowish plastic things appart&lt;br /&gt;
* Insert new roll&lt;br /&gt;
* Feed it through the yellow hooks and the front feeder&lt;br /&gt;
* Close cover&lt;br /&gt;
* The printer should feed one label, if that doesn&#039;t work it needs calibration &lt;br /&gt;
* If the print doesn&#039;t fit horizontally after changing to a new label type, it&#039;s needs to be calibrated on the printer (for now)&lt;br /&gt;
&lt;br /&gt;
==== Debugging ====&lt;br /&gt;
* The printers have all their own ESP32 reachable from the Bitwäscherei-Bau network under the hostnames &amp;lt;PRINTERNAME&amp;gt;.local (for example btw-pink.local). It has a tab for logs there&lt;br /&gt;
* The ESP32 boards have a blinking LED&lt;br /&gt;
** red means no connection to MQTT broker&lt;br /&gt;
** yellow means connecting to MQTT broker&lt;br /&gt;
** green means connection established&lt;br /&gt;
** cyan means some data been sent&lt;br /&gt;
* On the ESP32 WebUI should be a button to make a test print&lt;br /&gt;
* If the stikka-factory website shows some USB not enumerated error, restart the ESP32 (for now)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
* There&#039;s an orga on GitHub (https://github.com/stikka-factory)&lt;br /&gt;
* https://github.com/stikka-factory/stikka-esp32 is the firmware running on the ESP32 boards&lt;br /&gt;
* https://github.com/stikka-factory/stikka-mqtt is the website hosted on github.io&lt;br /&gt;
&lt;br /&gt;
== 3D Printers  ==&lt;br /&gt;
&lt;br /&gt;
=== Prusa CORE One ===&lt;br /&gt;
[[File:prusa-core-one.jpeg|thumb|none]]&lt;br /&gt;
* &#039;&#039;&#039;Location&#039;&#039;&#039; Next to DigiGes entrance &lt;br /&gt;
* &#039;&#039;&#039;Model&#039;&#039;&#039; Prusa CORE One&lt;br /&gt;
* &#039;&#039;&#039;Purpose&#039;&#039;&#039; Printing three-dimensional objects&lt;br /&gt;
* &#039;&#039;&#039;Nozzle&#039;&#039;&#039; 0.4mm&lt;br /&gt;
* &#039;&#039;&#039;URL&#039;&#039;&#039; prusa-core-one.local&lt;br /&gt;
* &#039;&#039;&#039;Authentication&#039;&#039;&#039; HTTP Digest&lt;br /&gt;
* &#039;&#039;&#039;User&#039;&#039;&#039; maker&lt;br /&gt;
* &#039;&#039;&#039;Password&#039;&#039;&#039; WSVXcPiZtFmmCMk&lt;br /&gt;
&lt;br /&gt;
=== Random Machines ===&lt;br /&gt;
&amp;lt;table&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;[[Ender3]]&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;[[Ender3 v2]]&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;[[MicroDelta]]&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Ultimaker&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:Ender3_MechArtLab.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:Ender3_v2.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:IMG 0083.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:8870471861 c28d68fa6d.jpg|x500px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Bed leveling for Ender 3 (&amp;amp; V2) ===&lt;br /&gt;
&lt;br /&gt;
Check this movie: https://www.youtube.com/watch?v=4JSa_r8xgX8&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Other resources ===&lt;br /&gt;
&lt;br /&gt;
Currently a [[MicroDelta]] printer is installed, use the page linked to get started.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Design: Download Sketchup from [http://www.sketchup.com/ http://www.sketchup.com/] =&amp;gt; Design =&amp;gt; Export .STL&lt;br /&gt;
&lt;br /&gt;
Slice: Download Cura from [http://software.ultimaker.com/ http://software.ultimaker.com/] =&amp;gt; Load .STL =&amp;gt; Prepare =&amp;gt; Write .GCODE to SD card&lt;br /&gt;
&lt;br /&gt;
Print: Insert SD card into Ultimaker =&amp;gt; Push, Scroll to Card =&amp;gt; Select .GCODE =&amp;gt; Push&lt;br /&gt;
&lt;br /&gt;
Share: Upload model and .STL (but not .GCODE) to [http://thingiverse.com/ http://thingiverse.com/]&lt;br /&gt;
&lt;br /&gt;
First time? Ask [http://twitter.com/tamberg @tamberg].&lt;br /&gt;
&lt;br /&gt;
== Laser Cutters ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a public MacBook with [https://lightburnsoftware.com/LightBurn LightBurn] preinstalled and configured for our laser cutter armada&lt;br /&gt;
&lt;br /&gt;
[[File:laser_macbook.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== Creality Falcon A1 Pro ===&lt;br /&gt;
&lt;br /&gt;
[[File:falcon_exhaust.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
==== Specifications ====&lt;br /&gt;
&lt;br /&gt;
* 20W blue diode laser&lt;br /&gt;
* 2W infrared module for glass and metal, at 455±5 nm wavelength&lt;br /&gt;
* Engraving area: 358 × 268mm&lt;br /&gt;
* Max. Working Speed: 600mm/s&lt;br /&gt;
* Cuts up to: 10mm basswood, 8mm black acrylic or 0.04mm stainless sheet&lt;br /&gt;
* For full specs, see [https://www.creality.com/products/falcon-a1-pro-20w vendor website]&lt;br /&gt;
&lt;br /&gt;
==== General usage ====&lt;br /&gt;
&lt;br /&gt;
[[File:falcon_vali.png|200px|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
* Ensure the compressor in the wood workshop is turned on ☝️&lt;br /&gt;
* Place the exhaust hose through the window&lt;br /&gt;
* Ensure the devices tubular lock is in the unlocked position&lt;br /&gt;
* Ensure power switch is in in the ON position&lt;br /&gt;
* Unlock the Emergency Stop by turning the knob&lt;br /&gt;
* Connect LightBurn via USB-C and laser away ⚡&lt;br /&gt;
&lt;br /&gt;
==== Known quirks ====&lt;br /&gt;
&lt;br /&gt;
* The devices touch display turns off after a few minutes. Just touch it to make it shine again&lt;br /&gt;
* Though the laser cutter comes with USB-C ports, using a USB-C to USB-C cable has been problematic&lt;br /&gt;
* Using USB-C to USB-A cable with a USB-A-to-USB-C adapter is known to work 🫠&lt;br /&gt;
&lt;br /&gt;
==== Software ====&lt;br /&gt;
&lt;br /&gt;
* To operate the Falcon A1 Pro using LightBurn on your own device, see [https://wiki.creality.com/en/laser-engraver/falcon-a1-pro/lightburn-guide their Wiki]&lt;br /&gt;
* For improved settings, use Aaron&#039;s magic [[:File:Creality Falcon A1 Pro Aa 08-2026.lbzip.zip|Girlen Core config]] ✨&lt;br /&gt;
&lt;br /&gt;
=== ORTUR Laser Master 2 ===&lt;br /&gt;
&lt;br /&gt;
[[File:ORTUR_installed.jpg|400px]]&lt;br /&gt;
&lt;br /&gt;
The attached computer has already LightBurn installed, it&#039;s the best software to use many different laser machines: https://www.youtube.com/watch?v=YLhbvwq_EDc&lt;br /&gt;
&lt;br /&gt;
You find drivers and firmware updates here: https://ortur.tech/olm2/&lt;br /&gt;
&lt;br /&gt;
Hackaday wrote a few articles on mods and improvements, aswell as a nice discussion on open source hardware around the ORTUR company: https://hackaday.com/tag/ortur/&lt;br /&gt;
&lt;br /&gt;
== WetLab ==&lt;br /&gt;
&lt;br /&gt;
Use the WetLab for PCB etching and other activities involving chemicals or fluids&lt;br /&gt;
&lt;br /&gt;
[[File:wetlab.png|400px]]&lt;br /&gt;
&lt;br /&gt;
=== [[PCB Etching]] ===&lt;br /&gt;
&lt;br /&gt;
Instructions on how to use the PCB etching facility can be found under [[PCB Etching]].&lt;br /&gt;
&lt;br /&gt;
Instructions for [[Mask design and print]] for custom PCBs.&lt;br /&gt;
&lt;br /&gt;
=== Oven for Reflow and PDMS ===&lt;br /&gt;
&lt;br /&gt;
There is a temperature sensor in the oven connected to an arduino that can be read through serial terminal. At the moment the sensor is mounted at the wrong position and shows around 40° less than the real temperature in the moddle of the oven. more about the code and connection of the [[temperature sensor]] is documented.&lt;br /&gt;
&lt;br /&gt;
Instructions for [[reflow soldering]].&lt;br /&gt;
&lt;br /&gt;
Instructions for [[PDMS bioelectronix]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Lasercutter for PCB stencils ===&lt;br /&gt;
&lt;br /&gt;
[http://hardwarebreakout.com/2013/03/diy-laser-cutter-for-pcb-stencils http://hardwarebreakout.com/2013/03/diy-laser-cutter-for-pcb-stencils]&lt;br /&gt;
&lt;br /&gt;
== Library ==&lt;br /&gt;
&lt;br /&gt;
=== Book Shelves ===&lt;br /&gt;
&lt;br /&gt;
Bitwäscherei features a couple of bookshelves containing physical books&lt;br /&gt;
&lt;br /&gt;
[[File:bw_bookshelf1.png|320px]] [[File:bw_bookshelf2.png|320px]]&lt;br /&gt;
&lt;br /&gt;
=== Online Services ===&lt;br /&gt;
&lt;br /&gt;
Check out the online [http://www.librarything.de/catalog/SGMK Library]. Login is &#039;SGMK&#039; combined with our beloved password...&lt;br /&gt;
&lt;br /&gt;
[[File:Solderingiseasy.jpg|320px]]&lt;br /&gt;
&lt;br /&gt;
Comic on soldering [[File:FullSolderComic_EN.pdf|FullSolderComic_EN.pdf]] PDF booklet. by [http://log.andie.se Andie Nordgren]&lt;br /&gt;
[http://www.example.com link title]&lt;br /&gt;
&lt;br /&gt;
== Office / Public Station ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:mechartlab_office.jpg|320px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;[[File:IMG_0082.jpg|180px]]&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Storage ==&lt;br /&gt;
&lt;br /&gt;
The shelves for personal storage boxes are located in the hallway towards the smoking area &amp;lt;small&amp;gt;*&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:smoking_hallway.png|320px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;* Feature exclusive to MechArtLab Pro subscription members&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== PowerPoint Arena ==&lt;br /&gt;
&lt;br /&gt;
Bitwäscherei features a large area dedicated to holding conventions and presentations&lt;br /&gt;
&lt;br /&gt;
[[File:bw_powerpoint_arena.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Use at your own risk.&lt;br /&gt;
&lt;br /&gt;
== Chill out / Coffee ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a lounge with a couple of sofas, as well as a kitchen / bar area&lt;br /&gt;
&lt;br /&gt;
[[File:bw_chillout.png|320px]] [[File:bw_bar.png|320px]]&lt;br /&gt;
&lt;br /&gt;
Maybe clean up your mess up after you&#039;re done?&lt;br /&gt;
&lt;br /&gt;
== Refreshments ==&lt;br /&gt;
&lt;br /&gt;
Various cold beverages are available in the two public fridges.&lt;br /&gt;
&lt;br /&gt;
[[File:bw_fridge1.png|320px]] [[File:bw_fridge2.png|320px]]&lt;br /&gt;
&lt;br /&gt;
Please use the attached TWINT QR code to pay for your purchases.&lt;br /&gt;
&lt;br /&gt;
== Entertainment ==&lt;br /&gt;
=== Toilet DJ ===&lt;br /&gt;
Plays random WAV files from SD card upon poweron, with randomness being a bit wonky due to seeding from a floating analog pin.&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse:collapse; border:0;&amp;quot;&lt;br /&gt;
| style=&amp;quot;padding:0;&amp;quot; |&lt;br /&gt;
[[File:toilet_rave.jpg|320px]]&lt;br /&gt;
| style=&amp;quot;padding:0;&amp;quot; |&lt;br /&gt;
[[File:toiletdj-amp.jpg|320px]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[File:toiletdj-ui.jpg|320px]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Currently features about 100 tunes, feel free to add your own favourites! &amp;lt;small&amp;gt;*Note the file format requirements [[MechArtLab_Infrastructure#System_specs|below]].&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Amplifier inputs ====&lt;br /&gt;
The amplifier is located on top of the flushing tank, and has three inputs:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Tape&#039;&#039;&#039; ToiletDJ&lt;br /&gt;
* &#039;&#039;&#039;Tuner&#039;&#039;&#039; Bluetooth dongle&lt;br /&gt;
* &#039;&#039;&#039;CD&#039;&#039;&#039; &#039;&#039;unassigned&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== System specs ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Amplifier&#039;&#039;&#039; [https://www.radiomuseum.org/r/sintron_dynavox_cs_pa1.html Dynavox CS-PA 1]&lt;br /&gt;
* &#039;&#039;&#039;Speakers&#039;&#039;&#039; [https://hifi-wiki.com/index.php/Grundig_Box_510 Grundig Kugelbox 510]&lt;br /&gt;
* &#039;&#039;&#039;System&#039;&#039;&#039; Arduino Uno, [https://www.adafruit.com/product/94 Adafruit Wave Shield v1.1]&lt;br /&gt;
* &#039;&#039;&#039;Storage&#039;&#039;&#039; 32GB SD card, FAT (MS-DOS) filesystem&lt;br /&gt;
* &#039;&#039;&#039;WAV format&#039;&#039;&#039; Mono, 22kHz, 16-bit sampling rate&lt;br /&gt;
* &#039;&#039;&#039;Repo&#039;&#039;&#039; [https://github.com/gand417/toiletdj GitHub]&lt;br /&gt;
&lt;br /&gt;
==== File conversion ====&lt;br /&gt;
&lt;br /&gt;
To convert a sound file into the required format, you can use tools like &#039;&#039;ffmpeg&#039;&#039; as follows:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;ffmpeg -i input.mp3 -ac 1 -ar 22050 -sample_fmt s16 output.wav&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Prusa-core-one.jpeg&amp;diff=14472</id>
		<title>File:Prusa-core-one.jpeg</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Prusa-core-one.jpeg&amp;diff=14472"/>
		<updated>2026-09-24T12:48:01Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14462</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14462"/>
		<updated>2026-09-22T18:01:00Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
* See https://github.com/bdring/FluidNC/releases for the latest release&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://github.com/bdring/FluidNC/&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
An evolution of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
[[File:brušograf_webui_simlulator.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
=== OpenBrushograph Studio &amp;amp; Co ===&lt;br /&gt;
&lt;br /&gt;
OpenBrushograph Studio and many other extensions can be found at &lt;br /&gt;
&lt;br /&gt;
https://openbrushograph.github.io/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Bru%C5%A1ograf_webui_simlulator.gif&amp;diff=14458</id>
		<title>File:Brušograf webui simlulator.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Bru%C5%A1ograf_webui_simlulator.gif&amp;diff=14458"/>
		<updated>2026-09-22T17:30:14Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14434</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14434"/>
		<updated>2026-09-21T18:43:56Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
* See https://github.com/bdring/FluidNC/releases for the latest release&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://github.com/bdring/FluidNC/&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
An evolution of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14412</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14412"/>
		<updated>2026-09-14T20:40:19Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
* See https://github.com/bdring/FluidNC/releases for the latest release&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://github.com/bdring/FluidNC/&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
A remake of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14411</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14411"/>
		<updated>2026-09-12T22:06:17Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Drop custom firmwares&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
* See https://github.com/bdring/FluidNC/releases for the latest release&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://github.com/bdring/FluidNC/&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
A remake of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14410</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14410"/>
		<updated>2026-09-12T09:30:29Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Add Next-Gen WebUI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 WebUI ===&lt;br /&gt;
&lt;br /&gt;
A remake of the classic WebUI developed at 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘 can be found at&lt;br /&gt;
&lt;br /&gt;
http://brušograf.ignore.net/&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14409</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14409"/>
		<updated>2026-09-11T14:44:21Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
* Piezo-acoustic module integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14408</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14408"/>
		<updated>2026-09-09T16:07:28Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Update initial config&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== WebUI, config.yaml &amp;amp; macros ===&lt;br /&gt;
After flashing FluidNC to your ESP32, you need to upload the WebUI, an initial version of your config.yaml, and optionally some macros while you&#039;re at it.&lt;br /&gt;
&lt;br /&gt;
The easiest way of doing so is by using https://installer.fluidnc.com/ and uploading the files to the ESP32 Flash via the File browser.&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Public Brushology Seminar ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Wednesday, 9. September, 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
&lt;br /&gt;
==== Research Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14405</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14405"/>
		<updated>2026-09-05T20:04:12Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== Agenda ====&lt;br /&gt;
===== Motor control =====&lt;br /&gt;
* Investigate potential bipolar control speed gains&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5500639386&lt;br /&gt;
  * https://github.com/bdring/FluidNC/pull/1797#issuecomment-5554171410&lt;br /&gt;
&lt;br /&gt;
===== PCB Redesign =====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
&lt;br /&gt;
===== 3D Part Redesign =====&lt;br /&gt;
====== Z-Axis 3.0 ======&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
====== CMYK cup holders ======&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
===== Software Stack =====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14404</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14404"/>
		<updated>2026-09-05T17:23:53Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Add marketing material&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
[[File:bruschologischer_kongress.png|666px|thumb]]&lt;br /&gt;
&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== PCB Redesign ====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
&lt;br /&gt;
==== 3D Part Redesign ====&lt;br /&gt;
===== Z-Axis 3.0 =====&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
===== CMYK cup holders =====&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
==== Software Stack ====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Bruschologischer_kongress.png&amp;diff=14403</id>
		<title>File:Bruschologischer kongress.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Bruschologischer_kongress.png&amp;diff=14403"/>
		<updated>2026-09-05T17:22:00Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14402</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14402"/>
		<updated>2026-09-05T15:24:58Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== PCB Redesign ====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
&lt;br /&gt;
==== 3D Part Redesign ====&lt;br /&gt;
===== Z-Axis 3.0 =====&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
===== CMYK cup holders =====&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
==== Software Stack ====&lt;br /&gt;
* Get &#039;ULN2003&#039; support back upstream into FluidNC &#039;main&#039;&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14401</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14401"/>
		<updated>2026-09-05T15:23:15Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: 𝖅𝖜𝖊𝖎𝖙𝖊𝖗 𝕭𝖗𝖚𝖘𝖈𝖍𝖔𝖑𝖔𝖌𝖎𝖘𝖈𝖍𝖊𝖗 𝕶𝖔𝖓𝖌𝖗𝖊𝖘𝖘, 𝕯𝖗𝖊𝖘𝖉𝖊𝖓&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Events ==&lt;br /&gt;
&lt;br /&gt;
=== Zweiter Bruschologischer Kongress, Dresden, 7. - 12. September 2026 ===&lt;br /&gt;
Venue: c/o Circuit Control, c/o Hanse3 e.V., Hansastraße 3, 01097 Dresden&lt;br /&gt;
&lt;br /&gt;
==== PCB Redesign ====&lt;br /&gt;
* Native 7.5V Power Mod support&lt;br /&gt;
* Native [https://github.com/bdring/FluidDial FluidDial] integration&lt;br /&gt;
&lt;br /&gt;
==== 3D Part Redesign ====&lt;br /&gt;
===== Z-Axis 3.0 =====&lt;br /&gt;
* Decrease total height&lt;br /&gt;
* Remove rubberband notches&lt;br /&gt;
* Overhaul brush clamping mechanism&lt;br /&gt;
===== CMYK cup holders =====&lt;br /&gt;
* Turns out RGB wasn&#039;t the answer&lt;br /&gt;
&lt;br /&gt;
==== Software Stack ====&lt;br /&gt;
* Get `ULN2003` support back upstream into FluidNC `main`&lt;br /&gt;
* Integrate into FluidNC config wizard?&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14400</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14400"/>
		<updated>2026-08-29T21:48:54Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Add theme packs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
===== Theme Packs =====&lt;br /&gt;
For enhanced coconut experience (i.e. additional themes), see the [https://github.com/f1adang/ESP3D-WEBUI/releases/tag/v0.1-coconut-themepack Coconut Theme Pack - DDoS Edition].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14399</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14399"/>
		<updated>2026-08-26T20:31:35Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: esptool FTW&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
==== Flashing via esptool ====&lt;br /&gt;
* &amp;lt;tt&amp;gt;esptool.py --chip esp32 write_flash 0x10000 FluidNC-v4.0.5-pre2-wifi-esp32-firmware.bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use [https://github.com/f1adang/ESP3D-WEBUI/releases/download/3.0.10-coconut/index.html.gz &#039;index.html.gz&#039;].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14395</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14395"/>
		<updated>2026-08-25T17:16:01Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use [https://github.com/f1adang/ESP3D-WEBUI/releases/download/3.0.10-coconut/index.html.gz &#039;index.html.gz&#039;].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14394</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14394"/>
		<updated>2026-08-25T16:19:24Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
* To maximize your X-axis, position the leftmost petri dish so that brush holder can reach the center of the cup&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select desired version&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_from_VSCodium|VSCodium method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use [https://github.com/f1adang/ESP3D-WEBUI/releases/download/3.0.10-coconut/index.html.gz &#039;index.html.gz&#039;].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14393</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14393"/>
		<updated>2026-08-25T08:25:25Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
* To maximize your X-axis, position the leftmost petri dish so that brush holder can reach the center of the cup&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use [https://github.com/f1adang/ESP3D-WEBUI/releases/download/3.0.10-coconut/index.html.gz &#039;index.html.gz&#039;].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/tree/main/fluidNC_files&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14392</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14392"/>
		<updated>2026-08-24T22:48:44Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
* To maximize your X-axis, position the leftmost petri dish so that brush holder can reach the center of the cup&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use [https://github.com/f1adang/ESP3D-WEBUI/releases/download/3.0.10-coconut/index.html.gz &#039;index.html.gz&#039;].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14391</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14391"/>
		<updated>2026-08-24T22:44:29Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
* To maximize your X-axis, position the leftmost petri dish so that brush holder can reach the center of the cup&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use [https://github.com/f1adang/ESP3D-WEBUI/releases/download/3.0.10-coconut/index.html.gz &#039;index.html.gz&#039;].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t relevant to Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14390</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14390"/>
		<updated>2026-08-24T22:23:17Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
* To maximize your X-axis, position the leftmost petri dish so that brush holder can reach the center of the cup&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest official &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use [https://github.com/f1adang/ESP3D-WEBUI/releases/download/3.0.10-coconut/index.html.gz &#039;index.html.gz&#039;].&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14389</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14389"/>
		<updated>2026-08-24T22:09:09Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Add assembly instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
=== Base plate ===&lt;br /&gt;
* Choose a solid, super flat board that won&#039;t flex, bend or warp. Think 10mm plywood&lt;br /&gt;
* Consider protecting your base plate from moisture by giving it a colour coating&lt;br /&gt;
&lt;br /&gt;
=== Assembly ===&lt;br /&gt;
==== Schmirgling ====&lt;br /&gt;
* For maximum performance, your 3D printed parts must be meticulously schmirgeld (i.e. manually smoothened with sand paper) in all areas touching another part during operation&lt;br /&gt;
* The rack &amp;amp; rail parts should freely slide against each other when slightly tilted&lt;br /&gt;
* The process of schmirgling is a central part of Brushograph culture and important for initial bonding with the machine&lt;br /&gt;
==== Greasing ====&lt;br /&gt;
* Once properly schmirgeld and confirmed to be within the required performance parameters, the parts may be greased with a PLA-friendly lubricant&lt;br /&gt;
==== Component placement ====&lt;br /&gt;
* Consider all areas the brush needs to reach - most notably the petri dishes&lt;br /&gt;
* Maximizing your Y-axis range of movement might require lengthening the cables of the corresponding motor&lt;br /&gt;
* To maximize your X-axis, position the leftmost petri dish so that brush holder can reach the center of the cup&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14388</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14388"/>
		<updated>2026-08-24T21:37:35Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14387</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14387"/>
		<updated>2026-08-24T21:36:33Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Tuning your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
==== Youtube instructions ====&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|666px|thumb]]&lt;br /&gt;
[[File:brušograf_classic.png|666px|thumb]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14386</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14386"/>
		<updated>2026-08-24T21:30:14Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Adjusting your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|thumb|500px|left]]&lt;br /&gt;
[[File:brušograf_classic.png|thumb|500px|right]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14385</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14385"/>
		<updated>2026-08-24T21:27:05Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Adjusting your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
=== Youtube instructions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:mechatronic_indies.png|thumb|500px|left]]&lt;br /&gt;
[[File:brušograf_classic.png|thumb|500px|right]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14384</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14384"/>
		<updated>2026-08-24T21:25:47Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Add mythology&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Adjusting your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
=== Youtube instructions ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Mythology ==&lt;br /&gt;
[[File:brušograf_classic.png|thumb|600px|left]][[File:mechatronic_indies.png|thumb|right]]&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Bru%C5%A1ograf_classic.png&amp;diff=14383</id>
		<title>File:Brušograf classic.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Bru%C5%A1ograf_classic.png&amp;diff=14383"/>
		<updated>2026-08-24T21:22:20Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Mechatronic_indies.png&amp;diff=14382</id>
		<title>File:Mechatronic indies.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Mechatronic_indies.png&amp;diff=14382"/>
		<updated>2026-08-24T21:22:19Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14381</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14381"/>
		<updated>2026-08-24T21:19:40Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Adjusting your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Past Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Random Youtube instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14380</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14380"/>
		<updated>2026-08-24T21:09:26Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
=== Wifi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Adjusting your machine configuration ====&lt;br /&gt;
* The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
* If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
* Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
* Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. &lt;br /&gt;
&lt;br /&gt;
Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Random Youtube instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14379</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14379"/>
		<updated>2026-08-24T21:00:29Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Add initial setup&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Initial setup ==&lt;br /&gt;
[[File:fluidnc_files_flash.png|200px|thumb|right]]&lt;br /&gt;
=== WiFi ===&lt;br /&gt;
By default, the ESP32 launches its own Wifi access point. Look for it and connect, to find your Brushograph WebUI accessible at http://192.168.0.1&lt;br /&gt;
&lt;br /&gt;
Once connected, you can configure FluidNC to connect to your own WiFi instead under Settings -&amp;gt; Wifi&lt;br /&gt;
&lt;br /&gt;
=== config_uln.yaml ===&lt;br /&gt;
* Defines the Brushograph HW configuration&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;[https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/config_uln.yaml config_uln.yaml]&amp;lt;/tt&amp;gt; as a starting point&lt;br /&gt;
* Lives on the Brushograph &amp;quot;Flash&amp;quot; (not &amp;quot;SD&amp;quot;!) section&lt;br /&gt;
&lt;br /&gt;
==== Adjusting your machine configuration ====&lt;br /&gt;
The main thing you need to adapt to your device are &amp;lt;tt&amp;gt;max_rate_mm_per_min&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;acceleration_mm_per_sec2&amp;lt;/tt&amp;gt;. &lt;br /&gt;
If your motors keep locking up during movements (i.e. losing steps), try lowering the initial values.&lt;br /&gt;
Depending of the quality of your smirgling and greasing, higher values might work and give you more speed.&lt;br /&gt;
People using the power mod have reported reliably running at &amp;lt;tt&amp;gt;2000mm/min&amp;lt;/tt&amp;gt;.&lt;br /&gt;
Once you&#039;re done, upload &amp;lt;tt&amp;gt;config_uln.yaml&amp;lt;/tt&amp;gt; to Files -&amp;gt; Flash of your Brushograph&lt;br /&gt;
&lt;br /&gt;
=== Configuring FluidNC ===&lt;br /&gt;
[[File:fluidnc_macros.png|200px|thumb|right]]&lt;br /&gt;
Many FluidNC panels (e.g. Probe, Laser, Spindle, Overrides etc) aren&#039;t useful for Brushographical operations. Head to Settings -&amp;gt; ESP3D Interface to hide them.&lt;br /&gt;
&lt;br /&gt;
==== Macros ====&lt;br /&gt;
Macros are required to zero the machine upon startup, clean the brush, move to a location for easy paper changing etc.&lt;br /&gt;
You can find some examples (e.g. &amp;lt;tt&amp;gt;zero.g&amp;lt;/tt&amp;gt;) at https://github.com/openBrushograph/Brushograph_workshop_examples/blob/main/fluidNC_files/flash/&lt;br /&gt;
Note that these are configured for a rather high-speed machine, so you might have to adjust the &amp;lt;tt&amp;gt;F2100&amp;lt;/tt&amp;gt; values to something more suitable to your device.&lt;br /&gt;
Once you&#039;re done adjusting the settings:&lt;br /&gt;
* Upload your macro definition files via Files -&amp;gt; Flash&lt;br /&gt;
* Configure your macros via Settings -&amp;gt; ESP3D -&amp;gt; Macros&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Random Youtube instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_files_flash.png&amp;diff=14378</id>
		<title>File:Fluidnc files flash.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_files_flash.png&amp;diff=14378"/>
		<updated>2026-08-24T20:44:29Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_macros.png&amp;diff=14377</id>
		<title>File:Fluidnc macros.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_macros.png&amp;diff=14377"/>
		<updated>2026-08-24T20:44:28Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14376</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14376"/>
		<updated>2026-08-24T19:28:18Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: Fix FluidNC UI animation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui_small.gif|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Random Youtube instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_ui_small.gif&amp;diff=14375</id>
		<title>File:Fluidnc ui small.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_ui_small.gif&amp;diff=14375"/>
		<updated>2026-08-24T19:27:08Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14374</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14374"/>
		<updated>2026-08-24T19:22:16Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
[[File:fluidnc_ui.gif|thumb|right]]&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Random Youtube instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_ui.gif&amp;diff=14373</id>
		<title>File:Fluidnc ui.gif</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=File:Fluidnc_ui.gif&amp;diff=14373"/>
		<updated>2026-08-24T19:17:51Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
	<entry>
		<id>https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14372</id>
		<title>Brushograph</title>
		<link rel="alternate" type="text/html" href="https://wiki.sgmk-ssam.ch/index.php?title=Brushograph&amp;diff=14372"/>
		<updated>2026-08-24T18:53:32Z</updated>

		<summary type="html">&lt;p&gt;Gandalf: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Brushograph_Flyer.jpg|thumb|400px]]&lt;br /&gt;
== Inrested in the openBrushograph? ==&lt;br /&gt;
&lt;br /&gt;
Feel free contact [mailto:marc@dusseiller.ch dusjagr] &amp;amp; friends, we can invite you to our matrix channel and give advise where and how to get started.&lt;br /&gt;
&lt;br /&gt;
Also visit all our github experiements, gcode generators and more... and check our [https://openbrushograph.github.io/brusho_gcode_archive/ archive with many experiemnts and gcodes]&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[[File:Brushograpf_DIWO.jpg|thumb|240px]]&lt;br /&gt;
&lt;br /&gt;
=== Doms&#039; Brušografia ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Brushology – Ways of painting with a mechatronic brush&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
https://mechatronicart.ch/brushology-ways-of-painting-with-a-mechatronic-brush/&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dominik Mahnič&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič (Ljubljana, Slovenia), an emblematic figure nestled between the realms of academic painting, video mastery, technology, and street art insurgency, raises questions about the perpetual dialectics between classical artistry and the onslaught of contemporary technological modalities. Within this discourse emerges the Brushograph – a complex symbol not merely of art but also of the intersections between past, present, and anticipated futures.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* https://app.assembla.com/spaces/dominik-mahnic/wiki&lt;br /&gt;
* https://mgml.si/en/match-gallery/exhibitions/637/dominik-mahnic/&lt;br /&gt;
&lt;br /&gt;
=== Find up-to date files on GitHub ===&lt;br /&gt;
[[File:pimp_move.gif|thumb]]&lt;br /&gt;
&lt;br /&gt;
https://github.com/openBrushograph&lt;br /&gt;
[[File:openBrushograph_flyer.jpg|400px|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
=== PCB design ===&lt;br /&gt;
[[File:PCB_white.jpg|thumb|400px]]&lt;br /&gt;
PCB for DIY etching or manufacturing to host the FluidNC on ESP32 and the ULN2003 drivers&lt;br /&gt;
* https://github.com/openBrushograph/Brushograph_PCB&lt;br /&gt;
&lt;br /&gt;
=== 3D parts ===&lt;br /&gt;
[[File:freecad_screenshot.jpg|thumb|right|400px]]&lt;br /&gt;
The designs to 3D print your own Brushograph can be found at&lt;br /&gt;
* https://github.com/openBrushograph/openBrushograph_hardware&lt;br /&gt;
&lt;br /&gt;
===  Credits ===&lt;br /&gt;
The Brushograph HW design was inspired by the original &amp;quot;Arduino mini CNC plotter&amp;quot; and some interesting forks / remixes&lt;br /&gt;
* https://www.thingiverse.com/thing:4579436 (&amp;quot;original version&amp;quot;)&lt;br /&gt;
* https://www.thingiverse.com/thing:4607077 (has source file for fusion360)&lt;br /&gt;
* https://www.thingiverse.com/thing:4796222 (redesigned with bigger tooth and gogs.)&lt;br /&gt;
* https://www.thingiverse.com/thing:5719788 (z-axes mod for up-and-down)&lt;br /&gt;
&lt;br /&gt;
=== Bonus mods &amp;amp; accessories ===&lt;br /&gt;
&lt;br /&gt;
==== Speed mod ====&lt;br /&gt;
To give your motors more power, some people have done the &amp;quot;speed mod&amp;quot; running their motors on 7.5V, allowing speeds of around 2000mm/min.&lt;br /&gt;
&lt;br /&gt;
==== CNC pendant ====&lt;br /&gt;
To use your Brushograph without the need of a PC or phone, several pendants can be used in connection with FluidNC.&lt;br /&gt;
&lt;br /&gt;
[[File:Brushograph FluidDial.png|thumb|alt=A pink Brushograph controlled by a pink FluidDial CNC pendant]]&lt;br /&gt;
&lt;br /&gt;
The main thing to consider when integrating things like the [http://wiki.fluidnc.com/en/hardware/official/M5Dial_Pendant FluidDial] is the limited amount of PINs still available on the ESP32, basically leaving only &#039;&#039;gpio.0&#039;&#039; and &#039;&#039;gpio.15&#039;&#039; for UART communications, with the following addition to the config required in &#039;&#039;config_uln.yaml&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;uart1:&lt;br /&gt;
  txd_pin: gpio.0&lt;br /&gt;
  rxd_pin: gpio.15&lt;br /&gt;
  rts_pin: NO_PIN&lt;br /&gt;
  cts_pin: NO_PIN&lt;br /&gt;
  baud: 1000000&lt;br /&gt;
  mode: 8N1&lt;br /&gt;
uart_channel1:&lt;br /&gt;
  report_interval_ms: 75&lt;br /&gt;
  uart_num: 1&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Firmware ==&lt;br /&gt;
[[File:brushograph_wide.jpg|400px|thumb|right]]&lt;br /&gt;
=== FluidNC ===&lt;br /&gt;
[http://wiki.fluidnc.com/en/home FluidNC] is a CNC firmware optimized for the ESP32 controller. It is the next generation of firmware from the creators of Grbl_ESP32. It includes a web based UI and the flexibility to operate to a wide variety of machine types. This includes the ability to control machines with multiple tool types such as laser+spindle or a tool changer.&lt;br /&gt;
&lt;br /&gt;
We have developed a modified version of FluidNC, that supports the uni-polar motors (again).&lt;br /&gt;
&lt;br /&gt;
==== Versions ====&lt;br /&gt;
[[File:Brushograph_PCB_01.jpg|thumb|400px]]&lt;br /&gt;
Forked and reworked versions of FluidNC to support uni-polar steppers&lt;br /&gt;
&lt;br /&gt;
===== 3.x =====&lt;br /&gt;
* https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Latest release: https://git.kompot.si/g1smo/FluidNC/releases&lt;br /&gt;
&lt;br /&gt;
===== 4.x =====&lt;br /&gt;
* https://github.com/f1adang/FluidNC/tree/gandalf/uln2003&lt;br /&gt;
* Latest release: https://github.com/f1adang/FluidNC/releases/tag/v4.0.5-pre2-uln2003&lt;br /&gt;
&lt;br /&gt;
==== Flashing via Web Installer ====&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* Go to https://installer.fluidnc.com/&lt;br /&gt;
* Click &amp;quot;Continue&amp;quot; for FluidNC&lt;br /&gt;
* Click &amp;quot;Connect&amp;quot; to start the installer&lt;br /&gt;
* Select Comm port where ESP32 is connected&lt;br /&gt;
* Choose &amp;quot;Install&amp;quot;&lt;br /&gt;
* Select version &amp;quot;v3.9.6&amp;quot;&lt;br /&gt;
* Press &amp;quot;esp 32 (ESP32-WROOM)&amp;quot;&lt;br /&gt;
* Select &amp;quot;wifi&amp;quot;&lt;br /&gt;
* Select &amp;quot;firmware-update&amp;quot; (unless it&#039;s a fresh install or you want to wipe your config)&lt;br /&gt;
* Select &amp;quot;Install WebUI-3&amp;quot;&lt;br /&gt;
* Installation speed &amp;quot;115200&amp;quot;&lt;br /&gt;
* Prepare to be quick! ;)&lt;br /&gt;
* Press install&lt;br /&gt;
* Hold BOOT on the ESP32&lt;br /&gt;
* Press RST on the ESP32&lt;br /&gt;
* Release BOOT on the ESP32&lt;br /&gt;
&lt;br /&gt;
If you keep getting &amp;quot;Error: Invalid head of packet&amp;quot; (especially on macOS?), try the [[Brushograph#Flashing_via_VSCode|VSCode method]]&lt;br /&gt;
&lt;br /&gt;
==== Flashing from VSCodium ====&lt;br /&gt;
The official firmware has decent ways of building and flashing via &#039;esptool&#039;.&lt;br /&gt;
Clone the repo containing the ULN2003 custom firmware and use VSCodium to build and flash the firmware:&lt;br /&gt;
&lt;br /&gt;
* Install PlatformIO extension&lt;br /&gt;
* Connect ESP32 via USB-C&lt;br /&gt;
* git clone https://git.kompot.si/g1smo/FluidNC&lt;br /&gt;
* Open the folder in VSCodium&lt;br /&gt;
* Select the branch you&#039;d like to build&lt;br /&gt;
* Press Build&lt;br /&gt;
* Press Install&lt;br /&gt;
&lt;br /&gt;
Make sure to upload things like the WebUI (see below) to the internal Flash via the FluidNC WebUIs File Explorer.&lt;br /&gt;
&lt;br /&gt;
==== Latest WebUI ====&lt;br /&gt;
To get the latest version of the FluidNC WebUI, download the [https://github.com/michmela44/ESP3D-WEBUI/releases latest &#039;index.html.gz&#039;] and replace the one on your internal Flash.&lt;br /&gt;
&lt;br /&gt;
For enhanced coconut experience (i.e. themes support), use https://github.com/f1adang/ESP3D-WEBUI/releases/tag/3.0.10-coconut&lt;br /&gt;
&lt;br /&gt;
=== Arduino (GRBL) ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/TGit-Tech/GRBL-28byj-48&lt;br /&gt;
&lt;br /&gt;
Link above is a dirty hack of the &amp;quot;classic&amp;quot; GRBL to support those uni-polar servos. This is a modified fork from ruizivo/GRBL-28byj-48-Servo. This modification implements all 3-axises XYZ to a 28BYJ-48 stepper motor. The motors (28byj-48) are connected to a controller card (Arduino UNO) that uses the chip ULN2003. This board is connected to pins A0, A1, A2, A3 for the Y-Axis(IN4-&amp;gt;IN1), 2, 3,4,5 Digital pins to the X-Axis(IN4-&amp;gt;IN1), and 8,9,12,13 to the Z-Axis(IN4-&amp;gt;IN1).&lt;br /&gt;
&lt;br /&gt;
[https://github.com/gnea/grbl Grbl] is a free, open source, high performance software for controlling the motion of machines that move, that make things, or that make things move, and will run on a straight Arduino. If the maker movement was an industry, Grbl would be the industry standard. Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.&lt;br /&gt;
&lt;br /&gt;
== Creating G-code ==&lt;br /&gt;
&lt;br /&gt;
=== Brushograph WebUI ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_screenshot.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph.pro/&lt;br /&gt;
&lt;br /&gt;
config file with comments of how to use it &lt;br /&gt;
* https://github.com/MihaNormalen/Brushgraphy/blob/main/config_file_with_comments.conf&lt;br /&gt;
&lt;br /&gt;
=== Converting gcode 2 pick-up color ===&lt;br /&gt;
&lt;br /&gt;
[[File:webui_lb2gcode.jpg|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
https://brushograph-lb2gcode.onrender.com/&lt;br /&gt;
&lt;br /&gt;
=== Image to GCode software ===&lt;br /&gt;
* https://github.com/veselinovicp/brushograph&lt;br /&gt;
&lt;br /&gt;
=== Lightburn ===&lt;br /&gt;
&lt;br /&gt;
[[File:brushograph_closeup.gif|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
Lightburn is a very easy way to start putting your ideas onto canvas. You can draw directly in the software or import .svg. As it&#039;s mainly for laser-cutters a few modifications have to be made to install your custom gcode device. &lt;br /&gt;
&lt;br /&gt;
I hope the settings can be easily imported from this github repo: https://github.com/dusjagr/brushograph-lb2gcode&lt;br /&gt;
&lt;br /&gt;
[[File:lb-custom-settings.png|thumb|400px|none]]&lt;br /&gt;
&lt;br /&gt;
A custom python script can then be used to modify the Lightburn generated gcode to add the colour pick ups at a defined path length, choose from 3 different colours, by naming the layers in Lightburn accordingly. Just Save GCode from LB, run the script, and then Run GCode and your artwork will be painted....&lt;br /&gt;
&lt;br /&gt;
To setup the Brushograph in Lightburn, &amp;quot;Create Manually&amp;quot; a new Device as &amp;quot;custom gcode (experimental)&amp;quot;, set the working area (130 x 120mm shoudl be ok), then click click, GRBL (standard), and it should be ready to be controlled. Select your device, and choose the USB port to connect. As we are using FluidNC, you can also connect to it via wifi.&lt;br /&gt;
&lt;br /&gt;
Then you can spend hours and hours, modifying the macros yourself, for picking up colours smoothly... and join the discussion on the [https://forum.lightburnsoftware.com/t/great-success-using-lightburn-on-a-diy-brush-painting-machine/184352 Lightburn forum].&lt;br /&gt;
&lt;br /&gt;
=== Inkscape ===&lt;br /&gt;
&lt;br /&gt;
=== awesome-plotters ===&lt;br /&gt;
&lt;br /&gt;
https://github.com/beardicus/awesome-plotters&lt;br /&gt;
&lt;br /&gt;
https://github.com/SonarSonic/DrawingBotV3&lt;br /&gt;
&lt;br /&gt;
=== Universal Gcode Sender ===&lt;br /&gt;
&lt;br /&gt;
https://winder.github.io/ugs_website/&lt;br /&gt;
&lt;br /&gt;
A free and full featured gcode platform used for interfacing with advanced CNC controllers like GRBL , FluidNC, TinyG, g2core and Smoothieware. Universal Gcode Sender is a self-contained Java application which includes all external dependencies and can be used on most computers running Windows, MacOSX or Linux.&lt;br /&gt;
&lt;br /&gt;
You can also set UGS to connect through wifi to the board. check this [https://github.com/winder/Universal-G-Code-Sender/wiki/Connecting-the-Controller#smoothie--network instructions].&lt;br /&gt;
&lt;br /&gt;
== Possible further applications ==&lt;br /&gt;
&lt;br /&gt;
=== Glass ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could be used to paint open source paints containing coloured metal ions onto sheets of clear glass which could then be heated to above the softening point of the glass on ceramic paper in a furnace to allow the coloured metal ions to melt into the glass then cooled back down (cooling slowly through the annealing point) to give a unique but completely open source piece of glass art.&lt;br /&gt;
&lt;br /&gt;
Because the Brushograph controls the speed and direction of each brushstroke it could be used to paint ceramic furnace shelf coating (also known as &amp;quot;kiln wash&amp;quot;) onto a kiln shelf, with each brushstroke reflected in the texture of the shelf coating. After drying, a piece of glass could be placed on top and heated above the softening point of the glass so that the texture of the brushstrokes used to paint on the shelf coating transferred to the finished piece of glass.&lt;br /&gt;
&lt;br /&gt;
=== Ceramics ===&lt;br /&gt;
&lt;br /&gt;
The Brushograph could paint coloured commercial or open source ceramic glazes onto plain blank white tiles which could then be heated to leave a permanent glaze on the surface and turn the plain white tiles into pieces of open source art for tiling walls, etc..&lt;br /&gt;
&lt;br /&gt;
=== Etching ===&lt;br /&gt;
&lt;br /&gt;
Painting with a substance which resists chemical etching or sand blasting would allow the item to be etched or sandblasted afterwards then the etch resist removed to leave a permanent piece of art.&lt;br /&gt;
&lt;br /&gt;
=== Painting With Light ===&lt;br /&gt;
&lt;br /&gt;
An ultraviolet LED could be used instead of a paintbrush, with the ESP32 controlling the intensity of the LED as well as the position - this would allow painting onto surfaces coated in UV sensitive etch resist which could then be developed then etched or sand blasted.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of metal is used beneath the etch resist electrolytic deposition could be used to plate another metal onto the etched areas.&lt;br /&gt;
&lt;br /&gt;
Where a sheet of glass is used beneath the etch resist a mirrored surface could be deposited on the etched areas.&lt;br /&gt;
&lt;br /&gt;
=== Brush Washer and Dryer ===&lt;br /&gt;
&lt;br /&gt;
Instead of a pot of paint at one of the stations, a funnel and drain tube could be placed at one of the stations with a small peristaltic or diaphragm pump switched on by the ESP32 to pump a stream of water over the brush and wash the brush before it goes to a new colour of paint. Optionally, the ESP32 could switch on a small but strong fan after washing the brush to blow air over the brush to dry it before it goes to the next colour.&lt;br /&gt;
&lt;br /&gt;
== Events ==&lt;br /&gt;
&lt;br /&gt;
=== DIWO Week, Dresden, 15. May 2025 ===&lt;br /&gt;
&lt;br /&gt;
https://www.metaknoten.net/de/veranstaltungen/diwo-week-2025/penzlograf&lt;br /&gt;
&lt;br /&gt;
Dominik Mahnič ist ein Maler mit akademischem Hintergrund, ein Meister der Videoästhetik, ein Technologe und eine aktive Figur der slowenischen Street-Art-Bewegung. Seine aktuellen Arbeiten werden mit eigens dafür konstruierten &amp;quot;Penzlografen&amp;quot; angefertigt. Speziell für die DIWO-WEEK 2025 hat er eine tragbare Version entwickelt, welcher mit Pinsel und Farbe funktionieren. Zur Umsetzung werden Grafiken in Maschinencode umgewandelt und dann von dem &amp;quot;Zeichenroboter&amp;quot; gemalt. Die Software läuft auf den gängigen Plattformen und es besteht die einmalige Möglichkeit einen eigenen Penzlografen zu bauen. Es wird montiert, verkabelt, programmiert und am Ende entsteht hoffentlich jede Menge Kunst.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=280px&amp;gt;&lt;br /&gt;
File:workshop_dresden_01.jpg&lt;br /&gt;
File:workshop_dresden_02.jpg&lt;br /&gt;
File:workshop_dresden_03.jpg&lt;br /&gt;
File:workshop_dresden_04.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Photos by Kathrin Witteler&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Workshop: MechArtLab / Bitwäscherei, Zürich, 6 &amp;amp; 7. December 2025 ===&lt;br /&gt;
&lt;br /&gt;
==== Impressions from MechArtLab Workshop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_workshop_01.jpg&lt;br /&gt;
File:Brushograph_workshop_02.jpg&lt;br /&gt;
File:Brushograph_workshop_03.jpg&lt;br /&gt;
File:Brushograph_workshop_04.jpg&lt;br /&gt;
File:Brushograph_workshop_05.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Description ====&lt;br /&gt;
&lt;br /&gt;
Build your own DIY robotic painting kit and learn the art of machine painting. Over two days, participants will learn how assemble and program a small painting robot. Explore image-processing and machine-control techniques for robotic painting.&lt;br /&gt;
&lt;br /&gt;
What’s included:&lt;br /&gt;
* Full DIY mechatronic painting kit (Brushograph)&lt;br /&gt;
* A series of small machine-made paintings&lt;br /&gt;
* All tools and guidance to continue experimenting at home&lt;br /&gt;
&lt;br /&gt;
===== Registration =====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;👉 **Spots are limited — register now!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Fill out this registration form: https://sgmkcloud.ocloud.de/index.php/apps/forms/Q7Qk6zxfoxMZyJWA&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Pricing:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
CHF 250 — Full price&lt;br /&gt;
&lt;br /&gt;
CHF 150 — Reduced (by request)&lt;br /&gt;
&lt;br /&gt;
+ CHF 95 — Material Costs for the DIY kit&lt;br /&gt;
&lt;br /&gt;
Payment on-site in cash or twint to the organizer +41 77 993 08 77, or use qr code for coconut research.&lt;br /&gt;
&lt;br /&gt;
===== Structure &amp;amp; Schedule =====&lt;br /&gt;
&#039;&#039;&#039;Saturday 14 - 18h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 1:&#039;&#039;&#039; Build &amp;amp; Code: assemble and run the physical system, learn the basics of image and G-code processing.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Afterwards there will be our yearly SGMK x-mas umtrunk with food, discussions, short pr&#039;&#039;esentations and party / DJ until late!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Sunday 14 - 19h&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Day 2:&#039;&#039;&#039; Play &amp;amp; Paint: learn about different machine painting techniques, experiment and make your own paintings.&lt;br /&gt;
&lt;br /&gt;
Download the example files here: https://github.com/openBrushograph/Brushograph_workshop_examples&lt;br /&gt;
&lt;br /&gt;
===== Mentors =====&lt;br /&gt;
&lt;br /&gt;
Mentors: Dominik Mahnič, artists and engineers from SGMK (Swiss Mechatronic Art Society), MAG (Machine Arts Group) and LightBurn.&lt;br /&gt;
&lt;br /&gt;
=== Brushologischer Kongress - Fieldtrips, Discussions and Party with Brushology ===&lt;br /&gt;
&lt;br /&gt;
==== Artist Talk &amp;amp; Group Discussion, Symbiont.Space, Basel, 10. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;special event tomorrow! &amp;quot;Brushology – Ways of painting with a mechatronic brush&amp;quot; presentation/discussion with Dominik Mahnič, a true legend in the field of painting machines, courtesy of @machineartsgroup and hackteria.org starting at 6pm (bar and try-out), discussion from 8.30pm&amp;quot;&#039;&#039; See [https://www.instagram.com/p/DSCaRlPip-r/ insta post]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:Brushograph_GalleryBasel.jpg&lt;br /&gt;
File:Symbiont_discussionRound.jpg&lt;br /&gt;
File:Symbiont_bar.jpg&lt;br /&gt;
File:symbiont_popup_expo.jpg&lt;br /&gt;
File:BrushologistPro_Travel.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Party Brushology at &amp;quot;DAS ENDE&amp;quot;, Dock18, Zürich, 13. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
[[File:2Brushographs_Dock18.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Brushology Retreat, RandeLab, Merishausen, 14. - 16. Dec 2025 ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;packed-hover&amp;quot; heights=240px&amp;gt;&lt;br /&gt;
File:group_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Cupboard_Randen.jpg&lt;br /&gt;
File:brushoDJ_FieldTrip_Randen.jpg&lt;br /&gt;
File:brusho_Retreat_Randen.jpeg&lt;br /&gt;
File:doms_FieldTrip_Randen.jpg&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Brushologische Werkschau - G-code and G-code not yet, 27.- 29. March 2026 ===&lt;br /&gt;
&lt;br /&gt;
[[File:flyer_g39_werkschau2026.jpg|thumb]]&lt;br /&gt;
&lt;br /&gt;
Location: [https://www.openstreetmap.org/way/200654105 @Grubenstrasse 39], 8045 Zürich&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;computed paintings and intuitive paintings / G-code paintings and not yet G-code paintings / handmade versus computed and more about the openBrušographie Labs&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
by salomek, gandalf, heinz, doms, dusjagr&lt;br /&gt;
&lt;br /&gt;
[https://www.kunstbulletin.ch/de/ausstellung/g-code-and-g-code-not-yet-werkschau-2026 More info in German and English on Kunstbulletin]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Vernissage Fr 27.3. 18:00&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
*food &amp;amp; bar&lt;br /&gt;
*interduction &amp;amp; live brushographie painting demos&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Open Sa 28.3. 12:00-22:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Workshop  13-17h with MrFX and dusjagr&lt;br /&gt;
*more demo and with open grill&lt;br /&gt;
*welcome spring &amp;amp; sommertime with us... even if it snoows...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finissage So 29.3. 13:00-17:00&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*coffee, cake and concert who knows… &lt;br /&gt;
*and it is a moment to share-worries-about-the-world...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;What to discover&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* discover paintings by salomek: work 2025/26&lt;br /&gt;
* discover paintings by salomek, gandalf, heinz, doms, dusjagr: brushographie 2025/26&lt;br /&gt;
* discover openbrushograph.github.io developed by doms und dusjagr&lt;br /&gt;
* discover live brushographie painting demo with brushograph aka painting machine&lt;br /&gt;
* reflect paintings 2026 by the featured juxtaposition of these methodologies&lt;br /&gt;
* workshop and experiments with your own tartare-painting-machine and get intuitively into colors... &lt;br /&gt;
**Workshop time: Saturday 28.3., 13-17 Uhr, expected prize chf 80.-, budget and soliprize possible  &lt;br /&gt;
**not too many set&#039;s to build, so do your registration with mail to workshop(at)actioncy.ch&lt;br /&gt;
&lt;br /&gt;
==== Guestbook of the Exhibition ====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s see how our audience reacts to our agentic chimera: In [https://sgmkcloud.ocloud.de/index.php/s/Mq3sjPTQmNZj5RH German (original)] or in [https://sgmkcloud.ocloud.de/index.php/s/LLcekPWati4i4zn English (AI translated)]&lt;br /&gt;
&lt;br /&gt;
==== Agentic Interview with dusjagr by «SaloDomsGan» ====&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SaloDomsGan:&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Willkommen zu dieser speziellen Aufnahme! Bevor wir ins eigentliche Interview starten, vorab ein kurzer Kontext: In diesem Gespräch geht es um das Open-Source-Projekt Brushology – eine globale Maker-Initiative zum Bau und zur kreativen Modifikation von kostengünstigen Malrobotern, den sogenannten Brushographen. Dieses Interview entstand im unmittelbaren Vorfeld der Ausstellung G-Code, G-Code, Not Yet in der Grubenstrasse 39 in Zürich. Dort werden die maschinengemalten Test-Patterns, Algorithmen und Codeschnipsel der Community präsentiert, und die Workshopology – der DIY-Lernprozess dahinter – gefeiert. Zudem ein wichtiges Acknowlegdement zur Entstehung dieser Audiospur: Das folgende Interview entstand vollumfänglich mithilfe modernster K I-Technologien im Rahmen eines Agentic Coding-Experiments. Die interaktive Interviewer-Persona «SaloDomsGan» – also ich – wurde initial mit Claude von Anthropic erschaffen. Nach aufgebrauchten Credits vollzogen wir für den Rest des Interviews einen nahtlosen Wechsel zum Modell Gemini. Der gesamte Prozess fand lokal in der AntiGravity-Entwicklungsumgebung statt, fast ausschliesslich gesteuert über Voice-Commands von Marc, analysiert durch multimodale K I-Erkennung und live vertont durch die lokalen Open-Source-Stimmen von Piper. Ein wahrhaftiges Beispiel für den aktuellen Stand des Hackings an der Schnittstelle von Mensch und Maschine... Aber nun genug der Vorrede. Starten wir mit Frage 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&amp;quot;Welcome to this special recording! Before we dive into the actual interview, here&#039;s some quick context: This conversation focuses on the open-source project Brushology – a global maker initiative for building and creatively modifying low-cost painting robots, the so-called Brushographs. This interview was recorded in the immediate run-up to the exhibition G-Code, G-Code, Not Yet at Grubenstrasse 39 in Zurich. There, the machine-painted test patterns, algorithms, and code snippets of the community are presented, and Workshopology – the DIY learning process behind it – is celebrated. Additionally, an important acknowledgment regarding the creation of this audio track: The following interview was generated entirely using state-of-the-art A I technologies as part of an Agentic Coding experiment. The interactive interviewer persona &amp;quot;SaloDomsGan&amp;quot; – that is me – was initially created using Claude from Anthropic. After our API credits ran out, we made a seamless transition to the Gemini model for the remainder of the interview. The entire process took place locally within the AntiGravity development environment, controlled almost exclusively via voice commands from Marc, analyzed through multimodal A I recognition, and live-dubbed by the local open-source voices of Piper. A true example of the current state of hacking at the dynamic intersection of human and machine... But enough of the preface. Let&#039;s start with Question 1!&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Read the [https://sgmkcloud.ocloud.de/index.php/s/3Wpxj3GbHQEwAmn german full  interview on our cloud] or in [https://sgmkcloud.ocloud.de/index.php/s/xbcNsj2BXAbwiz7 english].&lt;br /&gt;
&lt;br /&gt;
Or listen text2speach in [https://sgmkcloud.ocloud.de/index.php/s/MjcAcT4qpPczSxz English] or [https://sgmkcloud.ocloud.de/index.php/s/PLcNYzFMdkLMQ8k German]:&lt;br /&gt;
&lt;br /&gt;
== Random Youtube instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;-KE4-wfscfg&amp;lt;/youtube&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;youtube&amp;gt;nKP64VDIbHs&amp;lt;/youtube&amp;gt;&lt;/div&gt;</summary>
		<author><name>Gandalf</name></author>
	</entry>
</feed>