Compact Ryzen V1000 system starts at $689 with pre-loaded Ubuntu

Simply NUC, the company behind several Intel NUC based SBCs like the Apollo Lake based NUC 8 Rugged, recently announced the launch of a new mini-computers codenamed; “Sequoia”.

 

The Sequoia

The Sequoia is Simply NUC’s first AMD-powered mini computer and it is aimed at applications around AI, Edge Analytics, robotics, POS, digital signage and industrial IoT or computing, thanks to it’s rugged and robust build.

The Sequoia is built around AMD® Ryzen™ processors, which gives it the ability to run most of the popular operating systems including; Windows 10 and several Linux distros, giving developers the flexibility to develop the exact solution they require without compromises.

In terms of features, in order to accommodate the requirements for the plethora of applications for which the Sequoia can serve, and keep the Simply NUC’s tradition of providing all their Mini PCs with very extensive connectivity features, the Sequoia comes with two serial ports, two gigabit Ethernet ports (controlled using Intel’s i210-LM), two locking Mini Display Ports, Serial RS-232/Serial RS-485 video outputs, Wi-Fi 5 and Bluetooth 5, optional microSD card reader, and several USB 3.1 Gen 2 port. To give users additional connectivity options, the Mini PC also comes with three(3) M.2 slots through which things like a wireless-AC card, an LTE Modem and (or), an SSD storage device can be connected to the sequoia. To provide multiple mounting options, the chassis of the mini PC is designed to support DIN rail and VESA mounting plate, giving users a choice on how the device is installed.

The Sequoia was designed for reliable and long-lasting use in rugged environments, typical of industrial settings. It supports an automotive-grade power supply range (8 to 32Vdc) with a locking connector and is able to withstand a maximum relative humidity of 95% @ 40C and a wide operational temperature range of 0 to 60C. To enhance maintenance, the Sequoia also features a built-in health monitoring system which includes; a controllable fan, hardware monitoring and a watchdog timer.

To give users some level of options, Simply NUC two versions of the Sequoia exist; The Sequoia V8 and the Sequoia V6.

Simply NUC – Sequioa Mini Computer

The Sequoia V8, also called the LLMv8SQ, is based on the AMD Ryzen V1807B Quad-Core Processor with 3.8GHZ turbo speed. It runs an AMD Radeon VEGA 11 graphic card at up to 1.3GHz speed. A breakdown of the features of the V8 is provided in the image below.

 

Sequoia V8

The Sequoia V6, on the other hand, is based on the AMD Ryzen V1605B Dual Core processor with 2GHz and 3.2GHz turbo speed. The Sequoia V6 runs the AMD Radeon VEGA 8 Graphics card. Some of the features of the V6 are highlighted in the image below.

Sequoia V6

Comparing the features, it is clear that the most important difference between these two models is the difference in the type of processor and graphics card used. This may be significant when you have to select between the two versions, especially if the use case is one with computational complexities.

According to Simply NUC’s product page for each of the MiniComputers, when ordering with default configurations, the Sequoia v6 will cost $689 while the Sequoia V8 will cost as much as $849 however, the product page allows users to select different add-ons and modification which could take the cost of each of the models way beyond these estimates.

Simply NUC’s is promising users a 7 years of support for the boards which is a huge relief, as one of the biggest challenges users have is manufacturers terminating support for a project just a year after developing it.

More information on the Sequoia V8 and V6 can be found on Simply NUC’s Website. 

Boardcon’s EM-IMX8M-Mini SBC Comes With Lots Of Customization

Boardcon‘s new EM-IMX8M-MINI is based on NXP’s energy-efficient i.MX8M Mini ARM Cortex A53 processor. The iMX8M SBC has 2GB LPDDR4 and 8GB of eMMC flash with 2x USB 2.0, GbE. Display output is via MIPI LCD, PCIe. There is also optional support for SSD/4G. It runs Linux 4.14.98 and QT 5.0.

