XOD, Visual Coding For Microcontrollers

XOD is a new visual programming language for microcontrollers launched now. Pronounced [ksəud], this programming language idea was inspired by vvvv,  a hybrid visual/textual live-programming environment for easy prototyping and development which is designed to facilitate the handling of large media environments with physical interfaces, real-time motion graphics, audio and video that can interact with many users simultaneously.

Like Code, But Better

The basic unit of this language called node, a block that represents either some physical device like a sensor, motor, or relay, or some operation such as addition, comparison, or text concatenation. Each node has its inputs, outputs, and a function. Once you link the nodes together you will define a behavior. XOD will protect you from creating programs don’t compile, by making sure all nodes linked will give the behavior desired.

If it links, it’s likely going to work“.

Fortunately, you won’t need Firmata or another controller PC to export the code that suits your platform. XOD will export for you the needed native code and run it directly. It is already compatible with Arduino, Raspberry Pi and other popular development boards.

XOD gives you the possibility to build your own nodes by merging some nodes together, making it simpler and faster. You can share these nodes with the community and search for trendy ones too once the platform is live.

XOD includes plenty of nodes in their platform. The team believes they are good enough to start your projects just like normal programming!

27 days left for Alpha version although you can still get early access to the XOD private alpha by signing up at www.xod.io!

Sound to RC Servo Driver

This project is designed for Animatronics and Puppeteer applications, however it can be used in other applications like sound responsive toys, robots etc. Especially this project helps to move the jaw or mouth of animatronics creature.

The project moves RC servo once receives any kind of sound.  Rotation angle depends on sound level, more the sound level more the movement. Movement of the servo is proportional to sound level.

Circuit has 4 channel servo drivers, First channel is driven by sound, and rest 3 RC servos controlled by on board trimmer potentiometer, these 3 channels helps to drive other movement of animatronics figure.

Sound Received by microphone is convered to DC voltage, PIC16F72 microcontroller converts DC voltage into RC PWM signal. Circuits works with 6V DC , advisable to use battery for low jitter.

Sound to RC Servo Driver – [Link]

Embedded Cryptography For Internet Of Things Security

As Internet of Things (IoT) devices are optimized for lower power consumption and affordability, most of them have poor computing resources. As consequence, these devices are more vulnerable to hacking attacks. The good news is there are several options for using cryptography to make it difficult for hackers to gain access to IoT devices of your smart connected home.

Cheap IoT devices that have little protection or no protection at all can be hacked to flood websites with high traffic and shut the servers down. As “things” are increasingly getting connected to the “internet”, chances are that hackers may have the water or electricity shut off, security system disabled, and even worse – they can cause loss of human life by attacking medical devices.

So, what is the solution? Well, the answer is, “Authentication and Encryption using embedded cryptography”. Now we shall discuss these methods of securing IoT devices from cyber attacks.

Secured Internet Of Things
Secured Internet Of Things


For the IoT, authentication works in both directions. An IoT device ensures that it is interacting with an authorized gateway and cloud service, and the cloud service (remote server), in turn, verifies it is working with an authentic IoT node. Only when both the sender and the receiver are sure that they’re dealing with “real” client/server, they proceed further and exchange confidential information. This authentication is done by using a hashing algorithm and shared secret keys to generate a tag known as a message authentication code (MAC). This MAC address is compared with a locally stored address.

Now, it’s clear that effectiveness of the authentication process depends on the strength of the MAC, and the MAC address itself depends on the strength of the hashing algorithm, the length of the key used, and whether the key is shared secretly and stored securely. The current state-of-the-art hashing algorithm for cryptographic purposes is SHA-256 with 256-bit keys. That means if the key is unknown, it will take 2^256 attempts to crack it.

The generated key must be shared over a secure channel to prohibit hackers from cracking it by sniffing the packets. The key can also be shared over an insecure channel using Diffie–Hellman key exchange method. Another important task is to store the key securely. It’s highly recommended not to store the key in the same place along with other application data.


AES is the accepted encryption method to encrypt and decrypt messages using digital keys. Symmetric key cryptography uses the same key to encrypt and decrypt the message. So it’s vital to keep the key secret. Asymmetric key cryptography uses the combination of a shared, public key and a private key which is kept secret locally. Asymmetric key cryptography is more useful and safer to use over insecure channels. But, this method is too much computationally expensive. That means it requires more computing resources to deal with asymmetric key cryptography.

