Decaf Boards, the RaspberryPi and Pine A64


Last Update: Jul 9, 2019 @ 11:14

RaspberryPi 2 Specifications

  • 900 MHz quad-core ARM Cortex-A7 CPU plus external 2A psu.
  • 1GB LPDDR2 SDRAM
  • 10/100 Ethernet
  • 4 USB ports
  • HDMI connector
  • GPIO extension support (40 pins).

RaspberryPi Zero-W Specifications

  • 1 GHz BCM 2835 SOC
  • 512MB of RAM
  • 802.11 b/g/n wireless LAN
  • Bluetooth 4.1 & Bluetooth Low Energy (BLE)
  • micro-SD (same Raspbian build)
  • mini-HDMI
  • two micro-B USB for data and power
  • CSI camera connector
  • 40-pin GPIO connector compatible with existing HAT add-ons

RaspberryPi 3B+ Specifications

  • 1.4 GHz  quad-core ARM Cortex-A53 CPU plus external 2A psu.
  • 1GB LPDDR2 SDRAM
  • 10/100 Ethernet
    • 300 Mb/s on the 3B+
  • Wifi 802.11n and Bluetooth 4.1 Classic and Low Energy
    • Wifi 802.11ac and Bluetooth 4.2 on the 3B+
  • 4 USB ports
  • HDMI connector
  • GPIO extension support (40 pins).

RaspberryPi 4B Specifications

  • 1.5 GHz quad-core ARM Cortex-A72 CPU plus external 3A psu.
  • 1 / 2 / 4GB LPDDR4 SDRAM
  • 10/100/1000 Ethernet
  • Wifi 802.11n and Bluetooth 5.0 HS  and Low Energy
  • 2 USB2 and 2 USB3 ports
  • 2 x micro HDMI connector, 4k video support
  • GPIO extension support (40 pins).

We have a 4GB unit on order. The RPi4 runs quite a bit hotter that the RPi3, so the optional (and likely mandatory) heatsink and perhaps a small fan is required. The RPi4 also requires the latest Raspbian Buster that supports the Ethernet, graphics and USB4 hardware.

Are Decaf Boards recognized by the RPi and Pine A64?

Yes, and with an update to the usb.ids file (use command sudo update-usbids ) you’ll generally get more details. Decaf boards use the standard HID driver built into all linux variants.  What is not present (and applies to all custom HIDs)  is the library that implement the command/control messages that an app will use. We have been learning how linux handles USB devices, and now have some initial utilities that recognize and can control / access Decaf boards. The Decaf SDK (Windows and Raspbian / linux) is due for release Q2 2019.

USB power limit

The RPi can provide power to Decaf Z-series and IOC-235 LCD boards with no problems. It cannot provide enough power to an IOC-350 or IOC-370. Plugging one in results in the RPi board shutting down the USB functions, and a reboot (without the IOC-350/370 installed) is required.

Using a powered USB hub is the solution, and would be required anyway if more than two USB devices are required.

Why use Decaf boards with a RaspberryPi?

GPIO pin identifiers are BCM names, not WiringPi. For more info, use the gpio readall command.

RaspberryPi 2/3/Zero-W GPIO pin assignments

Pine A64 GPIO pin assignments, same as the RPi2/3/Zero with the exception of the Reserved pins 27 and 28. The Pine A64 does not have the I/O hat mounting holes provided with the RPi. This means that a cable or mezzanine PCB specific to the A64 is required to use an I/O hat.

The GPIO options provide the means to add Serial Peripheral Interface (SPI) devices on dedicated pins, and other pins for digital inputs and outputs. All of these require external hardware that has to be supported by app level software.

Decaf boards are HIDs and have a defined command set for digital and analog I/O and LCD user interface design. This set extends and simplifies sensor, control and user interaction options.  App level software of course still has to be created.

What are we doing now with the RaspberryPi and Pine A64?

Decaf boards and their sensors, controls and LCDs are now visible to and controllable by Raspbian and linux apps. We installed the hidapi libraries over libusb-1.0 and now have the way for a PiXCL app to locate Decaf devices.  We are investigating the feasibility of porting PiXCLe to the RPi and Pine A64.

Recently we gained expertise in using the MQTT (a.k.a. mosquitto) libraries to transfer data between sensor and control nodes in a LAN and, encrypted, across  a WAN. MQTT requires a message broker node somewhere in the network, and sensor nodes publish or/and subscribe to messages. A RPi3 or Zero have enough performance to act as a broker, publisher and subscriber.  For example, a RPi3 managing a set of sensors (i.e. inputs)  and controls (i.e. outputs) can publish sensor data messages to subscriber nodes on the LAN. Other nodes can publish control command messages which the RPi3, acting as a subscriber, can act upon, such as turning on relays, setting light levels, writing user info to a local screen and similar.

Related to the above, as we move our Decaf firmware development to the faster Cortex-M4 /M7 with Ethernet and running FreeRTOS, we are looking at adding MQTT publisher/subscriber support. Contact us for more information on this topic.

RaspberryPi 3 and Pine64 Comparison

Both boards

  • have a 1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor.
  • use the same DC power supply and connector and battery backup connector.
  • As shown above, the GPIO pin assignments are also the same.
  • have HDMI, Ethernet and WiFi network and Bluetooth support.
  • USB2 A ports for mouse and external devices e.g. Decaf boards.

More information will added to this page as development progresses.

What about Windows 10 IoT?

Due to lack of interest and support, partly from Microsoft, but also from the Pine A64 builders, we have ended all work on W10 IoT. Moreover, the maker and potential end-user community has spoken loud and long on the many deficiencies of the W10 IoT product. The general end-user consensus is that using linux functions directly is simpler, faster and better supported.