Best Binary Options Signals and Software Binary Today

./play.it 2.12: API, GUI and video games

./play.it 2.12: API, GUI and video games

./play.it is a free/libre software that builds native packages for several Linux distributions from DRM-free installers for a collection of commercial games. These packages can then be installed using the standard distribution-provided tools (APT, pacman, emerge, etc.).
A more complete description of ./play.it has already been posted in linux_gaming a couple months ago: ./play.it, an easy way to install commercial games on GNU/Linux
It's already been one year since version 2.11 was released, in January 2019. We will only briefly review the changelog of version 2.12 and focus on the different points of ./play.it that kept us busy during all this time, and of which coding was only a small part.

What’s new with 2.12?

Though not the focus of this article, it would be a pity not to present all the added features of this brand new version. ;)
Compared to the usual updates, 2.12 is a major one, especially since for two years, we slowed down the addition of new features. Some patches took dust since the end of 2018 before finally be integrated in this update!
The list of changes for this 2.12 release can be found on our forge. Here is a full copy for convenience:

Development migration

History

As many free/libre projects, ./play.it development started on some random sector of a creaking hard drive, and unsurprisingly, a whole part of its history (everything predating version 1.13.15 released on Mars 30th, 2016) disappeared into the limbs because some unwise operation destroyed the only copy of the repository… Lesson learned, what's not shared don't stay long, and so was born the first public Git repository of the project. The easing of collaborative work was only accidentally achieved by this quest for eternity, but wasn't the original motivation for making the repository publicly available.
Following this decision, ./play.it source code has been hosted successively by many shared forge platforms:

Dedicated forge

As development progressed, ./play.it began to increase its need for resources, dividing its code into several repositories to improve the workflow of the different aspects of the projects, adding continuous integration tests and their constraints, etc. A furious desire to understand the nooks and crannies behind a forge platform was the last deciding factor towards hosting a dedicated forge.
So it happened, we deployed a forge platform on a dedicated server, hugely benefiting from the tremendous work achieved by the GitLab's package Debian Maintainers team. In return, we tried to contribute our findings in improving this software packaging.
That was not expected, but this migration happened just a little time before the announcement “Déframasoftisons Internet !” (French article) about the planned end of Framagit.
This dedicated instance used to be hosted on a VPS rented from Digital Ocean until the second half of July 2020, and since then has been moved to another VPS, rented from Hetzner. The specifications are similar, as well as the service, but thanks to this migration our hosting costs have been cut in half. Keeping in mind that this is paid by a single person, so any little donation helps a lot on this front. ;)
To the surprise of our system administrator, this last migration took only a couple hours with no service interruption reported by our users.

Forge access

This new forge can be found at forge.dotslashplay.it. Registrations are open to the public, but we ask you to not abuse this, the main restriction being that we do not wish to host projects unrelated to ./play.it. Of course exceptions are made for our active contributors, who are allowed to host some personal projects there.
So, if you wish to use this forge to host your own work, you first need to make some significant contributions to ./play.it.

API

The collection of supported games growing endlessly, we have started the development of a public API allowing access to lots of information related to ./play.it.
This API, which is not yet stabilized, is simply an interface to a versioned database containing all the ./play.it scripts, handled archives, games installable through the project. Relations are, of course, handled between those items, enabling its use for requests like : « What packages are required on my system to install Cæsar Ⅲ ? » or « What are the free (as in beer) games handled via DOSBox ? ».
Originally developed as support for the new, in-development, Web site (we'll talk about it later on), this API should facilitate the development of tools around ./play.it. For example, it'll be useful for whomever would like to build a complete video game handling software (downloading, installation, starting, etc.) using ./play.it as one of its building bricks.
For those curious about the technical side, it's an API based on Lumeneffectuant that makes requests on a MariaDB database, all self-hosted on a Debian Sid. Not only is the code of the API versioned on our forge, but also the structure and content of the databases, which will allow those who desired it to install a local version easily.

New website

Based on the aforementioned API, a new website is under development and will replace our current website based on DokuWiki.
Indeed, if the lack of database and the plain text files structure of DokuWiki seemed at first attractive, as ./play.it supported only a handful of games (link in French), this feature became more inconvenient as the library of ./play.it supported games grew.
We shall make an in-depth presentation of this website for the 2.13 release of ./play.it, but a public demo of the development version from our forge is already available.
If you feel like providing an helping hand on this task, some priority tasks have been identified to allow opening a new Web site able to replace the current one. And for those interested in technical details, this web Site was developed in PHP using the framework Laravel. The current in-development version is hosted for now on the same Debian Sid than the API.

GUI

A regular comment that is done about the project is that, if the purpose is to make installing games accessible to everyone without technical skills, having to run scripts in the terminal remains somewhat intimidating. Our answer until now has been that while the project itself doesn't aim to providing a graphical interface (KISS principle "Keep it simple, stupid"), still and always), but that it would be relatively easy to, later on, develop a graphical front-end to it.
Well, it happens that is now reality. Around the time of our latest publication, one of our contributors, using the API we just talked about, developed a small prototype that is usable enough to warrant a little shout out. :-)
In practice, it is some small Python 3 code (an HCI completely in POSIX shell is for a later date :-°), using GTK 3 (and still a VTE terminal to display the commands issued, but the user shouldn't have to input anything in it, except perhaps the root password to install some packages). This allowed to verify that, as we used to say, it would be relatively easy, since a script of less than 500 lines of code (written quickly over a week-end) was enough to do the job !
Of course, this graphical interface project stays independent from the main project, and is maintained in a specific repository. It seems interesting to us to promote it in order to ease the use of ./play.it, but this doesn't prevent any other similar projects to be born, for example using a different language or graphical toolkit (we, globally, don't have any particular affinity towards Python or GTK).
The use of this HCI needs three steps : first, a list of available games is displayed, coming directly from our API. You just need to select in the list (optionally using the search bar) the game you want to install. Then it switches to a second display, which list the required files. If several alternatives are available, the user can select the one he wants to use. All those files must be in the same directory, the address bar on the top enabling to select which one to use (click on the open button on the top opens a filesystem navigation window). Once all those files available (if they can be downloaded, the software will do it automatically), you can move ahead to the third step, which is just watching ./play.it do its job :-) Once done, a simple click on the button on the bottom will run the game (even if, from this step, the game is fully integrated on your system as usual, you no longer need this tool to run it).
To download potentially missing files, the HCI will use, depending on what's available on the system, either wget, curl or aria2c (this last one also handling torrents), of which the output will be displayed in the terminal of the third phase, just before running the scripts. For privilege escalation to install packages, sudo will be used preferentially if available (with the option to use a third-party application for password input, if the corresponding environment variable is set, which is more user-friendly), else su will be used.
Of course, any suggestion for an improvement will be received with pleasure.

New games

Of course, such an announcement would not be complete without a list of the games that got added to our collection since the 2.11 release… So here you go:
If your favourite game is not supported by ./play.it yet, you should ask for it in the dedicated tracker on our forge. The only requirement to be a valid request is that there exists a version of the game that is not burdened by DRM.

What’s next?

Our team being inexhaustible, work on the future 2.13 version has already begun…
A few major objectives of this next version are :
If your desired features aren't on this list, don't hesitate to signal it us, in the comments of this news release. ;)

Links

submitted by vv224 to linux_gaming [link] [comments]

LCD Arduino project Display Heart Rate

LCD Arduino project brief introduction
Some time ago, I found a heart rate sensor module MAX30100 in shopping online. This module can collect blood oxygen and heart rate data of users, which is also simple and convenient to use.
According to the data, I found that there are libraries of MAX30100 in the Arduino library files. That is to say, if I use the communication between LCD Arduino and MAX30100, I can directly call the Arduino library files without having to rewrite the driver files. This is a good thing, so I bought the module of MAX30100.
I decided to use Arduino to verify the heart rate and blood oxygen collection function of MAX30100. With STONE TFT LCD screen for monitoring blood pressure.
Note: this module by default only with 3.3 V level MCU communications, because it defaults to using IIC pin pull up the resistance of 4.7 K to 1.8 V, so there is no communication with the Arduino by default, if you want to commune with the Arduino and need two 4.7 K of the IIC pin pull-up resistor connected to the VIN pin, these contents will be introduced in the back of the chapter.

Functional assignments

Before starting this project, I thought about some simple features:
• Heart rate data and blood oxygen data were collected
• Heart rate and blood oxygen data are displayed through an LCD screen
These are the only two features, but if we want to implement it, we need to do more thinking:
• What master MCU is used?
• What kind of LCD display?
As we mentioned earlier, we use Arduino for the MCU, but this is an LCD Arduino project, so we need to choose the appropriate LCD display module. I plan to use the LCD display screen with a serial port. I have a STONE STVI070WT-01 displayer here, but if Arduino needs to communicate with it, MAX3232 is needed to do the level conversion.
Then the basic electronic materials are determined as follows:
  1. Arduino Mini Pro development board
  2. MAX30100 heart rate and blood oxygen sensor module
  3. STONE STVI070WT-01 LCD serial port display module
  4. MAX3232 module

Hardware Introduction

MAX30100

The MAX30100 is an integrated pulse oximetry and heart rate monitor sensor solution. It combines two LEDs, a photodetector, optimized optics, and low-noise analog signal processing to detect pulse oximetry and heart-rate signals. The MAX30100 operates from 1.8V and 3.3V power supplies and can be powered down through software with negligible standby current, permitting the power supply to remain connected at all times.

Applications

● Wearable Devices
● Fitness Assistant Devices
● Medical Monitoring Devices

Benefits and Features

1、Complete Pulse Oximeter and Heart-Rate SensorSolution Simplifies Design
• Integrated LEDs, Photo Sensor, and high-Performance Analog Front -End
• Tiny 5.6mm x 2.8mm x 1.2mm 14-Pin OpticallyEnhanced System-in-Package
2、Ultra-Low-Power Operation Increases Battery Life for wearable Devices
• Programmable Sample Rate and LED Current for Power Savings
• Ultra-Low Shutdown Current (0.7µA, typ)
3、Advanced Functionality Improves Measurement Performance
• High SNR Provides Robust Motion Artifact Resilience
• Integrated Ambient Light Cancellation
• High Sample Rate Capability
• Fast Data Output Capability

Detection Principle


https://preview.redd.it/254ou0pq20a51.jpg?width=817&format=pjpg&auto=webp&s=2d3287e1973b328412e14c6e56f74e6f5975153e
Just press your finger against the sensor to estimate pulse oxygen saturation (SpO2) and pulse (equivalent to heartbeat).
The pulse oximeter (oximeter) is a mini-spectrometer that USES the principles of different red cell absorption spectra to analyze the oxygen saturation of the blood. This real-time and rapid measurement method is also widely used in many clinical references.
I will not introduce the MAX30100 too much, because these materials are available on the Internet. Interested friends can look up the information of this heart rate test module on the Internet, and have a deeper understanding of its detection principle.

Introduction to the STVI070WT-01 displayer

In this project, I will use the STONE STVI070WT-01 to display the heart rate and blood oxygen data.
The driver chip has been integrated inside the display screen, and there is software for users to use. Users only need to add buttons, text boxes, and other logic through the designed UI pictures, and then generate configuration files and download them into the display screen to run.
The display of STVI070WT-01 communicates with MCU through the UART RS232 signal, which means that we need to add a MAX3232 chip to convert the RS232 signal into a TTL signal so that we can communicate with Arduino MCU.

https://preview.redd.it/kyyv3hou20a51.jpg?width=749&format=pjpg&auto=webp&s=512b7285eb763e518a85d0b172dabc08b15cab6a
If you are not sure how to use the MAX3232, please refer to the following pictures:

https://preview.redd.it/5laiqsxw20a51.jpg?width=653&format=pjpg&auto=webp&s=126fb57d5171d942046277896e1552995df0ce13
If you think the level conversion is too troublesome, you can choose other types of displayers of STONE Tech, some of which can directly output uart-TTL signal.
The official website has detailed information and introduction:
https://www.stoneitech.com/
If you need video tutorials and tutorials to use, you can also find it on the official website.

https://preview.redd.it/0rkfwxk530a51.jpg?width=867&format=pjpg&auto=webp&s=32803906927fff48bb8fbc1b0a7c073cfe54c5e5

Development steps

Three steps of STONE display screen development:
• Design the display logic and button logic with STONE TOOL software, and download the design file to the display module.
• MCU communicates with the STONE LCD display module through the serial port.
• With the data obtained in step 2, the MCU does other actions.

STONE TOOL software installation

Download the latest version of the STONE TOOL software (currently TOOL2019) from the website, and install it.
After the software is installed, the following interface will be opened:

https://preview.redd.it/evuct2w630a51.jpg?width=848&format=pjpg&auto=webp&s=201d40fdb81e2c4fd229992daf15501f2cb177a0
Click the "File" button in the upper left corner to create a new project, which we will discuss later.

LCD Arduino

Arduino is an open-source electronic prototype platform that is easy to use and easy to use. It includes the hardware part (various development boards that conform to the Arduino specification) and the software part (Arduino IDE and related development kits).
The hardware part (or development board) consists of a microcontroller (MCU), Flash memory (Flash), and a set of universal input/output interfaces (GPIO), which you can think of as a microcomputer motherboard.
The software part is mainly composed of Arduino IDE on PC, related board-level support package (BSP) and rich third-party function library. With the Arduino IDE, you can easily download the BSP associated with your development board and the libraries you need to write your programs.
Arduino is an open-source platform. So far, there have been many models and many derived controllers, including Arduino Uno, Arduino Nano, Arduino Yun and so on. In addition, the Arduino IDE now not only supports the Arduino series development boards but also adds support for popular development boards such as Intel Galileo and NodeMCU by introducing BSP.
Arduino senses the environment through a variety of sensors, controlling lights, motors and other devices to feedback and influence the environment. The microcontroller on the board can be programmed with an Arduino programming language, compiled into binaries, and burned into the microcontroller. Programming for Arduino is implemented with the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino-based projects can contain Arduino only, as well as Arduino and other software running on PC, and they communicate with each other (such as Flash, Processing, MaxMSP).

HMI for Arduino serial display TFT LCD project development environment

The Arduino development environment is the Arduino IDE, which can be downloaded from the Internet.
Log into the official website of Arduino and download the software
https://www.arduino.cc/en/Main/Software?setlang=cn
After installing the Arduino IDE, the following interface will appear when you open the software:

https://preview.redd.it/2ajmkke830a51.jpg?width=567&format=pjpg&auto=webp&s=56dc9dd01c98b231c782ef94d24a9f620c4897b3
The Arduino IDE creates two functions by default: the setup function and the loop function.
There are many Arduino introductions on the Internet. If you don't understand something, you can go to the Internet to find it.

LCD Arduino Project implementation process

hardware connection

To ensure that the next step in writing code goes smoothly, we must first determine the reliability of the hardware connection.
Only four pieces of hardware were used in this project:
  1. Arduino Mini pro-development board
  2. STONE STVI070WT-01 TFT-LCD display screen
  3. MAX30100 heart rate and blood oxygen sensor
  4. MAX3232 (rs232-> TTL)
