Category Archives: Customer Projects

Latest Touch Display for the Raspberry Pi

Those who were on the lookout for a proper touch display for their single board computer, the Raspberry Pi or RBPi can now rest easy. The official RBPi touch display is on sale at several stores and others will be receiving stock very soon. Users of RBPi models such as Rev 2.1, B+, A+ and Pi 2 can now use the simple embeddable display, instead of having to hook it up to a TV or a monitor. Watch the You-Tube video demonstration for a better understanding.

The new official touch display for the RBPi is a 7” touchscreen LCD. A conversion board interlinks the display module with the LCD and plugs into the RBPi through the display connector. Although the ribbon cable is the same as that used by the camera, the two do not work interchangeably. Therefore, identify the display connector first, before plugging in the ribbon cable from the display.

You can power up the display in one of three ways: using a separate power supply, using a USB link or by using GPIO jumpers. When using a separate power supply, you need a separate USB power supply with a micro-USB connector cable. The power supply must have a rating of at least 500mA and requires plugging in to the display board at PWR IN.

It is also possible to power the RBPi through the display board. For this, use an official RBPi power supply of rating 2A and plug it into the display board at PWR IN. Use another standard micro-USB connector cable from the PWR OUT connector and plug it into the RBPi power in point.

Powering the display from the RBPi GPIO requires using two jumpers – one from the 5V and the other from the GND pins of the GPIO.

After plugging in the ribbon cable and making one of the above power connections between the RBPi and the display, using the display requires updating and upgrading the OS on the RBPi. On rebooting, the OS automatically identifies the new display and starts to use it as its default display rather than the HDMI. To allow the HDMI display to stay on as default, the config.txt file must contain the line:

display_default_lcd=0

For further setup steps, follow these instructions.

The RBPi display comes with an integrated 10-point touchscreen. The driver for the touchscreen is capable of outputting both full multi-touch events and standard mouse events. Therefore, it is capable of working with ‘X’ – the display system of Linux, although X was never designed to work with a touchscreen.

For finger touch operations in cross-platform applications, the Python GUI development system Kivy is a great help. Although designed to work with touchscreen devices on tablets and phones, Kivy works fine with RBPi.

The 7” touchscreen display for the RBPi is of industrial quality from Inelco Hunter and boasts of an RGB display with a resolution of 800×480 at 60fps. It displays images with 24-bit color and a 70-degree viewing angle. The metal backed display has mounting holes for the RBPi and comes with an FT5406 10-point capacitive touchscreen.

What is Vapor Phase Reflow Soldering?

Vapor Phase Reflow Soldering is an advanced soldering technology. This is fast replacing other forms of soldering processes manufacturers presently use for assembling printed circuit boards in high volumes for all sorts of electronic products. Soldering electronic components to printed circuit boards is a complex physical and chemical process requiring high temperatures. With the introduction of lead-free soldering, the process is more stringent, required still higher temperatures and shorter times. All the while, components are becoming smaller, making the process more complicated.

Manufacturers face soldering problems because of many reasons. Main among them is the introduction of lead-free components and the lead-free process of soldering. The other reason is boards often can contain different masses of components. The heat stored by these components during the soldering process varies according to their mass, resulting in uneven heat distribution leading to warping of the printed boards.

With Vapor Phase reflow soldering, the board and components face the lowest possible maximum temperatures necessary for proper soldering. Therefore, there is no overheating of components. The process offers the best wetting of components with solder and the soldering process happens in an inert atmosphere devoid of oxygen – resulting in the highest quality of soldering. The entire process is environment friendly and cost effective.

In the Vapor Phase Reflow Soldering process, the soldering chamber initially contains Galden, an inert liquid, with a boiling point of 230°C. This is same as the process temperature for lead-free Sn-Ag solders. During start up, Galden is heated up to its boiling point, causing a layer of vapor above the liquid surface, displacing the ambient air upwards. As the vapor has a higher molecular weight, it stays just above the liquid surface, ensuring an inert vapor zone.

A printed circuit board and components introduced in this inert vapor zone faces the phase change of the Galden vapor trying to cool back its liquid form. The change of phase from vapor to liquid involves the release of a large amount of thermal energy. As the vapor encompasses the entire PCB and components, there is no difference in temperature even for high-mass parts. Everything inside the vapor is thoroughly heated up to the vapor temperature. This is the biggest advantage of the vapor phase soldering process.