Symmetric key encryption
Symmetric key encryption

A typical IoT device may not have enough computational strength to encrypt and decrypt all the data with asymmetric key cryptography. Rather this method can be used to create a secure channel only for sharing symmetric keys that encrypt/decrypt all messages.

To make the data exchange more secure, dedicated authentication chips and cryptographic co-processors can be used. This technique makes embedded systems more power efficient and in the long run, it’s the best thing to do.

Household Power Consumption IoT Meter with Anti-theft Feature

BSP Embed published a video demonstrating a new project to build a connected device to measure the power consumption of household instruments.

The presenter relied in his project on the feature of having a blinking led in modern power meters where each blink means that 1 KWh is consumed.

The device features the following:


The concept behind this project is straightforward. A wire from the blinking LED of the power meter is connected to an interrupt pin from ESP8266 to count blinks (KWh) and then upload it to ThingsSpeak IoT platform to present data live online and to analyze it later.

To detect tampering, he used ACS712 AC current sensor module and connected its output (analog output) to an ADC input from ESP8266; If data from the sensor shows power consumption while no blinking form the LED is detected then a theft warning status will be issued.

The firmware, written in Arduino C, can be downloaded from Github.

Source: Embedded Lab

Control Your Raspberry Pi Remotely

Sometimes while building a Raspberry Pi based project, it may be difficult to connect a screen, mouse and keyboard each time you want to edit something. If the Raspberry Pi is connected to a network, then running a remote desktop on it could be a good solution.

Remote Desktop Protocol (RDP) is a proprietary protocol developed by Microsoft, which provides a user with a graphical interface to connect to another computer over a network connection. In this article, you will find three different methods to run remote desktop on your Raspberry Pi.

Method 1: Using TeamViewer

TeamViewer is a proprietary computer software package for remote control, desktop sharing, online meetings, web conferencing and file transfer between computers.  It is available for Microsoft Windows, Mac OS X, Linux, Chrome OS, iOS, Android, Windows RT, Windows Phone 8 and BlackBerry operating systems. It is also possible to access a machine running TeamViewer with a web browser.

ARM-based devices such as Raspberry Pi don’t have a TeamViewer version, but there is still a way to run it using ExaGear Desktop. It allows you to run Intel x86 application on ARM-based Mini PC.

Follow these steps to install and use TeamViewer on your Raspberry Pi:

  1. Get you copy of ExaGear Desktop and install it. You can order it through the official website for $27 for Raspberry Pi 2 and $33 for Raspberry Pi 3.
  2. Enter the guest x86 system using the following command:

    $ exagear
    Starting the shell in the guest image /opt/exagear/images/debian-8-wine2g
  3. Download and install TeamViewer

    $ sudo apt-get update
    $ sudo apt-get install wget
    $ wget http://download.teamviewer.com/download/teamviewer_i386.deb
    $ sudo dpkg -i teamviewer_i386.deb
    $ sudo apt-get install -f
    $ wget http://s3.amazonaws.com/wine1.6-2g-2g/wine1.6-2g-2g.tar.gz
    $ tar -xzvf wine1.6-2g-2g.tar.gz
    $ sudo ./teamviewer-fix-2g.sh
  4. Run TeamViewer from Raspberry Pi start menu, and setup static password for remote connection. Go to connection menu, select setup unattended access and enter a name for your Raspberry and a password. Once you are finished your Raspberry Pi ID will appear.
  5. Now download and install TeamViewer on your desktop and run it from start menu. Enter the Raspberry Pi ID in the “Partner ID” field and press connect button. A pop-up window will ask you for the password. Enter it and the remote session will open in a new window.

Method 2: Using VNC

Virtual Network Computing (VNC) is a graphical desktop sharing system that uses the Remote Frame Buffer protocol (RFB) to remotely control another computer. It transmits the keyboard and mouse events from one computer to another, relaying the graphical screen updates back in the other direction, over a network.