EM-IMX8M-MINI SBC and its SOM-IMX8M-MINI module is Boardcon’s first i.MX8 family of boards. NXP’s i.MX8M Mini SOC, which is built into the separately available SODIMM-style SOM-IMX8M-MINI module that powers the new EM-IMX8M-MINI SBC. This SOC has appeared on various compute modules, many of which like Ibase’s recent RM-N8MMI SMARC module, are available with a carrier board.

Although the SOM-IMX8M-MINI module is available with any of the 1.8GHz Cortex-A53 i.MX8M Mini models, the EM-IMX8M-MINI board is only available with the quad-core model at this moment. The Mini SoC stocks a 400MHz Cortex-M4 MCU as well as GCNanoUltra and Vivante GC320 graphics processors.

SOM-IMX8M-MINI module

The 67.6 x 34.3mm SOM-IMX8M-MINI module comes with 2GB LPDDR4, 8GB eMMC. And for wireless connectivity is has the module 802.11b/g/n and Bluetooth 4.0. The 5V module has a PMIC and it runs Linux 4.14.98 with Qt 5.10.

And for EM-IMX8M-MINI board(118.6 x 102.3mm), it has a MicroSD slot along with MIPI-DSI and CSI connectors, and analog and digital audio interfaces, including a Wolfson codec. There are 2x USB host ports, single micro-USB OTG port, single Nano-SIM, Ethernet, and UART RS-232 ports. There are also other I/O options like UART, I2C, RS485, CAN, GPIO, SPI, and JTAG. An M.2 slot supports an optional 4G module or SSD.

EM-IMX8M-MINI
EM-IMX8M-MINI detailed view

Specification Summary of the Boardcon EM-IMX8M-MINI:-

  • Processor: NXP i.MX8M Mini Quad (4x Cortex-A53 @ up to 1.8GHz);
  • GPU: GCNanoUltra for 3D, GC320 for 2D GPUs; Cortex-M4F @ 400MHz
  • Memory: 2GB LPDDR4 RAM; 8GB eMMC 5.1; QSPI NOR flash
  • Networking/wireless:
    • 10/100/1000 Ethernet port (Realtek RTL8211E)
    • 802.11n and Bluetooth 4.0 (via SOM-IMX8M-MINI and Ampak AP6236 modules)
    • 4G available on M.2 slot
  • Media I/O Options:
    • MIPI-DSI (4-lane) for up to 1920 x 1080p 60fps
    • MIPI-CSI (4-lane)
    • 3.5mm audio jack
    • Speaker header
    • Wolfson WM8960 audio codec
    • 5x SAI digital audio interfaces (8-bit RX and TX)
  • Other I/O:
    • 2x USB 2.0 host ports
    • Micro-USB OTG port
    • RS-232 DB9 port
    • 3x UARTs
    • RS-485
    • CAN
    • 26-pin header with 2x I2C, 6x GPIO, SPI
    • JTAG debug; separate debug for Cortex-M4
  • Expansion: M.2 E-key (PCIe 2.1) slot for 4G or SSD; nano-SIM slot, MicroSD slot
  • Power: 5V/3A DC input jack; ROHM BD71847 PMIC; power, power key, and reset switches
  • Operating System: Linux 4.14.98 BSP with Qt 5.0

Further information

The EM-IMX8M-MINI SBC and SOM-IMX8M-MINI module are available now on the product pages of Boardcon’s EM-IMX8M-MINI and SOM-IMX8M-MINI.

First mycusini 3D Choco printers are shipped already

The startup Print2Taste has kept its promise also in its second Kickstarter campaign. Several backers already received their 3D Choco printer. According to Print2Taste the project team did a great job – the shipment started even ahead of schedule.

mycusini is the first consumer 3D Choco printer which came up successfully on Kickstarter.

In terms of production quality and speed there is no difference to professional 3D food printers for 2.000 € and more. It is now regularly available at www.mycusini.com for 298 € only. Print2Taste guarantees delivery before Christmas.

