Category Archives: Customer Projects

Raspberry Pi add ons

Accessories have been flooding the market ever since the release of the tiny Single Board Computer Raspberry Pi (RBPi). Some of them merit a closer look because they can take your RBPi to the next level.

MotorPiTX board

For people interested in projects that need to run motors such as in robotics, the MotorPiTX board is a great accessory. It fits on top of the SBC and comes packed with some interesting features such as its own power supply (four AA batteries). This is enough to run the RBPi along with attached motors and servos. Full ATX style power controls are available, such as two 5V outputs (for LEDs), two bi-directional DC motor connectors, two servo connectors, two 3.3V inputs, one I2C breakout board and a micro-USB port.

A Smart IO Expansion Card

You can stack this add-on device atop the RBPi. As this is a super IO port, you can connect just about anything to it. There are 13 inputs for analog, pulse and digital signals, two analog outputs, eight digital outputs capable of 1A and ports for AHRS, CAN, RS485 and RS232. Apart from using it as an electronic test platform, the card can also be used for home automation, machine control, UAVs and robotics navigation.

The Pi Crust

This breakout board sits on top of the RBPi like a crust, allowing users to connect a multitude of devices easily. Rising only a scant 2mm above the RBPi base, the crust does not interfere with any other device connected to the RBPi. Pins are clearly labeled together, grouped logically together and include power, UART, SPI, I2C and GPIO. Female headers allow ease of connection along with plenty of GND and 5V pins.

SweetBox, Heat Sinks and ScorPi

SweetBox is a minimalistic approach to an enclosure for the RBPi and the smallest one in the market. It comes with a removable, flexible GPIO cap, allowing access to plug-in components. The SweetBox also has a set of anodized aluminum heat sinks that aid in extra heat dissipation. ScorPi is a flexible mount allowing the user to mount an RBPi camera, with direct plugin into the RBPi’s RCA port.

Power Supply Ignition Switch

This attachment allows using the RBPi with vehicles. It allows powering the RBPi through the electrical system of the vehicle. As you engage the vehicle’s ignition or turn it off, the attachment senses and powers the RBPi on or off safely. The built-in converter takes in 12/14V from the vehicle and provides 5V to the RBPi. Its ignition sensing talks to the SBC through two of its GPIO pins. The attachment retains power for the RBPi for 20 minutes after switch off. That means frequent stops will not repeatedly boot your RBPi. Additionally, if you left the RBPi running in the vehicle, the automatic shutdown feature will shut it off after four-hours to no-user activity.

HDMIPi HD Screen Prototypes

These are 1290×800 displays, which are not too expensive, portable and only 9-inch in size. You can watch movies comfortably, or incorporate into whatever project that needs a display. The cost-to-size ratio is perfect, competing successfully with the other portable screens in the market.

Different uses for USB flash drives

Almost everyone uses USB flash drives nowadays and the amount of data that these drives can store has increased tremendously. Typically, they can hold millions of pictures, thousands of songs and several HD movies. Although data storage is the primary function, flash drives have more to do beyond that. You may find the roles to be quite unusual:

Expanding SBC Storage

There are several Single Board Computers on the market today, with Raspberry Pi and BeagleBone being the most popular. Most come with limited amounts of storage in the form of SD, MMC and SDIO cards. Large capacity flash drives are a good substitute for expanding the memory.

A Secure Wallet for Holding Bitcoins

Nowadays, people financially endeavor to mine for Bitcoins and similar coins. Unless the data is securely held, this digital currency can be easily lost or stolen. If you are trading every day, an online wallet is fine, but if it is a savings account, it is preferable to secure the data offline in a flash drive, set up as a secure digital wallet.

Data Collection from an Embedded Host Controller

Nowadays, micro-controllers are available with host controllers that can use USB flash drives. Therefore, data logging and recording with such micro-controller based embedded host systems becomes simple as USB flash drives can be used to store data instead of a PC. That makes data recorders portable and simple.

Run a Website from A Flash Drive

Using automated templates and software, it is very simple to set up a website or a server running on a PC. However, if you want the site to be portable while allowing for changes and updates to it, put it on a USB flash drive. Of course, you may need some additional packages such as Server2Go, WAMPP and PHP 5.x.

Enhancing a PCs Virtual Memory

