Arduino Tutorial: Menu on a Nokia 5110 LCD Display Tutorial

In this easy Arduino Tutorial is going to show us how to create a Menu on a Nokia 5110 LCD display.

This is the project we are going to build. In the display a simple menu appears, and with the help of three buttons I can navigate up, or down and select a menu item. Let’s select the first option. As you can see a new a UI screen is displayed and by pressing the up and down buttons we can change the contrast of the display. If we press the middle button again, we go back to the main UI screen. If we now select the second menu item and press the middle button we can turn the backlight of the display on or off. Lastly if we navigate to the last menu item we can reset the settings for the display to the default values. Of course this is just a demonstration project, you can modify it to build your own more complex menus if you wish. Let’s now see how to build this project.

Arduino Tutorial: Menu on a Nokia 5110 LCD Display Tutorial [Link]

High Performance Stereo Audio Amplifier using LM3886

The LM3886 is a high-performance audio power amplifier capable of delivering 68W of continuous average power to a 4Ω load and 38W into 8Ω with 0.1% THD+N from 20Hz–20kHz.

The performance of the LM3886, utilizing its Self Peak Instantaneous Temperature (°Ke) (SPiKe) protection circuitry, puts it in a class above discrete and hybrid amplifiers by providing an inherently, dynamically protected Safe Operating Area (SOA). SPiKe protection means that these parts are completely safeguarded at the output against overvoltage, under voltage, overloads, including shorts to the supplies, thermal runaway, and instantaneous temperature peaks.

The LM3886 maintains an excellent signal-to-noise ratio of greater than 92dB with a typical low noise floor of 2.0µV. It exhibits extremely low THD+N values of 0.03% at the rated output into the rated load over the audio spectrum, and provides excellent linearity with an IMD (SMPTE) typical rating of 0.004%.

Note : Amplifier Requires a Large Size Heat sink

High Performance Stereo Audio Amplifier using LM3886 – [Link]

Open Source Meets Hardware: Open Processor Core

SiFive, the first fabless provider of customized, open-source-enabled semiconductors, had recently announced the availability of its Freedom Everywhere 310 (FE310) system on a chip (SoC), the industry’s first commercially available SoC based on the free and open RISC-V instruction set architecture.

The Freedom E310 (FE310) is the first member of the Freedom Everywhere family of customizable SoCs. Designed for microcontroller, embedded, IoT, and wearable applications, the FE310 features SiFive’s E31 CPU Coreplex, a high-performance, 32-bit RV32IMAC core. Running at 320+ MHz, the FE310 is among the fastest microcontrollers in the market. Additional features include a 16KB L1 Instruction Cache, a 16KB Data SRAM scratchpad, hardware multiply/divide, a debug module, flexible clock generation with on-chip oscillators and PLLs, and a wide variety of peripherals including UARTs, QSPI, PWMs, and timers. Multiple power domains and a low-power standby mode ensure a wide variety of applications can benefit from the FE310.

Furthermore, SiFive launched an open source low-cost HiFive1 software development board based on FE310. As part of this availability, SiFive also has contributed the register-transfer level (RTL) code for FE310 to the open-source community.

The Arduino compatible HiFive1 was live on a crowdfunding campaign on Crowdsupply  and the board reached around $57,000 funding. Check this video to know more about HiFive1:

SiFive is now fulfilling a dream of a lot of developers: a custom silicon designed just for you! With the RTL code open, chip designers are now able to customize  their own SoC on top of the base FE310 by accessing the open source files provided on Github. But don’t worry, even if you don’t have the expertise needed to develop your own core, SiFive is offering a new service called “ chips-as-a-service” that can customize the FE310 to meet your unique needs. All you need is to register here, try out your ideas and finally contact the company to finalize the design of your new chip.

This service has completely a new business model for silicon chips businesses, and SiFive is willing to establish a “chip design factory” that can handle 1000 new chip designs a year. It is said that SiFive can start manufacturing the cusomized MCUs in less than 6 months after making sure that each use case is compatible with the Freedom E310 core.

