Archive

Posts Tagged ‘raspberry pi’

SZTomato TVI Amlogic S905X Development Board to Support Android 6.0, OpenELEC 7.0, and Ubuntu 16.04

August 16th, 2016 11 comments

Shenzhen Tomato has been selling Android TV boxes for a few years now, but one of their next product will be a development board based on Amlogic S905X processor with 8GB flash, 2GB RAM, and the usual 40-pin Raspberry Pi header.

Click to Enlarge

“VIM3316” Board – Click to Enlarge

SZTomato TVI development board specifications:

  • SoC –  Amlogic S905X quad core ARM Cortex-A53 @ up to 2.0GHz with penta-core Mali-450MP GPU @ 750 MHz
  • System Memory – 2GB DDR3 (1GB or less as option)
  • Storage – 8GB Samsung eMMC flash (other capacities as option)  + micro SD slot
  • Video & Audio  Output – HDMI 2.0a up to 4K @ 60 Hz
  • Connectivity – Fast Ethernet port, 802.11 b/g/n WiFi and Bluetooth 4.0 (Ampak AP6212) with IPEX connector
  • USB – 2x USB 2.0 host ports with 500mA fuses, 1x USB type C port for power and USB devices (no video)
  • Expansion header – 40-pin Raspberry Pi compatible header with USB, UART, I2C, ADC, PWM, JTAG, I2S, and GPIOs
  • Misc -Blue & red LED, dual channel IR, power/function/reset keys, header for RTC battery
  • Power Supply –  5V via USB type C or extra header with 2.5A fuse
  • Dimensions – 82.0 x 57.5 x 11.5 mm
Click to Enlarge

Click to Enlarge

The company will provide support for Android 6.0, OpenELEC 7.0 and Ubuntu 16.04, and source code will be provided to customers.

The bad news is that the board will only be sold to companies purchasing in volume, not to hobbyists. The company told me they already have engineering samples, and accept order from OEM/ODM customers. Price has not been disclosed publicly, but I’m guessing it should probably be around $40 or less. [Update 24/08/2016: More info can now be found on TVi product page. They have four versions: TVi, TVi Lite, TVim and TGVim with different memory, storage, and wireless configurations]

Project OWL Open Source Hardware Ophthalmoscope is 25 Times Cheaper than Commercial Products

August 12th, 2016 3 comments

Medical grade equipments are usually very expensive, partly because of their complexity, but also because of certifications,   legal reasons, and low manufacturing volumes. That’s where open source hardware can make a big difference, and there has been several open source hardware prosthetic hands or arms such as Openbionics hand, but Ebin Philip and his team has tackled another issue with Project OWL, an open indirect ophthalmoscope (OIO) designed for screening retinal diseases, which normally costs between $10,000 to $25,000, but their open source hardware design can be put together for about $400.

Open_Source_Hardware_Ophthalmoscope

The design features a Raspberry Pi 2 board connected to a WaveShare 5″ Touchscreen LCD, a Raspberry Pi Pi IR Camera (M12 lens mount) with 16mm FL M12 lens, a 3 Watt Luxeon LED, two 50x50mm mirrors, a linear polarizer sheet, a 20 Dioptre disposable lens, and various passive components.

Project_OWL_Prototype

OIO (OWL) Prototype development

While the Raspberry Pi board is not open source hardware itself, Ebin has shared the CAD files for the design, as well as the schematics and gerber files for the RPi shield used in the project on Hackaday.io, where you’ll also find some details about the project log. Assembly instructions are currently missing however. One of the software side, the image are processed through OpenCV to remove background image and reflections.

The main goal of the project is to detect retina problems on diabetic patients in rural areas:

Currently there are over 422 million people worldwide suffering from diabetes. 28.5% of them suffer from Diabetic Retinopathy. 50% of diabetics are unaware about the risk of losing their vision. The number of cases of diabetic retinopathy increased from 4 million in 2000 to 7.69 million in 2010 in US alone. Early detection and Treatment can help prevent loss of vision in most cases.

