<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.cricalix.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cricalix</id>
	<title>Cricalix.Net - User contributions [en-gb]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.cricalix.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Cricalix"/>
	<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php/Special:Contributions/Cricalix"/>
	<updated>2026-04-21T08:27:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NUT&amp;diff=108</id>
		<title>Computing/NUT</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NUT&amp;diff=108"/>
		<updated>2026-04-02T17:17:05Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Network UPS ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dnf install nut&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
For the Eaton Pro UPS, &#039;&#039;&#039;/etc/ups/ups.conf&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[eaton650]&lt;br /&gt;
        driver = &amp;quot;usbhid-ups&amp;quot;&lt;br /&gt;
        port = &amp;quot;auto&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;/etc/ups/upsd.conf&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LISTEN * 3493&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;All other files were left at defaults from the RPM installs, bar this detritus from a polkit adventure - it may or may not still apply&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
polkit.addRule(function(action, subject) {&lt;br /&gt;
    if (action.id == &amp;quot;org.freedesktop.systemd1.manage-units&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
        subject.user == &amp;quot;nut&amp;quot;) {&lt;br /&gt;
        return polkit.Result.YES;&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== udev ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ATTR{idVendor}==&amp;quot;0463&amp;quot;, ATTR{idProduct}==&amp;quot;ffff&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;nut&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Runtime ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
systemctl start nut-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The script behind nut-server will spin up new systemctl services to handle the UPS.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Previous attempts got stuck on custom UPS definitions in systemd, with permissions not setting up correctly etc. Ended up blowing everything away and restarting from scratch with the NUT enumerator approach.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NUT&amp;diff=107</id>
		<title>Computing/NUT</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NUT&amp;diff=107"/>
		<updated>2026-04-02T17:16:48Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Network UPS ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install nut nut-monitor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
For the Eaton Pro UPS, &#039;&#039;&#039;/etc/ups/ups.conf&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[eaton650]&lt;br /&gt;
        driver = &amp;quot;usbhid-ups&amp;quot;&lt;br /&gt;
        port = &amp;quot;auto&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&#039;&#039;&#039;/etc/ups/upsd.conf&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LISTEN * 3493&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;All other files were left at defaults from the RPM installs, bar this detritus from a polkit adventure - it may or may not still apply&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
polkit.addRule(function(action, subject) {&lt;br /&gt;
    if (action.id == &amp;quot;org.freedesktop.systemd1.manage-units&amp;quot; &amp;amp;&amp;amp;&lt;br /&gt;
        subject.user == &amp;quot;nut&amp;quot;) {&lt;br /&gt;
        return polkit.Result.YES;&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== udev ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
ATTR{idVendor}==&amp;quot;0463&amp;quot;, ATTR{idProduct}==&amp;quot;ffff&amp;quot;, MODE=&amp;quot;664&amp;quot;, GROUP=&amp;quot;nut&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Runtime ==&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
systemctl start nut-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The script behind nut-server will spin up new systemctl services to handle the UPS.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
Previous attempts got stuck on custom UPS definitions in systemd, with permissions not setting up correctly etc. Ended up blowing everything away and restarting from scratch with the NUT enumerator approach.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=106</id>
		<title>Computing/NAS/Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=106"/>
		<updated>2026-04-02T17:12:23Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Remove proxmox, use Incus&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Hardware ==&lt;br /&gt;
Core is a https://nascompares.com/review/cwwk-q670-8-bay-gen5-nas-vpro-mobo-review/ ([https://web.archive.org/web/20250624104920/https://nascompares.com/review/cwwk-q670-8-bay-gen5-nas-vpro-mobo-review/ archive] link); twin 2.5G network ports, a lot of SATA ports, and lots of compromises.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
Used https://mkdocs-4960c2.gitlab.io/lab/incus/incus_network_issues_walkthrough/ ([https://web.archive.org/web/20260402165455/https://mkdocs-4960c2.gitlab.io/lab/incus/incus_network_issues_walkthrough/ archive] link; apparently AI generated, but functional enough) as a guide to reconfiguring the Fedora OS that&#039;s running the NAS so that br0 is the primary interface for Incus to use directly. This enables host-container communication - macvlan doesn&#039;t allow this, and the default Incus bridge uses NAT (and I don&#039;t want to deal with port forwards)&lt;br /&gt;
&lt;br /&gt;
=== Host ===&lt;br /&gt;
The host uses enp7s0 for connectivity&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[connection]&lt;br /&gt;
id=enp7s0&lt;br /&gt;
uuid=4d354481-a088-3449-8d28-35b96ac1a3d4&lt;br /&gt;
type=ethernet&lt;br /&gt;
autoconnect-priority=-999&lt;br /&gt;
interface-name=enp7s0&lt;br /&gt;
timestamp=1775146834&lt;br /&gt;
&lt;br /&gt;
[ethernet]&lt;br /&gt;
&lt;br /&gt;
[ipv4]&lt;br /&gt;
address1=192.168.0.181/24&lt;br /&gt;
dns=192.168.0.1;&lt;br /&gt;
gateway=192.168.0.1&lt;br /&gt;
method=manual&lt;br /&gt;
&lt;br /&gt;
[ipv6]&lt;br /&gt;
addr-gen-mode=default&lt;br /&gt;
method=auto&lt;br /&gt;
&lt;br /&gt;
[proxy]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Host Bridge ===&lt;br /&gt;
The bridge is configured with br0 having a static IP, and a slave interface is set up for enp8s0 so that the bridge sits on physical network port.&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[connection]&lt;br /&gt;
id=br0&lt;br /&gt;
type=bridge&lt;br /&gt;
interface-name=br0&lt;br /&gt;
&lt;br /&gt;
[bridge]&lt;br /&gt;
forward-delay=0&lt;br /&gt;
stp=false&lt;br /&gt;
&lt;br /&gt;
[ipv4]&lt;br /&gt;
address1=192.168.0.2/24&lt;br /&gt;
dns=192.168.0.1;&lt;br /&gt;
gateway=192.168.0.1&lt;br /&gt;
method=manual&lt;br /&gt;
&lt;br /&gt;
[ipv6]&lt;br /&gt;
addr-gen-mode=default&lt;br /&gt;
method=auto&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[connection]&lt;br /&gt;
id=br0-slave&lt;br /&gt;
type=ethernet&lt;br /&gt;
controller=br0&lt;br /&gt;
interface-name=enp8s0&lt;br /&gt;
port-type=bridge&lt;br /&gt;
&lt;br /&gt;
[ethernet]&lt;br /&gt;
&lt;br /&gt;
[bridge-port]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Incus Bridge ===&lt;br /&gt;
Incus&#039;s default bridge was removed when setting up the new configuration (older install where the default bridge had been accepted. A custom physical interface was added, based on the &amp;lt;code&amp;gt;br0&amp;lt;/code&amp;gt; bridge. Profiles were then changed to use the new &amp;lt;code&amp;gt;ibr0&amp;lt;/code&amp;gt;.&lt;br /&gt;
 incus network create ibr0 --type=physical parent=br0&lt;br /&gt;
&lt;br /&gt;
== VMs and Containers ==&lt;br /&gt;
&lt;br /&gt;
=== Unraid VM ===&lt;br /&gt;
Unraid needs a USB stick to boot from, as it uses the serial number of the stick as a license key. Ended up with plopkexec in the boot path for the qemu-backed VM (pc-q35)&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
devices:&lt;br /&gt;
  iso-volume:&lt;br /&gt;
    boot.priority: &#039;10&#039;&lt;br /&gt;
    pool: machines&lt;br /&gt;
    source: plopkexec64.iso&lt;br /&gt;
    type: disk&lt;br /&gt;
  bootdrive:&lt;br /&gt;
    required: &#039;true&#039;&lt;br /&gt;
    serial: 20CF302E2382F150663CA637&lt;br /&gt;
    type: usb&lt;br /&gt;
  sata:&lt;br /&gt;
    address: &#039;00:17.0&#039;&lt;br /&gt;
    type: pci&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Whole SATA controller is passed through, removing the devices from the view of the host OS.&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
Default HAOS setup, but with two USB devices passed through from the host for Zigbee and Matter support.&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
devices:&lt;br /&gt;
  matter-antenna:&lt;br /&gt;
    productid: 831a&lt;br /&gt;
    type: usb&lt;br /&gt;
    vendorid: 303a&lt;br /&gt;
  zigbee:&lt;br /&gt;
    productid: 55d4&lt;br /&gt;
    type: usb&lt;br /&gt;
    vendorid: 1a86&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The Incus web UI can do very silly things when adding USB devices; doing it via the YAML editor is safer. Silly being defined as not allowing settings for the passed-through device, and &#039;usb&#039; seemed to grab everything including the pass through for the Unraid VM (making Unraid unhappy).&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=105</id>
		<title>Blue Opal/Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=105"/>
		<updated>2025-06-07T12:31:00Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Inventory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the engine, a Yanmar 3GM30F.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
|-&lt;br /&gt;
|Engine&lt;br /&gt;
|Alternator&lt;br /&gt;
|Top bolt&lt;br /&gt;
|14mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Swing nut&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Water Pump&lt;br /&gt;
|Top bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Starter Solenoid ==&lt;br /&gt;
&lt;br /&gt;
To solve a starting issue, an automotive relay was installed. The correct relay will have four terminals numbered 85, 86, 30 and 87.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Make up a length of cable from the large screw on the solenoid (battery cable terminal) and connect this to #30. Remove white cable from small solenoid terminal and connect to #85.&lt;br /&gt;
&lt;br /&gt;
Make up cable from #86 connect to engine block. Connect #87 to small terminal on the solenoid.&lt;br /&gt;
&lt;br /&gt;
Terminals #85 &amp;amp; #86 actuate the relay and #30 &amp;amp; #87 power the solenoid.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
-- https://www.cricalix.net/2023/05/13/relaying-a-solenoid/&lt;br /&gt;
&lt;br /&gt;
== Parts Cross-reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Item&lt;br /&gt;
!Page&lt;br /&gt;
!Original&lt;br /&gt;
!Alternative 1&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|&lt;br /&gt;
|Racor R12P&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|Blue Opal&#039;s original filter housing was replaced with a Racor&lt;br /&gt;
|-&lt;br /&gt;
|Secondary fuel filter / fuel strainer&lt;br /&gt;
|55&lt;br /&gt;
|Yanmar 104500-55710&lt;br /&gt;
|Orbitrade 8-55710&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|38&lt;br /&gt;
|Yanmar 124450-35100&lt;br /&gt;
Yanmar 119660-35150&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35170&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35151&lt;br /&gt;
|Blue Print ADS72101&lt;br /&gt;
|The ADS72101 has a larger outer diameter, but fits. Filter is shared across 1/2/3GMs.&lt;br /&gt;
35100 appears to be unavailable.&lt;br /&gt;
35151 supersedes 35150, slightly smaller.&lt;br /&gt;
35170 found in spares on board.&lt;br /&gt;
https://marineparts.ie/filter-assy-lub-oil/ (35170)&lt;br /&gt;
https://marineparts.ie/oil-filter-rec119305-35151-yanmar/ (35151)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Page numbers reference the [[:File:Yanmar-3GM30-parts-catalog.pdf|Yanmar Parts Catalog]].&lt;br /&gt;
&lt;br /&gt;
For fuel filters, https://www.fuelfilter-crossreference.com/convert/FLEETGUARD/FS19627 is a decent reference.&lt;br /&gt;
&lt;br /&gt;
For oil filters, https://www.oilfilter-crossreference.com/convert/YANMAR/124450-35100 is a decent reference.&lt;br /&gt;
 Filter type: Full-Flow Lube Spin-on&lt;br /&gt;
 Thread measurement: 20x1.5mm&lt;br /&gt;
 Outer diameter: 77 mm (Approx. 3.03&amp;quot;)&lt;br /&gt;
 Height: 86 mm (Approx. 3.39&amp;quot;)&lt;br /&gt;
Mounts - https://www.parts4engines.com/yanmar-3gm30-and-3gm30f-engine-mount/ - claim to be better than original ones.&lt;br /&gt;
&lt;br /&gt;
== Inventory ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Purpose&lt;br /&gt;
!Part number&lt;br /&gt;
!Count&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Impeller kit&lt;br /&gt;
|Johnson 09-810B / JIKJMP005&lt;br /&gt;
|3&lt;br /&gt;
|Yanmar water pump is a rebadge&lt;br /&gt;
|-&lt;br /&gt;
|Impeller&lt;br /&gt;
|Yanmar 128296-42070&lt;br /&gt;
|1&lt;br /&gt;
|Not a full kit&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|Yanmar 119305-35170&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|BluePrint ADS72101&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Thermostat gasket&lt;br /&gt;
|Yanmar 129350-49451&lt;br /&gt;
|1&lt;br /&gt;
|https://marineparts.ie/rec129350-49541/&lt;br /&gt;
|-&lt;br /&gt;
|Fresh water thermostat&lt;br /&gt;
|Yanmar 121750-49800&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Fuel filter&lt;br /&gt;
|Orbitrade 8-55710 / 10450055710&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Alternator belt&lt;br /&gt;
|Yanmar 25132-003700&lt;br /&gt;
|1&lt;br /&gt;
|https://www.svb24.com/en/v-belt-for-yanmar-2gm20f-3gm30f.html&lt;br /&gt;
|-&lt;br /&gt;
|Raw water belt&lt;br /&gt;
|Yanmar 104511-78780&lt;br /&gt;
|0&lt;br /&gt;
|https://www.svb24.com/en/yanmar-v-belt-for-seawater-pump-2-3-gm.html&lt;br /&gt;
|-&lt;br /&gt;
|Collar anode&lt;br /&gt;
|AV004 / 957000001805&lt;br /&gt;
|5&lt;br /&gt;
|25mm shaft,https://miscosrl.com/en/prodotto/anodo-a-collare-av004-asse-o-25mm/&lt;br /&gt;
|-&lt;br /&gt;
|Heads smell filter&lt;br /&gt;
|Vetus NSF16FES&lt;br /&gt;
|1&lt;br /&gt;
|4 in pack, https://webshop.vetus.com/en/product/nsf16fes-filter-element-for&lt;br /&gt;
|-&lt;br /&gt;
|Manual bilge kit&lt;br /&gt;
|Gusher Titan AK4400&lt;br /&gt;
|1&lt;br /&gt;
|Service kit, https://www.chmarine.com/whale-gusher-titan-service-kit/&lt;br /&gt;
|-&lt;br /&gt;
|Boiler anode&lt;br /&gt;
|FVSLANMG 1820A00&lt;br /&gt;
|2&lt;br /&gt;
|200mm boiler anode, &amp;lt;nowiki&amp;gt;https://www.svb24.com/en/quick-magnesium-anode-for-b3-bx-and-bxs-series-boilers.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Main anode 10mm stud 17mm nut 0.4 alu&lt;br /&gt;
&lt;br /&gt;
shaft anode 4 mm Allen captive nuts 25mm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sra supply to head -15-27 jubilee&lt;br /&gt;
&lt;br /&gt;
waste from head 35 to 50 jubilee&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=104</id>
		<title>Blue Opal/Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=104"/>
		<updated>2025-06-07T10:52:55Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the engine, a Yanmar 3GM30F.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
|-&lt;br /&gt;
|Engine&lt;br /&gt;
|Alternator&lt;br /&gt;
|Top bolt&lt;br /&gt;
|14mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Swing nut&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Water Pump&lt;br /&gt;
|Top bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Starter Solenoid ==&lt;br /&gt;
&lt;br /&gt;
To solve a starting issue, an automotive relay was installed. The correct relay will have four terminals numbered 85, 86, 30 and 87.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Make up a length of cable from the large screw on the solenoid (battery cable terminal) and connect this to #30. Remove white cable from small solenoid terminal and connect to #85.&lt;br /&gt;
&lt;br /&gt;
Make up cable from #86 connect to engine block. Connect #87 to small terminal on the solenoid.&lt;br /&gt;
&lt;br /&gt;
Terminals #85 &amp;amp; #86 actuate the relay and #30 &amp;amp; #87 power the solenoid.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
-- https://www.cricalix.net/2023/05/13/relaying-a-solenoid/&lt;br /&gt;
&lt;br /&gt;
== Parts Cross-reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Item&lt;br /&gt;
!Page&lt;br /&gt;
!Original&lt;br /&gt;
!Alternative 1&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|&lt;br /&gt;
|Racor R12P&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|Blue Opal&#039;s original filter housing was replaced with a Racor&lt;br /&gt;
|-&lt;br /&gt;
|Secondary fuel filter / fuel strainer&lt;br /&gt;
|55&lt;br /&gt;
|Yanmar 104500-55710&lt;br /&gt;
|Orbitrade 8-55710&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|38&lt;br /&gt;
|Yanmar 124450-35100&lt;br /&gt;
Yanmar 119660-35150&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35170&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35151&lt;br /&gt;
|Blue Print ADS72101&lt;br /&gt;
|The ADS72101 has a larger outer diameter, but fits. Filter is shared across 1/2/3GMs.&lt;br /&gt;
35100 appears to be unavailable.&lt;br /&gt;
35151 supersedes 35150, slightly smaller.&lt;br /&gt;
35170 found in spares on board.&lt;br /&gt;
https://marineparts.ie/filter-assy-lub-oil/ (35170)&lt;br /&gt;
https://marineparts.ie/oil-filter-rec119305-35151-yanmar/ (35151)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Page numbers reference the [[:File:Yanmar-3GM30-parts-catalog.pdf|Yanmar Parts Catalog]].&lt;br /&gt;
&lt;br /&gt;
For fuel filters, https://www.fuelfilter-crossreference.com/convert/FLEETGUARD/FS19627 is a decent reference.&lt;br /&gt;
&lt;br /&gt;
For oil filters, https://www.oilfilter-crossreference.com/convert/YANMAR/124450-35100 is a decent reference.&lt;br /&gt;
 Filter type: Full-Flow Lube Spin-on&lt;br /&gt;
 Thread measurement: 20x1.5mm&lt;br /&gt;
 Outer diameter: 77 mm (Approx. 3.03&amp;quot;)&lt;br /&gt;
 Height: 86 mm (Approx. 3.39&amp;quot;)&lt;br /&gt;
Mounts - https://www.parts4engines.com/yanmar-3gm30-and-3gm30f-engine-mount/ - claim to be better than original ones.&lt;br /&gt;
&lt;br /&gt;
== Inventory ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Purpose&lt;br /&gt;
!Part number&lt;br /&gt;
!Count&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Impeller kit&lt;br /&gt;
|Johnson 09-810B / JIKJMP005&lt;br /&gt;
|3&lt;br /&gt;
|Yanmar water pump is a rebadge&lt;br /&gt;
|-&lt;br /&gt;
|Impeller&lt;br /&gt;
|Yanmar 128296-42070&lt;br /&gt;
|1&lt;br /&gt;
|Not a full kit&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|Yanmar 119305-35170&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|BluePrint ADS72101&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Thermostat gasket&lt;br /&gt;
|Yanmar 129350-49451&lt;br /&gt;
|1&lt;br /&gt;
|https://marineparts.ie/rec129350-49541/&lt;br /&gt;
|-&lt;br /&gt;
|Fresh water thermostat&lt;br /&gt;
|Yanmar 121750-49800&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Fuel filter&lt;br /&gt;
|Orbitrade 8-55710 / 10450055710&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Alternator belt&lt;br /&gt;
|Yanmar 25132-003700&lt;br /&gt;
|1&lt;br /&gt;
|https://www.svb24.com/en/v-belt-for-yanmar-2gm20f-3gm30f.html&lt;br /&gt;
|-&lt;br /&gt;
|Raw water belt&lt;br /&gt;
|Yanmar 104511-78780&lt;br /&gt;
|0&lt;br /&gt;
|https://www.svb24.com/en/yanmar-v-belt-for-seawater-pump-2-3-gm.html&lt;br /&gt;
|-&lt;br /&gt;
|Collar anode&lt;br /&gt;
|AV004 / 957000001805&lt;br /&gt;
|5&lt;br /&gt;
|25mm shaft,https://miscosrl.com/en/prodotto/anodo-a-collare-av004-asse-o-25mm/&lt;br /&gt;
|-&lt;br /&gt;
|Heads smell filter&lt;br /&gt;
|Vetus NSF16FES&lt;br /&gt;
|1&lt;br /&gt;
|4 in pack, https://webshop.vetus.com/en/product/nsf16fes-filter-element-for&lt;br /&gt;
|-&lt;br /&gt;
|Manual bilge kit&lt;br /&gt;
|Gusher Titan AK4400&lt;br /&gt;
|1&lt;br /&gt;
|Service kit, https://www.chmarine.com/whale-gusher-titan-service-kit/&lt;br /&gt;
|-&lt;br /&gt;
|Boiler anode&lt;br /&gt;
|FVSLANMG 1820A00&lt;br /&gt;
|2&lt;br /&gt;
|200mm boiler anode, &amp;lt;nowiki&amp;gt;https://www.svb24.com/en/quick-magnesium-anode-for-b3-bx-and-bxs-series-boilers.html&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Main anode 10mm stud 17mm nut 0.4 alu&lt;br /&gt;
&lt;br /&gt;
shaft anode 4 mm Allen captive nuts 25mm&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=103</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=103"/>
		<updated>2025-03-17T08:44:43Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 80 Ah SLA. Effective 40 Ah.&lt;br /&gt;
&lt;br /&gt;
=== Alternator ===&lt;br /&gt;
BV PSH 80A, Hitachi saddle mount. Sourced from Myles Balfe.  V-belt sheave.&lt;br /&gt;
[[File:Img 2122-768x1024.jpg|none|thumb|Part number is 985.001.080.200.]]&lt;br /&gt;
[[File:Alternator specifications for Blue Opal.jpg|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Bank&amp;quot;&lt;br /&gt;
subgraph &amp;quot;House Battery 1 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery (2023)&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_LOAD[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_SOURCE[S];&lt;br /&gt;
  ENG_SW_LOAD[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BB1240 (B2B 12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Solar&amp;quot;&lt;br /&gt;
  SOLAR_PANEL[&amp;quot;200 Wp Renogy&amp;quot;]&lt;br /&gt;
  subgraph &amp;quot;Votronic 250&amp;quot;&lt;br /&gt;
    SOLAR_IN_POS[S]&lt;br /&gt;
    SOLAR_IN_NEG[S]&lt;br /&gt;
    SOLAR_OUT_POS[L]&lt;br /&gt;
    SOLAR_OUT_NEG[L]&lt;br /&gt;
  end&lt;br /&gt;
  SOLAR_PANEL --- SOLAR_IN_POS;&lt;br /&gt;
  SOLAR_PANEL --- SOLAR_IN_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Charge Fuse&amp;quot;&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE[S]&lt;br /&gt;
  STARTER_CHARGE_FUSE(70A)&lt;br /&gt;
  STARTER_CHARGE_FUSE_LOAD[L]&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE --- STARTER_CHARGE_FUSE --- STARTER_CHARGE_FUSE_LOAD;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
WINDLASS_NEG[Windlass];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT2_POS === HOUSE_BAT1_POS;&lt;br /&gt;
HOUSE_BAT2_NEG === HOUSE_BAT1_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE_LOAD --- STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --- HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS == 25mm ==&amp;gt; ENG_SW_SOURCE;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_LOAD --- IGNITION;&lt;br /&gt;
ENG_SW_LOAD --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE_SOURCE == 10mm === BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_LOAD === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_LOAD === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --- STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
SOLAR_OUT_POS --- STARTER_BAT_POS;&lt;br /&gt;
SOLAR_OUT_NEG --- STARTER_BAT_NEG;&lt;br /&gt;
WINDLASS_NEG --- STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,WLS_SW_POS,ENG_SW_SOURCE,ENG_SW_LOAD,HOUSE_SW_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_SOURCE,SOLAR_IN_POS,SOLAR_OUT_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class HOUSE_SW_LOAD pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_LOAD pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}To-do: Replace direct-to-terminal with distribution bus bars. Starter negative terminal has more than 4 cables attached.&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=102</id>
		<title>Computing/NAS/Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=102"/>
		<updated>2024-12-22T21:15:17Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Proxmox ===&lt;br /&gt;
Defaults to port 8006. Given I access it from multiple machines, defaulting to 443 would be nice.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8006&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then use iptables-persistent to make that apply every time.&lt;br /&gt;
&lt;br /&gt;
=== Unraid VM ===&lt;br /&gt;
Unraid needs a USB stick to boot from. Legacy advice on the Internet is that Proxmox won&#039;t boot a VM from a USB stick, but that&#039;s wrong with at least Proxmox V8. Config for VM&lt;br /&gt;
&lt;br /&gt;
* q35 machine&lt;br /&gt;
* UEFI/OVMF&lt;br /&gt;
* &#039;&#039;&#039;No&#039;&#039;&#039; EFI disk&lt;br /&gt;
* Some GB of RAM&lt;br /&gt;
* Host CPU cores, 2 of them (the VM is tied to the USB stick anyway, so may as well tie it to the host cores)&lt;br /&gt;
* PCI passthrough - SATA controller&lt;br /&gt;
&lt;br /&gt;
SATA controller was assigned to a resource mapping at the Datacenter level in the Proxmox UI tree, then made available for the PCI passthrough. Two USB sticks were also configured in resource mappings; one for the boot stick, and the other for temporary use in the Unraid array. Integrated graphics also isolated for passthrough to the Media Host.&lt;br /&gt;
&lt;br /&gt;
=== Media host VM ===&lt;br /&gt;
Tried q35 with PCI passthrough of the IGP&lt;br /&gt;
&lt;br /&gt;
Hit https://bugzilla.proxmox.com/show_bug.cgi?id=2381&lt;br /&gt;
&lt;br /&gt;
Revert to 440 with PCI passthrough. Had to reinstall for some reason, and switch to SeaBIOS.&lt;br /&gt;
&lt;br /&gt;
==== Media host Sonarr ====&lt;br /&gt;
&amp;lt;code&amp;gt;podman run --name=sonarr --detach -e PUID=$(id -u media) -e PGUID=$(id -g media) -e TZ=Europe/Dublin -p 8989:8989 -v /services/sonarr:/config -v /vault/video/TV\ Shows:/media --restart always lscr.io/linuxserver/sonarr:latest&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Needs host NFS mounted. Avoids trying to do privileged LXCs on Proxmox and working out how to maintain a copy of the configs outside of the container.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=101</id>
		<title>Computing/NAS/Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=101"/>
		<updated>2024-12-22T12:20:25Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proxmox&lt;br /&gt;
&lt;br /&gt;
Defaults to port 8006. Given I access it from multiple machines, defaulting to 443 would be nice.&lt;br /&gt;
&lt;br /&gt;
`iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8006`&lt;br /&gt;
&lt;br /&gt;
Then use iptables-persistent to make that apply every time.&lt;br /&gt;
&lt;br /&gt;
Unraid VM&lt;br /&gt;
&lt;br /&gt;
Unraid needs a USB stick to boot from. Legacy advice on the Internet is that Proxmox won&#039;t boot a VM from a USB stick, but that&#039;s wrong with at least Proxmox V8. Config for VM&lt;br /&gt;
&lt;br /&gt;
* q35 machine&lt;br /&gt;
* UEFI/OVMF&lt;br /&gt;
* &#039;&#039;&#039;No&#039;&#039;&#039; EFI disk&lt;br /&gt;
* Some GB of RAM&lt;br /&gt;
* Host CPU cores, 2 of them (the VM is tied to the USB stick anyway, so may as well tie it to the host cores)&lt;br /&gt;
* PCI passthrough - SATA controller&lt;br /&gt;
&lt;br /&gt;
SATA controller was assigned to a resource mapping at the Datacenter level in the Proxmox UI tree, then made available for the PCI passthrough. Two USB sticks were also configured in resource mappings; one for the boot stick, and the other for temporary use in the Unraid array.&lt;br /&gt;
&lt;br /&gt;
Media host VM&lt;br /&gt;
&lt;br /&gt;
Tried q35 with PCI passthrough of the IGP&lt;br /&gt;
&lt;br /&gt;
Hit https://bugzilla.proxmox.com/show_bug.cgi?id=2381&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=100</id>
		<title>Computing/NAS/Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=100"/>
		<updated>2024-12-22T12:17:34Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proxmox&lt;br /&gt;
&lt;br /&gt;
Defaults to port 8006. Given I access it from multiple machines, defaulting to 443 would be nice.&lt;br /&gt;
&lt;br /&gt;
`iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8006`&lt;br /&gt;
&lt;br /&gt;
Then use iptables-persistent to make that apply every time.&lt;br /&gt;
&lt;br /&gt;
Unraid VM&lt;br /&gt;
&lt;br /&gt;
Unraid needs a USB stick to boot from. Legacy advice on the Internet is that Proxmox won&#039;t boot a VM from a USB stick, but that&#039;s wrong with at least Proxmox V8. Config for VM&lt;br /&gt;
&lt;br /&gt;
* q35 machine&lt;br /&gt;
* UEFI/OVMF&lt;br /&gt;
* &#039;&#039;&#039;No&#039;&#039;&#039; EFI disk&lt;br /&gt;
* Some GB of RAM&lt;br /&gt;
* Host CPU cores, 2 of them (the VM is tied to the USB stick anyway, so may as well tie it to the host cores)&lt;br /&gt;
* PCI passthrough - SATA controller&lt;br /&gt;
&lt;br /&gt;
SATA controller was assigned to a resource mapping at the Datacenter level in the Proxmox UI tree, then made available for the PCI passthrough. Two USB sticks were also configured in resource mappings; one for the boot stick, and the other for temporary use in the Unraid array.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=99</id>
		<title>Computing/NAS/Software</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NAS/Software&amp;diff=99"/>
		<updated>2024-12-21T15:28:58Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Created page with &amp;quot;Proxmox  Unraid VM  Unraid needs a USB stick to boot from. Legacy advice on the Internet is that Proxmox won&amp;#039;t boot a VM from a USB stick, but that&amp;#039;s wrong with at least Proxmox V8. Config for VM  * q35 machine * UEFI/OVMF * &amp;#039;&amp;#039;&amp;#039;No&amp;#039;&amp;#039;&amp;#039; EFI disk * Some GB of RAM * Host CPU cores, 2 of them (the VM is tied to the USB stick anyway, so may as well tie it to the host cores) * PCI passthrough - SATA controller  SATA controller was assigned to a resource mapping at the Datacenter...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proxmox&lt;br /&gt;
&lt;br /&gt;
Unraid VM&lt;br /&gt;
&lt;br /&gt;
Unraid needs a USB stick to boot from. Legacy advice on the Internet is that Proxmox won&#039;t boot a VM from a USB stick, but that&#039;s wrong with at least Proxmox V8. Config for VM&lt;br /&gt;
&lt;br /&gt;
* q35 machine&lt;br /&gt;
* UEFI/OVMF&lt;br /&gt;
* &#039;&#039;&#039;No&#039;&#039;&#039; EFI disk&lt;br /&gt;
* Some GB of RAM&lt;br /&gt;
* Host CPU cores, 2 of them (the VM is tied to the USB stick anyway, so may as well tie it to the host cores)&lt;br /&gt;
* PCI passthrough - SATA controller&lt;br /&gt;
&lt;br /&gt;
SATA controller was assigned to a resource mapping at the Datacenter level in the Proxmox UI tree, then made available for the PCI passthrough. Two USB sticks were also configured in resource mappings; one for the boot stick, and the other for temporary use in the Unraid array.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NAS/Hardware&amp;diff=98</id>
		<title>Computing/NAS/Hardware</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NAS/Hardware&amp;diff=98"/>
		<updated>2024-12-14T16:39:49Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Created page with &amp;quot;Motherboard  A gamble to get sufficient SATA ports in a small form factor, so a CWWK Q670 NAS board supplied by the King Novy store on AliExpress.  This board, as shipped, has some problems - time will tell if they can be resolved by manufacturer or community BIOS updates.  Shipped BIOS, 2024-10-23  * Cannot drive RAM at 5600 MHz with a 14500 CPU. Manufacturer claims it does, but it doesn&amp;#039;t; shows as 4800 MHz. Not crucial for a home NAS/small lab server, since the price...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Motherboard&lt;br /&gt;
&lt;br /&gt;
A gamble to get sufficient SATA ports in a small form factor, so a CWWK Q670 NAS board supplied by the King Novy store on AliExpress.&lt;br /&gt;
&lt;br /&gt;
This board, as shipped, has some problems - time will tell if they can be resolved by manufacturer or community BIOS updates.&lt;br /&gt;
&lt;br /&gt;
Shipped BIOS, 2024-10-23&lt;br /&gt;
&lt;br /&gt;
* Cannot drive RAM at 5600 MHz with a 14500 CPU. Manufacturer claims it does, but it doesn&#039;t; shows as 4800 MHz. Not crucial for a home NAS/small lab server, since the price difference between 4800 and 5600 DDR5 is negligible.&lt;br /&gt;
&lt;br /&gt;
There is a Reddit thread where /u/Yonji1 is doing good work to unlock features of the BIOS. https://old.reddit.com/r/homelab/comments/1gmf67u/cwwk_q670_8bay_new_model_white/ly7u31g/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BIOS update process&lt;br /&gt;
&lt;br /&gt;
* Format a USB stick to FAT32&lt;br /&gt;
* Unpack the ISO&lt;br /&gt;
* Copy the contents to the stick&lt;br /&gt;
* Boot the machine, press F7 when it beeps&lt;br /&gt;
* Select USB: UEFI&lt;br /&gt;
* Let it update the BIOS; a few minutes of erasing and programming&lt;br /&gt;
&lt;br /&gt;
On reboot it will take on the order of a minute at a black screen to start up and show the AMI BIOS logo.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=97</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=97"/>
		<updated>2024-08-02T11:29:00Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Core power distribution and charging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 80 Ah SLA. Effective 40 Ah.&lt;br /&gt;
&lt;br /&gt;
Alternator&lt;br /&gt;
&lt;br /&gt;
BV PSH 80A, Hitachi saddle mount. Sourced from Myles Balfe.  V-belt sheave.&lt;br /&gt;
[[File:Img 2122-768x1024.jpg|none|thumb|Part number is 985.001.080.200.]]&lt;br /&gt;
[[File:Alternator specifications for Blue Opal.jpg|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Bank&amp;quot;&lt;br /&gt;
subgraph &amp;quot;House Battery 1 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery (2023)&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_LOAD[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_SOURCE[S];&lt;br /&gt;
  ENG_SW_LOAD[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BB1240 (B2B 12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Solar&amp;quot;&lt;br /&gt;
  SOLAR_PANEL[&amp;quot;200 Wp Renogy&amp;quot;]&lt;br /&gt;
  subgraph &amp;quot;Votronic 250&amp;quot;&lt;br /&gt;
    SOLAR_IN_POS[S]&lt;br /&gt;
    SOLAR_IN_NEG[S]&lt;br /&gt;
    SOLAR_OUT_POS[L]&lt;br /&gt;
    SOLAR_OUT_NEG[L]&lt;br /&gt;
  end&lt;br /&gt;
  SOLAR_PANEL --- SOLAR_IN_POS;&lt;br /&gt;
  SOLAR_PANEL --- SOLAR_IN_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Charge Fuse&amp;quot;&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE[S]&lt;br /&gt;
  STARTER_CHARGE_FUSE(70A)&lt;br /&gt;
  STARTER_CHARGE_FUSE_LOAD[L]&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE --- STARTER_CHARGE_FUSE --- STARTER_CHARGE_FUSE_LOAD;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
WINDLASS_NEG[Windlass];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT2_POS === HOUSE_BAT1_POS;&lt;br /&gt;
HOUSE_BAT2_NEG === HOUSE_BAT1_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE_LOAD --- STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --- HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS == 25mm ==&amp;gt; ENG_SW_SOURCE;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_LOAD --- IGNITION;&lt;br /&gt;
ENG_SW_LOAD --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE_SOURCE == 10mm === BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_LOAD === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_LOAD === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --- STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
SOLAR_OUT_POS --- STARTER_BAT_POS;&lt;br /&gt;
SOLAR_OUT_NEG --- STARTER_BAT_NEG;&lt;br /&gt;
WINDLASS_NEG --- STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,WLS_SW_POS,ENG_SW_SOURCE,ENG_SW_LOAD,HOUSE_SW_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_SOURCE,SOLAR_IN_POS,SOLAR_OUT_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class HOUSE_SW_LOAD pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_LOAD pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}To-do: Replace direct-to-terminal with distribution bus bars. Starter negative terminal has more than 4 cables attached.&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=96</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=96"/>
		<updated>2024-07-28T16:44:11Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 80 Ah SLA. Effective 40 Ah.&lt;br /&gt;
&lt;br /&gt;
Alternator&lt;br /&gt;
&lt;br /&gt;
BV PSH 80A, Hitachi saddle mount. Sourced from Myles Balfe.  V-belt sheave.&lt;br /&gt;
[[File:Img 2122-768x1024.jpg|none|thumb|Part number is 985.001.080.200.]]&lt;br /&gt;
[[File:Alternator specifications for Blue Opal.jpg|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Bank&amp;quot;&lt;br /&gt;
subgraph &amp;quot;House Battery 1 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery (2023)&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_SOURCE[S];&lt;br /&gt;
  ENG_SW_LOAD[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BB1240 (B2B 12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --&amp;gt; HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Solar&amp;quot;&lt;br /&gt;
  SOLAR_PANEL[&amp;quot;200 Wp Renogy&amp;quot;]&lt;br /&gt;
  subgraph &amp;quot;Votronic 250&amp;quot;&lt;br /&gt;
    SOLAR_IN_POS[S]&lt;br /&gt;
    SOLAR_IN_NEG[S]&lt;br /&gt;
    SOLAR_OUT_POS[L]&lt;br /&gt;
    SOLAR_OUT_NEG[L]&lt;br /&gt;
  end&lt;br /&gt;
  SOLAR_PANEL --&amp;gt; SOLAR_IN_POS;&lt;br /&gt;
  SOLAR_PANEL --&amp;gt; SOLAR_IN_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Charge Fuse&amp;quot;&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE[S]&lt;br /&gt;
  STARTER_CHARGE_FUSE(70A)&lt;br /&gt;
  STARTER_CHARGE_FUSE_LOAD[L]&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE --- STARTER_CHARGE_FUSE --- STARTER_CHARGE_FUSE_LOAD;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
WINDLASS_NEG[Windlass];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT2_POS === HOUSE_BAT1_POS;&lt;br /&gt;
HOUSE_BAT2_NEG === HOUSE_BAT1_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE_LOAD --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --&amp;gt; HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS == 25mm ==&amp;gt; ENG_SW_SOURCE;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_LOAD --- IGNITION;&lt;br /&gt;
ENG_SW_LOAD --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE_SOURCE == 10mm === BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_NEG === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_NEG === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
SOLAR_OUT_POS --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
SOLAR_OUT_NEG --&amp;gt; STARTER_BAT_NEG;&lt;br /&gt;
WINDLASS_NEG --&amp;gt; STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,WLS_SW_POS,ENG_SW_SOURCE,ENG_SW_LOAD,HOUSE_SW_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_SOURCE,SOLAR_IN_POS,SOLAR_OUT_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_LOAD pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}To-do: Replace direct-to-terminal with distribution bus bars. Starter negative terminal has more than 4 cables attached.&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=95</id>
		<title>Blue Opal/Electrics/Manuals</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=95"/>
		<updated>2024-07-28T16:40:38Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Manuals for Blue Opals electrical gubbins&lt;br /&gt;
&lt;br /&gt;
* [[:File:Sterling Power BB1240.pdf|Sterling Power BB1240 Battery to Battery charger]]&lt;br /&gt;
* [[:File:Sterling Power BC1240 compressed.pdf|Sterling Power BC1240 Mains to Battery charger]]&lt;br /&gt;
* [[:File:Votronic_MPPT_250_Duo_manual.pdf|Votronic Solar Charger 250]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=94</id>
		<title>Blue Opal/Electrics/Manuals</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=94"/>
		<updated>2024-07-28T16:40:21Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Manuals for Blue Opals electrical gubbins&lt;br /&gt;
&lt;br /&gt;
* [[:File:Sterling Power BB1240.pdf|BB1240 Battery to Battery charger]]&lt;br /&gt;
* [[:File:Sterling Power BC1240 compressed.pdf|BC1240 Mains to Battery charger]]&lt;br /&gt;
* [[:File:Votronic_MPPT_250_Duo_manual.pdf|Votronic Solar Charger 250]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=File:Votronic_MPPT_250_Duo_manual.pdf&amp;diff=93</id>
		<title>File:Votronic MPPT 250 Duo manual.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=File:Votronic_MPPT_250_Duo_manual.pdf&amp;diff=93"/>
		<updated>2024-07-28T16:39:43Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=92</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=92"/>
		<updated>2024-07-28T16:32:02Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Core power distribution and charging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 110 Ah SLA. Effective 50 Ah.&lt;br /&gt;
&lt;br /&gt;
Alternator&lt;br /&gt;
&lt;br /&gt;
BV PSH 80A, Hitachi saddle mount. Sourced from Myles Balfe.  V-belt sheave.&lt;br /&gt;
[[File:Img 2122-768x1024.jpg|none|thumb|Part number is 985.001.080.200.]]&lt;br /&gt;
[[File:Alternator specifications for Blue Opal.jpg|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Bank&amp;quot;&lt;br /&gt;
subgraph &amp;quot;House Battery 1 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery (2023)&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_SOURCE[S];&lt;br /&gt;
  ENG_SW_LOAD[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BB1240 (B2B 12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --&amp;gt; HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Solar&amp;quot;&lt;br /&gt;
  SOLAR_PANEL[&amp;quot;200 Wp Renogy&amp;quot;]&lt;br /&gt;
  subgraph &amp;quot;Votronic 250&amp;quot;&lt;br /&gt;
    SOLAR_IN_POS[S]&lt;br /&gt;
    SOLAR_IN_NEG[S]&lt;br /&gt;
    SOLAR_OUT_POS[L]&lt;br /&gt;
    SOLAR_OUT_NEG[L]&lt;br /&gt;
  end&lt;br /&gt;
  SOLAR_PANEL --&amp;gt; SOLAR_IN_POS;&lt;br /&gt;
  SOLAR_PANEL --&amp;gt; SOLAR_IN_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Charge Fuse&amp;quot;&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE[S]&lt;br /&gt;
  STARTER_CHARGE_FUSE(70A)&lt;br /&gt;
  STARTER_CHARGE_FUSE_LOAD[L]&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE --- STARTER_CHARGE_FUSE --- STARTER_CHARGE_FUSE_LOAD;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
WINDLASS_NEG[Windlass];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT2_POS === HOUSE_BAT1_POS;&lt;br /&gt;
HOUSE_BAT2_NEG === HOUSE_BAT1_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE_LOAD --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --&amp;gt; HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS == 25mm ==&amp;gt; ENG_SW_SOURCE;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_LOAD --- IGNITION;&lt;br /&gt;
ENG_SW_LOAD --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE_SOURCE == 10mm === BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_NEG === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_NEG === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
SOLAR_OUT_POS --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
SOLAR_OUT_NEG --&amp;gt; STARTER_BAT_NEG;&lt;br /&gt;
WINDLASS_NEG --&amp;gt; STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,WLS_SW_POS,ENG_SW_SOURCE,ENG_SW_LOAD,HOUSE_SW_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_SOURCE,SOLAR_IN_POS,SOLAR_OUT_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_LOAD pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}To-do: Replace direct-to-terminal with distribution bus bars. Starter negative terminal has more than 4 cables attached.&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=91</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=91"/>
		<updated>2024-07-28T16:30:04Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Core power distribution and charging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 110 Ah SLA. Effective 50 Ah.&lt;br /&gt;
&lt;br /&gt;
Alternator&lt;br /&gt;
&lt;br /&gt;
BV PSH 80A, Hitachi saddle mount. Sourced from Myles Balfe.  V-belt sheave.&lt;br /&gt;
[[File:Img 2122-768x1024.jpg|none|thumb|Part number is 985.001.080.200.]]&lt;br /&gt;
[[File:Alternator specifications for Blue Opal.jpg|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Bank&amp;quot;&lt;br /&gt;
subgraph &amp;quot;House Battery 1 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2 (2019)&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery (2023)&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_SOURCE[S];&lt;br /&gt;
  ENG_SW_LOAD[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BB1240 (B2B 12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --&amp;gt; HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Solar&amp;quot;&lt;br /&gt;
  SOLAR_PANEL[&amp;quot;200 Wp Renogy&amp;quot;]&lt;br /&gt;
  subgraph &amp;quot;Votronic 250&amp;quot;&lt;br /&gt;
    SOLAR_IN_POS[S]&lt;br /&gt;
    SOLAR_IN_NEG[S]&lt;br /&gt;
    SOLAR_OUT_POS[L]&lt;br /&gt;
    SOLAR_OUT_NEG[L]&lt;br /&gt;
  end&lt;br /&gt;
  SOLAR_PANEL --&amp;gt; SOLAR_IN_POS;&lt;br /&gt;
  SOLAR_PANEL --&amp;gt; SOLAR_IN_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Charge Fuse&amp;quot;&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE[S]&lt;br /&gt;
  STARTER_CHARGE_FUSE(70A)&lt;br /&gt;
  STARTER_CHARGE_FUSE_LOAD[L]&lt;br /&gt;
  STARTER_CHARGE_FUSE_SOURCE --- STARTER_CHARGE_FUSE --- STARTER_CHARGE_FUSE_LOAD;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
WINDLASS_NEG[Windlass];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT2_POS === HOUSE_BAT1_POS;&lt;br /&gt;
HOUSE_BAT2_NEG === HOUSE_BAT1_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE_LOAD --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --&amp;gt; HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS == 25mm ==&amp;gt; ENG_SW_SOURCE;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_LOAD --- IGNITION;&lt;br /&gt;
ENG_SW_LOAD --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE_SOURCE == 10mm === BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_NEG === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_NEG === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --&amp;gt; STARTER_CHARGE_FUSE_SOURCE;&lt;br /&gt;
SOLAR_OUT_POS --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
SOLAR_OUT_NEG --&amp;gt; STARTER_BAT_NEG;&lt;br /&gt;
WINDLASS_NEG --&amp;gt; STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,WLS_SW_POS,ENG_SW_SOURCE,ENG_SW_LOAD,HOUSE_SW_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_SOURCE,SOLAR_IN_POS,SOLAR_OUT_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class STARTER_CHARGE_FUSE_LOAD pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=90</id>
		<title>Blue Opal/Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=90"/>
		<updated>2024-04-29T19:49:57Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the engine, a Yanmar 3GM30F.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
|-&lt;br /&gt;
|Engine&lt;br /&gt;
|Alternator&lt;br /&gt;
|Top bolt&lt;br /&gt;
|14mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Swing nut&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Water Pump&lt;br /&gt;
|Top bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Starter Solenoid ==&lt;br /&gt;
&lt;br /&gt;
To solve a starting issue, an automotive relay was installed. The correct relay will have four terminals numbered 85, 86, 30 and 87.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Make up a length of cable from the large screw on the solenoid (battery cable terminal) and connect this to #30. Remove white cable from small solenoid terminal and connect to #85.&lt;br /&gt;
&lt;br /&gt;
Make up cable from #86 connect to engine block. Connect #87 to small terminal on the solenoid.&lt;br /&gt;
&lt;br /&gt;
Terminals #85 &amp;amp; #86 actuate the relay and #30 &amp;amp; #87 power the solenoid.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
-- https://www.cricalix.net/2023/05/13/relaying-a-solenoid/&lt;br /&gt;
&lt;br /&gt;
== Parts Cross-reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Item&lt;br /&gt;
!Page&lt;br /&gt;
!Original&lt;br /&gt;
!Alternative 1&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|&lt;br /&gt;
|Racor R12P&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|Blue Opal&#039;s original filter housing was replaced with a Racor&lt;br /&gt;
|-&lt;br /&gt;
|Secondary fuel filter / fuel strainer&lt;br /&gt;
|55&lt;br /&gt;
|Yanmar 104500-55710&lt;br /&gt;
|Orbitrade 8-55710&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|38&lt;br /&gt;
|Yanmar 124450-35100&lt;br /&gt;
Yanmar 119660-35150&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35170&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35151&lt;br /&gt;
|Blue Print ADS72101&lt;br /&gt;
|The ADS72101 has a larger outer diameter, but fits. Filter is shared across 1/2/3GMs.&lt;br /&gt;
35100 appears to be unavailable.&lt;br /&gt;
35151 supersedes 35150, slightly smaller.&lt;br /&gt;
35170 found in spares on board.&lt;br /&gt;
https://marineparts.ie/filter-assy-lub-oil/ (35170)&lt;br /&gt;
https://marineparts.ie/oil-filter-rec119305-35151-yanmar/ (35151)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Page numbers reference the [[:File:Yanmar-3GM30-parts-catalog.pdf|Yanmar Parts Catalog]].&lt;br /&gt;
&lt;br /&gt;
For fuel filters, https://www.fuelfilter-crossreference.com/convert/FLEETGUARD/FS19627 is a decent reference.&lt;br /&gt;
&lt;br /&gt;
For oil filters, https://www.oilfilter-crossreference.com/convert/YANMAR/124450-35100 is a decent reference.&lt;br /&gt;
 Filter type: Full-Flow Lube Spin-on&lt;br /&gt;
 Thread measurement: 20x1.5mm&lt;br /&gt;
 Outer diameter: 77 mm (Approx. 3.03&amp;quot;)&lt;br /&gt;
 Height: 86 mm (Approx. 3.39&amp;quot;)&lt;br /&gt;
Mounts - https://www.parts4engines.com/yanmar-3gm30-and-3gm30f-engine-mount/ - claim to be better than original ones.&lt;br /&gt;
&lt;br /&gt;
== Inventory ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Purpose&lt;br /&gt;
!Part number&lt;br /&gt;
!Count&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Impeller kit&lt;br /&gt;
|Johnson 09-810B / JIKJMP005&lt;br /&gt;
|3&lt;br /&gt;
|Yanmar water pump is a rebadge&lt;br /&gt;
|-&lt;br /&gt;
|Impeller&lt;br /&gt;
|Yanmar 128296-42070&lt;br /&gt;
|1&lt;br /&gt;
|Not a full kit&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|Yanmar 119305-35170&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|BluePrint ADS72101&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Thermostat gasket&lt;br /&gt;
|Yanmar 129350-49451&lt;br /&gt;
|1&lt;br /&gt;
|https://marineparts.ie/rec129350-49541/&lt;br /&gt;
|-&lt;br /&gt;
|Fresh water thermostat&lt;br /&gt;
|Yanmar 121750-49800&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Fuel filter&lt;br /&gt;
|Orbitrade 8-55710 / 10450055710&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Alternator belt&lt;br /&gt;
|Yanmar 25132-003700&lt;br /&gt;
|1&lt;br /&gt;
|https://www.svb24.com/en/v-belt-for-yanmar-2gm20f-3gm30f.html&lt;br /&gt;
|-&lt;br /&gt;
|Raw water belt&lt;br /&gt;
|Yanmar 104511-78780&lt;br /&gt;
|0&lt;br /&gt;
|https://www.svb24.com/en/yanmar-v-belt-for-seawater-pump-2-3-gm.html&lt;br /&gt;
|-&lt;br /&gt;
|Collar anode&lt;br /&gt;
|AV004 / 957000001805&lt;br /&gt;
|5&lt;br /&gt;
|25mm shaft,https://miscosrl.com/en/prodotto/anodo-a-collare-av004-asse-o-25mm/&lt;br /&gt;
|-&lt;br /&gt;
|Heads smell filter&lt;br /&gt;
|Vetus NSF16FES&lt;br /&gt;
|1&lt;br /&gt;
|4 in pack, https://webshop.vetus.com/en/product/nsf16fes-filter-element-for&lt;br /&gt;
|-&lt;br /&gt;
|Manual bilge kit&lt;br /&gt;
|Gusher Titan AK4400&lt;br /&gt;
|1&lt;br /&gt;
|Service kit, https://www.chmarine.com/whale-gusher-titan-service-kit/&lt;br /&gt;
|-&lt;br /&gt;
|Boiler anode&lt;br /&gt;
|FVSLANMG 1820A00&lt;br /&gt;
|2&lt;br /&gt;
|200mm boiler anode, https://www.svb24.com/en/quick-magnesium-anode-for-b3-bx-and-bxs-series-boilers.html&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=89</id>
		<title>Blue Opal/Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=89"/>
		<updated>2024-04-29T19:35:23Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the engine, a Yanmar 3GM30F.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
|-&lt;br /&gt;
|Engine&lt;br /&gt;
|Alternator&lt;br /&gt;
|Top bolt&lt;br /&gt;
|14mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Swing nut&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Water Pump&lt;br /&gt;
|Top bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Starter Solenoid ==&lt;br /&gt;
&lt;br /&gt;
To solve a starting issue, an automotive relay was installed. The correct relay will have four terminals numbered 85, 86, 30 and 87.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Make up a length of cable from the large screw on the solenoid (battery cable terminal) and connect this to #30. Remove white cable from small solenoid terminal and connect to #85.&lt;br /&gt;
&lt;br /&gt;
Make up cable from #86 connect to engine block. Connect #87 to small terminal on the solenoid.&lt;br /&gt;
&lt;br /&gt;
Terminals #85 &amp;amp; #86 actuate the relay and #30 &amp;amp; #87 power the solenoid.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
-- https://www.cricalix.net/2023/05/13/relaying-a-solenoid/&lt;br /&gt;
&lt;br /&gt;
== Parts Cross-reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Item&lt;br /&gt;
!Page&lt;br /&gt;
!Original&lt;br /&gt;
!Alternative 1&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|&lt;br /&gt;
|Racor R12P&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|Blue Opal&#039;s original filter housing was replaced with a Racor&lt;br /&gt;
|-&lt;br /&gt;
|Secondary fuel filter / fuel strainer&lt;br /&gt;
|55&lt;br /&gt;
|Yanmar 104500-55710&lt;br /&gt;
|Orbitrade 8-55710&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|38&lt;br /&gt;
|Yanmar 124450-35100&lt;br /&gt;
Yanmar 119660-35150&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35170&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35151&lt;br /&gt;
|Blue Print ADS72101&lt;br /&gt;
|The ADS72101 has a larger outer diameter, but fits. Filter is shared across 1/2/3GMs.&lt;br /&gt;
35100 appears to be unavailable.&lt;br /&gt;
35151 supersedes 35150, slightly smaller.&lt;br /&gt;
35170 found in spares on board.&lt;br /&gt;
https://marineparts.ie/filter-assy-lub-oil/ (35170)&lt;br /&gt;
https://marineparts.ie/oil-filter-rec119305-35151-yanmar/ (35151)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Page numbers reference the [[:File:Yanmar-3GM30-parts-catalog.pdf|Yanmar Parts Catalog]].&lt;br /&gt;
&lt;br /&gt;
For fuel filters, https://www.fuelfilter-crossreference.com/convert/FLEETGUARD/FS19627 is a decent reference.&lt;br /&gt;
&lt;br /&gt;
For oil filters, https://www.oilfilter-crossreference.com/convert/YANMAR/124450-35100 is a decent reference.&lt;br /&gt;
 Filter type: Full-Flow Lube Spin-on&lt;br /&gt;
 Thread measurement: 20x1.5mm&lt;br /&gt;
 Outer diameter: 77 mm (Approx. 3.03&amp;quot;)&lt;br /&gt;
 Height: 86 mm (Approx. 3.39&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== Inventory ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Purpose&lt;br /&gt;
!Part number&lt;br /&gt;
!Count&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Impeller kit&lt;br /&gt;
|Johnson 09-810B / JIKJMP005&lt;br /&gt;
|3&lt;br /&gt;
|Yanmar water pump is a rebadge&lt;br /&gt;
|-&lt;br /&gt;
|Impeller&lt;br /&gt;
|Yanmar 128296-42070&lt;br /&gt;
|1&lt;br /&gt;
|Not a full kit&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|Yanmar 119305-35170&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|BluePrint ADS72101&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Thermostat gasket&lt;br /&gt;
|Yanmar 129350-49451&lt;br /&gt;
|1&lt;br /&gt;
|https://marineparts.ie/rec129350-49541/&lt;br /&gt;
|-&lt;br /&gt;
|Fresh water thermostat&lt;br /&gt;
|Yanmar 121750-49800&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Fuel filter&lt;br /&gt;
|Orbitrade 8-55710 / 10450055710&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Alternator belt&lt;br /&gt;
|Yanmar 25132-003700&lt;br /&gt;
|1&lt;br /&gt;
|https://www.svb24.com/en/v-belt-for-yanmar-2gm20f-3gm30f.html&lt;br /&gt;
|-&lt;br /&gt;
|Raw water belt&lt;br /&gt;
|Yanmar 104511-78780&lt;br /&gt;
|0&lt;br /&gt;
|https://www.svb24.com/en/yanmar-v-belt-for-seawater-pump-2-3-gm.html&lt;br /&gt;
|-&lt;br /&gt;
|Collar anode&lt;br /&gt;
|AV004 / 957000001805&lt;br /&gt;
|5&lt;br /&gt;
|25mm shaft,https://miscosrl.com/en/prodotto/anodo-a-collare-av004-asse-o-25mm/&lt;br /&gt;
|-&lt;br /&gt;
|Heads smell filter&lt;br /&gt;
|Vetus NSF16FES&lt;br /&gt;
|1&lt;br /&gt;
|4 in pack, https://webshop.vetus.com/en/product/nsf16fes-filter-element-for&lt;br /&gt;
|-&lt;br /&gt;
|Manual bilge kit&lt;br /&gt;
|Gusher Titan AK4400&lt;br /&gt;
|1&lt;br /&gt;
|Service kit, https://www.chmarine.com/whale-gusher-titan-service-kit/&lt;br /&gt;
|-&lt;br /&gt;
|Boiler anode&lt;br /&gt;
|FVSLANMG 1820A00&lt;br /&gt;
|2&lt;br /&gt;
|200mm boiler anode, https://www.svb24.com/en/quick-magnesium-anode-for-b3-bx-and-bxs-series-boilers.html&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=88</id>
		<title>Blue Opal/Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=88"/>
		<updated>2024-04-29T19:31:09Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the engine, a Yanmar 3GM30F.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
|-&lt;br /&gt;
|Engine&lt;br /&gt;
|Alternator&lt;br /&gt;
|Top bolt&lt;br /&gt;
|14mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Swing nut&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Water Pump&lt;br /&gt;
|Top bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Starter Solenoid ==&lt;br /&gt;
&lt;br /&gt;
To solve a starting issue, an automotive relay was installed. The correct relay will have four terminals numbered 85, 86, 30 and 87.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Make up a length of cable from the large screw on the solenoid (battery cable terminal) and connect this to #30. Remove white cable from small solenoid terminal and connect to #85.&lt;br /&gt;
&lt;br /&gt;
Make up cable from #86 connect to engine block. Connect #87 to small terminal on the solenoid.&lt;br /&gt;
&lt;br /&gt;
Terminals #85 &amp;amp; #86 actuate the relay and #30 &amp;amp; #87 power the solenoid.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
-- https://www.cricalix.net/2023/05/13/relaying-a-solenoid/&lt;br /&gt;
&lt;br /&gt;
== Parts Cross-reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Item&lt;br /&gt;
!Page&lt;br /&gt;
!Original&lt;br /&gt;
!Alternative 1&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|&lt;br /&gt;
|Racor R12P&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|Blue Opal&#039;s original filter housing was replaced with a Racor&lt;br /&gt;
|-&lt;br /&gt;
|Secondary fuel filter / fuel strainer&lt;br /&gt;
|55&lt;br /&gt;
|Yanmar 104500-55710&lt;br /&gt;
|Orbitrade 8-55710&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|38&lt;br /&gt;
|Yanmar 124450-35100&lt;br /&gt;
Yanmar 119660-35150&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35170&lt;br /&gt;
&lt;br /&gt;
Yanmar 119305-35151&lt;br /&gt;
|Blue Print ADS72101&lt;br /&gt;
|The ADS72101 has a larger outer diameter, but fits. Filter is shared across 1/2/3GMs.&lt;br /&gt;
35100 appears to be unavailable.&lt;br /&gt;
35151 supersedes 35150, slightly smaller.&lt;br /&gt;
35170 found in spares on board.&lt;br /&gt;
https://marineparts.ie/filter-assy-lub-oil/ (35170)&lt;br /&gt;
https://marineparts.ie/oil-filter-rec119305-35151-yanmar/ (35151)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Page numbers reference the [[:File:Yanmar-3GM30-parts-catalog.pdf|Yanmar Parts Catalog]].&lt;br /&gt;
&lt;br /&gt;
For fuel filters, https://www.fuelfilter-crossreference.com/convert/FLEETGUARD/FS19627 is a decent reference.&lt;br /&gt;
&lt;br /&gt;
For oil filters, https://www.oilfilter-crossreference.com/convert/YANMAR/124450-35100 is a decent reference.&lt;br /&gt;
 Filter type: Full-Flow Lube Spin-on&lt;br /&gt;
 Thread measurement: 20x1.5mm&lt;br /&gt;
 Outer diameter: 77 mm (Approx. 3.03&amp;quot;)&lt;br /&gt;
 Height: 86 mm (Approx. 3.39&amp;quot;)&lt;br /&gt;
Inventory&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Purpose&lt;br /&gt;
!Part number&lt;br /&gt;
!Count&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Impeller kit&lt;br /&gt;
|Johnson 09-810B / JIKJMP005&lt;br /&gt;
|3&lt;br /&gt;
|Yanmar water pump is a rebadge&lt;br /&gt;
|-&lt;br /&gt;
|Impeller&lt;br /&gt;
|Yanmar 128296-42070&lt;br /&gt;
|1&lt;br /&gt;
|Not a full kit&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|Yanmar 119305-35170&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|BluePrint ADS72101&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Thermostat gasket&lt;br /&gt;
|Yanmar 129350-49451&lt;br /&gt;
|1&lt;br /&gt;
|https://marineparts.ie/rec129350-49541/&lt;br /&gt;
|-&lt;br /&gt;
|Fresh water thermostat&lt;br /&gt;
|Yanmar 121750-49800&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Fuel filter&lt;br /&gt;
|Orbitrade 8-55710 / 10450055710&lt;br /&gt;
|3&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Alternator belt&lt;br /&gt;
|Yanmar 25132-003700&lt;br /&gt;
|1&lt;br /&gt;
|https://www.svb24.com/en/v-belt-for-yanmar-2gm20f-3gm30f.html&lt;br /&gt;
|-&lt;br /&gt;
|Raw water belt&lt;br /&gt;
|Yanmar 104511-78780&lt;br /&gt;
|0&lt;br /&gt;
|https://www.svb24.com/en/yanmar-v-belt-for-seawater-pump-2-3-gm.html&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=87</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=87"/>
		<updated>2024-04-03T11:19:44Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 110 Ah SLA. Effective 50 Ah.&lt;br /&gt;
&lt;br /&gt;
Alternator&lt;br /&gt;
&lt;br /&gt;
BV PSH 80A, Hitachi saddle mount. Sourced from Myles Balfe.  V-belt sheave.&lt;br /&gt;
[[File:Img 2122-768x1024.jpg|none|thumb|Part number is 985.001.080.200.]]&lt;br /&gt;
[[File:Alternator specifications for Blue Opal.jpg|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery 1&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_POS[S];&lt;br /&gt;
  ENG_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BB1240 (12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --&amp;gt; HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
STARTER_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT1_POS === HOUSE_BAT2_POS;&lt;br /&gt;
HOUSE_BAT1_NEG === HOUSE_BAT2_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --&amp;gt; HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS --- ENG_SW_POS;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_NEG --- IGNITION;&lt;br /&gt;
ENG_SW_NEG --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE == 10mm ==&amp;gt; BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_NEG === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_NEG === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,HOUSE_SHUNT_POS,WLS_SW_POS,ENG_SW_POS,HOUSE_SW_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=File:Alternator_specifications_for_Blue_Opal.jpg&amp;diff=86</id>
		<title>File:Alternator specifications for Blue Opal.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=File:Alternator_specifications_for_Blue_Opal.jpg&amp;diff=86"/>
		<updated>2024-04-03T11:19:20Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alt&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=85</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=85"/>
		<updated>2024-04-03T11:17:56Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 110 Ah SLA. Effective 50 Ah.&lt;br /&gt;
&lt;br /&gt;
Alternator&lt;br /&gt;
&lt;br /&gt;
BV PSH 80A, Hitachi saddle mount. Sourced from Myles Balfe.  V-belt sheave.&lt;br /&gt;
[[File:Img 2122-768x1024.jpg|none|thumb|Part number is 985.001.080.200.]]&lt;br /&gt;
[[File:Alternator specifications.webp|none|thumb]]&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery 1&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_POS[S];&lt;br /&gt;
  ENG_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BB1240 (12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --&amp;gt; HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
STARTER_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT1_POS === HOUSE_BAT2_POS;&lt;br /&gt;
HOUSE_BAT1_NEG === HOUSE_BAT2_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --&amp;gt; HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS --- ENG_SW_POS;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_NEG --- IGNITION;&lt;br /&gt;
ENG_SW_NEG --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE == 10mm ==&amp;gt; BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_NEG === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_NEG === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,HOUSE_SHUNT_POS,WLS_SW_POS,ENG_SW_POS,HOUSE_SW_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=File:Alternator_specifications.webp&amp;diff=84</id>
		<title>File:Alternator specifications.webp</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=File:Alternator_specifications.webp&amp;diff=84"/>
		<updated>2024-04-03T11:17:46Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Alternator specs&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=File:Img_2122-768x1024.jpg&amp;diff=83</id>
		<title>File:Img 2122-768x1024.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=File:Img_2122-768x1024.jpg&amp;diff=83"/>
		<updated>2024-04-03T11:15:12Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: BV PSH Alternator, 80A&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
BV PSH Alternator, 80A&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=82</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=82"/>
		<updated>2024-03-24T11:09:39Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 110 Ah SLA. Effective 50 Ah.&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:config.theme = neutral | graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery 1&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_POS[S];&lt;br /&gt;
  ENG_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BB1240 (12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --&amp;gt; HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
STARTER_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT1_POS === HOUSE_BAT2_POS;&lt;br /&gt;
HOUSE_BAT1_NEG === HOUSE_BAT2_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --&amp;gt; HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS --- ENG_SW_POS;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_NEG --- IGNITION;&lt;br /&gt;
ENG_SW_NEG --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE == 10mm ==&amp;gt; BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_NEG === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_NEG === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,HOUSE_SHUNT_POS,WLS_SW_POS,ENG_SW_POS,HOUSE_SW_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=81</id>
		<title>Blue Opal/Electrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics&amp;diff=81"/>
		<updated>2024-03-24T11:03:58Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Battery banks ===&lt;br /&gt;
House bank - 2x 105 Ah SLA. Effective 100 Ah.&lt;br /&gt;
Starter - 1x 110 Ah SLA. Effective 50 Ah.&lt;br /&gt;
&lt;br /&gt;
=== Terminal and driver sizes ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
!Stud&lt;br /&gt;
|-&lt;br /&gt;
|Battery&lt;br /&gt;
|Shunt&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|House&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Starter&lt;br /&gt;
|Terminal&lt;br /&gt;
|13/14mm&lt;br /&gt;
|10mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Blue Sea Fused Bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|5mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|MIDI fuses&lt;br /&gt;
|Terminal&lt;br /&gt;
|10mm&lt;br /&gt;
|8mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Negative bus&lt;br /&gt;
|Terminal&lt;br /&gt;
|14mm&lt;br /&gt;
|8mm&lt;br /&gt;
|}&lt;br /&gt;
=== Core power distribution and charging===&lt;br /&gt;
This diagram is for the wiring in the starter and house battery bank compartments.&lt;br /&gt;
&lt;br /&gt;
Charge and Distribution fuses are MIDI style with spare, Blue Sea 7720.&lt;br /&gt;
&lt;br /&gt;
Solar charger fuse is inline automotive.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph TD;&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery 1&amp;quot;&lt;br /&gt;
  HOUSE_BAT1_POS[+];&lt;br /&gt;
  HOUSE_BAT1_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;House Battery 2&amp;quot;&lt;br /&gt;
  HOUSE_BAT2_POS[+];&lt;br /&gt;
  HOUSE_BAT2_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Starter Battery&amp;quot;&lt;br /&gt;
  STARTER_BAT_POS[+];&lt;br /&gt;
  STARTER_BAT_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Battery Switch&amp;quot;&lt;br /&gt;
  HOUSE_SW_POS[S];&lt;br /&gt;
  HOUSE_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Engine Battery Switch&amp;quot;&lt;br /&gt;
  ENG_SW_POS[S];&lt;br /&gt;
  ENG_SW_NEG[L];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Alternator&amp;quot;&lt;br /&gt;
  ALT_GEN_POS[+];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BC1240 (Mains)&amp;quot;&lt;br /&gt;
  MAINS_CHG_NEG[-];&lt;br /&gt;
  MAINS_CHG_HOU[&amp;quot;Unused(House)&amp;quot;];&lt;br /&gt;
  MAINS_CHG_ENG[Starter];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;BB1240 (12V)&amp;quot;&lt;br /&gt;
  BB1240_STARTER[Source];&lt;br /&gt;
  BB1240_NEG[Neg];&lt;br /&gt;
  BB1240_HOU[Target];&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;Engine Panel&amp;quot;&lt;br /&gt;
  IGNITION([Ignition Switch]);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;House Shunt&amp;quot;&lt;br /&gt;
  HOUSE_SHUNT_POS[S]&lt;br /&gt;
  HOUSE_SHUNT_NEG[L]&lt;br /&gt;
  HOUSE_SHUNT_MON[Tap]&lt;br /&gt;
  HOUSE_SHUNT_POS --&amp;gt; HOUSE_SHUNT_NEG;&lt;br /&gt;
  HOUSE_SHUNT_POS --- HOUSE_SHUNT_MON --- HOUSE_SHUNT_NEG;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
BSA_STUD[BlueSea Ancillary]&lt;br /&gt;
HOUSE_POS_BUS[House Positive Bus]&lt;br /&gt;
HOUSE_NEG_BUS[House Negative Bus];&lt;br /&gt;
HOUSE_DIST_FUSE(Distribution Fuse 150A)&lt;br /&gt;
HOUSE_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
STARTER_CHARGE_FUSE(Charge Fuse 70A)&lt;br /&gt;
GROUND[Engine Block];&lt;br /&gt;
WLS_SW_POS([Windlass Switch]);&lt;br /&gt;
ALWAYS_ON_DIST[Always On Bus];&lt;br /&gt;
&lt;br /&gt;
HOUSE_BAT1_POS === HOUSE_BAT2_POS;&lt;br /&gt;
HOUSE_BAT1_NEG === HOUSE_BAT2_NEG;&lt;br /&gt;
HOUSE_BAT1_POS ==== HOUSE_DIST_FUSE;&lt;br /&gt;
HOUSE_BAT1_NEG === STARTER_BAT_NEG;&lt;br /&gt;
&lt;br /&gt;
HOUSE_SW_POS --- ALWAYS_ON_DIST;&lt;br /&gt;
FRIDGE[Chillbox] --- BAT_NEG_BUS;&lt;br /&gt;
STARTER_CHARGE_FUSE --&amp;gt; STARTER_BAT_POS;&lt;br /&gt;
HOUSE_CHARGE_FUSE --&amp;gt; HOUSE_BAT1_POS;&lt;br /&gt;
STARTER_BAT_POS --- ENG_SW_POS;&lt;br /&gt;
STARTER_BAT_NEG === HOUSE_SHUNT_POS ;&lt;br /&gt;
ENG_SW_NEG --- IGNITION;&lt;br /&gt;
ENG_SW_NEG --- WLS_SW_POS;&lt;br /&gt;
ALT_GEN_POS == 16mm ==&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
BB1240_NEG === STARTER_BAT_NEG;&lt;br /&gt;
STARTER_CHARGE_FUSE == 10mm ==&amp;gt; BB1240_STARTER;&lt;br /&gt;
BB1240_HOU == 10mm ==&amp;gt; HOUSE_CHARGE_FUSE;&lt;br /&gt;
BAT_NEG_BUS === HOUSE_NEG_BUS;&lt;br /&gt;
MAINS_CHG_NEG === BAT_NEG_BUS;&lt;br /&gt;
HOUSE_SW_NEG === HOUSE_POS_BUS;&lt;br /&gt;
HOUSE_DIST_FUSE --- HOUSE_SW_POS;&lt;br /&gt;
HOUSE_SW_NEG === BSA_STUD;&lt;br /&gt;
HOUSE_SHUNT_NEG === BAT_NEG_BUS;&lt;br /&gt;
STARTER_BAT_NEG ==== GROUND;&lt;br /&gt;
MAINS_CHG_ENG --&amp;gt; STARTER_CHARGE_FUSE;&lt;br /&gt;
&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOUSE_BAT1_POS,HOUSE_BAT2_POS,HOUSE_DIST_FUSE_POS,HOUSE_SHUNT_POS,WLS_SW_POS,ENG_SW_POS,HOUSE_SW_POS pos;&lt;br /&gt;
class ENG_CHG_FUSE_POS,STERLING_STARTER,STERLING_HOUSE,IGNITION pos;&lt;br /&gt;
class MAINS_CHG_HOU,MAINS_CHG_ENG,STARTER_BAT_POS,ALT_GEN_POS pos;&lt;br /&gt;
class BB1240_HOU,BB1240_STARTER pos;&lt;br /&gt;
class ALWAYS_ON_DIST,BSA_STUD,HOUSE_POS_BUS pos;&lt;br /&gt;
class HOUSE_DIST_FUSE,HOUSE_CHARGE_FUSE,STARTER_CHARGE_FUSE fuse;&lt;br /&gt;
&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Blue Sea Ancillary===&lt;br /&gt;
This distribution setup is used for power distribution in the saloon; it&#039;s in the same physical area as the batteries. Distributor is a Blue Sea Systems ST compact 8-circuit (5046) with 10-32 stud, and 8-32 screw terminals.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH[&amp;quot;House Battery Switch (Load)&amp;quot;];&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea Ancillary&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_FRIDGE(Fridge 15);&lt;br /&gt;
  BSA_AMPS(Ammeter 3A);&lt;br /&gt;
  BSA_PP1(Powerpole 20A);&lt;br /&gt;
  BSA_PP2(Powerpole 20A);&lt;br /&gt;
  BSA_USB(USB 5A);&lt;br /&gt;
  BSA_BILGE(Bilge 5A);&lt;br /&gt;
  BSA_WPUMP(Water Pump 15A);&lt;br /&gt;
  BSA_STUD --- BSA_FRIDGE &amp;amp; BSA_AMPS &amp;amp; BSA_PP1 &amp;amp; BSA_PP2 &amp;amp; BSA_USB &amp;amp; BSA_BILGE &amp;amp; BSA_WPUMP;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_FRIDGE === FRIDGE[Chillbox] === BAT_NEG_BUS;&lt;br /&gt;
BSA_AMPS --- AMMETER[Ammeter] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP1 --- PP1[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_PP2 --- PP2[Powerpole] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_USB --- USB_SALOON[USB Sockets] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_BILGE --- BILGE[Bilge Pump] --- BAT_NEG_BUS;&lt;br /&gt;
BSA_WPUMP --- WATER_PUMP[Fresh Water Pump] --- BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_FRIDGE,BSA_AMPS,BSA_PP1,BSA_PP2,BSA_USB,BSA_BILGE,BSA_WPUMP fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Always on distribution ===&lt;br /&gt;
&lt;br /&gt;
This powers low draw devices that should be powered without the house switch being engaged. Basically, lights. Located in the wiring cabinet above and behind the chart table. Wired to supply side so it&#039;s always got power, bar the local fuse blowing.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
HOU_SWITCH(&amp;quot;House Battery Switch (Supply)&amp;quot;);&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
&lt;br /&gt;
subgraph &amp;quot;BlueSea 4-fuse&amp;quot;&lt;br /&gt;
  BSA_STUD(Stud);&lt;br /&gt;
  BSA_SALOON(Saloon 3A);&lt;br /&gt;
  BSA_CHART(Chart Table 3A);&lt;br /&gt;
  BSA_CABINET(Cabinet 1A);&lt;br /&gt;
  BSA_STUD --- BSA_SALOON &amp;amp; BSA_CHART &amp;amp; BSA_CABINET;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
HOU_SWITCH === BSA_STUD;&lt;br /&gt;
BSA_SALOON --- SALOON_SW(Companionway Switch) --- SALOON[Saloon Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CHART --- CHART_SW(Chart Table Switch) --- CHART_LIGHT[Chart Table Light] --- CAB_NEG_BUS;&lt;br /&gt;
BSA_CABINET --- CABINET_SW(Wiring Cabinet Switch) --- CABINET_LIGHT[Cabinet Light] --- CAB_NEG_BUS;&lt;br /&gt;
CAB_NEG_BUS === BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class HOU_SWITCH pos;&lt;br /&gt;
class BSA_SALOON,BSA_CHART,BSA_CABINET fuse;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Water pump ===&lt;br /&gt;
&lt;br /&gt;
Wired via a relay so that the switch by the chart table just activates the relay, and the pump gets power from 6mm&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; direct from the battery compartment.&lt;br /&gt;
&lt;br /&gt;
{{#mermaid:graph LR;&lt;br /&gt;
subgraph &amp;quot;Relay&amp;quot; &lt;br /&gt;
SWITCHING_TERMINAL[Switching];&lt;br /&gt;
SWITCHED_TERMINAL[Switched];&lt;br /&gt;
end&lt;br /&gt;
subgraph &amp;quot;Pump&amp;quot;&lt;br /&gt;
PUMP_POS[+];&lt;br /&gt;
PUMP_NEG[-];&lt;br /&gt;
end&lt;br /&gt;
BAT_NEG_BUS[Battery Negative Busbar];&lt;br /&gt;
CAB_NEG_BUS[Wiring Cabinet -ve Bus]&lt;br /&gt;
PUMP_PANEL_SW(Panel Switch);&lt;br /&gt;
BSA_BAT_PUMP(Blue Sea Ancillary);&lt;br /&gt;
PUMP_PANEL_SW --&amp;gt; SWITCHING_TERMINAL --&amp;gt; CAB_NEG_BUS;&lt;br /&gt;
BSA_BAT_PUMP --&amp;gt; SWITCHED_TERMINAL --&amp;gt; PUMP_POS;&lt;br /&gt;
PUMP_NEG --&amp;gt; BAT_NEG_BUS;&lt;br /&gt;
classDef pos stroke:#f00&lt;br /&gt;
classDef fuse stroke:#00f,fill:#5c5;&lt;br /&gt;
class BSA_BAT_PUMP fuse;&lt;br /&gt;
class PUMP_PANEL_SW pos;&lt;br /&gt;
|&lt;br /&gt;
config.theme = neutral&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The relay is the same as the one for the engine starter, 12V 40A SPST with 30/85/86/87 terminals, normally open.&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=80</id>
		<title>Blue Opal/Electrics/Manuals</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=80"/>
		<updated>2024-03-24T10:31:59Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Manuals for Blue Opals electrical gubbins&lt;br /&gt;
&lt;br /&gt;
* [[:File:Sterling Power BB1240.pdf|BB1240 Battery to Battery charger]]&lt;br /&gt;
* [[:File:Sterling Power BC1240 compressed.pdf|BC1240 Mains to Battery charger]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=File:Sterling_Power_BC1240_compressed.pdf&amp;diff=79</id>
		<title>File:Sterling Power BC1240 compressed.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=File:Sterling_Power_BC1240_compressed.pdf&amp;diff=79"/>
		<updated>2024-03-24T10:31:07Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Mains to battery charger&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Mains to battery charger&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=File:Sterling_Power_BB1240.pdf&amp;diff=78</id>
		<title>File:Sterling Power BB1240.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=File:Sterling_Power_BB1240.pdf&amp;diff=78"/>
		<updated>2024-03-24T10:27:40Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Battery to battery charger (start to house) with reverse capability.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Battery to battery charger (start to house) with reverse capability.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=77</id>
		<title>Blue Opal/Electrics/Manuals</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Electrics/Manuals&amp;diff=77"/>
		<updated>2024-03-24T10:27:04Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Created page with &amp;quot;Manuals for Blue Opals electrical gubbins&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Manuals for Blue Opals electrical gubbins&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=76</id>
		<title>Blue Opal/Engine</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Blue_Opal/Engine&amp;diff=76"/>
		<updated>2024-03-24T08:09:01Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notes for the engine, a Yanmar 3GM30F.&lt;br /&gt;
&lt;br /&gt;
== Tools ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Area&lt;br /&gt;
!Item&lt;br /&gt;
!Fixing&lt;br /&gt;
!Driver&lt;br /&gt;
|-&lt;br /&gt;
|Engine&lt;br /&gt;
|Alternator&lt;br /&gt;
|Top bolt&lt;br /&gt;
|14mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Swing bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Water Pump&lt;br /&gt;
|Top bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|Bottom bolt&lt;br /&gt;
|12mm&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Starter Solenoid ==&lt;br /&gt;
&lt;br /&gt;
To solve a starting issue, an automotive relay was installed. The correct relay will have four terminals numbered 85, 86, 30 and 87.&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Make up a length of cable from the large screw on the solenoid (battery cable terminal) and connect this to #30. Remove white cable from small solenoid terminal and connect to #85.&lt;br /&gt;
&lt;br /&gt;
Make up cable from #86 connect to engine block. Connect #87 to small terminal on the solenoid.&lt;br /&gt;
&lt;br /&gt;
Terminals #85 &amp;amp; #86 actuate the relay and #30 &amp;amp; #87 power the solenoid.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
-- https://www.cricalix.net/2023/05/13/relaying-a-solenoid/&lt;br /&gt;
&lt;br /&gt;
== Parts Cross-reference ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Item&lt;br /&gt;
!Page&lt;br /&gt;
!Original&lt;br /&gt;
!Alternative 1&lt;br /&gt;
!Notes&lt;br /&gt;
|-&lt;br /&gt;
|Primary fuel filter&lt;br /&gt;
|&lt;br /&gt;
|Racor R12P&lt;br /&gt;
|Fleetguard FS19627&lt;br /&gt;
|Blue Opal&#039;s original filter housing was replaced with a Racor&lt;br /&gt;
|-&lt;br /&gt;
|Secondary fuel filter / fuel strainer&lt;br /&gt;
|55&lt;br /&gt;
|Yanmar 104500-55710&lt;br /&gt;
|Orbitrade 8-55710&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Oil filter&lt;br /&gt;
|38&lt;br /&gt;
|Yanmar 124450-35100&lt;br /&gt;
Yanmar 119660-35150&lt;br /&gt;
|Blue Print ADS72101&lt;br /&gt;
|The ADS72101 has a larger outer diameter, but fits. Filter is shared across 1/2/3GMs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Page numbers reference the [[:File:Yanmar-3GM30-parts-catalog.pdf|Yanmar Parts Catalog]].&lt;br /&gt;
&lt;br /&gt;
For fuel filters, https://www.fuelfilter-crossreference.com/convert/FLEETGUARD/FS19627 is a decent reference.&lt;br /&gt;
&lt;br /&gt;
For oil filters, https://www.oilfilter-crossreference.com/convert/YANMAR/124450-35100 is a decent reference.&lt;br /&gt;
 Filter type: Full-Flow Lube Spin-on&lt;br /&gt;
 Thread measurement: 20x1.5mm&lt;br /&gt;
 Outer diameter: 77 mm (Approx. 3.03&amp;quot;)&lt;br /&gt;
 Height: 86 mm (Approx. 3.39&amp;quot;)&lt;br /&gt;
[[Category:Blue Opal]]&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=File:Yanmar-3GM30-parts-catalog.pdf&amp;diff=75</id>
		<title>File:Yanmar-3GM30-parts-catalog.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=File:Yanmar-3GM30-parts-catalog.pdf&amp;diff=75"/>
		<updated>2024-03-24T08:02:21Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Yanmar 3GM30 Parts Catalog&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Yanmar 3GM30 Parts Catalog&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/NUT&amp;diff=74</id>
		<title>Computing/NUT</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/NUT&amp;diff=74"/>
		<updated>2024-03-17T12:10:05Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Network UPS ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install nut nut-monitor&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
For the Eaton Pro UPS, &#039;&#039;&#039;/etc/nut/ups.conf&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[eaton650]&lt;br /&gt;
        driver = &amp;quot;usbhid-ups&amp;quot;&lt;br /&gt;
        port = &amp;quot;auto&amp;quot;&lt;br /&gt;
        vendorid = &amp;quot;0463&amp;quot;&lt;br /&gt;
        productid = &amp;quot;FFFF&amp;quot;&lt;br /&gt;
        vendor = &amp;quot;EATON&amp;quot;&lt;br /&gt;
        bus = &amp;quot;005&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Vendorid/productid/vendor/bus are not critical for single use case.&lt;br /&gt;
&lt;br /&gt;
Then &#039;&#039;&#039;/etc/nut/upsd.conf&#039;&#039;&#039;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LISTEN 127.0.0.1 3493&lt;br /&gt;
LISTEN ::1 3493&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;And finally, &#039;&#039;&#039;/etc/nut/nut.conf&#039;&#039;&#039;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
MODE=standalone&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Runtime ===&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
systemctl start nut-server&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The script behind nut-server will spin up new systemctl services to handle the UPS.&lt;br /&gt;
&lt;br /&gt;
NUT Monitor can be run to get a graphical interface to the UPS status.&lt;br /&gt;
&lt;br /&gt;
Using NUT will disable KDE&#039;s ability to communicate with the UPS and show the state of charge.&lt;br /&gt;
&lt;br /&gt;
=== Alternate installation ===&lt;br /&gt;
Set MODE=netclient in /etc/nut/nut.conf&lt;br /&gt;
&lt;br /&gt;
No entry in /etc/nut/ups.conf&lt;br /&gt;
&lt;br /&gt;
Add a MONITOR ups@synologyip 0 monuser secret secondary to upsmon.conf&lt;br /&gt;
&lt;br /&gt;
Set MINSUPPLIES to 0 in upsmon.conf&lt;br /&gt;
&lt;br /&gt;
systemctl restart nut-monitor&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=73</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=73"/>
		<updated>2023-12-10T15:24:16Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Synology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
An existing acme configuration can have the default duration extended by setting a parameter in ca.json.&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;claims&amp;quot;: {                                                                      &lt;br /&gt;
    &amp;quot;defaultTLSCertDuration&amp;quot;: &amp;quot;730h0m0s&amp;quot;,                                    &lt;br /&gt;
    ...                                 &lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /config/ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github&lt;br /&gt;
## &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/&lt;br /&gt;
## &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run&lt;br /&gt;
## &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa -d jellyfin.home.arpa -d lidarr.home.arpa -d sonarr.home.arpa -d radarr.home.arpa -d erddap.home.arpa --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password in the shell environment&lt;br /&gt;
# Deploy the main name&lt;br /&gt;
## &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &lt;br /&gt;
## &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
At some point, my ACME provisioner vanished. This caused HomeAssistant&#039;s Caddy2 docker no end of grief, because it couldn&#039;t renew any more. The error message on the client side is very perplexing - &amp;lt;nowiki&amp;gt;urn:ietf:params:acme:error:accountDoesNotExist&amp;lt;/nowiki&amp;gt; / &amp;quot;account does not exist&amp;quot;. It&#039;s not saying that the email identifier of the &#039;&#039;&#039;client&#039;&#039;&#039; doesn&#039;t exist, but that the &#039;&#039;&#039;provisioner&#039;&#039;&#039; doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Root-caused - hadn&#039;t provided an outside-of-docker store for secrets etcetera, so an upgrade of the image lost all the generated configuration.&lt;br /&gt;
&lt;br /&gt;
Other root-caused - acme.sh has cached credentials for the certificate, and now that account doesn&#039;t exist either. Happens when the filesystem resets post upgrade, and after restoring the acme provider.&lt;br /&gt;
&lt;br /&gt;
It&#039;s easily fixed by re-adding the provisioner to the Step CA setup, but then a whole new set of CA certs may need distributing - I had to do this at least, and the dates on the certs had changed. Without doing this, Firefox will show SEC_ERROR_BAD_SIGNATURE.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=72</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=72"/>
		<updated>2023-12-10T15:22:06Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
An existing acme configuration can have the default duration extended by setting a parameter in ca.json.&lt;br /&gt;
&lt;br /&gt;
  &amp;quot;claims&amp;quot;: {                                                                      &lt;br /&gt;
    &amp;quot;defaultTLSCertDuration&amp;quot;: &amp;quot;730h0m0s&amp;quot;,                                    &lt;br /&gt;
    ...                                 &lt;br /&gt;
  },&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /config/ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
At some point, my ACME provisioner vanished. This caused HomeAssistant&#039;s Caddy2 docker no end of grief, because it couldn&#039;t renew any more. The error message on the client side is very perplexing - &amp;lt;nowiki&amp;gt;urn:ietf:params:acme:error:accountDoesNotExist&amp;lt;/nowiki&amp;gt; / &amp;quot;account does not exist&amp;quot;. It&#039;s not saying that the email identifier of the &#039;&#039;&#039;client&#039;&#039;&#039; doesn&#039;t exist, but that the &#039;&#039;&#039;provisioner&#039;&#039;&#039; doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Root-caused - hadn&#039;t provided an outside-of-docker store for secrets etcetera, so an upgrade of the image lost all the generated configuration.&lt;br /&gt;
&lt;br /&gt;
Other root-caused - acme.sh has cached credentials for the certificate, and now that account doesn&#039;t exist either. Happens when the filesystem resets post upgrade, and after restoring the acme provider.&lt;br /&gt;
&lt;br /&gt;
It&#039;s easily fixed by re-adding the provisioner to the Step CA setup, but then a whole new set of CA certs may need distributing - I had to do this at least, and the dates on the certs had changed. Without doing this, Firefox will show SEC_ERROR_BAD_SIGNATURE.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=71</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=71"/>
		<updated>2023-12-10T15:16:01Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /config/ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
At some point, my ACME provisioner vanished. This caused HomeAssistant&#039;s Caddy2 docker no end of grief, because it couldn&#039;t renew any more. The error message on the client side is very perplexing - &amp;lt;nowiki&amp;gt;urn:ietf:params:acme:error:accountDoesNotExist&amp;lt;/nowiki&amp;gt; / &amp;quot;account does not exist&amp;quot;. It&#039;s not saying that the email identifier of the &#039;&#039;&#039;client&#039;&#039;&#039; doesn&#039;t exist, but that the &#039;&#039;&#039;provisioner&#039;&#039;&#039; doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Root-caused - hadn&#039;t provided an outside-of-docker store for secrets etcetera, so an upgrade of the image lost all the generated configuration.&lt;br /&gt;
&lt;br /&gt;
Other root-caused - acme.sh has cached credentials for the certificate, and now that account doesn&#039;t exist either. Happens when the filesystem resets post upgrade, and after restoring the acme provider.&lt;br /&gt;
&lt;br /&gt;
It&#039;s easily fixed by re-adding the provisioner to the Step CA setup, but then a whole new set of CA certs may need distributing - I had to do this at least, and the dates on the certs had changed. Without doing this, Firefox will show SEC_ERROR_BAD_SIGNATURE.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=70</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=70"/>
		<updated>2023-12-02T08:11:38Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /config/ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
At some point, my ACME provisioner vanished. This caused HomeAssistant&#039;s Caddy2 docker no end of grief, because it couldn&#039;t renew any more. The error message on the client side is very perplexing - &amp;lt;nowiki&amp;gt;urn:ietf:params:acme:error:accountDoesNotExist&amp;lt;/nowiki&amp;gt; / &amp;quot;account does not exist&amp;quot;. It&#039;s not saying that the email identifier of the &#039;&#039;&#039;client&#039;&#039;&#039; doesn&#039;t exist, but that the &#039;&#039;&#039;provisioner&#039;&#039;&#039; doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
Root-caused - hadn&#039;t provided an outside-of-docker store for secrets etcetera, so an upgrade of the image lost all the generated configuration.&lt;br /&gt;
&lt;br /&gt;
It&#039;s easily fixed by re-adding the provisioner to the Step CA setup, but then a whole new set of CA certs may need distributing - I had to do this at least, and the dates on the certs had changed. Without doing this, Firefox will show SEC_ERROR_BAD_SIGNATURE.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=69</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=69"/>
		<updated>2023-11-19T13:46:02Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Troubleshooting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /config/ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
At some point, my ACME provisioner vanished. This caused HomeAssistant&#039;s Caddy2 docker no end of grief, because it couldn&#039;t renew any more. The error message on the client side is very perplexing - &amp;lt;nowiki&amp;gt;urn:ietf:params:acme:error:accountDoesNotExist&amp;lt;/nowiki&amp;gt; / &amp;quot;account does not exist&amp;quot;. It&#039;s not saying that the email identifier of the &#039;&#039;&#039;client&#039;&#039;&#039; doesn&#039;t exist, but that the &#039;&#039;&#039;provisioner&#039;&#039;&#039; doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
It&#039;s easily fixed by re-adding the provisioner to the Step CA setup, but then a whole new set of CA certs may need distributing - I had to do this at least, and the dates on the certs had changed. Without doing this, Firefox will show SEC_ERROR_BAD_SIGNATURE.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=68</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=68"/>
		<updated>2023-11-19T13:45:07Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /config/ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
At some point, my ACME provisioner vanished. This caused HomeAssistant&#039;s Caddy2 docker no end of grief, because it couldn&#039;t renew any more. The error message on the client side is very perplexing - &amp;lt;nowiki&amp;gt;urn:ietf:params:acme:error:accountDoesNotExist&amp;lt;/nowiki&amp;gt; / &amp;quot;account does not exist&amp;quot;. It&#039;s not saying that the email identifier of the &#039;&#039;&#039;client&#039;&#039;&#039; doesn&#039;t exist, but that the &#039;&#039;&#039;provisioner&#039;&#039;&#039; doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
It&#039;s easily fixed by re-adding the provisioner to the Step CA setup, but then a whole new set of CA certs may need distributing - I had to do this at least, and the dates on the certs had changed.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=67</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=67"/>
		<updated>2023-11-19T12:44:44Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* HomeAssistant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /config/ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=66</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=66"/>
		<updated>2023-10-28T07:38:10Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: /* Synology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
## Without it, the cron schedule will happily regenerate the certificate, but it won&#039;t get installed when it expires.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Getting_ERDDAP_Running&amp;diff=65</id>
		<title>Computing/Getting ERDDAP Running</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Getting_ERDDAP_Running&amp;diff=65"/>
		<updated>2023-10-13T06:28:52Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ERDDAP is software for serving up scientific data. To run and configure it, the Docker approach works fairly well (even running on a Synology NAS).&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;docker pull axiom/docker-erddap:latest-jdk17-openjdk&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
# Read https://coastwatch.pfeg.noaa.gov/erddap/download/setupDatasetsXml.html very carefully.&lt;br /&gt;
## It&#039;s long. It&#039;s thorough.&lt;br /&gt;
# Read through https://github.com/unidata/tomcat-docker to see if any Tomcat bits apply (unlikely, will use Caddy2 to front this Tomcat)&lt;br /&gt;
# Read through https://registry.hub.docker.com/r/axiom/docker-erddap/ and (source) https://github.com/axiom-data-science/docker-erddap&lt;br /&gt;
# Run the container at least once and extract &amp;lt;code&amp;gt;/usr/local/tomcat/content/erddap/setup.xml&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;datasets.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
# Tune the XML files&lt;br /&gt;
## Even though Axiom&#039;s docker can do everything with environment variables, &amp;lt;code&amp;gt;setup.xml&amp;lt;/code&amp;gt; must exist&lt;br /&gt;
# Re-run the docker instance with file pass-throughs&lt;br /&gt;
## Don&#039;t forget to pass through the &amp;lt;code&amp;gt;bigParentDirectory&amp;lt;/code&amp;gt;, because the logs are there&lt;br /&gt;
## In fact, there&#039;s a ton of stuff there that is needed for persistent operation&lt;br /&gt;
# A sample JSON file is needed where the dataset indicates the files will exist&lt;br /&gt;
## The record should be deletable once the system is running and has real data flowing&lt;br /&gt;
# Use the DasDds.sh script in the WEB-INF directory to validate the dataset.xml file&lt;br /&gt;
## Given this is docker, either &amp;lt;code&amp;gt;docker exec -it &amp;lt;name&amp;gt; /bin/bash&amp;lt;/code&amp;gt; or invoke it with sufficient pass-throughs to run the script directly from the host&lt;br /&gt;
On restart, the service shows the default landing page, but shortly thereafter replaces it with any modified content. This implies that the pass-through of the XML files somehow doesn&#039;t take effect until the service has re-read them after docker startup.&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
# Catalina logs are uninteresting&lt;br /&gt;
# Application logs are not exported to docker&#039;s log system&lt;br /&gt;
# Application logs are in the bigParentDirectory passed-through volume&lt;br /&gt;
&lt;br /&gt;
=== HTTPGet errors ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;sourceName&amp;lt;/code&amp;gt; does not do case translations to &amp;lt;code&amp;gt;destinationName&amp;lt;/code&amp;gt;. They must be &#039;&#039;&#039;identical&#039;&#039;&#039;.&lt;br /&gt;
# Configuration of the dataset attributes uses (effectively) the &amp;lt;code&amp;gt;destinationName&amp;lt;/code&amp;gt; spelling&lt;br /&gt;
# &amp;lt;code&amp;gt;time, longitude, latitude&amp;lt;/code&amp;gt; must be spelt that way&lt;br /&gt;
# &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; must be the last field on the request, and it points to the keys (username_$password)&lt;br /&gt;
# &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; must exist in the definition, but never set&lt;br /&gt;
# Yes, it&#039;s HTTP GET -&amp;gt; data write happens. It&#039;s terrible and goes against the RFC for web server implementation.&lt;br /&gt;
&lt;br /&gt;
=== AIS -catcher integration ===&lt;br /&gt;
The whole goal of this setup is to grab AIS data from the meteorological sensors in Dublin Bay. A simple proof-of-concept parser follows.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
import json&lt;br /&gt;
import urllib.request&lt;br /&gt;
import urllib.parse&lt;br /&gt;
from datetime import datetime&lt;br /&gt;
&lt;br /&gt;
URL=&amp;quot;https://erddap.home.arpa/erddap/tabledap/datasetName.insert&amp;quot;&lt;br /&gt;
MAPPER = {&lt;br /&gt;
    &amp;quot;signalpower&amp;quot;: &amp;quot;Signal_Power&amp;quot;,&lt;br /&gt;
    &amp;quot;wspeed&amp;quot;: &amp;quot;Wind_Speed&amp;quot;,&lt;br /&gt;
    &amp;quot;wgust&amp;quot;: &amp;quot;Wind_Gust_Speed&amp;quot;,&lt;br /&gt;
    &amp;quot;wdir&amp;quot;: &amp;quot;Wind_Direction&amp;quot;,&lt;br /&gt;
    &amp;quot;wgustdir&amp;quot;: &amp;quot;Wind_Gust_Direction&amp;quot;,&lt;br /&gt;
    &amp;quot;lon&amp;quot;: &amp;quot;longitude&amp;quot;,&lt;br /&gt;
    &amp;quot;lat&amp;quot;: &amp;quot;latitude&amp;quot;,&lt;br /&gt;
    &amp;quot;waveheight&amp;quot;: &amp;quot;Wave_Height&amp;quot;,&lt;br /&gt;
    &amp;quot;waveperiod&amp;quot;: &amp;quot;Wave_Period&amp;quot;,&lt;br /&gt;
    &amp;quot;mmsi&amp;quot;: &amp;quot;MMSI&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
with open(&amp;quot;ais.capture&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    lines = f.readlines()&lt;br /&gt;
&lt;br /&gt;
lines = [json.loads(x) for x in lines if &amp;quot;wspeed&amp;quot; in x and &amp;quot;01301&amp;quot; in x]&lt;br /&gt;
&lt;br /&gt;
for line in lines:&lt;br /&gt;
    kv = {}&lt;br /&gt;
    rxtime = line[&amp;quot;rxtime&amp;quot;]&lt;br /&gt;
    dt_rxtime = datetime.strptime(rxtime, &amp;quot;%Y%m%d%H%M%S&amp;quot;)&lt;br /&gt;
    kv[&amp;quot;time&amp;quot;]=dt_rxtime.strftime(&#039;%Y-%m-%dT%H:%M:%SZ&#039;)&lt;br /&gt;
    kv[&amp;quot;Station_ID&amp;quot;] =&amp;quot;Dublin_Bay_Buoy&amp;quot;&lt;br /&gt;
    for field, value in MAPPER.items():&lt;br /&gt;
        kv[value]=line[field]&lt;br /&gt;
    kv[&amp;quot;author&amp;quot;] =&amp;quot;testuser_somepassword&amp;quot;&lt;br /&gt;
    params = urllib.parse.urlencode(kv)&lt;br /&gt;
    url = f&amp;quot;{URL}?{params}&amp;quot;&lt;br /&gt;
    with urllib.request.urlopen(url) as f:&lt;br /&gt;
        print(f.read().decode(&#039;utf-8&#039;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;A more thorough implementation is found at https://github.com/cricalix/erddap-feeder - a small Rust program that can listen for HTTP POST requests from ais-catcher and transform them to HTTP GET requests against the ERDDAP instance.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=64</id>
		<title>Computing/Running my own CA</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Running_my_own_CA&amp;diff=64"/>
		<updated>2023-10-01T07:14:34Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I use the RFC-approved home.arpa domain at home. You cannot get certificates for devices from Let&#039;s Encrypt when you do this, because no-one (those of us who want certificates at least) has control over the DNS for home.arpa. This also means the CA has to be on the LAN, because a net-based service a) won&#039;t know how to look up home.arpa entries on the local router, b) and even if it could, it can&#039;t reach the internal services without firewall hole punching.&lt;br /&gt;
&lt;br /&gt;
Thus, run step-ca locally in a Docker container, and get everything configured to talk to it.&lt;br /&gt;
&lt;br /&gt;
== CA Setup ==&lt;br /&gt;
# Use step-ca in docker on Synology NAS, mapping through port 9000:9000&lt;br /&gt;
# Add the acme provider per the docs&lt;br /&gt;
## SSH to the host&lt;br /&gt;
## &amp;lt;code&amp;gt;docker -it smallstep-step-ca-1 /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
## &amp;lt;code&amp;gt;step ca provisioner add acme --type ACME --x509-default-dur 730h  # 1 monthish&amp;lt;/code&amp;gt;&lt;br /&gt;
# Export out the root CRT file, will need it for trust everywhere&lt;br /&gt;
## &amp;lt;code&amp;gt;certs/root_ca.crt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deploy ==&lt;br /&gt;
&lt;br /&gt;
=== HomeAssistant ===&lt;br /&gt;
&lt;br /&gt;
# Update the http config to allow trusted reverse proxies&lt;br /&gt;
# Install the Caddy2 add-on from https://github.com/einschmidt/hassio-addons&lt;br /&gt;
# Add a Caddyfile that specifies the local CA&lt;br /&gt;
# Ensure the Caddyfile points to the exported CA certificate in somewhere like /config&lt;br /&gt;
# Start Caddy2 and it should successfully retrieve a certificate&lt;br /&gt;
&lt;br /&gt;
===== Working Caddyfile =====&lt;br /&gt;
 homeassistant.home.arpa {&lt;br /&gt;
 	reverse_proxy homeassistant:8123&lt;br /&gt;
 	tls acme@home.arpa {&lt;br /&gt;
 		ca &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 		ca_root /ssl/ca.pem&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
===== Working configuration.yaml =====&lt;br /&gt;
 http:&lt;br /&gt;
   use_x_forwarded_for: true&lt;br /&gt;
   trusted_proxies:&lt;br /&gt;
     - 192.168.0.194  # whatever the homeassistant box resolves to&lt;br /&gt;
&lt;br /&gt;
=== Synology ===&lt;br /&gt;
To add TLS/SSL to the NAS itself,&lt;br /&gt;
&lt;br /&gt;
# Copy the cert to /var/db/ca-certificates, named .crt, 0644&lt;br /&gt;
# Run update-ca-certificates.sh&lt;br /&gt;
# Grab acme.sh from Github - &amp;lt;code&amp;gt;wget &amp;lt;nowiki&amp;gt;https://github.com/acmesh-official/acme.sh/archive/master.tar.gz&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Install to /usr/local/share/acme.sh/ - &amp;lt;code&amp;gt;./acme.sh --install --nocron --home /usr/local/share/acme.sh --accountemail &amp;quot;acme@home.arpa&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Piggyback on the DSM Let&#039;s Encrypt setup in nginx, and run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --issue --home /usr/local/share/acme.sh -d vault.home.arpa  --server &amp;lt;nowiki&amp;gt;https://vault.home.arpa:9000/acme/acme/directory&amp;lt;/nowiki&amp;gt; --webroot /var/lib/letsencrypt --days 90&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set SYNO_Username, SYNO_Password&lt;br /&gt;
# &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --deploy --home /usr/local/share/acme.sh -d vault.home.arpa --deploy-hook synology_dsm&amp;lt;/code&amp;gt;&lt;br /&gt;
# Add a Task Scheduler entry to run &amp;lt;code&amp;gt;/usr/local/share/acme.sh/acme.sh --cron --home /usr/local/share/acme.sh/&amp;lt;/code&amp;gt; frequently. step-ca defaults to 24 hours, so every 4 hours should ensure the certificate stays updated. With a 1 month renewal, this could be weekly.&lt;br /&gt;
&lt;br /&gt;
==== Dockers on Synology ====&lt;br /&gt;
The NAS runs multiple contains for things like Jellyfin. A small dance is needed, but it&#039;s not a bad one.&lt;br /&gt;
&lt;br /&gt;
# Add DNS name on router DNS zone, A record pointing at the vault.home.arpa name&lt;br /&gt;
# Re-run the --issue command, adding another -d for the name to add to the certificate. This turns into a SAN certificate.&lt;br /&gt;
# Deploy the certificate&lt;br /&gt;
# Settings &amp;gt; Login Portal &amp;gt; Advanced &amp;gt; Reverse Proxy&lt;br /&gt;
# Proxy the new name on https to localhost on the relevant port.&lt;br /&gt;
# Save&lt;br /&gt;
# Try the new name in a browser or whatever.&lt;br /&gt;
-----&lt;br /&gt;
=== Desktop ===&lt;br /&gt;
&lt;br /&gt;
# For firefox, find the CA cert, add it to the local store&lt;br /&gt;
-----&lt;br /&gt;
=== Router ===&lt;br /&gt;
&lt;br /&gt;
# Add router.home.arpa to the static DNS setup&lt;br /&gt;
# Install the luci-app-acme UI; it pulls in acme.sh&lt;br /&gt;
# Delete existing configs&lt;br /&gt;
# Add new config pointing to IP address of vault as custom source, including the port&lt;br /&gt;
# Hack the code to add --insecure to the curl call&lt;br /&gt;
# Request name router.home.arpa&lt;br /&gt;
# Should all work&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;/etc/config/acme&amp;lt;/code&amp;gt;&lt;br /&gt;
 config acme&lt;br /&gt;
         option state_dir &#039;/etc/acme&#039;&lt;br /&gt;
         option debug &#039;0&#039;&lt;br /&gt;
         option account_email &#039;acme@home.arpa&#039;&lt;br /&gt;
  &lt;br /&gt;
 config cert &#039;router&#039;&lt;br /&gt;
         option enabled &#039;1&#039;&lt;br /&gt;
         option use_staging &#039;0&#039;&lt;br /&gt;
         option keylength &#039;2048&#039;&lt;br /&gt;
         list domains &#039;router.home.arpa&#039;&lt;br /&gt;
         option update_uhttpd &#039;1&#039;&lt;br /&gt;
         option validation_method &#039;webroot&#039;&lt;br /&gt;
         option webroot &#039;/www&#039;&lt;br /&gt;
         option use_acme_server &#039;1&#039;&lt;br /&gt;
         option acme_server &#039;https://192.168.0.218:9000/acme/acme/directory&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Errors ====&lt;br /&gt;
&lt;br /&gt;
* Curl error 35 - probably forgot the port number&lt;br /&gt;
* Curl error 60 - probably forgot --insecure&lt;br /&gt;
&lt;br /&gt;
-----&lt;br /&gt;
=== iOS ===&lt;br /&gt;
&lt;br /&gt;
# Email the root certificate to myself&lt;br /&gt;
# Tap on it in Mail&lt;br /&gt;
# Save to iCloud or phone&lt;br /&gt;
# Open Files app&lt;br /&gt;
# Tap certificate&lt;br /&gt;
# Open Settings, should go to profile imports&lt;br /&gt;
# Import the certificate&lt;br /&gt;
# Settings root, search for trust&lt;br /&gt;
# Enable trust for the certificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Paths taken, but reversed===&lt;br /&gt;
&lt;br /&gt;
# Use the letsencrypt add-on for HA, and specify the CA crt in the configuration. Have to apply https://github.com/home-assistant/addons/issues/2713&amp;lt;nowiki/&amp;gt;&#039;s fix or things fail with error code 6.&lt;br /&gt;
# Use the step-client add-on for HA. This got the root CA crt copied over, but didn&#039;t help with anything else really. Easier to just copy the certificate by hand.&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Rust&amp;diff=63</id>
		<title>Computing/Rust</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Rust&amp;diff=63"/>
		<updated>2023-09-25T18:24:18Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things I forget when doing new Rust installs, or other things I want to keep track of with Rust.&lt;br /&gt;
&lt;br /&gt;
# Install rust-analyzer via rustup. &amp;lt;code&amp;gt;rustup component add rust-analyzer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Reqwest GET URIs ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
let mut req = client.get(&amp;quot;https://www.google.com&amp;quot;).build().unwrap();&lt;br /&gt;
&lt;br /&gt;
let query: String = form_urlencoded::Serializer::new(String::new())&lt;br /&gt;
   .append_key_only(&amp;quot;foo&amp;quot;)&lt;br /&gt;
   .finish();&lt;br /&gt;
req.url_mut().set_query(Some(&amp;amp;query));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;https://docs.rs/form_urlencoded/latest/form_urlencoded/struct.Serializer.html#method.append_pair&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install pkg-config libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clap for CLI handling ====&lt;br /&gt;
&amp;lt;code&amp;gt;cargo add clap -F derive,env&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Serde and Axum ====&lt;br /&gt;
&lt;br /&gt;
Refer to things correctly in the structs. Structs need to be &amp;lt;code&amp;gt;#[derive(Deserialize,Debug)]&amp;lt;/code&amp;gt; for Azum JSON processing to work. Avoid the rawvalue stuff if possible, because lifetimes become a problem and the blocking error is &amp;lt;code&amp;gt;higher-ranked lifetime error&amp;lt;/code&amp;gt; pointing at the &amp;lt;code&amp;gt;post()&amp;lt;/code&amp;gt; handler in the Axum routing block of code.&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
#[derive(Deserialize,Debug)]&lt;br /&gt;
struct AisCatcherMessage {&lt;br /&gt;
    protocol: String,&lt;br /&gt;
    encodetime: String,&lt;br /&gt;
    stationid: String,&lt;br /&gt;
    receiver: AisCatcherReceiver,&lt;br /&gt;
    device: AisCatcherDevice,&lt;br /&gt;
    msgs: Vec&amp;lt;serde_json::Value&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
async fn process_ais_message(Json(payload): Json&amp;lt;AisCatcherMessage&amp;gt;) -&amp;gt; impl IntoResponse {&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, payload);&lt;br /&gt;
&lt;br /&gt;
    for msg in payload.msgs {&lt;br /&gt;
        println!(&amp;quot;{}&amp;quot;, msg[&amp;quot;rxtime&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    (StatusCode::CREATED, Json(json!({&amp;quot;message&amp;quot;: &amp;quot;Processed&amp;quot; })))&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Rust&amp;diff=62</id>
		<title>Computing/Rust</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Rust&amp;diff=62"/>
		<updated>2023-09-25T18:22:42Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things I forget when doing new Rust installs, or other things I want to keep track of with Rust.&lt;br /&gt;
&lt;br /&gt;
# Install rust-analyzer via rustup. &amp;lt;code&amp;gt;rustup component add rust-analyzer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Reqwest GET URIs ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
let mut req = client.get(&amp;quot;https://www.google.com&amp;quot;).build().unwrap();&lt;br /&gt;
&lt;br /&gt;
let query: String = form_urlencoded::Serializer::new(String::new())&lt;br /&gt;
   .append_key_only(&amp;quot;foo&amp;quot;)&lt;br /&gt;
   .finish();&lt;br /&gt;
req.url_mut().set_query(Some(&amp;amp;query));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;https://docs.rs/form_urlencoded/latest/form_urlencoded/struct.Serializer.html#method.append_pair&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo apt install pkg-config libssl-dev&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clap for CLI handling ====&lt;br /&gt;
&amp;lt;code&amp;gt;cargo add clap -F derive,env&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Serde and Axum&lt;br /&gt;
&lt;br /&gt;
Refer to things correctly in the structs. Structs need to be &amp;lt;code&amp;gt;#[derive(Deserialize,Debug)]&amp;lt;/code&amp;gt; for Azum JSON processing to work.&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
#[derive(Deserialize,Debug)]&lt;br /&gt;
struct AisCatcherMessage {&lt;br /&gt;
    protocol: String,&lt;br /&gt;
    encodetime: String,&lt;br /&gt;
    stationid: String,&lt;br /&gt;
    receiver: AisCatcherReceiver,&lt;br /&gt;
    device: AisCatcherDevice,&lt;br /&gt;
    msgs: Vec&amp;lt;serde_json::Value&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
async fn process_ais_message(Json(payload): Json&amp;lt;AisCatcherMessage&amp;gt;) -&amp;gt; impl IntoResponse {&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, payload);&lt;br /&gt;
&lt;br /&gt;
    for msg in payload.msgs {&lt;br /&gt;
        println!(&amp;quot;{}&amp;quot;, msg[&amp;quot;rxtime&amp;quot;]);&lt;br /&gt;
    }&lt;br /&gt;
    (StatusCode::CREATED, Json(json!({&amp;quot;message&amp;quot;: &amp;quot;Processed&amp;quot; })))&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Rust&amp;diff=61</id>
		<title>Computing/Rust</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Rust&amp;diff=61"/>
		<updated>2023-09-25T17:02:56Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Created page with &amp;quot;Things I forget when doing new Rust installs, or other things I want to keep track of with Rust.  # Install rust-analyzer via rustup. &amp;lt;code&amp;gt;rustup component add rust-analyzer&amp;lt;/code&amp;gt;  ==== Reqwest GET URIs ==== &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt; let mut req = client.get(&amp;quot;https://www.google.com&amp;quot;).build().unwrap();  let query: String = form_urlencoded::Serializer::new(String::new())    .append_key_only(&amp;quot;foo&amp;quot;)    .finish(); req.url_mut().set_query(Some(&amp;amp;query)); &amp;lt;/syntaxhighl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Things I forget when doing new Rust installs, or other things I want to keep track of with Rust.&lt;br /&gt;
&lt;br /&gt;
# Install rust-analyzer via rustup. &amp;lt;code&amp;gt;rustup component add rust-analyzer&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Reqwest GET URIs ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
let mut req = client.get(&amp;quot;https://www.google.com&amp;quot;).build().unwrap();&lt;br /&gt;
&lt;br /&gt;
let query: String = form_urlencoded::Serializer::new(String::new())&lt;br /&gt;
   .append_key_only(&amp;quot;foo&amp;quot;)&lt;br /&gt;
   .finish();&lt;br /&gt;
req.url_mut().set_query(Some(&amp;amp;query));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Clap for CLI handling ====&lt;br /&gt;
&amp;lt;code&amp;gt;cargo add clap -F derive,env&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/AIS_Catcher&amp;diff=60</id>
		<title>Computing/AIS Catcher</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/AIS_Catcher&amp;diff=60"/>
		<updated>2023-09-25T07:36:10Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: Created page with &amp;quot;Installation  # https://github.com/jvde-github/AIS-catcher#container-images&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Installation&lt;br /&gt;
&lt;br /&gt;
# https://github.com/jvde-github/AIS-catcher#container-images&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
	<entry>
		<id>https://wiki.cricalix.net/index.php?title=Computing/Getting_ERDDAP_Running&amp;diff=59</id>
		<title>Computing/Getting ERDDAP Running</title>
		<link rel="alternate" type="text/html" href="https://wiki.cricalix.net/index.php?title=Computing/Getting_ERDDAP_Running&amp;diff=59"/>
		<updated>2023-09-25T07:20:49Z</updated>

		<summary type="html">&lt;p&gt;Cricalix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ERDDAP is software for serving up scientific data. To run and configure it, the Docker approach works fairly well (even running on a Synology NAS).&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;docker pull axiom/docker-erddap:latest-jdk17-openjdk&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Configuration ===&lt;br /&gt;
&lt;br /&gt;
# Read https://coastwatch.pfeg.noaa.gov/erddap/download/setupDatasetsXml.html very carefully.&lt;br /&gt;
## It&#039;s long. It&#039;s thorough.&lt;br /&gt;
# Read through https://github.com/unidata/tomcat-docker to see if any Tomcat bits apply (unlikely, will use Caddy2 to front this Tomcat)&lt;br /&gt;
# Read through https://registry.hub.docker.com/r/axiom/docker-erddap/ and (source) https://github.com/axiom-data-science/docker-erddap&lt;br /&gt;
# Run the container at least once and extract /usr/local/tomcat/content/erddap/setup.xml and datasets.xml&lt;br /&gt;
# Tune the XML files&lt;br /&gt;
## Even though Axiom&#039;s docker can do everything with environment variables, setup.xml must exist&lt;br /&gt;
# Re-run the docker instance with file pass-throughs&lt;br /&gt;
## Don&#039;t forget to pass through the bigParentDirectory, because the logs are there&lt;br /&gt;
## In fact, there&#039;s a ton of stuff there that is needed for persistent operation&lt;br /&gt;
# A sample JSON file is needed where the dataset indicates the files will exist&lt;br /&gt;
## The record should be deletable once the system is running and has real data flowing&lt;br /&gt;
# Use the DasDds.sh script in the WEB-INF directory to validate the dataset.xml file&lt;br /&gt;
## Given this is docker, either &amp;lt;code&amp;gt;docker exec -it &amp;lt;name&amp;gt; /bin/bash&amp;lt;/code&amp;gt; or invoke it with sufficient pass-throughs to run the script directly from the host&lt;br /&gt;
&lt;br /&gt;
=== Logs ===&lt;br /&gt;
&lt;br /&gt;
# Catalina logs are uninteresting&lt;br /&gt;
# Application logs are not exported to docker&#039;s log system&lt;br /&gt;
# Application logs are in the bigParentDirectory passed-through volume&lt;br /&gt;
&lt;br /&gt;
=== HTTPGet errors ===&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;sourceName&amp;lt;/code&amp;gt; does not do case translations to &amp;lt;code&amp;gt;destinationName&amp;lt;/code&amp;gt;. They must be &#039;&#039;&#039;identical&#039;&#039;&#039;.&lt;br /&gt;
# Configuration of the dataset attributes uses (effectively) the &amp;lt;code&amp;gt;destinationName&amp;lt;/code&amp;gt; spelling&lt;br /&gt;
# &amp;lt;code&amp;gt;time, longitude, latitude&amp;lt;/code&amp;gt; must be spelt that way&lt;br /&gt;
# &amp;lt;code&amp;gt;author&amp;lt;/code&amp;gt; must be the last field on the request, and it points to the keys (username_$password)&lt;br /&gt;
# &amp;lt;code&amp;gt;command&amp;lt;/code&amp;gt; must exist in the definition, but never set&lt;br /&gt;
# Yes, it&#039;s HTTP GET -&amp;gt; data write happens. It&#039;s terrible and goes against the RFC for web server implementation.&lt;br /&gt;
&lt;br /&gt;
=== AIS Catcher integration ===&lt;br /&gt;
The whole goal of this setup is to grab AIS data from the meteorological sensors in Dublin Bay. A simple proof-of-concept parser follows.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env python3&lt;br /&gt;
&lt;br /&gt;
import json&lt;br /&gt;
import urllib.request&lt;br /&gt;
import urllib.parse&lt;br /&gt;
from datetime import datetime&lt;br /&gt;
&lt;br /&gt;
URL=&amp;quot;https://erddap.home.arpa/erddap/tabledap/datasetName.insert&amp;quot;&lt;br /&gt;
MAPPER = {&lt;br /&gt;
    &amp;quot;signalpower&amp;quot;: &amp;quot;Signal_Power&amp;quot;,&lt;br /&gt;
    &amp;quot;wspeed&amp;quot;: &amp;quot;Wind_Speed&amp;quot;,&lt;br /&gt;
    &amp;quot;wgust&amp;quot;: &amp;quot;Wind_Gust_Speed&amp;quot;,&lt;br /&gt;
    &amp;quot;wdir&amp;quot;: &amp;quot;Wind_Direction&amp;quot;,&lt;br /&gt;
    &amp;quot;wgustdir&amp;quot;: &amp;quot;Wind_Gust_Direction&amp;quot;,&lt;br /&gt;
    &amp;quot;lon&amp;quot;: &amp;quot;longitude&amp;quot;,&lt;br /&gt;
    &amp;quot;lat&amp;quot;: &amp;quot;latitude&amp;quot;,&lt;br /&gt;
    &amp;quot;waveheight&amp;quot;: &amp;quot;Wave_Height&amp;quot;,&lt;br /&gt;
    &amp;quot;waveperiod&amp;quot;: &amp;quot;Wave_Period&amp;quot;,&lt;br /&gt;
    &amp;quot;mmsi&amp;quot;: &amp;quot;MMSI&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
 &lt;br /&gt;
with open(&amp;quot;ais.capture&amp;quot;, &amp;quot;r&amp;quot;) as f:&lt;br /&gt;
    lines = f.readlines()&lt;br /&gt;
&lt;br /&gt;
lines = [json.loads(x) for x in lines if &amp;quot;wspeed&amp;quot; in x and &amp;quot;01301&amp;quot; in x]&lt;br /&gt;
&lt;br /&gt;
for line in lines:&lt;br /&gt;
    kv = {}&lt;br /&gt;
    rxtime = line[&amp;quot;rxtime&amp;quot;]&lt;br /&gt;
    dt_rxtime = datetime.strptime(rxtime, &amp;quot;%Y%m%d%H%M%S&amp;quot;)&lt;br /&gt;
    kv[&amp;quot;time&amp;quot;]=dt_rxtime.strftime(&#039;%Y-%m-%dT%H:%M:%SZ&#039;)&lt;br /&gt;
    kv[&amp;quot;Station_ID&amp;quot;] =&amp;quot;Dublin_Bay_Buoy&amp;quot;&lt;br /&gt;
    for field, value in MAPPER.items():&lt;br /&gt;
        kv[value]=line[field]&lt;br /&gt;
    kv[&amp;quot;author&amp;quot;] =&amp;quot;testuser_somepassword&amp;quot;&lt;br /&gt;
    params = urllib.parse.urlencode(kv)&lt;br /&gt;
    url = f&amp;quot;{URL}?{params}&amp;quot;&lt;br /&gt;
    with urllib.request.urlopen(url) as f:&lt;br /&gt;
        print(f.read().decode(&#039;utf-8&#039;))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Cricalix</name></author>
	</entry>
</feed>