Skip to content

Commit 60682b9

Browse files
committed
Initial waku-ctl release
0 parents  commit 60682b9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+5615
-0
lines changed

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
.pio
2+
.vscode/.browse.c_cpp.db*
3+
.vscode/c_cpp_properties.json
4+
.vscode/launch.json
5+
.vscode/ipch
6+
7+
pcb/__Previews
8+
pcb/History
9+
pcb/Project Outputs for waku-ctl-board
10+
pcb/Project Logs for waku-ctl-board

.vscode/extensions.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
// See http://go.microsoft.com/fwlink/?LinkId=827846
3+
// for the documentation about the extensions.json format
4+
"recommendations": [
5+
"platformio.platformio-ide"
6+
],
7+
"unwantedRecommendations": [
8+
"ms-vscode.cpptools-extension-pack"
9+
]
10+
}

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.associations": {
3+
"map": "cpp"
4+
}
5+
}

LICENSE.md

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
Copyright (c) 2025 Nikolai Danylchyk
2+
3+
CERN Open Hardware Licence Version 2 - Permissive
4+
5+
Preamble
6+
7+
CERN has developed this licence to promote collaboration among
8+
hardware designers and to provide a legal tool which supports the
9+
freedom to use, study, modify, share and distribute hardware designs
10+
and products based on those designs. Version 2 of the CERN Open
11+
Hardware Licence comes in three variants: this licence, CERN-OHL-P
12+
(permissive); and two reciprocal licences: CERN-OHL-W (weakly
13+
reciprocal) and CERN-OHL-S (strongly reciprocal).
14+
15+
The CERN-OHL-P is copyright CERN 2020. Anyone is welcome to use it, in
16+
unmodified form only.
17+
18+
Use of this Licence does not imply any endorsement by CERN of any
19+
Licensor or their designs nor does it imply any involvement by CERN in
20+
their development.
21+
22+
23+
1 Definitions
24+
25+
1.1 'Licence' means this CERN-OHL-P.
26+
27+
1.2 'Source' means information such as design materials or digital
28+
code which can be applied to Make or test a Product or to
29+
prepare a Product for use, Conveyance or sale, regardless of its
30+
medium or how it is expressed. It may include Notices.
31+
32+
1.3 'Covered Source' means Source that is explicitly made available
33+
under this Licence.
34+
35+
1.4 'Product' means any device, component, work or physical object,
36+
whether in finished or intermediate form, arising from the use,
37+
application or processing of Covered Source.
38+
39+
1.5 'Make' means to create or configure something, whether by
40+
manufacture, assembly, compiling, loading or applying Covered
41+
Source or another Product or otherwise.
42+
43+
1.6 'Notice' means copyright, acknowledgement and trademark notices,
44+
references to the location of any Notices, modification notices
45+
(subsection 3.3(b)) and all notices that refer to this Licence
46+
and to the disclaimer of warranties that are included in the
47+
Covered Source.
48+
49+
1.7 'Licensee' or 'You' means any person exercising rights under
50+
this Licence.
51+
52+
1.8 'Licensor' means a person who creates Source or modifies Covered
53+
Source and subsequently Conveys the resulting Covered Source
54+
under the terms and conditions of this Licence. A person may be
55+
a Licensee and a Licensor at the same time.
56+
57+
1.9 'Convey' means to communicate to the public or distribute.
58+
59+
60+
2 Applicability
61+
62+
2.1 This Licence governs the use, copying, modification, Conveying
63+
of Covered Source and Products, and the Making of Products. By
64+
exercising any right granted under this Licence, You irrevocably
65+
accept these terms and conditions.
66+
67+
2.2 This Licence is granted by the Licensor directly to You, and
68+
shall apply worldwide and without limitation in time.
69+
70+
2.3 You shall not attempt to restrict by contract or otherwise the
71+
rights granted under this Licence to other Licensees.
72+
73+
2.4 This Licence is not intended to restrict fair use, fair dealing,
74+
or any other similar right.
75+
76+
77+
3 Copying, Modifying and Conveying Covered Source
78+
79+
3.1 You may copy and Convey verbatim copies of Covered Source, in
80+
any medium, provided You retain all Notices.
81+
82+
3.2 You may modify Covered Source, other than Notices.
83+
84+
You may only delete Notices if they are no longer applicable to
85+
the corresponding Covered Source as modified by You and You may
86+
add additional Notices applicable to Your modifications.
87+
88+
3.3 You may Convey modified Covered Source (with the effect that You
89+
shall also become a Licensor) provided that You:
90+
91+
a) retain Notices as required in subsection 3.2; and
92+
93+
b) add a Notice to the modified Covered Source stating that You
94+
have modified it, with the date and brief description of how
95+
You have modified it.
96+
97+
3.4 You may Convey Covered Source or modified Covered Source under
98+
licence terms which differ from the terms of this Licence
99+
provided that You:
100+
101+
a) comply at all times with subsection 3.3; and
102+
103+
b) provide a copy of this Licence to anyone to whom You
104+
Convey Covered Source or modified Covered Source.
105+
106+
107+
4 Making and Conveying Products
108+
109+
You may Make Products, and/or Convey them, provided that You ensure
110+
that the recipient of the Product has access to any Notices applicable
111+
to the Product.
112+
113+
114+
5 DISCLAIMER AND LIABILITY
115+
116+
5.1 DISCLAIMER OF WARRANTY -- The Covered Source and any Products
117+
are provided 'as is' and any express or implied warranties,
118+
including, but not limited to, implied warranties of
119+
merchantability, of satisfactory quality, non-infringement of
120+
third party rights, and fitness for a particular purpose or use
121+
are disclaimed in respect of any Source or Product to the
122+
maximum extent permitted by law. The Licensor makes no
123+
representation that any Source or Product does not or will not
124+
infringe any patent, copyright, trade secret or other
125+
proprietary right. The entire risk as to the use, quality, and
126+
performance of any Source or Product shall be with You and not
127+
the Licensor. This disclaimer of warranty is an essential part
128+
of this Licence and a condition for the grant of any rights
129+
granted under this Licence.
130+
131+
5.2 EXCLUSION AND LIMITATION OF LIABILITY -- The Licensor shall, to
132+
the maximum extent permitted by law, have no liability for
133+
direct, indirect, special, incidental, consequential, exemplary,
134+
punitive or other damages of any character including, without
135+
limitation, procurement of substitute goods or services, loss of
136+
use, data or profits, or business interruption, however caused
137+
and on any theory of contract, warranty, tort (including
138+
negligence), product liability or otherwise, arising in any way
139+
in relation to the Covered Source, modified Covered Source
140+
and/or the Making or Conveyance of a Product, even if advised of
141+
the possibility of such damages, and You shall hold the
142+
Licensor(s) free and harmless from any liability, costs,
143+
damages, fees and expenses, including claims by third parties,
144+
in relation to such use.
145+
146+
147+
6 Patents
148+
149+
6.1 Subject to the terms and conditions of this Licence, each
150+
Licensor hereby grants to You a perpetual, worldwide,
151+
non-exclusive, no-charge, royalty-free, irrevocable (except as
152+
stated in this section 6, or where terminated by the Licensor
153+
for cause) patent licence to Make, have Made, use, offer to
154+
sell, sell, import, and otherwise transfer the Covered Source
155+
and Products, where such licence applies only to those patent
156+
claims licensable by such Licensor that are necessarily
157+
infringed by exercising rights under the Covered Source as
158+
Conveyed by that Licensor.
159+
160+
6.2 If You institute patent litigation against any entity (including
161+
a cross-claim or counterclaim in a lawsuit) alleging that the
162+
Covered Source or a Product constitutes direct or contributory
163+
patent infringement, or You seek any declaration that a patent
164+
licensed to You under this Licence is invalid or unenforceable
165+
then any rights granted to You under this Licence shall
166+
terminate as of the date such process is initiated.
167+
168+
169+
7 General
170+
171+
7.1 If any provisions of this Licence are or subsequently become
172+
invalid or unenforceable for any reason, the remaining
173+
provisions shall remain effective.
174+
175+
7.2 You shall not use any of the name (including acronyms and
176+
abbreviations), image, or logo by which the Licensor or CERN is
177+
known, except where needed to comply with section 3, or where
178+
the use is otherwise allowed by law. Any such permitted use
179+
shall be factual and shall not be made so as to suggest any kind
180+
of endorsement or implication of involvement by the Licensor or
181+
its personnel.
182+
183+
7.3 CERN may publish updated versions and variants of this Licence
184+
which it considers to be in the spirit of this version, but may
185+
differ in detail to address new problems or concerns. New
186+
versions will be published with a unique version number and a
187+
variant identifier specifying the variant. If the Licensor has
188+
specified that a given variant applies to the Covered Source
189+
without specifying a version, You may treat that Covered Source
190+
as being released under any version of the CERN-OHL with that
191+
variant. If no variant is specified, the Covered Source shall be
192+
treated as being released under CERN-OHL-S. The Licensor may
193+
also specify that the Covered Source is subject to a specific
194+
version of the CERN-OHL or any later version in which case You
195+
may apply this or any later version of CERN-OHL with the same
196+
variant identifier published by CERN.
197+
198+
7.4 This Licence shall not be enforceable except by a Licensor
199+
acting as such, and third party beneficiary rights are
200+
specifically excluded.

