Compare commits

..

3 Commits

Author SHA1 Message Date
Jan Mrna
9edb2c5538 Added .veles_metadata 2022-07-01 20:59:27 +02:00
David Žaitlík
4f88ca7ebe Tweaked the size a bit. 2021-10-11 14:27:25 +02:00
David Žaitlík
b097ad4910 Created solderpaste stencil holder. 2021-10-10 12:22:21 +02:00
146 changed files with 434574 additions and 325522 deletions

17
.gitignore vendored
View File

@ -37,20 +37,3 @@ fp-info-cache
fw/Debug
fw/.settings
*.zip
tests/__pycache__/
# FreeCAD ignores
*.FCStd1
# TeX(maker) ignores
*.aux
*.lof
*.log
*.lot
*.synctex.gz
*.gz
*.toc

21
.gitmodules vendored
View File

@ -1,21 +0,0 @@
[submodule "fw/Libs/sht4x"]
path = fw/Libs/sht4x
url = https://gitea.veleslabs.org/veles_labs/sht4x.git
[submodule "fw/Libs/crc8"]
path = fw/Libs/crc8
url = https://gitea.veleslabs.org/veles_labs/crc8.git
[submodule "fw/Libs/sgp40"]
path = fw/Libs/sgp40
url = https://gitea.veleslabs.org/veles_labs/sgp40.git
[submodule "fw/Libs/scd4x"]
path = fw/Libs/scd4x
url = https://gitea.veleslabs.org/veles_labs/scd4x.git
[submodule "fw/Libs/modbus"]
path = fw/Libs/modbus
url = https://gitea.veleslabs.org/veles_labs/modbus.git
[submodule "fw/Libs/rgbled"]
path = fw/Libs/rgbled
url = https://gitea.veleslabs.org/veles_labs/rgbled.git
[submodule "fw/Libs/sps30"]
path = fw/Libs/sps30
url = https://gitea.veleslabs.org/veles_labs/sps30.git

View File

@ -1,347 +0,0 @@
\documentclass[12pt,oneside,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{fancyhdr}
\usepackage{graphics}
\usepackage{graphicx}
\usepackage{geometry}
\usepackage{multicol}
\usepackage{capt-of}
\usepackage[table]{xcolor}
\usepackage{pdfpages}
\usepackage{hyperref} % for internal section links
% ONLY FOR DRAFT
\usepackage{draftwatermark}
\SetWatermarkText{PRELIMINARY}
\SetWatermarkScale{3}
% ONLY FOR TEMPLATE
\usepackage{blindtext}
%
% Sensor name definition
%
\newcommand{\sensor}{IAQ01}
\pagestyle{fancy}
\fancyhf{}
%\fancyhead[LE,LO]{\includegraphics[scale=0.075]{./fig/VelesLabsLogo.png}}
%\fancyhead[RE,RO]{\sensor{}\\DATASHEET v. 1.0}
%\fancyfoot[LE,LO]{\leftmark}
%\fancyfoot[RE,RO]{\thepage}
\fancyhead[LO]{\includegraphics[height=1.0cm]{./fig/veleslabs_logo.png}}
\fancyhead[RO]{\sensor{}\\DATASHEET v. 1.0}
\fancyfoot[LO]{\leftmark}
\fancyfoot[RO]{\thepage}
\renewcommand{\headrulewidth}{2pt}
\renewcommand{\footrulewidth}{2pt}
\setlength{\headheight}{35pt}
\begin{document}
% TITLE PAGE
\begin{multicols*}{2}
\begin{center}
\includegraphics[width=0.45\textwidth]{./fig/iaq_wired_sensor.png}
\end{center}
\section*{Features}
\begin{itemize}
\setlength\itemsep{0cm}
\item Measures all important indoor air quality values: $\mathrm{CO_2}$, T, RH, VOC
\item Communicates via Modbus RTU (RS-485)
\item Wide input voltage range 5 - 30V
\item Indicates $\mathrm{CO_2}$ (carbon dioxide) level using LED for quick air quality assesment
\item Easy to setup using Raspberry Pi and open-source Veles Sensors python library
\item Carbon dioxide measurement range 0 - 40000 ppm
\item Temperature range -40 - 125 °C
\item Relative humidity range 0 - 100 \%
\item VOC (volatile organic compounds) index range 1 - 500 VOC index points
\item Fully opensource
\end{itemize}
\vfill
\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).\\
\\
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.\\
\\
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.\\
\\
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 licensing.\\
%\\
%Can be used in many applications such as monitoring of home and office spaces, ventilation control or for smart greenhouse applications.
\end{multicols*}
\vfill
\pagebreak
\tableofcontents
\listoffigures
\listoftables
\pagebreak
\section{Specifications}
\subsection{Electrical Specifications}
\begin{table}[h]
\scriptsize
\begin{tabular}{|p{5cm}|p{2cm}|p{1cm}|p{1cm}|p{1cm}|p{1cm}|}
\hline
\rowcolor{lightgray}\textbf{Parameter} & \textbf{Symbol} & \textbf{Min.} & \textbf{Typ.} & \textbf{Max.} & \textbf{Unit} \\ \hline
Input voltage & $\mathrm{V_{DD}}$ & 5 & 12 & 24 & V \\ \hline
Average supply current & $\mathrm{I_{DD}}$ & & & 50 & mA \\ \hline
RS485 Single-Ended Output High & $\mathrm{V_{OH}}$ & 2.2 & & & V \\ \hline
RS485 Single-Ended Output Low & $\mathrm{V_{OL}}$ & & & 0.8 & V \\ \hline
RS485 Differential Output & $\mathrm{V_{OD}}$ & 2.0 & & & V \\ \hline
RS485 Receiver Differential Threshold Voltage & $\mathrm{V_{TH}}$ & -200 & -105 & -10 & mV \\ \hline
\end{tabular}
\normalsize
\caption{Electrical Specifications}
\label{tab:specifications_electrical}
\end{table}
\vfill
\subsection{Sensing Specifications}
\begin{table}[h]
\scriptsize
\begin{tabular}{|p{5cm}|p{3cm}|p{4.25cm}|}
\hline
\rowcolor{lightgray}\textbf{Parameter} & \textbf{Conditions} & \textbf{Value} \\ \hline
CO$_2$ measurement range & \multicolumn{1}{c|}{-} & 0 $\div$ 40000 ppm \\ \hline
CO$_2$ measurement accuracy & 400 ppm 2000 ppm & ($\pm$50 ppm + 5\% of reading) \\ \hline
CO$_2$ measurement repeatability & Typical & $\pm$10 ppm \\ \hline
T measurement range & \multicolumn{1}{c|}{-} & 40 $\div$ +125 $^{\circ}$C \\ \hline
T measurement accuracy & Typical & $\pm$0.2 $^{\circ}$C \\ \hline
T measurement repeatability & Typical & $\pm$0.2 $^{\circ}$C \\ \hline
RH measurement range & \multicolumn{1}{c|}{-} & 0 $\div$ 100 \%RH \\ \hline
RH measurement accuracy & Typical & $\pm$1.8 \%RH \\ \hline
RH measurement repeatability & \multicolumn{1}{c|}{-} & $\pm$0.08 \%RH \\ \hline
\end{tabular}
\normalsize
\caption{Sensing Specifications}
\label{tab:specifications_sensing}
\end{table}
\vfill
\subsection{Interface Specifications}
\begin{table}[h]
\scriptsize
\begin{tabular}{|p{3.75cm}|p{9cm}|}
\hline
\rowcolor{lightgray}\textbf{Parameter} & \textbf{Value} \\ \hline
Used Protocol & Modbus RTU \\ \hline
Default Baudrate & 19200 Baud \\ \hline
Usable Baudrates & 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 119200 Baud \\ \hline
Data Bytes & 8 \\ \hline
Parity & Even \\ \hline
Stop Bits & 1 \\ \hline
\end{tabular}
\normalsize
\caption{Sensing Specifications}
\label{tab:specifications_interface}
\end{table}
\vfill
\pagebreak
\subsection{Connectors Pinout}
\subsubsection{Main Connector Pinout}
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}.
\begin{figure}[h]
\begin{minipage}[c]{0.5\linewidth}
\centering
\includegraphics[width=0.5\textwidth]{./fig/connector_pins.png}
\caption{Main Connector Pinout}
\label{fig:connector_pinout}
\end{minipage}
\begin{minipage}[c]{0.5\linewidth}
\centering
\scriptsize
\begin{tabular}{|p{0.75cm}|p{1.25cm}|p{3cm}|}
\hline
\rowcolor{lightgray}\textbf{Pin} & \textbf{Name} & \textbf{Description} \\ \hline
1 & VDD & Supply Voltage \\ \hline
2 & A & RS485 A+ \\ \hline
3 & B & RS485 B- \\ \hline
4 & GND & Ground \\ \hline
\end{tabular}
\captionof{table}{Main Connector Pinout}
\label{tab:connector_pinout}
\end{minipage}
\end{figure}
\subsubsection{Programming Connector Pinout}
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.
\begin{table}[h]
\scriptsize
\centering
\begin{tabular}{|p{0.75cm}|p{1.55cm}|p{3cm}|}
\hline
\rowcolor{lightgray} \textbf{Pin} & \textbf{Name} & \textbf{Description} \\ \hline
1 & 3V3 & 3.3V Sensing \\ \hline
2 & GND & Ground \\ \hline
3 & SWDIO & SWD Data \\ \hline
4 & SWCLK & SWD Clock \\ \hline
5 & NRST & MCU Reset \\ \hline
\end{tabular}
\caption{Programming Connector Pinout}
\label{tab:swd_connector_pinout}
\end{table}
\section{Communication Specification}
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}
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}
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.
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.
\subsubsection{Modbus register space}
Modbus supports four types of registers:
\begin{table}[h]
\scriptsize
\centering
\begin{tabular}{|p{3cm}|p{3cm}|p{3cm}|p{3cm}|}
\hline
\rowcolor{lightgray} \textbf{Object type} & \textbf{Access} & \textbf{Size} & \textbf{Address space} \\ \hline
Coil & read / write & 1 bit & 00001 - 09999 \\ \hline
Discrete input & read & 1 bit & 10001 - 19999 \\ \hline
Input register & read & 16 bits & 30001 - 39999 \\ \hline
Holding register & read / write & 16-bits & 40001 - 49999 \\ \hline
\end{tabular}
\caption{Modbus register space}
\label{tab:modbus_register_space}
\end{table}
\vfill
\pagebreak
\subsection{\sensor{} Modbus registers}
\subsubsection{Input registers}
Input registers contain measured values. They are read-only and 16-bit in size.
\begin{table}[h]
\scriptsize
\centering
\begin{tabular}{|p{4cm}|p{2.5cm}|p{2cm}|p{3.6cm}|}
\hline
\rowcolor{lightgray} \textbf{Register name} & \textbf{Register address} & \textbf{Unit} & \textbf{Note} \\ \hline
Serial Number HI & 30001 & - & \\ \hline
Serial Number LO & 30002 & - & \\ \hline
Temperature & 30003 & °C & \\ \hline
Temperature & 30004 & °F & \\ \hline
Relative humidity & 30005 & \% & \\ \hline
$\mathrm{CO_2}$ concentration & 30006 & ppm & \\ \hline
VOC index & 30007 & VOC index & see \hyperref[inputReg:note1]{Note 1} \\ \hline
VOC ticks & 30008 & raw VOC ticks & raw value from VOC sensor \\ \hline
PMC Mass 1.0 & 30009 & $\mu$g/m$^3$ & if connected \\ \hline
PMC Mass 2.5 & 30010 & $\mu$g/m$^3$ & if connected \\ \hline
PMC Mass 4.0 & 30011 & $\mu$g/m$^3$ & if connected \\ \hline
PMC Mass 10.0 & 30012 & $\mu$g/m$^3$ & if connected \\ \hline
PMC Number 0.5 & 30013 & \#/cm$^3$ & if connected \\ \hline
PMC Number 1.0 & 30014 & \#/cm$^3$ & if connected \\ \hline
PMC Number 2.5 & 30015 & \#/cm$^3$ & if connected \\ \hline
PMC Number 4.0 & 30016 & \#/cm$^3$ & if connected\\ \hline
PMC Number 10.0 & 30017 & \#/cm$^3$ & if connected \\ \hline
PMC Typical Particle Size & 30018 & nm & if connected \\ \hline
Temperature Readout Error & 30019 & - & see \hyperref[inputReg:note2]{Note 2}\\ \hline
RH Readout Error & 30020 & - & see \hyperref[inputReg:note2]{Note 2}\\ \hline
$\mathrm{CO_2}$ Readout Error & 30021 & - & see \hyperref[inputReg:note2]{Note 2}\\ \hline
VOC Readout Error & 30022 & - & see \hyperref[inputReg:note2]{Note 2}\\ \hline
PMC Readout Error & 30023 & - & see \hyperref[inputReg:note2]{Note 2}\\ \hline
\end{tabular}
\caption{Modbus input registers for \sensor{}}
\label{tab:modbus_input_registers}
\end{table}
\paragraph{Note 1}
\label{inputReg:note1}
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.
\paragraph{Note 2}
\label{inputReg:note2}
The error codes are described in table \ref{tab:sensor_errors}.
\begin{table}[h]
\scriptsize
\centering
\begin{tabular}{|p{1cm}|p{6cm}|}
\hline
\rowcolor{lightgray} \textbf{Error Code} & \textbf{Error Description} \\ \hline
0 & OK \\ \hline
-1 & Communication with the sensor failed \\ \hline
-2 & Data CRC Check failed \\ \hline
\end{tabular}
\caption{Error codes of measured values }
\label{tab:sensor_errors}
\end{table}
\subsubsection{Holding registers}
The holding registers can be written to by the master node. Sensor \sensor{} offers the following configuration registers:
\begin{table}[h]
\scriptsize
\centering
\begin{tabular}{|p{4cm}|p{2cm}|p{6.5cm}|}
\hline
\rowcolor{lightgray} \textbf{Register name} & \textbf{Address} & \textbf{Note} \\ \hline
Device Modbus address & 40001 & see \hyperref[holdingReg:note2]{Note 4} \\ \hline
Modbus baudrate & 40002 & see \hyperref[holdingReg:note2]{Note 5} \\ \hline
LED on & 40003 & set to 0 to turn off LED; set to 1 to turn LED on \\ \hline
LED brightness & 40004 & range from 0 (off) to 100 (full intensity) \\ \hline
LED smooth & 40005 & see \hyperref[holdingReg:note1]{Note 1} \\ \hline
$\mathrm{CO_2}$ alert limit 1 & 40006 & see \hyperref[holdingReg:note2]{Note 2} \\ \hline
$\mathrm{CO_2}$ alert limit 2 & 40007 & see \hyperref[holdingReg:note2]{Note 2} \\ \hline
$\mathrm{CO_2}$ temperature offset & 40008 & see \hyperref[holdingReg:note2]{Note 3} \\ \hline
Reset device & 49999 & see \hyperref[holdingReg:note2]{Note 6} \\ \hline
\end{tabular}
\caption{Modbus holding registers for \sensor{}}
\label{tab:modbus_holding_registers}
\end{table}
\paragraph{Note 1}
\label{holdingReg:note1}
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}
\label{holdingReg:note2}
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}
\label{holdingReg:note3}
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}
\label{holdingReg:note4}
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}
\label{holdingReg:note5}
Modbus baudrate in bits/s. May be one of: 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 115200. Please be aware that lower baudrates are more reliable for long distance communication.
\paragraph{Note 6}
\label{holdingReg:note6}
Writing the magic constant 0xABCD to this device will instruct the device to soft-reset.
\vfill
\pagebreak
\section{Mechanical Dimesions}
%\includepdf[scale=.7]{./fig/IAQ_Sensor_Enclosure-Enclosure_TOP.pdf}
\includegraphics[width=0.95\textwidth]{./fig/IAQ_Sensor_Enclosure-Enclosure_TOP.pdf}
\pagebreak
\section{Schematic}
\includegraphics[angle=90,origin=c,width=0.95\textwidth]{./../../PCB/Project_Outputs/Schematic/iaq_wired_sensor.pdf}
\end{document}

View File

@ -1,6 +0,0 @@
FILE=IAQ_Wired_Sensor_Datasheet
all:
texi2pdf $(FILE).tex
rm *aux *log *lof *lot *toc
mupdf $(FILE).pdf

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 537 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 672 KiB

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,70 +1,29 @@
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
%TF.CreationDate,2022-04-28T19:55:52+02:00*%
%TF.ProjectId,iaq_wired_sensor,6961715f-7769-4726-9564-5f73656e736f,1*%
%TF.GenerationSoftware,KiCad,Pcbnew,5.1.5+dfsg1-2build2*%
%TF.CreationDate,2021-09-23T19:28:15+02:00*%
%TF.ProjectId,iaq_wired_sensor,6961715f-7769-4726-9564-5f73656e736f,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Soldermask,Bot*%
%TF.FilePolarity,Negative*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-04-28 19:55:52*
G04 Created by KiCad (PCBNEW 5.1.5+dfsg1-2build2) date 2021-09-23 19:28:15*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%ADD10C,1.500000*%
%ADD11C,0.500000*%
%ADD12R,1.700000X1.700000*%
%ADD13O,1.700000X1.700000*%
%ADD14C,2.000000*%
%ADD10C,2.000000*%
%ADD11C,1.500000*%
%ADD12O,1.700000X1.700000*%
%ADD13R,1.700000X1.700000*%
G04 APERTURE END LIST*
D10*
%TO.C,J1*%
X99000000Y-115500000D03*
X99000000Y-113500000D03*
X101000000Y-113500000D03*
X101000000Y-115500000D03*
%TO.C,TP12*%
X95500000Y-116500000D03*
%TD*%
D11*
%TO.C,H3*%
X100000000Y-77500000D03*
X98000000Y-77500000D03*
X99000000Y-77500000D03*
X102000000Y-77500000D03*
X101000000Y-77500000D03*
%TO.C,TP3*%
X85000000Y-103500000D03*
%TD*%
%TO.C,H4*%
X100000000Y-122500000D03*
X99000000Y-122500000D03*
X102000000Y-122500000D03*
X101000000Y-122500000D03*
X98000000Y-122500000D03*
%TD*%
%TO.C,H5*%
X122500000Y-100000000D03*
X122500000Y-101000000D03*
X122500000Y-99000000D03*
X122500000Y-98000000D03*
X122500000Y-102000000D03*
%TD*%
%TO.C,H6*%
X77500000Y-102000000D03*
X77500000Y-98000000D03*
X77500000Y-99000000D03*
X77500000Y-101000000D03*
X77500000Y-100000000D03*
%TD*%
D12*
%TO.C,SWD0*%
X100000000Y-105080000D03*
D13*
X100000000Y-102540000D03*
X100000000Y-100000000D03*
X100000000Y-97460000D03*
X100000000Y-94920000D03*
%TD*%
D14*
%TO.C,TP9*%
X104000000Y-105000000D03*
%TO.C,TP2*%
X92500000Y-92500000D03*
%TD*%
%TO.C,TP11*%
X104500000Y-116500000D03*
@ -72,16 +31,42 @@ X104500000Y-116500000D03*
%TO.C,TP10*%
X96000000Y-87000000D03*
%TD*%
%TO.C,TP12*%
X95500000Y-116500000D03*
%TO.C,TP9*%
X104000000Y-105000000D03*
%TD*%
%TO.C,TP8*%
X91000000Y-118000000D03*
%TD*%
%TO.C,TP6*%
X98000000Y-111500000D03*
%TD*%
%TO.C,TP7*%
X102000000Y-111500000D03*
%TD*%
%TO.C,TP6*%
X98000000Y-111500000D03*
%TD*%
%TO.C,TP5*%
X85000000Y-96500000D03*
%TD*%
%TO.C,TP4*%
X85000000Y-100000000D03*
%TD*%
%TO.C,TP1*%
X88000000Y-92500000D03*
%TD*%
D11*
%TO.C,J1*%
X99000000Y-115750000D03*
X99000000Y-113750000D03*
X101000000Y-113750000D03*
X101000000Y-115750000D03*
%TD*%
D12*
%TO.C,SWD0*%
X100000000Y-97460000D03*
X100000000Y-102540000D03*
D13*
X100000000Y-105080000D03*
D12*
X100000000Y-100000000D03*
X100000000Y-94920000D03*
%TD*%
M02*

View File

@ -1,15 +1,14 @@
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
%TF.CreationDate,2022-04-28T19:55:52+02:00*%
%TF.ProjectId,iaq_wired_sensor,6961715f-7769-4726-9564-5f73656e736f,1*%
%TF.GenerationSoftware,KiCad,Pcbnew,5.1.5+dfsg1-2build2*%
%TF.CreationDate,2021-09-23T19:28:15+02:00*%
%TF.ProjectId,iaq_wired_sensor,6961715f-7769-4726-9564-5f73656e736f,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Paste,Bot*%
%TF.FilePolarity,Positive*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-04-28 19:55:52*
G04 Created by KiCad (PCBNEW 5.1.5+dfsg1-2build2) date 2021-09-23 19:28:15*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
G04 APERTURE END LIST*
M02*

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,172 +1,153 @@
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
%TF.CreationDate,2022-04-28T19:55:52+02:00*%
%TF.ProjectId,iaq_wired_sensor,6961715f-7769-4726-9564-5f73656e736f,1*%
%TF.GenerationSoftware,KiCad,Pcbnew,5.1.5+dfsg1-2build2*%
%TF.CreationDate,2021-09-23T19:28:15+02:00*%
%TF.ProjectId,iaq_wired_sensor,6961715f-7769-4726-9564-5f73656e736f,rev?*%
%TF.SameCoordinates,Original*%
%TF.FileFunction,Profile,NP*%
%FSLAX46Y46*%
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-04-28 19:55:52*
G04 Created by KiCad (PCBNEW 5.1.5+dfsg1-2build2) date 2021-09-23 19:28:15*
%MOMM*%
%LPD*%
G01*
G04 APERTURE LIST*
%TA.AperFunction,Profile*%
%ADD10C,0.050000*%
%TD*%
G04 APERTURE END LIST*
D10*
X111750000Y-85500000D02*
X118000000Y-85500000D01*
X120000000Y-89500000D02*
G75*
G03*
X118000000Y-89500000I-1000000J0D01*
G01*
X77500000Y-80000000D02*
X77500000Y-120000000D01*
X80000000Y-77500000D02*
G75*
G03*
X77500000Y-80000000I0J-2500000D01*
G01*
X82100000Y-80500000D02*
G75*
G03*
X82100000Y-80500000I-1600000J0D01*
G01*
X81000000Y-77500000D02*
X80000000Y-77500000D01*
X122500000Y-80000000D02*
G75*
G03*
X120000000Y-77500000I-2500000J0D01*
G01*
X121100000Y-80500000D02*
G75*
G03*
X121100000Y-80500000I-1600000J0D01*
G01*
X85000000Y-81500000D02*
X94000000Y-81500000D01*
X97000000Y-77500000D02*
X120000000Y-77500000D01*
X83500000Y-80000000D02*
G75*
G03*
X81000000Y-77500000I-2500000J0D01*
G01*
X97000000Y-77500000D02*
G75*
G03*
X95500000Y-79000000I0J-1500000D01*
G01*
X95500000Y-79000000D02*
X95500000Y-80000000D01*
X122500000Y-81000000D02*
X122500000Y-80000000D01*
X119000000Y-83500000D02*
X108000000Y-83500000D01*
X118000000Y-85500000D02*
G75*
G03*
X120000000Y-85500000I1000000J0D01*
G01*
X120000000Y-85500000D02*
X120000000Y-84500000D01*
X119000000Y-91500000D02*
G75*
G03*
X120000000Y-90500000I0J1000000D01*
G01*
X107000000Y-105000000D02*
G75*
G03*
X109000000Y-105000000I1000000J0D01*
G01*
X109000000Y-105000000D02*
X109000000Y-96500000D01*
X107000000Y-102000000D02*
X107000000Y-105000000D01*
X109000000Y-118500000D02*
G75*
G03*
X107000000Y-118500000I-1000000J0D01*
G01*
X109000000Y-122500000D02*
X109000000Y-118500000D01*
X107000000Y-118500000D02*
X107000000Y-122500000D01*
X109000000Y-122500000D02*
X120000000Y-122500000D01*
X110000000Y-95500000D02*
X117000000Y-95500000D01*
X117000000Y-95500000D02*
G75*
G03*
X118000000Y-94500000I0J1000000D01*
G01*
X118000000Y-92500000D02*
X118000000Y-94500000D01*
X110000000Y-95500000D02*
G75*
G03*
X109000000Y-96500000I0J-1000000D01*
G03X109000000Y-96500000I0J-1000000D01*
G01*
X120000000Y-84500000D02*
X118000000Y-94500000D02*
G75*
G03*
X119000000Y-83500000I-1000000J0D01*
G02X117000000Y-95500000I-1000000J0D01*
G01*
X82100000Y-119500000D02*
X118000000Y-92500000D02*
G75*
G03*
X82100000Y-119500000I-1600000J0D01*
G02X119000000Y-91500000I1000000J0D01*
G01*
X110000000Y-95500000D02*
X117000000Y-95500000D01*
X109000000Y-122500000D02*
X120000000Y-122500000D01*
X107000000Y-118500000D02*
X107000000Y-122500000D01*
X109000000Y-122500000D02*
X109000000Y-118500000D01*
X107000000Y-118500000D02*
G75*
G02X109000000Y-118500000I1000000J0D01*
G01*
X107000000Y-102000000D02*
X107000000Y-110000000D01*
X109000000Y-110000000D02*
X109000000Y-96500000D01*
X109000000Y-110000000D02*
G75*
G02X107000000Y-110000000I-1000000J0D01*
G01*
X118000000Y-89500000D02*
X111750000Y-89500000D01*
X120000000Y-90500000D02*
X120000000Y-89500000D01*
X111750000Y-89500000D02*
X111750000Y-85500000D01*
X80000000Y-122500000D02*
X107000000Y-122500000D01*
X120000000Y-90500000D02*
G75*
G02X119000000Y-91500000I-1000000J0D01*
G01*
X118000000Y-89500000D02*
G75*
G02X120000000Y-89500000I1000000J0D01*
G01*
X120000000Y-85500000D02*
G75*
G02X118000000Y-85500000I-1000000J0D01*
G01*
X120000000Y-85500000D02*
X121500000Y-85500000D01*
X120000000Y-83500000D02*
X108000000Y-83500000D01*
X122500000Y-81000000D02*
X122500000Y-80000000D01*
X122500000Y-81000000D02*
G75*
G02X120000000Y-83500000I-2500000J0D01*
G01*
X95500000Y-79000000D02*
X95500000Y-80000000D01*
X95500000Y-79000000D02*
G75*
G02X97000000Y-77500000I1500000J0D01*
G01*
X94000000Y-81500000D02*
G75*
G03*
X95500000Y-80000000I0J1500000D01*
G03X95500000Y-80000000I0J1500000D01*
G01*
X85000000Y-81500000D02*
G75*
G02X83500000Y-80000000I0J1500000D01*
G01*
X81000000Y-77500000D02*
G75*
G02X83500000Y-80000000I0J-2500000D01*
G01*
X121500000Y-85500000D02*
G75*
G02X122500000Y-86500000I0J-1000000D01*
G01*
X107000000Y-84500000D02*
G75*
G02X108000000Y-83500000I1000000J0D01*
G01*
X97000000Y-77500000D02*
X120000000Y-77500000D01*
X85000000Y-81500000D02*
X94000000Y-81500000D01*
X121100000Y-80500000D02*
G75*
G03X121100000Y-80500000I-1600000J0D01*
G01*
X121100000Y-119500000D02*
G75*
G03*
X121100000Y-119500000I-1600000J0D01*
G03X121100000Y-119500000I-1600000J0D01*
G01*
X82100000Y-119500000D02*
G75*
G03X82100000Y-119500000I-1600000J0D01*
G01*
X120000000Y-77500000D02*
G75*
G02X122500000Y-80000000I0J-2500000D01*
G01*
X81000000Y-77500000D02*
X80000000Y-77500000D01*
X122500000Y-120000000D02*
G75*
G02X120000000Y-122500000I-2500000J0D01*
G01*
X122500000Y-120000000D02*
X122500000Y-81000000D01*
X108000000Y-83500000D02*
X122500000Y-86500000D01*
X80000000Y-122500000D02*
G75*
G03*
X107000000Y-84500000I0J-1000000D01*
G02X77500000Y-120000000I0J2500000D01*
G01*
X119000000Y-91500000D02*
X80000000Y-122500000D02*
X107000000Y-122500000D01*
X82100000Y-80500000D02*
G75*
G03*
X118000000Y-92500000I0J-1000000D01*
G03X82100000Y-80500000I-1600000J0D01*
G01*
X120000000Y-122500000D02*
X77500000Y-80000000D02*
G75*
G03*
X122500000Y-120000000I0J2500000D01*
G01*
X83500000Y-80000000D02*
G75*
G03*
X85000000Y-81500000I1500000J0D01*
G02X80000000Y-77500000I2500000J0D01*
G01*
X77500000Y-80000000D02*
X77500000Y-120000000D01*
X107000000Y-102000000D02*
X107000000Y-84500000D01*
X77500000Y-120000000D02*
G75*
G03*
X80000000Y-122500000I2500000J0D01*
G01*
X111750000Y-85500000D02*
X118000000Y-85500000D01*
X111750000Y-89500000D02*
X111750000Y-85500000D01*
X118000000Y-89500000D02*
X111750000Y-89500000D01*
M02*

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,36 +1,13 @@
M48
; DRILL file {KiCad (6.0.4)} date Thu 28 Apr 2022 07:55:54 PM
; DRILL file {KiCad 5.1.5+dfsg1-2build2} date Čt 23. září 2021, 19:28:13
; FORMAT={-:-/ absolute / inch / decimal}
; #@! TF.CreationDate,2022-04-28T19:55:54+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.4)
; #@! TF.FileFunction,NonPlated,1,4,NPTH
; #@! TF.CreationDate,2021-09-23T19:28:13+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.5+dfsg1-2build2
; #@! TF.FileFunction,NonPlated,1,2,NPTH
FMAT,2
INCH
; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill
T1C0.0197
%
G90
G05
T1
X3.0512Y-3.8583
X3.0512Y-3.8976
X3.0512Y-3.937
X3.0512Y-3.9764
X3.0512Y-4.0157
X3.8583Y-3.0512
X3.8583Y-4.8228
X3.8976Y-3.0512
X3.8976Y-4.8228
X3.937Y-3.0512
X3.937Y-4.8228
X3.9764Y-3.0512
X3.9764Y-4.8228
X4.0157Y-3.0512
X4.0157Y-4.8228
X4.8228Y-3.8583
X4.8228Y-3.8976
X4.8228Y-3.937
X4.8228Y-3.9764
X4.8228Y-4.0157
T0
M30