That one can boost the capabilities of aging PC systems by adding more RAM, is common knowledge. However, in most cases, RAM has already been added to the maximum possible capacity and no further addition is possible. Adding a USB flash drive and using it as extra virtual RAM is very simple for Windows users.

Carry Your OS and Apps with You

With the dramatic increase in the capacity of flash drives, you can conveniently carry your OS of choice and your apps wherever you travel. Along with the OS, you can carry diagnostic tools, virus scanners and different games for testing and repairing computers without installing anything on them.

Lock and Unlock A PC

If you have sensitive data on your networked PC, there are many ways perpetrators can access the system physically and bypass the system password. However, security software such as USB secure or Predator combined with a USB flash drive can keep your system from being hacked into.

Users need to attach the USB flash drive and enter the password when starting the system. The PC checks the presence of the drive every 30-seconds, and if it does not find the drive, it simply goes into lockdown.

BrickPi to Turn Your Raspberry Pi Into a Robot

It is easy to turn your tiny Single Board Computer, the Raspberry Pi (RBPi), into a robot. All that you need is a BrickPi board and a case that will fit onto your credit card size computer and make it capable of accepting inputs from sensors, to running motors and other parts. With the BrickPi, you can drive up to four EV3 or NXT motors and five sensors. A 9V battery powers the board and drives the motors and sensors, including the RBPi. While the sturdy case that holds the RBPi, has holes that can snap in LEGO parts, the LEGO Mindstorms’ BrickPi board untethers your RBPi from the wall outlet.

For programming the BrickPi, you have a choice from among three languages – Python, C and Scratch. If you need information on using these languages, visit the github site. It includes examples and drivers as well, including several projects that setup the BrickPi and demonstrate its use. The projects involve demonstrations of controlling the robot with web services such as Twitter, SSH and other web pages. Apart from the program listing for running these projects, the site includes Bill of Materials for the LEGO parts that the robots will need to use.

While the BrickPi controls the sensors, the LEGO motors and the new EV3 motors, the RBPi, in turn, controls the BrickPi. You can power the BrickPi with an on-board 9-12V battery pack, which will also supply the RBPi, the sensors and the motors. The design of the BrickPi is entirely open-source, so anyone can see the design and other details of the firmware design.

Creating a robot with the RBPi and BrickPi is indeed challenging, but not too difficult, since there are plenty of examples and drivers available. Once you have mastered the basics, you can progress to the more advanced creations. Using the LEGO elements makes the job even simpler and you can simply watch your computer come alive.

The BrickPi, controlling the four servomotors, offers precise control over the robot, ensuring that the robot moves with precision. The built-in rotation sensors can measure steps with on-degree accuracy. Among the other sensors is an ultrasonic sensor, to allow the robot measure distances and avoid obstacles. Two additional vision sensors allow the robot to sense and detect movement.

The BrickPi even has two touch sensors, with which your robot can pick things up on command, since they can detect when they are releasing or pressing something. For example, the touch sensor, when pressed, can allow your robot to talk, walk, turn off your TV or close a door. In addition, the included color sensor can be used either as a color lamp, distinguish light settings, detect black and white or distinguish a range of bright and paste colors.

Overall, the clever design elements in the BrickPi score an excellent rating. Users will enjoy the way it brings a new level of interaction to their experience of using LEGO parts and will appreciate the easy way of creating their first robot. The simplicity of building any robot from the cool hardware encourages inventive play.

VPN Server with Raspberry Pi

In almost all airports, hotels, libraries, schools and restaurants, there is a proliferation of free unencrypted wireless access points, which are easily accessible to all. Additionally, with the spread of mobile devices, getting on the internet is no longer confined to the office or the home. Usually, a high number of users share the same open access point. Although this arrangement is very convenient for the users, it is also favorable for the snooper with the skills and intent to invade into others’ privacy and collect internet traffic for nefarious purposes.

Security professionals cry themselves hoarse while preaching restraint when it comes to using free/public wireless access points. However, for users wanting to access their office via the Internet, other than waiting to get back home, very few alternatives are available that are practical, free to use or at least almost free. However, the situation can be easily rectified with an inexpensive Single Board Computer, the Raspberry Pi (RBPi) in conjunction with the freely distributed OpenVPN software.

