Miguel Sánchez de León PequeClara Casas
Published © CC BY-SA

Stowaway

Smart trailers and intermodal containers data logger.

IntermediateFull instructions provided20 hours1,552
Stowaway

Things used in this project

Hardware components

PSoC Analog Coprocessor Pioneer Kit
Cypress PSoC Analog Coprocessor Pioneer Kit
×1
Raspberry Pi 3 Model B
Raspberry Pi 3 Model B
×1
STMicroelectronics LY330ALH (single-axis gyroscope)
×1
Resistor 10k ohm
Resistor 10k ohm
×1
Capacitor 10 nF
Capacitor 10 nF
×1
Capacitor 470 nF
×1

Software apps and online services

PSoC Creator
Cypress PSoC Creator
Jupyter Notebook
Jupyter Notebook

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Custom parts and enclosures

Bottom enclosure

Top enclosure

Schematics

CKIT Top Design

Overall schematic for stowaway project from PSoC Creator.
It includes common elements as EZI2C or ADC and sheet connectors to the sensors.

CKIT Gyroscope Sensor

Schematic for gyroscope sensor from PsoC Creator, with sheet connectors to Top design.

CKIT Schematic file from PSoC Creator 4.0

.cysch file with the components from Cypress Catalog to be programed on the CKIT. It also includes extra information about sensors connections.

LY330ALH basic setup schematic

Minimal configuration to work with the LY330ALH gyroscope.

Code

CKIT code: Gyroscope.c

C/C++
Functions to read from ADC and initialize i2c for gyroscope
#include <project.h>
#include "main.h"
#include "Gyroscope.h"

/**
* @brief This function performs angle rate measurement.
*
* The function reads ADC result form Voutz channel and write it on I2C buffer.
*/
void GyroscopeTask(void)
{	
	int16 adcResultVOUTZ;
    
    /* Read the ADC result for Voutz and Vref difference */
  adcResultVOUTZ = ADC_GetResult16(ADC_CHANNEL_GYRO);
  ProcessValues.Voutz = adcResultVOUTZ;
}
/**
* @brief This function initializes Gyrosocope sensing.
*/
void Gyroscope_Start(void)
{
  ProcessValues.Voutz = 0;
}

/* [] END OF FILE */

CKIT code: main.c

C/C++
Main file with sensors and i2z tasks on CKIT
/******************************************************************************
* Project Name		: PSoC Analog Coprocessor Environment Sensing Solution demo
* Version			: 1.0
* Device Used		: CY8C4A45LQI-L483
* Software Used		: PSoC Creator 3.3 Service Pack 2 build 9598
* Compiler Used		: ARM GCC 4.9.3 
* Related Hardware	: CY8CKIT-048 PSoC Analog Coprocessor Pioneer Kit rev06
*******************************************************************************
* Copyright (2016), Cypress Semiconductor Corporation.
*******************************************************************************
* This software, including source code, documentation and related materials
* ("Software") is owned by Cypress Semiconductor Corporation (Cypress) and is
* protected by and subject to worldwide patent protection (United States and 
* foreign), United States copyright laws and international treaty provisions. 
* Cypress hereby grants to licensee a personal, non-exclusive, non-transferable
* license to copy, use, modify, create derivative works of, and compile the 
* Cypress source code and derivative works for the sole purpose of creating 
* custom software in support of licensee product, such licensee product to be
* used only in conjunction with Cypress's integrated circuit as specified in the
* applicable agreement. Any reproduction, modification, translation, compilation,
* or representation of this Software except as specified above is prohibited 
* without the express written permission of Cypress.
* 
* Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND, 
* EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED 
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* Cypress reserves the right to make changes to the Software without notice. 
* Cypress does not assume any liability arising out of the application or use
* of Software or any product or circuit described in the Software. Cypress does
* not authorize its products for use as critical components in any products 
* where a malfunction or failure may reasonably be expected to result in 
* significant injury or death ("ACTIVE Risk Product"). By including Cypress's 
* product in a ACTIVE Risk Product, the manufacturer of such system or application
* assumes all risk of such use and in doing so indemnifies Cypress against all
* liability. Use of this Software may be limited by and subject to the applicable
* Cypress software license agreement.
*******************************************************************************/
/* Header File Includes */
#include <project.h>
#include <main.h>
#include <filters.h>
#include <temperature.h>
#include "AmbientLightSensor.h"
#include "math.h"
#include <stdio.h>
#include <humidity.h>
#include <CyFlash.h>
#include "Gyroscope.h"