Detection of Diabetic Retinopathy, requires expensive devices for Retinal Imaging , even the cheapest of them costing more than $9000 each. This makes good quality eyecare, expensive and inaccessible to the less privileged. The key idea in the development of OIO (code-named Project OWL) is to provide an affordable solution to help identify DR and hence prevent cases of “avoidable blindness”.

I’m unclear whether this tool is also appropriate for other tests such as dilated fundus examination, or to check the optical nerves for glaucoma patients, etc…. But if it can be used or adapted for such purposes the implications would even better greater.

U-Boot Now Supports UEFI on 32-bit and 64-bit ARM Platforms

August 11th, 2016 17 comments

Intel/AMD x86 based computers now boot via a standard UEFI binary, which can load grub2, allows you to update the command line as needed, or select different version of the Linux kernel. On ARM everything is a little more complicated and messy, as bootloaders such as U-boot need to support different configurations formats.

Raspberry_Pi_UEFI_GRUB2_U-BootAlexander Graf has been working on implementing UEFI support in U-boot, and it’s now supported by U-boot mainline and enabled by default for 32-bit and 64-bit ARM platforms, but not x86-64 (yet). That means you should now be able to boot any ARM boards supported by mainline U-boot through UEFI. Alexander gave a presentation about his work at an openSUSE event in June, and demonstrated u-boot with UEFI, and GRUB2 support with an openSUSE image running on a Raspberry Pi board.

Thanks to David for the tip.

Samsung JerryScript is a Lightweight Open Source JavaScript Engine for the Internet of Things

August 2nd, 2016 6 comments

In the old days, micro-controller programming was all done in assembly or C, but in recent years higher level languages, included interpreted ones such as Python and JavaScript, have made their ways into MCUs with projects such as MicroPython or Espruino (JS) often running on STMicro STM32 ARM Cortex M micro-controllers, but also other platforms such as ESP8266.

JerryScriptAs I browsed through the Embedded Linux Conference Europe 2016 schedule, I discovered that Samsung worked on it own implementation of a JavaScript engine for the Internet of Things: JerryScript. It is a full implementation of ECMAScript 5.1 standard written in C that can run on micro-controllers with less than 64KB RAM, and less than 200KB storage (160KB footprint with ARM Thumb-2 compilation).

JerryScript is comprised of two main components: Parser and Virtual Machine (VM), with the parser performing translation of input ECMAScript application into byte-code than is then executed by the Virtual Machine that performs interpretation.

 

JerryScript High Level Design

JerryScript High Level Design

Although JerryScript is designed for MCUs, and is said to be running on hundreds of thousands of smartwatches, you can easily build it and try in any machine running Linux:

You can also compile the code for full, compact or minimal implementation, use the C Api to integrate JavaScript support into your program, etc… Many more details can be found on JerryScript website and Github repository. JerryScript is also used in IoT.js framework for the Internet of Things that currently runs on Linux and NuttX RTOS platforms, as well as STM32F4-Discovery + “BB” (Beaglebone Black?) and Raspberry Pi 2, and will soon be ported to Samsung Artik 1 (MIPS), STM32F429-Discovery, STM32F411-Nucleo, and Intel Edison boards.

 

Embedded Linux Conference & IoT Summit Europe 2016 Schedule

August 2nd, 2016 4 comments

Embedded Linux Conference & IoT summit 2016 first took place in the US in April, but the events are now also scheduled in Europe on October 11 – 13 in Berlin, Germany, and the schedule has now been published. Even if you are no going to attend, it’s always interesting to find out more about the topic covered in that type of events, so I had a look, and created my own virtual schedule with some of the sessions.

Embedded_Linux_Conference_Europe_2016Tuesday, October 11

  • 10:40 – 11:30 – JerryScript: An Ultra-lightweight JavaScript Engine for the Internet of Things – Tilmann Scheller, Samsung Electronics

JerryScript is a lightweight JavaScript engine designed to bring the success of JavaScript to small IoT devices like lamps, thermometers, switches and sensors. This class of devices tends to use resource-constrained microcontrollers which are too small to fit a large JavaScript engine like V8 or JavaScriptCore.