Offices/homes (SOHO) usually have a private network, which remote devices such as tablets and mobiles access through a typical Remote-Access Virtual Private Network (VPN) configuration. The mobile (the client) must authenticate itself successfully and the VPN server then establishes an encrypted tunnel. Now all traffic between the server and the client via the Internet will be securely routed to the private network through this tunnel, simply as if the mobile (client) had connected directly into the network itself. As the traffic is encrypted, anyone listening in will not be able to decipher the content, and the communication remains safe.

Such an arrangement as described above is very easily implemented with OpenVPN, which is an open source VPN implementation that was developed by James Yonan. OpenVPN is a highly customizable solution and supports a huge range of capabilities and options, including the most relevant five:

• Authentication and encryption ensures privacy
• Protection against Denial of Service and zero-day vulnerabilities
• Protection and privacy through proxy
• SOHO network access
• Broad device supports

OpenVPN was created for ensuring privacy, authentication and encryption, which it does via implementation of SSL/TLS concepts. Two encryption modes are used: Pre-Shared Key and TLS. Pre-shared key concept uses static keys that must be generated and shared with all devices for authentication, to establish and encrypt the secure VPN channel. This arrangement is more like a single lock with multiple users, each holding a key. TLS is a more secure arrangement with private/public key pairs.

To defend against Denial of Service or DoS attacks and Zero-day vulnerabilities, OpenVPN implements a variant of the HMAC key protection. Use of proxy disallows sites such as Amazon, Google or Facebook to establish the VPN client location since they are solely based on the IP address. This provides additional protection for the mobile device, since the Internet traffic is routed through the SOHO network. SOHO networks usually deploy additional boundary security, such as IPS, and this protection is extended to the mobile device when it connects through the VPN.

The OpenVPN service provides secure access to the resources available on the SOHO network without opening extra ports through the firewall. The device support is broad and covers Windows, Mac OSX, Linux and Android. For implementation on RBPi, more information is available here.

A water cooler for the Raspberry Pi

Although the tiny Single Board Computer called the Raspberry Pi (RBPi) is mainly to teach the young kids how to code, several people are now hooked onto it and are executing extraordinary projects with it. Like other CPUs in regular computers, the RBPi can as well be overclocked and run in a turbo mode. Last year, the Pi Foundation, originators of the SBC, added the turbo mode and clarified that this will not void the warranty. Therefore, you can safely apply turbo mode when the RBPi is busy, limit turbo when the core of the RBPi (the BCM2835) reaches 85°C. By doing so, you will not be reducing the lifetime of your SBC.

Phame, from London, wanted to use more of the turbo mode without limiting the RBPi in any way. His immediate concern was to keep the BCM2835 cool. His motivation came in the form of a competition for building a new case for RBPi. That set him on the path of water-cooling the RBPi using a carefully designed case suitable for the purpose.

Phame went on to make a water block that sits on top of the RBPi’s CPU, LAN controller and some of the other components. Two pipes lead from the water block to a radiator filled with a coolant, circulated with a tiny British micropump. The radiator is a large aluminum tank, roughly 98x70x17 mm, containing more of the coolant. The entire rig sits in a frame and the pump draws its power from the RBPi. Phame custom made the frame, water block and the radiator, including the custom etching of the Pi logo on its interior.

The contraption works via convection, the process by which hot liquid rises to the top, to be replaced by colder parts of the liquid. As the CPU and other parts of the RBPi start to get hotter when run in turbo mode, the temperature of the coolant inside the water block that is in contact with the chips also rises. The hot liquid moves towards the upper part of the water block, and colder liquid flows in from the radiator below. By itself, this process would have sufficed to keep the temperature of the hot parts in check, but Phame added a pump to accelerate the coolant flow.

The micropump circulates the coolant between the radiator and the water block. Therefore, hot coolant from the water block moves on and colder liquid replaces it, thereby effectively removing the heat from the CPU and other parts. The hot liquid passes into the radiator, where it transfers the heat it is carrying into the aluminum. As a large surface of the aluminum radiator is in contact with the air outside, the heat is radiated into the ambient. Phame has gold-plated the internal surface of the aluminum radiator, so that the coolant in contact cannot corrode the surface.

You can see the rig in operation in this video. The only thing that Phame has not declared is whether he has operated the RBPi with the water cooler in place. It would be nice to have some temperature readings.