The heat transfer coefficients during condensation of the vapor ranges from 100-400Wm-3K-1. This is nearly 10 times higher than heat transfer coefficients involved in convection or radiation and about 10 times lower than that with contact during liquid soldering processes. The excellent heat transfer rate prevents any excessive or uneven heat transfer and the soldering temperature of the vapor phase reflow process stays at a constant 235°C.

There are several advantages from the Vapor Phase Reflow Soldering process. Soldering inside the vapor zone ensures there can be no overheating. As the vapor completely encompasses the components, there are no cold solders due to uneven heat transfer and shadowing. The inert vapor phase process precludes the use of nitrogen. Controlled heating up of the vapor consumes only one-fifth the usual direct energy consumption, and saves in air-conditioning costs.

As the entire process is a closed one, there is no creation of hazardous gasses such as from burnt flux. Additionally, Galden is a neutral process fluid and environment friendly.

A Raspberry Pi HAT with 16-Channel PWM Servo

DC servo motors are a few of the things that the single board computer, Raspberry Pi or RBPi, finds uncomfortable. The reason being the specific and repetitive timing pulses these motors require for setting their position, which the RBPi is unable to provide in the absence of a real time clock. Although the Linux kernel can do the job, it leaves the RBPi rather over taxed.

A HAT or Hardware Attached on Top board eases the situation. It takes care of all the timing requirements, runs and controls 16 Servos, and is capable of delivering pulse width modulated or PWM signals up to 1.6 KHz using 12-bit precision. Additionally, all this is completely free running that leaves the RBPi to handle everything else.

The 16-Channel 12-bit PWM/Servo HAT from Adafruit can drive 16 servos simultaneously or output PWM signals. It communicates with the RBPi through only two pins using the I2C protocol. Additional RBPi processing overhead is not required for the on-board PWM controller on the HAT board to drive all the 16 channels at a time. Moreover, you can stack more HAT boards – up to 62 of them and control 992 servos – all with only the same two pins.

Adafruit offers a Python library that you can use to immediately set up and run the servos to make your robotic system come to life. When you need to run several servos, this HAT and the Python library to go with it are the simplest and perfect solution.

The HAT board requires two levels of DC voltages. The 3V3 DC comes from the RBPi to power the PWM chip and to decide the logic levels for the PWM signals and the I2C signals. The voltage is available as soon as you plug in the RBPi – shown by the PWR or the red LED on the RBPi.

The other voltage is required for the servos, for which you need to supply 5-6V DC. Usually, most servos will be happy with only 5V, and will work a little more strongly if you give them 6V. You can connect this supply via the DC jack or the blue terminals on the HAT board. A reverse-polarity diode protects the board in case you have the wires connected in reverse. However, do not use both the DC jack and the terminal block at the same time.

Keep in mind that servos need a lot of current from the 6V DC supply. Even if you are using micro servos, they will draw several hundred mA when moving. Larger servos will need more power and you should have provision of about 2A for up to four servos. That means it is not recommended drawing this power from the 5V supply of the RBPi, as it could cause your RBPi to behave erratically. Keeping the servo power supply and the RBPi power supply totally separate gives good results.

On the RBPi, there is a place for soldering a through-hole capacitor. It is a good idea to use one if you are driving many servos. Switching motors generate dips and spikes on the power lines and these can upset the RBPi. A capacitor takes care of the sudden variations – use n*100µF, where n is the number of servos.

Make Your Raspberry Pi Follow Walls

The versatile single board computer, the Raspberry Pi or RBPi, makes an excellent base for an autonomous bot using a rover 5 platform. The bot uses custom laser range finders for basic wall following. It features speed control of each track, regulated by PID using feedback from its quadrature encoders, giving it the ability of directional control. The basic features are explained below.

Batteries power the bot, feeding two separate switching mode regulators. One supplies power to the motors via the H-bridge, while the other powers the RBPi and other electronic devices. The H-bridge and the SMPS reside on the lower layer of the bot, while the sensors and the RBPi are on the upper layer. Mechanical standoffs separate the two layers, and the physical separation between the two layers creates a barrier for the electromagnetic fields from the power system that would otherwise affect the compass.