JerryScript is heavily optimized for low memory consumption and runs on platforms with less than 64KB of RAM and less than 200KB of flash memory. Despite the low footprint, JerryScript is a full-featured JavaScript engine implementing the entire ECMAScript 5.1 standard. It is actively used in production and runs already on hundreds of thousands of smartwatches!

JerryScript is an open source project and has been released under the Apache License 2.0. The talk will include a demo showing JavaScript code executing on top of JerryScript on a resource-constrained microcontroller.

  • 11:40 – 12:30 – Read-only rootfs: Theory and Practice – Chris Simmonds, 2net

Configuring the rootfs to be read-only makes embedded systems more robust and reduces the wear on flash storage. In addition, by removing all state from the rootfs it becomes easier to implement system image updates and factory reset.

In this presentation, Chris shows how to identify components that need to store some state, and to split it into volatile state that is needed only until the device shuts down and non-volatile state that is required permanently. He gives examples and shows various techniques of mapping writes onto volatile or non-volatile storage. To show how this works in practice, he uses a standard Yocto Project build and shows what changes you have to make to achieve a real-world embedded system with read-only rootfs. In the last section, Chris considers the implications for software image update. Expect a live demonstration.

  • 14:00 – 14:50 – Comparison of Linux Software Update Technologies – Matt Porter, Konsulko

The update of software in an embedded Linux system has always been an important part of any product. In the past, however, planning and design for software update was often an afterthought in system design. Further, software update mechanisms for embedded Linux products were typically implemented as ad hoc one-off projects within each product company. As the requirements for products have matured to include security updates at a frequent intervals, software update strategy has become a focal point of product development. This session will explore a number of different Linux software update technologies that are FOSS projects, comparing each for their strengths and weaknesses. In order to better understand the applicability of these technologies, we will also deep dive into both common and uncommon use cases that drive requirements for these software update mechanisms.

  • 15:00 – 15:50 – Building a Micro HTTP Server for Embedded System – Jian-Hong Pan

Apache HTTP Server, NGINX .. are famous web servers in the world. More and more web server frameworks come and follow up, like Node.js, Bottle of Python .., etc. All of them make us have the abilities to get or connect to the resources behind the web server. However, considering the limitations and portability, they may not be ported directly to the embedded system which has restricted resources. Therefore, we need to re-implement an HTTP server to fulfill that requirement.

Jian-Hong will introduce how he used the convenience of Python to implement a Micro HTTP Server prototype according to RFC 2616/HTTP 1.1. Then, re-write the codes in C to build the Micro HTTP Server and do the automated testing with Python Unit Testing Framework. Finally, he’ll explain how he combined the Micro HTTP Server with an RTOS, and lit the LEDs on an STM32F4-Discovery board.

  • 16:10 – 17:00 – Stuck in 2009 – How I Survived – Will Sheppard, Embedded Bits Limited

When developing Linux based products it’s desirable to use the latest version of the Linux kernel – however this is not always possible. In this presentation Will Sheppard will enlighten you with his experiences in developing a product based on a 2.6.28 kernel. Throughout the presentation he will share with you the reasons why you can be stuck with an old kernel, the issues this causes and the surprising and unexpected benefits that also arise. The presentation will also give you an indication as to how far the kernel has developed since 2009 and perhaps some hope if you too are also stuck working in the past.

  • 17:10 – 18:00 – Power Management Challenges in IoT and How Zephyr RTOS Meets Them – Ramesh Thomas, Intel

An OS that runs on tiny IoT devices is already meeting several challenges. These challenges are due to the limited resources in these devices and the diverse nature of the applications and the ecosystem. These same reasons make adding an effective power management infrastructure extremely complex. These devices that run on tiny batteries for extensive periods, mostly unattended, have a very critical need to conserve power.

Zephyr is a RTOS from Intel, designed for IoT and wearable devices. It is open source and supports x86, ARM and ARC SoC platforms. It has a small footprint and can run with very less memory. Power management is built in the core of its scheduling and idling design. It exports infrastructure for PM services to implement custom power policies.