Add-On Board on Raspberry Pi Can Control Entire Building

If you thought that the tiny credit card sized single board computer, the inexpensive Raspberry Pi or RBPi was only good for home automation and no more, you may be surprised to learn that it can do a lot more – control an entire building, for instance. Of course, it will need assistance in the form of an add-on board, such as the UniPi.

Very often, people have used the RBPi for automatically controlling their sprinkler systems, the lighting in their house or even for guarding their homes while they are away on a holiday. Commercial systems have often used the RBPi as a prototype. A Czech startup with the same name, the UniPi, is now offering a baseboard and an add-on board for building automation that you can use with your RBPi.

The RBPi plugs into the UniPi baseboard via its 26-pin expansion connector. With this combination of the UniPi and RBPi, you can control the entire functions of a modest sized building. For example, it can read signals from different sensors such as humidity, temperature and/or status of alarms and switches to control gates, sprinklers, curtains, doors, lights and more.

To help with the sensors and control, UniPi is also offering a passive sensor hub that comes along with a free temperature sensor and an optional waterproof temperature sensor, should you need one. The UniPi baseboard has 14 opto-isolated digital inputs that can read sensor signals from 5 to 20V and show the status with LEDs. The board can read 0-10V signals on two analog inputs and output 0-10V on another analog output. On-board is a 12V power supply, along with eight changeover relays, which can switch 5A at 230VAC. That makes UniPi adequate for controlling power to sensor devices for an entire building.

For reading sensors, the UniPi is equipped with a single-channel 1-Wire interface. That makes it convenient to connect hundreds of humidity and temperature sensors. UniPi even allows the second I2C port of the RBPi and its UART to be extended with 5V level converters and provides ESD protection for them. Power loss does not affect the timing of the board as it has an RTC or real-time clock module for keeping time. UniPi is compatible with the RBPi model B Rev2 and it is possible to configure it for the Rev1 model as well. However, UniPi does not mention the possibility of compatibility with the latest model of the RBPi, the 40-pin model B+.

On their website, UniPi offers numerous tutorials based on C/Python libraries for people wanting to develop UniPi applications on the Linux-based RBPi. For example, there is the Webiopi, which is specifically useful for connectivity with the Python Internet of Things. Additionally, there is the Wiringpi library for GPIO interfacing and other libraries for Adafruit.

UniPi is offering its baseboard with on RJ45 connector for the 1-Wire interface and two RJ11 connectors – one for the UART and the other for the external I2C. It has one P1 header and another P5 header along with a 2.1mm standard power connector and an RBPi power jumper.

Add a Real Time Clock to Your Raspberry Pi

The Linux-based credit card sized single board computer, the Raspberry Pi or the RBPi is designed to be low-cost and of small form factor. As such, many features that are available on normal computers, but considered superfluous here, have been left out. The real time clock is one among them. That makes the RBPi unable to keep time when its power supply has been removed.

Typically, the RBPi is expected to be connected to the Internet via the Wi-Fi or the Ethernet and to update its time automatically from the Network Time Protocol servers available globally. In the absence of an on-board RTC, when there is no Internet connection or when the power to the board is removed, the RBPi is unable to keep time. However, that can be easily rectified by adding a small RTC module running on DS1307 and a tiny coin battery. This allows the RTC to continue to keep time even when the RBPi does not have power supplied to it.

To make things easy, use Adafruit’s Breakout Board kit for the DS1307 RTC. This kit already has all the parts required, including the coin battery. Although the components can be purchased separately and assembled on a breadboard, the coin battery holder can pose a problem, as it is not breadboard-friendly. The kit on the other hand, has a dedicated place for the battery holder, making it more convenient to use.

To allow the RTC chip to communicate effectively with the RBPi, the two 2.2KΩ resistors on the kit must be left out. There is no need for these resistors since the RBPI already has two 1.8KΩ resistors on-board and they are connected to the 3.3V supply, as the RBPi needs them to be. Therefore, either do not solder the two resistors to the breakout board, or, if you have already soldered them in, remove or clip them out. The breakout board needs 5V, so connect the VCC on the board to the 5V pin of the RBPi.