README.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# waku-ctl
2+
3+
![waku-ctl banner](https://raw.githubusercontent.com/kennycoder/waku-ctl/refs/heads/main/media/header.png)
4+
5+
waku-ctl is an open-source water cooling controller designed to give you ultimate command over your custom water loop, freeing you from the limitations of BIOS profiles and proprietary software.
6+
7+
This project contains the hardware and software for the Waku Control device.
8+
9+
## Project Structure
10+
11+
* `/pcb`: Contains the PCB design files from Altium.
12+
* `/case`: Contains the STL files for the 3D printable case.
13+
* `/src`: Contains the source code for the ESP32 firmware.
14+
* `/data`: Contains the web interface files.
15+
* `/usb-cdc-daemon`: Contains a small system tray daemon that reads data via USB and submits it to HWiNFO64.
16+
17+
The firmware is developed using Visual Studio Code with the PlatformIO extension.
18+
19+
## Building the Firmware
20+
21+
1. Install [Visual Studio Code](https://code.visualstudio.com/).
22+
2. Install the [PlatformIO IDE extension](https://platformio.org/platformio-ide) from the Visual Studio Code marketplace.
23+
3. Clone this repository.
24+
4. Open the cloned repository folder in Visual Studio Code.
25+
5. PlatformIO will automatically detect the `platformio.ini` file and install the necessary dependencies.
26+
6. Click the "Build" button in the PlatformIO toolbar (the checkmark icon) to compile the firmware.
27+
7. Click the "Upload" button (the right arrow icon) to flash the firmware to your connected ESP32-S3 board.
28+
8. Click "Build Filesystem Image" and "Upload Filesystem Image"
29+
9. Reset the device and connect to its access point under the name of "waku-ctl" to finish setup.
30+
31+
## Building the USB CDC tray daemon for HWInfo64 integration
32+
33+
1. Install [golang](https://go.dev/doc/install)
34+
2. Enter `usb-cdc-daemon` folder and run `go build .`
35+
3. Execute the binary and check HWInfo64, you should start getting telemetry
36+
37+
## Hardware
38+
39+
The hardware is based on an ESP32-S3 N16R8 development board or a board with a similar pinout.
40+
41+
### Main cponents
42+
43+
| Designator | Quantity | Manufacturer | Part Number |
44+
| --------------------------------------------- | -------- | --------------------------- | -------------------------- |
45+
| Analog to Digital Converter | 1 | Texas Instruments | ADS1115IDGSR |
46+
| Multiplexer | 1 | Texas Instruments | CD4053BPWR |
47+
| 100nF Capacitors | 7 | Samsung Electro-Mechanics | CL31B104KBCNNNC |
48+
| 8 channel Voltage Level Shiter | 1 | Texas Instruments | TXS0108EPWR |
49+
| 2 channel Voltage Level Shiter | 1 | Texas Instruments | TXS0102DCTT |
50+
| 10k Resistors | 8 | UNI-ROYAL(Uniroyal Elec) | 1206W4F1002T5E |
51+
| Schmitt Trigger | 1 | HTC Korea TAEJIN Tech | 74HC14D |
52+
| Reset Button | 1 | Omron | B3FS-1000P |
53+
| Passive Speaker/Buzzer | 1 | XHXDZ | HC9042-16 |

case/waku-ctl-case.stl

9.37 MB
Binary file not shown.

data/all-jquery-deps.min.js

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)