View File

@ -1,111 +1,184 @@
M48
; DRILL file {KiCad (6.0.4)} date Thu 28 Apr 2022 07:55:54 PM
; DRILL file {KiCad 5.1.5+dfsg1-2build2} date Čt 23. září 2021, 19:28:13
; FORMAT={-:-/ absolute / inch / decimal}
; #@! TF.CreationDate,2022-04-28T19:55:54+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.4)
; #@! TF.FileFunction,Plated,1,4,PTH
; #@! TF.CreationDate,2021-09-23T19:28:13+02:00
; #@! TF.GenerationSoftware,Kicad,Pcbnew,5.1.5+dfsg1-2build2
; #@! TF.FileFunction,Plated,1,2,PTH
FMAT,2
INCH
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T1C0.0118
; #@! TA.AperFunction,Plated,PTH,ViaDrill
T2C0.0157
; #@! TA.AperFunction,Plated,PTH,ComponentDrill
T3C0.0295
%
G90
G05
T1
X3.1184Y-3.8975
X3.1299Y-3.8287
X3.1423Y-3.9113
X3.0709Y-3.1693
X3.0709Y-4.7047
X3.1004Y-4.3602
X3.1004Y-4.4193
X3.1102Y-4.1339
X3.1299Y-3.9272
X3.1299Y-4.3898
X3.1417Y-3.9006
X3.1496Y-3.3465
X3.1496Y-4.5177
X3.1594Y-4.3602
X3.1594Y-4.4193
X3.1693Y-3.0709
X3.1693Y-3.2677
X3.1693Y-4.5965
X3.1693Y-4.8031
X3.1772Y-3.8681
X3.1777Y-3.9651
X3.189Y-3.7697
X3.189Y-4.5472
X3.189Y-4.0157
X3.189Y-4.0748
X3.189Y-4.3898
X3.1988Y-3.7136
X3.2185Y-4.3602
X3.2185Y-4.4193
X3.2372Y-3.5787
X3.2397Y-3.9641
X3.2421Y-4.4272
X3.2495Y-3.9651
X3.2677Y-3.1693
X3.2677Y-4.7047
X3.2746Y-3.5787
X3.2874Y-4.0945
X3.2874Y-4.1339
X3.2874Y-4.1831
X3.2874Y-4.4272
X3.2892Y-4.044
X3.2904Y-4.0453
X3.312Y-3.8543
X3.3169Y-4.3209
X3.3169Y-4.3504
X3.3248Y-3.3543
X3.315Y-4.3307
X3.3169Y-4.1339
X3.3209Y-3.6319
X3.3268Y-4.1831
X3.3366Y-4.4272
X3.4252Y-3.6024
X3.4449Y-3.622
X3.4449Y-4.3799
X3.4449Y-4.439
X3.4449Y-4.5472
X3.3445Y-4.4272
X3.3661Y-3.8583
X3.3858Y-4.1634
X3.3937Y-4.7657
X3.3957Y-3.9764
X3.3957Y-4.0354
X3.4016Y-3.6063
X3.4055Y-3.878
X3.4252Y-4.0945
X3.4449Y-3.9075
X3.4449Y-4.3602
X3.4449Y-4.4193
X3.4646Y-3.7894
X3.4724Y-3.7087
X3.4744Y-3.5433
X3.4744Y-3.5728
X3.4744Y-4.4094
X3.4843Y-3.622
X3.5039Y-3.7894
X3.5039Y-4.3799
X3.5039Y-4.439
X3.5039Y-4.5472
X3.5039Y-4.8031
X3.4744Y-4.3898
X3.5039Y-4.3602
X3.5039Y-4.4193
X3.5138Y-3.7894
X3.5236Y-3.7008
X3.5335Y-4.4094
X3.5335Y-4.8031
X3.5531Y-3.7205
X3.563Y-4.3799
X3.563Y-4.439
X3.563Y-4.4882
X3.5335Y-4.3898
X3.5427Y-3.9463
X3.5433Y-3.3465
X3.5433Y-4.0945
X3.5512Y-3.6378
X3.563Y-4.3602
X3.563Y-4.4193
X3.5728Y-3.9075
X3.5827Y-3.7008
X3.5827Y-4.7047
X3.5925Y-3.8976
X3.6319Y-4.1831
X3.5925Y-3.7894
X3.6122Y-3.5728
X3.6319Y-4.4272
X3.6516Y-3.6713
X3.6614Y-4.3209
X3.6614Y-4.3504
X3.6632Y-4.0809
X3.6713Y-3.2874
X3.6713Y-4.1831
X3.6811Y-4.4272
X3.6811Y-4.5079
X3.7323Y-3.937
X3.7598Y-4.4974
X3.8583Y-3.3957
X3.878Y-4.065
X3.9173Y-3.2579
X3.9173Y-3.5827
X3.937Y-4.3504
X3.9537Y-3.2585
X3.9567Y-3.5236
X3.9764Y-3.3957
X4.0157Y-3.9567
X3.6417Y-3.5433
X3.6614Y-4.0157
X3.6614Y-4.3307
X3.6713Y-3.5138
X3.689Y-4.4272
X3.7008Y-3.622
X3.7402Y-3.7008
X3.7402Y-4.2224
X3.7598Y-4.0256
X3.7598Y-4.0846
X3.7795Y-3.5433
X3.7992Y-4.2717
X3.7992Y-4.3898
X3.7992Y-4.5079
X3.8061Y-3.9892
X3.8061Y-4.1831
X3.8189Y-3.7106
X3.8386Y-4.5276
X3.8386Y-4.7244
X3.8484Y-3.6122
X3.8484Y-3.6811
X3.8583Y-3.8583
X3.8583Y-4.0846
X3.8583Y-4.311
X3.8583Y-4.6457
X3.878Y-3.6516
X3.878Y-3.7795
X3.937Y-3.1496
X3.937Y-3.3465
X3.937Y-3.5433
X3.937Y-3.622
X3.937Y-4.2126
X3.937Y-4.311
X3.937Y-4.3898
X3.937Y-4.626
X3.937Y-4.7244
X4.0157Y-3.7795
X4.0157Y-4.2126
X4.0157Y-4.311
X4.0354Y-4.5276
X4.0354Y-4.626
X4.0354Y-4.7244
X4.0551Y-3.6811
X4.0551Y-3.7402
X4.0551Y-3.937
X4.0551Y-4.0551
X4.0945Y-3.7795
X4.1339Y-3.1496
X4.1339Y-3.3465
X4.1339Y-3.5433
X4.1339Y-3.7402
X4.1339Y-4.4685
X4.1339Y-4.7244
X4.1732Y-3.8189
X4.1732Y-3.8976
X4.1732Y-4.0157
X4.1732Y-4.1732
X4.1732Y-4.3307
X4.3307Y-4.0354
X4.3307Y-4.5276
X4.4094Y-4.2126
X4.439Y-3.3858
X4.439Y-3.5039
X4.4439Y-4.0994
X4.4488Y-4.1339
X4.5079Y-4.311
X4.5079Y-4.3701
X4.5079Y-4.4291
X4.5177Y-4.0256
X4.5472Y-4.0748
X4.5276Y-3.8583
X4.5669Y-4.0551
X4.5669Y-4.1339
X4.5669Y-4.311
X4.5669Y-4.3701
X4.5669Y-4.4291
X4.5866Y-4.1142
X4.6161Y-4.5965
X4.6063Y-4.7047
X4.6161Y-4.0748
X4.6161Y-4.6161
X4.626Y-4.311
X4.626Y-4.3701
X4.6654Y-4.5965
X4.6949Y-4.1142
X4.626Y-4.4291
X4.6457Y-3.8583
X4.6549Y-4.0557
X4.7047Y-4.6063
X4.7047Y-4.8031
X4.7244Y-3.9764
X4.7244Y-4.0354
X4.8031Y-4.7047
T2
X3.4055Y-3.3465
X3.4646Y-3.3465
X3.7008Y-3.4252
X4.0157Y-4.1339
T3
X3.8976Y-4.4685
X3.8976Y-4.5472
X3.9764Y-4.4685
X3.9764Y-4.5472
X3.8976Y-4.4783
X3.8976Y-4.5571
X3.9764Y-4.4783
X3.9764Y-4.5571
T0
M30

View File