The mycusini is reduced to the max, with only 19 x 19,5 x 27 cm it is smaller than most coffee machines and fits into every kitchen. It is powered by special 3D Choco refills provided by Print2Taste – success guaranteed.

Easy-to-make Choco text messages, more than 200 creative objects already on board and easy operation will ensure a maximum fun factor.

With its much higher printing speed than plastic, mycusini also brings benefits to schools and educational institutions.

www.mycusini.com

Portable Fine Dust PM10 Analyzer with Large OLED Digits

SDS011 Particulate matter Sensor

In one of our previous articles, we built a DIY air quality monitor which was based on measuring the amount of Hydrocarbon concentration in the air using the BME680 VOC Whisker. While things work quite well using that method, there are several other parameters and air constituents which also have the same devastating effect and may be present in the air, but not detected by the sensor used in our previous project. One of such easy to overlook, constituents of air is Particulate Matter, and for today’s tutorial, we will build a device to measure its concentration in air.

Particulate matter is the sum of all solid and liquid particles (many of which are hazardous) suspended in the air. It is a complex mixture of organic and inorganic particles, such as dust, pollen, soot, smoke, and liquid droplets. These particles are created mostly when fuel is burnt and when the dust is carried by the wind. They vary greatly in origin, composition, and size which is the most popular way of categorizing them with the PM10 and PM2.5 classification.

Portable Fine Dust PM10 Analyzer with Large OLED Digits – [Link]

Turn Your Smartphone to a DSLR with the Pictar Pro

Mobile photography is fast growing beyond a hobby or a way for people to capture important moments. Thanks to the week-on-week breakthroughs and improvements being made on the camera by the phone manufacturers, it is now becoming a mainstream method of documenting visual information, with both professionals (from Journalists to Magazine Photographers) and Semi-professionals (like YouTubers and Instagram influencers) relying on it as a way to create their video or picture contents. However, phones are made for the mass public, and thus lack some of the important features that standard professional camera’s come with, for quality video and pictures. Solving this and providing Smartphone users with the same controls, feel, and handling that comes with a professional camera was what led to the development of the Pictar Pro.

The Pictar Pro is a combined hardware and software (Mobile App) solution for smartphone photography. The Pictar Pro hardware is a smartphone attachment that enables users to add dozens of controls and features to the smartphone, bridging the gap between the Phone’s power and the usability of a professional camera. The hardware also provides a terrific user experience with a polished metal grip and an unmatched front-loaded intuitive user interface.

Pictar Pro

Some of the features of the hardware are highlighted in the image below;

Pictar Pro Features

Utilizing a seamless modern pairing connection technology, Pictar Pro pairs with your smartphone instantly via sound-waves, and becomes accessible by the Pictar Pro app with no physical or Bluetooth connection necessary.

The Pictar Pro Software (Mobile App) comes with several photography features to provide users with more control, information, and options on the output of each shot. The software allows users to select between 9 different preset modes.

Pictar Pro App

It also comes with additional features like white balance control and manual focus which gives users the ability to select which objects come into focus and which ones fall out of focus.  The app also adds DSLR features like Horizon Indicator which shows when your shot is leveled and a histogram feature which helps review the lighting details behind the shot.

Some of the other features of the Pictar Pro include;

  • Advanced digital zoom
  • Manual ISO
  • White Balance Control
  • Shutter Speed Control
  • Adjust Frame Rate
  • Video Stabilization

The Pictar Pro comes with several accessories to enhance the experience of users. It comes with;

  • A travel case which ensures the device is safe when moving it around.
  • Pictar Pro Viewfinder which is an unfold and pop 0n-screen for dark and focussed preview
  • Pictar Pro Wrist Wrap which allows users hold the device safely in hand.
  • Pictar Pro Neck Wrap. The neck wrap allows users to wear the smartphone around the neck, just like you will do a professional camera
  • Miggo Splat Flexible Tripod which comes in handy for users who need to shoot with the Pictar Pro on a standard.
Pictar Pro Accessories