The Arduino Mini Pro development board and STVI070WT-01 TFT-LCD display screen are connected through UART, which requires level conversion through MAX3232, and then the Arduino Mini Pro development board and MAX30100 module are connected through IIC interface. After thinking clearly, we can draw the following wiring picture:

https://preview.redd.it/w2e5c9ha30a51.jpg?width=769&format=pjpg&auto=webp&s=95129db838d6c358e986c88a4d1348f4783cd0ab
https://preview.redd.it/eom4wiia30a51.jpg?width=1091&format=pjpg&auto=webp&s=ff56c3afaf063d7785a5b85ba283532be0dd896e
Make sure there are no errors in the hardware connection and proceed to the next step.

STONE TFT LCD user interface design

First of all, we need to design a UI display image, which can be designed by PhotoShop or other image design tools. After designing the UI display image, save the image in JPG format.
Open the software STONE TOOL 2019 and create a new project:

https://preview.redd.it/sqjii2mc30a51.jpg?width=1004&format=pjpg&auto=webp&s=12f0a87d6c2ca8decaff241d5a0b50a3a1aece89
https://preview.redd.it/4ta8cdlc30a51.jpg?width=871&format=pjpg&auto=webp&s=b31ac5e612a2c809e29f63974a04ba25bff83788
Remove the image that was loaded by default in the new project, and add the UI image that we designed.
Add the text display component, design the display digit and decimal point, get the storage location of the text display component in the displayer.
The effect is as follows:

https://preview.redd.it/2mfqapoe30a51.jpg?width=1335&format=pjpg&auto=webp&s=aacfa0fde88defacd127ea9d9d27ab006ab618dd
Text display component address:
• Connection sta : 0x0008
• Heart rate : 0x0001
• Blood oxygen : 0x0005
The main contents of the UI interface are as follows:
• Connection status
• Heart rate display
• Blood oxygen showed

Generate configuration file

Once the UI design is complete, the configuration file can be generated and downloaded to the STVI070WT-01 displaye.

First, perform step 1, then insert the USB flash drive into the computer, and the disk symbol will be displayed. Then click "Download to u-disk" to Download the configuration file to the USB flash drive, and then insert the USB flash drive into STVI070WT-01 to complete the upgrade.

MAX30100

MAX30100 communicates via IIC. Its working principle is that the ADC value of heart rate can be obtained through infrared led irradiation. The MAX30100 register can be divided into five categories: state register, FIFO, control register, temperature register, and ID register. The temperature register reads the temperature value of the chip to correct the deviation caused by the temperature. The ID register can read the chip's ID number.

https://preview.redd.it/221fq8vg30a51.jpg?width=848&format=pjpg&auto=webp&s=43e93284ac35cf1944a77d79ff9a2f662e540c7e

MAX30100 is connected with the Arduino Mini Pro development board through the IIC communication interface. Because there are ready-made MAX30100 library files in the Arduino IDE, we can read the heart rate and blood oxygen data without studying the registers of MAX30100.
For those who are interested in exploring the MAX30100 register, see the MAX30100 Datasheet.

Modify the MAX30100 IIC pull-up resistor

It should be noted that the 4.7k pull-up resistance of the IIC pin of MAX30100 module is connected to 1.8v, which is not a problem in theory. However, the communication logic level of the Arduino IIC pin is 5V, so it cannot communicate with Arduino without changing the hardware of the MAX30100 module.Direct communication is possible if the MCU is STM32 or another 3.3v logic level MCU.
Therefore, the following changes need to be made:

https://preview.redd.it/jti57usl30a51.jpg?width=521&format=pjpg&auto=webp&s=c56b1b1a8294d60a8f9e931e411305f68c5c5559
Remove the three 4.7k resistors marked in the picture with an electric soldering iron. Then weld two resistors of 4.7k at the pins of SDA and SCL to VIN, so that we can communicate with Arduino.

Arduino serial display LCD

Open the Arduino IDE and find the following buttons:

https://preview.redd.it/990d3bdp30a51.jpg?width=853&format=pjpg&auto=webp&s=24136c385601b69d5afc67842358b102373277ef
Search for "MAX30100" to find two libraries for MAX30100, then click download and install.

https://preview.redd.it/4n167pbv30a51.jpg?width=933&format=pjpg&auto=webp&s=cef50833667bae3f30ac94f5a48b43795b779845
After the installation, you can find the Demo of MAX30100 in the LIB library folder of LCD Arduino:

https://preview.redd.it/rn05xgvw30a51.jpg?width=911&format=pjpg&auto=webp&s=3709bc7c5be36ebdd14c01cb0b7c1933953425b0
Double-click the file to open it.

