jeol-t330a/succbone/succd
hmelder d8a467a0c4
All checks were successful
/ test (push) Successful in 11s
/ test (pull_request) Successful in 10s
succd: Split scope lock into multiple blocks
We noticed huge load spikes with the latest changes.  This was caused
by the modbus goroutine blocking the entire daemon for long periods of
time while doing its data transfer.

Fix this by only holding the lock while performing data accesses.
2024-11-10 05:45:58 +01:00
..
.gitignore More succd into succbone subdirectory 2024-09-21 23:19:55 +02:00
adc.go More succd into succbone subdirectory 2024-09-21 23:19:55 +02:00
ci.sh succd: add ci, tests 2024-09-28 16:09:07 +02:00
go.mod Add modbus integration 2024-11-10 01:59:09 +01:00
go.sum Add modbus integration 2024-11-10 01:59:09 +01:00
gpio.go succd: implement rp/dp/vent/pumpdown control 2024-09-25 23:38:43 +02:00
http.go succd: Export temperature values to prometheus 2024-11-10 02:04:31 +01:00
index.html succd: Render temperature unit in template as well 2024-11-10 02:08:05 +01:00
main.go succd: Migrate to KEC1 MODBUS relay board 2024-11-10 05:11:48 +01:00
modbus.go succd: Split scope lock into multiple blocks 2024-11-10 05:45:58 +01:00
process.go succd: Migrate to KEC1 MODBUS relay board 2024-11-10 05:11:48 +01:00
process_blocks.go succd: Add hysteresis feature to thresholdOutput blocks 2024-10-04 23:30:28 +02:00
process_blocks_test.go succd: Add hysteresis feature to thresholdOutput blocks 2024-10-04 23:30:28 +02:00
process_controller.go succd: run at 100Hz, monitor load and jitter 2024-09-28 14:27:43 +02:00
README.md succd: add info on how to run tests 2024-09-28 16:13:10 +02:00
scientific.go succd: log pressures in error messages 2024-09-28 09:46:18 +02:00
succd.png succd: add logo 2024-09-27 02:12:38 +02:00
succd.service More succd into succbone subdirectory 2024-09-21 23:19:55 +02:00
succd.svg succd: add logo 2024-09-27 02:12:38 +02:00

succd

A little daemon for monitoring the SEM. This is a temporary solution that runs on a BeagleBone Enhanced (succbone.lab) and SHOULD be replaced with a proper PLC/SCADA system and general process control in the future.

Features:

  1. Monitors the state of the Pirani gauge via the BBE's builtin ADC.
  2. Allows enabling/disabling the diffusion/roughing pumps (builtin controller always keeps them enabled).
  3. Allows for simulating vent/pumpdown button presses.

Pins

P9 pin number Relay number Relay board / channel number GPIO number Function
27 -KFA1 1 / 4 115 Roughing Pump
23 -KFA2 1 / 3 49 Diffusion Pump
n/c -KFA3 (broken) 1 / 2 n/c
12 -KFA4 1 / 1 60 Vent Button
15 -KFA5 2 / 4 48 Pump Down Button
11 -KFA6 2 / 3 30 Rough Vacuum Out
42 -KFA7 2 / 2 7 High Vacuum Out
n/c -KFA8 2 / 1 n/c

Accessing at the lab

Go to succbone.lab.fa-fo.de.

Known issues

Sometimes the websocket doesn't connect. Refreshing the page a few times should fix it.

Running locally

$ ./ci.sh # run tests
$ go run . -fake

Then point your browser to localhost:8080

Deploying on the succbone

$ ssh root@succbone systemctl stop succd
$ GOARCH=arm go build .
$ scp succd root@succbone:/usr/bin/succd
$ ssh root@succbone systemctl start succd