When attached to Pictar Pro’s body, the foldable silicon viewfinder enables you to preview images and videos in full vivid detail- even under the brightest lights. Like when you’re outdoors on a sunny afternoon.

Migg0 concluded the fundraiser for the Pictar Pro on IndieGoGo a while back with the deliveries currently being made to backers, but the last chance perk was created recently to allow new backers on board with delivery prepped for January 2020. For the new perk, the Pictar Pro kit reward comes with a $169 price tag while the Pictar Pro + kit goes for $189.

More information on the Pictar Pro can be found on the crowdfunding page on IndieGoGo.

Widora Teases Compact Kendryte K210-Powered Binocular Facial Recognition Board

Widora, who has been one of the companies championing the development of open-source boards for IoT applications, with boards like the Widora AIR and the Widora Neo, recently announced the planned launch of  a new board; a RISC-V binocular facial recognition development board which according to the company’s post will be the smallest binocular facial recognition module yet.

Widora AIRV2

Based on the tweet which was posted a few weeks back, the board which will be called the FaceR will be based on the same BITK210 module on which the Widora AIRV2 board is based.  The company tweeted

“We “built” the smallest #K210 module, Also based on it made the #AIRV2 board, it is undoubtedly very beautiful, but also the king of cost-effective. Now, Starting today, we will introduce the current smallest volume binocular live face recognition module #faceR by the end of 2019″.

The tweet didn’t include any image or details of the new board, carrying the picture of the AIRV2 development board instead but it is safe to assume that the board might be designed with the same physical layout and maybe form factor as the AIRV2, with the GPIO header to the top,  the K210 module in the middle, and a micro-USB port for power, but I won’t be surprised if the Micro-USB port is swapped for a USB-C port instead as it seems to be the general direction to which recent boards are driven. Since the board is being said to be for binocular facial recognition, it is safe to imagine that space for cameras/camera connectors, will be created on the board which may mean swapping out one or both of the display ports.

The Kendryte K210 system-on-chip being proposed for the new board comes with a dual-core 64-bit RISC-V processor and accelerators for neural network and computer vision applications which makes it not only ideal for the board but also increases the desire for tinkerers like me to see the board in action leveraging its neural network capacities.

While information around the board is still very sketchy, Widora mentioned the board will be launched by the end of 2019, as such, it is probably justified to believe that more information around the board will surface in the next couple of weeks. To buttress this possibility, a look through Widora’s website shows that space has already been allocated to house the product’s description on the website, which means, we should be seeing some entry there soon.

Computer Vision application is beginning to find a foothold in every facet of our lives, with facial recognition getting more popular by the day. if no other thing, the tease by Widora has shown that capable, dedicated open-source development board for its implementation either on a DIY/Maker, or professional level is on the way.  Start getting your ideas together!

OtterPill Is a Nano-Compatible STM32 Board with USB-PD

STM32 was one of the names that were almost driven into oblivion, no thanks to the Arduino Revolution, but the name was brought back into the limelight when the STM32 Blue Pill was released. With its compatibility with the Arduino IDE via the STM32duino support package and its breadboard friendly form factor, it was a new beginning for STM32 and things have not slowed down with several other boards like the Black Pill sharing the spotlights with several other developments board. However, things took a further upswing recently when Jan Henrik decided to take things further and create a better board. The result of this voyage by Jan is the OtterPill.

OtterPill (left and center), Arduino Nano (right)

The Otterpill is a 32-bit development board is based on the ARM Cortex Mo Core-based, STM32F072 microcontroller, and it comes in a form factor similar to that of the Arduino Nano with a pin-out that corresponds to that of the Arduino Nano where possible. For instance, the power special purpose pins like the I2C lines, UART and SPI pins, along with power and ground on the OtterPill, are located on the same spot/pins as the Arduino Nano.