This presentation will give an insight into the Zephyr power management design and the philosophies behind it.

  • 18:10 – 19:00 – BoF: Linux Device Performance Framework – Michael Turquette, BayLibre

Complex system-on-chip processors provide performance levels for their devices and peripherals. The same chips also provide interconnects with performance knobs connecting these devices. For years, Linux has not provided a way to express the relationship between a device and its performance states, nor a uniform method for drivers to change these states. There are many solutions to this in downstream vendor trees. Let’s fix that.

The purpose of this BoF is to start a discussion around the topic with a wide audience, solicit feedback on the currently proposed approach and move forward with consensus. This BoF will discuss the types of performance states that need to be modeled, existing Linux driver frameworks that can be re-used, new code that needs to be written and how Device Tree plays a role. Will we write a new DVFS or Interconnect Framework? Attend and find out!

Wednesday, October 12

  • 09:00 – 09:50 – Supporting the Camera Interface on the C.H.I.P – Maxime Ripard, Free Electrons

Every modern multimedia-oriented ARM SoC usually has some kind of camera interface to be able to capture a video (or photo) stream from an external camera. The framework of choice to support these controllers in Linux is the Video4Linux subsystem, also called v4l2.

This talk will walk through the v4l2 stack, the architecture of a v4l2 driver and the interaction between the SoC driver and its camera’s. The presentation is based on the work Free Electrons has done to develop such a driver for the Allwinner SoCs, as part of enabling the C.H.I.P platform with the upstream Linux kernel.

  • 10:00 – 10:50 – How to Develop the ARM 64bit Board, Samsung TM2 with Exynos5433 – Chanwoo Choi, Samsung Electronics

In the last period of twenty years ARM has been undisputed leader for processor’s architecture in the embedded and mobile industry. With its 64 bit platform, ARM widens up its field of applicability. The ARMv8 introduces a new register set, it is compatible with its 32 bit predecessor ARMv7 and suits best those system that try to be amongst the high end performance devices. Tizen OS is an open multi profile platform that can run on TV, mobile, cars and wearables. Samsung TM2 board based on Exynos5433, which patches has been recently posted to mainline, is an ARM 64-bit board supported by Tizen 64-bit. However, during the bring-up, the kernel developers have faced many challenges that will be presented in this session. The presentation will go through a number of issues and the way they have been solved in order to make Tizen run on a 64 bit platform.

  • 10:45 – 11:35 – Devicetree Hardware Autoconfiguration – Hans de Goede, Red Hat

One can buy 7″ android tablets for around $35 now, assuming one gets the standard Q8 Allwinner based model, these are actually supported by the mainline linux kernel now. These tablets use a standard case + SoC + display, which get paired with a different touchscreen-controller, accelerometer and wifi chip for every other batch.

This talk will outline my experience in making a single devicetree file covering all variants using an in kernel hardware auto-detection module which creates and applies devicetree changesets depending on the detected hardware. This talk will give the audience an idea what is and is not possible wrt dynamic devicetree usage as well as give does and don’ts for people who want to use dynamic devicetree themselves.

  • 11:45 – 12:35 – Wyliodrin STUDIO: An Open Source Tool for IoT Development – Alexandru Radovici, Wyliodrin

Have you been using your development board (like the Raspberry pi for example) as a glorified computer? Are you tired of needing to hookup your boards to a display and keyboard any time you want to program them?

Wyliodrin STUDIO is a software development tool especially created for the design of IoT projects. It comes as an open source Chrome extension so that programmers can use it independently of their specific OS platform and with little setup overhead.

Wyliodrin STUDIO abstract away many of the issues regarding setting up your development boards and allows programmers to directly focus on their projects. It offers a friendly programming environment with many of the features of advanced IDEs, like Eclipse. For beginners, Wyliodrin STUDIO offers a large range of tutorials to help people take their first steps in IoT development. MagPi gave Wylidorin STUDIO a 5/5 rating.

  • 14:00 – 14:50 – ASoC: Supporting Audio on an Embedded Board – Alexandre Belloni, Free Electrons