@ -1,170 +1,128 @@
{
"Header": {
"GenerationSoftware": {
"Vendor": "KiCad",
"Header":
{
"GenerationSoftware":
{
"Vendor": "KiCad",
"Application": "Pcbnew",
"Version": "(6.0.4)"
"Version": "5.1.5+dfsg1-2build2"
},
"CreationDate": "2022-04-28T19:55:52+02:00"
"CreationDate": "2021-09-23T19:28:15+02:00"
},
"GeneralSpecs": {
"ProjectId": {
"GeneralSpecs":
{
"ProjectId":
{
"Name": "iaq_wired_sensor",
"GUID": "6961715f-7769-4726-9564-5f73656e736f",
"Revision": "1"
"Revision": "rev?"
},
"Size": {
"X": 45.05,
"Y": 45.05
"Size":
{
"X": 45.050,
"Y": 45.050
},
"LayerNumber": 4,
"BoardThickness": 1.0,
"Finish": "None"
"LayerNumber": 2,
"BoardThickness": 1.600
},
"DesignRules": [
"DesignRules":
[
{
"Layers": "Outer",
"PadToPad": 0.0,
"PadToTrack": 0.0,
"TrackToTrack": 0.2,
"MinLineWidth": 0.25,
"TrackToRegion": 0.25,
"RegionToRegion": 0.25
},
{
"Layers": "Inner",
"PadToPad": 0.0,
"PadToTrack": 0.0,
"TrackToTrack": 0.2,
"MinLineWidth": 0.25,
"TrackToRegion": 0.25,
"RegionToRegion": 0.25
"PadToPad": 0.200,
"PadToTrack": 0.200,
"TrackToTrack": 0.200,
"MinLineWidth": 0.250,
"TrackToRegion": 0.250,
"RegionToRegion": 0.250
}
],
"FilesAttributes": [
"FilesAttributes":
[
{
"Path": "iaq_wired_sensor-F_Cu.gbr",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-F_Cu.gbr",
"FileFunction": "Copper,L1,Top",
"FilePolarity": "Positive"
},
{
"Path": "iaq_wired_sensor-In1_Cu.gbr",
"FileFunction": "Copper,L2,Inr",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-B_Cu.gbr",
"FileFunction": "Copper,L2,Bot",
"FilePolarity": "Positive"
},
{
"Path": "iaq_wired_sensor-In2_Cu.gbr",
"FileFunction": "Copper,L3,Inr",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-F_Paste.gbr",
"FileFunction": "SolderPaste,Top",
"FilePolarity": "Positive"
},
{
"Path": "iaq_wired_sensor-B_Cu.gbr",
"FileFunction": "Copper,L4,Bot",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-B_Paste.gbr",
"FileFunction": "SolderPaste,Bot",
"FilePolarity": "Positive"
},
{
"Path": "iaq_wired_sensor-F_Paste.gbr",
"FileFunction": "SolderPaste,Top",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-F_SilkS.gbr",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
},
{
"Path": "iaq_wired_sensor-B_Paste.gbr",
"FileFunction": "SolderPaste,Bot",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-B_SilkS.gbr",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
},
{
"Path": "iaq_wired_sensor-F_Silkscreen.gbr",
"FileFunction": "Legend,Top",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-F_Mask.gbr",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "iaq_wired_sensor-B_Silkscreen.gbr",
"FileFunction": "Legend,Bot",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-B_Mask.gbr",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "iaq_wired_sensor-F_Mask.gbr",
"FileFunction": "SolderMask,Top",
"FilePolarity": "Negative"
},
{
"Path": "iaq_wired_sensor-B_Mask.gbr",
"FileFunction": "SolderMask,Bot",
"FilePolarity": "Negative"
},
{
"Path": "iaq_wired_sensor-Edge_Cuts.gbr",
"FileFunction": "Profile",
"FilePolarity": "Positive"
"Path": "iaq_wired_sensor-Edge_Cuts.gbr",
"FileFunction": "Profile",
"FilePolarity": "Positive"
}
],
"MaterialStackup": [
"MaterialStackup":
[
{
"Type": "Legend",
"Name": "Top Silk Screen"
"Type": "Legend",
"Notes": "Layer F.SilkS"
},
{
"Type": "SolderPaste",
"Name": "Top Solder Paste"
"Type": "SolderPaste",
"Notes": "Layer F.Paste"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Top Solder Mask"
"Type": "SolderMask",
"Notes": "Layer F.Mask"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "F.Cu"
"Type": "Copper",
"Notes": "Layer F.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.28,
"Material": "FR4",
"Name": "F.Cu/In1.Cu",
"Notes": "Type: dielectric layer 1 (from F.Cu to In1.Cu)"
"Type": "Dielectric",
"Material": "FR4",
"Notes": "Layers L1/L2"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In1.Cu"
"Type": "Copper",
"Notes": "Layer B.Cu"
},
{
"Type": "Dielectric",
"Thickness": 0.28,
"Material": "FR4",
"Name": "In1.Cu/In2.Cu",
"Notes": "Type: dielectric layer 2 (from In1.Cu to In2.Cu)"
"Type": "SolderMask",
"Notes": "Layer B.Mask"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "In2.Cu"
"Type": "SolderPaste",
"Notes": "Layer B.Paste"
},
{
"Type": "Dielectric",
"Thickness": 0.28,
"Material": "FR4",
"Name": "In2.Cu/B.Cu",
"Notes": "Type: dielectric layer 3 (from In2.Cu to B.Cu)"
},
{
"Type": "Copper",
"Thickness": 0.035,
"Name": "B.Cu"
},
{
"Type": "SolderMask",
"Thickness": 0.01,
"Name": "Bottom Solder Mask"
},
{
"Type": "SolderPaste",
"Name": "Bottom Solder Paste"
},
{
"Type": "Legend",
"Name": "Bottom Silk Screen"
"Type": "Legend",
"Notes": "Layer B.SilkS"
}
]
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,27 @@
Digikey,Quantity
587-5853-1-ND,1
445-175218-1-ND,4
587-3238-1-ND,3
490-10700-1-ND,5
18-AQ12-02HTGCT-ND,1
1727-3854-1-ND,1
31-SD24-7CT-ND,1
507-2156-1-ND,1
507-1794-1-ND,1
S9461-ND,1
455-1696-1-ND,1
587-2891-1-ND,1
587-5935-1-ND,1
516-3906-1-ND,1
1727-1287-1-ND,1
YAG5275CT-ND,1
YAG3164CT-ND,1
311-100KJRCT-ND,2
311-10KJRCT-ND,4
311-1KLBCT-ND,3
311-120JRCT-ND,1
MAX15062CATA+TCT-ND,2
497-17478-1-ND,1
1649-SHT40-AD1B-R2CT-ND,1
1649-SCD40-D-R2CT-ND,1
296-THVD1450DRBRCT-ND,1
1 Digikey Quantity
2 587-5853-1-ND 1
3 445-175218-1-ND 4
4 587-3238-1-ND 3
5 490-10700-1-ND 5
6 18-AQ12-02HTGCT-ND 1
7 1727-3854-1-ND 1
8 31-SD24-7CT-ND 1
9 507-2156-1-ND 1
10 507-1794-1-ND 1
11 S9461-ND 1
12 455-1696-1-ND 1
13 587-2891-1-ND 1
14 587-5935-1-ND 1
15 516-3906-1-ND 1
16 1727-1287-1-ND 1
17 YAG5275CT-ND 1
18 YAG3164CT-ND 1
19 311-100KJRCT-ND 2
20 311-10KJRCT-ND 4
21 311-1KLBCT-ND 3
22 311-120JRCT-ND 1
23 MAX15062CATA+TCT-ND 2
24 497-17478-1-ND 1
25 1649-SHT40-AD1B-R2CT-ND 1
26 1649-SCD40-D-R2CT-ND 1
27 296-THVD1450DRBRCT-ND 1

View File

@ -1,78 +1 @@
18108755619851
VL_Logos
OSHW-Logo2_7.3x6mm_SilkScreen
Open Source Hardware Symbol
Logo Symbol OSHW
0
0
0
VL_Logos
OSHW-Logo2_7.3x6mm_SilkScreen_no_text
0
0
0
VL_Logos
OSHW-Logo2_9.8x8mm_SilkScreen
Open Source Hardware Symbol
Logo Symbol OSHW
0
0
0
VL_Logos
OSHW-Logo_5.7x6mm_SilkScreen
Open Source Hardware Logo
Logo OSHW
0
0
0
VL_Logos
OSHW-Logo_7.5x8mm_SilkScreen
Open Source Hardware Logo
Logo OSHW
0
0
0
VL_Logos
OSHW-Logo_11.4x12mm_SilkScreen
Open Source Hardware Logo
Logo OSHW
0
0
0
VL_Logos
VL_Logo_10x7mm
0
0
0
VL_Logos
VL_Logo_14x10mm
0
0
0
VL_Logos
VL_Logo_20x14mm
0
0
0
VL_Logos
VL_Logo_Long_35x10mm
0
0
0
VL_Logos
VL_Logo_Long_52x15mm
0
0
0

View File

@ -0,0 +1,821 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# HD_Capacitors_C0402_100nF_50V_X7R
#
DEF HD_Capacitors_C0402_100nF_50V_X7R C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "HD_Capacitors_C0402_100nF_50V_X7R" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "100nF" 250 50 50 H V C CNN "Capacitance"
F5 "50V" 200 -50 50 H V C CNN "Voltage"
F6 "X7R" 0 0 50 H I C CNN "Dielectric"
F7 "Murata Electronics" 0 -400 50 H I C CNN "Manufacturer"
F8 "GRM155R71H104KE14D" 0 -500 50 H I C CNN "Code"
F9 "490-10700-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "81-GRM155R71H104KE4D" 0 -700 50 H I C CNN "Mouser"
F11 "2611912" 0 -800 50 H I C CNN "Farnell"
F12 "GRM155R71H104KE14D" 0 -900 50 H I C CNN "TME"
F13 "TDK Corporation" 900 -400 50 H I C CNN "Alt_Manufacturer"
F14 "C1005X7R1H104K050BB" 900 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Capacitors_C0402_1uF_35V_X5R
#
DEF HD_Capacitors_C0402_1uF_35V_X5R C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "HD_Capacitors_C0402_1uF_35V_X5R" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "1uF" 200 50 50 H V C CNN "Capacitance"
F5 "35V" 200 -50 50 H V C CNN "Voltage"
F6 "X5R" 0 0 50 H I C CNN "Dielectric"
F7 "TDK Corporation" 0 -400 50 H I C CNN "Manufacturer"
F8 "C1005X5R1V105K050BE" 0 -500 50 H I C CNN "Code"
F9 "445-175218-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "810-C1005X5R1V105K" 0 -700 50 H I C CNN "Mouser"
F11 "3416060" 0 -800 50 H I C CNN "Farnell"
F12 "X" 0 -900 50 H I C CNN "TME"
F13 "Kyocera International Inc. Electronic Components" 900 -400 50 H I C CNN "Alt_Manufacturer"
F14 "CM05X5R105K35AH" 900 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Capacitors_C0603_10uF_16V_X5R
#
DEF HD_Capacitors_C0603_10uF_16V_X5R C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "HD_Capacitors_C0603_10uF_16V_X5R" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C0603" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "10uF" 200 50 50 H V C CNN "Capacitance"
F5 "16V" 200 -50 50 H V C CNN "Voltage"
F6 "X5R" 0 0 50 H I C CNN "Dielectric"
F7 "Taiyo Yuden" 0 -400 50 H I C CNN "Manufacturer"
F8 "EMK107BBJ106MA-T" 0 -500 50 H I C CNN "Code"
F9 "587-3238-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "963-EMK107BBJ106MA-T" 0 -700 50 H I C CNN "Mouser"
F11 "2779064" 0 -800 50 H I C CNN "Farnell"
F12 "CL10A106MO8NQNC" 0 -900 50 H I C CNN "TME"
F13 "Murata Electronics" 950 -400 50 H I C CNN "Alt_Manufacturer"
F14 "GRM188R61C106MA73D" 950 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Capacitors_C1210_22uF_35V_X5R
#
DEF HD_Capacitors_C1210_22uF_35V_X5R C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "HD_Capacitors_C1210_22uF_35V_X5R" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C1210" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "22uF" 200 50 50 H V C CNN "Capacitance"
F5 "35V" 200 -50 50 H V C CNN "Voltage"
F6 "X5R" 0 0 50 H I C CNN "Dielectric"
F7 "Taiyo Yuden" 0 -400 50 H I C CNN "Manufacturer"
F8 "GMK325BJ226MM-P" 0 -500 50 H I C CNN "Code"
F9 "587-5853-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "963-GMK325BJ226MM-P" 0 -700 50 H I C CNN "Mouser"
F11 "X" 0 -800 50 H I C CNN "Farnell"
F12 "X" 0 -900 50 H I C CNN "TME"
F13 "Taiyo Yuden" 950 -400 50 H I C CNN "Alt_Manufacturer"
F14 "GMK325BJ226MM-T" 950 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Communication_THVD1450DRBR
#
DEF HD_Communication_THVD1450DRBR U 0 40 Y Y 1 F N
F0 "U" -250 450 50 H V C CNN
F1 "HD_Communication_THVD1450DRBR" 350 450 50 H V C CNN
F2 "HD_SON:Texas_VSON8" 0 -650 50 H I C CNN
F3 "" 0 450 50 H I C CNN
F4 "Texas Instruments" 0 -750 50 H I C CNN "Manufacturer"
F5 "THVD1450DRBR" 0 -850 50 H I C CNN "Code"
F6 "296-THVD1450DRBRCT-ND" 0 -950 50 H I C CNN "Digikey"
F7 "595-THVD1450DRBR" 0 -1050 50 H I C CNN "Mouser"
F8 "X" 0 -1150 50 H I C CNN "Farnell"
F9 "X" 0 -1250 50 H I C CNN "TME"
DRAW
C -12 -145 14 1 1 10 F
C -1 59 14 1 1 10 F
C 65 75 14 1 1 10 F
S -300 400 300 -500 1 1 10 f
S 50 125 50 125 1 1 0 N
P 2 1 1 10 -160 -200 -75 -200 N
P 2 1 1 10 -160 100 -50 100 N
P 2 1 1 10 -50 -126 -50 -136 N
P 2 1 1 10 -25 -200 210 -200 N
P 3 1 1 10 -160 -100 -50 -100 -50 -125 N
P 3 1 1 10 0 50 0 0 -160 0 N
P 3 1 1 10 50 125 150 125 150 -200 N
P 3 1 1 10 100 75 100 -150 0 -150 N
P 4 1 1 10 -75 -125 -75 -225 25 -175 -75 -125 N
P 4 1 1 10 -50 100 50 150 50 50 -50 100 N
P 4 1 1 10 75 75 175 75 175 100 210 100 N
X ePAD 0 0 -600 100 U 50 50 1 1 I N
X RO 1 -400 100 100 R 50 50 1 1 O
X ~RE 2 -400 0 100 R 50 50 1 1 I
X DE 3 -400 -100 100 R 50 50 1 1 I
X DI 4 -400 -200 100 R 50 50 1 1 I
X GND 5 0 -600 100 U 50 50 1 1 W
X A 6 400 -200 100 L 50 50 1 1 B
X B 7 400 100 100 L 50 50 1 1 B
X VCC 8 0 500 100 D 50 50 1 1 W
ENDDRAW
ENDDEF
#
# HD_Connectors_JST_ZH5_Side_Entry_S5B-ZR-SM4A-TF
#
DEF HD_Connectors_JST_ZH5_Side_Entry_S5B-ZR-SM4A-TF J 0 1 Y N 1 F N
F0 "J" 50 300 50 H V C CNN
F1 "HD_Connectors_JST_ZH5_Side_Entry_S5B-ZR-SM4A-TF" 50 -300 50 H V C CNN
F2 "HD_Connectors:JST_ZH_5PIN_S5B-ZR-SM4A-TF" 50 -400 50 H I C CNN
F3 "" -450 -300 50 H I C CNN
F4 "455-1696-1-ND" 50 -500 50 H I C CNN "Digikey"
F5 "X" 50 -600 50 H I C CNN "Mouser"
F6 "2399336" 50 -700 50 H I C CNN "Farnell"
F7 "S5B-ZR-SM4A-TF" 50 -800 50 H I C CNN "TME"
DRAW
S 0 250 100 -250 0 1 0 f
X MH 0 200 -200 100 L 50 50 1 1 I
X 1 1 -100 200 100 R 50 50 1 1 B
X 2 2 -100 100 100 R 50 50 1 1 B
X 3 3 -100 0 100 R 50 50 1 1 I
X 4 4 -100 -100 100 R 50 50 1 1 I
X 5 5 -100 -200 100 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# HD_Connectors_SWD_Connector
#
DEF HD_Connectors_SWD_Connector SWD 0 1 Y Y 1 F N
F0 "SWD" 100 300 50 H V C CNN
F1 "HD_Connectors_SWD_Connector" 50 -300 50 H V C CNN
F2 "HD_Connectors:SWD_Connector_for_PogoHeader" 50 -400 50 H I C CNN
F3 "" -450 -300 50 H I C CNN
F4 "X" 50 -600 50 H I C CNN "Mouser"
F5 "X" 50 -700 50 H I C CNN "Farnell"
F6 "X" 50 -800 50 H I C CNN "TME"
F7 "X" 50 -500 50 H I C CNN "Digikey"
DRAW
S 0 250 250 -250 0 1 0 f
X 3V3 1 -100 200 100 R 50 50 1 1 B
X GND 2 -100 100 100 R 50 50 1 1 B
X SWDIO 3 -100 0 100 R 50 50 1 1 I
X SWCLK 4 -100 -100 100 R 50 50 1 1 I
X NRST 5 -100 -200 100 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# HD_Connectors_Sullins_SWR204-NRTN-D02-RA-GA
#
DEF HD_Connectors_Sullins_SWR204-NRTN-D02-RA-GA J 0 40 Y N 1 F N
F0 "J" 50 250 50 H V C CNN
F1 "HD_Connectors_Sullins_SWR204-NRTN-D02-RA-GA" 50 350 50 H I C CNN
F2 "HD_Connectors:Sullins_SWR204-NRTN-D02-RA-GA" 0 -250 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "Sullins Connector Solutions" 0 -350 50 H I C CNN "Manufacturer"
F5 "SWR204-NRTN-D02-RA-GA" 0 -450 50 H I C CNN "Code"
F6 "S9461-ND" 0 -550 50 H I C CNN "Digikey"
F7 "X" 0 -650 50 H I C CNN "Mouser"
F8 "X" 0 -750 50 H I C CNN "Farnell"
F9 "X" 0 -850 50 H I C CNN "TME"
DRAW
S 0 200 100 -200 0 1 0 f
X 1 1 -100 150 100 R 50 50 1 1 I
X 2 2 -100 50 100 R 50 50 1 1 I
X 3 3 -100 -50 100 R 50 50 1 1 I
X 4 4 -100 -150 100 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# HD_Diodes_AQ12-02HTG
#
DEF HD_Diodes_AQ12-02HTG D 0 40 Y N 1 F N
F0 "D" 250 100 50 H V C CNN
F1 "HD_Diodes_AQ12-02HTG" 475 0 50 H V C CNN
F2 "HD_SOT:SOT-23" 0 -300 50 H I C CNN
F3 "" -50 600 50 H I C CNN
F4 "Littelfuse Inc." 0 -400 50 H I C CNN "Manufacturer"
F5 "AQ12-02HTG" 0 -500 50 H I C CNN "Code"
F6 "Bourns" 1000 -400 50 H I C CNN "Alt_Manufacturer"
F7 "CDSOT23-SM712" 950 -500 50 H I C CNN "Alt_Code"
F8 "18-AQ12-02HTGCT-ND" 0 -600 50 H I C CNN "Digikey"
F9 "576-AQ12-02HTG" 0 -700 50 H I C CNN "Mouser"
F10 "X" 0 -800 50 H I C CNN "Farnell"
F11 "X" 0 -900 50 H I C CNN "TME"
DRAW
S -200 150 200 -100 1 1 0 f
P 4 0 1 0 -50 100 -150 100 -100 50 -50 100 F
P 2 1 1 0 -100 100 -100 150 N
P 2 1 1 0 0 -100 0 -50 N
P 2 1 1 0 100 100 100 150 N
P 4 1 1 0 -150 0 -50 0 -100 50 -150 0 F
P 4 1 1 0 -150 60 -140 50 -60 50 -50 40 N
P 4 1 1 0 -100 0 -100 -50 100 -50 100 0 N
P 4 1 1 0 50 0 150 0 100 50 50 0 F
P 4 1 1 0 50 60 60 50 140 50 150 40 N
P 4 1 1 0 150 100 50 100 100 50 150 100 F
X 1 1 -100 250 100 D 50 50 1 1 I
X 2 2 100 250 100 D 50 50 1 1 I
X 3 3 0 -200 100 U 50 50 1 1 I
ENDDRAW
ENDDEF
#
# HD_Diodes_ASMB-KTF0-0A306
#
DEF HD_Diodes_ASMB-KTF0-0A306 LD 0 40 Y N 1 F N
F0 "LD" 0 400 50 H V C CNN
F1 "HD_Diodes_ASMB-KTF0-0A306" 0 -350 50 H V C CNN
F2 "HD_Diodes:LED_ASMB-KTF0-0A306" 0 -450 50 H I C CNN
F3 "" 0 -1000 50 H I C CNN
F4 "Broadcom Limited" 0 -550 50 H I C CNN "Manufacturer"
F5 "ASMB-KTF0-0A306" 0 -650 50 H I C CNN "Code"
F6 "516-3906-1-ND" 0 -750 50 H I C CNN "Digikey"
F7 "630-ASMB-KTF0-0A306" 0 -850 50 H I C CNN "Mouser"
F8 "2858363" 0 -950 50 H I C CNN "Farnell"
F9 "X" 0 -1050 50 H I C CNN "TME"
DRAW
T 0 0 -100 50 0 0 0 BLUE Normal 0 C C
T 0 0 100 50 0 0 0 GREEN Normal 0 C C
T 0 0 300 50 0 0 0 RED Normal 0 C C
S -200 350 200 -300 0 0 0 f
P 2 0 1 0 -200 -200 -50 -200 N
P 2 0 1 0 -200 0 -50 0 N
P 2 0 1 0 -200 200 -50 200 N
P 2 0 1 0 150 0 50 0 N
P 3 0 1 0 50 200 150 200 150 0 N
P 4 0 1 0 50 -200 150 -200 150 0 200 0 N
P 2 1 1 0 -50 -200 50 -200 N
P 2 1 1 8 -50 -150 -50 -250 N
P 2 1 1 0 -50 0 50 0 N
P 2 1 1 8 -50 50 -50 -50 N
P 2 1 1 0 -50 200 50 200 N
P 2 1 1 8 -50 250 -50 150 N
P 4 1 1 8 50 -150 50 -250 -50 -200 50 -150 N
P 4 1 1 8 50 50 50 -50 -50 0 50 50 N
P 4 1 1 8 50 250 50 150 -50 200 50 250 N
P 5 1 1 0 -120 -170 -180 -110 -150 -110 -180 -110 -180 -140 N
P 5 1 1 0 -120 30 -180 90 -150 90 -180 90 -180 60 N
P 5 1 1 0 -120 230 -180 290 -150 290 -180 290 -180 260 N
P 5 1 1 0 -70 -170 -130 -110 -100 -110 -130 -110 -130 -140 N
P 5 1 1 0 -70 30 -130 90 -100 90 -130 90 -130 60 N
P 5 1 1 0 -70 230 -130 290 -100 290 -130 290 -130 260 N
X A 1 300 0 100 L 50 50 1 1 P
X K 2 -300 200 100 R 50 50 1 1 P
X K 3 -300 0 100 R 50 50 1 1 P
X K 4 -300 -200 100 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Diodes_PMEG2005EJ115
#
DEF HD_Diodes_PMEG2005EJ115 D 0 40 N N 1 F N
F0 "D" 0 100 50 H V C CNN
F1 "HD_Diodes_PMEG2005EJ115" 0 -100 50 H V C CNN
F2 "HD_Diodes:D_SOD-323F" 0 -200 50 H I C CNN
F3 "" 0 -300 50 H I C CNN
F4 "Nexperia" 0 -300 50 H I C CNN "Manufacturer"
F5 " 771-PMEG2005EJ115" 0 -400 50 H I C CNN "Code"
F6 "1727-3854-1-ND" 0 -500 50 H I C CNN "Digikey"
F7 "771-PMEG2005EJ115" 0 -600 50 H I C CNN "Mouser"
F8 "1757760" 0 -700 50 H I C CNN "Farnell"
F9 "PMEG2005EJ.115" 0 -800 50 H I C CNN "TME"
$FPLIST
TO-???*
*_Diode_*
*SingleDiode*
D_*
$ENDFPLIST
DRAW
P 2 1 1 0 50 0 -50 0 N
P 4 1 1 8 50 50 50 -50 -50 0 50 50 N
P 6 1 1 8 -75 25 -75 50 -50 50 -50 -50 -25 -50 -25 -25 N
X K 1 -150 0 100 R 50 50 1 1 P
X A 2 150 0 100 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Diodes_SD24-7
#
DEF HD_Diodes_SD24-7 D 0 40 N N 1 F N
F0 "D" 0 100 50 H V C CNN
F1 "HD_Diodes_SD24-7" 0 -100 50 H V C CNN
F2 "HD_Diodes:D_SOD-323" 0 -200 50 H I C CNN
F3 "" 0 -300 50 H I C CNN
F4 "Diodes Incorporated" 0 -300 50 H I C CNN "Manufacturer"
F5 "SD24-7" 0 -400 50 H I C CNN "Code"
F6 "31-SD24-7CT-ND" 0 -500 50 H I C CNN "Digikey"
F7 "621-SD24-7" 0 -600 50 H I C CNN "Mouser"
F8 "X" 0 -700 50 H I C CNN "Farnell"
F9 "X" 0 -800 50 H I C CNN "TME"
$FPLIST
TO-???*
*_Diode_*
*SingleDiode*
D_*
$ENDFPLIST
DRAW
P 2 1 1 0 50 0 -50 0 N
P 4 1 1 0 -75 50 -50 25 -50 -25 -25 -50 N
P 4 1 1 8 50 50 50 -50 -50 0 50 50 N
X K 1 -150 0 100 R 50 50 1 1 P
X A 2 150 0 100 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Inductors_NRS4018T330MDGJ
#
DEF HD_Inductors_NRS4018T330MDGJ L 0 40 N N 1 F N
F0 "L" 0 200 50 H V C CNN
F1 "HD_Inductors_NRS4018T330MDGJ" 0 -50 50 H V C CNN
F2 "HD_Inductors:L_NR40xx" 0 -150 50 H I C CNN
F3 "" 0 350 50 H I C CNN
F4 "33uH" 0 100 50 H V C CNN "Inductance"
F5 "550mA" 250 100 50 H I C CNN "Current Rating"
F6 "Taiyo Yuden" 0 -250 50 H I C CNN "Manufacturer"
F7 "NRS4018T330MDGJ" 0 -350 50 H I C CNN "Code"
F8 "587-2891-1-ND" 0 -450 50 H I C CNN "Digikey"
F9 "963-NRS4018T330MDGJ" 0 -550 50 H I C CNN "Mouser"
F10 "X" 0 -650 50 H I C CNN "Farnell"
F11 "X" 0 -750 50 H I C CNN "TME"
DRAW
A -75 0 25 1 1799 1 1 0 N -50 0 -100 0
A -25 0 25 1 1799 1 1 0 N 0 0 -50 0
A 25 0 25 1 1799 1 1 0 N 50 0 0 0
A 75 0 25 1 1799 1 1 0 N 100 0 50 0
X 1 1 -150 0 50 R 50 50 1 1 P
X 2 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Inductors_NRS4018T470MDGJ
#
DEF HD_Inductors_NRS4018T470MDGJ L 0 40 N N 1 F N
F0 "L" 0 200 50 H V C CNN
F1 "HD_Inductors_NRS4018T470MDGJ" 0 -50 50 H V C CNN
F2 "HD_Inductors:L_NR40xx" 0 -150 50 H I C CNN
F3 "" 0 350 50 H I C CNN
F4 "47uH" 0 100 50 H V C CNN "Inductance"
F5 "440mA" 250 100 50 H I C CNN "Current Rating"
F6 "Taiyo Yuden" 0 -250 50 H I C CNN "Manufacturer"
F7 "NRS4018T470MDGJ" 0 -350 50 H I C CNN "Code"
F8 "587-5935-1-ND" 0 -450 50 H I C CNN "Digikey"
F9 "963-NRS4018T470MDGJ" 0 -550 50 H I C CNN "Mouser"
F10 "X" 0 -650 50 H I C CNN "Farnell"
F11 "X" 0 -750 50 H I C CNN "TME"
DRAW
A -75 0 25 1 1799 1 1 0 N -50 0 -100 0
A -25 0 25 1 1799 1 1 0 N 0 0 -50 0
A 25 0 25 1 1799 1 1 0 N 50 0 0 0
A 75 0 25 1 1799 1 1 0 N 100 0 50 0
X 1 1 -150 0 50 R 50 50 1 1 P
X 2 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_MCUs_STM32L031G6U7
#
DEF HD_MCUs_STM32L031G6U7 U 0 40 Y Y 1 F N
F0 "U" -400 800 50 H V C CNN
F1 "HD_MCUs_STM32L031G6U7" 550 800 50 H V C CNN
F2 "MRS_QFN:QFN_28-4x4mm" 0 -1300 50 H I C CNN
F3 "" 50 750 50 H I C CNN
F4 "STMicroelectronics" 0 0 50 H I C CNN "Manufacturer"
F5 "STM32L031G6U7" 0 0 50 H I C CNN "Code"
F6 "497-16807-ND" 0 0 50 H I C CNN "Digikey"
F7 "511-STM32L031G6U7" 0 0 50 H I C CNN "Mouser"
F8 "3365411" 0 0 50 H I C CNN "Farnell"
F9 "STM32L031G6U7TR" 0 0 50 H I C CNN "TME"
F10 "497-16807-ND" 0 0 50 H I C CNN "Arrow"
DRAW
S -450 -750 450 750 1 1 10 f
X VDD 1 -50 850 100 D 50 50 1 1 W
X PA4 10 550 250 100 L 50 50 1 1 B
X PA5 11 550 150 100 L 50 50 1 1 B
X PA6 12 550 50 100 L 50 50 1 1 B
X PA7 13 550 -50 100 L 50 50 1 1 B
X PB0 14 -550 -250 100 R 50 50 1 1 B
X PB1 15 -550 -350 100 R 50 50 1 1 B
X VSS 16 -50 -850 100 U 50 50 1 1 W
X VDD 17 50 850 100 D 50 50 1 1 W
X PA8 18 550 -150 100 L 50 50 1 1 B
X PA9 19 550 -250 100 L 50 50 1 1 B
X PC14 2 -550 50 100 R 50 50 1 1 B
X PA10 20 550 -350 100 L 50 50 1 1 B
X PA13 21 550 -450 100 L 50 50 1 1 B
X PA14 22 550 -550 100 L 50 50 1 1 B
X PA15 23 550 -650 100 L 50 50 1 1 B
X PB3 24 -550 -450 100 R 50 50 1 1 B
X PB6 25 -550 -550 100 R 50 50 1 1 B
X PB7 26 -550 -650 100 R 50 50 1 1 B
X BOOT0 27 -550 450 100 R 50 50 1 1 I
X VSS 28 50 -850 100 U 50 50 1 1 W
X PC15 3 -550 -50 100 R 50 50 1 1 B
X NRST 4 -550 650 100 R 50 50 1 1 I
X VDDA 5 150 850 100 D 50 50 1 1 W
X PA0 6 550 650 100 L 50 50 1 1 B
X PA1 7 550 550 100 L 50 50 1 1 B
X PA2 8 550 450 100 L 50 50 1 1 B
X PA3 9 550 350 100 L 50 50 1 1 B
ENDDRAW
ENDDEF
#
# HD_Other_0686F0500-01
#
DEF HD_Other_0686F0500-01 F 0 40 Y Y 1 F N
F0 "F" 0 200 50 H V C CNN
F1 "HD_Other_0686F0500-01" 0 -100 50 H V C CNN
F2 "HD_Other:F0603" 0 -200 50 H I C CNN
F3 "" 0 200 50 H I C CNN
F4 "2834860" 0 -700 50 H I C CNN "Farnell"
F5 "C1F-500" 0 -800 50 H I C CNN "TME"
F6 "530-0686F0500-01" 0 -600 50 H I C CNN "Mouser"
F7 "507-2156-1-ND" 0 -500 50 H I C CNN "Digikey"
F8 "Bel Fuse Inc." 0 -300 50 H I C CNN "Manufacturer"
F9 "0686F0500-01" 0 -400 50 H I C CNN "Code"
F10 "Eaton - Electronics Division" 1050 -300 50 H I C CNN "Alt_Manufacturer"
F11 "CC06FA500MA-TR" 1100 -400 50 H I C CNN "Alt_Code"
DRAW
S 100 -30 -100 30 1 1 10 N
P 2 1 1 0 -100 0 100 0 N
X ~ 1 -150 0 50 R 50 50 1 1 P
X ~ 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Other_0ZCJ0010FF2E
#
DEF HD_Other_0ZCJ0010FF2E F 0 40 Y Y 1 F N
F0 "F" 0 200 50 H V C CNN
F1 "HD_Other_0ZCJ0010FF2E" 0 -100 50 H V C CNN
F2 "HD_Other:F1206" 0 -200 50 H I C CNN
F3 "" 0 200 50 H I C CNN
F4 "Bel Fuse Inc." 0 -300 50 H I C CNN "Manufacturer"
F5 "0ZCJ0010FF2E" 0 -400 50 H I C CNN "Code"
F6 "Eaton - Electronics Division" 1050 -300 50 H I C CNN "Alt_Manufacturer"
F7 "PTS120660V010" 1100 -400 50 H I C CNN "Alt_Code"
F8 "507-1794-1-ND" 0 -500 50 H I C CNN "Digikey"
F9 "530-0ZCJ0010FF2E" 0 -600 50 H I C CNN "Mouser"
F10 "2834880" 0 -700 50 H I C CNN "Farnell"
F11 " 0ZCJ0010FF2E" 0 -800 50 H I C CNN "TME"
DRAW
S 100 -30 -100 30 1 1 10 N
P 2 1 1 0 -100 0 100 0 N
X ~ 1 -150 0 50 R 50 50 1 1 P
X ~ 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Other_TAG_SN
#
DEF HD_Other_TAG_SN H 0 40 Y Y 1 F N
F0 "H" 0 100 50 H I C CNN
F1 "HD_Other_TAG_SN" 0 200 50 H I C CNN
F2 "HD_Other:SERIAL_NUMBER_SPACE" 0 -100 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
T 0 0 0 50 0 0 0 "TAG SN" Normal 0 C C
S -250 50 250 -50 0 1 0 f
ENDDRAW
ENDDEF
#
# HD_Other_TAG_TESTING
#
DEF HD_Other_TAG_TESTING H 0 40 Y Y 1 F N
F0 "H" 0 100 50 H I C CNN
F1 "HD_Other_TAG_TESTING" 0 200 50 H I C CNN
F2 "HD_Other:TEST_CHECKMARKS" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
T 0 0 0 50 0 0 0 "TAG TESTING" Normal 0 C C
S -250 50 250 -50 0 1 0 f
ENDDRAW
ENDDEF
#
# HD_Other_Testpoint
#
DEF HD_Other_Testpoint TP 0 40 N N 1 F N
F0 "TP" 100 0 50 H V C CNN
F1 "HD_Other_Testpoint" 0 -100 50 H I C CNN
F2 "HD_Other:Testpoint_SMD_2mm" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
C 0 0 50 0 1 0 N
X 1 1 -150 0 100 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# HD_PMICs_MAX15062C
#
DEF HD_PMICs_MAX15062C U 0 40 Y Y 1 F N
F0 "U" -350 300 50 H V C CNN
F1 "HD_PMICs_MAX15062C" 100 300 50 H V C CNN
F2 "HD_DFN_QFN:TDFN-8-1EP_2x2mm_P0.5mm" 0 -450 50 H I C CNN
F3 "" -150 300 50 H I C CNN
F4 "Maxim Integrated" 0 -550 50 H I C CNN "Manufacturer"
F5 "MAX15062CATA+T" 0 -650 50 H I C CNN "Code"
F6 "MAX15062CATA+TCT-ND" 0 -750 50 H I C CNN "Digikey"
F7 "700-MAX15062CATA+T" 0 -850 50 H I C CNN "Mouser"
F8 "X" 0 -1050 50 H I C CNN "TME"
F9 "2516652" 0 -950 50 H I C CNN "Farnell"
DRAW
S -450 250 450 -250 0 1 0 f
X VIN 1 -550 200 100 R 50 50 1 1 I
X EN/UVLO 2 -550 100 100 R 50 50 1 1 I
X VCC 3 -550 -200 100 R 50 50 1 1 I
X FB/VOUT 4 550 100 100 L 50 50 1 1 I
X MODE 5 -550 -100 100 R 50 50 1 1 I
X nRST 6 -550 0 100 R 50 50 1 1 I
X GND 7 0 -350 100 U 50 50 1 1 I
X LX 8 550 200 100 L 50 50 1 1 w
ENDDRAW
ENDDEF
#
# HD_Power_Symbols_+3V3
#
DEF HD_Power_Symbols_+3V3 #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "HD_Power_Symbols_+3V3" 0 140 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
ALIAS +3.3V
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X +3V3 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# HD_Power_Symbols_+5V
#
DEF HD_Power_Symbols_+5V #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "HD_Power_Symbols_+5V" 0 140 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X +5V 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# HD_Power_Symbols_GND
#
DEF HD_Power_Symbols_GND #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -250 50 H I C CNN
F1 "HD_Power_Symbols_GND" 0 -150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -25 -75 25 -75 N
P 2 0 1 0 -5 -100 5 -100 N
P 2 0 1 0 0 -50 0 0 N
P 2 0 1 0 50 -50 -50 -50 N
X GND 1 0 0 0 D 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# HD_Power_Symbols_VCC
#
DEF HD_Power_Symbols_VCC #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "HD_Power_Symbols_VCC" 0 150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X VCC 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# HD_Power_Symbols_VIN
#
DEF HD_Power_Symbols_VIN #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "HD_Power_Symbols_VIN" 0 150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X VIN 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# HD_Resistors_R0402_100k_5%_1d16W
#
DEF HD_Resistors_R0402_100k_5%_1d16W R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "HD_Resistors_R0402_100k_5%_1d16W" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "100k" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "5%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "RC0402JR-07100KL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402FT100K" 800 -500 50 H I C CNN "Alt_Code"
F11 "311-100KJRCT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402JR-07100KL" 0 -700 50 H I C CNN "Mouser"
F13 "9233008" 0 -800 50 H I C CNN "Farnell"
F14 "RC0402JR-07100KL" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Resistors_R0402_120R_1%_1d16W
#
DEF HD_Resistors_R0402_120R_1%_1d16W R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "HD_Resistors_R0402_120R_1%_1d16W" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "120R" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "RC0402JR-07120RL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402JT120R" 800 -500 50 H I C CNN "Alt_Code"
F11 "311-120JRCT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402JR-07120RL" 0 -700 50 H I C CNN "Mouser"
F13 "9232656" 0 -800 50 H I C CNN "Farnell"
F14 "RC0402FR-07120RL" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Resistors_R0402_1k_1%_1d16W
#
DEF HD_Resistors_R0402_1k_1%_1d16W R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "HD_Resistors_R0402_1k_1%_1d16W" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "1k" 100 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "AC0402FR-071KL" 0 -500 50 H I C CNN "Code"
F9 "TE Connectivity Passive Product" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "CRGCQ0402F1K0" 800 -500 50 H I C CNN "Alt_Code"
F11 "311-1KLBCT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402JR-131KL" 0 -700 50 H I C CNN "Mouser"
F13 "3495181" 0 -800 50 H I C CNN "Farnell"
F14 "SMD0402-1K" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Resistors_R0402_267k_1%_1d16W
#
DEF HD_Resistors_R0402_267k_1%_1d16W R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "HD_Resistors_R0402_267k_1%_1d16W" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "267k" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "AC0402FR-07267KL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402FT267KCT-ND" 800 -500 50 H I C CNN "Alt_Code"
F11 "YAG5275CT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-AC0402FR-07267KL " 0 -700 50 H I C CNN "Mouser"
F13 "2140969" 0 -800 50 H I C CNN "Farnell"
F14 "X" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Resistors_R0402_453k_1%_1d16W
#
DEF HD_Resistors_R0402_453k_1%_1d16W R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "HD_Resistors_R0402_453k_1%_1d16W" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "453k" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "RC0402FR-07453KL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402FT453K" 800 -500 50 H I C CNN "Alt_Code"
F11 "YAG3164CT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402FR-07453KL" 0 -700 50 H I C CNN "Mouser"
F13 "2140999" 0 -800 50 H I C CNN "Farnell"
F14 "RC0402FR-07453KL" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# HD_Sensors_SCD40-D-R2
#
DEF HD_Sensors_SCD40-D-R2 U 0 40 Y Y 1 F N
F0 "U" 0 350 50 H V C CNN
F1 "HD_Sensors_SCD40-D-R2" 0 250 50 H V C CNN
F2 "HD_Sensors:SCD4x" 0 -250 50 H I C CNN
F3 "" 0 50 50 H I C CNN
F4 "Sensirion AG" 0 -350 50 H I C CNN "Manufacturer"
F5 "SCD40-D-R2" 0 -450 50 H I C CNN "Code"
F6 "1649-SCD40-D-R2CT-ND" 0 -550 50 H I C CNN "Digikey"
F7 "X" 0 -650 50 H I C CNN "Mouser"
F8 "X" 0 -750 50 H I C CNN "Farnell"
F9 "X" 0 -850 50 H I C CNN "TME"
DRAW
S 250 200 -250 -200 0 1 0 f
X VSS 0 -350 -150 100 R 50 50 1 1 W N
X DNC 1 -50 150 100 R 50 50 1 1 N N
X SDA 10 350 50 100 L 50 50 1 1 B
X DNC 11 -200 150 100 R 50 50 1 1 N N
X DNC 12 -200 100 100 R 50 50 1 1 N N
X DNC 13 -200 50 100 R 50 50 1 1 N N
X DNC 14 -50 50 100 R 50 50 1 1 N N
X DNC 15 -200 0 100 R 50 50 1 1 N N
X DNC 16 -50 0 100 R 50 50 1 1 N N
X DNC 17 -200 -50 100 R 50 50 1 1 N N
X DNC 18 -50 -50 100 R 50 50 1 1 N N
X VDDH 19 -350 50 100 R 50 50 1 1 W
X DNC 2 -200 -100 100 R 50 50 1 1 N N
X VSS 20 -350 -150 100 R 50 50 1 1 W N
X DNC 3 -50 -100 100 R 50 50 1 1 N N
X DNC 4 -200 -150 100 R 50 50 1 1 N N
X DNC 5 -50 -150 100 R 50 50 1 1 N N
X VSS 6 -350 -150 100 R 50 50 1 1 W
X VDD 7 -350 150 100 R 50 50 1 1 W
X DNC 8 -50 100 100 R 50 50 1 1 N N
X SCL 9 350 -50 100 L 50 50 1 1 B
ENDDRAW
ENDDEF
#
# HD_Sensors_SHT40-AD1B-R2
#
DEF HD_Sensors_SHT40-AD1B-R2 U 0 40 Y Y 1 F N
F0 "U" 0 350 50 H V C CNN
F1 "HD_Sensors_SHT40-AD1B-R2" 0 250 50 H V C CNN
F2 "HD_Sensors:SHT4x" 0 -250 50 H I C CNN
F3 "" 0 50 50 H I C CNN
F4 "Sensirion AG" 0 -350 50 H I C CNN "Manufacturer"
F5 "SHT40-AD1B-R2" 0 -450 50 H I C CNN "Code"
F6 "1649-SHT40-AD1B-R2CT-ND" 0 -550 50 H I C CNN "Digikey"
F7 "403-SHT40-AD1B-R2" 0 -650 50 H I C CNN "Mouser"
F8 "3586476" 0 -750 50 H I C CNN "Farnell"
F9 "SHT40-AD1B-R2" 0 -850 50 H I C CNN "TME"
DRAW
S 250 200 -250 -200 0 1 0 f
X SDA 1 350 50 100 L 50 50 1 1 B
X SCL 2 350 -50 100 L 50 50 1 1 B
X VDD 3 -350 150 100 R 50 50 1 1 W
X VSS 4 -350 -150 100 R 50 50 1 1 W
ENDDRAW
ENDDEF
#
#End Library

View File

@ -0,0 +1,3 @@
EESchema-DOCLIB Version 2.0
#
#End Doc Library

View File

@ -0,0 +1,889 @@
EESchema-LIBRARY Version 2.4
#encoding utf-8
#
# +3V3-HD_Power_Symbols
#
DEF +3V3-HD_Power_Symbols #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "+3V3-HD_Power_Symbols" 0 140 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X +3V3 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# +5V-HD_Power_Symbols
#
DEF +5V-HD_Power_Symbols #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "+5V-HD_Power_Symbols" 0 140 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X +5V 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# 0686F0500-01-HD_Other
#
DEF 0686F0500-01-HD_Other F 0 40 Y Y 1 F N
F0 "F" 0 200 50 H V C CNN
F1 "0686F0500-01-HD_Other" 0 -100 50 H V C CNN
F2 "HD_Other:F0603" 0 -200 50 H I C CNN
F3 "" 0 200 50 H I C CNN
F4 "2834860" 0 -700 50 H I C CNN "Farnell"
F5 "C1F-500" 0 -800 50 H I C CNN "TME"
F6 "530-0686F0500-01" 0 -600 50 H I C CNN "Mouser"
F7 "507-2156-1-ND" 0 -500 50 H I C CNN "Digikey"
F8 "Bel Fuse Inc." 0 -300 50 H I C CNN "Manufacturer"
F9 "0686F0500-01" 0 -400 50 H I C CNN "Code"
F10 "Eaton - Electronics Division" 1050 -300 50 H I C CNN "Alt_Manufacturer"
F11 "CC06FA500MA-TR" 1100 -400 50 H I C CNN "Alt_Code"
DRAW
S 100 -30 -100 30 1 1 10 N
P 2 1 1 0 -100 0 100 0 N
X ~ 1 -150 0 50 R 50 50 1 1 P
X ~ 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# 0ZCJ0010FF2E-HD_Other
#
DEF 0ZCJ0010FF2E-HD_Other F 0 40 Y Y 1 F N
F0 "F" 0 200 50 H V C CNN
F1 "0ZCJ0010FF2E-HD_Other" 0 -100 50 H V C CNN
F2 "HD_Other:F1206" 0 -200 50 H I C CNN
F3 "" 0 200 50 H I C CNN
F4 "Bel Fuse Inc." 0 -300 50 H I C CNN "Manufacturer"
F5 "0ZCJ0010FF2E" 0 -400 50 H I C CNN "Code"
F6 "Eaton - Electronics Division" 1050 -300 50 H I C CNN "Alt_Manufacturer"
F7 "PTS120660V010" 1100 -400 50 H I C CNN "Alt_Code"
F8 "507-1794-1-ND" 0 -500 50 H I C CNN "Digikey"
F9 "530-0ZCJ0010FF2E" 0 -600 50 H I C CNN "Mouser"
F10 "2834880" 0 -700 50 H I C CNN "Farnell"
F11 " 0ZCJ0010FF2E" 0 -800 50 H I C CNN "TME"
DRAW
S 100 -30 -100 30 1 1 10 N
P 2 1 1 0 -100 0 100 0 N
X ~ 1 -150 0 50 R 50 50 1 1 P
X ~ 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# AQ12-02HTG-HD_Diodes
#
DEF AQ12-02HTG-HD_Diodes D 0 40 Y N 1 F N
F0 "D" 250 100 50 H V C CNN
F1 "AQ12-02HTG-HD_Diodes" 475 0 50 H V C CNN
F2 "HD_SOT:SOT-23" 0 -300 50 H I C CNN
F3 "" -50 600 50 H I C CNN
F4 "Littelfuse Inc." 0 -400 50 H I C CNN "Manufacturer"
F5 "AQ12-02HTG" 0 -500 50 H I C CNN "Code"
F6 "Bourns" 1000 -400 50 H I C CNN "Alt_Manufacturer"
F7 "CDSOT23-SM712" 950 -500 50 H I C CNN "Alt_Code"
F8 "18-AQ12-02HTGCT-ND" 0 -600 50 H I C CNN "Digikey"
F9 "576-AQ12-02HTG" 0 -700 50 H I C CNN "Mouser"
F10 "X" 0 -800 50 H I C CNN "Farnell"
F11 "X" 0 -900 50 H I C CNN "TME"
DRAW
S -200 150 200 -100 1 1 0 f
P 4 0 1 0 -50 100 -150 100 -100 50 -50 100 F
P 2 1 1 0 -100 100 -100 150 N
P 2 1 1 0 0 -100 0 -50 N
P 2 1 1 0 100 100 100 150 N
P 4 1 1 0 -150 0 -50 0 -100 50 -150 0 F
P 4 1 1 0 -150 60 -140 50 -60 50 -50 40 N
P 4 1 1 0 -100 0 -100 -50 100 -50 100 0 N
P 4 1 1 0 50 0 150 0 100 50 50 0 F
P 4 1 1 0 50 60 60 50 140 50 150 40 N
P 4 1 1 0 150 100 50 100 100 50 150 100 F
X 1 1 -100 250 100 D 50 50 1 1 I
X 2 2 100 250 100 D 50 50 1 1 I
X 3 3 0 -200 100 U 50 50 1 1 I
ENDDRAW
ENDDEF
#
# ASMB-KTF0-0A306-HD_Diodes
#
DEF ASMB-KTF0-0A306-HD_Diodes LD 0 40 Y N 1 F N
F0 "LD" 0 400 50 H V C CNN
F1 "ASMB-KTF0-0A306-HD_Diodes" 0 -350 50 H V C CNN
F2 "HD_Diodes:LED_ASMB-KTF0-0A306" 0 -450 50 H I C CNN
F3 "" 0 -1000 50 H I C CNN
F4 "Broadcom Limited" 0 -550 50 H I C CNN "Manufacturer"
F5 "ASMB-KTF0-0A306" 0 -650 50 H I C CNN "Code"
F6 "516-3906-1-ND" 0 -750 50 H I C CNN "Digikey"
F7 "630-ASMB-KTF0-0A306" 0 -850 50 H I C CNN "Mouser"
F8 "2858363" 0 -950 50 H I C CNN "Farnell"
F9 "X" 0 -1050 50 H I C CNN "TME"
DRAW
T 0 0 -100 50 0 0 0 BLUE Normal 0 C C
T 0 0 100 50 0 0 0 GREEN Normal 0 C C
T 0 0 300 50 0 0 0 RED Normal 0 C C
S -200 350 200 -300 0 0 0 f
P 2 0 1 0 -200 -200 -50 -200 N
P 2 0 1 0 -200 0 -50 0 N
P 2 0 1 0 -200 200 -50 200 N
P 2 0 1 0 150 0 50 0 N
P 3 0 1 0 50 200 150 200 150 0 N
P 4 0 1 0 50 -200 150 -200 150 0 200 0 N
P 2 1 1 0 -50 -200 50 -200 N
P 2 1 1 8 -50 -150 -50 -250 N
P 2 1 1 0 -50 0 50 0 N
P 2 1 1 8 -50 50 -50 -50 N
P 2 1 1 0 -50 200 50 200 N
P 2 1 1 8 -50 250 -50 150 N
P 4 1 1 8 50 -150 50 -250 -50 -200 50 -150 N
P 4 1 1 8 50 50 50 -50 -50 0 50 50 N
P 4 1 1 8 50 250 50 150 -50 200 50 250 N
P 5 1 1 0 -120 -170 -180 -110 -150 -110 -180 -110 -180 -140 N
P 5 1 1 0 -120 30 -180 90 -150 90 -180 90 -180 60 N
P 5 1 1 0 -120 230 -180 290 -150 290 -180 290 -180 260 N
P 5 1 1 0 -70 -170 -130 -110 -100 -110 -130 -110 -130 -140 N
P 5 1 1 0 -70 30 -130 90 -100 90 -130 90 -130 60 N
P 5 1 1 0 -70 230 -130 290 -100 290 -130 290 -130 260 N
X A 1 300 0 100 L 50 50 1 1 P
X K 2 -300 200 100 R 50 50 1 1 P
X K 3 -300 0 100 R 50 50 1 1 P
X K 4 -300 -200 100 R 50 50 1 1 P
ENDDRAW
ENDDEF
#
# C0402_100nF_50V_X7R-HD_Capacitors
#
DEF C0402_100nF_50V_X7R-HD_Capacitors C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "C0402_100nF_50V_X7R-HD_Capacitors" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "100nF" 250 50 50 H V C CNN "Capacitance"
F5 "50V" 200 -50 50 H V C CNN "Voltage"
F6 "X7R" 0 0 50 H I C CNN "Dielectric"
F7 "Murata Electronics" 0 -400 50 H I C CNN "Manufacturer"
F8 "GRM155R71H104KE14D" 0 -500 50 H I C CNN "Code"
F9 "490-10700-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "81-GRM155R71H104KE4D" 0 -700 50 H I C CNN "Mouser"
F11 "2611912" 0 -800 50 H I C CNN "Farnell"
F12 "GRM155R71H104KE14D" 0 -900 50 H I C CNN "TME"
F13 "TDK Corporation" 900 -400 50 H I C CNN "Alt_Manufacturer"
F14 "C1005X7R1H104K050BB" 900 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# C0402_1uF_35V_X5R-HD_Capacitors
#
DEF C0402_1uF_35V_X5R-HD_Capacitors C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "C0402_1uF_35V_X5R-HD_Capacitors" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "1uF" 200 50 50 H V C CNN "Capacitance"
F5 "35V" 200 -50 50 H V C CNN "Voltage"
F6 "X5R" 0 0 50 H I C CNN "Dielectric"
F7 "TDK Corporation" 0 -400 50 H I C CNN "Manufacturer"
F8 "C1005X5R1V105K050BE" 0 -500 50 H I C CNN "Code"
F9 "445-175218-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "810-C1005X5R1V105K" 0 -700 50 H I C CNN "Mouser"
F11 "3416060" 0 -800 50 H I C CNN "Farnell"
F12 "X" 0 -900 50 H I C CNN "TME"
F13 "Kyocera International Inc. Electronic Components" 900 -400 50 H I C CNN "Alt_Manufacturer"
F14 "CM05X5R105K35AH" 900 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# C0603_10uF_16V_X5R-HD_Capacitors
#
DEF C0603_10uF_16V_X5R-HD_Capacitors C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "C0603_10uF_16V_X5R-HD_Capacitors" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C0603" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "10uF" 200 50 50 H V C CNN "Capacitance"
F5 "16V" 200 -50 50 H V C CNN "Voltage"
F6 "X5R" 0 0 50 H I C CNN "Dielectric"
F7 "Taiyo Yuden" 0 -400 50 H I C CNN "Manufacturer"
F8 "EMK107BBJ106MA-T" 0 -500 50 H I C CNN "Code"
F9 "587-3238-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "963-EMK107BBJ106MA-T" 0 -700 50 H I C CNN "Mouser"
F11 "2779064" 0 -800 50 H I C CNN "Farnell"
F12 "CL10A106MO8NQNC" 0 -900 50 H I C CNN "TME"
F13 "Murata Electronics" 950 -400 50 H I C CNN "Alt_Manufacturer"
F14 "GRM188R61C106MA73D" 950 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# C1210_22uF_35V_X5R-HD_Capacitors
#
DEF C1210_22uF_35V_X5R-HD_Capacitors C 0 40 N N 1 F N
F0 "C" 200 150 50 H V C CNN
F1 "C1210_22uF_35V_X5R-HD_Capacitors" 0 -200 50 H I C CNN
F2 "HD_Capacitors:C1210" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "22uF" 200 50 50 H V C CNN "Capacitance"
F5 "35V" 200 -50 50 H V C CNN "Voltage"
F6 "X5R" 0 0 50 H I C CNN "Dielectric"
F7 "Taiyo Yuden" 0 -400 50 H I C CNN "Manufacturer"
F8 "GMK325BJ226MM-P" 0 -500 50 H I C CNN "Code"
F9 "587-5853-1-ND" 0 -600 50 H I C CNN "Digikey"
F10 "963-GMK325BJ226MM-P" 0 -700 50 H I C CNN "Mouser"
F11 "X" 0 -800 50 H I C CNN "Farnell"
F12 "X" 0 -900 50 H I C CNN "TME"
F13 "Taiyo Yuden" 950 -400 50 H I C CNN "Alt_Manufacturer"
F14 "GMK325BJ226MM-T" 950 -500 50 H I C CNN "Alt_Code"
DRAW
P 2 1 1 20 -80 -30 80 -30 N
P 2 1 1 20 -80 30 80 30 N
X ~ 1 0 150 110 D 50 50 1 1 P
X ~ 2 0 -150 110 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# GND-HD_Power_Symbols
#
DEF GND-HD_Power_Symbols #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -250 50 H I C CNN
F1 "GND-HD_Power_Symbols" 0 -150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -25 -75 25 -75 N
P 2 0 1 0 -5 -100 5 -100 N
P 2 0 1 0 0 -50 0 0 N
P 2 0 1 0 50 -50 -50 -50 N
X GND 1 0 0 0 D 50 50 1 1 W N
ENDDRAW
ENDDEF
#
# JST_ZH5_Side_Entry_S5B-ZR-SM4A-TF-HD_Connectors
#
DEF JST_ZH5_Side_Entry_S5B-ZR-SM4A-TF-HD_Connectors J 0 1 Y N 1 F N
F0 "J" 50 300 50 H V C CNN
F1 "JST_ZH5_Side_Entry_S5B-ZR-SM4A-TF-HD_Connectors" 50 -300 50 H V C CNN
F2 "HD_Connectors:JST_ZH_5PIN_S5B-ZR-SM4A-TF" 50 -400 50 H I C CNN
F3 "" -450 -300 50 H I C CNN
F4 "455-1696-1-ND" 50 -500 50 H I C CNN "Digikey"
F5 "X" 50 -600 50 H I C CNN "Mouser"
F6 "2399336" 50 -700 50 H I C CNN "Farnell"
F7 "S5B-ZR-SM4A-TF" 50 -800 50 H I C CNN "TME"
DRAW
S 0 250 100 -250 0 1 0 f
X MH 0 200 -200 100 L 50 50 1 1 I
X 1 1 -100 200 100 R 50 50 1 1 B
X 2 2 -100 100 100 R 50 50 1 1 B
X 3 3 -100 0 100 R 50 50 1 1 I
X 4 4 -100 -100 100 R 50 50 1 1 I
X 5 5 -100 -200 100 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# MAX15062C-HD_PMICs
#
DEF MAX15062C-HD_PMICs U 0 40 Y Y 1 F N
F0 "U" -350 300 50 H V C CNN
F1 "MAX15062C-HD_PMICs" 100 300 50 H V C CNN
F2 "HD_DFN_QFN:TDFN-8-1EP_2x2mm_P0.5mm" 0 -450 50 H I C CNN
F3 "" -150 300 50 H I C CNN
F4 "Maxim Integrated" 0 -550 50 H I C CNN "Manufacturer"
F5 "MAX15062CATA+T" 0 -650 50 H I C CNN "Code"
F6 "MAX15062CATA+TCT-ND" 0 -750 50 H I C CNN "Digikey"
F7 "700-MAX15062CATA+T" 0 -850 50 H I C CNN "Mouser"
F8 "X" 0 -1050 50 H I C CNN "TME"
F9 "2516652" 0 -950 50 H I C CNN "Farnell"
DRAW
S -450 250 450 -250 0 1 0 f
X VIN 1 -550 200 100 R 50 50 1 1 I
X EN/UVLO 2 -550 100 100 R 50 50 1 1 I
X VCC 3 -550 -200 100 R 50 50 1 1 I
X FB/VOUT 4 550 100 100 L 50 50 1 1 I
X MODE 5 -550 -100 100 R 50 50 1 1 I
X nRST 6 -550 0 100 R 50 50 1 1 I
X GND 7 0 -350 100 U 50 50 1 1 I
X LX 8 550 200 100 L 50 50 1 1 w
ENDDRAW
ENDDEF
#
# NRS4018T330MDGJ-HD_Inductors
#
DEF NRS4018T330MDGJ-HD_Inductors L 0 40 N N 1 F N
F0 "L" 0 200 50 H V C CNN
F1 "NRS4018T330MDGJ-HD_Inductors" 0 -50 50 H V C CNN
F2 "HD_Inductors:L_NR40xx" 0 -150 50 H I C CNN
F3 "" 0 350 50 H I C CNN
F4 "33uH" 0 100 50 H V C CNN "Inductance"
F5 "550mA" 250 100 50 H I C CNN "Current Rating"
F6 "Taiyo Yuden" 0 -250 50 H I C CNN "Manufacturer"
F7 "NRS4018T330MDGJ" 0 -350 50 H I C CNN "Code"
F8 "587-2891-1-ND" 0 -450 50 H I C CNN "Digikey"
F9 "963-NRS4018T330MDGJ" 0 -550 50 H I C CNN "Mouser"
F10 "X" 0 -650 50 H I C CNN "Farnell"
F11 "X" 0 -750 50 H I C CNN "TME"
DRAW
A -75 0 25 1 1799 1 1 0 N -50 0 -100 0
A -25 0 25 1 1799 1 1 0 N 0 0 -50 0
A 25 0 25 1 1799 1 1 0 N 50 0 0 0
A 75 0 25 1 1799 1 1 0 N 100 0 50 0
X 1 1 -150 0 50 R 50 50 1 1 P
X 2 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# NRS4018T470MDGJ-HD_Inductors
#
DEF NRS4018T470MDGJ-HD_Inductors L 0 40 N N 1 F N
F0 "L" 0 200 50 H V C CNN
F1 "NRS4018T470MDGJ-HD_Inductors" 0 -50 50 H V C CNN
F2 "HD_Inductors:L_NR40xx" 0 -150 50 H I C CNN
F3 "" 0 350 50 H I C CNN
F4 "47uH" 0 100 50 H V C CNN "Inductance"
F5 "440mA" 250 100 50 H I C CNN "Current Rating"
F6 "Taiyo Yuden" 0 -250 50 H I C CNN "Manufacturer"
F7 "NRS4018T470MDGJ" 0 -350 50 H I C CNN "Code"
F8 "587-5935-1-ND" 0 -450 50 H I C CNN "Digikey"
F9 "963-NRS4018T470MDGJ" 0 -550 50 H I C CNN "Mouser"
F10 "X" 0 -650 50 H I C CNN "Farnell"
F11 "X" 0 -750 50 H I C CNN "TME"
DRAW
A -75 0 25 1 1799 1 1 0 N -50 0 -100 0
A -25 0 25 1 1799 1 1 0 N 0 0 -50 0
A 25 0 25 1 1799 1 1 0 N 50 0 0 0
A 75 0 25 1 1799 1 1 0 N 100 0 50 0
X 1 1 -150 0 50 R 50 50 1 1 P
X 2 2 150 0 50 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# NX3020NAKV,115-HD_Transistors
#
DEF NX3020NAKV,115-HD_Transistors Q 0 40 Y Y 2 L N
F0 "Q" -250 250 50 H V C CNN
F1 "NX3020NAKV,115-HD_Transistors" -100 -200 50 H V C CNN
F2 "HD_SOT:SOT563-6" 0 -350 50 H I C CNN
F3 "" 0 -350 50 H I C CNN
F4 "Nexperia USA Inc." 0 -450 50 H I C CNN "Manufacturer"
F5 "NX3020NAKV,115" 0 -550 50 H I C CNN "Code"
F6 "ON Semiconductor" 950 -450 50 H I C CNN "Alt_Manufacturer"
F7 "FDY3000NZCT-ND" 950 -550 50 H I C CNN "Alt_Code"
F8 "1727-1287-1-ND" 0 -650 50 H I C CNN "Digikey"
F9 "771-NX3020NAKV115" 0 -750 50 H I C CNN "Mouser"
F10 "2311182" 0 -850 50 H I C CNN "Farnell"
F11 "X" 0 -950 50 H I C CNN "TME"
DRAW
S -300 200 300 -150 1 1 0 f
S -300 200 300 -150 2 1 0 f
P 2 1 1 0 -120 10 -110 10 N
P 2 1 1 0 -120 15 -110 15 N
P 2 1 1 0 -115 0 -130 -20 N
P 2 1 1 0 -115 0 -130 20 N
P 2 1 1 0 -115 0 -100 -20 N
P 2 1 1 0 -115 0 -100 20 N
P 2 1 1 0 -115 100 -115 -100 N
P 2 1 1 0 -110 -15 -120 -15 N
P 2 1 1 0 -110 -10 -120 -10 N
P 2 1 1 0 -75 0 75 0 N
P 2 1 1 0 -50 20 -50 100 N
P 2 1 1 0 -50 100 -300 100 N
P 2 1 1 0 -50 100 0 100 N
P 2 1 1 0 -10 135 -10 140 N
P 2 1 1 0 -10 165 -10 140 N
P 2 1 1 0 0 -50 0 -10 N
P 2 1 1 0 0 -10 0 0 N
P 2 1 1 0 0 20 -15 40 N
P 2 1 1 0 0 50 0 20 N
P 2 1 1 0 0 100 0 50 N
P 2 1 1 0 50 25 50 20 N
P 3 1 1 0 -300 -100 0 -100 0 -50 N
P 3 1 1 0 -130 20 -105 20 -100 20 N
P 3 1 1 0 -100 -20 -125 -20 -130 -20 N
P 3 1 1 0 -65 20 -40 20 -35 20 N
P 3 1 1 0 -15 20 10 20 15 20 N
P 3 1 1 0 -15 40 15 40 0 20 N
P 3 1 1 0 -10 40 -10 35 -5 35 N
P 3 1 1 0 -5 35 10 35 10 40 N
P 3 1 1 0 -5 140 -5 155 -5 160 N
P 3 1 1 0 35 20 60 20 65 20 N
P 3 1 1 0 50 25 50 100 300 100 N
P 4 1 1 0 -125 20 -125 15 -105 20 -105 15 N
P 4 1 1 0 -115 100 -115 150 115 150 115 100 N
P 4 1 1 0 -105 -20 -105 -15 -125 -20 -125 -15 N
P 4 1 1 0 -10 160 -10 140 5 150 -10 160 N
P 4 1 1 0 -5 35 5 35 0 30 -5 35 N
P 4 1 1 0 15 150 -15 170 -15 130 15 150 N
P 4 1 1 0 15 150 15 170 15 150 15 130 N
P 5 1 1 0 -145 -10 -135 0 -115 0 -95 0 -85 10 N
P 2 2 1 0 -120 10 -110 10 N
P 2 2 1 0 -120 15 -110 15 N
P 2 2 1 0 -115 0 -130 -20 N
P 2 2 1 0 -115 0 -130 20 N
P 2 2 1 0 -115 0 -100 -20 N
P 2 2 1 0 -115 0 -100 20 N
P 2 2 1 0 -115 100 -115 -100 N
P 2 2 1 0 -110 -15 -120 -15 N
P 2 2 1 0 -110 -10 -120 -10 N
P 2 2 1 0 -75 0 75 0 N
P 2 2 1 0 -50 20 -50 100 N
P 2 2 1 0 -50 100 -300 100 N
P 2 2 1 0 -10 135 -10 140 N
P 2 2 1 0 -10 165 -10 140 N
P 2 2 1 0 0 -50 0 -10 N
P 2 2 1 0 0 -10 0 0 N
P 2 2 1 0 0 20 -15 40 N
P 2 2 1 0 0 50 0 20 N
P 2 2 1 0 0 100 -50 100 N
P 2 2 1 0 0 100 0 50 N
P 2 2 1 0 50 20 50 100 N
P 2 2 1 0 300 100 50 100 N
P 3 2 1 0 -300 -100 0 -100 0 -50 N
P 3 2 1 0 -130 20 -105 20 -100 20 N
P 3 2 1 0 -100 -20 -125 -20 -130 -20 N
P 3 2 1 0 -65 20 -40 20 -35 20 N
P 3 2 1 0 -15 20 10 20 15 20 N
P 3 2 1 0 -15 40 15 40 0 20 N
P 3 2 1 0 -10 40 -10 35 -5 35 N
P 3 2 1 0 -5 35 10 35 10 40 N
P 3 2 1 0 -5 140 -5 155 -5 160 N
P 3 2 1 0 35 20 60 20 65 20 N
P 4 2 1 0 -125 20 -125 15 -105 20 -105 15 N
P 4 2 1 0 -115 100 -115 150 115 150 115 100 N
P 4 2 1 0 -105 -20 -105 -15 -125 -20 -125 -15 N
P 4 2 1 0 -10 160 -10 140 5 150 -10 160 N
P 4 2 1 0 -5 35 5 35 0 30 -5 35 N
P 4 2 1 0 15 150 -15 170 -15 130 15 150 N
P 4 2 1 0 15 150 15 170 15 150 15 130 N
P 5 2 1 0 -145 -10 -135 0 -115 0 -95 0 -85 10 N
X S1 1 -400 100 100 R 50 50 1 1 B
X G1 2 -400 -100 100 R 50 50 1 1 B
X D1 6 400 100 100 L 50 50 1 1 B
X D2 3 400 100 100 L 50 50 2 1 B
X S2 4 -400 100 100 R 50 50 2 1 B
X G2 5 -400 -100 100 R 50 50 2 1 B
ENDDRAW
ENDDEF
#
# PMEG2005EJ115-HD_Diodes
#
DEF PMEG2005EJ115-HD_Diodes D 0 40 N N 1 F N
F0 "D" 0 100 50 H V C CNN
F1 "PMEG2005EJ115-HD_Diodes" 0 -100 50 H V C CNN
F2 "HD_Diodes:D_SOD-323F" 0 -200 50 H I C CNN
F3 "" 0 -300 50 H I C CNN
F4 "Nexperia" 0 -300 50 H I C CNN "Manufacturer"
F5 " 771-PMEG2005EJ115" 0 -400 50 H I C CNN "Code"
F6 "1727-3854-1-ND" 0 -500 50 H I C CNN "Digikey"
F7 "771-PMEG2005EJ115" 0 -600 50 H I C CNN "Mouser"
F8 "1757760" 0 -700 50 H I C CNN "Farnell"
F9 "PMEG2005EJ.115" 0 -800 50 H I C CNN "TME"
$FPLIST
TO-???*
*_Diode_*
*SingleDiode*
D_*
$ENDFPLIST
DRAW
P 2 1 1 0 50 0 -50 0 N
P 4 1 1 8 50 50 50 -50 -50 0 50 50 N
P 6 1 1 8 -75 25 -75 50 -50 50 -50 -50 -25 -50 -25 -25 N
X K 1 -150 0 100 R 50 50 1 1 P
X A 2 150 0 100 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# R0402_100k_5%_1d16W-HD_Resistors
#
DEF R0402_100k_5%_1d16W-HD_Resistors R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "R0402_100k_5%_1d16W-HD_Resistors" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "100k" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "5%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "RC0402JR-07100KL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402FT100K" 800 -500 50 H I C CNN "Alt_Code"
F11 "311-100KJRCT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402JR-07100KL" 0 -700 50 H I C CNN "Mouser"
F13 "9233008" 0 -800 50 H I C CNN "Farnell"
F14 "RC0402JR-07100KL" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# R0402_10k_5%_1d16W-HD_Resistors
#
DEF R0402_10k_5%_1d16W-HD_Resistors R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "R0402_10k_5%_1d16W-HD_Resistors" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "10k" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "5%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "RC0402JR-0710KL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402JT10K0" 800 -500 50 H I C CNN "Alt_Code"
F11 "311-10KJRCT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402JR-0710KL" 0 -700 50 H I C CNN "Mouser"
F13 "*" 0 -800 50 H I C CNN "Farnell"
F14 "SMD0402-10K" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# R0402_120R_1%_1d16W-HD_Resistors
#
DEF R0402_120R_1%_1d16W-HD_Resistors R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "R0402_120R_1%_1d16W-HD_Resistors" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "120R" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "RC0402JR-07120RL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402JT120R" 800 -500 50 H I C CNN "Alt_Code"
F11 "311-120JRCT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402JR-07120RL" 0 -700 50 H I C CNN "Mouser"
F13 "9232656" 0 -800 50 H I C CNN "Farnell"
F14 "RC0402FR-07120RL" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# R0402_1k_1%_1d16W-HD_Resistors
#
DEF R0402_1k_1%_1d16W-HD_Resistors R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "R0402_1k_1%_1d16W-HD_Resistors" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "1k" 100 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "AC0402FR-071KL" 0 -500 50 H I C CNN "Code"
F9 "TE Connectivity Passive Product" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "CRGCQ0402F1K0" 800 -500 50 H I C CNN "Alt_Code"
F11 "311-1KLBCT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402JR-131KL" 0 -700 50 H I C CNN "Mouser"
F13 "3495181" 0 -800 50 H I C CNN "Farnell"
F14 "SMD0402-1K" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# R0402_267k_1%_1d16W-HD_Resistors
#
DEF R0402_267k_1%_1d16W-HD_Resistors R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "R0402_267k_1%_1d16W-HD_Resistors" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "267k" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "AC0402FR-07267KL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402FT267KCT-ND" 800 -500 50 H I C CNN "Alt_Code"
F11 "YAG5275CT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-AC0402FR-07267KL " 0 -700 50 H I C CNN "Mouser"
F13 "2140969" 0 -800 50 H I C CNN "Farnell"
F14 "X" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# R0402_453k_1%_1d16W-HD_Resistors
#
DEF R0402_453k_1%_1d16W-HD_Resistors R 0 40 N N 1 F N
F0 "R" 100 50 50 H V C CNN
F1 "R0402_453k_1%_1d16W-HD_Resistors" 0 -200 50 H I C CNN
F2 "HD_Resistors:R0402" 0 -300 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "453k" 150 -50 50 H V C CNN "Resistance"
F5 "1/16W" 300 50 50 H I C CNN "Power"
F6 "1%" 300 -50 50 H I C CNN "Precision"
F7 "Yageo" 0 -400 50 H I C CNN "Manufacturer"
F8 "RC0402FR-07453KL" 0 -500 50 H I C CNN "Code"
F9 "Stackpole Electronics Inc" 800 -400 50 H I C CNN "Alt_Manufacturer"
F10 "RMCF0402FT453K" 800 -500 50 H I C CNN "Alt_Code"
F11 "YAG3164CT-ND" 0 -600 50 H I C CNN "Digikey"
F12 "603-RC0402FR-07453KL" 0 -700 50 H I C CNN "Mouser"
F13 "2140999" 0 -800 50 H I C CNN "Farnell"
F14 "RC0402FR-07453KL" 0 -900 50 H I C CNN "TME"
DRAW
S -40 -100 40 100 1 1 10 N
X ~ 1 0 150 50 D 50 50 1 1 P
X ~ 2 0 -150 50 U 50 50 1 1 P
ENDDRAW
ENDDEF
#
# SCD40-D-R2-HD_Sensors
#
DEF SCD40-D-R2-HD_Sensors U 0 40 Y Y 1 F N
F0 "U" 0 350 50 H V C CNN
F1 "SCD40-D-R2-HD_Sensors" 0 250 50 H V C CNN
F2 "HD_Sensors:SCD4x" 0 -250 50 H I C CNN
F3 "" 0 50 50 H I C CNN
F4 "Sensirion AG" 0 -350 50 H I C CNN "Manufacturer"
F5 "SCD40-D-R2" 0 -450 50 H I C CNN "Code"
F6 "1649-SCD40-D-R2CT-ND" 0 -550 50 H I C CNN "Digikey"
F7 "X" 0 -650 50 H I C CNN "Mouser"
F8 "X" 0 -750 50 H I C CNN "Farnell"
F9 "X" 0 -850 50 H I C CNN "TME"
DRAW
S 250 200 -250 -200 0 1 0 f
X VSS 0 -350 -150 100 R 50 50 1 1 W N
X DNC 1 -50 150 100 R 50 50 1 1 N N
X SDA 10 350 50 100 L 50 50 1 1 B
X DNC 11 -200 150 100 R 50 50 1 1 N N
X DNC 12 -200 100 100 R 50 50 1 1 N N
X DNC 13 -200 50 100 R 50 50 1 1 N N
X DNC 14 -50 50 100 R 50 50 1 1 N N
X DNC 15 -200 0 100 R 50 50 1 1 N N
X DNC 16 -50 0 100 R 50 50 1 1 N N
X DNC 17 -200 -50 100 R 50 50 1 1 N N
X DNC 18 -50 -50 100 R 50 50 1 1 N N
X VDDH 19 -350 50 100 R 50 50 1 1 W
X DNC 2 -200 -100 100 R 50 50 1 1 N N
X VSS 20 -350 -150 100 R 50 50 1 1 W N
X DNC 3 -50 -100 100 R 50 50 1 1 N N
X DNC 4 -200 -150 100 R 50 50 1 1 N N
X DNC 5 -50 -150 100 R 50 50 1 1 N N
X VSS 6 -350 -150 100 R 50 50 1 1 W
X VDD 7 -350 150 100 R 50 50 1 1 W
X DNC 8 -50 100 100 R 50 50 1 1 N N
X SCL 9 350 -50 100 L 50 50 1 1 B
ENDDRAW
ENDDEF
#
# SD24-7-HD_Diodes
#
DEF SD24-7-HD_Diodes D 0 40 N N 1 F N
F0 "D" 0 100 50 H V C CNN
F1 "SD24-7-HD_Diodes" 0 -100 50 H V C CNN
F2 "HD_Diodes:D_SOD-323" 0 -200 50 H I C CNN
F3 "" 0 -300 50 H I C CNN
F4 "Diodes Incorporated" 0 -300 50 H I C CNN "Manufacturer"
F5 "SD24-7" 0 -400 50 H I C CNN "Code"
F6 "31-SD24-7CT-ND" 0 -500 50 H I C CNN "Digikey"
F7 "621-SD24-7" 0 -600 50 H I C CNN "Mouser"
F8 "X" 0 -700 50 H I C CNN "Farnell"
F9 "X" 0 -800 50 H I C CNN "TME"
$FPLIST
TO-???*
*_Diode_*
*SingleDiode*
D_*
$ENDFPLIST
DRAW
P 2 1 1 0 50 0 -50 0 N
P 4 1 1 0 -75 50 -50 25 -50 -25 -25 -50 N
P 4 1 1 8 50 50 50 -50 -50 0 50 50 N
X K 1 -150 0 100 R 50 50 1 1 P
X A 2 150 0 100 L 50 50 1 1 P
ENDDRAW
ENDDEF
#
# SHT40-AD1B-R2-HD_Sensors
#
DEF SHT40-AD1B-R2-HD_Sensors U 0 40 Y Y 1 F N
F0 "U" 0 350 50 H V C CNN
F1 "SHT40-AD1B-R2-HD_Sensors" 0 250 50 H V C CNN
F2 "HD_Sensors:SHT4x" 0 -250 50 H I C CNN
F3 "" 0 50 50 H I C CNN
F4 "Sensirion AG" 0 -350 50 H I C CNN "Manufacturer"
F5 "SHT40-AD1B-R2" 0 -450 50 H I C CNN "Code"
F6 "1649-SHT40-AD1B-R2CT-ND" 0 -550 50 H I C CNN "Digikey"
F7 "403-SHT40-AD1B-R2" 0 -650 50 H I C CNN "Mouser"
F8 "3586476" 0 -750 50 H I C CNN "Farnell"
F9 "SHT40-AD1B-R2" 0 -850 50 H I C CNN "TME"
DRAW
S 250 200 -250 -200 0 1 0 f
X SDA 1 350 50 100 L 50 50 1 1 B
X SCL 2 350 -50 100 L 50 50 1 1 B
X VDD 3 -350 150 100 R 50 50 1 1 W
X VSS 4 -350 -150 100 R 50 50 1 1 W
ENDDRAW
ENDDEF
#
# STM32L011F4U6TR-HD_MCUs
#
DEF STM32L011F4U6TR-HD_MCUs U 0 40 Y Y 1 F N
F0 "U" -300 600 50 H V C CNN
F1 "STM32L011F4U6TR-HD_MCUs" 450 600 50 H V C CNN
F2 "HD_DFN_QFN:ST_UFQFPN-20_3x3mm_P0.5mm" 0 -750 50 H I C CNN
F3 "" -50 800 50 H I C CNN
F4 "STMicroelectronics" 0 -850 50 H I C CNN "Manufacturer"
F5 "STM32L011F4U6TR" 0 -950 50 H I C CNN "Code"
F6 "497-17478-1-ND" 0 -1050 50 H I C CNN "Digikey"
F7 "511-STM32L011F4U6TR" 0 -1150 50 H I C CNN "Mouser"
F8 "2851005" 0 -1250 50 H I C CNN "Farnell"
F9 "STM32L011F4U6TR" 0 -1350 50 H I C CNN "TME"
DRAW
S -350 -550 350 550 1 1 10 f
X PC14 1 -450 150 100 R 50 50 1 1 B
X PA7 10 450 -50 100 L 50 50 1 1 B
X PB1 11 -450 -150 100 R 50 50 1 1 B
X VSS 12 -50 -650 100 U 50 50 1 1 W
X VDD 13 -50 650 100 D 50 50 1 1 W
X PA9 14 450 -150 100 L 50 50 1 1 B
X PA10 15 450 -250 100 L 50 50 1 1 B
X PA13 16 450 -350 100 L 50 50 1 1 B
X PA14 17 450 -450 100 L 50 50 1 1 B
X PB6 18 -450 -250 100 R 50 50 1 1 B
X PB7 19 -450 -350 100 R 50 50 1 1 B
X PC15 2 -450 50 100 R 50 50 1 1 B
X PB9 20 -450 -450 100 R 50 50 1 1 B
X NRST 3 -450 450 100 R 50 50 1 1 I
X VDDA 4 50 650 100 D 50 50 1 1 W
X PA0 5 450 450 100 L 50 50 1 1 B
X PA1 6 450 350 100 L 50 50 1 1 B
X PA4 7 450 250 100 L 50 50 1 1 B
X PA5 8 450 150 100 L 50 50 1 1 B
X PA6 9 450 50 100 L 50 50 1 1 B
ENDDRAW
ENDDEF
#
# SWD_Connector-HD_Connectors
#
DEF SWD_Connector-HD_Connectors SWD 0 1 Y Y 1 F N
F0 "SWD" 100 300 50 H V C CNN
F1 "SWD_Connector-HD_Connectors" 50 -300 50 H V C CNN
F2 "HD_Connectors:SWD_Connector_for_PogoHeader" 50 -400 50 H I C CNN
F3 "" -450 -300 50 H I C CNN
F4 "X" 50 -600 50 H I C CNN "Mouser"
F5 "X" 50 -700 50 H I C CNN "Farnell"
F6 "X" 50 -800 50 H I C CNN "TME"
F7 "X" 50 -500 50 H I C CNN "Digikey"
DRAW
S 0 250 250 -250 0 1 0 f
X 3V3 1 -100 200 100 R 50 50 1 1 B
X GND 2 -100 100 100 R 50 50 1 1 B
X SWDIO 3 -100 0 100 R 50 50 1 1 I
X SWCLK 4 -100 -100 100 R 50 50 1 1 I
X NRST 5 -100 -200 100 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# Sullins_SWR204-NRTN-D02-RA-GA-HD_Connectors
#
DEF Sullins_SWR204-NRTN-D02-RA-GA-HD_Connectors J 0 40 Y N 1 F N
F0 "J" 50 250 50 H V C CNN
F1 "Sullins_SWR204-NRTN-D02-RA-GA-HD_Connectors" 50 350 50 H I C CNN
F2 "HD_Connectors:Sullins_SWR204-NRTN-D02-RA-GA" 0 -250 50 H I C CNN
F3 "" 0 0 50 H I C CNN
F4 "Sullins Connector Solutions" 0 -350 50 H I C CNN "Manufacturer"
F5 "SWR204-NRTN-D02-RA-GA" 0 -450 50 H I C CNN "Code"
F6 "S9461-ND" 0 -550 50 H I C CNN "Digikey"
F7 "X" 0 -650 50 H I C CNN "Mouser"
F8 "X" 0 -750 50 H I C CNN "Farnell"
F9 "X" 0 -850 50 H I C CNN "TME"
DRAW
S 0 200 100 -200 0 1 0 f
X 1 1 -100 150 100 R 50 50 1 1 I
X 2 2 -100 50 100 R 50 50 1 1 I
X 3 3 -100 -50 100 R 50 50 1 1 I
X 4 4 -100 -150 100 R 50 50 1 1 I
ENDDRAW
ENDDEF
#
# THVD1450DRBR-HD_Communication
#
DEF THVD1450DRBR-HD_Communication U 0 40 Y Y 1 F N
F0 "U" -250 450 50 H V C CNN
F1 "THVD1450DRBR-HD_Communication" 350 450 50 H V C CNN
F2 "HD_SON:Texas_VSON8" 0 -650 50 H I C CNN
F3 "" 0 450 50 H I C CNN
F4 "Texas Instruments" 0 -750 50 H I C CNN "Manufacturer"
F5 "THVD1450DRBR" 0 -850 50 H I C CNN "Code"
F6 "296-THVD1450DRBRCT-ND" 0 -950 50 H I C CNN "Digikey"
F7 "595-THVD1450DRBR" 0 -1050 50 H I C CNN "Mouser"
F8 "X" 0 -1150 50 H I C CNN "Farnell"
F9 "X" 0 -1250 50 H I C CNN "TME"
DRAW
C -12 -145 14 1 1 10 F
C -1 59 14 1 1 10 F
C 65 75 14 1 1 10 F
S -300 400 300 -500 1 1 10 f
S 50 125 50 125 1 1 0 N
P 2 1 1 10 -160 -200 -75 -200 N
P 2 1 1 10 -160 100 -50 100 N
P 2 1 1 10 -50 -126 -50 -136 N
P 2 1 1 10 -25 -200 210 -200 N
P 3 1 1 10 -160 -100 -50 -100 -50 -125 N
P 3 1 1 10 0 50 0 0 -160 0 N
P 3 1 1 10 50 125 150 125 150 -200 N
P 3 1 1 10 100 75 100 -150 0 -150 N
P 4 1 1 10 -75 -125 -75 -225 25 -175 -75 -125 N
P 4 1 1 10 -50 100 50 150 50 50 -50 100 N
P 4 1 1 10 75 75 175 75 175 100 210 100 N
X ePAD 0 0 -600 100 U 50 50 1 1 I N
X RO 1 -400 100 100 R 50 50 1 1 O
X ~RE 2 -400 0 100 R 50 50 1 1 I
X DE 3 -400 -100 100 R 50 50 1 1 I
X DI 4 -400 -200 100 R 50 50 1 1 I
X GND 5 0 -600 100 U 50 50 1 1 W
X A 6 400 -200 100 L 50 50 1 1 B
X B 7 400 100 100 L 50 50 1 1 B
X VCC 8 0 500 100 D 50 50 1 1 W
ENDDRAW
ENDDEF
#
# VCC-HD_Power_Symbols
#
DEF VCC-HD_Power_Symbols #PWR 0 0 Y Y 1 F P
F0 "#PWR" 0 -150 50 H I C CNN
F1 "VCC-HD_Power_Symbols" 0 150 50 H V C CNN
F2 "" 0 0 50 H I C CNN
F3 "" 0 0 50 H I C CNN
DRAW
P 2 0 1 0 -30 50 0 100 N
P 2 0 1 0 0 0 0 100 N
P 2 0 1 0 0 100 30 50 N
X VCC 1 0 0 0 U 50 50 1 1 W N
ENDDRAW
ENDDEF
#
#End Library

View File

@ -1,7 +0,0 @@
(version 1)
(rule "BGA neckdown"
(constraint track_width (min 0.1mm) (opt 0.1mm) (max 0.15mm))
(constraint clearance (min 0.05mm) (opt 0.08mm))
(condition "A.insideArea('NECK')"))

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,484 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"board_outline_line_width": 0.049999999999999996,
"copper_line_width": 0.19999999999999998,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": false,
"text_position": 0,
"units_format": 1
},
"fab_line_width": 0.09999999999999999,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.09999999999999999,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.762,
"height": 1.524,
"width": 1.524
},
"silk_line_width": 0.12,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"45_degree_only": true,
"min_clearance": 0.0
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"filename": "board_design_settings.json",
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"copper_edge_clearance": "error",
"courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "error",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_dangling": "warning",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zone_has_empty_net": "error",
"zones_intersect": "error"
},
"rule_severitieslegacy_courtyards_overlap": false,
"rule_severitieslegacy_no_courtyard_defined": false,
"rules": {
"allow_blind_buried_vias": false,
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.0,
"min_copper_edge_clearance": 0.024999999999999998,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.3,
"min_microvia_drill": 0.09999999999999999,
"min_silk_clearance": 0.0,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.25,
"min_via_annular_width": 0.049999999999999996,
"min_via_diameter": 0.3,
"use_height_for_length_calcs": true
},
"track_widths": [
0.0
],
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
},
{
"diameter": 0.5,
"drill": 0.3
}
],
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "iaq_wired_sensor.kicad_pro",
"version": 1
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.25,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6
},
{
"bus_width": 12,
"clearance": 0.35,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.25,
"line_style": 0,
"microvia_diameter": 0.3,
"microvia_drill": 0.1,
"name": "24V",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6
}
],
"meta": {
"version": 3
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": [
{
"netclass": "24V",
"pattern": "Net-(D2-Pad2)"
},
{
"netclass": "24V",
"pattern": "VCC"
},
{
"netclass": "24V",
"pattern": "VIN"
}
]
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"specctra_dsn": "",
"step": "Project_Outputs/3D_MODEL/iaq_wired_sensor.step",
"vrml": ""
},
"page_layout_descr_file": "${VL_LIBS}/Sheet_Templates/VelesLabs_Kicad_Schematic_Sheet_Template.kicad_wks"
},
"schematic": {
"annotate_start_num": 0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.25,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.08
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"workbook_filename": ""
},
"page_layout_descr_file": "${VL_LIBS}/Sheet_Templates/VelesLabs_Kicad_Schematic_Sheet_Template.kicad_wks",
"plot_directory": "Project_Outputs/Schematic/",
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"99dfa524-0366-4808-b4e8-328fc38e8656",
""
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load Diff

