Writing good device driver codes is still challenging for many embedded application programmers. Even though sufficient documentation is available, many still find it hard to understand what are the Do’s and Dont’s for writing drivers. One of the reason for this is that, Unlike application programming, learning to ...
The "Demystifying Linux Device Drivers, Workshop", was organized by Zilogic Systems on December 15-16 in Chennai. The workshop was done using our in-house hardware: ZKit-ARM-VF51 and DietIO. The ZKit-ARM-VF51 is the baseboard, powered by a Vybrid VF5xx SoC. The DietIO is the add-on board that has variety of devices for teaching and learning embedded systems and device drivers.
We are happy to announce our next workshop, "Demystifying Linux Device Drivers". This workshop is for developers who are familiar with Linux in embedded systems, and would like to explore the world of devices and drivers.
One of the pain points in starting with device drivers, is the missing bits ...
The "Embedded Linux Device Interfacing using Python Workshop", was held on October 7, in Hyderabad as a part of Python Conference organized by Hyderabad Python User Group at IIIT Hyderabad. The workshop was done using our in-house hardware: ZKit-ARM-VF51 and DietIO. The ZKit-ARM-VF51 is the baseboard, powered by a Vybrid VF5xx SoC. The DietIO is the add-on board, that has variety of devices for teaching and learning embedded systems and device drivers.
The "Embedded Linux Device Interfacing Workshop", was organized on July 1 and 2, in Chennai, and on July 15, in Banglore. The workshop was done using our in-house hardware: ZKit-ARM-VF50 and DietIO. The ZKit-ARM-VF50 is the baseboard, powered by a Vybrid VF5xx SoC. The DietIO is the add-on board, that has variety of devices for teachning and learning embedded systems and device drivers.
Today, Linux runs on a variety of devices, from smartphones to infotainment systems to refrigerators. It is the most popular general purpose operating system, on the planet, used in embedded systems.
The objective of the workshop is to help developers understand how various sensors and actuators are accessed and controlled ...
"Embedded Linux Dojo" was organized by the Embedded Linux Meetup Group. The Embedded Linux Meetup Group is a Zilogic Systems initiative to bring together people working on Linux in Embedded Systems, with the hope to share knowledge and ideas.The dojo was themed around building a WiFi router from scratch using a Embedded Linux target board, running Debian GNU/Linux. Here is the minutes of the event, contributed by Vengatesh.
The "Understanding Git, Workshop" was organized by Zilogic Systems, on Dec 3. About 46 people from various organizations participated in the workshop.
Git has grown up to become the de-facto version control system for open source software development. Acquiring a good mental model of Git, will help people wield it correctly and work more efficiently. This workshop will provide the required internals of Git, to help people acquire the required mental model ...
The "U-Boot Meetup" was organized by Zilogic Systems, on 24th September. About 30 people from various organizations attended the workshop.
The "Linux Kernel Porting Workshop", was organized on Sep 10 and 11. About 36 people from various organizations, including CEM Solutions (Bengaluru), EmbDes (Bengaluru) e-con Systems, Logitech, NIELIT (Calicut), Visteon, VVDN Technologies, attended the workshop.
The much awaited "Linux Kernel Porting Workshop" is here! The objective of the workshop is to provide better understanding of the Linux device model, the device tree, and the changes required to port the kernel to a new board. This workshop deals with Board Level Porting. To understand terminologies associated with porting, please read our article titled Linux Kernel Porting, Jargon Buster
This article is about Linux kernel porting, and other related terms like flashing and bring-up. The terms are generally used incorrectly. Through this article I hope to give clear definition of each term and how they relate to one another.
The second edition of the "Linux System Programming Dojo" was organized by Embedded Linux Meetup Group. The Embedded Linux Meetup Group is a Zilogic Systems initiative to bring together people working on Linux in Embedded Systems, with the hope to share knowledge and ideas.The first coding dojo was held in 19 June, where people got together and implemented command line tools — ls, ps, rm, df. The second coding dojo was organized on 23 July. A mix of code Kabalis and newbies participated in the event.
The "ARM Bare Metal Programming, Workshop" was organized by Zilogic Systems, on May 21 and 22. About 28 people from various organizations, including Burndy, Microchip, NIELIT Calicut, Electron India, SRM Technologies, Visteon, attended the workshop.
ARM mbed is the fastest way of creation and deployment of devices based on ARM microcontroller. It is designed for IoT platforms which provide an operating system, development tools, standard libraries, cloud services etc.
Zilogic is organizing a workshop on the ARM Bare Metal Programming. Writing startup code and linker scripts has been a dark art, mastered only by a few people. Lack of documentation has only aggravated the problem. Through this training programme we hope to unravel the mysteries behind these concepts, and help people join the elite few.For firmware and RTOS developers, this knowledge will be useful for porting their software to different microcontroller. It will be also be useful for people who would like to delve into bootloader development and development of early boot code of the kernel.
MicroPython is a lean and fast implementation of the Python3 programming language that is optimized to run on a microcontroller. In this article will show, the steps to compile MicroPython as a built-in app for NuttShell on NuttX over ZKit-ARM-1769.
Server is an open source GPS tracking system that supports more than 80 different communication protocols. Version 3.2 of Traccar supports BlackKite’s protocol out of the box. Thanks to the maintainer of Traccar, Anton Tananaev for accepting our patches. This article will show, how to setup Traccar to accept data from BlackKite devices.
The "Dive into Yocto, Workshop" was organized by Zilogic Systems, on 12th and 13th September. About 22 people from various organizations, including Burndy, Identiv, Ingersoll Rand, Microchip and Visteon, attended the workshop.
BlackKite-Fleet, is a variant tailored to address mobile assets and fleet management applications, with integrated highly accurate SiRF IV GPS. It is built with additional features to address solutions beyond “Track and Trace”.
BlackKite-FleetPro is a robust and platform independent GPRS enabled vehicle telematics system. Its built-in accelerometer and OBD Interface eases, the monitoring and control of driving pattern and vehicle health.
BlackKite-RTU is an affordable and expandable remote monitoring system supporting M2M cloud platforms via HTTP and MQTT protocols. It features rich set of IO and serial interface to acquire, monitor and control remote field devices at its best.
Zilogic is organizing a workshop on the Yocto Project. Yocto Project is an open source embedded Linux build system similar to Buildroot. While Buildroot uses "make" for task scheduling, Yocto uses bitbake, a tool specialized for integration builds. Yocto in addition provides support for packaging, supports a wide range of software packages, and a layering mechanism to easily extend the base set of packages.
BlackKite-Fleet is a compact, affordable and platform independent GPRS enabled vehicle tracking system. It features accurate SiRF IV GPS with rich set of IO for vehicle parameter monitoring and control.
FireFly is a family of highly customizable, robust and extensible variable message signs. Designed to be a cloud-ready, connected display for on-the-fly update.
Zilogic is participating in the 4th edition of Traffic InfraTech Expo at NSIC Exhibition Complex, New Delhi. We are demonstrating an upcoming series of M2M products, at the expo.
In this second article, in the DC Motor series, we provide sample code to use the DC Motor Board with ZDev on the ZKit-ARM-1343. If you haven’t, you might want to read the DC motor board functionality described in the blog article DC Motor Board, Getting Started, before reading this article.
A DC motor uses a direct current power source to generate torque. It is commonly used in CPU fans, robots as wheels, toys, CD drives, etc. The DC Motor Board from Zilogic can be used to control a DC motor’s speed and direction of rotation. In this first article, in a series of articles on the DC Motor Board, we will introduce the reader to the theory behind the working and control of a DC motor.
In this second article, in the Seven Segment series, we are going to discuss about, how to use Seven Segment Display Board with the ZDev. If you haven’t, you might want to read the seven segment fundamentals described in the blog article Seven Segment Board, Getting Started before reading this article.
Seven segment displays are electronic display devices used to display decimal digits as a simpler low cost alternatives to more complex dot matrix displays. The Seven Segment Board, from Zilogic, is an 8 digit seven segment display. In this first article, in a series of articles on the Seven Segment Board, we will introduce the reader to seven segment display fundamentals, and usage of the Seven Segment Board.
Relay Board, Getting Started article. In this article we are going to see how use Relay Board with the ZDev library.
A relay is a simple electromagnetic switch. Relays are used where it is necessary to control a circuit by a low-power signal (with complete electrical isolation between control and controlled circuits)
RFID reader is a radio frequency (RF) transmitter and receiver controlled by a microprocessor. In this article, we will show how to interface an RFID reader from rhydoLABZ (RFID-1320) with the ZKit-ARM-1769.
The ZKit-ARM-1769 board comes with a pre-compiled NuttX library. This library is sufficient most application development requirements. But advanced users might want to fine tune NuttX, to their project requirements. This article shows how to build NuttX applications from source for the ZKit-ARM-1769.
The current version of ZDev has polling mode driver for the LPC1343 serial port. Since the serial controller in the LPC1343 has a in-built FIFO this is sufficient in simple applications. In applications, where the in-built FIFO is insufficient, this article shows how to implement a interrupt mode driver with a larger software FIFO.
ZDev provides APIs for generating millisecond delays. But currently there is no API for generating microsecond delays. Microsecond delays are required in some applications, for example when playing an 8kHz audio. In this article, we will see how to generate microseconds delays, while developing applications with ZDev.
In this fourth installment, in the stepper motor series, sample code is provided to control a stepper motor using NuttX RTOS. If you haven’t, you might want to read the stepper motor fundamentals described in the blog article Stepper Motor, Getting Started, before reading this article.
In this second article, in the Audio Board series, we provide sample code to use the Audio Board with NuttX running on ZKit-ARM-1769. If you haven’t, you might want to read the Audio Board functionality described in the blog article Audio Board, Getting Started, before reading this article.
In this second installment, in the Seven Segment series we are going to see how to interface the Seven Segment Display Board with NuttX. If you haven’t, you might want to read the Seven Segment board fundamentals described in the blog article Seven Segment Board, Getting Started, before reading this article.
Remote temperature monitor is a device to push temperature sensor data from a remote location to a central server. The data is then made available through a web interface. This article shows how to build a simple remote temperature monitor.
Embedded systems generally use an audio interface for alert beeps and notifications. The Audio Board from Zilogic, extends a motherboard, with audio capabilities. Using the Audio Board, requires knowledge on the following:
In this, third installment in the stepper motor seris, we are going to learn about interfacing a stepper motor to the ZIO board. If you haven’t, you might want to read the stepper motor fundamentals described in the blog article Stepper Motor, Getting Started, before reading this article.
In this second installment, in the stepper motor series, sample code is provided to control the stepper motor using the ZDev library.
Stepper motors are used in a wide variety of applications, including computer peripherals like printers, scanners, CD drives, camera lenses, etc. In this first article, in a series of articles on stepper motors, we will introduce the reader to the theory behind the working and control of a stepper motor.
In this article, we will see how we can use ZIO and Python to prototype an embedded system and how ZIO and Python simplifies an engineer’s work. We will use ZIO’s Python API to read temperature from Zilogic’s Temperature Sensor Board.
Playing sounds for notification or alerts is much needed feature in most embedded applications, and Zilogic’s Audio Board is designed to add this feature to any micro-controller board with a SPI interface. The board comprise 8-bit DAC, 4MB DataFlash, AF amplifier and a speaker to play back audio files. The board also features a digital potentiometer, which allows volume control via software.
ZigBee is a low power, wireless mesh network standard,largely used in the areas of home automation, medical data collection and industrial control. The ZigBee Board connects Zilogic’s development kits with a UART-I2C header. In addition, the ZigBee Board can also be used with other deveolpment kits that have an RS-232 UART interface, using the ZKit RS232 transceiver and a null modem cable.
ZigBee is a low power, wireless mesh network standard, largely used in the areas of home automation, medical data collection and industrial control. The USB ZigBee Adapter connects a PC or any USB capable host to a ZigBee network.
The Board Support Package version 1.6.0 for the ZKit and ZIO platforms is available for download! Read on to find out more about this release.
Temperature sensors are used in various embedded applications for programming the system to give the desired temperature based response. The following example shows how Zilogic’s Temperature Sensor Board can be programmed using NuttX API. This board uses NXP’s SA56004 temperature sensor and has capabilities to drive external devices based on sensed temperature. To demonstrate this board with NuttX, we would be interfacing it with the ZKit-ARM-1769 board.
The DC Motor Board is a variable speed controller for 12V brushed DC motors at up to 1.0 Amp continuous current. This board offers a high degree of isolation with the use of high speed 10MBit/s Logic Gate opto-isolators for isolation between low voltage control side and high voltage motor side.
ZIO is a platform to move embedded development from micro-controllers to the PC, for rapid prototyping. This acheived by extending the IO capabilities of the PC through an USB based add-on ZIO motherboard. The IO interfaces on the ZIO motherboard can be accessed and controlled using high level languages — Python and Java, further simplifying prototype development.
ZKit-ARM-1769 is a ARM Cortex M3 based micro-controller development kit from Zilogic Systems. The ZKit-ARM-1769 is capable of networking using Ethernet, CAN and RS-485 bus interface. The board comes along with a free and open source multitasking Unix like operating system called NuttX.
Some people prefer to use IDEs, for software development. This article explains how to use an IDE called Code::Blocks along with ZKit-51-v664 and ZKit-51-RD2 boards.
pySerial is a Python API module to access the serial port. pySerial provides a uniform API across multiple operating systems, including Windows, Linux, and BSD. This article explains how to use the pySerial API to access a serial port.
NuttX provides a POSIX like API for application development. In this article we will see, how to develop simple NuttX applications. This is the third article in the NuttX series, for the previous articles please see:
NuttX, Getting Started article. In the previous article we demonstrated NuttX, using the NuttShell application. In this article we will see how to build NuttX and NuttX applications from source.
NuttX is a small footprint Real-Time Operating System (RTOS) for microcontroller environments. NuttX provides a POSIX API, with a single process, multi-threaded environment. NuttX has been ported to various architecture including ARM, AVR, AVR32 and Zilog.
The MVC design pattern was conceived in 1979 at Xerox, and since then many variants have evolved. All web frameworks, today, support some variant of the MVC pattern. But the MVC pattern has been largely ignored in GUI application development. This article describes one variant of the MVC pattern and how it can be used in GUI application development.
Almost all game programs require a random number generator. When implementing games for embedded systems, generating random numbers raises certain interesting issues. While generation of random number can be done using the rand() C library function, getting a suitable seed is a challenge.
During development and testing of embedded systems, the serial port is used for communicating with the host. This applies to firmware based embedded systems or Linux based embedded systems. But laptops and desktops today generally do not have a serial port. At Zilogic, we hit on this problem every time we go out for a corporate training.
ZigBee is a low power, wireless mesh network standard. It is used in home automation, medical data collection, industrial control, etc.
Zilogic has launched a course on Android, to help people familiar with Java, to come up to speed with Android Application Development.
ZDev is an open source software framework, consisting of modules for easy and quick embedded application development. ZDev is free and open source software, and is distributed under LGPL. ZDev currently supports the following microcontrollers:
The ZKit-ARM-1343 is an NXP LPC1343 based 32-bit ARM Cortex-M3 microcontroller development kit. It is a full featured development kit, and can be used as a single board computer, for product developerment and prototype development. It provides flexibility through the break-out headers for IOs. The development kit provides the tools engineers need to develop and prototype embedded applications right out of the box. The board is also suitable for teaching and learning embedded system programming.
Getting Started with J2ME showed how to build a simple Hello World application using J2ME. This article takes up from where the previous article left off and shows how to build a complete application, a currency converter, using the J2ME framework. The currency converter is a simple, yet complete application that converts from Indian Rupees (INR) to US Dollars (USD).
Zilogic Systems has launched its second generation of 8051 based motherboards. The ZKit-51-RD2 is a low cost board, and ZKit-51-V664 is a high-end analog capable graphics board. Check the product page for more details.
Zilogic Systems has launched a new range of high quality add-on boards for industry automation and robotics.
Zilogic Systems has launched a new course on ARM based embedded systems. Please check the syllabus page for more details.
The Seven Segment Board features a standard common-anode seven segment LED display, for testing, developing, prototyping seven-segment display applications like real time clocks, timers, counters and digital readouts.
Relay board provides 4 relays to control high voltage and/or high current equipment. This Relay board is ideal for high voltage and high current switching applications.
The Stepper Motor Board is designed to provide a stepper motor controller interface, with the opto isolation, to the CPU/MCU development boards. The board incorporates N-channel TrenchMOS logic level FET PMV45EN from NXP Semiconductors to drive high current with fast switching action. The MOSFET driver PMD9002D is also from NXP.
The temperature sensor board is based on NXP’s SA56004 temperature sensor chip, which can be interfaced through I2C bus. IC SA56004 is an SMBus compatible, 11-bit remote/local digital temperature sensor with over temperature alarms. The remote channel of the board monitors a diode junction, such as a diode connected transistor, with the accuracy of +/- 1oC.
Zilogic Systems' ZKit-51-V664 8051 Microcontroller development kit is a full featured development kit for prototype development. The ZKit-51-V664 has maximum set of peripherals and provides maximum flexibility with the break-out header for IOs. The ZKit-51-V664 8051 Microcontroller development kit comes with Zilogic’s ZDev library which provides a set of easy to use API interfaces for rapid embedded firmware development
The ZKit-51-V664 has a Graphics LCD, that can be used for displaying GUIs, bitmaps, animations, etc. Bitmaps can be easily displayed on the Graphics LCD using the APIs provided by ZDev library. This article shows how to create bitmaps using GIMP, and how to display them on the Graphics LCD.
Android is a open source operating system designed specifically for mobile platforms. Over the last few years Android is taking over the mobile market drastically. This article shows how to get started with Android.
Android applications can be created using the command line itself. Necessary tools are provided by the Android SDK. This article will demonstrate how to create a Android Application in the command line.
J2ME is a software used to develop applications for Java enabled devices like Mobile Phones and PDAs. For more information about J2ME refer J2ME in Wikipedia. This article explains how to write a simple hello world program in J2ME.
The ZKit-51-RD2 is an NXP P89V51RD2 based 8051 microcontroller development kit. The board can be used for prototype development by hobbyists and engineers. The board is also suitable for teaching and learning embedded system programming.
A GSM modem is a specialised type of modem which accepts a SIM card, and operates over a subscription to a mobile operator, just like a mobile phone. These modems are more frequently connected to computers which allow the computers to communicate with the mobile network. They are most probably used for sending/receiving SMS. This article explains how to connect a GSM modem with the ZKit-51 and how to program it to send SMS.
Resistance is the reluctance or a kind of friction in a carrier which opposes the flow of current through it. The resistance of an element is measurable and it is represented by an unit known as Ohm. Ohmmeter is a device used to measure the electrical resistance. This project shows how to construct a simple ohmmeter using 8051 microcontroller.
It is very easy to generate tones with the ZDev library and the ZKit-51. This project shows how to generate tones of various frequencies using the PWM controller.
In order to test an electronic circuit, we need some testing equipment. Capacitance meter is an electronic equipment used to measure capacitance. This project will show how to construct a simple capacitance meter using 8051 controller.
Generally Thermometer is used to measure the ambient temperature. This article explains you about how to design a simple Thermometer using a temperature sensor.
It may require some graphics image to be displayed in 8051 based products through a monochrome bitmap LCD. This is considered to be a complex task because of its bus interfacing and several command sequence handling. This article explains how a graphics LCD from TIANMA can be connected to a 8051 micro-controller and pixels can be displayed on it with simple steps.
All 8051 based microcontrollers from NXP come with some sort of built-in flash memory. The microcontrollers provide multiple methods to program the flash. The most common method is In-System Programming (ISP). In ISP, the code is transfered to the flash, through the serial port, by a built-in ISP bootloader. The other method is In-Application Programming (IAP). In IAP, the user application receives the code through whatever mechanism (like say SPI or I2C) and programs the flash. A set of built-in routines, called the IAP routines, are available to the application for manipulating the flash.
There are variety of user input devices for embedded systems, like buttons, switches, knobs, sliders, etc. Sliders are most commonly used for volume controls. This project shows how to interface a slider to the ZKit-51, and how to use it as an input device.
It is necessary to know the stack utilization levels when software is developed for systems requiring high reliability. A simple technique to determine the stack utilization of a program is watermarking. In this technique the stack is filled with a pattern, and the program is executed. When the stack is used the pattern is overwritten. When the program terminates the point from which the pattern is undisturbed tells us the stack utilization level.
BASIC is a very popular programming language taught in schools. There have been various derivatives of the BASIC programming language. The most popular ones are GW-BASIC, QBASIC and Visual Basic. In fact there are versions of BASIC for the 8051 as well, called the MCS BASIC-52.
When your projects get bigger, the internal RAM of the P89V664 is no longer sufficient. External RAM can be used to overcome this limitation. The P89V664 used in the ZKit-51 has 2KB of on-chip external RAM.
A course on the new language features of Java 5 has been added to the course list. Please check the syllabus page for more details.
Zilogic has launched an Open Source IO framework called the ZIO. The ZIO motherboard is a USB device that provides access to IO interfaces like GPIO, Sensor (ADC), PWM, I2C and SPI. APIs are available in Java and Python to access the ZIO. Please see ZIO Product Page for more ...