/* Global Variables */
PROCESS_VALUES I2CRegsProcess = {0, 0, 0, 0};
PROCESS_VALUES ProcessValues = {0, 0, 0, 0};

uint16 I2CRegsCommand = 0;

/* Functions */

/*******************************************************************************
* Function Name: void UpdateI2CRegisters(void)
********************************************************************************
*
* Summary:
*  This function updates the I2C register map.  The function first checks if
*  there is an I2C transaction in progress, and updates the I2C registers only if
*  there is no I2C transaction in progress.
*
* Parameters:
*  None
*
* Return:
*  None.
*
* Side Effects:
*   None
*******************************************************************************/
void I2CTask(void)
{
    if(!(EzI2C_EzI2CGetActivity() & EzI2C_EZI2C_STATUS_BUSY))
	{
    	I2CRegsProcess = ProcessValues;
	}
}

/*******************************************************************************
* Function Name: main
********************************************************************************
*
* Summary:
*  This is the main function for the project.  The function initializes all the
*  resources, and in an infinite loop, performs tasks to measure all the process
*  parameters from sensors and updates I2C register map
*
* Parameters:
*  None
*
* Return:
*  None.
*
* Side Effects:
*   None
*******************************************************************************/
int main()
{
	/* Enable global interrupts */
	CyGlobalIntEnable;
	
	/* Initialize hardware resources */
	InitResources();

	/* Infinite Loop */
	for(;;)
    {
		/* Check if ADC data is ready */
		if(ADC_IsEndConversion(ADC_RETURN_STATUS))
		{
			/* Call the temperature task to measure temperature */
			TemperatureTask();
			
			/* Call the Ambient Light Sensor task to measure ambient light */
			AmbientLightSensorTask();
			
      /* Call the Gyroscope Sensor task*/
      GyroscopeTask();
			
		}
        
        /* Do humidity task */
        HumidityTask();
        
        /* Do I2C task */
        I2CTask();
    }
}

/*******************************************************************************
* Function Name: void InitResources(void)
********************************************************************************
*
* Summary:
*  This function initializes all the hardware resources
*
* Parameters:
*  None
*
* Return:
*  None.
*
* Side Effects:
*   None
*******************************************************************************/
void InitResources(void)
{
    
	/* Set IIR Low Pass filter coefficients */
	SetFilterCoefficient(FILTER_COEFFICIENT_TEMPERATURE, LPF_CHANNEL_TEMP_VREF);
	SetFilterCoefficient(FILTER_COEFFICIENT_TEMPERATURE, LPF_CHANNEL_TEMP_VTH);
	SetFilterCoefficient(FILTER_COEFFICIENT_ALS, LPF_CHANNEL_ALS);
	SetFilterCoefficient(FILTER_COEFFICIENT_IPS, LPF_CHANNEL_IPS);
    
  /* Start EzI2C and initialize buffer */
	EzI2C_Start();
	EzI2C_EzI2CSetBuffer1(sizeof(I2CRegsProcess), 0, (uint8*)&I2CRegsProcess);
	EzI2C_EzI2CSetBuffer2(sizeof(I2CRegsCommand), 2, (uint8*)&I2CRegsCommand);
	
	/* Start the VREFs buffers */
	VrefBuffer_Termo_Start();
  VrefBuffer_Gyro_Start();
    
  /* Start the programmable voltage reference source */
  PVref_Termo_Start();
  PVref_Termo_Enable();
  PVref_Gyro_Start();
  PVref_Gyro_Enable();
    
  /* Initialize sensor interfaces */
  Temperature_Start();
  AmbientLightSensor_Start();
  Humidity_Start();
  Gyroscope_Start();
    
  /* Start ADC and start conversion */
	ADC_Start();	    
  ADC_StartConvert();
            
}

/* [] END OF FILE */

CKIT code: main.h