The OtterPill sports a USB-C port like most recent development boards and like the Blue Pill, it can also be programmed using the Arduino IDE.  As similar to the OtterPill is to the Bluepill, a few differences however exist starting from allowing users to reprogram the board through the DFU mode, using the dfu-util utility to flash the board. The Otterpill also comes with a USB Power Delivery (USB-PD) physical interface chip which makes it possible to power the board and connected peripherals/components with up to 20V supply voltage. In place of the USB-PD PHY chip, users can decide to power the board by using resistors to force a USB-C supply to provide 5volts and up to 3amps.

While this may change in the near feature, for now, the OtterPill is not available for sale anywhere but the design files, which were created using Kicad, are open-source and are available on the project’s Github page, so you download them make your own version of the board. The Github Repo also contains example firmware and documentation for the project.

Portable Fine Dust PM10 Analyzer with Large OLED Digits

In one of our previous articles, we built a DIY air quality monitor which was based on measuring the amount of Hydrocarbon concentration in the air using the BME680 VOC Whisker. While things work quite well using that method, there are several other parameters and air constituents which also have the same devastating effect and may be present in the air, but not detected by the sensor used in our previous project. One of such easy to overlook, constituents of air is Particulate Matter, and for today’s tutorial, we will build a device to measure its concentration in air.

Particulate matter is the sum of all solid and liquid particles (many of which are hazardous) suspended in the air. It is a complex mixture of organic and inorganic particles, such as dust, pollen, soot, smoke, and liquid droplets. These particles are created mostly when fuel is burnt and when the dust is carried by the wind. They vary greatly in origin, composition, and size which is the most popular way of categorizing them with the PM10 and PM2.5 classification.

SDS011 Particulate matter Sensor

For today’s tutorial, we will build a device capable of determining the amount of particulate matter in the air around it. The device will be capable of monitoring PM10 and PM2.5 grade particles and display results on an OLED Display. The value displayed can be used in advising the users to wear a face mask or adopt other ways to protect themselves from polluted air.

While there are several projects on the internet measuring particulate matter, today’s project will be chronicling the efforts of  user “plouc68000″ due to the low power features implemented which enabled the use of batteries in powering the device. The PM10 Dust Analyzer built by “plouc68000” is based on the Nova PM sensor: SDS011 combined with an I2C OLED on which the measurements are displayed in big digits so it is clear and easy to read.

At the end of this tutorial, you would know how to work with the Nova PM Sensor, the I2C OLED Display and also build your own air quality monitor.

Required Components

The following components are required to build this project:

  1. Arduino Uno
  2. Nova PM Sensor SDS011
  3. Graphic OLED 128×64
  4. Jumper wires
  5. Breadboard

The exact components used for the tutorial can be bought from the links attached to them.

Schematics

The schematics for this project is quite straightforward. The OLED display is connected to the Uno via the I2C pins (A4 and A5) while the output pin of the NOVA PM sensor is connected to a digital pin on the Uno. For the sake of this project, it was connected to pin D2 on the UNO.

The schematics showing how the components are connected is provided in the image below.

Schematics

To make the connection even easier to follow, a pin to pin map showing how the components connect to the Arduino is provided below:

Arduino  – OLED

5V - VCC
A4 - SDA
A5 - SCL
GND - GND

Arduino – SDS011

GND - GND
5V - VCC
D2 - Dout

Code

As mentioned during the introduction, our goal for today’s project is simple and the code, straightforward. We analyze the Particulate Matter content of the air around us using the SDS011 PM sensor and display the value obtained on the OLED display.

To achieve this, we will develop the code using the Arduino IDE. This means the code will be in the familiar Arduino version of the  C/C++ programming language.

To reduce the work involved in developing the code for the project, we will use two major libraries including; The U8glib and the Software Serial library. The Software Serial library is used to interact with the SDS011 sensor while the U8glib library is used to interact with the OLED display. While the Software Serial library comes preinstalled on the IDE, the U8glib can be downloaded and manually installed via the attached link.

As usual, I will do a quick explanation of some snippets/parts of the code which I feel may be slightly difficult to follow. We start the sketch, like always, by including all the libraries that we will be using. They are essentially the same as the ones mentioned above.

#include "SoftwareSerial.h"
#include "U8glib.h"

