Saturday, October 26, 2013

Investigating the Raspberry PI

The more I play with it, the more I like it... It's so small - and so cheap - and it is a real Linux system, based on Debian. It comes with Java. It runs from a small SD card (4Gb recommended minimum). All the info are available on the Raspberry PI web site.

Development config

Minimal config

The GPIO can be managed with PI4J, works like a charm. Example:
----------------------------------------------------
HARDWARE INFO
----------------------------------------------------
Serial Number     :  00000000a36c8782
CPU Revision      :  7
CPU Architecture  :  7
CPU Part          :  0xb76
CPU Temperature   :  49.8
CPU Core Voltage  :  1.2
MIPS              :  697.95
Processor         :  ARMv6-compatible processor rev 7 (v6l)
Hardware Revision :  000e
Is Hard Float ABI :  true
Board Type        :  ModelB_Rev2
----------------------------------------------------
MEMORY INFO
----------------------------------------------------
Total Memory      :  459505664
Used Memory       :  240529408
Free Memory       :  219484160
Shared Memory     :  0
Memory Buffers    :  20328448
Cached Memory     :  141778944
SDRAM_C Voltage   :  1.2
SDRAM_I Voltage   :  1.2
SDRAM_P Voltage   :  1.23
----------------------------------------------------
OPERATING SYSTEM INFO
----------------------------------------------------
OS Name           :  Linux
OS Version        :  3.6.11+
OS Architecture   :  arm
OS Firmware Build :  4f9d19896166f46a3255801bc1834561bf092732 (clean) (release)
OS Firmware Date  :  Sep  1 2013 23:31:02
----------------------------------------------------
JAVA ENVIRONMENT INFO
----------------------------------------------------
Java Vendor       :  Oracle Corporation
Java Vendor URL   :  http://java.oracle.com/
Java Version      :  1.7.0_40
Java VM           :  Java HotSpot(TM) Client VM
Java Runtime      :  Java(TM) SE Runtime Environment
----------------------------------------------------
NETWORK INFO
----------------------------------------------------
Hostname          :  raspberrypi
IP Addresses      :  192.168.1.251
FQDN              :  raspberrypi.att.net
Nameserver        :  192.168.1.254
----------------------------------------------------
CODEC INFO
----------------------------------------------------
H264 Codec Enabled:  true
MPG2 Codec Enabled:  false
WVC1 Codec Enabled:  false
----------------------------------------------------
CLOCK INFO
----------------------------------------------------
ARM Frequency     :  700000000
CORE Frequency    :  250000000
H264 Frequency    :  0
ISP Frequency     :  250000000
V3D Frequency     :  250000000
UART Frequency    :  3000000
PWM Frequency     :  0
EMMC Frequency    :  100000000
Pixel Frequency   :  108000000
VEC Frequency     :  0
HDMI Frequency    :  163683000
DPI Frequency     :  0

The first goal will be to have such a device running in the chart table, reading the NMEA Data (connected on the NMEA Station through its serial port, read with GPIO, as mentioned above), and re-broadcasting the data on HTTP, TCP or UDP. The re-broadcasting part has been tested (see here), with logged data.
Next:
  • Connect the serial port, and read it from Pi4J
  • Create an ad-hoc network FROM the Raspberry PI
This way, several applications can use the NMEA Data, simultaneously. It has been tested with the NMEA Console, and OpenCPN, with TCP and UDP. The HTTP re-broadcast can be used from an HTML5 browser, from a laptop or a tablet, connected on the boat's ad-hoc network.

HTML5 NMEA Console, on a tablet