Now, you will need to set up the I2C interface on the RBPi. For this, your RBPi must be running a kernel that includes the RTC and DS1307 modules. The latest version of the Raspbian OS already has the modules included, but older versions may not have them. Adafruit has a wonderful tutorial that will guide you for setting up and testing I2C on the RBPi, check it out here.

At the command line, you can run the command “sudo i2cdetect -y 0” to check your wiring. If you have a rev2 RBPi, enter the command “sudo i2cdetect -y 1”. Once you see ID #68 being displayed, you know that your wiring is correct, as this is the address of the DS1307. Once you get the kernel driver running, i2cdetect will show UU instead of 0x68, further confirming that everything is good.

The next step is to load up the RTC module and set it up as root. Follow the tutorial for doing that and you can check the time with the command line “sudo hwclock -r”. If you are using the module for the first time, the date will be Jan 1 2000 – set it to the current time, and you are done.

Use Apples as Switches for Your Raspberry Pi

You may rightly question the logic behind using apples as switches for your Raspberry Pi, as against the usual hard plastic ones. Well, for one, we live in an analog world and there is much more fun in integrating items of daily use with your computer. For another, it pays to see the look of astonishment on someone’s face when picking an apple from a basket, if the computer were to reprimand him.

The tiny credit card sized single board computer, the ever-popular Raspberry Pi or RBPi can sense inputs with capacitive touch breakout boards. This is the basics of using several household objects as input sensors for the RBPi. You can use any conductive object, not only an apple, such as pencils (the graphite part), spoons and potatoes including any other fruits or vegetables that you may find handy.

Capacitive touch sensors detect the tiny amount of electric charge every human body carries. The breakout boards have a pad that is sensitive to touch. You can extend this pad to any object by attaching a wire, allowing the object to develop a sensitivity to touch. You will of course need to inform the RBPi of your intentions and to do that, put in some effort in programming it. Get help from this website.

With the hardware above and a few lines of Python, you will soon have a new way of controlling your projects and games that is fun and easy at the same time. There are three types of breakout boards that you can experiment with.

The first type is the momentary capacitive touch sensor. This detects as long as something continues to touch it. The sensor has an LED that glows when anyone touches the pad and remains lit until it detects the end of touch. This breakout board has a large touch-pad and a small copper hole near it. You can solder a piece of wire to the hole and extend it to a capacitive item such as a drawing you have made with pencil (graphite).

The second type of breakout board is the toggle type of capacitive touch sensor. The LED on the board comes on as soon as you touch its pad. The LED remains lit up even when you lift your finger off the pad. The LED will go off once you touch the pad again. Therefore, when you solder a piece of wire to the hole near the touch-pad and connect its other end to any conducting item such as a spoon, you can easily detect if someone has touched the spoon at least once.

The third breakout board is the most versatile of the lot. Surprisingly, it does not have any touch-pads, although it is named as a 5-pad capacitive touch sensor. Instead, it has five copper holes, so that you can connect five objects with five pieces of wire. Therefore, if you have five different fruits or vegetables, you can connect them up and the RBPi will help you to chart their individual responsive speeds against touch.

While the two boards will both need a 10K resistor each connected between the object and the board, the 5-pad touch sensor board does not require any resistors, as it has them on-board.

Raspberry Pi and Wolfram Alpha

If you are looking for something different from the regular Internet search that you get from Google, Yahoo or DuckDuckGo, try the new Computational Knowledge Engine Wolfram|Alpha (www.wolframalpha.com). In 2009, Stephen Wolfram Research released the new engine that could answer questions written in natural language.

When you try out Wolfram|Alpha, you may be surprised that the site does not actually work like the search engines you are so accustomed to. In fact, you may not see results to some of your simple queries. Regular search engines attempt to catalog the information on the Web, and that is exactly what Alpha does not do. Rather, the Wolfram engine is a computational knowledge engine.

Traditional search engines scour the web for sites to add them to their directories. They rank different pages up or down based on the algorithms built into them, judging them on several factors. If you have a public web site and it has links to it from other sites, chances are that traditional search engines will pick it up without any effort from your side.

