Linear Lab Power Supply with digital meter

@ instructables.com build a nice power supply for his lab. He writes:

From my point of view one of the best ways to get started in electronics is to build your own laboratory power supply. In this instructable I have tried to collect all the necessary steps so that anyone can construct his own.

All the parts of the assembly are directly orderable in digikey, ebay, amazon or aliexpress except the meter circuit. I made a custom meter circuit shield for Arduino able to measure up to 36V – 4A, with a resolution of 10mV – 1mA that can be used for other projects also.

Linear Lab Power Supply with digital meter – [Link]

Real Time Clock On 20×4 I2C LCD Display with Arduino

Sometimes it may be necessary to use a display while making a hardware project, but the size and the type of the display may vary according to the application. In a previous project, we used a 0.96″ I2C OLED display, and in this project we will have an I2C 20×4 character display.

This tutorial will describe how to use 20 x 4 LCD display with Arduino to print a real-time clock and date.

Real Time Clock On 20×4 I2C LCD Display with Arduino – [Link]

YouTube Subscriber Counter with Wemos D1 mini

educ8s.tv @ youtube.com uploaded a new tutorial. Nick writes:

Today we are going to build a DIY YouTube subscriber counter with a big LCD display and a 3D printed enclosure

YouTube Subscriber Counter with Wemos D1 mini – [Link]

Panelization – using GerberPanelizer on Windows

Arsenijs over at Hackaday.io explains how to panelize PCBs using GerberPanelizer on Windows. He writes:

This tutorial was done on Windows. Authors claim it could also be used on Linux by using Mono, but I haven’t tried and don’t understand a lot about Mono to see what could be done. I am switching to Linux nowadays, so I’d be very grateful to anybody that’d make instructions on how to launch it, however – and I’m sure other fellow Linux-wielding engineers will be grateful, too =)
This is the GitHub issue describing steps to launch it on Linux, half-successfully (thanks to @jlbrian7 for figuring this out

Panelization – using GerberPanelizer on Windows – [Link]

Drag soldering SMD parts with a flux pen

This video shows how to drag solder SMD parts with a high density package (in this video a Xilinx XC9572XL with VQFP 64 pin package is used).

Drag soldering SMD parts with a flux pen [Link]

Artificial Magnetic Fields For Photons

Photons became a hot research topic due to their important role in holding data across long distances. Starting from the fact that photons are insensitive to magnetic fields which concludes to their disability to process data, a group of researchers from the ETH (Eidgenössische Technische Hochschule) in Zürich are trying to make photons controlled with electric fields by giving them some electrical charge.

Visualisations: Colourbox / Montage Josef Kuster)

Photons or Polaritons?

They are using polaritons in their approach to build this artificial magnetic field. Polaritons are hybrid particles consist of coupling a photon with an electric dipole. When photons enter a material, the electrons allow themselves to be moved by the light waves or ‘polarize’, they form polaritons – coupled light and polarization waves, or excitons. Meaning that they could convert photons  into polaritons. Packing excitons with them as a luggage, we can now steer polaritons  indirectly by the magnetic fields.

“The combined effect of magnetic and electric fields on polaritons then leads to a gauge potential”, says Hyang-Tag Lim, a post-doctoral researcher in Imamoğlu’s laboratory.

Researches are comparing the gauge potential to a tiltable lifting platform. For example, when trying to lift a vehicle, the potential energy will change, but the vehicle won’t move. However, once we tilt the platform, a difference in height along the platform happens and the vehicle will move. Thus, a gauge potential will result in an effective magnetic field only if it varies in space.

The researchers are now looking for ways to strengthen gauge potentials. Researchers had published this researchers in the scientific journal Nature Communications, you can have a look at the research here.

Source: ETH Zurich

Fiducial Marks in PCBs – What they are?

In the past, I’ve  always seen small circuits of copper with no silk screen or solder mask on top of it and as a PCB designer I have always the question in my mind: What is it for? — I’ve never needed them before!

As I can find them in Arduino’s PCBs as well, I decided to open the design file and investigate more about these marks. They are called: Fiducial marks.

Fiducial Mark in Arduino UNO PCB. Original Image Courtesy of reichelt

Fiducial Mark is a circuit solder mask with a round bare copper in the center. The copper diameter is smaller than the solder mask. As the name may imply; these marks are used by assembling machines as points of reference, and they should be placed in any PCB side that has SMD components.

No restrict rule about  how many or where theses marks should be placed. But according to the reference, it’s good to position two fiducial marks on opposite corners of the PCB, and it’s advisable to put a mark near the packages with small pitch like BGA, QFN and QFP.

Image Courtesy of pcb-3d

When it comes to size of fiducial marks, it depends on the used assembly machine. The mark dimensions could be 3.2mm of solder mask opening diameter and 1.6mm diameter of bare copper or 2mm of solder mask opening diameter and 1mm diameter of bare copper.

Image Courtesy of Ladyada

I found a video on Youtube showing how Fiducial Marks are recognized in a PnP (Pick and Place) machine.

Also, I found that Ladyada made a short blog post on the problems you may face using Fiducial Marks recognition in PnPs.

Build mobile & IoT apps without hardware or firmware development

Graham Prophet discuss about Nordic Semiconductor’s nRF52832 Bluetooth low energy System-on-Chip (SoC).

Based on Nordic Semiconductor’s nRF52832 Bluetooth low energy System-on-Chip (SoC), this development kit incorporates nine different sensors plus a microphone and speaker, and enables app developers to configure, test, and demonstrate Bluetooth low energy IoT devices linked to mobile apps and Cloud platforms without needing RF firmware coding skills or development tools

Build mobile & IoT apps without hardware or firmware development – [Link]

See What Technologies 700 IoT Developers are Using in 2017