ASoC, which stands for ALSA System on Chip, is a Linux kernel subsystem created to provide better ALSA support for system-on-chip and portable audio codecs. It allows to reuse codec drivers across multiple architectures and provides an API to integrate them with the SoC audio interface.

This talk will present the typical hardware architecture of audio devices on embedded platforms, present the ASoC API and how to use it for machine drivers, which are used to glue audio codecs with the processor audio interface. Examples, common issues and debugging tips will also be discussed.

  • 15:00 – 15:50 – Cameras in Embedded Systems: Device Tree and ACPI View – Sakari Ailus, Intel

Cameras in embedded systems are often collections of different components rather than monolithic devices such as USB webcams. They consist of sensors, lenses, LED or xenon flashes and ISPs, each of which are individual devices with their specific drivers.

Once the prevalent solution for supporting hardware variation between different ARM based systems was platform data. Since around 2011 new platform data files have had hard time getting to mainline, the preferred solution being the Device tree. However, Device tree support in the V4L2 framework was not around until over a years after that, additionally help from the V4L2 async framework is also required in order to achieve the same functionality as with platform data.

This talk shows how the frameworks are used in drivers and Device tree source, reviews the status of ACPI and discuss potential future developments.

  • 16:30 – 17:20 – Swapping and Embedded: Compression is the Key – Vitaly Wool

Ever since Linux started running on embedded devices, having a swap for such had been considered a misconfiguration rather than a method for overcoming RAM shortage or performance booster. This attitude started to change with the spread of Android devices which usually don’t have a problem utilizing virtually any amount of memory. An with the introduction of ZRAM the usage of a compressed swap in RAM became more useful and more popular. This talk will give a comprehensive description of ZRAM and its counterpart, zswap, a summary of pros and cons of both. This talk will also cover a brand new z3fold compressed memory allocator which can be used for both zswap and ZRAM, of course presenting measurement results for these, obtained on various devices, ranging from set top boxes to laptops, not to forget Android phones.

Thursday, October 14

  • 09:00 – 09:50 – Time is Ready for the Civil Infrastructure Platform – Yoshitake Kobayashi, Corporate Software Engineering Center & Urs Gleim, Seimens

The Civil Infrastructure Platform (CIP) – launched in April – CIP defined and started to realize a super long-term supported open source “base layer” for industrial grade software. This base layer aims to be used for current and future industrial systems which supports machine-to-machine connectivity for digital future. This kind of systems, being the field for decades, should have long-term support for security and robustness reasons. In this talk, we will show the first steps on CIP development. This includes initial set of components for the base layer and its maintainers. Are you ready? It’s time to start your development with and for the CIP.

  • 10:00 – 10:50 – Introduction to Memory Management in Linux – Alan Ott, Signal 11 Software

All modern non-microcontroller CPUs contain a memory management unit and utilize the concept of virtual memory. This presentation will describe the different types of virtual memory spaces and mappings used in the Linux kernel, the cases in which they are useful, how they are implemented in the kernel, and how they differ from user space memory. Concepts such as the hardware memory-management unit (MMU) and translation lookaside buffer (TLB) will be discussed, as well as software concepts like kernel page tables. User space concepts such as growable stacks, memory paging, memory mapping, page faults, exceptions, and other memory-related conditions will be covered as well.

  • 11:15 – 12:15 – MinnowBoard Delta: Fishing for Easy IoT Hardware – David Anders, Intel

With the introduction of the Zephyr Project, a small scalable real-time operating system for use on resource-constrained systems, the need for an easy to use platforms to enable Internet of Things development has grown. With the idea of enabling both hardware and software developers to quickly prototype and develop proof-of-concept, as well as transitioning directly to product, the MinnowBoard Delta was designed as an open source hardware platform to highlight the Zephyr Project. This presentation will cover design considerations as well as implementation methods for creating open source hardware specifically for open source software.

  • 12:15 – 13:05 – Cloud Platforms for the Internet of Things: How Do They Stack Up? – Koustabh Dolui, Politecnico di Milano

