Evolution of a Blog

This blog has evolved as I have as a maker. It starts at the beginning of my journey where I began to re-tread my tires in the useful lore of micro electronics and the open-source software that can drive them. While building solutions around micro-electronics are still an occasional topic my more recent focus has been on the 3D Printing side of making.

Wednesday, June 12, 2013

Technology Alternatives - Summary, Conclusion, Recommendation

This post is part of a thread titled "What Technology to Choose for a Physical Interface Project"

Summary, Conclusion, Recommendation


The following two charts provide a summary of my conclusions after an initial period of "hands-on" evaluation.



My conclusions, in narrative form, were summed up as follows:
  • Cost does not seem to be a huge issue given that all of the solutions are close in terms of required investment.
  • Customer requirements that demand a high degree of computation for analysis could make the single-board computer alternatives attractive given the limited memory available on the Arduino boards.
  • The Arduino Mega would be the recommended choice if an Arduino were to be used given it has much more memory than the Uno. 
  • The Arduino provides the most simple hardware solution though it’s reliance on “C” as a development language, and without an IDE as good as the BeagleBone Black, adds complexity on the software side.
  • The Raspberry Pi, with an Arduino, provides a very flexible solution but at the cost of complexity with two hardware environments and two languages.
  • The Raspberry Pi, with an ADC, was a bit more challenging to integrate than was expected though in most other respects it has been easy to work with to date..
  • The BeagleBone Black could provide the best overall solution from a hardware and software complexity perspective though it’s user community does not seem as strong as that of the Raspberry Pi.
  • At this point in the investigation I would recommend the Arduino Mega with an external ADC or the BeagleBone Black.   
  • While the BeagleBone Black merits further investigation, particularly around the user interface, it has been very impressive to date:
    • Combines features of Raspberry Pi and Arduino in one package,
    • Includes 12bit resolution on board with a high sample rate,
    • Looks and feels more “industrial strength” than the Raspberry Pi (and is faster),
    • Provides a very user friendly development environment with some characteristics similar to Visual Basic,
    • Allows for easy porting of code from Arduino given language similarities.
 Final decision was to pursue a BeagleBone Black solution.

Monday, June 10, 2013

Technology Alternative - BeagleBone Black

This post is part of a thread titled "What Technology to Choose for a Physical Interface Project"

BeagleBone Black



  • BeagleBone Black Hardware (50):
    • 1ghz ARM CPU
    • 512mb of Memory
    • Storage on Flash Card or USB
    • Graphics Accelerator and Floating Point Processor
    • Initially developed by Texas Instruments in 2008.  Current device seems to have been released at an RPi competitive price point.
  • RPi Software:
    • Fully functional Linux implementation with Javascript as primary programming language (though Python is also supported).
    • Javascript IDE supports interactive debugging and as such has some similarity to Visual Basic.
    • Vast selection of software available to meet development requirements.
    • Initial impression is that user community is not as strong as that of the RPi.
  • Provides 12bit resolution for Analog to Digital conversion via onboard hardware.  Inputs must be below 1.8v.
  • Supports several LCD displays as add-ons, called “capes”.


Notes:
(1) The breadboard provides a voltage divider that uses a variable resistor to deliver a variable voltage for simulating a test measurement.  It is also supporting a tri-colour LED as a status monitor while a test is running.
(2) LCD ‘cape’ shown is one of several options for a User Interface.

Thursday, June 6, 2013

Technology Alternative - Raspberry Pi with External ADC


This post is part of a thread titled "What Technology to Choose for a Physical Interface Project"

Raspberry Pi with External ADC


  • Raspberry Pi (Rpi) Hardware (50):
    • 700mhz ARM CPU
    • 512mb of Memory
    • Storage on Flash Card or USB
  • RPi Software:
    • Fully functional Linux implementation with Python as primary programming language.
    • Vast selection of software available to meet development requirements.
    • Extremely strong user community for support
  • External ADC chip integrated with the Raspberry Pi via I2C (a serial communications protocol)
  • Provides up to 18bit resolution for Analog to Digital Conversion 
  • Could provide user interface through one of several available LCD displays

The breadboard provides a voltage divider that uses a variable resistor to deliver a variable voltage for simulating a test measurement.  It is also supporting a tri-colour LED as a status monitor while a test is running. 

Technology Alternative - Hybrid = Arduino + Raspberry Pi