Next, we create an object of both libraries along with some global variables that will hold readings for PM10 and PM2.5.

SoftwareSerial mySerial(2, 3); // RX, TX for SDS011 sensor ( to keep Serial monitor available )
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // for 1306 type OLED, I2C / TWI

// Global Variables
static unsigned char buf[7], buffSDS[25];
unsigned int PM2_5,PM10=0;

Next, we create two(2) functions/Subroutines. The first one is the void draw() function which is used in displaying all kinds of data on the OLED, while the second is the Val_to_string() function which is used to convert “int” into buf[] to BCD string so it can be displayed on the OLED.

// Sub Routines

// Update OLED Display
void draw(void) {
  /* for the line with PM2.5 value */
  if ( PM2_5>999 ) PM2_5=999 ;// overflow is 999
  val_to_string(PM2_5); 
  
  u8g.setFont(u8g_font_fub30);// Large font
  u8g.drawStr( 0, 31, buf); // 
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 75, 10, "PM2.5");
  buf[0]='µ';
  buf[1] = '\0';
  u8g.drawStr( 75, 10+2+10, buf); 
  u8g.drawStr( 82, 10+2+10, "g/m3"); 
  
  // for the line with PM10 value
  if ( PM10>999 ) PM10=999 ;// overflow
  val_to_string(PM10); 
  
  u8g.setFont(u8g_font_fub30);// Large font
  u8g.drawStr( 0, 65, buf); // 
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 75, 34+10, "PM10");
  buf[0]='µ';
  buf[1] = '\0';
  u8g.drawStr( 75, 34+10+2+10, buf);
  u8g.drawStr( 82, 34+10+2+10, "g/m3");  
}


/* convert int into buf[] to BCD string to be OLED printed */
void val_to_string(int val){

  int deca[5];
  deca[4]=10000;
  deca[3]=1000;
  deca[2]=100;
  deca[1]=10;
  deca[0]=1;

  char digit[10];
  digit[0]='0';
  digit[1]='1';
  digit[2]='2';
  digit[3]='3';
  digit[4]='4';
  digit[5]='5';
  digit[6]='6';
  digit[7]='7';
  digit[8]='8';
  digit[9]='9';

  buf[0]='0';
  buf[1]='0';
  buf[2]='0';
  buf[3]='\0'; // string terminator, only 3 digits needed
  buf[4]='0';
  buf[5] = '\0'; // not used

  for ( int8_t i=2; i>=0 ; i=i-1 )
  {
    byte d=0;
    while (( val-deca[i]) >= 0)
    { val=val-deca[i];
      buf[2-i]=digit[++d];
    }
  }  
}

With the functions in place, we now proceed to the void Setup() function. We start the function by setting the color index to a single color (monochrome) to aid the clarity with which the data is displayed.

void setup() {
// init 1306 I2C OLED 
 u8g.setColorIndex(1); // monochrome

Next, we, initialize serial communication between the Uno and the SDS011, setting its timeout and stop bytes.

// Read SDS011 on Serial 
mySerial.begin(9600);  // 
mySerial.setTimeout(200);
mySerial.readBytesUntil(0xAB,buffSDS,20); // read serial until 0xAB Char received

We wrap up the function by initializing the hardware serial communication to enable us to use the serial monitor for debugging purposes.

// Serial Monitor
Serial.begin(115200);  
}

With that done, we move to the void loop function.

We start the loop function displaying the first page which is meant to serve as a home screen.

void loop() {
 // LCD Update
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );

Next, we read the SDS011 and print the data read on the serial monitor.

// Read SDS011
mySerial.readBytesUntil(0xAB,buffSDS,20);

// Serial monitor, print the HEX bytes received in buffSDS
//Serial.write(buffSDS,10);
for ( int8_t i=0; i<10 ; i=i+1 )
  {
  Serial.print( buffSDS[i],HEX);
  Serial.print(" ");
  }
Serial.println("");