With the advent of the Internet of Things (IoT), there has been a recent surge in the number of cloud platforms offering their services for data collection and processing from IoT devices. These platforms, open-source and closed, are diverse in terms of ease of use, architecture, data storage, privacy, security and communication protocols. However, how these cloud platforms measure up against each other, given the set of tradeoffs that they present, remains quite unexplored in existing literature. In this presentation, Koustabh will present a detailed study on the architecture that these platforms are based on and how the open source platforms compare against closed platforms. Koustabh will compare the platforms based on a real data-set generated from a sensor network deployed at the heritage site of Circo Massimo, Rome, as a part of an ongoing project at Politecnico di Milano, Italy.

  • 14:30 – 15:20 – GPIO for Engineers and Makers – Linus Walleij
We will go over the changes to the GPIO subsystem in the recent years, including GPIO descriptor refactoring, new support for things like open drain, some words on device tree and ACPI hardware descriptions, and we will discuss the new userspace character device ABI for GPIO chips and how use cases such as those presented by the maker community or industrial control clients can benefit from it. We will also talk a bit about the future direction of the subsystem.
  • 15:30 – 16:20 – FDO: Magic ‘Make My Program Faster’ Compilation Option? – Pawel Moll, ARM

Feedback Driven Optimisation (FDO), also known as Profile Guided Optimisation (PGO) is a well known code optimisation technique, employed by compilers since mid XX century, yet not widely used in the wild these days. It relies on providing runtime-captured information about code execution (eg. “branch taken or not?”) during next code compilation, improving quality of decisions made by compiler heuristics.

To be fair, there were good reasons for its demise which I hope to discuss, mainly time and complexity overhead and deployment difficulties, but there is some hope on the horizon, coming with new approach, called AutoFDO and originating at Google, based on statistical profiling (namely Linux perf + extra tools) and source code level attribution. I’ll discuss existing support for it available in mainline GCC and LLVM and give examples of real-life, successful deployments.

If you’d like to attend the event, you can do so by registering online, and paying the entry fee:

  • Early Registration Fee: US$550 (through August 1, 2016)
  • Standard Registration Fee: US$650 (August 2, 2016 – September 3, 2016)
  • Late Registration Fee: US$850 (September 4, 2016 – Event)
  • Student Registration Fee: US$175 (valid student ID required)
  • Hobbyist Registration Fee: US$175

Dragino LoRa/GPS HAT Board for Raspberry Pi Sells for $32

July 27th, 2016 8 comments

There are several ways to play with LoRaWAN protocol on the Raspberry Pi including RisingHF Discovery kit or Cooking Hacks LoRa Shield for Raspberry Pi, but the latter requires you to spend close to $100 just for the shield, the complete Lora discovery kit costs close to $400. Dragino Tech LoRa/GPS HAT board should be a more cost effective way to get started with LoRa on Raspberry Pi, as it sells for $32 + shipping on Tindie.

LoRa-GPS_Hat_Raspberry-Pi

Dragino LoRa/GPS HAT specifications:

  • Connectivity
    • LoRa
      • Semtech SX1276/SX1278 transceiver @ 433/868, or 915 MHz (Country dependent, pre-configured in the factory)
      • 168 dB maximum link budget.
      • +20 dBm – 100 mW constant RF output vs. +14 dBm high efficiency PA.
      • Programmable bit rate up to 300 kbps.
    • GPS
      • L80 GPS module based on Mediatek MT3339 SoC
      • Horizontal Position Accuracy: autonomous <2.5 m CEP.
      • TTFF@-130dBm with EASY (AGPS): Cold Start <15s,Warm Start <5s,Hot start <1s;
      • TTFF@-130dBm without EASY (AGPS):Cold Start <35s,Warm Start <30s,Hot Start <1s.
      • Timing Accuracy:1PPS out 10ns,Reacquisition Time <1s.
      • GPS automatic switching between internal patch antenna and external active antenna
  • Built-in temperature sensor and low battery indicator
  • Low power consumption (no specific data)
  • Dimensions – 60 x 53 x 25 mm; HAT compliant with Raspberry Pi 2 Model B/Raspberry Pi 3.
  • Weight – 30g

