Added updated logo as a submodule. Slight edits. Added watermark for preliminary version.

This commit is contained in:
David Žaitlík 2022-07-25 22:33:11 +02:00
parent 8e89f794b2
commit 5df130255a
8 changed files with 30 additions and 23 deletions

3
.gitmodules vendored
View File

@ -19,3 +19,6 @@
[submodule "fw/Libs/sps30"] [submodule "fw/Libs/sps30"]
path = fw/Libs/sps30 path = fw/Libs/sps30
url = gitea@veleslabs.org:veles_labs/sps30.git url = gitea@veleslabs.org:veles_labs/sps30.git
[submodule "Documentation/Datasheet/fig/logo"]
path = Documentation/Datasheet/fig/logo
url = gitea@veleslabs.org:veles_labs/logos.git

View File

@ -9,7 +9,7 @@
\BOOKMARK [2][-]{subsection.2.1}{\376\377\000P\000h\000y\000s\000i\000c\000a\000l\000\040\000L\000a\000y\000e\000r\000\040\000-\000\040\000R\000S\0004\0008\0005}{section.2}% 9 \BOOKMARK [2][-]{subsection.2.1}{\376\377\000P\000h\000y\000s\000i\000c\000a\000l\000\040\000L\000a\000y\000e\000r\000\040\000-\000\040\000R\000S\0004\0008\0005}{section.2}% 9
\BOOKMARK [2][-]{subsection.2.2}{\376\377\000D\000a\000t\000a\000\040\000L\000i\000n\000k\000\040\000L\000a\000y\000e\000r\000\040\000-\000\040\000M\000o\000d\000b\000u\000s\000\040\000R\000T\000U}{section.2}% 10 \BOOKMARK [2][-]{subsection.2.2}{\376\377\000D\000a\000t\000a\000\040\000L\000i\000n\000k\000\040\000L\000a\000y\000e\000r\000\040\000-\000\040\000M\000o\000d\000b\000u\000s\000\040\000R\000T\000U}{section.2}% 10
\BOOKMARK [3][-]{subsubsection.2.2.1}{\376\377\000M\000o\000d\000b\000u\000s\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000\040\000s\000p\000a\000c\000e}{subsection.2.2}% 11 \BOOKMARK [3][-]{subsubsection.2.2.1}{\376\377\000M\000o\000d\000b\000u\000s\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000\040\000s\000p\000a\000c\000e}{subsection.2.2}% 11
\BOOKMARK [2][-]{subsection.2.3}{\376\377\000I\000A\000Q\000S\000W\000-\0000\0001\000\040\000M\000o\000d\000b\000u\000s\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000s}{section.2}% 12 \BOOKMARK [2][-]{subsection.2.3}{\376\377\000I\000A\000Q\0000\0001\000\040\000M\000o\000d\000b\000u\000s\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000s}{section.2}% 12
\BOOKMARK [3][-]{subsubsection.2.3.1}{\376\377\000I\000n\000p\000u\000t\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000s}{subsection.2.3}% 13 \BOOKMARK [3][-]{subsubsection.2.3.1}{\376\377\000I\000n\000p\000u\000t\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000s}{subsection.2.3}% 13
\BOOKMARK [3][-]{subsubsection.2.3.2}{\376\377\000H\000o\000l\000d\000i\000n\000g\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000s}{subsection.2.3}% 14 \BOOKMARK [3][-]{subsubsection.2.3.2}{\376\377\000H\000o\000l\000d\000i\000n\000g\000\040\000r\000e\000g\000i\000s\000t\000e\000r\000s}{subsection.2.3}% 14
\BOOKMARK [1][-]{section.3}{\376\377\000M\000e\000c\000h\000a\000n\000i\000c\000a\000l\000\040\000D\000i\000m\000e\000s\000i\000o\000n\000s}{}% 15 \BOOKMARK [1][-]{section.3}{\376\377\000M\000e\000c\000h\000a\000n\000i\000c\000a\000l\000\040\000D\000i\000m\000e\000s\000i\000o\000n\000s}{}% 15

View File