https://preview.redd.it/q6fqylky30a51.jpg?width=819&format=pjpg&auto=webp&s=8073917be374a72bef2977b4b11ccb2b56fa944e
This Demo can be directly tested. If the hardware connection is ok, you can download the code compilation into the Arduino development board and see the data of MAX30100 in the serial debugging tool.
The complete code is as follows: /*
Arduino-MAX30100 oximetry / heart rate integrated sensor library
Copyright (C) 2016 OXullo Intersecans
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
// PulseOximeter is the higher level interface to the sensor
// it offers:
// * beat detection reporting
// * heart rate calculation
// * SpO2 (oxidation level) calculation
PulseOximeter pox;
uint32_t tsLastReport = 0;
// Callback (registered below) fired when a pulse is detected
void onBeatDetected()
{
Serial.println("Beat!");
}
void setup()
{
Serial.begin(115200);
Serial.print("Initializing pulse oximeter..");
// Initialize the PulseOximeter instance
// Failures are generally due to an improper I2C wiring, missing power supply
// or wrong target chip
if (!pox.begin()) {
Serial.println("FAILED");
for(;;);
} else {
Serial.println("SUCCESS");
}
// The default current for the IR LED is 50mA and it could be changed
// by uncommenting the following line. Check MAX30100_Registers.h for all the
// available options.
// pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
// Register a callback for the beat detection
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop()
{
// Make sure to call update as fast as possible
pox.update();
// Asynchronously dump heart rate and oxidation levels to the serial
// For both, a value of 0 means "invalid"
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("Heart rate:");
Serial.print(pox.getHeartRate());
Serial.print("bpm / SpO2:");
Serial.print(pox.getSpO2());
Serial.println("%");
tsLastReport = millis();
}
}
📷
This code is very simple, I believe you can understand it at a glance. I have to say that the modular programming of Arduino is very convenient, and I don't even need to understand how the driver code of Uart and IIC is implemented.
Of course, the above code is an official Demo, and I still need to make some changes to display the data to STONE's displayer.

Display data to the STONE display through Arduino LCD

First, we need to get the address of the component that displays the heart rate and blood oxygen data in STONE's displayer:
In my project, the address is as follows:
Heart rate display component address: 0x0001
Address of blood oxygen display module: 0x0005
Sensor connection status address: 0x0008
If you need to change the display content in the corresponding space, you can change the display content by sending data to the corresponding address of the display screen through the serial port of Arduino.
The modified code is as follows:
/*
Arduino-MAX30100 oximetry / heart rate integrated sensor library
Copyright (C) 2016 OXullo Intersecans
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
#define Heart_dis_addr 0x01
#define Sop2_dis_addr 0x05
#define connect_sta_addr 0x08
unsigned char heart_rate_send[8]= {0xA5, 0x5A, 0x05, 0x82,\
0x00, Heart_dis_addr, 0x00, 0x00};
unsigned char Sop2_send[8]= {0xA5, 0x5A, 0x05, 0x82, 0x00, \
Sop2_dis_addr, 0x00, 0x00};
unsigned char connect_sta_send[8]={0xA5, 0x5A, 0x05, 0x82, 0x00, \
connect_sta_addr,0x00, 0x00};
// PulseOximeter is the higher level interface to the sensor
// it offers:
// * beat detection reporting
// * heart rate calculation
// * SpO2 (oxidation level) calculation
PulseOximeter pox;
uint32_t tsLastReport = 0;
// Callback (registered below) fired when a pulse is detected
void onBeatDetected()
{
// Serial.println("Beat!");
}
void setup()
{
Serial.begin(115200);
// Serial.print("Initializing pulse oximeter..");
// Initialize the PulseOximeter instance
// Failures are generally due to an improper I2C wiring, missing power supply
// or wrong target chip
if (!pox.begin()) {
// Serial.println("FAILED");
// connect_sta_send[7]=0x00;
// Serial.write(connect_sta_send,8);
for(;;);
} else {
connect_sta_send[7]=0x01;
Serial.write(connect_sta_send,8);
// Serial.println("SUCCESS");
}
// The default current for the IR LED is 50mA and it could be changed
// by uncommenting the following line. Check MAX30100_Registers.h for all the
// available options.
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
// Register a callback for the beat detection
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop()
{
// Make sure to call update as fast as possible
pox.update();
// Asynchronously dump heart rate and oxidation levels to the serial
// For both, a value of 0 means "invalid"
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
// Serial.print("Heart rate:");
// Serial.print(pox.getHeartRate());
// Serial.print("bpm / SpO2:");
// Serial.print(pox.getSpO2());
// Serial.println("%");
heart_rate_send[7]=(uint32_t)pox.getHeartRate();
Serial.write(heart_rate_send,8);
Sop2_send[7]=pox.getSpO2();
Serial.write(Sop2_send,8);
tsLastReport = millis();
}
}
Compile the code, download it to the Arduino serial display LCD development board, and you're ready to start testing.
We can see that when the fingers leave the MAX30100, the heart rate and blood oxygen display 0. Place your finger on the MAX30100 collector to see your heart rate and blood oxygen levels in real-time.

LCD Arduino project effect can be seen in the following picture:


https://preview.redd.it/k9u0jtg040a51.jpg?width=510&format=pjpg&auto=webp&s=1e9994109a072807a802eb1179b874f727aeff5a
https://preview.redd.it/0ow2lfg040a51.jpg?width=576&format=pjpg&auto=webp&s=b0f5f6ac073894c8b0c033549fce79fac1c90bc3
submitted by Tamesliu to arduino [link] [comments]

Some things I wish I'd known earlier being a CS major at UGA

I've graduated, I have a job, and it's a pretty cool feeling. I know in 2 months I will be stressing about my H-1B visa, but right now I feel pretty good about myself, so I wanted to make a post on what I wish I'd known a little earlier. I am only talking about CS not because I want to be snobby or anything, but because it's all I know. I haven't majored in any other major.
First, a little about me. I'm an international student who went to high school here, my high school was pretty much in the middle of nowhere so I didn't exactly have access to computer science courses, nor did I have much passion to learn. I played a lot of Starcraft 2 in my free time and wanted to do either accounting or history, but my parents were asian. My SAT and SAT 2 scores were comfortably high with a few extracurriculars so based on that I applied for GT CS and UGA. I was deferred, then waitlisted from GT so I chose UGA, as my parents had to go back to their home country soon and I had to make a decision to either go back or stay (Later, GT sent me an email that I was denied so I made the good choice).
So, starting CS with no prior experience - is hard. But I genuinely think if you don't have a concrete idea on what you want to do with college and don't think you will anytime soon, or if you are an international student who wants to get work experience/live in the U.S., CS is the road for you. It's gotten extremely hard since 2016 to obtain the H-1B visa, and companies just flat out don't sponsor a lot of CPT (internship) and OPTs anymore based on the level of commitment the company is required to make.
For example, if you are not a STEM major, your OPT will only be a max 1 year. If you are a STEM major, that time is extended to 3 years. Even if the company makes that leap of faith, the visa has a very small quota now so you are quite literally put in a 1/5 odds lottery regardless of whatever. Starting this March, I'm pretty sure companies also have to go through a similar process to even put you in the roulette - there will be even less companies investing in international students. So honestly, if you are in a non-STEM field, your american dream kinda ends here.
So what should you do as an international student? Take a STEM major, and EXCEL at it. You don't have the luxury of bonding with local companies with great work culture anymore. You want great work culture? Google is quickly becoming your only option. Why is this relevant to any non-immigrant students? Because the international student pool is undeniably getting tougher to make it out of, the remaining international students will get stronger and stronger giving you guys more way more competition if you want to get into the dream companies. I won't pretend I'll be working at any of your dream companies right now though (hence the title of article) - the company is sponsoring me though, for now.
Anyway - doomsday warnings aside, more to the point of the post.
I'll be pretty frank with you guys - about half of UGA CS are dejected kids who got denied from GT but think they're too good for State. The other half are either double majoring in Terry (the poster child of UGA), big dawg fans ("my mee maw and my momma is dawgs and it just don't feel right to go anywhere else"), or just wanna get away from their parents for some 'college experience'. I was in the first pool of kids, and that's my first regret.
Wish I knew earlier: 1. College only matters on Thanksgiving.
Regardless, if you are here at UGA CS for whatever reason, an important thing to remember is that regardless of what your (likely asian) mom is telling you, it is possible to make it through UGA CS. Honestly, it is also possible to make it through Georgia State CS. The majority of people I knew at UGA went to Fortune 500s, one went to Google, another went to Facebook, 2 people from Georgia State went to Amazon and a large number of them also went on to fortune 500s - and these are just people I know. It's hard right now, but you have to drill it in your head - UGA has resources and you can use them. UGA now has a very big CS and Engineering fair. I recommend printing out your resume, getting it fixed at the Career Center (or PM it to me, I'll get to it early January), and taking it to the career fairs. Even if you are a freshman, please explore the events UGA has out pertaining to your career - it acquaints you with the atmosphere and you are still putting yourself out there.
Wish I knew earlier: 2. You need something other than schoolwork.
However, in order to make it yourself, you have to be proactive in what you're doing. A big factor in my hiring was my personal coding projects and club activities. By personal projects, they don't have to be super big projects - honestly, creating your own website from scratch is one of the most standard, yet effective personal projects to do. It gives you a link to put on resumes aside from your github, and you can grow the website with you as you learn more about web programming. Personal projects don't have to be all about the stuff you learned in school - in fact, many tools you may pick up, you won't be touching much in UGA and that's completely fine. For your sake though, I recommend working on something that you have interest in. For example, if you like playing League of Legends, try utilizing the League of Legends API and make a mockup of opgg . If you are on Discord all the time, try making a simple Discord bot.
Club activities don't have to be exactly related to CS - but if you can find a way to put CS in there, it is also big bonus points. A common trend is designing club websites. If you are their treasurer, perhaps try to look for a way to automate their billing process. GPA does not become a high factor if you show your recruiters that you are working outside of school. In fact, those become reasons and defenses as to why you may be more skilled than someone with a 4.0 GPA but no personal projects to speak of.
I'd go so far as to say CS is one of the least stressful majors in terms of GPA - a lot of companies never really ask for it. However, do keep in mind that some companies still do and cap their applicants. AT&T, for example, requires a 3.2 or higher GPA to apply, and firms like Deloitte and PwC require 3.3 or higher. Hi-Rez, where many aspiring game devs apply for their first internship here, require a 3.5. So don't sweat it if you're losing that sweet 4.0, but do keep in mind that a good GPA always unlocks more opportunities for you.
Wish I knew earlier: 3. Buy (and actually do the exercises in) Cracking the Coding interview
All too often, I see students think of CS courses as some sort of prerequisite for a job. The biggest thing I heard is "I learned data structures, but I still struggle in interviews". You see this in every freaking school. UGA, State, Tech.... The truth is #2. You have to have additional input from yourself, regardless of which school you go to, in order to succeed in coding interviews. And while I didn't have that mindset, I still regret not actually working on Cracking the Coding Interview until my junior year. I'd start on it as soon as possible, and maybe even work on it with data structures. From Arrays to Binary Trees, Cracking the Coding interview is important in not only does it set you up for coding interviews, it provides a way for you to get adjusted to how to work with a computer to solve problems, and also guides you in a way to explain your thought process out to interviewers. The book went over in 2 pages what took me a year to learn, and it's actually making me salty as I'm typing it out. Treat it like your own little CS sudoku game and start posting solutions on github. Hey, they're personal projects ;)
Wish I knew earlier 4. CS is so much better once you like it
I mean, I'm fairly confident that this is true for all majors, but especially true in CS. It is agonizing to do personal projects just because you want to fill up a resume. You will strike a block in your code, give up, and desert whatever shameful shamble you have onto your derelict github and call the project a wrap. I hated CS my first 3~4 semesters (out of 7), and I regret never really giving it a chance before I did. The main reason was that I never met people who I felt enjoyed the subject of CS (aside from professors), and as a result never went out to related events or talked about the major. This created a continuous cycle of me not liking CS, not going to CS events, then only meeting people who also didn't like CS much. The event that changed my mindset on CS was through a hackathon and I highly recommend students to try out going to hackathons and meeting new people there.
Wish I knew earlier 5. Go to hackathons
The big thing I'd recommend is going to a hackathon. UGA hosts an annual hackathon now know as UGAHacks ( https://ugahacks.com/ ) and it is a very, very solid hackathon (if I do say so myself). Hackathons have different cultures and I am pretty confident in saying that UGAHacks is a pretty beginner friendly one with people from different majors, including design, engineering, and MIS come together to try out new technologies. A hackathon is a 24~36 hour event where you can team up with other people, brainstorm a software idea, and develop it in the allotted time. Food and snacks are provided and there will be many sponsors hosting workshops where they will give you ideas on technology to use as well as challenges you can complete to receive prizes.
If you don't have an idea or don't feel like teaming up with people, I still recommend going to it and working on a school project or personal project. It's a bit like studying at a library, everyone is focused on studying around you so the atmosphere rubs off. You also get to meet representatives from companies that don't necessarily come to career fairs and get your resume feedbacked, or when you get stuck on code you can call a mentor for help, or better yet, a hackathon team right next to you - I love flexing knowledge and I guarantee you that they will too. You can meet students from other schools including GT, State, KSU, Emory... even students from Florida and Tennessee!
Wish I knew earlier 6. Go to class
I know, its so obvious- but we dont do it. We google most of the project, lectures seem to have nothing to do with whats on the test... why go to class? Its such an easy, seemingly logical trap to fall into.
Go to class because you will get easy points just by being there. Many professors take attendance or give extra points by doing attendance quizzes. My last semester, I believe quizzes were 10% but we ended up replacing them with attendance quizzes. Free 10 points for chilling in class. My last semester, I never skipped class for a known hard course, but skipped half the classes for a known easier course. I struggled so much harder in the easier course, and was able to last minute understand the material because it genuinely was easy - I just blew the chance to stroll through a course because I didnt go to class.
Focusing in class is hard - especially when you're used to the 50 minute high school classes. I recommend asking a professor if you can record lectures and listening to them later- I cant count the number of times I've been saved by it for my hard classes - I'd have it on as I drive to a test, and a random tidbit would stick that would be on the test.
Wish I knew earlier 7. Start projects earlier
Not gonna lie - if you know what you're doing, the project probably takes around 12 hours to actually implement. But the trick is that we never really do. By starting early, I don't mean actually churn out code. I mean start struggling, start getting stuck, because you will. Start googling stuff we haven't learned yet - but this time, dont panic if google doesnt give you answers because you have time. Time to actually ask questions when the professor asks in class. Time to ask and wait for the office hours. Starting the project a week ahead of time was such a game changing moment for me, I regret starting it my last semester.
Cool story, I'm gonna transfer anyway.
Honestly, I think you are making a good choice. I'm just telling UGA students that they aren't making the "wrong choice" by staying here. I see so many students (including me) say its 'because they aren't in tech'. I just want to let them know that they are too talented for their life to be decided because they didn't get into a college. So why do I think you transferring is a good choice? Because there are more resources out there. You are literally in a campus that is walking distance from multiple software companies. You will be stressed out from coding, walk outside, and see the Fortune 500 company you want to work for. You are close to the Atlanta Airport and that means more sponsors are willing to fly out to your college. You are literally taking courses with like minded students who have the passion for CS. Clubs will be more abundant and varied. They have hackathons more well funded than UGA's. The infrastructure is indeed very established and if you have a base in CS, it will carry you very, very high. I wish you the best of luck.
Appendix 1. If you are looking for somewhere to host a website or develop webapps, I highly recommend https://glitch.com/ as a starter. It will automatically host your website for you and you have many tools built in, including a template code that will link your CSS and JavaScript files for you, an asset folder which autogenerates links, and a .env to store your valuable API keys. You can even import your code from github.
Appendix 2. Even if it isn't exactly hardcore coding github boogaloo, hosting and maintaining own servers (Minecraft, CS:GO), creating mods and making maps (Starcraft), are all very impressive personal projects related to gaming that I wish I had done instead of simply playing the games. In fact, if you are applying for a gaming company, I'd even go so far as to say it is one of the requirements.
Appendix 3. If you don't want to use Cracking the Coding Interview, at the very least use https://www.hackerrank.com/
Appendix 4. UGA's CS clubs have increased in size over the years. I highly recommend looking into UGA's ACM chapter - they have expanded into machine learning, ICPC, mobile development, and more! IEEE of engineering also does solid development stuff (at least back in 2017~2018)
Appendix 5. If you are sending me your resume to look at (why would you though), please put it in a google docs so I don't have to download them. If you are looking to get your resume peer reviewed online, I highly recommend putting your resume in a google docs so you can get it edited in real time, or get comments put on it without having to download multiple copies with small changes each time.
TL:DR: CS students, you got this.
submitted by pieholic to UGA [link] [comments]

LCD Arduino + STONE HMI + Display Heart Rate

LCD Arduino project brief introduction

Some time ago, I found a heart rate sensor module MAX30100 in shopping online. This module can collect blood oxygen and heart rate data of users, which is also simple and convenient to use.
According to the data, I found that there are libraries of MAX30100 in the Arduino library files. That is to say, if I use the communication between LCD Arduino and MAX30100, I can directly call the Arduino library files without having to rewrite the driver files. This is a good thing, so I bought the module of MAX30100.
I decided to use Arduino to verify the heart rate and blood oxygen collection function of MAX30100. With STONE TFT LCD screen for monitoring blood pressure.

https://preview.redd.it/fbm2i8e32o251.jpg?width=328&format=pjpg&auto=webp&s=20329c7187f3fdf628106e923453fdf588fe69ab
Note: this module by default only with 3.3 V level MCU communications, because it defaults to using IIC pin pull up the resistance of 4.7 K to 1.8 V, so there is no communication with the Arduino by default, if you want to commune with the Arduino and need two 4.7 K of the IIC pin pull-up resistor connected to the VIN pin, these contents will be introduced in the back of the chapter.

Functional assignments

Before starting this project, I thought about some simple features:
• Heart rate data and blood oxygen data were collected
• Heart rate and blood oxygen data are displayed through an LCD screen
These are the only two features, but if we want to implement it, we need to do more thinking:
• What master MCU is used?
• What kind of LCD display?
As we mentioned earlier, we use Arduino for the MCU, but this is an LCD Arduino project, so we need to choose the appropriate LCD display module. I plan to use the LCD display screen with a serial port. I have a STONE STVI070WT-01 displayer here, but if Arduino needs to communicate with it, MAX3232 is needed to do the level conversion.
Then the basic electronic materials are determined as follows:
  1. Arduino Mini Pro development board
  2. MAX30100 heart rate and blood oxygen sensor module
  3. STONE STVI070WT-01 LCD serial port display module
  4. MAX3232 module

Hardware Introduction

MAX30100

The MAX30100 is an integrated pulse oximetry and heart rate monitor sensor solution. It combines two LEDs, a photodetector, optimized optics, and low-noise analog signal processing to detect pulse oximetry and heart-rate signals. The MAX30100 operates from 1.8V and 3.3V power supplies and can be powered down through software with negligible standby current, permitting the power supply to remain connected at all times.

Applications

● Wearable Devices
● Fitness Assistant Devices
● Medical Monitoring Devices

Benefits and Features

1、Complete Pulse Oximeter and Heart-Rate SensorSolution Simplifies Design
• Integrated LEDs, Photo Sensor, and high-Performance Analog Front -End
• Tiny 5.6mm x 2.8mm x 1.2mm 14-Pin OpticallyEnhanced System-in-Package
2、Ultra-Low-Power Operation Increases Battery Life for wearable Devices
• Programmable Sample Rate and LED Current for Power Savings
• Ultra-Low Shutdown Current (0.7µA, typ)
3、Advanced Functionality Improves Measurement Performance
• High SNR Provides Robust Motion Artifact Resilience
• Integrated Ambient Light Cancellation
• High Sample Rate Capability
• Fast Data Output Capability

Detection Principle


https://preview.redd.it/kgu72wk52o251.jpg?width=817&format=pjpg&auto=webp&s=0b44a5b4b476c50c1cbd311f048313777d06cabb
Just press your finger against the sensor to estimate pulse oxygen saturation (SpO2) and pulse (equivalent to heartbeat).
The pulse oximeter (oximeter) is a mini-spectrometer that USES the principles of different red cell absorption spectra to analyze the oxygen saturation of the blood. This real-time and rapid measurement method is also widely used in many clinical references.
I will not introduce the MAX30100 too much, because these materials are available on the Internet. Interested friends can look up the information of this heart rate test module on the Internet, and have a deeper understanding of its detection principle.

Introduction to the STVI070WT-01 displayer

In this project, I will use the STONE STVI070WT-01 to display the heart rate and blood oxygen data.
The driver chip has been integrated inside the display screen, and there is software for users to use. Users only need to add buttons, text boxes and other logic through the designed UI pictures, and then generate configuration files and download them into the display screen to run.
The display of STVI070WT-01 communicates with MCU through the UART RS232 signal, which means that we need to add a MAX3232 chip to convert the RS232 signal into a TTL signal so that we can communicate with Arduino MCU.

https://preview.redd.it/oacuof082o251.jpg?width=749&format=pjpg&auto=webp&s=d1427adf34689c8a433a2af71c494f7698e4baf8
If you are not sure how to use the MAX3232, please refer to the following pictures:

https://preview.redd.it/u39qtog92o251.jpg?width=653&format=pjpg&auto=webp&s=04cf458bcebcd27ba09f36903e20e7ebe1aaa6f9
If you think the level conversion is too troublesome, you can choose other types of displayers of STONE Tech, some of which can directly output uart-TTL signal.
The official website has detailed information and introduction:
https://www.stoneitech.com/
If you need video tutorials and tutorials to use, you can also find it on the official website.

Development steps

Three steps of STONE display screen development:
• Design the display logic and button logic with STONE TOOL software, and download the design file to the display module.
• MCU communicates with the STONE LCD display module through the serial port.
• With the data obtained in step 2, the MCU does other actions.

STONE TOOL software installation

Download the latest version of the STONE TOOL software (currently TOOL2019) from the website, and install it.
After the software is installed, the following interface will be opened:

https://preview.redd.it/ryc7qjkd2o251.jpg?width=848&format=pjpg&auto=webp&s=72f674b6a2b653562a31735f103aecf2df16199d
Click the "File" button in the upper left corner to create a new project, which we will discuss later.

LCD Arduino

Arduino is an open-source electronic prototype platform that is easy to use and easy to use. It includes the hardware part (various development boards that conform to the Arduino specification) and the software part (Arduino IDE and related development kits).
The hardware part (or development board) consists of a microcontroller (MCU), Flash memory (Flash), and a set of universal input/output interfaces (GPIO), which you can think of as a microcomputer motherboard.
The software part is mainly composed of Arduino IDE on PC, related board-level support package (BSP) and rich third-party function library. With the Arduino IDE, you can easily download the BSP associated with your development board and the libraries you need to write your programs.
Arduino is an open-source platform. So far, there have been many models and many derived controllers, including Arduino Uno, Arduino Nano, Arduino Yun and so on. In addition, the Arduino IDE now not only supports the Arduino series development boards but also adds support for popular development boards such as Intel Galileo and NodeMCU by introducing BSP.
Arduino senses the environment through a variety of sensors, controlling lights, motors and other devices to feedback and influence the environment. The microcontroller on the board can be programmed with an Arduino programming language, compiled into binaries, and burned into the microcontroller. Programming for Arduino is implemented with the Arduino programming language (based on Wiring) and the Arduino development environment (based on Processing). Arduino-based projects can contain Arduino only, as well as Arduino and other software running on PC, and they communicate with each other (such as Flash, Processing, MaxMSP).

HMI for Arduino serial display TFT LCD project development environment

The Arduino development environment is the Arduino IDE, which can be downloaded from the Internet.
Log into the official website of Arduino and download the software
https://www.arduino.cc/en/Main/Software?setlang=cn
After installing the Arduino IDE, the following interface will appear when you open the software:

https://preview.redd.it/2fcfnrkg2o251.jpg?width=567&format=pjpg&auto=webp&s=9b6664d15fb99c31ee91c49be56d9eb9e17e04de
The Arduino IDE creates two functions by default: the setup function and the loop function.
There are many Arduino introductions on the Internet. If you don't understand something, you can go to the Internet to find it.

LCD Arduino Project implementation process

hardware connection

To ensure that the next step in writing code goes smoothly, we must first determine the reliability of the hardware connection.
Only four pieces of hardware were used in this project:
  1. Arduino Mini pro development board
  2. STONE STVI070WT-01 tft-lcd display screen
  3. MAX30100 heart rate and blood oxygen sensor
  4. MAX3232 (rs232-> TTL)
The Arduino Mini Pro development board and STVI070WT tft-lcd display screen are connected through UART, which requires level conversion through MAX3232, and then the Arduino Mini Pro development board and MAX30100 module are connected through IIC interface.After thinking clearly, we can draw the following wiring picture:

https://preview.redd.it/xkpv7bxi2o251.jpg?width=769&format=pjpg&auto=webp&s=b3658c7c455ba97c6f3a961e34ed020059201b8b

https://preview.redd.it/zobnoatl2o251.jpg?width=1091&format=pjpg&auto=webp&s=2263d1d5a6d208b6e9c1110334971a1d34ed742c
Make sure there are no errors in the hardware connection and proceed to the next step.

STONE TFT LCD user interface design

First of all, we need to design a UI display image, which can be designed by PhotoShop or other image design tools. After designing the UI display image, save the image in JPG format.
Open the software STONE TOOL 2019 and create a new project:

https://preview.redd.it/ou27uc4o2o251.jpg?width=1004&format=pjpg&auto=webp&s=e559c55a3d4fb014fc35dd94bca4d7a52938c87f

https://preview.redd.it/j7mkexnp2o251.jpg?width=871&format=pjpg&auto=webp&s=eb80865fd5efe45a5b015790f0fd0c02f07ca069
Remove the image that was loaded by default in the new project, and add the UI image that we designed.
Add the text display component, design the display digit and decimal point, get the storage location of the text display component in the displayer.
The effect is as follows:

https://preview.redd.it/y7333lor2o251.jpg?width=1335&format=pjpg&auto=webp&s=501576a9d57e92b1435bc25406612a0f758038a5
Text display component address:
• Connection sta : 0x0008
• Heart rate : 0x0001
• Blood oxygen : 0x0005
The main contents of the UI interface are as follows:
• Connection status
• Heart rate display
• Blood oxygen showed

Generate configuration file

Once the UI design is complete, the configuration file can be generated and downloaded to the STVI070WT-01 displaye.

https://preview.redd.it/c94grplt2o251.jpg?width=606&format=pjpg&auto=webp&s=ab0a7306791341599fbb874c63638f1066e5f1d9
First, perform step 1, then insert the USB flash drive into the computer, and the disk symbol will be displayed. Then click "Download to u-disk" to Download the configuration file to the USB flash drive, and then insert the USB flash drive into STVI070WT-01 to complete the upgrade.

MAX30100

MAX30100 communicates via IIC. Its working principle is that the ADC value of heart rate can be obtained through infrared led irradiation. The MAX30100 register can be divided into five categories: state register, FIFO, control register, temperature register, and ID register. The temperature register reads the temperature value of the chip to correct the deviation caused by the temperature. The ID register can read the chip's ID number.

https://preview.redd.it/dfomjb1z2o251.jpg?width=848&format=pjpg&auto=webp&s=911b174be98448c64002c1a24fa6528ce56ae3b7
MAX30100 is connected with the Arduino Mini Pro development board through the IIC communication interface. Because there are ready-made MAX30100 library files in the Arduino IDE, we can read the heart rate and blood oxygen data without studying the registers of MAX30100.
For those who are interested in exploring the MAX30100 register, see the MAX30100 Datasheet.

Modify the MAX30100 IIC pull-up resistor

It should be noted that the 4.7k pull-up resistance of the IIC pin of MAX30100 module is connected to 1.8v, which is not a problem in theory. However, the communication logic level of the Arduino IIC pin is 5V, so it cannot communicate with Arduino without changing the hardware of the MAX30100 module.Direct communication is possible if the MCU is STM32 or another 3.3v logic level MCU.
Therefore, the following changes need to be made:

https://preview.redd.it/l5cimq013o251.jpg?width=521&format=pjpg&auto=webp&s=9fc29401ed402b9bf623c4f8e474336c8050fae8
Remove the three 4.7k resistors marked in the picture with an electric soldering iron. Then weld two resistors of 4.7k at the pins of SDA and SCL to VIN, so that we can communicate with Arduino.

Arduino serial display LCD

Open the Arduino IDE and find the following buttons:

https://preview.redd.it/w9mska373o251.jpg?width=853&format=pjpg&auto=webp&s=fe0ee068c64ce109028dab4f5898335ded02c82e
Search for "MAX30100" to find two libraries for MAX30100, then click download and install.

https://preview.redd.it/pqlihp9a3o251.jpg?width=933&format=pjpg&auto=webp&s=493965c54d1cc755a0dd2ac98ad6100cf7c93948
After the installation, you can find the Demo of MAX30100 in the LIB library folder of LCD Arduino:

https://preview.redd.it/srk2g83c3o251.jpg?width=911&format=pjpg&auto=webp&s=da696328a0a198c0ee41a17a7811024d36a153ea
Double-click the file to open it.

https://preview.redd.it/lc8z3gtd3o251.jpg?width=819&format=pjpg&auto=webp&s=bbac5eb529e4279792c899d738ebdb0fa9263c54
This Demo can be directly tested. If the hardware connection is ok, you can download the code compilation into the Arduibo development board and see the data of MAX30100 in the serial debugging tool.
The complete code is as follows:
/*
Arduino-MAX30100 oximetry / heart rate integrated sensor library
Copyright (C) 2016 OXullo Intersecans
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
// PulseOximeter is the higher level interface to the sensor
// it offers:
// * beat detection reporting
// * heart rate calculation
// * SpO2 (oxidation level) calculation
PulseOximeter pox;
uint32_t tsLastReport = 0;
// Callback (registered below) fired when a pulse is detected
void onBeatDetected()
{
Serial.println("Beat!");
}
void setup()
{
Serial.begin(115200);
Serial.print("Initializing pulse oximeter..");
// Initialize the PulseOximeter instance
// Failures are generally due to an improper I2C wiring, missing power supply
// or wrong target chip
if (!pox.begin()) {
Serial.println("FAILED");
for(;;);
} else {
Serial.println("SUCCESS");
}
// The default current for the IR LED is 50mA and it could be changed
// by uncommenting the following line. Check MAX30100_Registers.h for all the
// available options.
// pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
// Register a callback for the beat detection
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop()
{
// Make sure to call update as fast as possible
pox.update();
// Asynchronously dump heart rate and oxidation levels to the serial
// For both, a value of 0 means "invalid"
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("Heart rate:");
Serial.print(pox.getHeartRate());
Serial.print("bpm / SpO2:");
Serial.print(pox.getSpO2());
Serial.println("%");
tsLastReport = millis();
}
}


https://preview.redd.it/nyuyl4zl3o251.jpg?width=552&format=pjpg&auto=webp&s=58e05bc67a250de6f7b24060290d8a0703624e30
This code is very simple, I believe you can understand it at a glance. I have to say that the modular programming of Arduino is very convenient, and I don't even need to understand how the driver code of Uart and IIC is implemented.
Of course, the above code is an official Demo, and I still need to make some changes to display the data to STONE's displayer.

Display data to the STONE display through Arduino LCD

First, we need to get the address of the component that displays the heart rate and blood oxygen data in STONE's displayer:
In my project, the address is as follows:
Heart rate display component address: 0x0001
Address of blood oxygen display module: 0x0005
Sensor connection status address: 0x0008
If you need to change the display content in the corresponding space, you can change the display content by sending data to the corresponding address of the display screen through the serial port of Arduino.
The modified code is as follows:
/*
Arduino-MAX30100 oximetry / heart rate integrated sensor library
Copyright (C) 2016 OXullo Intersecans
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
#include
#include "MAX30100_PulseOximeter.h"
#define REPORTING_PERIOD_MS 1000
#define Heart_dis_addr 0x01
#define Sop2_dis_addr 0x05
#define connect_sta_addr 0x08
unsigned char heart_rate_send[8]= {0xA5, 0x5A, 0x05, 0x82,\
0x00, Heart_dis_addr, 0x00, 0x00};
unsigned char Sop2_send[8]= {0xA5, 0x5A, 0x05, 0x82, 0x00, \
Sop2_dis_addr, 0x00, 0x00};
unsigned char connect_sta_send[8]={0xA5, 0x5A, 0x05, 0x82, 0x00, \
connect_sta_addr,0x00, 0x00};
// PulseOximeter is the higher level interface to the sensor
// it offers:
// * beat detection reporting
// * heart rate calculation
// * SpO2 (oxidation level) calculation
PulseOximeter pox;
uint32_t tsLastReport = 0;
// Callback (registered below) fired when a pulse is detected
void onBeatDetected()
{
// Serial.println("Beat!");
}
void setup()
{
Serial.begin(115200);
// Serial.print("Initializing pulse oximeter..");
// Initialize the PulseOximeter instance
// Failures are generally due to an improper I2C wiring, missing power supply
// or wrong target chip
if (!pox.begin()) {
// Serial.println("FAILED");
// connect_sta_send[7]=0x00;
// Serial.write(connect_sta_send,8);
for(;;);
} else {
connect_sta_send[7]=0x01;
Serial.write(connect_sta_send,8);
// Serial.println("SUCCESS");
}
// The default current for the IR LED is 50mA and it could be changed
// by uncommenting the following line. Check MAX30100_Registers.h for all the
// available options.
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
// Register a callback for the beat detection
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop()
{
// Make sure to call update as fast as possible
pox.update();
// Asynchronously dump heart rate and oxidation levels to the serial
// For both, a value of 0 means "invalid"
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
// Serial.print("Heart rate:");
// Serial.print(pox.getHeartRate());
// Serial.print("bpm / SpO2:");
// Serial.print(pox.getSpO2());
// Serial.println("%");
heart_rate_send[7]=(uint32_t)pox.getHeartRate();
Serial.write(heart_rate_send,8);
Sop2_send[7]=pox.getSpO2();
Serial.write(Sop2_send,8);
tsLastReport = millis();
}
}

Compile the code, download it to the Arduino serial display LCD development board, and you're ready to start testing.
We can see that when the fingers leave the MAX30100, the heart rate and blood oxygen display 0. Place your finger on the MAX30100 collector to see your heart rate and blood oxygen levels in real-time.

LCD Arduino project effect can be seen in the following picture:


https://preview.redd.it/lf120a5s3o251.jpg?width=510&format=pjpg&auto=webp&s=d705a9e10bac1758afc554036a31748c5f73d255
submitted by woodkiki to ArduinoProjects [link] [comments]

A Comprehensive Guide on Securing Your System, Archives and Documents

A Comprehensive Guide on Securing Your System, Archives and Documents
How can you make your system and documents secure? Today, 256-bit AES encryption is offered by everyone and their dog. However, AES encryption does not mean much (or anything at all) when it comes to the real security of your data. Implementing encryption at the right time and in the right spot is no less important than choosing strong encryption credentials and managing the encryption keys.
While the previous part may sound a bit complicated, it all comes down to much simpler things than choosing the strongest encryption algorithm or selecting the length of the encryption key. If you are a Windows user, it all comes down to choosing the optimal data protection strategy for your particular usage scenario; protecting your storage media and the data you keep on them.

Defining your goals

Before you start considering encrypting your hard drives and files, make sure to define your objectives. What information would you like to protect? What threats do you consider important, less important and quite improbable?

Full-disk encryption part I: protecting your boot device

A reliable system protection is impossible without protecting your boot device. An unencrypted boot device (disk C: on most systems) allows for way too many vectors of attack ranging from hibernation and page file analysis to instant extraction of stored passwords from your Web browser vault. In other words, securing your boot device with BitLocker is an absolutely mandatory preliminary step and the most important security layer.
  • Availability: Windows 10 Professional and higher with TPM2.0, Intel PTT or Group Policy edit; all Windows editions for device encryption in thin and light devices meeting minimum requirements.
    • Note: although Windows 10 Home cannot natively create new BitLocker volumes, it can unlock BitLocker encrypted drives with full read-write access
  • Physical access, hard drive only: strong protection
  • Physical access, entire computer: it’s complicated
  • Other users on the same computer: not applicable
  • Malware/ransomware: not applicable
  • Online attacks: not applicable
  • Usage cases: protect data against theft of computer or hard drive; protect data if hard drives are sold or RMA’d; protect data against physical extraction.
If your computer meets the requirements (namely, the presence of a hardware TPM2.0 module or software-based Intel Platform Trust Technology), enabling BitLocker on your computer can be as easy as opening the Control Panel and launching the BitLocker Drive Encryption applet. Note that not all editions of Windows 10 can use BitLocker protection.
We have a comprehensive article on BitLocker protection in our blog, which is highly recommended. Introduction to BitLocker: Protecting Your System Disk
What caveats are there when it comes to securing data against physical extraction? The thing is, while BitLocker is nearly a 100% effective solution for protecting the bare drive, it might not be as secure if the intruder has access to the entire computer with the hard drive installed. Even if your computer is equipped with a TPM2.0/Intel PTT module, Windows will still unlock the encrypted hard drive if Secure Boot conditions are met. This in turn opens numerous vectors of attack that may allow the intruder to intercept the on-the-fly BitLocker encryption key and decrypt the hard drive. These vectors of attack include:
  1. Making a RAM image of a running computer with BitLocker volume(s) mounted. This can be done via a Thunderbolt attack (Windows, by default, does not disable Thunderbolt DMA access when locked) or a cold boot attack.
  2. Breaking or extracting your Windows logon password (e.g. extracting from your Google account, your smartphone, or from another computer you have logged in and synced your data to).
  3. Obtaining your BitLocker Recovery Key from your Microsoft Account or Active Directory.
Advanced users and system administrators can read the following guide to secure their BitLocker volumes: BitLocker recovery guide

Full-disk encryption part II: protecting external storage devices

BitLocker is good not only for protecting your boot device, but for encrypting data on other volumes, built-in and removable. BitLocker protects external storage devices with BitLocker To Go, an encryption algorithm based on a password. In addition to passwords, external drives encrypted with BitLocker To Go have an option to unlock with a smart card on another computer by using BitLocker Drive Encryption in Control Panel. Finally, users can opt to make their encrypted external devices automatically unlock when connected to their (trusted) computer.
  • Availability:
    • Encrypt external devices: Windows 10 Professional and Enterprise
    • Access BitLocker encrypted devices: although Windows 10 Home cannot natively encrypt drives with BitLocker, it can access BitLocker encrypted drives with full read-write access
  • Physical access, device only: protection as strong as your password
  • Physical access, entire computer: it’s complicated (see previous chapter)
    • Note: if you enabled the option “Unlock automatically on this PC”, then effectively no protection
  • Other users on the same computer: strong protection if offline/not mounted
  • Malware/ransomware: strong protection if offline/not mounted
  • Online attacks: strong protection if offline/not mounted
  • Usage cases: protect data stored on external storage devices such as external drive enclosures, USB flash drives etc.
Unlike system drive encryption, BitLocker To Go does not support multifactor authentication. This means you cannot use TPM protection as an additional form of authentication. You can, however, make BitLocker To Go devices unlock automatically when they are inserted in your (trusted) computer, which carries obvious security implications.

Full-disk encryption part III: using third-party crypto containers

I put it here just for the sake of completeness. If you are considering using a crypto-container such as VeraCrypt or PGP, you probably know what it is good for and how to use it. I’ll just add several things that aren’t immediately obvious when you set up encryption. In fact, the two things are so non-obvious that many coach experts have it backwards. (The right way: Choosing the right hashing algorithm – it’s all about slowness).
  • Availability: VeraCrypt is available on most relevant platforms
  • Physical access, hard drive only: very strong protection unless misconfigured
    • Misconfiguration examples: volume stays mounted when computer sleeps or hibernates; volume stays mounted when computer is locked (matter of security vs. convenience); volume unlocked with security key (e.g. USB flash drive) and no password (if USB flash drive is discovered)
  • Physical access, entire computer:
    • volume not mounted at time of analysis: very strong protection
    • volume mounted: very little protection
  • Other users on the same computer
    • volume not mounted at time of analysis: very strong protection
    • volume mounted: very little protection
  • Malware/ransomware: same as above
  • Online attacks: same as above
  • Usage cases: protect data against theft of computer or hard drive; protect data if hard drives are sold or RMA’d; protect data against physical extraction.
The choice of encryption algorithm (spoiler: use AES)
Crypto containers such as VeraCrypt offer the choice of several (actually, multiple) encryption algorithms that range from the industry-standard AES to some quite exotic algorithms such as Serpent or Kuznyechik. For the paranoiacs among us, VeraCrypt offers stacked encryption (e.g. the Serpent(AES) option). The thing is, the choice of an encryption algorithm does not affect the security of your data (unless you pick an algorithm with known or suspected vulnerabilities; finger pointed to Kuznyechik).
The choice of encryption algorithm does not affect the security of your data. A single round AES-256 encryption will be exactly as secure as Serpent(AES) or Serpent(Twofish(AES)). Moreover, the choice of encryption does not even affect the recovery speed (the speed of brute-force attacks on your password)!
Considering that AES is the only hardware-accelerated encryption algorithm in all reasonably modern processors, choosing any encryption algorithm other than AES-256 will unnecessarily slow down your reads and writes (expect a difference of 2 to 3 orders of magnitude in theoretical RAM-to-RAM encryption speeds) without providing any additional security benefit.
If choosing an encryption algorithm other than AES does not affect security, then what does?
The choice of hashing algorithm
When VeraCrypt encrypts (or decrypts) your data, it is using a binary encryption key to perform symmetric cryptographic operations. This media encryption key (MEK) is stored along with the encrypted data. The Media Encryption Key (MEK) is encrypted with a Key Encryption Key (KEK), which, in turn, is the result of multiple (hundreds of thousands) iterative hash operations performed on the user’s password.
In other words, when you type a password, the crypto container will perform a calculation of a certain hash function, and repeat that a 100,000 times or more (in order to deliberately slow down brute-force attacks).
If you want to make your encrypted volume more secure, you can change one of the two things:
  1. Increase the number of hash iterations
  2. Don’t use defaults
  3. Choose a slower hash function
VeraCrypt allows modifying the number of hash iterations by adjusting the PIM (Personal Iterations Multiplier); here is the how-to. The PIM value controls the number of iterations that is used to derive the encryption key from the password that you type. This value can be specified through the password dialog or in the command line. If you don’t manually specify the PIM value, VeraCrypt will use the default number of iterations, which is bad because (2). For SHA-512 or Whirlpool (the two recommended choices), VeraCrypt defaults to Iterations = 15000 + (PIM x 1000).
Why would you want to change the number of hash iterations? Because an attacker will first try to break your password using the defaults. Most tools used by the attackers to brute-force your password will first run the attack using all-defaults: the default encryption algorithm (AES), hash function (SHA-512) and PIM. Changing the PIM value is an easy way to substantially increase security without making your password more complex. Changing the hashing algorithm from default (SHA-512) to Whirlpool also makes sense in this context.
Which brings us to the choice of a hashing algorithm. VeraCrypt offers the choice of SHA-512 (slow, good choice), Whirlpool (slower, even better choice), SHA-256 (slow, but not as slow as SHA-512, use other hash instead), and Streebog (untested). Choosing the right hashing algorithm – it’s all about slowness has some benchmarks and some good explanations; highly recommended. Selecting Whirlpool makes a lot of sense because a) it is slower than SHA-512 (thus will be significantly slower to attack), and b) it is a non-default selection, which significantly increases the complexity of the attack.

File system encryption: when and how to use EFS

If you read the Wikipedia article about Microsoft Encrypting File System (EFS), you’ll get that EFS has been introduced in NTFS 3.0 in order to provides file system level encryption. The article reads: “The technology enables files to be transparently encrypted to protect confidential data from attackers with physical access to the computer.”
While all of that is interesting, neither statement explains who and, most importantly, why should be using EFS, and what exactly the encrypting file system protects against.
  • Availability: all versions and all editions of Windows 10 (and most older versions of Windows)
  • Physical access, hard drive only: as strong as your Windows account password
  • Physical access, entire computer: same as above
  • Other users on the same computer: effective protection
  • Malware/ransomware: not applicable
  • Online attacks: not applicable
  • Usage cases: protect your documents from other users of your computer; an extra layer of security on BitLocker-protected drives; reasonably strong, very easy and fully transparent document encryption on computers where BitLocker is not supported.
What does EFS protect against, and who should be using it?
The purpose of Encrypting File System is protecting your data from users who share your computer. If you have a PC with several users, and each user has their own Windows login (as opposed to sharing a single Windows account), activating EFS encryption is the easiest way to protect your files from being accessed by those other users.
What is the relation between EFS and BitLocker, and which one should you use?
BitLocker protects your entire system volume. Any user who can log in to your computer will unlock the system volume. If a user has administrative privileges (or can escalate a non-admin account by using an exploit), he or she will also gain access to files and documents stored in other users’ accounts on that computer.
Encrypting File System, on the other hand, only protects selected folders. It won’t, for example, protect your instant messenger databases or encrypt your browsing history. It’s mostly just for documents, pictures and videos you keep in your account. However, EFS will effectively protect those files against other users who can log on to your computer, even if they have administrative privileges.
If an attacker got physical access to the computer, BitLocker is the first line of defence. Relying solely on EFS to secure the PC against attacks with physical access is not the best idea.
How does it all work? It’s actually quite simple. Right-click on a file or folder you’d like to encrypt, select Properties and click the Advanced button in the General tab. In the Advanced Attributes dialog select Encrypt contents to secure data and click OK.

https://preview.redd.it/742u0dpqdjc41.png?width=1019&format=png&auto=webp&s=26dcec93aba51d314531f65c6e68ac12302bc88f
This is it. Windows will now encrypt the selected file or folder with your Windows logon credentials. There are no passwords to type and no encryption keys to save.
There is a certain drawback to using EFS encryption. If you ever forget your Windows password and have to reset it from a separate Administrator account (or your domain administrator resets the password for you), the EFS encryption keys will be lost, and you will be unable to decrypt your data without going through the data recovery process with Elcomsoft Advanced EFS Data Recovery. Note that you must recover your Windows password in order to decrypt the files. However, if you simply change your Windows password by following the normal procedure (typing your old password followed by entering the new one), you will be fine.

Document encryption

Encrypting individual documents is an important part of multi-layer security. Microsoft Office apps can use passwords to encrypt the documents’ content. No one without a password should be able to decrypt the document.
  • Availability: all versions of Microsoft Office
  • Security: depends on the version of Microsoft Office, the file format you’re using to save the files and the strength of your password.
  • Physical access, hard drive only: strong protection (with caveats)
  • Physical access, entire computer: strong protection (with caveats)
  • Other users on the same computer: strong protection (with caveats)
  • Other users on your Local Area Network: strong protection (with caveats)
  • Malware/ransomware: content protection. Malware won’t be able to decrypt your files and read your data. However, malware/ransomware can still encrypt your files, effectively locking you out.
  • Online attacks: content protection. Strong protection against unauthorized data access; no protection against unauthorized deletion
  • Usage cases: protect the content of your documents against anyone who does not know the encryption password.
  • How to: Protect a document with a password
A million dollar question: if you are on a local area network, should you use EFS or document encryption to protect documents against other users on the same LAN? In this case, it’s better to use both. EFS will make it impossible to gain access to encrypted files and folders without knowing your Windows account/domain credentials. Password protection of individual documents will make documents difficult to break even if the attacker knows your logon credentials.
The caveats of document encryption
So what exactly does “strong protection (with caveats)” mean? The thing is, your documents are just as secure as the password you use to protect them. If you re-use a password you already stored in your browser cache or in the keychain, extracting that password and decrypting the documents will be a matter of minutes in many types of attacks.
What if you use a cryptographically strong and truly unique password to encrypt documents? Are these documents secure? The thing is, they will be just as secure as the office app permits them to be. In Microsoft Office encryption evolution: from Office 97 to Office 2019 I discussed the encryption algorithms and protection strength of Microsoft Office apps from the early days to the most current release.
Generally speaking, everything before Office 2000 was insecure (no protection). Office 2000, XP and Office 2003 had very weak encryption that can be usually broken in under a day.
Since Office 2007, Microsoft started taking encryption seriously. Office 2010, 2013, 2016, 2019 brought security to the new level, making encrypted documents very secure.
Okay, so you are using the latest Office and selected a strong password; are we secure now? The thing is, you’ll be just as secure as the document format allows. If you are using the newer DOCX/XLSX format (files with .docx / .xlsx extensions), you’re good. If, however, you are saving your documents in “compatibility” mode, you are sacrificing encryption and make your documents as vulnerable as if they were saved by an Office 2003 app.
Best practices:
  1. Use the latest version of Microsoft Office to save documents. If the latest version is not available, use at least Office 2013 (the newer the better).
  2. Never save documents in “compatibility” mode. Make sure that the files are DOCX/XLSX as opposed to DOC/XLS.
  3. Use a unique, cryptographically strong password to encrypt documents. Remember: if the password is broken once (e.g. pulled from your Google account or recovered from a document you accidentally saved in the “compatible” format), it will be used to break everything else, including documents with strong encryption.
  4. If you email an encrypted document, do use a unique, one-time password for that document, and never send both the document and the password in the same email. In fact, you should never send the password by email since that would allow an attacker who gained access to your email account to decrypt the document. Send the document and the password via separate communication channels (e.g. email / text message, chat or phone call).

Protecting backups and archives

Making regular backups is a common wisdom. Protecting those backups is a wisdom much less common. Once you make a backup, make sure to give it as strong a protection as your boot drive.
  1. Store backups on BitLocker-protected media. Even if your backup tool (e.g. the one built into Windows) does not support encryption, at very least your storage media is protected with full-disk encryption. Note: Windows 10 does support the recovery from BitLocker-protected disks. Just create a bootable install image from Microsoft Web site (use “Create Windows 10 installation media”).
  2. If your backup tool supports encryption, it may be a good idea to encrypt your backups (AND store them on a BitLocker-protected media). Note, however, that a backup tool will probably cache (store) your backup password on your computer to automatically encrypt new and incremental backups. For this reason, make sure to have a truly unique, never reused password for encrypting backups.
Individual folders are frequently backed up using common archive tools such as WinZip, 7Zip or WinRar. All of these tools offer the ability to encrypt archives with a password. While the encryption strength is different among the three formats (ZIP, 7Z and RAR), an up to date version of each tool provides adequate protection if you choose a reasonably complex password (e.g. 8 characters or more, combining small and capital letters with numbers and special characters). To achieve the best level of protection, do keep those archives on BitLocker-protected media.
Note that password recovery tools work significantly faster on ZIP/7Z/RAR compared to attacking BitLocker encryption or Office 2013 (and newer) documents. For this reason, never reuse your password, and make sure that your BitLocker media, your documents and your backups/archives use very different passwords (ideally, not based on the same pattern).
More information:

Cloud security: OneDrive Personal Vault

Microsoft started offering an extra layer of security to all users of its cloud storage service in the form of a Personal Vault. OneDrive Personal Vault helps secure your files both on your computer and in the cloud in the event that someone gains access to your account or your device.
Unlike ransomware protection, Personal Vault is available to all users of Microsoft OneDrive and not just to Office 365 subscribers. Technically speaking, Personal Vault is an area in the OneDrive folder on your computer and in the OneDrive cloud storage that features additional protection. You can only access this protected area after passing a strong authentication. If your Microsoft Account is protected with two-factor authentication, you will have to pass the second step of identity verification in addition to typing your Microsoft Account password.
Once configured, Personal Vault must be manually unlocked every time you need access to secured data. To unlock, you must type in your Microsoft Account password and pass the second authentication step if your account has two-factor authentication. Once you’ve finished accessing the data, Personal Vault will automatically relock after a short period of inactivity. Once locked, any files you were using will also lock and require re-authentication to access.
Setting up Personal Vault only takes a few clicks as outlined in Protect your OneDrive files in Personal Vault.
OneDrive Personal Vault is still new; no independent security analysis has been performed until today. In our view, Personal Vault is worth consideration as an extra security layer for some of the most private but rarely accessed types of data. Examples of such data may include BitLocker escrow keys and binary encryption keys, or the list of passwords some users store in encrypted Excel spreadsheets. I personally keep my two-factor authentication secrets (scanned QR codes to initialize the Authenticator app) in the Vault as well.
  • Physical access: unknown (not yet analyzed)
  • Other users on the same computer: strong protection
  • Malware/ransomware: strong protection (unless Personal Vault is unlocked at the time malware is running)
  • Online attacks: as strong as your Microsoft Account security
  • Usage cases: activate to add an extra layer of security for a handful of personal documents, encryption keys, 2fa secrets etc.

Ransomware protection

One of the most important threats not covered by any encryption is the type of malware called ransomware. Ransomware is a type of malware that threatens to either publish the data stolen from the victim or perpetually block access to the victim’s files by encrypting them with a key that is only known to the attacker. The term ‘ransomware’ has emerged from the fact that, on many cases, attackers demand a ransom payment to decrypt data.
Protecting your data against ransomware is a complex topic in itself. However, computer users can choose one or both of the following two defences when it comes to ransomware protection.
Ransomware protection is effective against the following threats.
  • Physical access: no protection
  • Other users on the same computer: no protection
  • Malware/ransomware: effective protection
  • Online attacks: as strong as your cloud account security
  • Usage cases: available automatically to Office 365 subscribers. Available to paid Dropbox users. Automatically protects files stored in OneDrive/Dropbox. Automatic alerts (OneDrive only). Automatic restore (OneDrive only); manual restore (Dropbox).
Use cloud storage with automatic ransomware protection
If you are using Windows 10, most likely you already have a Microsoft Account. The Microsoft Account gives you access to OneDrive, Microsoft’s cloud storage solution. The free tier includes 5 to 15 GB of online storage, while Office 365 subscribers receive the whole terabyte of cloud storage.
Microsoft actively promotes OneDrive Ransomware Protection. OneDrive automatically detects when the files are mass-deleted or mass-edited (such as when ransomware encrypts the entire Documents folder), alerts the user and prompts to restore the known-good snapshot. The File Restore feature is only available to Office 365 subscribers (Home and Personal levels are enough to receive protection).
More information at Ransomware detection and recovering your files.
If you prefer Dropbox to Microsoft OneDrive, Dropbox gets you covered against ransomware attacks, but mostly for higher-level paid tiers. Users of the free Basic tier as well as Plus subscribers can roll back individual encrypted files during the first 30 days after the attack (there will be no warning of mass-deletion of mass-encryption of files coming from the Dropbox app). If you want to roll back the entire Documents folder with Dropbox Rewind, you’ll need to be a paid Plus or Professional tier subscriber.
More information:
Make backup snapshots. Keep backup media offline
Once ransomware is installed on your computer, it will try to encrypt every document that is accessible. The obvious solution is making documents inaccessible by physically disconnecting backup media (such as using 2.5” portable USB drives to back up). In this scenario, you would only connect backup media to your computer when you actually want to make the backup, disconnecting the disk after the backup tool finishes its job. With this approach, even if your computer is attacked by ransomware, your offline backups will not be affected (unless you connected the external drive to the computer at the time the ransomware was installed).
In addition, configure your backup tool to keep snapshots of your data going back as long as permitted by available storage. In our office, an affordable 4TB USB hard drive can keep approximately 30 to 40 full snapshots of the Documents folder; this number becomes significantly larger if you enable incremental backups, with each snapshot saving only
More information:
submitted by Elcomsoft to computerforensics [link] [comments]

Tools & Info for SysAdmins - Mega Summary Q4 (Over 80 Items)

Hi sysadmin,
Each week I thought I'd post these SysAdmin tools, tips, tutorials etc with just one link to get it in your inbox each week (with extras). Let me know any ideas for future version in the comments!
This week is mega list of all the items we've featured to in the last 3 months, broken down into categories, for you to explore at your leisure. I hope you enjoy it.

Free Tools

Free MailFlow Monitor. Rejection / Delay Text Alerts, Group Policies, Alerts By SMTP Code, Trouble Shooting Tools including header analysis. MailFlow Monitor is EveryCloud’s (Our) free, cloud-based, round-trip tool that sends you an alert as soon as there is an issue with your email flow. Settings are adjustable to allow you to choose how much of a delay is acceptable and which types of bounce alerts you want to see. Helps you get to the bottom of a problem before users (or your boss) have even noticed it.

Postman is a popular, free app to make API development faster and easier. It offers a powerful GUI, saved history of requests, flexible monitoring, automated testing with collection runner, mock servers, and unlimited collections, environments, tests, and sharing. It also provides detailed documentation.

Microsoft Sysinternals Suite is all their utilities in one convenient file. Contains the all the individual troubleshooting tools as well as help files, but not non-troubleshooting tools like the BSOD Screen Saver or NotMyFault. A shout out to azers for recommending this one.

RichCopy is a simple tool written by a Microsoft engineer named Derk Benisch. It provides a much-appreciated graphical interface for the very popular Robocopy command-line utility.

Windows Update MiniTool is an alternative to the standard (and sometimes overbearing) Windows Update. It allows you to control updates by giving you the power to search, install, and block Windows updates in any way you like.

Space Monger gives you a graphical image of your whole disk, where large files and folders are easily identified. This handy tool can be run from a USB drive, so you don't even need to install it. Thanks for this one and Windows Update MiniTool go to mikedopp.

UNetbootin is a terrific, cross-platform utility for creating bootable live USB drives for Ubuntu and other Linux distributions without burning a CD. Thanks go to Gianks for this one.

CopyQ is a clipboard manager that adds some advanced editing and scripting capabilities. It monitors the system clipboard and saves text, HTML, images and more into customized tabs. From there, the saved content can be copied and pasted directly into any application. Clipboard history is easily searchable and can be filtered. Suggested by majkinetor.

Desktop Info provides a quick view of every kind of metric about your Windows system right on your desktop. The display looks like wallpaper but stays resident in memory and updates in real time. Gives you a quick way to monitor what any system is up to, while using very little memory and requiring almost nothing from the CPU. This one was recommended by mikedopp.

Healthstone is a lightweight, self-hosted, agent-based system-monitoring solution that runs lots of customizable health checks. The dashboard runs on a Windows or Linux server, and it has agents for the Windows and Linux hosts you want to monitor. You can customize the dashboard to send notifications via email, Pushbullet, or NodePoint tickets whenever a client stops checking in or any of the configured checks fail. Configuration is retrieved from the dashboard by all agents in the form of templates, which are stored in the templates folder and can be customized for your needs. Thanks to mikedopp for this one!

Rufus is another utility for formatting and creating bootable USB flash drives. This one works with MRB/GPT and BIOS/UEFI. Rufus is about twice as fast as UNetbootin, Universal USB Installer, or Windows 7 USB download tool when creating a Windows 7 USB installation drive from an ISO. It is also marginally faster for creating a Linux bootable USB from ISOs. We first heard of this one from Gianks, but there were quite a few others who shared the recommendation as well.

Axence netTools is a set of ten free tools for network scanning and monitoring. Includes: Netwatch (multiple host availability and response-time monitoring); Network port and service scanner; Wintools (view of launched processes/services, remote register editor and Windows event log view, HDD/RAM/CPU details, custom queries based on WMI protocol); TCP/IP workshop and SNMP browser; Traceroute; NetStat (list of inbound and outbound connections and open ports); Local info (tables with local configuration details, TCP/UDP stats); Lookup (DNS and WHOIS records); Bandwidth test; and NetCheck (LAN hardware and wiring quality check). This was recommended by DollarMindy as an "easy ping monitor with email alerts."

MediCat USB is a a bootable troubleshooting environment with Linux and Windows boot environments and troubleshooting tools. A complete Hiren's Boot Disk replacement for modern hardware that follows the Ubuntu release cycle with a new update released every 6 months. The DVD version was originally recommended to us by Spikerman "for when you need to helpdesk warrior."

MobaXterm is an enhanced terminal for remote computing. It brings all the key remote network tools (SSH, X11, RDP, VNC, FTP, MOSH) and Unix commands (bash, ls, cat, sed, grep, awk, rsync) to Windows desktop in a single, portable .exe file that works out of the box. The free version includes full X server and SSH support, remote desktop (RDP, VNC, Xdmcp), remote terminal (SSH, telnet, rlogin, Mosh), X11-Forwarding, automatic SFTP browser, plugins support, portable and installer versions but only 12 sessions, 2 SSH tunnels, 4 macros, and 360 seconds for Tftp/Nfs/Cron. Thanks go out to lazylion_ca for suggesting this one.

WinDirStat provides free, open-source graphical disk-usage analysis for MS Windows. You'll get a sub-tree view with disk-use percent and a list of file extensions ordered by usage. This tool was recommended by ohyeahwell, who likes to use it "for freespace as it can be deployed via ninite pro."

IIS Crypto allows administrators to enable or disable protocols, ciphers, hashes and key exchange algorithms on Windows Server 2008, 2012 and 2016. You can also reorder SSL/TLS cipher suites from IIS, implement best practices with a single click, create custom templates and test your website. Available in both command line and GUI versions. EOTFOFFTW tells us, “This tool has been very helpful in configuring SSL settings for Windows IIS servers.”

Ditto saves all your clipboard items so you can access them later. It works with anything that can be put on the clipboard—images, text, html and custom formats. The simple interface includes search and sync functions for ease of finding what you need. Thanks go to Arkiteck for suggesting this one!

Malwarebytes Anti-Malware should be your first stop if you suspect a malware infection. It is the most-effective malware remover—featuring deep scans and daily updates—and blocks malware, hacker, viruses, ransomware and malicious websites that slip through your traditional antivirus. Also available as a full AV program that you can buy if you wish to do so.

Termius is a complete command-line solution providing portable server management for UNIX and Linux systems—whether a local machine, a remote service, Docker Container, VM, Raspberry Pi, or AWS instance (similar to Putty for Android). This cross-platform Telnet, Mosh-compatible and SSH client. Securely access Linux or IoT devices to quickly fix issues from your laptop or phone. Thanks for this one go to blendelabor.

WSUS Offline Update lets you safely patch any computer running Microsoft Windows and Office—even when there's no connection to the Internet or a network of any sort. More specifically, you first run WSUS Offline Update on a machine that has Internet connectivity to download the updates you need and copy the resulting update media to a USB drive. You then use the USB drive to run the update on the target computers. Recommended by mikedopp.

SystemRescueCd is a Linux system rescue disk that allows you to administer or repair your system and data after a crash. It can be booted via CD/DVD, USB or installed directly on the hard disk. Many system utilities like GParted, fsarchiver, filesystem tools and basic tools (editors, midnight commander, network tools) are included, and it works on Linux and Windows computers, desktops and servers. Supports ext3/ext4, xfs, btrfs, reiserfs, jfs, vfat, ntfs—as well as network filesystems such as Samba and NFS.

KiTTY is a fork of PuTTY, the popular Telnet and SSH client. It runs on Windows and can perform all the tasks of PuTTY plus many more. Features include portability, predefined command shortcuts, sessions filter, session launcher, automatic log-on script, URL hyperlinks, automatic command and password, running locally saved scripts in remote sessions, ZModem integration, icons for each session, transparency, unfortunate keyboard input protection, roll-up, quick start of duplicate sessions, configuration box, automatic saving, Internet Explorer integration for SSH Handler, binary compression, clipboard printing, PuTTYCyg patch, background images/transparency and organizing sessions you save in a folder hierarchy.

WinMTR is a free, open-source Windows application that integrates the functions of the traceroute and ping utilities into a single, convenient network diagnostic tool. Many thanks to generalmx for suggesting both this and SystemRescueCd!

Free Services

SSL Labs SSL Server Test is a free online service that will run a deep analysis on the configuration for any SSL web server. Simply enter the hostname, and you'll get a detailed report highlighting any problems found on each server.

Draw.io is a free, browser-based diagramming application that's terrific for creating flowcharts and org charts. It's available as an online application with optional integration to various cloud storage options.

ImmuniWeb® SSLScan allows you to test SSL/TLS security and implementation for compliance with PCI DSS requirements, HIPAA guidance and NIST guidelines. Checks SSL certificate expiration for subdomains, insecure third-party content, and email servers’ SPF, DKIM, and DMARC implementation. Credit for this one goes to pixl_graphix.

BadSSL.com offers a simple, free way to test a browser's security setup. This helpful service was suggested by Already__Taken who advises you to "test what your MITM proxy will happily re-sign and present to you as a valid site."

Testssl.sh is a free command line tool that checks a server's service on any port for the support of TLS/SSL ciphers, protocols, recent cryptographic flaws and more. Recommended by stuck_in_the_tubes who likes it "for when you need to assess protocol encryption without the use of external services."

Tips

For access to all of the sysinternals tools on any Windows box with internet, just Win+R and open \\live.sysinternals.com\tools. It's a public SMB share with all of the tools that Microsoft hosts. Thanks to jedieaston for the tip.

BASH keyboard shortcut: 'Control + r' initiates a name/command lookup from the bash history. As you type, this 'reverse incremental search' will autocomplete with the most-recent match from your history.

Podcasts

Darknet Diaries podcast relates the fascinating, true stories of hackers, defenders, threats, malware, botnets, breaches, and privacy. The show's producer, Jack Rhysider, is a security-world veteran who gained experience fighting such exploits at a Security Operations Center. Thanks to unarj for suggesting this one.

StormCast is a daily 5-10 minute podcast from the Internet Storm Center covering the latest information security threat updates. New podcasts are released late in the day, so they're waiting for you to listen on your morning commute. While the format is compact, the information is very high-level and provides a real overview of the current state of affairs in the info-sec world.

Microsoft Cloud IT Pro podcast is hosted by Scott and Ben, two IT Pros with expertise in SharePoint, Office 365 and Azure. The podcast focuses primarily on Office 365 with some discussion on Azure, especially as it relates to Office 365 in areas such as Azure AD and Mobile Device Management (MDM) or Mobile Application Management (MAM).

Datanauts podcast keeps you up to date on developments in data center and infrastructure related to cloud, storage, virtualization, containers, networking, and convergence. Discussions focus on data center compute, storage, networking and automation to explore the newest technologies, including hyperconvergence and cloud.

Cloud Architects is a podcast on best practices, the latest news, and cutting-edge Microsoft cloud technologies. Nicolas Blank, Warren du Toit and Chris Goosen host discussions with various experts in the cloud space to gather helpful guidance and ideas.

Risky Business is a weekly podcast that covers both the latest news and thoughtful, in-depth discussions with the top minds in the security industry. Hosted by award-winning journalist Patrick Gray, it is a terrific way to stay up to date on information security.

The rollBak is a podcast on systems engineering, DevOps, networking, and automation—along with the odd discussion on software development or information security. Conversation is casual with the intention of making complex topics approachable in a way that fosters learning.

Tutorials

Get Started in PowerShell3 is a great jump start video series on starting out in PowerShell. According to sysadmin FireLucid, "It's a great broad overview of how it works and I found it extremely useful to have watched before starting on the book."

Websites

Ask Woody is a no-nonsense news, tips, and help site for Windows, Office, and more. You can post questions about Windows 10, Win8.1, Win7, Surface, Office, or browse through their forums. Recommended to us by deeperdownunder.

Learn X in Y minutes is a community-driven site that provides quick syntax for many popular programming languages. Here are direct links for some common ones, kindly provided by ssebs:

WintelGuy offers a handy collection of useful links, calculators, resources, and tools for the sysadmin. Thanks LateralLimey for the recommendation!

How-To Geek is a website dedicated to explaining today's technology. Content is written to be useful for all audiences—from regular people to geeky technophiles—and the focus is to put the latest news and tech into context.

EventSentry is a comprehensive, well-organized resource for Windows security events and auditing on the web. It allows you to see how events correlate using insertion strings and review the associated audit instructions. This was recommended by _deftoner_ as an “online DB where you can search for Windows Event Log by id, os, error code, etc. I do a lot of auditing on a big network thru event log ids, and sometimes I found rare errors—and there is not a good db with all of them. Not even Microsoft has one.”

Books

The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win tells the story of an IT manager's efforts to save his company's dysfunctional IT dept. The company's new IT initiative, code named Phoenix Project, is behind schedule and hugely over budget. Bill is given 90 days to resolve the entire mess—or have his entire department outsourced. An entertaining read, with elements that seem familiar to most system admins. Comes highly recommended by sp00n_b3nd3r.

UNIX® and Linux® System Administration Handbook, 5th Edition, is a comprehensive guide written by world-class, hands-on experts. It covers best practices for every area of system administration—including storage management, network design and administration, security, web hosting, automation, configuration management, performance analysis, virtualization, DNS, security, and management of IT service organizations. You'll learn all about installing, configuring, and maintaining any UNIX or Linux system, even those that supply core Internet and cloud infrastructure. A great resource for anyone responsible for running systems built on UNIX or Linux.

Taming Information Technology: Lessons from Studies of System Administrators (Human Technology Interaction Series)was suggested by AngryMountainBiker, who describes it as "essentially an ethnographic study of system administrators. The authors videotaped and otherwise documented SA's over a period of time and were able to break down a number of fascinating incidents and how to improve the art. I'm disappointed this hasn't been recommended reading for all SA's and maybe more importantly, their bosses, who too often don't really know what SA's do."

Learn Active Directory Management in a Month of Lunches is a practical, hands-on guide for those who are new to Active Directory. It covers the administration tasks that keep a network running smoothly and how to administer AD both from the GUI tools built into Windows and from PowerShell at the command line. Provides best practices for managing user access, setting group policies, automating backups, and more. All examples are based in Windows Server 2012.

CheatSheets

Sans Digital Forensics and Incident Response Cheat Sheets provide a collection of assorted, handy incident response cheat sheets. It's a helpful reference for commands, process, tactics, tips, tools and techniques that was compiled by Sans DFIR, the experts in incident-response training.

Blogs

Ned Pyle's blog from Microsoft's Directory Services Team contains a wealth of posts on best practices and solutions to common issues. While no longer actively maintained by Ned Pyle, the library of information already posted is incredibly valuable. Thanks to azers for bringing this to our attention.

Happy SysAdm has been providing resources, solutions and tips for system administrators since 2010. The blog is written by a Senior Systems Administrator with close to 15 years experience in designing, scripting, monitoring and performance-tuning Microsoft environments going all the way back to Windows 3.1/95/NT4.

Stephanos Constantinou's Blog shares the author's original scripts for PowerShell, Microsoft Active Directory, Microsoft Exchange On-Premise and Online (Office 365) and Microsoft Azure. His current focus is on retrieving data from systems, editing it and automating procedures. You'll also find a section with some PowerShell tutorials.

Have a fantastic week!!
u/crispyducks (Graham @ EveryCloud)

P.S. Some Extra Free Tools We Put In The Email Version

Clonezilla is free, open-source software for disk cloning, disk imaging, data recovery, and deployment—helping with system deployment, bare metal backup, and recovery. Cloning efficiency is optimized by the program's approach of saving/restoring only used blocks in the hard disk.

SPF Record Testing Tools is a query tool designed to help you deploy SPF records for your domain. It validates if an SPF record exists and whether it is formatted correctly and entered into your DNS as a proper TXT record.

PS Remote Registry module contains functions to create, modify, or delete registry subkeys and values on local or remote computers. This one was recommended to us by IhaveGin.

PowerCopy GUI was recommended by Elementix, who described it as "similar to RichCopy, but it uses .Net, PowerShell, and Robocopy. A good (non-install) alternative." The tool allows you to set up predefined options, one-click access to help and log file, and instant error analysis.

Gitbash is a package containing bash and a collection of other, separate *nix utilities like ssh, scp, cat, find and others—compiled for Windows—and a new command-line interface terminal window called mintty. Recommended by sysacc who tells us he's been "dealing with log files lately and I've been using...Gitbash a LOT... It's part of the Git tools, I love having access to Linux commands on Windows."

Easy2Boot is a collection of grub4dos scripts to be copied onto a grub4dos-bootable USB drive. Each time you boot, the E2B scripts automatically find all the payload files (.ISO, .IMA, .BIN, .IMG, etc.) on the USB drive and dynamically generate the menus. Thanks to Phx86 who says it "creates a very versatile USB drive. It checks a lot of marks other various tools did not. Formats NTFS, your ISO boot disks doubles as standard NTFS storage. Drag and drop .ISO files to the correct folder, then boot directly to them. Boot menu reads the .ISO files and builds a menu based on what is loaded on the drive. No fiddling around with custom boot menus when you add a new .ISO."

CCleaner is the fastest way to eliminate temporary files and Windows Registry problems. Our own Matt Frye says, "When a machine is having problems, this is almost always the tool I use first. It also helps to ensure privacy by getting rid of traces left behind (such as cookies) by web browsers."

Netwrix Auditor Free Community Edition is a great auditing/monitoring tool for the Windows sysadmin. It lets you see changes and access events in your hybrid cloud IT environment, so you can stop worrying you'll miss critical changes to AD objects, file server permissions, Windows Server configuration or other security incidents.

WinSCP is an SFTP client and FTP client for Windows with a GUI, integrated text editor, scripting and task automation. It allows you to copy files between a local computer and remote servers via FTP, FTPS, SCP, SFTP, WebDAV or S3 file transfer protocols.

Why am I doing this each week?
I want to be mindful of the rules of the subreddit, so if you’d like to know more about my reasons for doing this, please visit the bottom of the sister post on SysAdminBlogs:
https://www.reddit.com/SysAdminBlogs/comments/a560s6/tools_info_for_sysadmins_mega_summary_q4_over_80/
You can view last weeks post here: https://www.reddit.com/sysadmin/comments/a2zuhy/tools_info_for_sysadmins_linux_rescue_disk_telnet/

Edit 1: As some of you may know this post got caught in site wide filters today. It's since been released as you can see, but whilst that was all happening I set up a new subreddit /ITProTuesday. We'll post them in here each week to, so please subscribe if you want to make sure you don't miss out on them!

Edit 2: I'm greatly honoured by the gold!! Thank you anonymous user.
submitted by crispyducks to sysadmin [link] [comments]

Ethereum on ARM. PoC ARMbian image for Nanopc-T4 (a high performance ARM board with RK3399 CPU, 4GB RAM and NVMe SSD). Full node up and running from scratch in 2:30 hours with Parity (warp mode). 3 days for Geth (fast mode).

Hi there :-). It’s been a while.
In late 2016 [1] I released a Raspberry Pi 2/3 image that turned this device into a full Ethereum node and, few months later [2], a set of scripts for customizing an Armbian [3] image and turning a bunch of ARM devices into Ethereum nodes as well. However, the rapid Ethereum development and the continue growth of the blockchain (as well as the increase in hardware requirements) made pretty much impossible to run an full Ethereum node with these kind of boards.
By that time, no ARM board had the necessary resources to synchronize the whole chain. But high performance SoCs are starting to show up and these ones are more than capable of doing such demanding tasks.
Today, I’m releasing a Proof of Concept Eth Armbian image [4] for the brand new and powerful NanoPc-T4 [5] that, again, turns this device into a full Ethereum node and shows the potential of these tiny boards.
If you own this board you can give it a try it by flashing a MicroSD. SEE INSTALL INSTRUCTIONS [6].
In case you own a similar device you can build your own Armbian image using the customization scripts (see above link)
DISCLAIMER: So far, the image is running smoothly and the performance is really outstanding, but it is based on an Armbian devel fork [7] with the Rockchip kernel [8] (NVMe doesn’t work on mainline kernel yet) so it may have stability issues. I expect to release a more solid image in the coming weeks(TM). Currently, there is no official Armbian support for this device (it will, for sure [9])

ETH Armbian image

This is what the Eth Armbian image does once flashed and plugged in:
You can optionally:
DISCLAIMER: Keep in mind that without a NVMe SSD drive there’s absolutely no chance to sync the blockchain.

Syncing the Blockchain

Some numbers

Parity client (--warp --memory-cache 3072) is up in 2:30 hours (25GB) and keeps synchronizing the whole blockchain in the background.
Geth client (--fast --cache 3072) takes 3 days to sync the whole blockchain (106 GB), which is pretty impressive for this kind of device taking into account that it takes 2-3 days for some decent laptops [10] (see this great Karalabe explanation to get familiar with the Geth sync process [11]).

Sync modes

There are several Ethereum clients and sync modes but I’m just focusing on Geth and Parity clients running as Full Ethereum nodes. For further info, I recommend reading this post by Afri Schoedon [12]
By default, Geth client runs on light server mode so we can support light clients. This behaviour can be easily changed but I encourage users who run a full node to leave this option enabled.
You can tweak the clients configuration by editing the files in /etc/ethereum/ and restarting the service.

Stake and sharding

According to Vitalik on “Marginal Revolution” [13]:
“Casper doesn't try to impose very low latency or high performance requirements on individual nodes; we are trying to design for consumer laptops, even though we are aware that in reality some degree of pooling will be inevitable.”
So I think there is solid possibility we can stake with this (or a similar) ARM board, but of course, that remains to be seen. Hopefully, sharding should also lower the hardware requirements for staking.

Build your own image

There are other interesting SoCs out there that can be suitable for running as Eth nodes. If you own one, feel free to build your own image and give it a try. Building scripts updated here [6].
Instructions for building an Armbian image can be found here [14] (I strongly recommend the Vagrant environment).
Keep in mind that I’m building the image with David Huang Armbian fork (Devel branch) [7], not the official Armbian repo.

ARM SoCs

IMO, ARM boards have plenty of advantages over x86 desktops and servers for running as Ethereum nodes, such as follows:
The ultimate goal of this PoC is validate such ARM devices for supporting the Ethereum network and testing if stake and sharding will be possible on these devices.

Board features [15]

I’ve been looking forward to a device with features like the Nanopc-T4, particularly, 4GB RAM and a fast SSD. The PCIe SSD slot (with 4 lanes) is insanely fast and far superior to SATA SSDs [see 16]. I ordered a 256 GB NVMe x4 SSD for this PoC [17].
This is not a cheap board (at least compared to a Raspberry or equivalent) but the NVMe M.2 SSD throughput is mind blowing and worth the price gap. Overall, the SoC performance is impressive.

Thanks

Last but not least. Thanks to the Armbian team for their impressive work supporting these kind of devices and to David Huang for supporting this specific board and fixing some u-boot compiling problems.

EDIT 24th July

Updated Image to Parity 2.0 beta and applied some kernel patches (download link is the same).

References

submitted by diglos76 to ethereum [link] [comments]

Tools & Info for SysAdmins - Mega Summary Q4 (Over 80 Items)

Hi Everyone,
Each week I thought I'd post these SysAdmin tools, tips, tutorials etc with just one link to get it in your inbox each week (with extras). Let me know any ideas for future version in the comments!
This week is mega list of all the items we've featured to in the last 3 months, broken down into categories, for you to explore at your leisure. I hope you enjoy it.

Free Tools

Free MailFlow Monitor. Rejection / Delay Text Alerts, Group Policies, Alerts By SMTP Code, Trouble Shooting Tools including header analysis. MailFlow Monitor is EveryCloud’s (Our) free, cloud-based, round-trip tool that sends you an alert as soon as there is an issue with your email flow. Settings are adjustable to allow you to choose how much of a delay is acceptable and which types of bounce alerts you want to see. Helps you get to the bottom of a problem before users (or your boss) have even noticed it.

Postman is a popular, free app to make API development faster and easier. It offers a powerful GUI, saved history of requests, flexible monitoring, automated testing with collection runner, mock servers, and unlimited collections, environments, tests, and sharing. It also provides detailed documentation.

Microsoft Sysinternals Suite is all their utilities in one convenient file. Contains the all the individual troubleshooting tools as well as help files, but not non-troubleshooting tools like the BSOD Screen Saver or NotMyFault. A shout out to azers for recommending this one.

RichCopy is a simple tool written by a Microsoft engineer named Derk Benisch. It provides a much-appreciated graphical interface for the very popular Robocopy command-line utility.

Windows Update MiniTool is an alternative to the standard (and sometimes overbearing) Windows Update. It allows you to control updates by giving you the power to search, install, and block Windows updates in any way you like.

Space Monger gives you a graphical image of your whole disk, where large files and folders are easily identified. This handy tool can be run from a USB drive, so you don't even need to install it. Thanks for this one and Windows Update MiniTool go to mikedopp.

UNetbootin is a terrific, cross-platform utility for creating bootable live USB drives for Ubuntu and other Linux distributions without burning a CD. Thanks go to Gianks for this one.

CopyQ is a clipboard manager that adds some advanced editing and scripting capabilities. It monitors the system clipboard and saves text, HTML, images and more into customized tabs. From there, the saved content can be copied and pasted directly into any application. Clipboard history is easily searchable and can be filtered. Suggested by majkinetor.

Desktop Info provides a quick view of every kind of metric about your Windows system right on your desktop. The display looks like wallpaper but stays resident in memory and updates in real time. Gives you a quick way to monitor what any system is up to, while using very little memory and requiring almost nothing from the CPU. This one was recommended by mikedopp.

Healthstone is a lightweight, self-hosted, agent-based system-monitoring solution that runs lots of customizable health checks. The dashboard runs on a Windows or Linux server, and it has agents for the Windows and Linux hosts you want to monitor. You can customize the dashboard to send notifications via email, Pushbullet, or NodePoint tickets whenever a client stops checking in or any of the configured checks fail. Configuration is retrieved from the dashboard by all agents in the form of templates, which are stored in the templates folder and can be customized for your needs. Thanks to mikedopp for this one!

Rufus is another utility for formatting and creating bootable USB flash drives. This one works with MRB/GPT and BIOS/UEFI. Rufus is about twice as fast as UNetbootin, Universal USB Installer, or Windows 7 USB download tool when creating a Windows 7 USB installation drive from an ISO. It is also marginally faster for creating a Linux bootable USB from ISOs. We first heard of this one from Gianks, but there were quite a few others who shared the recommendation as well.

Axence netTools is a set of ten free tools for network scanning and monitoring. Includes: Netwatch (multiple host availability and response-time monitoring); Network port and service scanner; Wintools (view of launched processes/services, remote register editor and Windows event log view, HDD/RAM/CPU details, custom queries based on WMI protocol); TCP/IP workshop and SNMP browser; Traceroute; NetStat (list of inbound and outbound connections and open ports); Local info (tables with local configuration details, TCP/UDP stats); Lookup (DNS and WHOIS records); Bandwidth test; and NetCheck (LAN hardware and wiring quality check). This was recommended by DollarMindy as an "easy ping monitor with email alerts."

MediCat USB is a a bootable troubleshooting environment with Linux and Windows boot environments and troubleshooting tools. A complete Hiren's Boot Disk replacement for modern hardware that follows the Ubuntu release cycle with a new update released every 6 months. The DVD version was originally recommended to us by Spikerman "for when you need to helpdesk warrior."

MobaXterm is an enhanced terminal for remote computing. It brings all the key remote network tools (SSH, X11, RDP, VNC, FTP, MOSH) and Unix commands (bash, ls, cat, sed, grep, awk, rsync) to Windows desktop in a single, portable .exe file that works out of the box. The free version includes full X server and SSH support, remote desktop (RDP, VNC, Xdmcp), remote terminal (SSH, telnet, rlogin, Mosh), X11-Forwarding, automatic SFTP browser, plugins support, portable and installer versions but only 12 sessions, 2 SSH tunnels, 4 macros, and 360 seconds for Tftp/Nfs/Cron. Thanks go out to lazylion_ca for suggesting this one.

WinDirStat provides free, open-source graphical disk-usage analysis for MS Windows. You'll get a sub-tree view with disk-use percent and a list of file extensions ordered by usage. This tool was recommended by ohyeahwell, who likes to use it "for freespace as it can be deployed via ninite pro."

IIS Crypto allows administrators to enable or disable protocols, ciphers, hashes and key exchange algorithms on Windows Server 2008, 2012 and 2016. You can also reorder SSL/TLS cipher suites from IIS, implement best practices with a single click, create custom templates and test your website. Available in both command line and GUI versions. EOTFOFFTW tells us, “This tool has been very helpful in configuring SSL settings for Windows IIS servers.”

Ditto saves all your clipboard items so you can access them later. It works with anything that can be put on the clipboard—images, text, html and custom formats. The simple interface includes search and sync functions for ease of finding what you need. Thanks go to Arkiteck for suggesting this one!

Malwarebytes Anti-Malware should be your first stop if you suspect a malware infection. It is the most-effective malware remover—featuring deep scans and daily updates—and blocks malware, hacker, viruses, ransomware and malicious websites that slip through your traditional antivirus. Also available as a full AV program that you can buy if you wish to do so.

Termius is a complete command-line solution providing portable server management for UNIX and Linux systems—whether a local machine, a remote service, Docker Container, VM, Raspberry Pi, or AWS instance (similar to Putty for Android). This cross-platform Telnet, Mosh-compatible and SSH client. Securely access Linux or IoT devices to quickly fix issues from your laptop or phone. Thanks for this one go to blendelabor.

WSUS Offline Update lets you safely patch any computer running Microsoft Windows and Office—even when there's no connection to the Internet or a network of any sort. More specifically, you first run WSUS Offline Update on a machine that has Internet connectivity to download the updates you need and copy the resulting update media to a USB drive. You then use the USB drive to run the update on the target computers. Recommended by mikedopp.

SystemRescueCd is a Linux system rescue disk that allows you to administer or repair your system and data after a crash. It can be booted via CD/DVD, USB or installed directly on the hard disk. Many system utilities like GParted, fsarchiver, filesystem tools and basic tools (editors, midnight commander, network tools) are included, and it works on Linux and Windows computers, desktops and servers. Supports ext3/ext4, xfs, btrfs, reiserfs, jfs, vfat, ntfs—as well as network filesystems such as Samba and NFS.

KiTTY is a fork of PuTTY, the popular Telnet and SSH client. It runs on Windows and can perform all the tasks of PuTTY plus many more. Features include portability, predefined command shortcuts, sessions filter, session launcher, automatic log-on script, URL hyperlinks, automatic command and password, running locally saved scripts in remote sessions, ZModem integration, icons for each session, transparency, unfortunate keyboard input protection, roll-up, quick start of duplicate sessions, configuration box, automatic saving, Internet Explorer integration for SSH Handler, binary compression, clipboard printing, PuTTYCyg patch, background images/transparency and organizing sessions you save in a folder hierarchy.

WinMTR is a free, open-source Windows application that integrates the functions of the traceroute and ping utilities into a single, convenient network diagnostic tool. Many thanks to generalmx for suggesting both this and SystemRescueCd!

Free Services

SSL Labs SSL Server Test is a free online service that will run a deep analysis on the configuration for any SSL web server. Simply enter the hostname, and you'll get a detailed report highlighting any problems found on each server.

Draw.io is a free, browser-based diagramming application that's terrific for creating flowcharts and org charts. It's available as an online application with optional integration to various cloud storage options.

ImmuniWeb® SSLScan allows you to test SSL/TLS security and implementation for compliance with PCI DSS requirements, HIPAA guidance and NIST guidelines. Checks SSL certificate expiration for subdomains, insecure third-party content, and email servers’ SPF, DKIM, and DMARC implementation. Credit for this one goes to pixl_graphix.

BadSSL.com offers a simple, free way to test a browser's security setup. This helpful service was suggested by Already__Taken who advises you to "test what your MITM proxy will happily re-sign and present to you as a valid site."

Testssl.sh is a free command line tool that checks a server's service on any port for the support of TLS/SSL ciphers, protocols, recent cryptographic flaws and more. Recommended by stuck_in_the_tubes who likes it "for when you need to assess protocol encryption without the use of external services."

Tips

For access to all of the sysinternals tools on any Windows box with internet, just Win+R and open \\live.sysinternals.com\tools. It's a public SMB share with all of the tools that Microsoft hosts. Thanks to jedieaston for the tip.

BASH keyboard shortcut: 'Control + r' initiates a name/command lookup from the bash history. As you type, this 'reverse incremental search' will autocomplete with the most-recent match from your history.

Podcasts

Darknet Diaries podcast relates the fascinating, true stories of hackers, defenders, threats, malware, botnets, breaches, and privacy. The show's producer, Jack Rhysider, is a security-world veteran who gained experience fighting such exploits at a Security Operations Center. Thanks to unarj for suggesting this one.

StormCast is a daily 5-10 minute podcast from the Internet Storm Center covering the latest information security threat updates. New podcasts are released late in the day, so they're waiting for you to listen on your morning commute. While the format is compact, the information is very high-level and provides a real overview of the current state of affairs in the info-sec world.

Microsoft Cloud IT Pro podcast is hosted by Scott and Ben, two IT Pros with expertise in SharePoint, Office 365 and Azure. The podcast focuses primarily on Office 365 with some discussion on Azure, especially as it relates to Office 365 in areas such as Azure AD and Mobile Device Management (MDM) or Mobile Application Management (MAM).

Datanauts podcast keeps you up to date on developments in data center and infrastructure related to cloud, storage, virtualization, containers, networking, and convergence. Discussions focus on data center compute, storage, networking and automation to explore the newest technologies, including hyperconvergence and cloud.

Cloud Architects is a podcast on best practices, the latest news, and cutting-edge Microsoft cloud technologies. Nicolas Blank, Warren du Toit and Chris Goosen host discussions with various experts in the cloud space to gather helpful guidance and ideas.

Risky Business is a weekly podcast that covers both the latest news and thoughtful, in-depth discussions with the top minds in the security industry. Hosted by award-winning journalist Patrick Gray, it is a terrific way to stay up to date on information security.

The rollBak is a podcast on systems engineering, DevOps, networking, and automation—along with the odd discussion on software development or information security. Conversation is casual with the intention of making complex topics approachable in a way that fosters learning.

Tutorials

Get Started in PowerShell3 is a great jump start video series on starting out in PowerShell. According to sysadmin FireLucid, "It's a great broad overview of how it works and I found it extremely useful to have watched before starting on the book."

Websites

Ask Woody is a no-nonsense news, tips, and help site for Windows, Office, and more. You can post questions about Windows 10, Win8.1, Win7, Surface, Office, or browse through their forums. Recommended to us by deeperdownunder.

Learn X in Y minutes is a community-driven site that provides quick syntax for many popular programming languages. Here are direct links for some common ones, kindly provided by ssebs:

WintelGuy offers a handy collection of useful links, calculators, resources, and tools for the sysadmin. Thanks LateralLimey for the recommendation!

How-To Geek is a website dedicated to explaining today's technology. Content is written to be useful for all audiences—from regular people to geeky technophiles—and the focus is to put the latest news and tech into context.

EventSentry is a comprehensive, well-organized resource for Windows security events and auditing on the web. It allows you to see how events correlate using insertion strings and review the associated audit instructions. This was recommended by _deftoner_ as an “online DB where you can search for Windows Event Log by id, os, error code, etc. I do a lot of auditing on a big network thru event log ids, and sometimes I found rare errors—and there is not a good db with all of them. Not even Microsoft has one.”

Books

The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win tells the story of an IT manager's efforts to save his company's dysfunctional IT dept. The company's new IT initiative, code named Phoenix Project, is behind schedule and hugely over budget. Bill is given 90 days to resolve the entire mess—or have his entire department outsourced. An entertaining read, with elements that seem familiar to most system admins. Comes highly recommended by sp00n_b3nd3r.

UNIX® and Linux® System Administration Handbook, 5th Edition, is a comprehensive guide written by world-class, hands-on experts. It covers best practices for every area of system administration—including storage management, network design and administration, security, web hosting, automation, configuration management, performance analysis, virtualization, DNS, security, and management of IT service organizations. You'll learn all about installing, configuring, and maintaining any UNIX or Linux system, even those that supply core Internet and cloud infrastructure. A great resource for anyone responsible for running systems built on UNIX or Linux.

Taming Information Technology: Lessons from Studies of System Administrators (Human Technology Interaction Series)was suggested by AngryMountainBiker, who describes it as "essentially an ethnographic study of system administrators. The authors videotaped and otherwise documented SA's over a period of time and were able to break down a number of fascinating incidents and how to improve the art. I'm disappointed this hasn't been recommended reading for all SA's and maybe more importantly, their bosses, who too often don't really know what SA's do."

Learn Active Directory Management in a Month of Lunches is a practical, hands-on guide for those who are new to Active Directory. It covers the administration tasks that keep a network running smoothly and how to administer AD both from the GUI tools built into Windows and from PowerShell at the command line. Provides best practices for managing user access, setting group policies, automating backups, and more. All examples are based in Windows Server 2012.

CheatSheets

Sans Digital Forensics and Incident Response Cheat Sheets provide a collection of assorted, handy incident response cheat sheets. It's a helpful reference for commands, process, tactics, tips, tools and techniques that was compiled by Sans DFIR, the experts in incident-response training.

Blogs

Ned Pyle's blog from Microsoft's Directory Services Team contains a wealth of posts on best practices and solutions to common issues. While no longer actively maintained by Ned Pyle, the library of information already posted is incredibly valuable. Thanks to azers for bringing this to our attention.

Happy SysAdm has been providing resources, solutions and tips for system administrators since 2010. The blog is written by a Senior Systems Administrator with close to 15 years experience in designing, scripting, monitoring and performance-tuning Microsoft environments going all the way back to Windows 3.1/95/NT4.

Stephanos Constantinou's Blog shares the author's original scripts for PowerShell, Microsoft Active Directory, Microsoft Exchange On-Premise and Online (Office 365) and Microsoft Azure. His current focus is on retrieving data from systems, editing it and automating procedures. You'll also find a section with some PowerShell tutorials.

Have a fantastic week!!
u/crispyducks (Graham @ EveryCloud)

P.S. Some Extra Free Tools We Put In The Email Version

Clonezilla is free, open-source software for disk cloning, disk imaging, data recovery, and deployment—helping with system deployment, bare metal backup, and recovery. Cloning efficiency is optimized by the program's approach of saving/restoring only used blocks in the hard disk.

SPF Record Testing Tools is a query tool designed to help you deploy SPF records for your domain. It validates if an SPF record exists and whether it is formatted correctly and entered into your DNS as a proper TXT record.

PS Remote Registry module contains functions to create, modify, or delete registry subkeys and values on local or remote computers. This one was recommended to us by IhaveGin.

PowerCopy GUI was recommended by Elementix, who described it as "similar to RichCopy, but it uses .Net, PowerShell, and Robocopy. A good (non-install) alternative." The tool allows you to set up predefined options, one-click access to help and log file, and instant error analysis.

Gitbash is a package containing bash and a collection of other, separate *nix utilities like ssh, scp, cat, find and others—compiled for Windows—and a new command-line interface terminal window called mintty. Recommended by sysacc who tells us he's been "dealing with log files lately and I've been using...Gitbash a LOT... It's part of the Git tools, I love having access to Linux commands on Windows."

Easy2Boot is a collection of grub4dos scripts to be copied onto a grub4dos-bootable USB drive. Each time you boot, the E2B scripts automatically find all the payload files (.ISO, .IMA, .BIN, .IMG, etc.) on the USB drive and dynamically generate the menus. Thanks to Phx86 who says it "creates a very versatile USB drive. It checks a lot of marks other various tools did not. Formats NTFS, your ISO boot disks doubles as standard NTFS storage. Drag and drop .ISO files to the correct folder, then boot directly to them. Boot menu reads the .ISO files and builds a menu based on what is loaded on the drive. No fiddling around with custom boot menus when you add a new .ISO."

CCleaner is the fastest way to eliminate temporary files and Windows Registry problems. Our own Matt Frye says, "When a machine is having problems, this is almost always the tool I use first. It also helps to ensure privacy by getting rid of traces left behind (such as cookies) by web browsers."

Netwrix Auditor Free Community Edition is a great auditing/monitoring tool for the Windows sysadmin. It lets you see changes and access events in your hybrid cloud IT environment, so you can stop worrying you'll miss critical changes to AD objects, file server permissions, Windows Server configuration or other security incidents.

WinSCP is an SFTP client and FTP client for Windows with a GUI, integrated text editor, scripting and task automation. It allows you to copy files between a local computer and remote servers via FTP, FTPS, SCP, SFTP, WebDAV or S3 file transfer protocols.
submitted by crispyducks to ITProTuesday [link] [comments]

Free Binary Options Live Stream Signal App// 100% Accuracy ... Best Binomo - Binary option - MT4 Indicator // Best Signal Software // (FREE DOWNLOAD) Best IQ Option- Binary Option Bot- Robot// Auto Trading ... Binary Options Trading System 2016 – Best Automated Trading Software 2016 Binary Options System Binary Tick Picker Software (#Free #Download) 2020. - YouTube NEW 100% WIN BINARY OPTION FREE TRADING SIGNALS - YouTube Free Download Binary Option Bot- Robot// Auto Trading ...

Binary Options Signals teaches you how to trade with confidence. MarketsGear uses an advanced, cutting edge technology which gives you easy to follow Free Binary Options Trading Signals. Download Auto Binary Options Trading 1.1.6 from our website for free. The program is included in Business Tools. This free software is an intellectual property of Auto Binary Options Trading. The following versions: 1.1 and 1.0 are the most frequently downloaded ones by the program users. Disclaimer: 7 Binary Options will not be held liable for any loss or damage resulting from reliance on the information contained within this website. The data contained in this website is not necessarily real-time nor accurate, and analyses are the opinions of the author. 7binaryoptions.com is only a website offering information - not a regulated broker or investment adviser, and none of the ... Binary Options Buddy 2.0 is a very easy to use indicator for binary options. According to the developers, the indicator gives a 70-80% accurate signals for short term expiration dates and 80-95% for the long term. In this case, the trader does not need to carry out additional analysis the market situation, it is only necessary to follow the indicator signals which appear in the upper left ... On this page you will be able to find the best binary options signals and software programs rated.I will provide links to reviews, to the sites and the readers of binary today can contribute. I am always adding more information to this page so please come back from time to time to see what changes I’ve made, and what trading systems have crept into the top rated section. Binary Trading Hack Review -Free Binary Options Trading Software Download 2016 Best Live Signals And Chart Analysis Auto Trader Indicators Strategy For Amber Options Broker Honest And Real Binary Trading Hack Bth Automator Review By Thomas Lawrence. Binarytradinghackreview. 2:38 . Binary option strategy 2016 - iq option - binary options using martingale trading strategy [Binary Options Trading ... The binary options market is flooded with the offerings from the automated software developers. The abundance of choice available in the arena makes it very difficult for any trader to select the right binary broker for the trading and it is even more difficult to distinguish between the genuine and the scam-artists. Our endeavor has always been to provide you with resources

[index] [20674] [26937] [1560] [2588] [18043] [2121] [19116] [19103] [19959] [10853]

Free Binary Options Live Stream Signal App// 100% Accuracy ...

How to Trade on (Tick Picker Software) 2020 Strategy. #Free #Download. 1 Download Link: http://www.mediafire.com/folder/5pivja9ri895q/Mr.SL_Tickpickerpro ... https://binarysignalspro.com Binary Options Trading System 2016 – Best Automated Trading Software 2016 Binary Options System binary options trading system binary options trading system upto 90 ... Best trading platform: http://bit.ly/BINOMO_TRADING_PLATFORM Click the Link and get $1000 on demo account for free Use the promo code: PWT777 Indicator download link ... based on - Free Download Binary Option Bot- Robot// Auto Trading Signal Software 2019 hindi -----... Hello Trader Toady i will share you "Best IQ Option Bot" Characteristics of Bot 1. Platform - Any Binary Platform. 2. Asset - Given On Bot. 3. Candle Timefra... Do not miss! DEMO ACCOUNT: https://bit.ly/2Lq3NUt You can use this strategy in binary options to win every time but you have to keep following things in mind... For Free Live Signal, Please Visit: https://www.amtradingtips.com Contact Email: [email protected] For More Update Join Telegram Channel: https://t.me/...

https://binary-optiontrade.capscaseatnoke.tk