The package includes the HAT board, 4x brass spacers, 4x screws, 4x nuts, and an external antenna suitable for 433, 868, or 915 MHz as needed.

Dragino HAT with Antenna connected to Raspberry Pi 3 Board

Dragino HAT with Antenna connected to Raspberry Pi 3 Board

The board also comes with some apparently decent documentation explaining how to use both LoRa and GPS with the Raspberry Pi 2 or 3, as well as links to schematics (PDF), and other technical documentation. Some typical applications of such board include automated meter reading, home and building automation, wireless alarm and security systems, industrial monitoring and control, and long range irrigation systems.

Beside Tindie, the board can also be purchased on Eleduino for $39 shipped, and by the end of this article, I’ve also come across an even cheaper Dragino Lora Shield for Arduino (433 MHz) selling for $19 on Seeed Studio. More details can also be found in Dragino Tech LoRa/GPS HAT page.

Raspberry Pi Club Battery / UPS Kit Assembly Guide and Review

July 25th, 2016 12 comments

A couple of months ago, I wrote about a Raspberry Pi battery kit with a 3,800 mAh battery, a battery control board, an acrylic enclosure, and an heatsink + fan set that I found on DealExtreme for about $22. I decided to buy it once I got confirmation the battery was included, and so today I’ll write about my experience assembling the kit, and running it with a Raspberry Pi 2 board. If you are only interested in the “RPi PowerPack” battery control board and battery, you can find them on Banggood for $11.93.

Raspberry Pi Club Battery Kit Unboxing

DX put all the accessories inside a zip bag, and shipped it in a bubble envelop.
DX_Raspberry_Pi_Battery_Kit_Unboxing

It contains a white box with the RPi PowerPack V1.0 battery and battery, several screws, spacers, and bolts sets, a fan with screws, an acrylic case with three layers, an heatsink set with two aluminum heatsink for the Broadcom processor and USB hub, and a copper plate for the memory, as well as a short USB cable to connect the power from the battery board to the Raspberry Pi.

Click to Enlarge

Click to Enlarge

The three acrylic plate are covered by brown covers on each side. It can be peeled optionally, but I discovered they would not come off that easily, so I left it that way.

Click to Enlarge

Click to Enlarge

The top of the top has the connector for the battery (already connected), two USB ports include one “Output For RPi” to connect to Raspberry Pi micro USB port for power, one micro USB port to connect a 5V/2A charger, an On/Off switch, and a charge status LED.

The board can be used a as dumb UPS taking care of keeping power during outages, but you could make it more useful with some hardware hacking, by connect the Charge status LED to the Raspberry Pi board to find out when the battery is charging, as as well as the positive output from the “LiPo” connector via an ADC chip in order to monitor the battery voltage level in order to know when the battery level is critical, and to take actions such as powering off the Raspberry Pi board.

Raspberry_Pi_Club_Battery

The back of the board just have the 3,800 mAh battery firmly attached to the board.

Raspberry Pi Club Battery Kit Assembly

Assembly is quite straightforward if you look the picture on DealExtreme, but I’ve shot a video explaining how to assemble the kit. Sadly, my Linux based video editor (Openshot-qt) is very unstable, and I’ve not been able to create the video after multiple attempts (any recommendations for a Linux Video Editor with fast forward support?).

But basically I did as follows:

  1. Fasten the Raspberry Pi board to the middle plate with the four smaller spacers and corresponding bolts.
  2. Insert four long spacers to the top plate (with the hole for the fan)
  3. Attach the fan to the top plate with its screws/bolts
  4. Connect the fan to 5V (pin 4), and GND (pin 6)
    Raspberry_Pi_Battery_Kit_Fan_Connection
  5. Fasten RPi PowerPack to the bottom plate with four medium spacers, screws (bottom), and bolts (top)
  6. Screw four long spacers to the long spacers instead on the Raspberry Pi acrylic plate
  7. Attach the bottom cover with the four remaining screws
  8. Insert the short USB Cable between the USB port of the battery board and the micro USB port on Raspberry Pi board
  9. Done!