This post is part of a thread titled "What Technology to Choose for a Physical Interface Project"

Hybrid = Arduino + Raspberry Pi

  • Raspberry Pi (Rpi) Hardware (50):
    • 700mhz ARM CPU
    • 512mb of Memory
    • Storage on Flash Card or USB
  • RPi Software:
    • Fully functional Linux implementation with Python as primary programming language (though certainly not the only language supported).
    • Vast selection of software available to meet development requirements.
    • Extremely strong user community for support
  • Does not have onboard Analog to Digital conversion and so needs another device for integration with physical devices.
  • Arduino hardware would be per previous example (65)
  • Very high sample rates (+/- 600/sec) possible with logging by Arduino to SD Card and then upload to Raspberry Pi.
  • Could provide user interface through LCD integrated with the Arduino or by integrating an LCD with the RPi (the former being what is shown as I do not have an LCD on my RPi.

Notes:
(1) The breadboard provides a voltage divider that uses a variable resistor to deliver a variable voltage for simulating a test measurement.  It is also supporting a tri-colour LED as a status monitor while a test is running.
(2) LCD display has not been integrated with the Raspberry Pi as of this picture but is shown for illustrative purposes

Wednesday, June 5, 2013

Technology Alternative - Arduino Mega with LCD Touchscreen

This post is part of a thread titled "What Technology to Choose for a Physical Interface Project"

Arduino Mega with LCD Touchscreen
  • Hardware:
    • Arduino Mega 2560 (40),
    • TFT LCD Shield (10),
    • TFT LCD/Touchscreen Shield (15)
  • Microprocessor:
    • Flash Memory - 256KB of which 8 KB used by bootloader
    • SRAM - 8 KB
    • EEPROM - 4 KB
  • Software:  Arduino sketches written in C++ and downloaded to the microprocessor from a workstation.
  • Supports 10bit resolution for Analog to Digital Conversion (external adapter can be added for higher resolution).
  • Capable of taking 250 fixed time slice samples per second (assuming no updates of the LCD during sampling).
  • LEDs could be used for indicating status during a capture (blink each second).  Shown upper left in picture to the right.


The breadboard provides a voltage divider that uses a variable resistor to deliver a variable voltage for simulating a test measurement.  It is also supporting a tri-colour LED as a status monitor while a test is running.

Tuesday, June 4, 2013

Technology Alternative - Arduino Uno with Simple LCD Display

This post is part of a thread titled "What Technology to Choose for a Physical Interface Project"

Arduino Uno with Simple LCD Display

  • Hardware:
    • Arduino Uno (15),
    • SD Card Shield (15),
    • Screwpoint Adapters (10),
    • LCD with Keypad Shield (10)
  • Microprocessor:
    • Flash Memory - 32 KB (ATmega328) of which 0.5 KB used by bootloader
    • SRAM - 2 KB (ATmega328)
    • EEPROM - 1 KB (ATmega328)
    • Clock Speed - 16 MHz
  • Software:  Arduino sketches written in C++ and downloaded to the microprocessor from a workstation.
  • Supports 10bit resolution for Analog to Digital Conversion (external adapter can be added for higher resolution).
  • SRAM limits board to taking 125 fixed time slice samples per second (assuming no updates of the LCD during sampling).
  • LEDs could be used for indicating status during a capture (blink each second).




 
The breadboard provides a voltage divider that uses a variable resistor to deliver a variable voltage for simulating a test measurement.

Monday, June 3, 2013

What Technology to Choose for a Physical Interface Project?

High Level Project Requirement

Goal of the project will be to integrate a piece of test equipment with a user friendly and computationally capable front-end that can operate without being attached to a dedicated computer.   The host needs to capture observations from a single analog source (at a rate of between 100 and 200 obs/sec), provide real-time feedback, and save the captured data to be presented with some other analysis tools.

Obviously I had a fair amount of experience with the Arduino and with the Raspberry Pi but I also wanted to look at another single board computer.   A survey of the market led me to the BeagleBone Black.   Given this, the alternatives that were investigated on a hands-on basis were:
  • Arduino - a single-board microcontroller designed to make the process of using electronics in multidisciplinary projects more accessible.
  • Raspberry Pi - a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation
  • Beaglebone Black - a low-power open-source hardware single-board computer produced by Texas Instruments in association with Digi-Key.
There are a variety of other technologies but these three represent what I feel to be the best of those other alternatives.