Taking a look at what other people do in a certain aspect can give you an insight and an indicator in your own journey. Maybe IoT is one of the cutting edge technologies with rapid changes year after year, if not month after month.

About 700 developers answered Eclipse foundation IoT developer survey. The survey covers a lot of topics:

  • Key IoT concerns.
  • Top IoT programming languages.
  • Top IoT Operating Systems and Distros.
  • Cloud platforms for IoT.
  • Growth of new connectivity technologies.
  • Key Trends.

According the the survey, security is the main concern for IoT developers in terms of data encryption and communication security.

Middleware, home automation, industrial automation, smart cities, energy management, building automation, agriculture, healthcare, automotive and transportation are the top 10 in IoT industry.

Regarding the language used by the majority of developers to build IoT solutions, C is still dominant in constrained devices followed by C++, and Java for gateway devices followed by Python.

according to the survey, constrained devices mostly have ARM Cortex M3 or M0 while Intel X86_64 and ARM Cortex v7-A are for gateway devices.

When it comes to IoT web platforms, Java, Javascript, Node.js, Python and PHP are the top five languages.

Speaking about operating systems, some of the developers use bare-metal approach; they don’t use any OS or RTOS, while most of the others use Linux. It worth to mention that the new RTOS Zephyr seems to be adopted by some developers.

Last but not least, IoT messaging protocols is an important part of IoT development and it seems that HTTP, MQTT, CoAP, in-house (proprietary) and HTTP/2 are the top 5 messaging protocols in the survey.

The full version of the survey is available on Sildshare. Similar survey was made in 2015 and 2016.

Source: cnx-software

Lightweight GSM Mobile With Arduino UNO and Nextion Display

Avishek Hardin at Arduino Project Hub designed a lightweight mobile using a GSM module, an Arduino UNO, and a Nextion touch screen display. The lightweight mobile has the following features:

  • Make calls
  • Receive calls
  • Send SMS
  • Receive SMS
  • Delete SMS

In this project, he uses a GSM SIM900A module to establish the cellular communication. The GSM SIM900A is an all-in-one cellular module that lets you add voice, SMS, and data to embedded projects. It works on frequencies 900/1800MHz and uses the RS232 standard to communicate with MCUs. Baud rate of this module is adjustable from 9600 to 115200 through specific AT Commands.

This GSM mobile features a Nextion touch display to take input from the user and visualize the GUI. Its easy-to-use configuration software (Nextion Editor) allows you to design your own interfaces using GUI commands. All GUI data is stored in Nextion display instead of the master MCU. Thus, lots of program space in MCUs can be saved efficiently and it makes the development procedure effortless. The Nextion displays communicate with microcontrollers over UART which is supported by a wide range of MCUs.

Required Parts

Required pats for this project
Required parts for this project

Required Tools

Connection

Connect the Nextion display and the GSM module with your Arduino using following instructions:

  • Nextion +5V to Arduino VDD_5v.
  • Nextion RX to Arduino pin 11
  • Nextion Tx to Arduino pin 10
  • Nextion GND to Arduino GND_0v.
  • GSM Rx to Arduino pin 1
  • GSM TX to Arduino pin 0
  • GSM GND to Arduino GND_0v.
Wiring Diagram
Wiring Diagram of Arduino-based GSM mobile

Program The Nextion Display

First of all, you need to design an HMI file using Nextion Editor. This editor allows you to design the interfaces using plug-and-play components like text, button, progress bar, pictures, gauge, checkbox, radio box, and much more. You can set codes and properties for each of these components later.

Design GUI using Nextion Editor
Design GUI using Nextion Editor

In this project, 8 different pages are used to design the GUI. All the icons used are easily available on the internet. Icons are resized and modified using an open source tool paint.net. Touch events like press and release are also covered when components are touched. More information on Nextion display commands can be found on this wiki page.

Designing dial pad using Nextion Editor
Designing dial pad using Nextion Editor

Steps To Upload

  • Load the .HMI file into the editor. Link to the Github repository is here.
  • Compile the .HMI file (just under the menu bar).
  • Go to File > Open build folder > Copy the .tft file > Paste into SD card. Note: make sure the SD card is formatted to FAT32.
  • Once copied, insert the SD card into the Nextion display and then turn the power on.
  • Wait for the .tft to upload.
  • Power off the Nextion, securely remove the SD card and then again power on the display.
  • Now you should see your new interfaces on the Nextion Display.

Program The Arduino

The Arduino is the brain of this project. It takes input from the Nextion display, sends commands to GSM module to create the cellular connection, and shows information on the display. This project does not use any Nextion library due to lack of documentations and difficulties to understand. Moving on without using libraries seems tough but it is really not.

The code can be found on the Github repositorySimply download it and upload to the Arduino board using the Arduino IDE. If you are using some other board than Arduino UNO, then don’t forget to select that specific board in Arduino IDE before uploading.

Editing the Arduino sketch
Editing the Arduino sketch
compile and upload the sketch using Arduino IDE
compile and upload the sketch using Arduino IDE

Open the Serial Monitor, you should see the AT command log for each event triggered from the Nextion Display.

Serial Monitor shows the AT command log
Serial Monitor shows the AT command log

Important Note

By default, the GSM module has an SMS buffer size of 20. Unfortunately, this Arduino-based mobile cannot display all the 20 messages at once on the Nextion display as it gives a buffer overflow while compiling the Nextion code. Hence, the Nextion display is programmed to show maximum 10 messages at once. If 10 or more SMS are present on the GSM buffer, the Low memory warning icon will be displayed on the Nextion display.

SMS log showing received messages on Nextion display
SMS log showing received messages on Nextion display

Video

Watch the demonstration video to understand how this Arduino-based lightweight GSMmobile works.