Click to Enlarge

Click to Enlarge

I could not find one screw during assembly, but finally they are all accounting for. Just one decided to hide under a bag 🙂

Raspberry Pi Club Battery Kit Review

Now that assembly is complete, it’s time to connect a 5V/2A micro USB power supply to test the battery and fan.

As soon as I applied power, I noticed that the fan was turning, and Raspberry Pi 2 board running, irrespective of the On/Off switch on the battery board. The charge LED is turn on as long as power is applied, and the battery is not fully charged.

Raspberry_Pi_Battery_Kit_Power_ButtonThen after I cut off the power from my power extension, and the Raspberry Pi board was still running fine, although the fan was turning a little faster, likely because the voltage straight out of the battery board is higher than the one from the power supply (e.g. 5V vs 5.4V). It’s only in this mode (no mains) that the OFF mode for the power switch is useful, and Raspberry Pi board will stay powered off.

I’ve also let the Raspberry Pi 2 run Raspbian in idle mode for over two hours on the battery and no problem. A 3.7V / 3,800 mAh battery has about 14 Wh capacity, and since the Raspberry Pi consumes less than 5 Watts in most cases, it should be good for at least 2 to 3 hours, but it depends on your load. Disconnecting the fan would also extend it a little longer.

When I tried the UPS mode in the video review above I did not connect the Raspberry Pi to a monitor, but once I did, I discovered the screen will blink (black) for about a second when switching from mains to the battery, and for one out of my 10 tries, the board rebooted while switching power from mains to battery. So this may not be a 100% reliable solution for UPS. [Update: See comments below as the fan seem to affect the results]

Raspberry Pi Bootloader License Precludes it to Run on Competing Broadcom BCM283x Boards

July 19th, 2016 17 comments

Yesterday I wrote about ArduCAM Raspberry Pi compatible module, that packs most of the features of Raspberry Pi Zero or Pi Compute module into a 24x24mm board, and is based on Broadcom BCM2835 processor. One person also started a thread on Raspberry Pi forums about the tiny module, and one of the Raspberry Pi engineer and forum moderator replied that will would breach the bootloader license.

Raspberry_Pi_Bootloader_LicenseThe important part is the sentence highlighted above:

This software may only be used for the purpose of developing for, running or using a Raspberry Pi device.

ArduCAM module is only Raspberry Pi compatible, so it would indeed breach the license, and you can get into troubles if you planned to use that module in a commercial project, especially in countries where IP protection is taking seriously.

This raises a few questions. First why did the Raspberry Pi foundation chose that restrictive license? The obvious answer would be to protect there investment, but it’s also possible that since the bootloader and firmware is related to the GPU, video codec license may also have been a part of the decision.

The other issues is that after ordering 5K Broadcom BCM2835 processors for the first run of their ODROID-W module, Broadcom decided not to sell the processor anymore to Hardkernel subsequently. The exact reason is not known, but there are speculations that it was because of the Raspberry Pi foundation, and the license above may have been a reason for it. So could this also happen to ArduCAM? In theory yes, but If I’m not mistaken the company is based in China, and there are multiple smaller distributors, but it may not be quite as easy for Broadcom to block them.

The final question I has is whether it could possible to legally use the board without using the bootloader. Maybe… thanks to Kristina Brooks work on an open source bootloader for Raspberry Pi, released under BSD and GPLv2+, and not including any “Raspberry Pi only” conditions. There are some serious caveats such as no support for video codecs (licenses are part of it too), and while it can boot Linux, some things are broken.

If you are based in mainland China, and your customers are all based there, you probably don’t have to care about any of this, but in the western world, commercial projects should probably keep using official Raspberry Pi parts, or other solutions not involving Broadcom processors, nor official Raspberry Pi OS images.