SunnyShine Solar Plant Project

SunnyShine is a solar plant logging system, based on a linux Fox Board box.
This box communicates with the solar inverter by means of serial RS485 communication.
This box serves also as a webserver to read out the data.

Acme Systems homepage :
FoxServe homepage :
Schüco homepage :
SMA homepage :

Putty wiki :


  1. Hardware
    1. Fox Board details
    2. FoxZB add-on board
      1. MMC/SD Section
      2. RTC Section
      3. RS485 Section
    3. Enabling PHP
    4. Enabling SQLite
    5. Plastic Case
    6. SMA SunnyBoy RS485 Piggy-Back
  2. Software
    1. SunnyGrabber
    2. Yasdi
    3. No-IP
  3. Web interface
  4. Pronto Professional interface


The purpose of this project was to develop a low cost monitoring system, to read out the most important data from our solar plant at home.
The data should be stored in a SQLite database, and accessible via a webinterface. Also, some diagnostics data should be made visible.
Having a wireless lan at home, made it also interesting to have an interface on the Pronto Professional remote.

1. Hardware

1.1. Fox Board details

FOX Board LX832, a complete Linux system in just 66 x 72 mm

FOX Board LX832 is a ready to use and low cost Linux embedded board designed to reduce the time to market of your embedded projects

The FOX Board LX832

Software Features
KernelUp to version 2.6.19
DriverUSB Pen driver, FTDI and PROLIFIC USB to Serial Converter
SDKFully Open Source and freely downloadable Software Development Kit
LanguageC, C++, PHP, PYTHON, etc
Hardware Features
Size66 x 72 mm (2.6 x 2.8 inches)
Cpu100MIPS Axis ETRAX 100LX
32 bit, RISC, 100MHz
PowerSingle power supply
5 Volt 280mA (1 watt)
Ports1 Ethernet (10/100 Mb/s)
2 USB 1.1
1 serial console port
Extension 2 extension sockets with IDE, SCSI, serial lines, parallel ports, I/O lines, I2C bus interface
Weight37 gr
Temperature range0-70 °C