A Pixy CMUCam and a line laser form the laser range finding system of the bot. A simple piece of PVC pipe with slots cut into it breaks up the beam from the line laser. That allows the cam to recognize the color of the laser blobs as it reports this data via I2C to the RBPi, which then uses simple trigonometry for converting the data into vectors representing range and angles.

A sonar device mounted on the front of the bot implements a fairly simple crash prevention mechanism. The laser range finding system may also be used for a more sophisticated crash prevention system. Even though the bot is meant for autonomous operation, it also has a basic user interface built-in to allow control for testing purposes. The interface allows simple operations such as setting the heading and limiting the forward and backward speeds. It uses some feedback from the current heading of the robot.

For testing the laser range finding, the bot has a built-in GMR or graphical mapping representation, but in a minimal configuration. Using the GMR reveals a basic difference between the mapping from the sonar device and that from the laser range finder. For example, the sonar data interprets long flat surfaces as convex, but the data from the laser shows them to be perfectly straight – implying the laser range finding is linear.

A custom mount holds both webcams and the laser line. As the cases of the webcams made it difficult to mount them, they had to be removed from their casings. One of the cams faces 25-degrees to the left, while the other faces 25-degrees to the right. That gives a 100-degree field of view to the bot. Both the cams are tilted upwards such that the bottom-line of their images is just below the horizontal.

The software processes the images and locates the laser line to calculate ranges. It makes 30 vertical scans from the top of the image looking for the laser line. Looking specifically for a laser line makes it simpler as the line is never vertical. Therefore, every point located on the line has a neighboring point.

PIXY: Versatile CAM for Your Raspberry Pi

If you are looking for a small, fast, low-cost, easy-to-use, and readily available vision system for your Raspberry Pi or RBPi, then the Pixy can be a great choice. Pixy or CMUCam5 is somewhat more than a normal camera that you may have used so far for your single board computer. It comes with several features not available on most camera systems.

First, Pixy is versatile – use it for all kinds of projects. Along with the hardware, you will receive all kinds of information – PCB layout, bill of materials, schematics, and other hardware documentation. All software/firmware is GNU-licensed and open-source. The configuration utility provided with Pixy runs on all platforms – Windows, MacOS, and Linux. RBPi can communicate with Pixy over one of several interfaces – analog/digital output, USB, UART, I2C, or SPI. The Pixy comes with all libraries for RBPi, BeagleBone, and Arduino and supports programs written in Python and C/C++. The cable provided with Pixy can connect directly to Arduino, and it also works with BeagleBone and RBPi.

On the performance side, Pixy can learn to detect and recognize objects that you have taught it and outputs what it detects 50 times per second. With a Pixy, an RBPi and a servo control board, you can reconstruct Wall-E, the waste-collecting robot.

Pixy resulted from a partnership of the Carnegie Mellon Robotics Institute with Charmed Labs. First started as a Kickstarter campaign, Pixy is now the most popular vision system since it first started selling in March 2014. You can gage the versatility of Pixy from the activities it can do in association with an RBPi – pick up objects, chase a ball, locate a charging station, and more – doing all this with a single vision sensor.

Although there are other vision systems that can sense or detect practically anything, almost all of them have two drawbacks. One, they output huge amounts of data, a few megabytes per second. Two, enormous computing power is necessary to process this data, leaving the attached SBC with little else to cater to other tasks.

Pixy gets around these barriers as it pairs a powerful and dedicated processor along with its image sensor. The processor does all the processing of the data captured by the image sensor, and sends only the relevant information to the attached SBC. For example, yellow ball detected at x=50, y=110. Therefore, the RBPi can easily talk to Pixy and still have enough computing power left over for other activities. That also means you can have multiple Pixy cams hooked up to your RBPi. For instance, you can make a robot with a 360-degree sensing capability with four Pixys.

Although Pixy began with interfacing capabilities with the Arduino controller, it has matured sufficiently to be able to communicate with other controllers as well. The Pixy comes with all sorts of software libraries and a Python API for connecting to Linux-based controllers, such as an RBPi.