C/C++
Main header with macros, function prototypes and data structures.
/*******************************************************************************
* File Name     : main.h
*
* Description:
* This file contains the function prototypes and constants used in main.c
*
* Code Tested With:
* 1. PSoC Creator 3.3 SP2 build 9598
*
*******************************************************************************
* Copyright (2016), Cypress Semiconductor Corporation.
*******************************************************************************
* This software, including source code, documentation and related materials
* ("Software") is owned by Cypress Semiconductor Corporation (Cypress) and is
* protected by and subject to worldwide patent protection (United States and 
* foreign), United States copyright laws and international treaty provisions. 
* Cypress hereby grants to licensee a personal, non-exclusive, non-transferable
* license to copy, use, modify, create derivative works of, and compile the 
* Cypress source code and derivative works for the sole purpose of creating 
* custom software in support of licensee product, such licensee product to be
* used only in conjunction with Cypress's integrated circuit as specified in the
* applicable agreement. Any reproduction, modification, translation, compilation,
* or representation of this Software except as specified above is prohibited 
* without the express written permission of Cypress.
* 
* Disclaimer: THIS SOFTWARE IS PROVIDED AS-IS, WITH NO WARRANTY OF ANY KIND, 
* EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, NONINFRINGEMENT, IMPLIED 
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* Cypress reserves the right to make changes to the Software without notice. 
* Cypress does not assume any liability arising out of the application or use
* of Software or any product or circuit described in the Software. Cypress does
* not authorize its products for use as critical components in any products 
* where a malfunction or failure may reasonably be expected to result in 
* significant injury or death ("ACTIVE Risk Product"). By including Cypress's 
* product in a ACTIVE Risk Product, the manufacturer of such system or application
* assumes all risk of such use and in doing so indemnifies Cypress against all
* liability. Use of this Software may be limited by and subject to the applicable
* Cypress software license agreement.
*******************************************************************************/

#ifndef __MAIN_H
#define __MAIN_H

#include <project.h>

/***************************************
 * System Constants
 ***************************************/
//#define PIR_LED_ENABLED     /* Enable blue LED for debugging PIR output */
//#define IPS_LED_ENABLED     /* Enable red LED for debugging IPS output */
    
#define LED_ON                  (0u)
#define LED_OFF                 (1u)
    
#define FALSE                   (0u)
#define TRUE                    (1u)
    
#define TO_SIGNED_12BIT(x)  (x - 2047)
    
/***************************************
 * Macros  
 ***************************************/
#define ADC_CHANNEL_VTH_HIGH	(0x00)
#define ADC_CHANNEL_VTH			(0x01)
#define ADC_CHANNEL_VTH_LOW		(0x02)
#define ADC_CHANNEL_ALS_DIRECT	(0x03)
#define ADC_CHANNEL_ALS_REVERSE	(0x04)
#define ADC_CHANNEL_GYRO 		(0x05)

    
/* Defines second ROW from the last ROW */
#define CY_TEST_FLASH_ROW       (CY_FLASH_NUMBER_ROWS - 2u)

/* Defines absolute address of ROW */
#define CY_TEST_FLASH_ADDR      (CY_TEST_FLASH_ROW * CY_FLASH_SIZEOF_ROW)

/***************************************
 * TypeDefs  
 ***************************************/
    
/***************************************
 * Structures  
 ***************************************/
/* Structure that holds all the sensor values */
typedef struct PROCESS_VALUES
{
  int16 Temperature;        /* Measured temperature */
  uint16 LightIntensity;    /* Light Intensity */
  uint16 Humidity;          /* Relative Humidity */
  int16 Voutz;              /* Gyroscope Output Voltage  */	
}PROCESS_VALUES;


/***************************************
 * Variables  
 ***************************************/
extern PROCESS_VALUES I2CRegsProcess;
extern PROCESS_VALUES ProcessValues;
extern uint16 I2CRegsCommand;

/***************************************
 * Functions  
 ***************************************/
void InitResources(void);

#endif		/* __MAIN_H */

/* [] END OF FILE */

CKIT code: Gyroscope.h

C/C++
Headers for functions to read from ADC and initialize i2c for gyroscope
#ifndef __GYROSCOPE_H
#define __GYROSCOPE_H

#include <project.h>

/* Constant definitions */

/* Function prototypes */
void GyroscopeTask(void);
void Gyroscope_Start(void);

#endif		/* __GYROSCOPE_H */

/* [] END OF FILE */

CKIT Schematic file from PSoC Creator 4.0