It is different for Wolfram|Alpha. They rely on their own licensed databases where the content entered is tagged and cataloged by employees of Wolfram Research. To give an example of the scale of things we are dealing with, at the time of launch, Alpha servers had more than 10 trillion individual chunks of data. According to Wolfram Research, its employees vet all the information for accuracy before adding anything to the Wolfram|Alpha database.
Apart from the scientific search engine, Wolfram Research also has a piece of software called Mathematica, which is a highly respected program that helps people manipulate data in many ways. Now the company has released its Wolfram Language and this is the underlying platform for all its engines from Mathematica to Alpha. The best part is that you can run it on your tiny, credit card sized single board computer, the Raspberry Pi or RBPi.

Not only is Wolfram Language free to download and use, it runs on any platform and that includes RBPi and supercomputer clusters alike. You can run it locally or in the cloud to suit your requirements. According to Wolfram Research, its performance on the RBPi is somewhat faster than the NeXT cubes when Mathematica first shipped. Considering that the NeXT cubes were multi-thousand-dollar workstations, it is surprising what your tiny RBPi is capable of.

With the RBPi taking computing back to the level of hobbyists once again, the Wolfram Language and Mathematica take it to the next level for schoolchildren. In essence, the combination becomes a highly effective knowledge-driven computational device for kids to learn about programming computers at practically no major cost.

Wolfram Language claims to be ten times faster at development compared to other languages. This is because Wolfram Language aims to maximize the productivity of the programmer by automating most of the work and building as far as possible directly within the language. The programmer has to build only the unique parts of the code, while relying on the language for everything else. The result is concise readable code, which is easy to debug. Large systems can be simply built up incrementally with symbolic components.

Is banana pi tastier than raspberry pi?

It is surprising that for so long, no one had come up with a variant or clone of the ever-popular credit card sized single board computer, the Raspberry Pi or the RBPi. Ultimately, there is a Banana Pi from Lemaker, a China-based company. Banana Pi, although an RBPi-alike, is not a direct clone, but rather an evolution. Lemaker has used a more modern dual-core processor – the 1GHz ARMv7 AllWinner A20 – in place of the single-core ARMv6 700MHz Broadcom BCM2835. Lemaker has doubled the RAM to 1GB and Banana Pi has additional connectivity such as a USB OTG port and a SATA 2.0 port with built-in 5V power supply for 2.5-inch storage devices up to 2TB.

Performance comparisons between the two are stunning. During testing, the 95th percentile SysBench time for the Banana Pi was 29.72ms, outshining the RBPi’s 51.45ms. Banana Pi took only 2.39s to compress and 0.21s to decompress a 10MB gzip test file. RBPi was much slower on the same test and clocked 8.64s and 3.08s respectively. This proves that the dual-core processor is better at multithreaded applications as compared to the single-core processor on the RBPi.

Banana Pi has a somewhat larger footprint than the RBPi, which makes it incompatible to the several RBPi cases and mounts available in the market. Although the 26-pin GPIO header is claimed to be pin-for-pin compatible electrically, its position is shifted from the RBPi’s layout to make room for a mounting hole. Therefore, larger piggyback boards foul with the composite video output on the Banana Pi.

The A20 chip on the Banana Pi lacks the CSI or Camera Serial Interface and uses a parallel camera interface instead. Therefore, none of the off-the-shelf camera modules meant for the RBPi will connect to the Banana Pi. Lemaker has promised a camera module of its own in the near future.

Rather than produce a distribution just for their board, Lemaker has taken the route to porting existing Linux distributions to the Banana Pi. Therefore, users are treated to flavors of Linaro, Arch, openSUSE, Raspbian and Google’s Android as SD Card images. These distributions had trouble addressing the GPIO ports at the time of launch. However, Lemaker has worked hard and removed these bottlenecks. Now, most projects based on Wiring Pi, Raspbian or RPi.GPIO libraries have no trouble at all working on Banana Pi.

The Banana Pi, along with its faster processor, also boasts of faster and more reliable USB ports. However, the most interesting addition is its SATA connectivity. This is not offered even in the newest RBPi Model B+. You can connect a mass storage device to the Banana Pi via the angled SATA port on the top side of the board, without tying up one of the USB ports. However, Banana Pi has only a 233Mb/s network throughput.

Overall, although Lemaker may have blatantly attempted to copy the RBPi, it has demonstrated possibilities of a few impressive improvements. On the positive side are the more powerful processor and the useful SATA port. On the negative side, there is the larger footprint, lack of CSI and altered layout along with a bottlenecked network and software bugs.