The long term aim of BerryIO is to enable developers to control the Raspberry Pi and its GPIO ports remotely from any device with a web browser, without ever needing to connect a screen or keyboard to the Pi itself. The new API mode extends this further enabling mobile apps, etc to be produced and control BerryIO.
The way BerryIO works is once the Raspberry Pi has booted up (or if the connectivity changes) it automatically connects to the main wired or one of the predefined wireless networks and BerryIO emails the owner with a web link.
They can then click the link and open BerryIO in a browser (with their username and password).
At the moment I've got the email system, a system status display, the network status display, LCD control, GPIO control, SPI DAC control and SPI ADC input reading as well as the camera, basic shutdown and reboot systems working.
In the future I will be adding support for video (including a live viewfinder), I2C as well as full wireless networking control
(at the moment you still have to use the "WiFi Config" utility on the desktop).
Currently the network status display detects the network devices you currently have plugged in and shows you what they are up to
using visual indicators which colour green from connected, blue for standby and grey to indicate they are without a connection (see screenshots).
The GPIO control panel allows you to view and set the GPIO status realtime. Its all clickable and you can change the values and in/out modes on the fly (see screenshots).
The SPI control panel allows you to view the ADC values and set the DAC values by clicking on the slider (see screenshots).
The LCD control panel allows you output text to a HDD44780 or KS0066U compatible LCD.
The camera control panel alows you to take photos with different settings.
There's also a command line interface, so you can issue commands directly to it over SSH or in scripting should you wish to (see screenshots).
For those interested in the technical details its mostly written in PHP which runs the back end for both the command line and the web browser interface (which is served with Apache).
SPI control is written in C, the emailing is done with msmtp and the network can be managed by Raspians wpagui (although I hope to include functions in BerryIO to configure the network at some point).
Version 1.0.0 (2012-09-19)
Version 1.1.0 (2012-09-20)
- Changed default network manager from wicd to wpagui as shipped with 2012-09-18-wheezy-raspbian
Version 1.2.0 (2012-09-22)
- Added cpu/disk/memory usage information
- Removed sudo requirement on some functions
- Minor structural and cosmetic changes
Version 1.2.1 (2012-09-23)
- Removed percentage information where not applicable
- Changed load average indication to inverse logarithmic
- Clarified headings
Version 1.3.0 (2012-09-30)
- Added support for SPI ADC's and DAC's
Version 1.4.0 (2012-10-05)
- Added support for HDD44780 or KS0066U compatible LCD's
- Changed internal command execution process and parameter passing to make clearer
- General code cleanup
Version 1.4.1 (2012-10-10)
- Added lcd_position function
- Added are you sure confirmation on GUI shutdown and reboot
Version 1.4.2 (2012-10-13)
- Improvements to LCD timing accuracy
Version 1.4.3 (2012-10-20)
- Improvements to GPIO file security handling
- Added LCD clear delay to prevent corruption
- Added option to run GPIO functions on all pins
Version 1.4.4 (2012-11-04)
- Changed initial install GPIO config file to use R2/512MB board pins (with option to change)
- Added support in initial install GPIO config file for P5 header on R2 boards
- Fixed a bug introduced in 1.4.3 with gpio_set_mode (first time always set to in mode)
- Improved redirect efficiency
Version 1.4.5 (2012-11-24)
- Added port information to email and usage page links when ports other than 80 are used
- Added more detailed information into installation instructions for webserver port changing
Version 1.5.0 (2012-12-30)
- Changed the file layout so everything is in /usr/share/berryio and can be synced with github
- Changed install/upgrade scripts and instructions so application is retrieved from github
Version 1.5.1 (2013-01-01)
- Changed location BerryIO checks its version against to github
- Implimented upgrade command
Version 1.6.0 (2013-01-07)
- Added fix to cope with incorrect GPIO mode information from the system
- Added the ability to name GPIO pins
- Hints and Tips
- Moved check for updates button
- CSS fix for IE
- Added settings check
Version 1.6.1 (2013-01-12)
- Changes to prevent IPV6 addresses being mistaken for MAC or IPV4 addresses
- Improvements to installation instructions
- Fixed bug in settings loader when checking the version
- Improved GPIO error handling when addressing all pins
Version 1.6.2 (2013-01-12)
- Added IPv6 Support
- Improved formatting on CLI hints and tips
- Moved changelog to a different function
Version 1.6.3 (2013-01-21)
- Added main board information
Version 1.6.4 (2013-01-21)
- Now calculates Raspberry Pi revision
Version 1.6.5 (2013-01-27)
- Fixed CLI commands which have been outputting errors (bug introduced in 1.6.2 - oops!)
- Improved web page titling and errors
Version 1.6.6 (2013-02-04)
- Improved handling of unknown CLI commands (it doesn't say to try sudo anymore unless it needs sudo)
- CLI commands now return correct exit status
- Additional error trapping
Version 1.6.7 (2013-02-07)
- Improved Pi variant identification (board_status) and added information on the manufacturer
Version 1.6.8 (2013-03-24)
- Multiple improvements to help system, errors and presentation
- Removed GPIO error when setting all pins and all pins not in out mode
Version 1.6.9 (2013-03-24)
- Added ability to rename SPI channels
Version 1.7.0 (2013-03-24)
- Added new API mode on both the CLI and HTTP interfaces for mobile app integration, etc
Version 1.8.0 (2013-04-07)
- Added realtime updates of GPIO direction information
- Animated toggles when external program controls the GPIO outputs
- Fixed issue when using GPIO with Internet Explorer
- Corrected incorrect version dates
Version 1.8.1 (2013-04-07)
- Removed excess files and folders which should have been deleted in version 1.7.0
Version 1.8.2 (2013-05-19)
- Changed SPI Control web interface to use API for changes
Version 1.9.0 (2013-08-26)
- Added support for camera module
- Added support for different sized LCD screens
- Multiple minor improvements
Version 1.9.1 (2013-11-07)
- GPIO compatibility changes for Raspbian 2013-09-25
Version 1.9.2 (2013-12-29)
- Camera compatibility changes for Raspbian 2013-12-20