240
PCB/iaq_wired_sensor.pro Normal file
View File

@ -0,0 +1,240 @@
update=So 25. září 2021, 15:44:51
version=1
last_client=pcbnew
[general]
version=1
RootSch=
BoardNm=
[cvpcb]
version=1
NetIExt=net
[eeschema]
version=1
LibDir=
[eeschema/libraries]
[pcbnew]
version=1
PageLayoutDescrFile=
LastNetListRead=
CopperLayerCount=2
BoardThickness=1
AllowMicroVias=0
AllowBlindVias=0
RequireCourtyardDefinitions=0
ProhibitOverlappingCourtyards=1
MinTrackWidth=0.25
MinViaDiameter=0.3
MinViaDrill=0.3
MinMicroViaDiameter=0.3
MinMicroViaDrill=0.09999999999999999
MinHoleToHole=0.25
TrackWidth1=0.25
ViaDiameter1=0.8
ViaDrill1=0.4
ViaDiameter2=0.5
ViaDrill2=0.3
dPairWidth1=0.25
dPairGap1=0.25
dPairViaGap1=0.25
SilkLineWidth=0.12
SilkTextSizeV=1
SilkTextSizeH=1
SilkTextSizeThickness=0.15
SilkTextItalic=0
SilkTextUpright=1
CopperLineWidth=0.2
CopperTextSizeV=1.5
CopperTextSizeH=1.5
CopperTextThickness=0.3
CopperTextItalic=0
CopperTextUpright=1
EdgeCutLineWidth=0.05
CourtyardLineWidth=0.05
OthersLineWidth=0.15
OthersTextSizeV=1
OthersTextSizeH=1
OthersTextSizeThickness=0.15
OthersTextItalic=0
OthersTextUpright=1
SolderMaskClearance=0
SolderMaskMinWidth=0
SolderPasteClearance=0
SolderPasteRatio=-0
[pcbnew/Layer.F.Cu]
Name=F.Cu
Type=0
Enabled=1
[pcbnew/Layer.In1.Cu]
Name=In1.Cu
Type=0
Enabled=0
[pcbnew/Layer.In2.Cu]
Name=In2.Cu
Type=0
Enabled=0
[pcbnew/Layer.In3.Cu]
Name=In3.Cu
Type=0
Enabled=0
[pcbnew/Layer.In4.Cu]
Name=In4.Cu
Type=0
Enabled=0
[pcbnew/Layer.In5.Cu]
Name=In5.Cu
Type=0
Enabled=0
[pcbnew/Layer.In6.Cu]
Name=In6.Cu
Type=0
Enabled=0
[pcbnew/Layer.In7.Cu]
Name=In7.Cu
Type=0
Enabled=0
[pcbnew/Layer.In8.Cu]
Name=In8.Cu
Type=0
Enabled=0
[pcbnew/Layer.In9.Cu]
Name=In9.Cu
Type=0
Enabled=0
[pcbnew/Layer.In10.Cu]
Name=In10.Cu
Type=0
Enabled=0
[pcbnew/Layer.In11.Cu]
Name=In11.Cu
Type=0
Enabled=0
[pcbnew/Layer.In12.Cu]
Name=In12.Cu
Type=0
Enabled=0
[pcbnew/Layer.In13.Cu]
Name=In13.Cu
Type=0
Enabled=0
[pcbnew/Layer.In14.Cu]
Name=In14.Cu
Type=0
Enabled=0
[pcbnew/Layer.In15.Cu]
Name=In15.Cu
Type=0
Enabled=0
[pcbnew/Layer.In16.Cu]
Name=In16.Cu
Type=0
Enabled=0
[pcbnew/Layer.In17.Cu]
Name=In17.Cu
Type=0
Enabled=0
[pcbnew/Layer.In18.Cu]
Name=In18.Cu
Type=0
Enabled=0
[pcbnew/Layer.In19.Cu]
Name=In19.Cu
Type=0
Enabled=0
[pcbnew/Layer.In20.Cu]
Name=In20.Cu
Type=0
Enabled=0
[pcbnew/Layer.In21.Cu]
Name=In21.Cu
Type=0
Enabled=0
[pcbnew/Layer.In22.Cu]
Name=In22.Cu
Type=0
Enabled=0
[pcbnew/Layer.In23.Cu]
Name=In23.Cu
Type=0
Enabled=0
[pcbnew/Layer.In24.Cu]
Name=In24.Cu
Type=0
Enabled=0
[pcbnew/Layer.In25.Cu]
Name=In25.Cu
Type=0
Enabled=0
[pcbnew/Layer.In26.Cu]
Name=In26.Cu
Type=0
Enabled=0
[pcbnew/Layer.In27.Cu]
Name=In27.Cu
Type=0
Enabled=0
[pcbnew/Layer.In28.Cu]
Name=In28.Cu
Type=0
Enabled=0
[pcbnew/Layer.In29.Cu]
Name=In29.Cu
Type=0
Enabled=0
[pcbnew/Layer.In30.Cu]
Name=In30.Cu
Type=0
Enabled=0
[pcbnew/Layer.B.Cu]
Name=B.Cu
Type=0
Enabled=1
[pcbnew/Layer.B.Adhes]
Enabled=1
[pcbnew/Layer.F.Adhes]
Enabled=1
[pcbnew/Layer.B.Paste]
Enabled=1
[pcbnew/Layer.F.Paste]
Enabled=1
[pcbnew/Layer.B.SilkS]
Enabled=1
[pcbnew/Layer.F.SilkS]
Enabled=1
[pcbnew/Layer.B.Mask]
Enabled=1
[pcbnew/Layer.F.Mask]
Enabled=1
[pcbnew/Layer.Dwgs.User]
Enabled=1
[pcbnew/Layer.Cmts.User]
Enabled=1
[pcbnew/Layer.Eco1.User]
Enabled=1
[pcbnew/Layer.Eco2.User]
Enabled=1
[pcbnew/Layer.Edge.Cuts]
Enabled=1
[pcbnew/Layer.Margin]
Enabled=1
[pcbnew/Layer.B.CrtYd]
Enabled=1
[pcbnew/Layer.F.CrtYd]
Enabled=1
[pcbnew/Layer.B.Fab]
Enabled=1
[pcbnew/Layer.F.Fab]
Enabled=1
[pcbnew/Layer.Rescue]
Enabled=0
[pcbnew/Netclasses]
[pcbnew/Netclasses/Default]
Name=Default
Clearance=0.2
TrackWidth=0.25
ViaDiameter=0.8
ViaDrill=0.4
uViaDiameter=0.3
uViaDrill=0.1
dPairWidth=0.25
dPairGap=0.25
dPairViaGap=0.25

