Single Phase Cooling Tank controllers
Two Phase Cooling Tank controllers
2 Phase Tank
Mark's PLC and Single Phase assignments - Most effort is setup PLC controllers for prototype of single-phase cooling tanks. Display of multiple temp sensors, multiple pressure sensors, setup displays on Beckhoff visualizations and file logging.
Single phase tank testing
Crypto Miner monitoring display
TMG SBC controller overview
TMG SBC CryptoCore Assembly
Each of the numbered items in above TMG SBC Assembly is described in further detail below:
1. CZH-Labs Ultra-small RPi GPIO Terminal Block Breakout Board Module – This unit is used to connect to and facilitate communication with the CryptoCore LED strip. For more information see RPi Terminal Block Breakout Board Module.
2. Sequent Microsystems RTD Data Acquisition HAT – This unit receives data from various temperature sensor inputs distributed throughout the CryptoCore unit. For more information see RTD Data Acquisition HAT.
3. Sequent Microsystems Eight Relay HAT – This unit handles dry contact mechanisms on the CryptoCore system and sends the appropriate commands to the control unit. For more information see Eight Relay HAT.
4. Sequent Microsystems Industrial Automation HAT – This unit provides various electrical interfaces to communicate with sensors and digital I/O. For more information see Industrial Automation HAT
5. Sequent Microsystems Smart Fan HAT – This unit is the cooling solution used for the Raspberry Pi CPU, for more information see Smart Fan HAT.
6. Raspberry Pi 4 Model B with 4 GB Ram – This unit supplies the computing and storage requirements for the OTTOcontrol software stack. The operating system is Ubuntu Linux 20.04 which hosts several software components including services for NODE Red and Redis, programming logic for processing various I/O and the front-end software for the Human Machine Interface (HMI). For more information about the Raspberry PI 4 model B see Raspberry Pi 4.
In addition to the hardware ‘stack’ described above, you should have the following:
1. 24V power supply
2. 5V power supply
3. Float switch
4. 2 RTD probes
5. PDU Breaker to Miner power, with options to detect ON/OFF and power shut-off
6. LED light strip – 300 LEDs in a 15-meter string
7. 10” Touch Screen HDMI LCD Monitor
8. USB Thumb Drive (used for logging)
9. 32 GB (or more) MicroSD card – OS and application files
10. USB Keyboard – developer only
11. USB Mouse - developer only
12. MicroSD Card Reader – developer only
Mark’s Cryptocore responsibilities: back-end processing of sensors and power controls, prototype assembly and testing, research on VRRP and SNMP interfaces.
The basic implementation of the OTTOcontrol user interface and control system is a local server-based SPA (single page application), implemented in Node.JS and Express. A limited number of modals and routes are implemented. Node-RED is data harvesting tool for collecting data for the redis cache tool.
A modal (also called a modal window or lightbox) is a web page element that displays in front of and deactivates all other page content. To return to the main content, the user must engage with the modal by completing an action or by closing it.
Node-red – flow based cyclic processing of sensor/devices/data
Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
It provides a browser-based editor that makes it easy to wire together flows using the wide range of nodes in the palette that can be deployed to its runtime in a single-click.
Npm – node.js installer
Using npm effectively is a cornerstone of modern web development, no matter if it's exclusively with Node.js, as a package manager or build tool for the front-end, or even as a piece of workflows in other languages and on other platforms. Really understanding npm as a tool, understanding the core concepts, can be something that's difficult for a beginner - I spent many hours just trying to figure out small details that would seem minor or be taken for granted by others. As such, I've written up a basic and detailed guide for understanding npm, for those who are entirely new to Node.js, npm, and the surrounding ecosystem.
Node.js is a JavaScript runtime for server-side programming. It allows developers to create scalable backend functionality using JavaScript, a language many are already familiar with from browser-based web development.
MQTT – protocol for publisher/subscriber channels
To get our Raspberry Pi to support the MQTT protocol, we will be using a server software called Mosquitto. Eclipse Mosquitto is an open source (EPL/EDL licensed) message broker that implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. Mosquitto is lightweight and is suitable for use on all devices from low power single board computers to full servers. The MQTT protocol provides a lightweight method of carrying out messaging using a publish/subscribe model. This makes it suitable for Internet of Things messaging such as with low power sensors or mobile devices such as phones, embedded computers or microcontrollers. The Mosquitto project also provides a C library for implementing MQTT clients, and the very popular mosquitto_pub and mosquitto_sub command line MQTT clients.
Browser tools – source inspectors (inspect elements)
You might be familiar with the classic “view page source” trick, which displays the raw HTML of a page in the browser window. But, there’s a better way to do your detective work: The inspect element feature lets us view and even modify any website’s front-end, which can be quite useful when building a website or learning how websites work.
Redis – redis-cli
Redis is an open source (BSD licensed), in-memory data structure store used as a database, cache, message broker, and streaming engine. Redis provides data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes, and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions, and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
The redis-cli (Redis command line interface) is a terminal program used to send commands to and read replies from the Redis server. It has two main modes: an interactive REPL (Read Eval Print Loop) mode where the user types Redis commands and receives replies, and a command mode where redis-cli is executed with additional arguments and the reply is printed to the standard output.
In interactive mode, redis-cli has basic line editing capabilities to provide a familiar typing experience.
There are several options you can use to launch the program in special modes. You can simulate a replica and print the replication stream it receives from the primary, check the latency of a Redis server and display statistics, or request ASCII-art spectrogram of latency samples and frequencies, among many other things.
Vue.js – Express.js server
In the express app in the routes folder there are HTTP files that document the routes in that folder. You can download an extension in VScode called "REST CLIENT" for that
for Vue its vue devtools which is a chrome extensions.
Figma - Web page design
RRD-tool – round-robin database tool – collecting time-series data for charting (after v1.0)