The level of PM 2.5 present in the air is then obtained and the same is done for the PM10. The values obtained are then displayed on the serial monitor and the OLED. A small delay is added at the end of the code to ensure stability in readings.

PM2_5 = ((buffSDS[3]*256)+buffSDS[2])/10; // extract PM2.5 value
Serial.print("PM2.5: ");
Serial.println(PM2_5);

PM10 = ((buffSDS[5]*256)+buffSDS[4])/10; // extract PM10 value
Serial.print("PM10: ");
Serial.println(PM10);

delay(500);
}

With that done. we are ready to upload the code and test things out.

The complete code for the project is available below and also attached under the download section.

// UNO version of PM10 Analyser
#include "SoftwareSerial.h"
#include "U8glib.h"

SoftwareSerial mySerial(2, 3); // RX, TX for SDS011 sensor ( to keep Serial monitor available )
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);  // for 1306 type OLED, I2C / TWI

// Global Variables
static unsigned char buf[7], buffSDS[25];
unsigned int PM2_5,PM10=0;

// Sub Routines

// Update OLED Display
void draw(void) {
  /* for the line with PM2.5 value */
  if ( PM2_5>999 ) PM2_5=999 ;// overflow is 999
  val_to_string(PM2_5); 
  
  u8g.setFont(u8g_font_fub30);// Large font
  u8g.drawStr( 0, 31, buf); // 
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 75, 10, "PM2.5");
  buf[0]='µ';
  buf[1] = '\0';
  u8g.drawStr( 75, 10+2+10, buf); 
  u8g.drawStr( 82, 10+2+10, "g/m3"); 
  
  // for the line with PM10 value
  if ( PM10>999 ) PM10=999 ;// overflow
  val_to_string(PM10); 
  
  u8g.setFont(u8g_font_fub30);// Large font
  u8g.drawStr( 0, 65, buf); // 
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 75, 34+10, "PM10");
  buf[0]='µ';
  buf[1] = '\0';
  u8g.drawStr( 75, 34+10+2+10, buf);
  u8g.drawStr( 82, 34+10+2+10, "g/m3");  
}


/* convert int into buf[] to BCD string to be OLED printed */
void val_to_string(int val){

  int deca[5];
  deca[4]=10000;
  deca[3]=1000;
  deca[2]=100;
  deca[1]=10;
  deca[0]=1;

  char digit[10];
  digit[0]='0';
  digit[1]='1';
  digit[2]='2';
  digit[3]='3';
  digit[4]='4';
  digit[5]='5';
  digit[6]='6';
  digit[7]='7';
  digit[8]='8';
  digit[9]='9';

  buf[0]='0';
  buf[1]='0';
  buf[2]='0';
  buf[3]='\0'; // string terminator, only 3 digits needed
  buf[4]='0';
  buf[5] = '\0'; // not used

  for ( int8_t i=2; i>=0 ; i=i-1 )
  {
    byte d=0;
    while (( val-deca[i]) >= 0)
    { val=val-deca[i];
      buf[2-i]=digit[++d];
    }
  }  
}


void setup() {
  // put your setup code here, to run once:

// init 1306 I2C OLED 
 u8g.setColorIndex(1); // monochrome  
 
// Read SDS011 on Serial 
mySerial.begin(9600);  // 
mySerial.setTimeout(200);
mySerial.readBytesUntil(0xAB,buffSDS,20); // read serial until 0xAB Char received

// Serial Monitor
Serial.begin(115200);  
}


void loop() {
 // LCD Update
  u8g.firstPage();  
  do {
    draw();
  } while( u8g.nextPage() );

// Read SDS011
mySerial.readBytesUntil(0xAB,buffSDS,20);

// Serial monitor, print the HEX bytes received in buffSDS
//Serial.write(buffSDS,10);
for ( int8_t i=0; i<10 ; i=i+1 )
  {
  Serial.print( buffSDS[i],HEX);
  Serial.print(" ");
  }
Serial.println("");

  
PM2_5 = ((buffSDS[3]*256)+buffSDS[2])/10; // extract PM2.5 value
Serial.print("PM2.5: ");
Serial.println(PM2_5);

PM10 = ((buffSDS[5]*256)+buffSDS[4])/10; // extract PM10 value
Serial.print("PM10: ");
Serial.println(PM10);

delay(500);
}

