summary refs log tree commit diff
path: root/modules/electronics.nix
diff options
context:
space:
mode:
authorMel <mel@rnrd.eu>2025-06-05 03:43:02 +0200
committerMel <mel@rnrd.eu>2025-06-05 03:43:02 +0200
commit1b6875c312bf5a0a2444b8c086a7d12d087511eb (patch)
tree160739c5fb7726faf4e2a7ed5242160eb037b5a2 /modules/electronics.nix
parent182aa5ecdc5c6583ce9b44c5a13432bb30409fc8 (diff)
downloadminerals-1b6875c312bf5a0a2444b8c086a7d12d087511eb.tar.zst
minerals-1b6875c312bf5a0a2444b8c086a7d12d087511eb.zip
Add general tooling for dealing with hardware and electronics
Signed-off-by: Mel <mel@rnrd.eu>
Diffstat (limited to 'modules/electronics.nix')
-rw-r--r--modules/electronics.nix60
1 files changed, 60 insertions, 0 deletions
diff --git a/modules/electronics.nix b/modules/electronics.nix
new file mode 100644
index 0000000..9b154b1
--- /dev/null
+++ b/modules/electronics.nix
@@ -0,0 +1,60 @@
+{ pkgs, unstablePkgs, ... }:
+
+let
+  inherit (pkgs) esp-idf-full;
+  inherit (unstablePkgs)
+    freecad
+    kicad
+    qucs-s
+    ngspice
+    librepcb
+    yosys
+    icestorm
+    arduino-cli
+    arduino-ide
+    platformio
+    avrdude
+    openocd
+    ;
+
+  hantek = unstablePkgs.openhantek6022;
+  simulide = unstablePkgs.simulide_1_2_0;
+  nextpnr = unstablePkgs.nextpnrWithGui;
+in
+{
+  # these packages include udev rules for access to their
+  # respective hardware devices.
+  services.udev.packages = [
+    hantek
+    platformio
+    openocd
+  ];
+
+  environment.systemPackages = [
+    # hardware tool support
+    hantek
+
+    # the spice of life!
+    qucs-s
+    ngspice
+    simulide
+    librepcb
+
+    # mostly bearable non-commercial cad software
+    freecad
+    kicad
+
+    # fpga workings
+    nextpnr
+    yosys
+    icestorm
+
+    # platform development tools and frameworks
+    arduino-cli
+    arduino-ide
+    platformio
+    esp-idf-full
+    avrdude
+    openocd
+  ];
+}