2059
PCB/iaq_wired_sensor.sch Normal file

File diff suppressed because it is too large Load Diff

2059
PCB/iaq_wired_sensor.sch-bak Normal file

File diff suppressed because it is too large Load Diff

130781
PCB/iaq_wired_sensor.step Normal file

File diff suppressed because it is too large Load Diff

96240
PCB/iaq_wired_sensor.wrl Normal file

File diff suppressed because it is too large Load Diff

1867
PCB/iaq_wired_sensor.xml Normal file

File diff suppressed because it is too large Load Diff

3
PCB/sym-lib-table Normal file
View File

@ -0,0 +1,3 @@
(sym_lib_table
(lib (name iaq_wired_sensor-rescue)(type Legacy)(uri ${KIPRJMOD}/iaq_wired_sensor-rescue.lib)(options "")(descr ""))
)

View File

@ -1,90 +1,4 @@
# Indoor Air Quality sensor IAQ01
This repository contains all CAD files needed for making a Veles IAQ01 wired sensor, part of a family of [Veles Smart Household](#veles-smart-household) sensors.
## Basic properties
### Measured values
* Carbon dioxide
* Temperature
* Relative humidity
* Volatile Organic Compounds (VOC)
* PM (particulate matter) [optional extension]
### Connectivity
* RS-485 with Modbus
### Power requirements
* Input voltage: 5 - 30 V DC
### Status indication
Sensor has a RGB LED, which shows current air quality status on a continuos scale from red to green. Limits for this full green / full red are user adjustable. Indication can be also configured to non-continuos "semaphore" mode, using only 3 colors (green / yellow / red). Intensity of the LED can be set (or the LED can be disabled entirely).
## Where to get these sensors?
We hope to be able to be to offer you these sensors in one way or another (fully assembled or some kits with PCBs and components). In the meantime, you can build one yourselves! You will need a bit of experience with PCB ordering, soldering, and flashing the firmware on STM32. Don't worry though, none of these require deep expertise. Also a 3D printer will come in handy, if you want some of those pretty enclosures. We suggest using white PETG - this makes the LED shine nicely through the front of the enclosure.
## Project files
* [Hardware](PCB)
* Schematic and PCB ([KiCAD](https://www.kicad.org/) project) in [`PCB/iaq_wired_sensor.kicad_pro`](PCB/iaq_wired_sensor.kicad_pro)
* PCB step model in [`PCB/Project_Outputs/3D_MODEL/iaq_wired_sensor.step`](PCB/Project_Outputs/3D_MODEL/iaq_wired_sensor.step)
* Gerbers for PCB manufacturing in [`PCB/Project_Outputs/GERBERS`](PCB/Project_Outputs/GERBERS)
* Schematic exported as PDF in [`PCB/Project_Outputs/Schematic/iaq_wired_sensor.pdf`](PCB/Project_Outputs/Schematic/iaq_wired_sensor.pdf)
* Interactive HTML BOM file in [`PCB/Project_Outputs/iBOM/iaq_wired_sensor_rev1_ibom.html`](PCB/Project_Outputs/iBOM/iaq_wired_sensor_rev1_ibom.html)
* [Firmware](fw)
* This is a [STM32Cube IDE](https://www.st.com/en/development-tools/stm32cubeide.html) project
* Uses a number of git submodules - clone this repo with `--recursive` or use `git submodule update --init` to get them
* [Enclosure](Enclosure)
* [FreeCAD](https://www.freecad.org/) project in [`Enclosure/IAQ_Sensor_Enclosure.FCStd`](Enclosure/IAQ_Sensor_Enclosure.FCStd)
* STL files in [`Enclosure/STLs`](Enclosure/STLs)
* Printing tested on Prusa Mk2S and Ender 3
* [Documentation](Documentation)
* Datasheet in [`Documentation/Datasheet/IAQ_Wired_Sensor_Datasheet.pdf`](Documentation/Datasheet/IAQ_Wired_Sensor_Datasheet.pdf)
* Product flyer in [`Documentation/Product_Flyer/wired_iaq_sensor_flyer_rev1.pdf`](Documentation/Product_Flyer/wired_iaw_sensor_flyer_rev1.pdf)
## Images
<img src="Documentation/Datasheet/fig/iaq_wired_sensor.png" alt="Front view of the sensor" width="25%" height="auto"><img src="Documentation/Datasheet/fig/iaq01_isometric.png" alt="Front view of the sensor" width="25%" height="auto">
<img src="PCB/Project_Outputs/3D_MODEL/Images/iaq_wired_sensor.png" alt="IAQ wired sensor render" width="25%" height="auto"><img src="Documentation/Datasheet/fig/iaq01_exploded.png" alt="Front view of the sensor" width="25%" height="auto">
## Veles Smart Household
This sensor is part of Veles Smart Household. Goal of this project is to create open hardware and software platform for measuring various quantities, not only related to indoor air quality:
* temperature
* humidity
* atmospheric pressure
* carbon dioxide (CO2)
* carbon monoxide (CO)
* volatile organic compounds (VOC)
* particulate matter (PM - dust particles)
* light intensity
* soil moisture
... and some more!
Sensors are connected either via RS-485 Modbus or wirelessly to central unit. Wireless sensors are currently in development. Central unit may be any anything that can read from the bus: any computer with RS-485 to USB converter (e.g. Raspberry Pi) or an actual PLC. Readout of the sensor is possible via Modbus: either using your own favourite application or using your Python package.
**We want this to be community effort! Come help us make something great!**
### Other Smart Household repositories
* [RHT wired sensor](https://gitea.veleslabs.org/veles_labs/rht_sensor_wired)
* [Python package](https://gitea.veleslabs.org/veles_labs/pyveles) for sensor readout and visualization (work in progress)
* Can be installed using `pip install veles`
## Further reading
If you need more data, check out the [datasheet](Documentation/Datasheet/IAQ_Wired_Sensor_Datasheet.pdf).
## Modbus register cheatsheet
If you're here just to see the addresses for the readout, here they are:
## MODBUS Registers
### Input Registers

View File

@ -1,231 +1,396 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.583977815">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.583977815" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.583977815" name="Debug" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.583977815." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.2029743242" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.1153055369" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32L031G6Ux" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1505988584" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1754745317" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.867577247" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1391568853" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.5 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32L031G6Ux || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/STM32L0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Device/ST/STM32L0xx/Include || || || HSE_VALUE=8000000 | HSE_STARTUP_TIMEOUT=100 | HSI_VALUE=16000000 | LSE_STARTUP_TIMEOUT=5000 | LSE_VALUE=32768 | DATA_CACHE_ENABLE=1 | LSI_VALUE=37000 | MSI_VALUE=2097000 | VDD_VALUE=3300 | INSTRUCTION_CACHE_ENABLE=1 | STM32L031xx | USE_FULL_LL_DRIVER | PREFETCH_ENABLE=0 || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32L031G6UX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.2062446076" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/iaq_wired_sensor}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1773727162" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.606108895" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.471998169" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols.757865890" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.definedsymbols" valueType="definedSymbols">
<listOptionValue builtIn="false" value="DEBUG"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.1572529382" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sht4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/crc8}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sgp40}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/scd4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/modbus}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/rgbled}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sps30}&quot;"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.366934534" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.632390373" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.1522682025" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1801014298" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1372852757" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="STM32L031xx"/>
<listOptionValue builtIn="false" value="USE_FULL_LL_DRIVER"/>
<listOptionValue builtIn="false" value="HSE_VALUE=8000000"/>
<listOptionValue builtIn="false" value="HSE_STARTUP_TIMEOUT=100"/>
<listOptionValue builtIn="false" value="LSE_STARTUP_TIMEOUT=5000"/>
<listOptionValue builtIn="false" value="LSE_VALUE=32768"/>
<listOptionValue builtIn="false" value="MSI_VALUE=2097000"/>
<listOptionValue builtIn="false" value="HSI_VALUE=16000000"/>
<listOptionValue builtIn="false" value="LSI_VALUE=37000"/>
<listOptionValue builtIn="false" value="VDD_VALUE=3300"/>
<listOptionValue builtIn="false" value="PREFETCH_ENABLE=0"/>
<listOptionValue builtIn="false" value="INSTRUCTION_CACHE_ENABLE=1"/>
<listOptionValue builtIn="false" value="DATA_CACHE_ENABLE=1"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.946149329" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32L0xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32L0xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sht4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/crc8}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sgp40}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/scd4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/modbus}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/rgbled}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sps30}&quot;"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1544503170" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.301849200" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.155930402" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1962175978" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.2099198825" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.484597079" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32L031G6UX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.851999185" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1133881163" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.652442764" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1866567555" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.107840215" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.775784024" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1006686144" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1872222239" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1071618158" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.2064647262" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="Libs/crc8"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="Libs/modbus"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="Libs/rgbled"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="Libs/scd4x"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="Libs/sgp40"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="Libs/sht4x"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="Libs/sps30"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.781650198">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.781650198" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.781650198" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.781650198." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1954020355" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.1791773732" name="MCU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32L031G6Ux" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1379739425" name="CPU" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.892262605" name="Core" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1892826908" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1537311264" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.5 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32L031G6Ux || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/STM32L0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Device/ST/STM32L0xx/Include || || || HSE_VALUE=8000000 | HSE_STARTUP_TIMEOUT=100 | HSI_VALUE=16000000 | LSE_STARTUP_TIMEOUT=5000 | LSE_VALUE=32768 | DATA_CACHE_ENABLE=1 | LSI_VALUE=37000 | MSI_VALUE=2097000 | VDD_VALUE=3300 | INSTRUCTION_CACHE_ENABLE=1 | STM32L031xx | USE_FULL_LL_DRIVER | PREFETCH_ENABLE=0 || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32L031G6UX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None || " valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1782859951" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/iaq_wired_sensor}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1634455695" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1354085929" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.375884652" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths.700537390" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.includepaths" valueType="includePath">
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sht4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/crc8}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sgp40}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/scd4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/modbus}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/rgbled}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sps30}&quot;"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1707174983" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.35876175" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.2107783365" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.227778796" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.10117233" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="STM32L031xx"/>
<listOptionValue builtIn="false" value="USE_FULL_LL_DRIVER"/>
<listOptionValue builtIn="false" value="HSE_VALUE=8000000"/>
<listOptionValue builtIn="false" value="HSE_STARTUP_TIMEOUT=100"/>
<listOptionValue builtIn="false" value="LSE_STARTUP_TIMEOUT=5000"/>
<listOptionValue builtIn="false" value="LSE_VALUE=32768"/>
<listOptionValue builtIn="false" value="MSI_VALUE=2097000"/>
<listOptionValue builtIn="false" value="HSI_VALUE=16000000"/>
<listOptionValue builtIn="false" value="LSI_VALUE=37000"/>
<listOptionValue builtIn="false" value="VDD_VALUE=3300"/>
<listOptionValue builtIn="false" value="PREFETCH_ENABLE=0"/>
<listOptionValue builtIn="false" value="INSTRUCTION_CACHE_ENABLE=1"/>
<listOptionValue builtIn="false" value="DATA_CACHE_ENABLE=1"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.300786558" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32L0xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32L0xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sht4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/crc8}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sgp40}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/scd4x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/modbus}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/rgbled}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/Libs/sps30}&quot;"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1160143889" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.543872720" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.450268074" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.2070767313" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1437191537" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.581268614" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32L031G6UX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1903039419" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.1009981428" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.107642643" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.588822294" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.40664822" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.260472045" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.583631048" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.599715282" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.419142639" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1187494996" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="iaq_wired_sensor.null.742915967" name="iaq_wired_sensor"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.781650198;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.781650198.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.35876175;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1160143889">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.583977815;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.583977815.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.632390373;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1544503170">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="refreshScope"/>
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
<storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1512690796">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1512690796" moduleId="org.eclipse.cdt.core.settings" name="Debug">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1512690796" name="Debug" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1512690796." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug.1532842771" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.debug">
<option id="com.st.stm32cube.ide.mcu.option.internal.toolchain.type.1880621660" name="Internal Toolchain Type" superClass="com.st.stm32cube.ide.mcu.option.internal.toolchain.type" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.option.internal.toolchain.version.1279721468" name="Internal Toolchain Version" superClass="com.st.stm32cube.ide.mcu.option.internal.toolchain.version" useByScannerDiscovery="false" value="7-2018-q2-update" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.27712989" name="Mcu" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32L011F4Ux" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1986434241" name="CpuId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.731481840" name="CpuCoreId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1992458385" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1211256952" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32L011F4Ux || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/STM32L0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Device/ST/STM32L0xx/Include || || || HSE_VALUE=8000000 | HSE_STARTUP_TIMEOUT=100 | HSI_VALUE=16000000 | LSE_STARTUP_TIMEOUT=5000 | LSE_VALUE=32768 | DATA_CACHE_ENABLE=1 | LSI_VALUE=37000 | MSI_VALUE=2097000 | VDD_VALUE=3300 | INSTRUCTION_CACHE_ENABLE=1 | STM32L011xx | USE_FULL_LL_DRIVER | PREFETCH_ENABLE=0 || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32L011F4UX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.445833440" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/iaq_wired_sensor}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1606920792" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.469616765" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.1770109039" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.1171754034" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1515672988" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.1650648268" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.622042" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.o0" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.2027210563" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="STM32L011xx"/>
<listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="USE_FULL_LL_DRIVER"/>
<listOptionValue builtIn="false" value="HSE_VALUE=8000000"/>
<listOptionValue builtIn="false" value="HSE_STARTUP_TIMEOUT=100"/>
<listOptionValue builtIn="false" value="LSE_STARTUP_TIMEOUT=5000"/>
<listOptionValue builtIn="false" value="LSE_VALUE=32768"/>
<listOptionValue builtIn="false" value="MSI_VALUE=2097000"/>
<listOptionValue builtIn="false" value="HSI_VALUE=16000000"/>
<listOptionValue builtIn="false" value="LSI_VALUE=37000"/>
<listOptionValue builtIn="false" value="VDD_VALUE=3300"/>
<listOptionValue builtIn="false" value="PREFETCH_ENABLE=0"/>
<listOptionValue builtIn="false" value="INSTRUCTION_CACHE_ENABLE=1"/>
<listOptionValue builtIn="false" value="DATA_CACHE_ENABLE=1"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.922066001" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32L0xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32L0xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.348969831" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.1766327030" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1658652644" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.436451405" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.1892130945" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.1479501762" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32L011F4UX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.375300198" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.687987514" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1319199919" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.809423493" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.823263977" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.1991227472" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.106500396" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1266735667" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1533131337" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1351831132" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
<cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1380902389">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1380902389" moduleId="org.eclipse.cdt.core.settings" name="Release">
<externalSettings/>
<extensions>
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
</extensions>
</storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1380902389" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release">
<folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1380902389." name="/" resourcePath="">
<toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.1445955470" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
<option id="com.st.stm32cube.ide.mcu.option.internal.toolchain.type.663451956" name="Internal Toolchain Type" superClass="com.st.stm32cube.ide.mcu.option.internal.toolchain.type" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.option.internal.toolchain.version.1559134767" name="Internal Toolchain Version" superClass="com.st.stm32cube.ide.mcu.option.internal.toolchain.version" useByScannerDiscovery="false" value="7-2018-q2-update" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.1052616256" name="Mcu" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32L011F4Ux" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.621141533" name="CpuId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.2032497927" name="CpuCoreId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1944321553" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1781594695" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32L011F4Ux || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Drivers/CMSIS/Include | ../Core/Inc | ../Drivers/STM32L0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Device/ST/STM32L0xx/Include || || || HSE_VALUE=8000000 | HSE_STARTUP_TIMEOUT=100 | HSI_VALUE=16000000 | LSE_STARTUP_TIMEOUT=5000 | LSE_VALUE=32768 | DATA_CACHE_ENABLE=1 | LSI_VALUE=37000 | MSI_VALUE=2097000 | VDD_VALUE=3300 | INSTRUCTION_CACHE_ENABLE=1 | STM32L011xx | USE_FULL_LL_DRIVER | PREFETCH_ENABLE=0 || || Drivers | Core/Startup | Core || || || ${workspace_loc:/${ProjName}/STM32L011F4UX_FLASH.ld} || true || NonSecure || || secure_nsclib.o || || None" valueType="string"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1728902878" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
<builder buildPath="${workspace_loc:/iaq_wired_sensor}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.613343674" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.677900669" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.973718199" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g0" valueType="enumerated"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.919710092" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.907108133" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.904946934" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.737673998" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.866907149" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
<listOptionValue builtIn="false" value="STM32L011xx"/>
<listOptionValue builtIn="false" value="USE_FULL_LL_DRIVER"/>
<listOptionValue builtIn="false" value="HSE_VALUE=8000000"/>
<listOptionValue builtIn="false" value="HSE_STARTUP_TIMEOUT=100"/>
<listOptionValue builtIn="false" value="LSE_STARTUP_TIMEOUT=5000"/>
<listOptionValue builtIn="false" value="LSE_VALUE=32768"/>
<listOptionValue builtIn="false" value="MSI_VALUE=2097000"/>
<listOptionValue builtIn="false" value="HSI_VALUE=16000000"/>
<listOptionValue builtIn="false" value="LSI_VALUE=37000"/>
<listOptionValue builtIn="false" value="VDD_VALUE=3300"/>
<listOptionValue builtIn="false" value="PREFETCH_ENABLE=0"/>
<listOptionValue builtIn="false" value="INSTRUCTION_CACHE_ENABLE=1"/>
<listOptionValue builtIn="false" value="DATA_CACHE_ENABLE=1"/>
</option>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1311622028" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
<listOptionValue builtIn="false" value="../Core/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/STM32L0xx_HAL_Driver/Inc"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32L0xx/Include"/>
<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
</option>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.904229759" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.901350998" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.553068789" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1603146879" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.2114561486" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.30176910" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32L011F4UX_FLASH.ld}" valueType="string"/>
<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1549737908" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
</inputType>
</tool>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.101235267" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.243077328" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1798550859" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.915880004" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.1373160599" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.1367637434" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1240598448" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1238512966" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1432092923" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
</toolChain>
</folderInfo>
<sourceEntries>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Core"/>
<entry flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name="Drivers"/>
</sourceEntries>
</configuration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
</cconfiguration>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="iaq_wired_sensor.null.1619035790" name="iaq_wired_sensor"/>
</storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
<storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1380902389;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.1380902389.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.907108133;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.904229759">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1512690796;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1512690796.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1515672988;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.348969831">
<autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
</storageModule>
<storageModule moduleId="refreshScope" versionNumber="2">
<configuration configurationName="Debug">
<resource resourceType="PROJECT" workspacePath="/iaq_wired_sensor"/>
</configuration>
<configuration configurationName="Release">
<resource resourceType="PROJECT" workspacePath="/iaq_wired_sensor"/>
</configuration>
</storageModule>
</cproject>