Demo

Launch an instance of the Arduino IDE, copy the code above and paste it in the IDE. Connect your Arduino Uno or any other board you decide to use, select the appropriate board type and port, then hit the upload button.

With the upload completed, you can test the project by bringing something with dust close to the device’s air intake or take the device to a dusty environment. After a few minutes, you should see the value  PM10 and PM 2.5 values being displayed on the OLED display, rise in proportion to the amount of dust discovered by the device as shown in the image below.

Demo

Going Forward

An obvious, super cool, next step will be to merge this project with the last project which measures the concentration of hydrocarbons in the air. Combining these two will provide a wider and more accurate base for us to measure the air quality index. The data can also be connected to the cloud to share the data with others, transforming the project into an IoT endeavor.

That’s it for this tutorial. As usual, feel free to reach out to me via the comment section with questions as regards the project. A video of the project in action as created by plouc68000 is available on youtube.

SFM4300 – Mass Flow Meter for Sensitive Gas Mixture Measurement at Low Flow Rates

The mass flow meter SFM4300 features improved sensitivity and precision, even for low flow rates.

The small, compact sensor is calibrated for air, O2 and N2O gases and – in contrast to its predecessor, the mass flow meter SFM4100 – it can also be used to monitor gas mixing. With a zero-point accuracy of 0.005 slm for a total range of up to 20 slm, the SFM4300 enables precise adjustment of the concentration in a wide selection of mixtures. The sensor unit has an I²C interface and produces a fully calibrated and temperature-compensated output signal. The mass flow sensor can be used for both medical and industrial gas mixing, fuel cells and for other OEM applications.

Features

  • Compact
  • High precision and sensitivity (esp. for low flow rates)
  • Flow range: 0 to 20 slm
  • Very pressure-resistant (up to 6 bar)
  • Multigas option: O2, air, NO2 (other calibrations on request)
  • Fully calibrated and temperature-compensated
  • Digital I²C interface
  • Mechanical connections: downmount, Legris, O-rings

Applications

  • Medical gas mixing: anesthesia, vaporizers
  • Industrial gas mixing: welding applications
  • Fuel cells
  • OEM applications

Flow Sensors for Gas Mixing in Respiratory Devices

In addition to inspiratory, expiratory and proximal flow measurement, Sensirion offers sensor solutions for gas mixing applications. These sensors are mainly used in anesthesia machines and are usually integrated into the overall machine. If we want to guarantee the patient’s safety while taking accurate, reproducible readings, we need the flow sensors in the machine to be stable and reliable – throughout the machine’s service life.  Therefore, the Sensirion SFM4000 series is the ideal solution. It is is devided in two sensors: SFM4300 and SFM4200. The SFM4300 sensor can operate at pressures of up to 6 bar, store multiple gas calibrations and even perform self-testing while in use. Where safety and reliability are concerned, the SFM4300 is the preferred choice. The SFM4200 sensor is highly resistant to pressure, it guarantees reliable measurements at surges of up to 8 bar. Its signal processing time is 0.5 ms, making it incredibly fast and accurate. Customers also benefit from an expanded measurement range of up to 160 liters per Minute.

For information about the SFM4300 visit the product page on the official website of Sensirion.

2.42″ 128×64 Yellow Graphic OLED Display Module

DM-OLED24-659 is a 2.42″ 128×64 Yellow Graphic OLED Display Module with support for SPI, I2C

Main features

  • 2.42″
  • 128 X 64 Pixel
  • CPU Interface: MCU、4-Wire SPI、I2C
  • Drive IC: SSD1309
  • Display Colors: Monochrome(Yellow)
  • Display Mode: Passive Matrix OLED

The module can be purchased online at www.displaymodule.com for 29.99 USD

TOP PCB Companies