“We started with this revolutionary concept — that instruction sets should be free and open – and were amazed by the incredible rippling effect this has had on the semiconductor industry because it provided a viable alternative to what was previously closed and proprietary,” said Krste Asanovic, co-founder and chief architect, SiFive. “In the few short months since we’ve announced the Freedom Platforms, we’ve seen a tremendous response to our vision of customizable SoCs. The FE310 is a major step forward in the movement toward open-source and mass customization, and SiFive is excited to bring the opportunity for innovation back into the hands of system architects.”

Opening the source of processors’ core has its pros and cons for SiFive. A new business model is assigned to SiFive due to the “chips-as-a-service” feature but in the same time it will open up some new ventures for smaller companies and hardware manufacturers to compete with the market dominating companies. Open source MCUs will bring a lot of updates to the hardware development scene and will pave the way for a whole new business of customized chip design provided by talented hardware system developers and architects.

To know more about the custom design feature visit the developers section of SiFive Documentation of the SiFive new chip is available here and also source codes and files of the RTL code are provided at Github.

SMART.IO, An Affordable Remote Control for Embedded Designs

Creating a smartphone application for your embedded products may be a high-cost process that consumes time and efforts. ImageCraft, a producer of high quality low cost embedded system tools, had developed “Smatr.IO” as a very cheap alternative solution that allows you to add a friendly user interface to any embedded project.

Smart.IO is a toolkit that helps you to create a compatible application with your product without the need of any experience in wireless technology or app development. It uses BLE (Bluetooth Low Energy) and it doesn’t require an Internet connection or data plan.

Smart.IO consists of three parts:

  • A Small Chip Module compatible with any microcontroller.
  • A Software API for creating Graphical User Interface (GUI) objects.
  • A Programmable Smartphone App that requires only a Bluetooth connection to use.

There is no need to write any wireless code, or write an app. All you need is to add the Smart.IO chip to your existing microcontroller-based design, then use the API to create GUI objects in your firmware.

The Smart.IO Chip Module

The Smart.IO chip module is only 25mmx14mm. It has a 10-pin headers which are easy to solder onto your PCB, or use in a prototype system. It interfaces with your host microcontroller using SPI pins, plus extra pins for interrupts for data notification. Smart.IO draws very little power, typically about 100mA, and much less during standby mode.

If you are an Arduino user, ImageCraft will provide an Arduino-compatible shield that comes with a Smart.IO chip module, so that Arduino users can start using it immediately.

The Smart.IO API

The API functions allow you to create GUI objects and to modify their values. A simple callback mechanism notifies your firmware of input changes. The API code will run in the Smart.IO chip firmware, and the host MCU only runs the API interface layer code, so it will not use the host MCU resources.

The Programmable Smart.IO App

The GUI elements incorporate solid, current user interface principles. The UI will look and work exactly the same way across all iOS devices, from the iPhone 5 to iPhone 7+, and all iPad devices, including the iPad Pro. An Android friendly UI is planned for Spring.

There is also a customized version of the app specific to your product and branding for an inexpensive one-time licensing fee including customized app logo and name and security key to ensure your product will only work with your app.

Smart.IO Security

Secret key encryption is used to ensure secure pairing of the device and customized app. As Smart.IO does not use the Internet, there is no risk of your device being used for DDOS or other types of attacks through the use of Smart.IO.

Through the Kickstarter campaign, Smart.IO reached about $9,500 and pre-ordering is still open here. ImageCraft will start work on the Android version of the programmable app and set up a forum for Smart.IO users. A use case example of Smart.IO is available on the official page.

Inside the 74181 ALU chip: die photos and reverse engineering

A detailed die photos and reverse engineering of the 74181 ALU chip by Ken Shirriff:

What’s inside a TTL chip? To find out, I opened up a 74181 ALU chip, took high-resolution die photos, and reverse-engineered the chip.1 Inside I found several types of gates, implemented with interesting circuitry and unusual transistors. The 74181 was a popular chip in the 1970s used to perform calculations in the arithmetic-logic unit (ALU) of minicomputers. It is a moderately complex chip containing about 67 gates and 170 transistors3, implemented using fast and popular TTL (transistor-transistor logic) circuitry.