@ -10,13 +10,18 @@
\usepackage[table]{xcolor} \usepackage[table]{xcolor}
\usepackage{hyperref} % for internal section links \usepackage{hyperref} % for internal section links
% ONLY FOR DRAFT
\usepackage{draftwatermark}
\SetWatermarkText{PRELIMINARY}
\SetWatermarkScale{3}
% ONLY FOR TEMPLATE % ONLY FOR TEMPLATE
\usepackage{blindtext} \usepackage{blindtext}
% %
% Sensor name definition % Sensor name definition
% %
\newcommand{\sensor}{IAQSW-01} \newcommand{\sensor}{IAQ01}
\pagestyle{fancy} \pagestyle{fancy}
\fancyhf{} \fancyhf{}
@ -25,7 +30,7 @@
%\fancyfoot[LE,LO]{\leftmark} %\fancyfoot[LE,LO]{\leftmark}
%\fancyfoot[RE,RO]{\thepage} %\fancyfoot[RE,RO]{\thepage}
\fancyhead[LO]{\includegraphics[scale=0.075]{./fig/VelesLabsLogo.png}} \fancyhead[LO]{\includegraphics[height=1.0cm]{./fig/logo/PNGs/Long_Logo_One_Line_Text/veles_labs_logo_small_letters_transparent_600x185.png}}
\fancyhead[RO]{\sensor{}\\DATASHEET v. 1.0} \fancyhead[RO]{\sensor{}\\DATASHEET v. 1.0}
\fancyfoot[LO]{\leftmark} \fancyfoot[LO]{\leftmark}
\fancyfoot[RO]{\thepage} \fancyfoot[RO]{\thepage}
@ -56,15 +61,15 @@
\end{itemize} \end{itemize}
\vfill \vfill
\section*{Description} \section*{Description}
\sensor{} is a wired indoor air quality sensor measuring temperature, relative humidity, carbon dioxide and volatile organic compounds. Communication over RS-485 using Modbus RTU protocol makes it easy to interface with the sensor using PLC or any PC with RS-485 to USB converter. Open-source Python libraries are available to ease sensor configuration and readout using PC and embedded computers (e.g. Raspberry Pi).\\ \sensor{} is a wired indoor air quality sensor measuring temperature, relative humidity, carbon dioxide, and volatile organic compounds. Communication over RS-485 using Modbus RTU protocol makes it easy to interface with the sensor using PLC or any PC with RS-485 to USB converter. Open-source Python libraries are available to ease sensor configuration and readout using PC and embedded computers (e.g. Raspberry Pi).\\
\\ \\
On-board RGB LED enables user to quickly assess air quality with single glance. Two quality-to-color schemes are available: continuous color change and tri-state (semaphore) mode. Thresholds for color change are user-configurable.\\ On-board RGB LED enables the user to quickly assess air quality with a single glance. Two quality-to-color schemes are available: continuous color change and tri-state (semaphore) mode. The thresholds for color change are user-configurable.\\
\\ \\
Wide input voltage range makes it possible to integrate sensor to many different systems, ranging from house-wide 12V bus to 5V USB connected to local computer.\\ A wide input voltage range makes it possible to integrate the sensor with many different systems, ranging from house-wide 12V bus to 5V USB connected to a local computer.\\
\\ \\
Extended version of this sensor \sensor{}-PM adds particulate matter (dust) measurement option.\\ The extended version of this sensor \sensor{}-PM adds the option of particulate matter (dust) measurement.\\
\\ \\
Fully open-source ecosystem: sensor hardware, case, firmware and connected Python libraries are open-sourced under permissive licence.\\ Fully open-source ecosystem: sensor hardware, case, firmware, and connected Python libraries are open-sourced under permissive licensing.\\
%\\ %\\
%Can be used in many applications such as monitoring of home and office spaces, ventilation control or for smart greenhouse applications. %Can be used in many applications such as monitoring of home and office spaces, ventilation control or for smart greenhouse applications.
\end{multicols*} \end{multicols*}
@ -140,7 +145,7 @@ Stop Bits & 1 \\ \hli
\subsection{Connectors Pinout} \subsection{Connectors Pinout}
\subsubsection{Main Connector Pinout} \subsubsection{Main Connector Pinout}
The main connector is Sullins Connector Solutions SWR204-NRTN-D02-RA-GA connector. The matching connector for the cable is SWH204-NULN-D02-UU-WH with SWT204-UPTN-S01-UU-UU crimping pins.\\ The main connector is the Sullins Connector Solutions SWR204-NRTN-D02-RA-GA connector. The matching connector for the cable is SWH204-NULN-D02-UU-WH with SWT204-UPTN-S01-UU-UU crimping pins.\\
The pinout can be seen in figure \ref{fig:connector_pinout} and table \ref{tab:connector_pinout}. The pinout can be seen in figure \ref{fig:connector_pinout} and table \ref{tab:connector_pinout}.
\begin{figure}[h] \begin{figure}[h]
\begin{minipage}[c]{0.5\linewidth} \begin{minipage}[c]{0.5\linewidth}
@ -167,7 +172,7 @@ The pinout can be seen in figure \ref{fig:connector_pinout} and table \ref{tab:c
\end{figure} \end{figure}
\subsubsection{Programming Connector Pinout} \subsubsection{Programming Connector Pinout}
The sensor can be programmed through Serial Wire Debug (SWD) interface using an ST-Link. ST-Link can be connected to the sensor using pads for spring-loaded pins in the bottom layer of the PCB. The sensor can be programmed through the Serial Wire Debug (SWD) interface using an ST-Link. ST-Link can be connected to the sensor using pads for spring-loaded pins in the bottom layer of the PCB.
The pinout can be seen in table \ref{tab:swd_connector_pinout}. The first pin of the connector is marked with a square pad. The pinout can be seen in table \ref{tab:swd_connector_pinout}. The first pin of the connector is marked with a square pad.
\begin{table}[h] \begin{table}[h]
\scriptsize \scriptsize
@ -187,22 +192,20 @@ The pinout can be seen in table \ref{tab:swd_connector_pinout}. The first pin of
\section{Communication Specification} \section{Communication Specification}
For physical layer RS-485 is used. This enables communication to be robust and resistant to EMI (electro-magnetic interference). On top of physical layer Modbus RTU is used as a data link layer. This protocol is widely supported by number of PLCs and other devices. To interface with PC (or any computer with USB port) USB to RS485 converter may be used in conjunction with Veles Sensors python library. For the physical layer, RS-485 is used. This allows the communication to be robust and resistant to EMI (electro-magnetic interference). On top of the physical layer, Modbus RTU is used as a data link layer. This protocol is widely supported by the number of PLCs and other devices. To interface with a PC (or any computer with a USB port), a USB to RS485 converter may be used in conjunction with the Veles Sensors python library.
\subsection{Physical Layer - RS485} \subsection{Physical Layer - RS485}
RS-485 is a full-duplex serial bus ideally suited for low-speed, noise-resistant communication over long distances (up to 1200 m, more if repeaters are used). Linear bus topology is preferable over star or ring configurations. To prevent signal reflections, each sensor is equipped with 120 $\Omega$ termination resistor, therefore optimal cable for connecting sensors to each other and to master node is twisted pair cable with 120 $\Omega$ characteristic impedance. RS-485 is a full-duplex serial bus, ideally suited for low-speed, noise-resistant communication over long distances (up to 1200 m - more if repeaters are used). Linear bus topology is preferable over star or ring configurations. To prevent signal reflections, each sensor is equipped with a 120 $\Omega$ termination resistor. Therefore, the optimal cable for connecting sensors to each other and to the master node is a twisted pair cable with 120 $\Omega$ characteristic impedance.
\subsection{Data Link Layer - Modbus RTU} \subsection{Data Link Layer - Modbus RTU}
Modbus is well-tested, openly-published and royalty free data communications protocol. Developed for industrial applications, it aims to be simple and robust. It is a client/server (master/slave) type protocol. Maximum number of client nodes on a Modbus bus is 247. Modbus is a well-tested, openly-published, and royalty-free data communications protocol. Developed for industrial applications, it aims to be simple and robust. It is a client/server (master/slave) type protocol. The maximum number of client nodes on a Modbus bus is 247.
Limitation of Modbus-based buses is that there is no arbitration in case of address conflict. This means that nodes should be either added one by one or node addresses should be configured beforehand. A limitation of Modbus-based buses is that there is no arbitration in case of address conflict. This means that nodes should be either added one by one or node addresses should be configured beforehand.
Address 0 can be used as a broadcast message (e.g. instructing all sensors to turn off LED). No slave response is generated. Address 0 can be used as a broadcast message (e.g. instructing all sensors to turn off LED). No slave response is generated.
(TODO note: random address assignment command?)
\subsubsection{Modbus register space} \subsubsection{Modbus register space}
Modbus supports four types of registers: Modbus supports four types of registers:
@ -263,11 +266,11 @@ Input registers contain measured values. They are read-only and 16-bit in size.
\paragraph{Note 1} \paragraph{Note 1}
\label{inputReg:note1} \label{inputReg:note1}
VOC index has range 1-500 with 100 being the average. After sensor start-up VOC index is 0 until sufficient amount of data has been measured. The VOC index has a range of 1-500 with 100 being the average. After sensor start-up, the VOC index is 0 until a sufficient amount of data has been measured.
\subsubsection{Holding registers} \subsubsection{Holding registers}
Holding registers can be written to by master node. Sensor \sensor{} offers following configuration registers: The holding registers can be written to by the master node. Sensor \sensor{} offers the following configuration registers:
\begin{table}[h] \begin{table}[h]
\scriptsize \scriptsize
@ -291,19 +294,19 @@ Holding registers can be written to by master node. Sensor \sensor{} offers foll
\paragraph{Note 1} \paragraph{Note 1}
\label{holdingReg:note1} \label{holdingReg:note1}
Setting LED smooth register to 1 will turn on LED color interpolation, meaning LED will have color in continuous spectrum from green to red according to $\mathrm{CO_2}$ level. Setting this register to 0 will turn off interpolation and set LED to semaphore (tri-state) mode. Depending on $\mathrm{CO_2}$ level LED color will then be either green, yellow or red. Setting LED smooth register to 1 will turn on LED color interpolation, meaning the LED will have color in a continuous spectrum from green to red according to the $\mathrm{CO_2}$ level. Setting this register to 0 will turn off interpolation and set the LED to semaphore (tri-state) mode. Depending on $\mathrm{CO_2}$ level, the LED color will then be either green, yellow, or red.
\paragraph{Note 2} \paragraph{Note 2}
\label{holdingReg:note2} \label{holdingReg:note2}
Registers $\mathrm{CO_2}$ alert limit 1 and 2 set threshold for LED color change (see \hyperref[holdingReg:note1]{Note 1}). Limit 1 is threshold between green and yellow color, limit 2 is threshold between yellow and red color. Registers $\mathrm{CO_2}$ alert the limit 1 and 2 set thresholds for LED color change (see \hyperref[holdingReg:note1]{Note 1}). Limit 1 is the threshold between green and yellow color; limit 2 is the threshold between yellow and red color.
\paragraph{Note 3} \paragraph{Note 3}
\label{holdingReg:note3} \label{holdingReg:note3}
SCD41 is $\mathrm{CO_2}$ sensing device used in \sensor{} sensor. It is also able to measure temperature, however it may be subject to offset due to internal heating of SCD41. This register allows user to compensate this offset. SCD41 is the $\mathrm{CO_2}$ sensing device used in the \sensor{} sensor. It is also able to measure temperature, however it may be subject to offset due to internal heating of SCD41. This register allows the user to compensate for this offset.
\paragraph{Note 4} \paragraph{Note 4}
\label{holdingReg:note4} \label{holdingReg:note4}
Device Modbus address may be changed by writing to this register. Allowed values are in range from 1 to 247. Device will start using new address immediately and cease to respond at previous address. Reset is not needed. It is the responsibility of a user to prevent address collisions on a bus. Device Modbus address may be changed by writing to this register. The allowed values are in the range of 1 to 247. The device will start using a new address immediately and cease to respond at the previous address. Reset is not needed. It is the responsibility of the user to prevent address collisions on a bus.
\paragraph{Note 5} \paragraph{Note 5}
\label{holdingReg:note5} \label{holdingReg:note5}
@ -311,7 +314,7 @@ Modbus baudrate in bits/s. May be one of: 4800, 9600, 14400, 19200, 28800, 38400
\paragraph{Note 6} \paragraph{Note 6}
\label{holdingReg:note6} \label{holdingReg:note6}
Writing magical constant 0xABCD to this device will instruct device to soft-reset. Writing the magic constant 0xABCD to this device will instruct the device to soft-reset.
\vfill \vfill
\section{Mechanical Dimesions} \section{Mechanical Dimesions}
\includegraphics[scale=0.75]{./fig/IAQ_Sensor_Enclosure-Enclosure_TOP.pdf} \includegraphics[scale=0.75]{./fig/IAQ_Sensor_Enclosure-Enclosure_TOP.pdf}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

@ -0,0 +1 @@
Subproject commit 553e027a3574aa762afb7db5116d840b25be085b

Binary file not shown.