View File

@ -1,24 +1,24 @@
[PreviousLibFiles]
LibFiles=Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_gpio.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_i2c.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_dma.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_bus.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_cortex.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_rcc.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_system.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_utils.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_exti.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_pwr.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_crs.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_iwdg.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_tim.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_usart.h;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_usart.c;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_gpio.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_i2c.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_dma.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_bus.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_cortex.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_rcc.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_system.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_utils.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_exti.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_pwr.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_crs.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_iwdg.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_tim.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_usart.h;Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l031xx.h;Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h;Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h;Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/system_stm32l0xx.c;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/mpu_armv7.h;
LibFiles=Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_gpio.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_i2c.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_dma.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_bus.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_cortex.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_rcc.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_system.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_utils.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_exti.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_pwr.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_crs.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_lpuart.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_tim.h;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.c;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_rcc.h;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.c;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_gpio.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_i2c.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_dma.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_bus.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_cortex.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_rcc.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_system.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_utils.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_exti.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_pwr.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_crs.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_lpuart.h;Drivers/STM32L0xx_HAL_Driver/Inc/stm32l0xx_ll_tim.h;Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l011xx.h;Drivers/CMSIS/Device/ST/STM32L0xx/Include/stm32l0xx.h;Drivers/CMSIS/Device/ST/STM32L0xx/Include/system_stm32l0xx.h;Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/system_stm32l0xx.c;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/tz_context.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/core_cm3.h;
[PreviousUsedCubeIDEFiles]
SourceFiles=Core/Src/main.c;Core/Src/stm32l0xx_it.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_usart.c;Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/system_stm32l0xx.c;Core/Src/system_stm32l0xx.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_usart.c;Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/system_stm32l0xx.c;Core/Src/system_stm32l0xx.c;;;
SourceFiles=Core/Src/main.c;Core/Src/stm32l0xx_it.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.c;Core/Src/system_stm32l0xx.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_gpio.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_i2c.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_dma.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_rcc.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_utils.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_exti.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_lpuart.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_pwr.c;Drivers/STM32L0xx_HAL_Driver/Src/stm32l0xx_ll_tim.c;Core/Src/system_stm32l0xx.c;Drivers/CMSIS/Device/ST/STM32L0xx/Source/Templates/system_stm32l0xx.c;;
HeaderPath=Drivers/STM32L0xx_HAL_Driver/Inc;Drivers/CMSIS/Device/ST/STM32L0xx/Include;Drivers/CMSIS/Include;Core/Inc;
CDefines=USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;MSI_VALUE:2097000;HSI_VALUE:16000000;LSI_VALUE:37000;VDD_VALUE:3300;PREFETCH_ENABLE:0;INSTRUCTION_CACHE_ENABLE:1;DATA_CACHE_ENABLE:1;STM32L031xx;USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;MSI_VALUE:2097000;HSI_VALUE:16000000;LSI_VALUE:37000;VDD_VALUE:3300;PREFETCH_ENABLE:0;INSTRUCTION_CACHE_ENABLE:1;DATA_CACHE_ENABLE:1;
CDefines=USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;MSI_VALUE:2097000;HSI_VALUE:16000000;LSI_VALUE:37000;VDD_VALUE:3300;PREFETCH_ENABLE:0;INSTRUCTION_CACHE_ENABLE:1;DATA_CACHE_ENABLE:1;STM32L011xx;USE_FULL_LL_DRIVER;HSE_VALUE:8000000;HSE_STARTUP_TIMEOUT:100;LSE_STARTUP_TIMEOUT:5000;LSE_VALUE:32768;MSI_VALUE:2097000;HSI_VALUE:16000000;LSI_VALUE:37000;VDD_VALUE:3300;PREFETCH_ENABLE:0;INSTRUCTION_CACHE_ENABLE:1;DATA_CACHE_ENABLE:1;
[PreviousGenFiles]
AdvancedFolderStructure=true
HeaderFileListSize=3
HeaderFiles#0=/home/dooku/projekty/hdiot/iaq_wired_sensor/fw/Core/Inc/stm32l0xx_it.h
HeaderFiles#1=/home/dooku/projekty/hdiot/iaq_wired_sensor/fw/Core/Inc/stm32_assert.h
HeaderFiles#2=/home/dooku/projekty/hdiot/iaq_wired_sensor/fw/Core/Inc/main.h
HeaderFiles#0=/home/mrs/Personal/HDIoT/Smart_Household/iaq_wired_sensor/fw/Core/Inc/stm32l0xx_it.h
HeaderFiles#1=/home/mrs/Personal/HDIoT/Smart_Household/iaq_wired_sensor/fw/Core/Inc/stm32_assert.h
HeaderFiles#2=/home/mrs/Personal/HDIoT/Smart_Household/iaq_wired_sensor/fw/Core/Inc/main.h
HeaderFolderListSize=1
HeaderPath#0=/home/dooku/projekty/hdiot/iaq_wired_sensor/fw/Core/Inc
HeaderPath#0=/home/mrs/Personal/HDIoT/Smart_Household/iaq_wired_sensor/fw/Core/Inc
HeaderFiles=;
SourceFileListSize=2
SourceFiles#0=/home/dooku/projekty/hdiot/iaq_wired_sensor/fw/Core/Src/stm32l0xx_it.c
SourceFiles#1=/home/dooku/projekty/hdiot/iaq_wired_sensor/fw/Core/Src/main.c
SourceFiles#0=/home/mrs/Personal/HDIoT/Smart_Household/iaq_wired_sensor/fw/Core/Src/stm32l0xx_it.c
SourceFiles#1=/home/mrs/Personal/HDIoT/Smart_Household/iaq_wired_sensor/fw/Core/Src/main.c
SourceFolderListSize=1
SourcePath#0=/home/dooku/projekty/hdiot/iaq_wired_sensor/fw/Core/Src
SourcePath#0=/home/mrs/Personal/HDIoT/Smart_Household/iaq_wired_sensor/fw/Core/Src
SourceFiles=;