Inside the 74181 ALU chip: die photos and reverse engineering – [Link]

Multiphase, 60V synchronous boost controller peaks at 97%

LTC3897 is a multiphase synchronous boost DC/DC controller with input surge stopper and ideal-diode controller. The boost controller drives two N-channel power MOSFET stages out-of-phase to reduce input and output capacitor requirements, enabling the use of smaller inductors versus the single-phase equivalent. By Graham Prophet @

Synchronous rectification increases efficiency, reduces power loss and eases thermal requirements. The input surge stopper, with adjustable clamp voltage, controls the gate of an external N-channel MOSFET to protect against high input voltage transients of greater than 100V and provides inrush current control, overcurrent protection and output disconnect. The integrated ideal diode controller drives another N-channel MOSFET for reverse input voltage protection and voltage holdup or peak detection.

Protect your boost converter

@ discuss about a protection circuit for boost converters.

Boost converters are particularly susceptible to output shorts as there is a DC path from input to output. Usually a fuse, resettable or non-resettable, protects the system, but it is not always accurate or fast enough.

Protect your boost converter – [Link]

Step Up DC-DC Converter – 12V TO 28V DC 175mA

The Step-Up DC-DC Converter project provides 28V, 175mA output with input of 12V DC. The MC34063A IC is heart of the project from On semiconductor. The MC33063A is a monolithic control circuit containing the primary functions required for DC-DC converters. This device consist of an internal temperature compensated reference, comparator, controlled duty cycle oscillator with an active current limit circuit, driver and high current output switch. This IC specially designed to be incorporated step-down, step-up, and voltage-inverting applications with minimum number of external components.


  • Input 12V DC
  • Output 28V, 175mA
  • Output Voltage  Adjustable By On-board Preset
  • Header Connector for Output/Input Connections
  • Low Standby Current

Step Up DC-DC Converter – 12V TO 28V DC 175mA – [Link]

iKeybo, The Advanced Projection Keyboard

Serafim is a company of some talents and experts in optoelectronics industry, and it aims to offer affordable, useful, and cool consumer electronics for a better computing experience. The latest amazing product by Serafim is: iKeybo!

iKeybo is a virtual projection multilingual keyboard that can turn any flat surface into a keyboard. iKeybo can work as a piano too.

Check this video to see iKeybo in action:

iKeybo uses a non-contact technology and has 90Hz frame rate. It turns your 5 inch display into 12 in a surface since the projection surface is 268*105mm. The keyboard consists of 78 keys where other competitors only have 66. It has a instant reaction around 11.11ms what makes it more convenient while using.You can use iKeybo with you PC, mobile devices and tablets since it works via Bluetooth and USB.

For developers, a SDK for iOS and Android is available! It supports all functions of touch screen which include single tap, double tap, rotate, press and drag, press and hold. Install the framework and make connections with your apps.

It differentiates from other laser projection keyboard because it implements a new patented technology that uses camera sensor and double linear sensors for faster calculation speed and less energy.

“What distinguish iKeybo from traditional projection keyboards is that it is the world’s first laser projection “piano” that allows users to create music instantly with piano, guitar, bass, or drums. When not in use, iKeybo can also serves as an external charger to power up devices with 10 hours of battery life. Its cellphone stand design is also perfect for desk or table to watch movies or start live streaming.“ – iKeybo team

iKeybo Features

4 Language Layouts you can choose from 4 different languages keyboard layouts (English, Spanish, Arabic, and Chinese) to type the language special characters that you need. You can’t add more language layouts to your iKeybo because each layout projection needs a different optical lens. Once you select a language edition or a bilingual one it will be fixed.

4 Musical Instruments with iKeybo you can play piano, guitar, bass and drums! Check this piano demo video:

Round Key Designs a special design to make it easier for typing. Other competitors use square keys with no space in between that make it possible to do a lot of typos.

Portable Charger & Cell Phone Stand  iKeybo also serves as an external charger to power up your devices with 10 hours of battery life. You can also use it as your cellphone stand to turn your mobile device into a computer within just a second.