On-board Pixy is a color-based filtering algorithm that helps in detecting colored objects. The popular color-based filtering method makes Pixy singularly fast, efficient, and relatively robust. Pixy examines each RGB pixel from the image sensor and computes the saturation and hue to use as its primary filtering parameters.

An Energenie Pi-Mote controller Board for Your Raspberry Pi

Those looking for a low-cost automation and home control solution can use the Pi-Mote controller board from Energenie. The Pi-Mote controller board is an add-on for your single board computer, the Raspberry Pi or more simply, RBPi. With this combination, you can control electrical appliances connected to special radio controlled electrical sockets.

Working at 433.92 MHz, the Pi-Mote controller board for radio-controlled sockets is easy to install and command. The product offers a safe and simple way to let your RBPi control mains powered devices and appliances. The Pi-Mote controller board from Energenie is compatible with all RBPi models such as the A, A+, B, B+ and B2.

The Pi-Mote controller has a range of up to 30 meters and puts out an output power of 3V, 27mA at +12 dBm. The output is encoded at four data bits, offering a 20-bit address pre-set with OTP. The user can select the output modulation with software from OOK or FSK.

The product actually comes in two parts, the RF board and the electrical socket. The RF board attaches to the RBPi for controlling several 13A, 3-pin electrical sockets. Although the original Energenie sockets are meant for use in the UK, plug adapter sockets are available, which make these almost universal. You can also get kits with a 4-way extension lead and other compatible sockets from Energenie. All can be controlled from the Pi-Mote controller board.

A small Python program allows the add-on RF transmitter board to control up to 4 radio controlled sockets simultaneously by toggling the socket on and off individually. The add-on board attaches to the GPIO pins of the RBPi. In its basic form, each board transmits a frame of information to the sockets. The frame is made up of a 20-bit address and a 4-bit control data. Additionally, the frame uses the On-Off Keying or OOK technique, a basic form of Amplitude Shift Keying or ASK. The source addresses are pre-programmed and the user cannot change them.

When using the Pi-Mote controller, you are required to insert the radio-controlled socket into the mains wall socket and switch it on. The socket then enters a learning mode, which is indicated by the slowly flashing LED in front of the socket housing. You can force a socket to enter the learning mode at any time by pressing the green button on its housing form, holding it for five seconds and releasing it.

Once it is in the learning mode, send the socket a signal from the program running on the RBPi. The LED on the socket housing gives a brief flash and stops glowing. This indicates the socket has accepted and memorized its address. You can then program the rest of the three sockets in turn; otherwise, they will react to the same address. When using more than one socket, insert each into separate mains wall outlets, maintaining a physical separation of at least 2 meters so they do not interfere with each other. The sockets must not be put into a single extension lead.

Cool your Raspberry Pi with PiCoolFan

Applications for the single board computer, the Raspberry Pi or RBPi are exponentially increasing and there is a great demand on the RBPI for extending its performance to the limits. While users try to push their RBPi to achieve higher results with overclocking, this may result in SBC frying itself, unless the CPU temperature is kept in check.

To enable complete control over the CPU temperature, an advanced cooling fan system is available – PiCoolFan. On the bonus side, the system also includes a Real Time Clock that RBPi does not have in-built. Therefore, if your RBPi is running hot, for whatever reasons, you can use the PiCoolFan to keep its CPU cool. The applicability extends to all models of the RBPi.

The cooling fan does not require any additional power supply to operate. It draws its power from two GPIO pins. You simply have to insert the connector on the PiCoolFan on top of the P1 connector of the RBPi. A dedicated sensor on the PiCoolFan continuously senses the PCB temperature of the RBPi, feeding the readings to an embedded temperature measurement system on the PiCoolFan. Depending on the measured temperature, the micro-controller on-board the PiCoolFan will start, stop or regulate the rotational speed of the tiny fan.

As an added advantage, PiCoolFan contains an Air Distribution Plate, which cools not only the microprocessor on the RBPi board, but also all the heat-generating devices and the entire RBPi PCB. The RBPi user can easily access the embedded micro-controller on the PiCoolFan via the I2C interface. Apart from being able to read the temperature measured, the user can also set the temperature threshold and the temperatures at which the micro-fan will start and stop.