You can install VNC directly on your Raspberry without any additional software, follow these steps to install and prepare VNC:

  1. Install VNC server on Raspberry using this command:

    $ sudo apt-get install tightvncserver'
  2. Start VNC server by typing “$ vncserver” on the terminal. At the first start it will ask you to enter a password which will be used to access Raspberry Pi remotely.
  3. Get and save your Raspberry Pi IP address using this command

    $ sudo ifconfig

    and search for string like this (inet addr:

  4. Now download and install a VNC client program on your desktop, such as TightVNC.
  5. Run TightVNC Client from the start menu. In Remote Host field enter: IP address of Raspberry, colon, 1. It should be like this ‘’ and press Connect. You are now connected to your Raspberry Pi.

Method 3: Using ssh + X11 forwarding

Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. The best known example application is for remote login to computer systems by users.

X11 is the X Window System which allows you to run software on a UNIX/Linux server in a Windows-like way such that you can use your mouse to click around in it. The secure way to do this is to forward your X11 packets through your ssh connection which automatically sets your DISPLAY environment variable for you. On the configuration menu, select X11 under SSH and check “Enable X11 forwarding”.

  1. Login to Raspberry Pi and run GUI of a program.

This tutorial is made by Eltechs, the company of ExaGear. You can visit the original post for more detailed steps and information.

Cheap ARM Cortex-m0 MCU Printed on Plastic Costs as low as 0.01$

Flexible electronics is one of the emerging technologies with the rise of connected things in IoT age. This increases the need of low cost electronics to use.

Photo Courtesy of PragmatiIC

PragmatIC the specialized company in low cost flexible electronics wants to enable trillions of “smart objects” to sense and communicate with their environment, but the problem is: to turn ordinary objects —like clothing, documents, or packaging of consumer goods— into smart objects, the price needed for this is far below the cheapest silicon chip. Moreover, the thickness of silicon represents another obstacle to integrate electronics seamlessly into products. The PragmatIC’s approach tries to solve these problems.

Photo Courtesy of PragmatiIC

Pragmatic print electronics on a piece of 10-µm-thick plastic which is thinner than a human hair.

PING (Printed Intelligent NFC Game cards and packaging) and a bottle with illuminating brand are examples of use cases of Pragmatic solution.

Back to the title of this news, PlasticARM is the new project started 2 years earlier in collaboration with ARM to implement a fully functional 32-bit ARM Cortex-M0 MCU on 10-µm-thick flexible plastic.

Image Source: Charbax

Charbax from ARMDevices.net made an interview with the CEO, Scott, during IDTechEx Show. Scott said that the last version of PlasticARM is printed on 1 square CM area and the next version will have the half size.

Cris —a VP Technology in ARM— holding Plastic ARM. Image Source: Charbax’s interview

Source: ARMdevices

Pulsar™ – a 4G cellular board

openh.io released their 4G Cat M1 cellular board bringing connectivity and remote management to low-bandwidth projects. The board is compatible with Arduino Zero and includes SAMD21 CPU for user code.

Your project can now evolve, even after release, with groundbreaking remote device management and debugging. Pulsar contains a Remote Cortex M0 to help maintain a connection with every device and updating over time.


  • 4G LTE  Cat M1 modem with GPS
  • No external antennas required
  • Dedicated management CPU with crypto engine
  • 10W digital power supply and battery charger with direct solar input
  • Able to mount Raspberry Pi Zero onto the board
  • Includes SAMD21 CPU for user code, Arduino Zero compatible with remote programming.
  • Bluetooth and NFC
  • FCC and Carrier certified

Pulsar™ – a 4G cellular board – [Link]

Temperature Controlled Fan With LED Status

This is a simple fan controller with single LED temperature status light using an ATtiny85 microcontroller and DS18B20 temperature sensor. The fan is turned on/off based on temperature sensed and the controller goes in sleep mode when the temperature drop below a predefined threshold.

Simple ATtiny85 fan controller to turn a fan on/off based on temperature. Includes an LED as a temperature indicator. LED is dim at start of fan on temperature and blinks when above a max temperature. Fan is not PWM controlled since I am using a small 5V fan which is quiet running at 100%. The controller is in sleep state while the temperature is below the minimum threshold and wakes up every ~8 seconds to recheck the temperature. When temperature is above minimum threshold, the controller will stay awake checking every second till the temperature falls below the minimum threshold. The code uses ds18b20 library by Davide Gironi.

Temperature Controlled Fan With LED Status – [Link]

Open-Q™ 212 Single Board Computer for your IoT Device

Intrinsyc released it’s Open-Q™ 212 SBC, a full-featured, low-cost IoT computer based on a powerful quad-core ARM Cortex A7 (32-bit) 1.267GHz processor, with integrated GPU and DSP. This single board computer has some nice features such as Wifi, Bluetooth, LCD 720p support, HDMI 720p H.264/H.265 playback, an 8MP camera, four microphone inputs and amplified stereo outputs. It also features 4x USB ports, ethernet, serial interface, RTC clock and Li-Ion battery support. The board is ideal for creating voice controlled devices with noise cancellation technology and other internet enabled projects. The board can be used as a development kit or be embedded on final product. On the software side it supports Android 7 and there is a call for Linux support. This board packs some great features and looks promising in the IoT world.  [via]

“We expect our Clients to use the board first as a development kit and then subsequently as an embedded SBC in their final product. It’s also likely that some Clients would want to de-feature or de-populate the SBC to lower the cost or to fit in a particular enclosure. Our team has the experience in hardware, software and mechanical engineering, we can quickly take the SBC’s core technology as is, and adjust the peripheral set. It’s our Client’s choice on how to proceed.” Said Intrinsyc.

Open-Q™ 212 SBC Specifications:

• Quad-Core ARM Cortex A7 (32-bit) 1.267GHz, GPU, DSP
• 8GB eMCP Flash
• MicroSD card socket
• Pre-scanned Wi-Fi 802.11n 2.4Ghz, with chip antenna and U.FL antenna connector
• Bluetooth 4.1 + BLE
• Up to 720p LCD or up to 720p HDMI Type A
• Up to 8MP over 2-lane MIPI CSI
• 720p@30fps playback
• Up to 720p playback with H.264 (AVC) and H.265 (HEVC)
• Up to 720p H.264 (AVC) capture
• 4x microphone inputs
• 2x amplified speaker outputs
• 2x stereo line outputs
• PMIC and Li-Ion battery support
• 4x USB 2.0 Type A host mode, Ethernet, Serial, RTC, I2S, GPIO, sensor header
OS Support
• Android 7 Nougat, Call for Linux
Operating Environment
• Input 12V/3A or single-cell Li-Ion battery
• Operating Temperature 0° C to +70°C
• Nano-ITX 120mm x 120mm

Open-Q™ 212 Single Board Computer for your IoT Device – [Link]

TRINUS The Affordable 2-in-1 3D Printer

Starting from the fact that most 3D printers under $500 experience technical failures after just few uses, a new powerful 3D printer has been launched to bridge the gap between affordability and professionalism, Trinus!

Trinus can be your 3D printer in a moment and your laser engraver the next one! The $299 2-in-1 printer is all metal, made of high-quality aluminum and steel parts in order to survive with the best performance ever. It also supports many types of filaments like PLA, ABS, PC, Flex, Wood and other materials available at the market.

Check out this video to learn more about Trinus:

Fortunately, you don’t have to spend a lot of time while assembling Trinus thanks to its 11 modular units that can be able to set up easily and quickly

This stable and accurate 3D printer is scaled down from industrial-grade machines giving it the ability to be durable.

“We were able to design a low-cost single-axis slide that delivers extremely high precision but keeps Trinus affordable. With all metal internal components, Trinus does not require constant recalibration. Its parts stay in place. Because it is so stable, Trinus maintains quality printing up to print speeds of 70 mm/sec, and is capable of running at a maximum speed of 150 mm/sec.”

Pause/change color, adjust speed and temperature, check elapsed time and percentage of completion are all accessible while operating thanks to the 3.2-inch LCD screen attached. Check this out in action.

Below are the specifications of each the printer and the laser engraver:

A table of comparison between Trinus and other products showing its huge capabilities with such an affordable price, check it out:

You can order your own TRINUS now at this link. A Kickstarter campaign was the way to market this printer and it had done a great job, $1,621,021 was pledged of $50,000 goal at the end of the campaign. Check it out the campaign to know more details.