Scheme
.cysch file with the components from Cypress Catalog to be programed on the CKIT. It also includes extra information about sensors connections.
No preview (download only).

CKIT pins mapping file

XML
.cydwr file with the assignment of the pins for CKIT.
<?xml version="1.0" encoding="utf-8"?>
<DesignWideResources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://cypress.com/xsd/cydwr">
  <Group key="Component">
    <Group key="v1">
      <Data key="cy_boot" value="cy_boot_v5_50" />
      <Data key="cy_dmac" value="cy_dmac_v1_10" />
      <Data key="cy_lfclk" value="cy_lfclk_v1_10" />
      <Data key="LIN_Dynamic" value="LIN_Dynamic_v3_40" />
    </Group>
  </Group>
  <Data key="DataVersionKey" value="1" />
  <Group key="DWRInstGuidMapping">
    <Group key="Clock">
      <Data key="1c4928bd-66cc-49f7-bf7a-560767b8f49b/5c71752a-e182-47ca-942c-9cb20adbdf2f" value="ADC_intClock" />
      <Data key="6f1c2485-e710-4a22-b73f-1d25b0e2aa8a/b6815a07-3ae4-40f3-8790-63c50500bc89" value="ADC_intUabClock" />
      <Data key="17d2f011-76d9-46e5-801b-28e1e925203e" value="Clock_1" />
      <Data key="20c78198-a984-4f9f-a8a6-28c9a7c12152" value="Clock_3" />
      <Data key="288d5225-a95e-4936-a4ad-ee9c659f6800/a8285cdc-5e81-40c0-8036-58ea5f8c1102" value="CSD_ModClk" />
      <Data key="920ac626-75fc-42be-bddc-386ba9cec7f2" value="timer_clock" />
      <Data key="94467288-781c-449d-8a00-1eac0c6b2b59/2dc2d7a8-ce2b-43c7-af4a-821c8cd73ccf" value="EzI2C_SCBCLK" />
      <Data key="e0b15759-b29e-4106-94d6-e70eb9adbf3c" value="Clock_2" />
      <Data key="e5a70c1b-fa7d-44f3-b453-59a35ba34ec2" value="Clk_1kHz" />
    </Group>
    <Group key="Pin">
      <Data key="00e6b96a-11cf-42a2-a006-9bcc1857bc8e" value="LPF_OUT" />
      <Data key="1b39bbe5-2d90-40ee-b95b-3d5eb369fe8a" value="TIA_OUT" />
      <Data key="1c4928bd-66cc-49f7-bf7a-560767b8f49b/16a808f6-2e13-45b9-bce0-b001c8655113" value="ADC_Bypass" />
      <Data key="1fea83b6-8cb5-4429-a3e4-f7a795685b27" value="TIA_REF" />
      <Data key="2a1d0d25-8733-4625-9b60-856676b17404" value="Rectifier_Out" />
      <Data key="2ed57c91-2445-41bc-84b7-45b7d488ceb2/7850aeaf-db25-4eae-b828-015ef596b59e" value="CSD_Cmod" />
      <Data key="2ed57c91-2445-41bc-84b7-45b7d488ceb2/77715107-f8d5-47e5-a629-0fb83101ac6b" value="CSD_Sns" />
      <Data key="5bd50336-21b0-4703-8e1d-ae50401f29be" value="Pin_Voutz" />
      <Data key="8a2ff483-ab1f-4e09-87c5-fbceed518129" value="RCAL1" />
      <Data key="9e0501d3-74ae-40f8-b9f0-ff6c0b7a872a" value="VREF_IN" />
      <Data key="9ea67245-193a-4641-bc8c-b1850833ce6e" value="Pin_Vref" />
      <Data key="28ca412f-9e5c-4311-a99b-9d437e7b5a42" value="RCAL2" />
      <Data key="33a0ffc8-22c2-47f6-83eb-5cd5b0addca9" value="LED_BLUE" />
      <Data key="35fbfa3c-e1f6-42d6-a8fe-acaeb61aff28" value="Pin_IPSADC" />
      <Data key="43ec2fa1-bf22-4b71-9477-b6ca7b97f0b0/23b8206d-1c77-4e61-be4a-b4037d5de5fc" value="UART_tx" />
      <Data key="50f22e56-8d7f-4fe3-a5c7-64f1e2215591" value="PIR2_POS" />
      <Data key="75a84975-39fc-4fd2-92c2-f5c652152bde" value="Vlow" />
      <Data key="246d52ac-58d2-4f7b-9576-93ffe5857648" value="ALS_IN" />
      <Data key="288d5225-a95e-4936-a4ad-ee9c659f6800/7850aeaf-db25-4eae-b828-015ef596b59e" value="CSD_Cmod" />
      <Data key="288d5225-a95e-4936-a4ad-ee9c659f6800/77715107-f8d5-47e5-a629-0fb83101ac6b" value="CSD_Sns" />
      <Data key="319c2e28-6bc1-43a1-92ba-756f80dc3da6" value="Sensor_Signal" />
      <Data key="423b1792-8b51-4817-a686-2e026e346fa5" value="LED_Red" />
      <Data key="528db7f1-8af3-4750-ba63-0ba5e6a0397e" value="Pin_Interrupt" />
      <Data key="1978fcf0-e02a-410c-89e6-881b9b227a28" value="LED_Blue" />
      <Data key="2443b1d6-2fa0-47cf-97d2-b538aa449e21" value="Sensor_Signal" />
      <Data key="9119f7a5-5f54-4b7e-b223-1053e00d9621" value="VTH_1" />
      <Data key="15726d0f-0161-403c-9e5a-914bb6270a63" value="VREF" />
      <Data key="16623aee-7bf1-46f6-a66d-491d63eda1df" value="Pin_PIRAmpOut" />
      <Data key="44906ce7-f1c1-4a6d-94af-f4a5e140587f" value="Pin_PIR" />
      <Data key="26782439-2b23-4389-a540-92efc4881d2b" value="TIA_REF" />
      <Data key="35025385-f4c4-49a8-a7db-669ee489d64c" value="VTH_HIGH" />
      <Data key="77715107-f8d5-47e5-a629-0fb83101ac6b" value="Vtherm" />
      <Data key="94467288-781c-449d-8a00-1eac0c6b2b59/5382e105-1382-4a2e-b9f4-3bb2feba71e0" value="EzI2C_sda" />
      <Data key="94467288-781c-449d-8a00-1eac0c6b2b59/22863ebe-a37b-476f-b252-6e49a8c00b12" value="EzI2C_scl" />
      <Data key="a2ef4466-43b9-4ef8-860e-bb0323f0240c" value="IPS_OUT" />
      <Data key="a21ae986-ea7a-42b9-8d2d-07025a19424e" value="Vhi" />
      <Data key="b4e87605-8586-4ba2-bb76-85055d20a178" value="PIR_POS" />
      <Data key="b54c9239-8e1a-4506-95ac-a31862a64d4c" value="VREF_OUT" />
      <Data key="bdb913d1-b028-4c14-a32a-f1a2fb7523f9" value="PIR_IN" />
      <Data key="bea16113-7dab-4ce2-ab9a-8cfbc8cfb1aa" value="Pin_Vdd" />
      <Data key="dd1f84b9-b05d-405b-8e86-e0d88f8bdbec" value="TIA_IN" />
      <Data key="e7f10e38-ae04-4f83-87f9-8b6abcbf882e" value="Pin_4" />
      <Data key="e846ea0e-9c39-4c8f-a5c6-9fa459428a42" value="PIR2_OUT" />
      <Data key="e851a3b9-efb8-48be-bbb8-b303b216c393" value="EXCITATION" />
      <Data key="e5724e77-34b2-4615-a6e9-97f36eed099a" value="TIA_POS" />
      <Data key="e6954da0-1878-4fc7-81ee-34373b6a42f0" value="PIR_OUT" />
      <Data key="e0685250-0dcc-4d99-9713-8c9e9181f8ac" value="PIR2_NEG" />
      <Data key="f63bd201-4297-4885-91c1-ed289c66c1bf" value="LED_Green" />
      <Data key="f8006c86-2504-49b8-8b62-02ca0faefd71/73b612cd-240c-4d8e-8340-ea28aabf4b11" value="CSD_Sns" />
      <Data key="f8006c86-2504-49b8-8b62-02ca0faefd71/899719c0-e797-4403-a44f-07a66de2cbeb" value="CSD_Cmod" />
      <Data key="f8787d65-dece-4c79-b0fe-c606cd91a2b5" value="IPS_NEG" />
      <Data key="f86011c9-dd9e-4028-ac1b-852f142555b2" value="Pin_PIRRef" />
      <Data key="fdd30cfd-b344-4b8a-ae05-97a5aa8a4860" value="PIR2_IN" />
    </Group>
  </Group>
  <Group key="FlashSecurity">
    <Group key="RowsKey">
      <Group key="0">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="1">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="2">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="3">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="4">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="5">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="6">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="7">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="8">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="9">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="10">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="11">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="12">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="13">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="14">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="15">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="16">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="17">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="18">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="19">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="20">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="21">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="22">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="23">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="24">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="25">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="26">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="27">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="28">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="29">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="30">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="31">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="32">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="33">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="34">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="35">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="36">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="37">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="38">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="39">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="40">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="41">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="42">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="43">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="44">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="45">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="46">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="47">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="48">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="49">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="50">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="51">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="52">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="53">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="54">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="55">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="56">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="57">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="58">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="59">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="60">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="61">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="62">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="63">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="64">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="65">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="66">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="67">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="68">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="69">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="70">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="71">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="72">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="73">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="74">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="75">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="76">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="77">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="78">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="79">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="80">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="81">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="82">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="83">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="84">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="85">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="86">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="87">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="88">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="89">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="90">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="91">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="92">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="93">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="94">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="95">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="96">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="97">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="98">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="99">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="100">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="101">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="102">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="103">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="104">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="105">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="106">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="107">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="108">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="109">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="110">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="111">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="112">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="113">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="114">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="115">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="116">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="117">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="118">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="119">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="120">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="121">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="122">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="123">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="124">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="125">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="126">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="127">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="128">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="129">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="130">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="131">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="132">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="133">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="134">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="135">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="136">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="137">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="138">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="139">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="140">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="141">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="142">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="143">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="144">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="145">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="146">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="147">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="148">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="149">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="150">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="151">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="152">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="153">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="154">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="155">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="156">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="157">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="158">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="159">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="160">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="161">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="162">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="163">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="164">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="165">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="166">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="167">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="168">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="169">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="170">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="171">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="172">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="173">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="174">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="175">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="176">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="177">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="178">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="179">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="180">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="181">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="182">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="183">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="184">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="185">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="186">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="187">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="188">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="189">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="190">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="191">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="192">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="193">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="194">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="195">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="196">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="197">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="198">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="199">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="200">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="201">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="202">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="203">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="204">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="205">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="206">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="207">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="208">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="209">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="210">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="211">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="212">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="213">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="214">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="215">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="216">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="217">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="218">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="219">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="220">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="221">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="222">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="223">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="224">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="225">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="226">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="227">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="228">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="229">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="230">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="231">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="232">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="233">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="234">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="235">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="236">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="237">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="238">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="239">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="240">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="241">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="242">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="243">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="244">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="245">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="246">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="247">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="248">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="249">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="250">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="251">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="252">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="253">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="254">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="255">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="256">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="257">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="258">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="259">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="260">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="261">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="262">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="263">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="264">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="265">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="266">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="267">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="268">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="269">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="270">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="271">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="272">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="273">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="274">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="275">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="276">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="277">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="278">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="279">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="280">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="281">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="282">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="283">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="284">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="285">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="286">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="287">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="288">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="289">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="290">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="291">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="292">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="293">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="294">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="295">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="296">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="297">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="298">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="299">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="300">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="301">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="302">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="303">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="304">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="305">
        <Data key="LevelKey" value="0" />
      </Group>
      <Group key="306">
...

This file has been truncated, please download it to see its full contents.

Stowaway

Code for the Raspberrypi I2C communication with the CY8CKIT-048, data logging and reports.

3D enclosure

CadQuery-based code for the enclosure 3D parts.

Spinete

Multi-platform GUI for real-time visualization of the CY8CKIT-048 sensors.

Credits

Miguel Sánchez de León Peque

Miguel Sánchez de León Peque

4 projects • 3 followers
https://www.linkedin.com/in/peque
Clara Casas

Clara Casas

4 projects • 4 followers
Thanks to Michiyuki Yoneda and Alessandra Nölting.

Comments