iKeybo is not the first optoelectronics product by parent company Serafim. Check this page to know more about its products.

iKeybo is now live on a Kickstarter campaign and still has 10 days to go! You can pre-order your iKeybo with one language layout and piano for $89 and also you can get a bilingual iKeybo for $99. More information are available at the campaign page.

Dintervalometer, A Custom Made Intervalometer For DSLR Cameras

If you want to take a timelapse with your camera, it may be helpful to use an intervalometer. It is an attachment or facility on a camera that operates the shutter regularly at set intervals over a period, in order to take timelapse series or take pictures after a set delay.

Daniel Knezevic had developed a custom made intervalometer for DSLR cameras. Dintervalometer (Deni’s intervalometer) enables cameras to shoot time lapses and allows shutter speeds longer than the 30s.

The Dintervalometer is built with an Atmega328P clocked at 10MHz, a PCD8544 84×48 pixel monochrome LCD display with a backlight, a 3.5mm male jack connector, and two tactile push buttons all combined together on a small PCB.

Dintervalometer Features

  • Intervalometer: It is used for time-lapse photography. It controls how often, how long and how many shots are taken.
  • Bulb mode: It allows to take time exposures longer than 30s.
  • Backlight
  • Charging via USB

The Display & Backlight

The PCD8544 LCD display can be powered using 3V3 and it draws very small amounts of power (around 200uA) making it extremely good for use in battery powered devices. It is typically used in Nokia 5110/3310 phones, and it interfaces to microcontrollers through a serial bus interface (SPI).

A custom made backlight were designed to allow using the Dintervalometer in the dark without an additional lamp. It operates like a backlight of a cell phone: it is active for 10 seconds when the user presses a button or the Dintervalometer finishes some job.

The backlight consists of these materials:

  • A sheet of white paper
  • A piece of transparent plastic
  • A double-sided tape

The first layer of the backlight is a sheet of white paper. Its main function is to reflect the light of the LEDs. Then it comes the piece of transparent plastic. The top of the plastic is sanded with a fine sandpaper to diffuse the light. Finally, the LCD comes on the top. The layers are glued together with a double-sided tape.

Powering & Charging

Dintervalometer’s circuit is powered using a LiPo battery and a very low drop 3V3 voltage regulator (TPS79933). A MAX1555 Li+ battery charger IC is used to charge the battery, which also can be powered via USB.

To prevent the over-discharge of the LiPo battery, Dintervalometer monitors and measures the battery voltage every 60 seconds. The user can always see the current status of the battery on the LCD. When the battery reaches the critical voltage, a “Low battery” notification will be shown, then the device will turn off.

The voltage measuring process is done using a voltage divider and AVRs internal 1V1 voltage reference.

The following equation is used to measure the battery voltage in mV, with the known values R2=10k, R3=3k3, Vref=1100mV, ADCres=1024.

Controlling The Camera

Using the 3.5mm male jack connector, the Dintervalometer will trigger the camera to focus and to take a picture. The jack consists of three wires: ground, focus and shutter.

To focus the camera, the focus wire has to be connected to the ground. To release the camera both wires have to be connected to the ground. Dintervalometer is tested with Canon EOS 700D. It has a jack plug for remote shuttering.

The Software

The software is written in C and compiled with avr-gcc. It is divided into 6 logical modules:

  • TIMER: Initializes Timer1 and provides an interrupt based delay function.
  • BATTERY: Initializes ADC to read the battery voltage.
  • BACKLIGHT: Functions are used to control the backlight (initialize and update).
  • GPIO: Initializes IO ports for buttons, camera output, battery charger status indication, auto cut off control output.
  • LCD: It represents the pcd8544 LCD driver, it is reusable code for other projects. The driver provides the API to initialize, control, and print text on the LCD.
  • STATE: The state machine is implemented by using function pointers. Each menu state has three basic operations; show data on LCD, wait for user input, update backlight and battery status, and handle button presses/holds.
State Machine Diagram

Dintervalometer Sources

This project is published on Daniel had shared all the source designs and scripts online, so you can get it on its Github repository.