The PiCoolFan also offers on the same board a real time powering voltage monitoring and a real time clock with full battery backup. The entire unit is small enough to be included within most of the already existing cases of the RBPi. Apart from reading the temperature via I2C interface, PiCoolFan offers the user an information system based on three LEDs. A glowing blue LED assures the user the RBPi is comfortably within the allowed operating temperature range. If the temperature exceeds the range, the red LED will start to glow.

A flashing green LED indicates the powering status. When the voltage is within threshold limits, the flashes are continuous. When higher than the threshold, the frequency of the flashes increases. If the voltage is below the threshold limit, the frequency of the flashes decreases. Therefore, with a transparent case, it is easy to see from a distance whether the temperature and voltage of the RBPi system is within specified limits.

The user has complete control over the PiCoolFan system via the I2C interface. The fan can be switched on or off unconditionally and its speed controlled by pulse width modulation or PWM. The user can read the current system temperature and set the temperature threshold – PiCoolFan supports both the Celsius and the Fahrenheit scales. The PiCoolFan kit contains all the hardware necessary for setting up the fan and the air distribution plate.

Adding Memory to the Raspberry Pi

Although the memory onboard the Single Board Computer Raspberry Pi or RBPi is sufficient for most applications, some may feel the necessity of expanding the storage capacity. The options provided on the RBPi are limited, as the USB ports often engage a keyboard, a mouse or a game controller and the SD card slot holds only a single device.

The most obvious option for expanding the storage capacity on the RBPi is through the USB ports. However, tying up ports with a USB hard disk drive or flash drive can run into difficulty if you need the port for plugging in another USB device. One way of getting around this problem is by using powered USB hubs. It is important to realize the RBPi cannot supply enough power for driving the hub.

Using a powered USB hub makes it easy to add USB devices to your RBPi, including additional storage. However, you must consider a few things when expanding storage on your RBPi. In reality, there are only two common USB storage options available – flash drive and hard disk drive. Nevertheless, you may also consider a card-expanding trick for the Raspbian operating system for your RBPi. These are the three primary options available for expanding storage on your SBC. Apart from this, you may also consider using secondary storage devices such as networked drives, USB DVD-r drives and NAS drives.

The SD card in the RBPi acts as the main storage option – use an SDHC card for best results. It is a boot device acting as the general storage and from which the operating system also runs. You may think of the SD card as a replacement for the HDD of a regular desktop computer, more like an SSD or Solid State Drive, as it has no moving parts and uses very low energy.

By default, Raspbian, the standard Operating System of the RBPi, is designed to run from a 2 GB SD card. Therefore, when you flash the Raspbian image, the SD card will have a partition of 2 GB, with the balance of the card memory remaining unused.

To get around this, you must use the expand file system feature included in the raspi-config screen in Raspbian. This enables expanding the size of the partition to the maximum capacity of the SD card.

When you insert your flash drive into a USB port of the RBPi, you may be surprised it does not have the same effect as it does in a regular Ubuntu or Windows computer. It is not enough to insert the flash drive, Raspbian expects you to mount the device manually before you can use it as an additional USB storage device. However, before you can mount it, you must know the exact device name that Raspbian has assigned to the drive.

For this, the command necessary is: sudo ls /dev/sd*. The command “sudo” gives you temporary administrative status, “ls” allows listing the devices and “/dev/sd*” lists the devices seen by Raspbian. With this command, you will know the number Raspbian has assigned for your drive.

Now, you can mount the USB flash drive and use it as an additional storage device with the command: sudo mount -t vfat /dev/[USB DEVICE NUMBER] /mnt/usb.

Raspberry Pi Can Keep Your Plants Happy

Those who like indoor plants know how important it is to maintain a proper atmosphere for the plants to grow happily. Only a few parameters are important – air humidity, air temperature and soil moisture apart from adequate sunshine. However, it is rare for people to be able to monitor the health and well-being of their flora personally, given the busy schedules.

That is where a single board computer such as the Raspberry Pi or RBPi can help. Being flexible in setting up and connecting to the various sensors necessary, this SBC not only looks after the plants, but also alerts you with SMS and via email whenever the situation differs from the normal. This project also has an app, Plant Friends, for your Android phone, so that you are up to date on the real-time and historical parameter data on your plants. The project consists of three main components – the sensor nodes, the base station and the app.