View File

@ -24,6 +24,7 @@
<nature>org.eclipse.cdt.core.cnature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUAdvancedStructureProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUEndUserDisabledTrustZoneProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature</nature>
<nature>com.st.stm32cube.ide.mcu.MCURootProjectNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>

View File

@ -1,4 +1,3 @@
66BE74F758C12D739921AEA421D593D3=11
8DF89ED150041C4CBC7CB9A9CAA90856=807411C90E25B050C1E13646B7FEB5AA
DC22A860405A8BF2F2C095E5B6529F12=807411C90E25B050C1E13646B7FEB5AA
8DF89ED150041C4CBC7CB9A9CAA90856=295E78E9D51884086204F31037537306
DC22A860405A8BF2F2C095E5B6529F12=295E78E9D51884086204F31037537306
eclipse.preferences.version=1

View File

@ -48,22 +48,14 @@ config_read(&config);
* Device description data can be accessed using direct readout from the memory
* Device configuration data can be accessed using config_t struct.
*/
/* device class: IAQ_Wired ; device code: 0x0010 (see serial generator repo) */
#define CONFIG_DEVICE_CODE 0x0010
#define CONFIG_DEFAULT_LED_ON 1
#define CONFIG_DEFAULT_LED_BRIGHTNESS 100
#define CONFIG_DEFAULT_LED_BRIGHTNESS 100 /* TODO: set according to the timers when this will be implemented */
#define CONFIG_DEFAULT_LED_ALERT1_LIMIT 1500
#define CONFIG_DEFAULT_LED_ALERT2_LIMIT 3000
#define CONFIG_DEFAULT_LED_SMOOTH 1
#define CONFIG_DEFAULT_LED_SMOOTH 0
#define CONFIG_DEFAULT_SCD4x_T_OFFSET 0
#define CONFIG_DEFAULT_BAUDRATE_INDEX 0
#define CONFIG_DEFAULT_SERIAL_1 (CONFIG_DEVICE_CODE)
/* SERIAL_2 is not defined, as it makes no sense to have default value */
#define CONFIG_SERIAL_NUMBER_1_LENGTH 2
#define CONFIG_SERIAL_NUMBER_2_LENGTH 2
#define CONFIG_MODBUS_ADDR_LENGTH 2
#define CONFIG_BAUDRATE_INDEX_LENGTH 2
#define CONFIG_LED_ON_LENGTH 2
@ -82,11 +74,9 @@ config_read(&config);
#define EEPROM_EMPTY_BYTE 0x00
#define EEPROM_ADDR_START ((uint32_t)0x08080000)
#define EEPROM_ADDR_END ((uint32_t)0x080803FF)
#define EEPROM_ADDR_END ((uint32_t)0x080801FF)
#define CONFIG_EEPROM_ADDR_SERIAL_NUMBER_1 (EEPROM_ADDR_START)
#define CONFIG_EEPROM_ADDR_SERIAL_NUMBER_2 (CONFIG_EEPROM_ADDR_SERIAL_NUMBER_1 + CONFIG_SERIAL_NUMBER_1_LENGTH)
#define CONFIG_EEPROM_ADDR_MODBUS_ADDR (CONFIG_EEPROM_ADDR_SERIAL_NUMBER_2 + CONFIG_SERIAL_NUMBER_2_LENGTH)
#define CONFIG_EEPROM_ADDR_MODBUS_ADDR (EEPROM_ADDR_START)
#define CONFIG_EEPROM_ADDR_BAUDRATE_INDEX (CONFIG_EEPROM_ADDR_MODBUS_ADDR + CONFIG_MODBUS_ADDR_LENGTH)
#define CONFIG_EEPROM_ADDR_LED_ON (CONFIG_EEPROM_ADDR_BAUDRATE_INDEX + CONFIG_BAUDRATE_INDEX_LENGTH)
#define CONFIG_EEPROM_ADDR_LED_BRIGHTNESS (CONFIG_EEPROM_ADDR_LED_ON + CONFIG_LED_ON_LENGTH)
@ -95,7 +85,6 @@ config_read(&config);
#define CONFIG_EEPROM_ADDR_LED_ALERT2 (CONFIG_EEPROM_ADDR_LED_ALERT1 + CONFIG_LED_ALERT1_LENGTH)
#define CONFIG_EEPROM_ADDR_SCD4x_T_OFFSET (CONFIG_EEPROM_ADDR_LED_ALERT2 + CONFIG_LED_ALERT2_LENGTH)
#define CONFIG_EEPROM_ADDR_VENDOR_NAME (CONFIG_EEPROM_ADDR_SCD4x_T_OFFSET + CONFIG_SCD4x_T_OFFSET_LENGTH)
#define CONFIG_EEPROM_ADDR_PRODUCT_CODE (CONFIG_EEPROM_ADDR_VENDOR_NAME + VENDOR_NAME_LENGTH)
#define CONFIG_EEPROM_ADDR_PRODUCT_NAME (CONFIG_EEPROM_ADDR_PRODUCT_CODE + PRODUCT_CODE_LENGTH)
@ -118,17 +107,6 @@ config_read(&config);
#define SYSTICK_FREQ_HZ 12000000
#define EEPROM_TIMEOUT_MAX_MS_INV 200
/*
* Variables
*/
extern const uint32_t config_baudrates[];
extern const uint8_t config_baudrates_length;
/*
* Type definitions
*/
typedef struct
{
/* LED CONFIG */
@ -144,13 +122,9 @@ typedef struct
/* MODBUS CONFIG */
uint16_t modbus_addr;
uint32_t baudrate_index;
/* SERIAL NUMBER */
uint16_t serial_number_1;
uint16_t serial_number_2;
} config_t;
/* IMPORTANT: baudrates must be defined in main.c and the default value must be at index 0*/
/* const uint32_t baudrates [] = {19200, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 76800, 115200}; */
int8_t config_read(config_t *config);

22
fw/Core/Inc/crc8.h Normal file
View File

@ -0,0 +1,22 @@
/*
* crc.h
*
* Created on: Jun 9, 2021
* Author: user
*/
#ifndef INC_CRC8_H_
#define INC_CRC8_H_
#include "stdint.h"
/*
* Definitions & macros
*/
#define CRC8_POLYNOMIAL 0x31
#define CRC8_INIT 0xFF
uint8_t crc8_calculate(const uint8_t *data, uint16_t count);
#endif /* INC_CRC8_H_ */

View File