FOX Board runs a real Linux operating system (not a uC Linux) on an ETRAX 100LX microprocessor, a 100MIPS RISC CPU made by Axis (

FOX Board has two main field applications:

  • As a stand alone device to build a micro web server or other network devices as proxy, router, firewall, etc.
  • As a core engine to plug onto the PCB of a user application board instead of a simple microcontroller.

Two USB 1.1 host interfaces can be connected to USB memory stick, hard disk, webcam, modem, Wi-Fi or Bluetooth dongle, ADSL adapter, Serial converter, etc.

Through the 10/100 ethernet interface it is possible to have access to the internal Web server, FTP server, SSH, Telnetd and the complete TCP/IP stack.

Two 40 pins sockets step 2.54mm (0.1") are available to plug the board on an application specific PCB (see an example...) or to connect an extension interface (see an example...). On these pins are available a lot of signals as explained below.


A lot of articles, application notes, tutorials, how tos and examples are available from the FOX Board Documentation Index.

1.2. FoxZB XBee/RS485 add-on board

FOXZB is an add-on board to adapt a MaxStream XBee module, a RS485 bus, a MMC/SD memory card, a Sensirion SHT71/75 humidity and temperature sensor and a Real Time Clock circuitry with Li-ion battery
FOXZB is an add-on board for the FOX Board equipped with:
  • A placement for a MaxStream XBee or XBeePRO module.
  • An half-duplex RS485 interface
  • A MMC/SD memory card socket
  • A placement for Sensirion SHT71/75 humidity and temperature sensor
  • A Real Time Clock circuitry with Li-ion battery
The size of this board is right the same of FOX Board and it is designed to be mounted over the top side of the FOX Board as shown on the photo below:

FOX Board LX and FOXZB add on board

1.2.1. MMC/SD section

The MMC/SD memory card holder is wired to the FOX Board as explained on Connect a MMC or SD card memory.
We tried this socket with SD cards up to 2GB 150x.

Configure the FOX Board SDK to install the MMC/SD Kernel module

From the devboard directory type:

# make menuconfig

Enable the option:

Driver settings --> [*] Enable MMC Support

Save and exit then, to generate the fimage, type:

# ./configure
# make

Flash the FOX Board with the new image (see How to reflash a FOX Board) and login to it with root and pass.

Mounting the MMC card

Insert the MMC/SD card inside the holder then mount it typing:

# mount /dev/mmc0 /mnt/0 -t vfat -o noatime,sync

Now you could see the content of the MMC/SD card on /mnt/0 directory typing:

# ls -l /mnt/0

1.2.2. RTC section

RTC circuitry is wired to the FOX Board as explained on Add a Dallas DS1302 I2C Real Time Clock.
To enable the RTC support on the FOX Board image click on Enable the Real Time Clock

Configure the FOX Board SDK to enable the RTC support

Go inside the SDK root folder (i.e. /devboard-R2_01) and type:

# source init_env
# make kernelconfig

Select the item:

Driver for interfaces --->

Configure the RTC section parms like on this screenshot:

[*] Real Time Clock Support
      RTC chip (DS1302)  --->
[*] DS1302 RST on Generic Port
(2) DS1302 RST bit number
(1) DS1302 SCL bit number
(0) DS1302 SDA bit number
(0) DS1302 Trickle charger value

Exit and save the configuration then type:

# make

Flash the FOX Board with the new image (see How to reflash a FOX Board) and login to it with root and pass.

Commands to manage system clock and date

To read the FOX board Linux system clock and date the right command is:


To program a desired value of clock and date as system clock and date in the FOX Linux system the command is:


Example: 13:50 of May 18th 2005

date 051813502005

To store in permanent way the system clock and date just set, in the RTC chip so to reload it at every power on cycle, type the following command:

hwclock -w

1.2.3. RS485 section

How to use the RS485 interface
This article shows how to configure the serial port ttyS3 on the FOX Board LX to operate as RS485 half duplex interface

The only serial port enabled to work as RS485 is the /dev/ttyS3.

To use correctly the RS485 interface chip we need to configure the serial port driver

To enable the RS485 support use make kernelconfig command and enable:

Drivers for built-in interfaces --->
  [*] RS-485 support

then generate the new flash image and transfer it to the FOX Board LX.

1.3. Enabling PHP

TO DO ...

1.4. Enabling SQLite

TO DO ...

1.5. FOX Case plastic enclosure

FOX Case is a plastic enclosure designed to hold the FOX Board and one add-on board.

FOX Case with the FOX Board LX832 mounted

FOX Case with extra FOXZB add-on board mounted


  • Possibility to house one FOX Board and one add-on board like FOXZB.
  • Front and rear panel removable.
  • Case in transparent PVC.
  • Glossy top side to see the LCD and leds. The other sides are translucent.
  • Stackable.
  • Placement for Lego(c) blocks.
  • Placement for a Teko DR.5 DIN bar adapter

1.6. SMA SunnyBoy RS485 Piggy-Back

These manuals show you how to use the RS485 module of SMA.

Piggyback Cataloge :
Retrofitting the communication interfaces :
Piggyback Technical Manual :
Metrics and Signals of SMA Piggyback :

2. Software

2.1. SunnyGrabber

TO DO ...

2.2. Yasdi - Yet Another SMA Data Implementation

This software represents an implementation of the “SMA Data Protocol”, which can be used to communicate with SMA inverters and other SMA devices. The software is available entirely as source code and was developed with the “C” programming language.
It has been designed to allow quick and easy porting to other operating systems.
Currently, implementations are available for the following systems: Linux, Windows32, WindowsCE, MacOS X, RTKernel32, AmigaOS, ...)

YASDI is available as a library (under Linux: Shared Objects (“.so”), under Windows: DLL). Hence, YASDI is not an independent application, but it can be used to develop independent applications that can communicate with SMA devices without the need to implement the actual protocol.
RS232/RS485/Powerline are currently available as communication interfaces.
It supports the process of requesting current measured values and changing parameters settings.
The readout of measurement values (archive values) recorded by a SunnyBoyControl or SunnyBeam is unfortunately not possible.

Download YASDI Source Code :
Download YASDI compiled for Windows 32 :
Download YASDI documentation as PDF :

SMA Data Protocol Description :

2.3. No-IP

No-IP™ homepage :

No-IP™ provides dynamic DNS for your dynamic IP.

No-IP™ provides a free redirection to the webserver we run on the FOX board.
On the FOX board, a small client program (noip2) is running, which sends the IP address of the FOX board to the No-IP™ server every 30 minutes.

Linux / BSD / Unix Dynamic Update Client Download :

3. Web Interface

The Web Interface is build in PHP.

Interfacing with the solar logging data is done in 2 ways, either with SQLite commands, directly to the SunnyShine database,
or with remote procedure calls [RPC], to read the solar inverter data via RS485 serial communication.

The web interface consists of several pages, giving information about the daily, weekly, monthly and yearly energy yield of the solar plant.


Other pages give a more detailed insight in the solar inverter data collection, show you some pictures and the location of the solar plant.


A configuration page is provided to input user and solar plant specific data once, at startup of the logging system.

4. Pronto Professional interface

ProntoScript Developers Guide :

Get a FREE Domain

Hit Counter by Digits