You need a sensor node for each plant. Each of these sensor nodes consist of an Arduino clone called Moteino fitted with an RF transceiver, a battery meter, a temperature sensor, a humidity sensor and a sensor for soil moisture. The sensor nodes collect the readings from all the sensors and transmit the data using the transceiver to the base station. The sensors and the base station are connected via the 915MHz ISM band.

For this project, users must be slightly above the beginner level. Some basic experience with Arduino hardware and Arduino IDE will be necessary – for installing libraries, making LEDs blink, etc. Additionally, experience in wielding a soldering iron is also necessary. On the RBPi side, it is essential to be familiar with the basic knowledge of the SBC and with installing the Raspbian OS.

The Plant Friends system has several advantages. It reminds you to water your plants and sends you an alert via email and/or SMS. It works for multiple plants at the same time, even if they are in different rooms of your home. Since wires are a minimum and all components of the system are of a reasonable size, you can move the plants and the system freely about the home.

The entire system consumes low power and therefore runs on batteries. Typically, battery swaps are necessary every 4 to 6 months. The electronics is low-maintenance as it is housed in a moisture-proof enclosure. The best part of the system is the Android app, as it allows monitoring from anywhere in the world.

An RBPi, model B, is used for the project, although a model A will work equally well. However, model B has more RAM and an Ethernet port, which may be necessary for flexibility. A USB Wi-Fi adapter helps to connect to the internet.

For each sensor node, you will need a holder for four AA type rechargeable batteries. In addition, you will need a combined sensor for temperature and humidity. For sensing the moisture in the soil, you may use a soil probe consisting of a PCB with exposed traces. However, ensure there is no lead involved.

PIR Sensor: Let Raspberry Pi Guard your Home

With a versatile platform such as the Raspberry Pi or RBPi, prototyping a project is very simple. The scale does not matter for you can start with a single blinking LED and move on to complex quad copters. If you have the necessary components, simply add a little amount of imagination, and RBPi can work wonders for you.

A practical use for the RBPi is to sense the surrounding environment. Not only is this interesting, but also gathering this data is useful in myriad ways. For example, a weather station uses different sensors to measure pressure, humidity, wind speed and temperature. The main objective in recording and manipulating such data is to predict future weather conditions. Anyone technically savvy can store this data and manipulate it to produce tables and graphs for importing into other applications or projects.

Using a PIR or Passive Infra-Red sensor with an RBPi can be an effective guard for your home. These inexpensive sensors are used with motion activated air fresheners from which, you can easily harvest a couple for building this project. The PIR and RBPi combination can act as an effective burglar alarm in homes and offices.

The PIR sensor effectively sends out a beam of infrared light into the area that it is monitoring. As long as there is no movement in the area, the beam remains undisturbed. However, the slightest movement causes the beam to change, which the PIR sensor can sense. The PIR sensor, when connected to the RBPi, sends it a signal once it detects movement. The RBPi responds to this signal in a manner defined by its program.

For this project, the PIR sensor is set up to watch over an area for any movement. As soon as it detects movement, it triggers the RBPi, which responds by capturing a picture of the event on its camera, including recording a 10-second video at a resolution of 640 x 480 pixels.

Additionally, the RBPi will send out a text message to the owner’s phone, thereby alerting the user of an intruder or whatever that triggered the event. The text message includes the picture and the video. After sending the text, the RBPi will wait for 30 seconds before resuming its watchful stance.

Apart from being an effective burglar alarm, you can use this combination of PIR sensor and RBPi with its camera in many innovative ways. For example, those who like to study birds and their habitat, can set it up near the nest to record the coming and goings of the parent birds.

Using a text message to alert the user is effective, as all phones are capable of receiving SMS. Other methods using emails or tweets usually rely on 3G or Wi-Fi coverage and may not be always useable. Additionally, you can use several alerts from the project simultaneously. The RBPi stores the pictures and video it captures in its memory. You can retrieve them later via any means convenient.

To set up, install the OS in the RBPi, enable the camera via raspi-config and test its working. Use the command “raspistill -o test.jpg” for testing. This produces an image file by the name test.jpg.