@ -39,8 +39,8 @@ typedef struct {
* Function declarations
*/
int8_t i2c_init(i2c_context_t *context);
int8_t i2c_transmit(uint8_t address, uint8_t *buffer, int len);
int8_t i2c_receive(uint8_t address, uint8_t *buffer, int len);
int i2c_init(i2c_context_t *context);
int i2c_transmit(uint8_t address, uint8_t *buffer, int len);
int i2c_receive(uint8_t address, uint8_t *buffer, int len);
#endif /* INC_I2C_H_ */

View File

@ -29,9 +29,9 @@ extern "C" {
/* Includes ------------------------------------------------------------------*/
#include "stm32l0xx_ll_i2c.h"
#include "stm32l0xx_ll_iwdg.h"
#include "stm32l0xx_ll_crs.h"
#include "stm32l0xx_ll_lpuart.h"
#include "stm32l0xx_ll_rcc.h"
#include "stm32l0xx_ll_crs.h"
#include "stm32l0xx_ll_bus.h"
#include "stm32l0xx_ll_system.h"
#include "stm32l0xx_ll_exti.h"
@ -40,7 +40,6 @@ extern "C" {
#include "stm32l0xx_ll_pwr.h"
#include "stm32l0xx_ll_dma.h"
#include "stm32l0xx_ll_tim.h"
#include "stm32l0xx_ll_usart.h"
#include "stm32l0xx_ll_gpio.h"
#if defined(USE_FULL_ASSERT)
@ -53,12 +52,8 @@ extern "C" {
#include "scd4x.h"
#include "sht4x.h"
#include "sps30.h"
#include "sgp40.h"
#include "modbus.h"
#include "config.h"
#include "rgbled.h"
#include "crc8.h"
#include "sensirion_gas_index_algorithm.h"
/* USER CODE END Includes */
/* Exported types ------------------------------------------------------------*/
@ -80,12 +75,16 @@ extern "C" {
void Error_Handler(void);
/* USER CODE BEGIN EFP */
int8_t uart_disable_interrupts(void);
int8_t uart_enable_interrupts(void);
/* USER CODE END EFP */
/* Private defines -----------------------------------------------------------*/
#define LED_B_Pin LL_GPIO_PIN_5
#define LED_B_GPIO_Port GPIOA
#define LED_G_Pin LL_GPIO_PIN_6
#define LED_G_GPIO_Port GPIOA
#define LED_R_Pin LL_GPIO_PIN_7
#define LED_R_GPIO_Port GPIOA
#ifndef NVIC_PRIORITYGROUP_0
#define NVIC_PRIORITYGROUP_0 ((uint32_t)0x00000007) /*!< 0 bit for pre-emption priority,
4 bits for subpriority */
@ -99,16 +98,12 @@ int8_t uart_enable_interrupts(void);
0 bit for subpriority */
#endif
/* USER CODE BEGIN Private defines */
#define SYSTEM_CLOCK_HZ 12000000
#define MEASUREMENT_PERIOD_S 6
#define RESET_MAGIC_NUMBER 0xABCD
#define MODBUS_ASSERT(x) if (x == 0) return MODBUS_ERROR_FUNCTION_NOT_IMPLEMENTED
#define CELSIUS_TO_FAHRENHEIT(x) (x * 9 / 5 + 320)
#define MEASUREMENT_PERIOD_MS 600000
extern uint16_t usart2_rx_message_index;
extern uint16_t usart2_rx_message_len;
extern uint8_t usart2_rx_done;
extern uint8_t usart2_rx_message_too_long;
extern uint16_t lpuart1_rx_message_index;
extern uint16_t lpuart1_rx_message_len;
extern uint8_t lpuart1_rx_done;
extern uint8_t lpuart1_rx_message_too_long;
extern uint8_t tim21_elapsed_period;

180
fw/Core/Inc/modbus.h Normal file
View File

@ -0,0 +1,180 @@
/*
* modbus.h
*
* Created on: Jul 18, 2021
* Author: user
*
* Modbus slave RTU library (does NOT support ASCII and TCP)
*
* Useful links:
* https://www.picotech.com/library/oscilloscopes/modbus-serial-protocol-decoding
* https://ipc2u.com/articles/knowledge-base/modbus-rtu-made-simple-with-detailed-descriptions-and-examples/
* https://modbus.org/docs/Modbus_over_serial_line_V1_02.pdf
* https://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf
*
* Note that byte order is big endian.
*
* USAGE:
*
* 1) Implement functions modbus_callback_function() and modbus_uart_transmit_function()
* - modbus_uart_transmit_function() sends data via UART
* - modbus_callback_function() does the real work: read sensors, set outputs...
* note that when filling buffers (e.g. input_registers[]) user must
* ensure that all data is big-endian
* These functions are implementation-specific.
* 2) Set device address (variable modbus_device_address); you can do this either
* - setting modbus_device_address directly (modbus.h needs to be included, duh)
* - using modbus_set_device_address(uint8_t address) function
* Or you can leave address as-is (MODBUS_DEFAULT_SLAVE_ADDRESS) and set it via
* Modbus during runtime
* 3) Call modbus_process_msg() after message reception; you need to observe Modbus RTU timing:
* - pauses between chars in frame are less or equal to 1.5 char
* - pauses between frames are at least 3.5 chars (of silence)
* For more information see section 2.5.1.1 (MODBUS Message RTU Framing)
* in "MODBUS over Serial Line: Specification and Implementation Guide"
*
*/
#ifndef SRC_MODBUS_H_
#define SRC_MODBUS_H_
#include "stdint.h"
/*
* Defines & macros
*/
#define MODBUS_BROADCAST_ADDR 0
#define MODBUS_DEFAULT_SLAVE_ADDRESS 254 /* 255 may be used for bridge device */
/* minimal frame length is 4 bytes: 1 B slave address, 1 B function code, 2 B CRC */
#define MODBUS_MINIMAL_FRAME_LEN 4
#define MODBUS_MAX_RTU_FRAME_SIZE 256
#define MODBUS_BUFFER_SIZE MODBUS_MAX_RTU_FRAME_SIZE /* alias */
#define MODBUS_ERROR_FLAG 0x80
#define MODBUS_MAX_REGISTERS 125
/*
* Return values
*/
#define MODBUS_OK 0
#define MODBUS_ERROR -1 // generic error
#define MODBUS_ERROR_CRC -2 // checksum failed
#define MODBUS_ERROR_FRAME_INVALID -3 // invalid frame format / length
#define MODBUS_ERROR_OUT_OF_BOUNDS -4 // requested register is out of bounds
#define MODBUS_ERROR_FUNCTION_NOT_IMPLEMENTED -5 // function not implemented in callback
#define MODBUS_ERROR_REGISTER_NOT_IMPLEMENTED -6 // register not implemented in callback
/*
* Data types
*/
/* Public functions codes (Modbus Application protocol specification, section 5.1) */
typedef enum {
/* single bit access functions */
MODBUS_READ_COILS = 1,
MODBUS_READ_DO = 1, // alias
MODBUS_READ_DISCRETE_INPUTS = 2,
MODBUS_READ_DI = 2, // alias
MODBUS_WRITE_SINGLE_COIL = 5,
MODBUS_WRITE_SINGLE_DO = 5, // alias
MODBUS_WRITE_MULTIPLE_COILS = 15,
MODBUS_WRITE_MULTIPLE_DO = 15, // alias
/* 16-bit access functions */
MODBUS_READ_HOLDING_REGISTERS = 3,
MODBUS_READ_AO = 3, // alias
MODBUS_READ_INPUT_REGISTERS = 4,
MODBUS_READ_AI = 4, // alias
MODBUS_WRITE_SINGLE_REGISTER = 6,
MODBUS_WRITE_SINGLE_AO = 6, // alias
MODBUS_WRITE_MULTIPLE_REGISTERS = 16,
MODBUS_WRITE_MULTIPLE_AO = 16, // alias
MODBUS_MASK_WRITE_REGISTER = 22,
MODBUS_READ_WRITE_MULTIPLE_REGISTERS = 23,
MODBUS_READ_FIFO_QUEUE = 24,
/* file record access */
MODBUS_READ_FILE_RECORD = 20,
MODBUS_WRITE_FILE_RECORD = 21,
/* diagnostics */
MODBUS_READ_EXCEPTION_STATUS = 7,
MODBUS_DIAGNOSTIC = 8, /* sub codes: 00-18,20 */
MODBUS_GET_COM_EVENT_COUNTER = 11,
MODBUS_GET_COM_EVENT_LOG = 12,
MODBUS_REPORT_SLAVE_ID = 17,
MODBUS_READ_DEVICE_IDENTIFICATION = 43, /* sub codes: 14 */
} modbus_function_code_t;
typedef enum {
MODBUS_EXCEPTION_ILLEGAL_FUNCTION = 1,
MODBUS_EXCEPTION_ILLEGAL_DATA_ADDRESS = 2,
MODBUS_EXCEPTION_ILLEGAL_DATA_VALUE = 3,
MODBUS_EXCEPTION_SLAVE_DEVICE_FAILURE = 4,
MODBUS_EXCEPTION_ACKNOWLEDGE = 5,
MODBUS_EXCEPTION_SLAVE_DEVICE_BUSY = 6,
MODBUS_EXCEPTION_MEMORY_PARITY_ERROR = 8,
MODBUS_EXCEPTION_GATEWAY_PATH_UNAVAILABLE = 10,
MODBUS_EXCEPTION_GATEWAY_TARGET_DEVICE_FAILED_TO_RESPOND = 11,
} modbus_exception_code_t;
typedef struct {
uint8_t exception_code;
} exception_t;
typedef struct {
modbus_function_code_t function_code : 8;
uint16_t register_address; // e.g. first register of A0: 0
uint16_t register_number; // e.g. first register of A0: 40001
uint8_t register_count; // number of registers to be read/written
exception_t exception;
union {
uint8_t buffer8b[MODBUS_MAX_RTU_FRAME_SIZE];
uint16_t buffer16b[MODBUS_MAX_RTU_FRAME_SIZE/2];
uint16_t input_registers[MODBUS_MAX_REGISTERS];
uint16_t holding_registers[MODBUS_MAX_REGISTERS];
int16_t input_registers_signed[MODBUS_MAX_REGISTERS];
int16_t holding_registers_signed[MODBUS_MAX_REGISTERS];
};
} modbus_transaction_t;
typedef enum {
MODBUS_DO_START_NUMBER = 1, // Discrete output coils
MODBUS_DO_END_NUMBER = 9999,
MODBUS_DI_START_NUMBER = 10001, // Discrete input contacts
MODBUS_DI_END_NUMBER = 19999,
MODBUS_AI_START_NUMBER = 30001, // Analog input registers
MODBUS_AI_END_NUMBER = 39999,
MODBUS_AO_START_NUMBER = 40001, // Analog output (holding registers)
MODBUS_AO_END_NUMBER = 49999
} modbus_register_number_t;
/*
* Global variables
*/
/* device address: declared in modbus.c */
extern uint8_t modbus_slave_address;
/* shared modbus buffer; defined in modbus.c; may be used elsewhere in code */
extern uint8_t modbus_buffer[];
/*
* Function prototypes
*/
/* process message: should be called in when modbus message was received (e.g. in main.c)
* modbus_process_msg() may call following functions:
* - modbus_callback_function() if data readout is requested
* - modbus_uart_transmit_function() if response is required
* Both functions have to be implemented by user.
*/
int8_t modbus_slave_process_msg(const uint8_t *buffer, int len);
int8_t modbus_slave_set_address(uint8_t address);
/* modbus callback function type - should be implemented by user (e.g. in main.c) */
int8_t modbus_slave_callback(modbus_transaction_t *transaction);
/* UART transmit function type - should be implemented by user (e.g. in main.c) */
int8_t modbus_transmit_function(uint8_t *buffer, int data_len);
#endif /* SRC_MODBUS_H_ */

57
fw/Core/Inc/scd4x.h Normal file
View File

@ -0,0 +1,57 @@
/*
* sht4x.h
*
* Created on: Jun 8, 2021
* Author: user
*/
#ifndef INC_SCD4X_H_
#define INC_SCD4X_H_
#include "stdint.h"
#include "stm32l0xx_ll_i2c.h"
#include "stm32l0xx_ll_utils.h"
#include "i2c.h"
#include "crc8.h"
/*
* Defines & macros
*/
#define SCD4X_I2C_ADDRESS 0x62
/*
* Return values
*/
#define SCD4X_OK 0
#define SCD4X_ERROR -1 // generic error
#define SCD4X_CRC8_ERROR -2 // checksum failed
/*
* Data types
*/
typedef enum {
SCD4X_START_PERIODIC_MEASUREMENT = 0x21B1,
SCD4X_READ_MEASUREMENT = 0xEC05,
SCD4X_STOP_PERIODIC_MEASUREMENT = 0x3F86,
SCD4X_GET_DATA_READY_STATUS = 0xe4b8,
SCD4X_PERFORM_FACTORY_RESET = 0x3632
} scd4x_cmd_t;
/*
* Function prototypes
*/
int8_t scd4x_send_cmd(scd4x_cmd_t cmd);
int8_t scd4x_read_data(uint8_t *buffer, int len);
int8_t scd4x_start_periodic_measurement( void );
int8_t scd4x_stop_periodic_measurement( void );
int8_t scd4x_perform_factory_reset( void );
int8_t scd4x_read_measurement(uint16_t * co2, int16_t *temperature, uint16_t *relative_humidity);
#endif /* INC_SCD4X_H_ */

View File

@ -1,280 +0,0 @@
/*
* Copyright (c) 2021, Sensirion AG
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of Sensirion AG nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef GASINDEXALGORITHM_H_
#define GASINDEXALGORITHM_H_
#include <stdint.h>
#include "main.h"
/* The fixed point arithmetic parts of this code were originally created by
* https://github.com/PetteriAimonen/libfixmath
*/
typedef int32_t fix16_t;
#define F16(x) \
((fix16_t)(((x) >= 0) ? ((x)*65536.0 + 0.5) : ((x)*65536.0 - 0.5)))
#ifndef __cplusplus
#if __STDC_VERSION__ >= 199901L
#include <stdbool.h>
#else
#ifndef bool
#define bool int
#define true 1
#define false 0
#endif // bool
#endif // __STDC_VERSION__
#endif // __cplusplus
// Should be set by the building toolchain
#ifndef LIBRARY_VERSION_NAME
#define LIBRARY_VERSION_NAME "3.1.0"
#endif
#define GasIndexAlgorithm_ALGORITHM_TYPE_VOC (0)
#define GasIndexAlgorithm_ALGORITHM_TYPE_NOX (1)
#define GasIndexAlgorithm_SAMPLING_INTERVAL (MEASUREMENT_PERIOD_S)
#define GasIndexAlgorithm_INITIAL_BLACKOUT (60.) // changed
#define GasIndexAlgorithm_INDEX_GAIN (230.)
#define GasIndexAlgorithm_SRAW_STD_INITIAL (50.)
#define GasIndexAlgorithm_SRAW_STD_BONUS_VOC (220.)
#define GasIndexAlgorithm_SRAW_STD_NOX (2000.)
#define GasIndexAlgorithm_TAU_MEAN_HOURS (12.)
#define GasIndexAlgorithm_TAU_VARIANCE_HOURS (12.)
#define GasIndexAlgorithm_TAU_INITIAL_MEAN_VOC (20.)
#define GasIndexAlgorithm_TAU_INITIAL_MEAN_NOX (1200.)
#define GasIndexAlgorithm_INIT_DURATION_MEAN_VOC ((3600. * 0.75))
#define GasIndexAlgorithm_INIT_DURATION_MEAN_NOX ((3600. * 4.75))
#define GasIndexAlgorithm_INIT_TRANSITION_MEAN (0.01)
#define GasIndexAlgorithm_TAU_INITIAL_VARIANCE (2500.)
#define GasIndexAlgorithm_INIT_DURATION_VARIANCE_VOC ((3600. * 1.45))
#define GasIndexAlgorithm_INIT_DURATION_VARIANCE_NOX ((3600. * 5.70))
#define GasIndexAlgorithm_INIT_TRANSITION_VARIANCE (0.01)
#define GasIndexAlgorithm_GATING_THRESHOLD_VOC (340.)
#define GasIndexAlgorithm_GATING_THRESHOLD_NOX (30.)
#define GasIndexAlgorithm_GATING_THRESHOLD_INITIAL (510.)
#define GasIndexAlgorithm_GATING_THRESHOLD_TRANSITION (0.09)
#define GasIndexAlgorithm_GATING_VOC_MAX_DURATION_MINUTES ((60. * 3.))
#define GasIndexAlgorithm_GATING_NOX_MAX_DURATION_MINUTES ((60. * 12.))
#define GasIndexAlgorithm_GATING_MAX_RATIO (0.3)
#define GasIndexAlgorithm_SIGMOID_L (500.)
#define GasIndexAlgorithm_SIGMOID_K_VOC (-0.0065)
#define GasIndexAlgorithm_SIGMOID_X0_VOC (213.)
#define GasIndexAlgorithm_SIGMOID_K_NOX (-0.0101)
#define GasIndexAlgorithm_SIGMOID_X0_NOX (614.)
#define GasIndexAlgorithm_VOC_INDEX_OFFSET_DEFAULT (100.)
#define GasIndexAlgorithm_NOX_INDEX_OFFSET_DEFAULT (1.)
#define GasIndexAlgorithm_LP_TAU_FAST (20.0)
#define GasIndexAlgorithm_LP_TAU_SLOW (500.0)
#define GasIndexAlgorithm_LP_ALPHA (-0.2)
#define GasIndexAlgorithm_VOC_SRAW_MINIMUM (20000)
#define GasIndexAlgorithm_NOX_SRAW_MINIMUM (10000)
#define GasIndexAlgorithm_PERSISTENCE_UPTIME_GAMMA ((3. * 3600.))
#define GasIndexAlgorithm_TUNING_INDEX_OFFSET_MIN (1)
#define GasIndexAlgorithm_TUNING_INDEX_OFFSET_MAX (250)
#define GasIndexAlgorithm_TUNING_LEARNING_TIME_OFFSET_HOURS_MIN (1)
#define GasIndexAlgorithm_TUNING_LEARNING_TIME_OFFSET_HOURS_MAX (1000)
#define GasIndexAlgorithm_TUNING_LEARNING_TIME_GAIN_HOURS_MIN (1)
#define GasIndexAlgorithm_TUNING_LEARNING_TIME_GAIN_HOURS_MAX (1000)
#define GasIndexAlgorithm_TUNING_GATING_MAX_DURATION_MINUTES_MIN (0)
#define GasIndexAlgorithm_TUNING_GATING_MAX_DURATION_MINUTES_MAX (3000)
#define GasIndexAlgorithm_TUNING_STD_INITIAL_MIN (10)
#define GasIndexAlgorithm_TUNING_STD_INITIAL_MAX (5000)
#define GasIndexAlgorithm_TUNING_GAIN_FACTOR_MIN (1)
#define GasIndexAlgorithm_TUNING_GAIN_FACTOR_MAX (1000)
#define GasIndexAlgorithm_MEAN_VARIANCE_ESTIMATOR__GAMMA_SCALING (64.)
#define GasIndexAlgorithm_MEAN_VARIANCE_ESTIMATOR__ADDITIONAL_GAMMA_MEAN_SCALING \
(8.)
#define GasIndexAlgorithm_MEAN_VARIANCE_ESTIMATOR__FIX16_MAX (32767.)
/**
* Struct to hold all parameters and states of the gas algorithm.
*/
typedef struct {
int32_t mAlgorithm_Type;
fix16_t mIndex_Offset;
int32_t mSraw_Minimum;
fix16_t mGating_Max_Duration_Minutes;
fix16_t mInit_Duration_Mean;
fix16_t mInit_Duration_Variance;
fix16_t mGating_Threshold;
fix16_t mIndex_Gain;
fix16_t mTau_Mean_Hours;
fix16_t mTau_Variance_Hours;
fix16_t mSraw_Std_Initial;
fix16_t mUptime;
fix16_t mSraw;
fix16_t mGas_Index;
bool m_Mean_Variance_Estimator___Initialized;
fix16_t m_Mean_Variance_Estimator___Mean;
fix16_t m_Mean_Variance_Estimator___Sraw_Offset;
fix16_t m_Mean_Variance_Estimator___Std;
fix16_t m_Mean_Variance_Estimator___Gamma_Mean;
fix16_t m_Mean_Variance_Estimator___Gamma_Variance;
fix16_t m_Mean_Variance_Estimator___Gamma_Initial_Mean;
fix16_t m_Mean_Variance_Estimator___Gamma_Initial_Variance;
fix16_t m_Mean_Variance_Estimator__Gamma_Mean;
fix16_t m_Mean_Variance_Estimator__Gamma_Variance;
fix16_t m_Mean_Variance_Estimator___Uptime_Gamma;
fix16_t m_Mean_Variance_Estimator___Uptime_Gating;
fix16_t m_Mean_Variance_Estimator___Gating_Duration_Minutes;
fix16_t m_Mean_Variance_Estimator___Sigmoid__K;
fix16_t m_Mean_Variance_Estimator___Sigmoid__X0;
fix16_t m_Mox_Model__Sraw_Std;
fix16_t m_Mox_Model__Sraw_Mean;
fix16_t m_Sigmoid_Scaled__K;
fix16_t m_Sigmoid_Scaled__X0;
fix16_t m_Sigmoid_Scaled__Offset_Default;
fix16_t m_Adaptive_Lowpass__A1;
fix16_t m_Adaptive_Lowpass__A2;
bool m_Adaptive_Lowpass___Initialized;
fix16_t m_Adaptive_Lowpass___X1;
fix16_t m_Adaptive_Lowpass___X2;
fix16_t m_Adaptive_Lowpass___X3;
} GasIndexAlgorithmParams;
/**
* Initialize the gas index algorithm parameters for the specified algorithm
* type and reset its internal states. Call this once at the beginning.
* @param params Pointer to the GasIndexAlgorithmParams struct
* @param algorithm_type 0 (GasIndexAlgorithm_ALGORITHM_TYPE_VOC) for VOC or
* 1 (GasIndexAlgorithm_ALGORITHM_TYPE_NOX) for NOx
*/
void GasIndexAlgorithm_init(GasIndexAlgorithmParams* params,
int32_t algorithm_type);
/**
* Reset the internal states of the gas index algorithm. Previously set tuning
* parameters are preserved. Call this when resuming operation after a
* measurement interruption.
* @param params Pointer to the GasIndexAlgorithmParams struct
*/
void GasIndexAlgorithm_reset(GasIndexAlgorithmParams* params);
/**
* Get current algorithm states. Retrieved values can be used in
* GasIndexAlgorithm_set_states() to resume operation after a short
* interruption, skipping initial learning phase.
* NOTE: This feature can only be used for VOC algorithm type and after at least
* 3 hours of continuous operation.
* @param params Pointer to the GasIndexAlgorithmParams struct
* @param state0 State0 to be stored
* @param state1 State1 to be stored
*/
void GasIndexAlgorithm_get_states(const GasIndexAlgorithmParams* params,
int32_t* state0, int32_t* state1);
/**
* Set previously retrieved algorithm states to resume operation after a short
* interruption, skipping initial learning phase. This feature should not be
* used after interruptions of more than 10 minutes. Call this once after
* GasIndexAlgorithm_init() or GasIndexAlgorithm_reset() and the optional
* GasIndexAlgorithm_set_tuning_parameters(), if desired. Otherwise, the
* algorithm will start with initial learning phase.
* NOTE: This feature can only be used for VOC algorithm type.
* @param params Pointer to the GasIndexAlgorithmParams struct
* @param state0 State0 to be restored
* @param state1 State1 to be restored
*/
void GasIndexAlgorithm_set_states(GasIndexAlgorithmParams* params,
int32_t state0, int32_t state1);
/**
* Set parameters to customize the gas index algorithm. Call this once after
* GasIndexAlgorithm_init() and before optional GasIndexAlgorithm_set_states(),
* if desired. Otherwise, the default values will be used.
*
* @param params Pointer to the GasIndexAlgorithmParams
* struct
* @param index_offset Gas index representing typical (average)
* conditions. Range 1..250,
* default 100 for VOC and 1 for NOx
* @param learning_time_offset_hours Time constant of long-term estimator for
* offset. Past events will be forgotten
* after about twice the learning time.
* Range 1..1000 [hours], default 12 [hours]
* @param learning_time_gain_hours Time constant of long-term estimator for
* gain. Past events will be forgotten
* after about twice the learning time.
* Range 1..1000 [hours], default 12 [hours]
* NOTE: This value is not relevant for NOx
* algorithm type
* @param gating_max_duration_minutes Maximum duration of gating (freeze of
* estimator during high gas index signal).
* 0 (no gating) or range 1..3000 [minutes],
* default 180 [minutes] for VOC and
* 720 [minutes] for NOx
* @param std_initial Initial estimate for standard deviation.
* Lower value boosts events during initial
* learning period, but may result in larger
* device-to-device variations.
* Range 10..5000, default 50
* NOTE: This value is not relevant for NOx
* algorithm type
* @param gain_factor Factor used to scale applied gain value
* when calculating gas index. Range 1..1000,
* default 230
*/
void GasIndexAlgorithm_set_tuning_parameters(
GasIndexAlgorithmParams* params, int32_t index_offset,
int32_t learning_time_offset_hours, int32_t learning_time_gain_hours,
int32_t gating_max_duration_minutes, int32_t std_initial,
int32_t gain_factor);
/**
* Get current parameters to customize the gas index algorithm.
* Refer to GasIndexAlgorithm_set_tuning_parameters() for description of the
* parameters.
*/
void GasIndexAlgorithm_get_tuning_parameters(
const GasIndexAlgorithmParams* params, int32_t* index_offset,
int32_t* learning_time_offset_hours, int32_t* learning_time_gain_hours,
int32_t* gating_max_duration_minutes, int32_t* std_initial,
int32_t* gain_factor);
/**
* Calculate the gas index value from the raw sensor value.
*
* @param params Pointer to the GasIndexAlgorithmParams struct
* @param sraw Raw value from the SGP4x sensor
* @param gas_index Calculated gas index value from the raw sensor value. Zero
* during initial blackout period and 1..500 afterwards
*/
void GasIndexAlgorithm_process(GasIndexAlgorithmParams* params, int32_t sraw,
int32_t* gas_index);
#endif /* GASINDEXALGORITHM_H_ */

57
fw/Core/Inc/sht4x.h Normal file
View File

@ -0,0 +1,57 @@
/*
* sht4x.h
*
* Created on: Jun 8, 2021
* Author: user
*/
#ifndef INC_SHT4X_H_
#define INC_SHT4X_H_
#include "stdint.h"
#include "stm32l0xx_ll_i2c.h"
#include "stm32l0xx_ll_utils.h"
#include "i2c.h"
#include "crc8.h"
/*
* Defines & macros
*/
#define SHT4X_I2C_ADDRESS 0x44
/*
* Return values
*/
#define SHT4X_OK 0
#define SHT4X_ERROR -1 // generic error
#define SHT4X_CRC8_ERROR -2 // checksum failed
/*
* Data types
*/
typedef enum {
SHT4X_START_MEAS_HIGH_PRECISION = 0xFD,
SHT4X_START_MEAS_MEDIUM_PRECISION = 0xF6,
SHT4X_START_MEAS_LOW_PRECISION = 0xE0,
SHT4X_READ_SERIAL = 0x89,
SHT4X_SOFT_RESET = 0x94,
SHT4X_HEATER_200_mW_1_s = 0x39,
SHT4X_HEATER_200_mW_01_s = 0x32,
SHT4X_HEATER_110_mW_1_s = 0x2F,
SHT4X_HEATER_110_mW_01_s = 0x24,
SHT4X_HEATER_20_mW_1_s = 0x1E,
SHT4X_HEATER_20_mW_01_s = 0x15
} sht4x_cmd_t;
/*
* Function prototypes
*/
int8_t sht4x_send_cmd(sht4x_cmd_t cmd);
int8_t sht4x_read_data(uint8_t *buffer, int len);
int8_t sht4x_measure(int16_t *temperature, uint16_t *relative_humidity);
#endif /* INC_SHT4X_H_ */

78
fw/Core/Inc/sps30.h Normal file
View File

@ -0,0 +1,78 @@
/*
* sps30.h
*
* Created on: Jul 18, 2021
* Author: mrs
*/
#ifndef INC_SPS30_H_
#define INC_SPS30_H_
#include "stdint.h"
#include "stm32l0xx_ll_i2c.h"
#include "stm32l0xx_ll_utils.h"
#include "i2c.h"
#include "crc8.h"
/*
* Defines & macros
*/
#define SPS30_I2C_ADDRESS 0x69
/*
* Return values
*/
#define SPS30_OK 0
#define SPS30_ERROR -1 // generic error
#define SPS30_CRC8_ERROR -2 // checksum failed
/*
* Data types
*/
typedef enum {
SPS30_START_MEASUREMENT = 0x0010,
SPS30_STOP_MEASUREMENT = 0x0104,
SPS30_READ_DATA_READY_FLAG = 0x0202,
SPS30_READ_MEASURED_VALUES = 0x0300,
SPS30_SLEEP = 0x1001,
SPS30_WAKE_UP = 0x1103,
SPS30_START_FAN_CLEANING = 0x5607,
SPS30_READ_AUTO_CLEANING_INTERVAL = 0x8004,
SPS30_WRITE_AUTO_CLEANING_INTERVAL = 0x8004,
SPS30_READ_PRODUCT_TYPE = 0xD002,
SPS30_READ_SERIAL_NUMBER = 0xD033,
SPS30_READ_VERSION = 0xD100,
SPS30_READ_DEVICE_STATUS_REGISTER = 0xD206,
SPS30_CLEAR_DEVICE_STATUS_REGISTER = 0xD210,
SPS30_RESET = 0xD304
} sps30_cmd_t;
typedef enum {
SPS30_FLOAT_FORMAT = 0x03,
SPS30_UINT16_FORMAT = 0x05
} sps30_data_format;
int8_t sps30_send_cmd(sps30_cmd_t cmd);
int8_t sps30_start_measurement( void );
int8_t sps30_stop_measurement( void );
int8_t sps30_read_measured_values(uint16_t *measured_values, uint8_t measured_values_len);
int8_t sps30_sleep( void );
int8_t sps30_wake_up( void );
int8_t sps30_start_fan_cleaning( void );
int8_t sps30_reset( void );
int8_t sps30_read_status_register ( void );
int8_t sps30_read_firmware_version ( uint8_t * fw_ver_hi, uint8_t * fw_ver_lo );
uint8_t calculate_crc(uint8_t data[2]);
#endif /* INC_SPS30_H_ */

View File

@ -52,7 +52,7 @@ void SVC_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void TIM21_IRQHandler(void);
void USART2_IRQHandler(void);
void LPUART1_IRQHandler(void);
/* USER CODE BEGIN EFP */
/* USER CODE END EFP */

View File

@ -7,25 +7,6 @@
#include "config.h"
/*
* Variables
*/
/* Baudrates - STM32L0xx can do baudrates from 1200 to 115200
* - default value has index 0 */
const uint32_t config_baudrates[] = {
19200, // 0
4800, // 1
9600, // 2
14400, // 3
19200, // 4
28800, // 5
38400, // 6
57600, // 7
76800, // 8
115200 // 9
};
const uint8_t config_baudrates_length = 10;
/* Function to lock the EEPROM */
static int8_t eeprom_lock(void);
/* Function to unlock the EEPROM */
@ -42,10 +23,8 @@ static int8_t eeprom_program_word(uint32_t addr, uint32_t ee_data);
int8_t config_read(config_t *config)
{
config->serial_number_1 = *(uint16_t *) (CONFIG_EEPROM_ADDR_SERIAL_NUMBER_1);
config->serial_number_2 = *(uint16_t *) (CONFIG_EEPROM_ADDR_SERIAL_NUMBER_2);
config->modbus_addr = *(uint16_t *) (CONFIG_EEPROM_ADDR_MODBUS_ADDR);
config->baudrate_index = *(uint16_t *) (CONFIG_EEPROM_ADDR_BAUDRATE_INDEX);
config->baudrate_index = *(uint32_t *) (CONFIG_EEPROM_ADDR_BAUDRATE_INDEX);
config->led_on = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_ON);
config->led_brightness = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_BRIGHTNESS);
config->led_smooth = *(uint16_t *) (CONFIG_EEPROM_ADDR_LED_SMOOTH);
@ -62,9 +41,7 @@ int8_t config_read(config_t *config)
if ((config->modbus_addr == EEPROM_EMPTY_BYTE) ||
(config->led_co2_alert_limit1 == EEPROM_EMPTY_BYTE) ||
(config->led_co2_alert_limit2 == EEPROM_EMPTY_BYTE) ||
(config->led_brightness == EEPROM_EMPTY_BYTE) ||
(config->serial_number_1 == EEPROM_EMPTY_BYTE) ||
(config->serial_number_2 == EEPROM_EMPTY_BYTE))
(config->led_brightness == EEPROM_EMPTY_BYTE))
{
return CONFIG_ERROR;
}
@ -81,26 +58,13 @@ int8_t config_write(config_t *config)
/* Reset the ERASE and DATA bits in the FLASH_PECR register to disable any residual erase */
FLASH->PECR = FLASH->PECR & ~(FLASH_PECR_ERASE | FLASH_PECR_DATA);
/* Write SERIAL NUMBER 1 */
if (eeprom_program_halfword(CONFIG_EEPROM_ADDR_SERIAL_NUMBER_1, config->serial_number_1) != EEPROM_OK)
{
return EEPROM_WRITE_ERROR;
}
/* Write SERIAL NUMBER 2 */
if (eeprom_program_halfword(CONFIG_EEPROM_ADDR_SERIAL_NUMBER_2, config->serial_number_2) != EEPROM_OK)
{
return EEPROM_WRITE_ERROR;
}
/* Write MODBUS ADDRESS */
if (eeprom_program_halfword(CONFIG_EEPROM_ADDR_MODBUS_ADDR, config->modbus_addr) != EEPROM_OK)
{
return EEPROM_WRITE_ERROR;
}
/* Write BAUDRATE */
if (eeprom_program_halfword(CONFIG_EEPROM_ADDR_BAUDRATE_INDEX, config->baudrate_index) != EEPROM_OK)
if (eeprom_program_word(CONFIG_EEPROM_ADDR_BAUDRATE_INDEX, config->baudrate_index) != EEPROM_OK)
{
return EEPROM_WRITE_ERROR;
}
@ -112,7 +76,7 @@ int8_t config_write(config_t *config)
}
/* Write LED BRIGHTNESS */
if (eeprom_program_halfword(CONFIG_EEPROM_ADDR_LED_BRIGHTNESS, config->led_brightness) != EEPROM_OK)
if (eeprom_program_word(CONFIG_EEPROM_ADDR_LED_BRIGHTNESS, config->led_brightness) != EEPROM_OK)
{
return EEPROM_WRITE_ERROR;
}

28
fw/Core/Src/crc8.c Normal file
View File

@ -0,0 +1,28 @@
/*
* crc.c
*
* Created on: Jun 9, 2021
* Author: user
*/
#include "crc8.h"
/* Stolen from Sensirion SCD4x datasheet, section 3.11 */
uint8_t crc8_calculate(const uint8_t *data, uint16_t count)
{
uint16_t current_byte;
uint8_t crc = CRC8_INIT;
uint8_t crc_bit;
/* calculates 8-Bit checksum with given polynomial */
for (current_byte = 0; current_byte < count; ++current_byte) {
crc ^= (data[current_byte]);
for(crc_bit = 8; crc_bit > 0; --crc_bit) {
if (crc & 0x80) {
crc =(crc << 1) ^ CRC8_POLYNOMIAL;
} else {
crc = (crc << 1);
}
}
}
return crc;
}

View File

@ -6,11 +6,11 @@
*/
#include "i2c.h"
#include "stm32l0xx_ll_usart.h"
#include "stm32l0xx_ll_lpuart.h"
static i2c_context_t *i2c_context;
i2c_context_t *i2c_context;
int8_t i2c_init(i2c_context_t *context)
int i2c_init(i2c_context_t *context)
{
if (context == NULL) {
return I2C_ERROR;
@ -19,13 +19,17 @@ int8_t i2c_init(i2c_context_t *context)
return I2C_OK;
}
int8_t i2c_transmit(uint8_t address, uint8_t *buffer, int len)
int i2c_transmit(uint8_t address, uint8_t *buffer, int len)
{
/* prevent interrupts during I2C communication (e.g. collision with MODBUS) */
// LL_LPUART_Disable(LPUART1);
// LL_LPUART_DisableIT_RXNE(LPUART1);
// __disable_irq();
LL_I2C_HandleTransfer(i2c_context->i2c, address, LL_I2C_ADDRSLAVE_7BIT, len,
LL_I2C_MODE_AUTOEND, LL_I2C_GENERATE_START_WRITE);
int i = 0;
/* Autoend mode will raise STOP flag if NACK is detected
* (or if desired number of bytes is transmitted) */
// Autoend mode will raise STOP flag if NACK is detected
// (or if desired number of bytes is transmitted)
while (!LL_I2C_IsActiveFlag_STOP(i2c_context->i2c)) {
if (LL_I2C_IsActiveFlag_TXE(i2c_context->i2c)) {
if (i < len) {
@ -34,24 +38,27 @@ int8_t i2c_transmit(uint8_t address, uint8_t *buffer, int len)
}
}
LL_I2C_ClearFlag_STOP(i2c_context->i2c);
LL_I2C_ClearFlag_TXE(i2c_context->i2c);
if (LL_I2C_IsActiveFlag_NACK(i2c_context->i2c)) {
return I2C_ERROR_NACK;
}
if (len != i) {
/* If we detect NACK during transaction (before the end of the last byte) */
// this will probably never happen, as NACK flag
// is raised everytime len != number of TXed bytes
return I2C_ERROR_TX_INCOMPLETE;
}
/* NACK after last byte is ok */
// if (LL_I2C_IsActiveFlag_NACK(i2c_context->i2c)) {
//
// return I2C_ERROR_NACK;
// }
// __enable_irq();
// LL_LPUART_Enable(LPUART1);
// LL_LPUART_EnableIT_RXNE(LPUART1);
return I2C_OK;
}
int8_t i2c_receive(uint8_t address, uint8_t *buffer, int len)
int i2c_receive(uint8_t address, uint8_t *buffer, int len)
{
// __disable_irq();
// LL_LPUART_Disable(LPUART1);
// LL_LPUART_DisableIT_RXNE(LPUART1);
LL_I2C_HandleTransfer(i2c_context->i2c, address, LL_I2C_ADDRSLAVE_7BIT, len,
LL_I2C_MODE_AUTOEND, LL_I2C_GENERATE_START_READ);
LL_I2C_ClearFlag_STOP(i2c_context->i2c);
int i = 0;
while (!LL_I2C_IsActiveFlag_STOP(i2c_context->i2c)) {
if (LL_I2C_IsActiveFlag_RXNE(i2c_context->i2c)) {
@ -64,6 +71,8 @@ int8_t i2c_receive(uint8_t address, uint8_t *buffer, int len)
if (len != i) {
return I2C_ERROR_RX_INCOMPLETE;
}
return I2C_OK;
// __enable_irq();
// LL_LPUART_Enable(LPUART1);
// LL_LPUART_EnableIT_RXNE(LPUART1);
return I2C_OK; // TODO error detection
}

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More