Ethernut

Last updated

Ethernut is an open source hardware and software project for use as an embedded-Ethernet-system.

Contents

Hardware

Ethernut 3.0E Ethernut30E.png
Ethernut 3.0E
Ethernut 5.0F Ethernut50f.png
Ethernut 5.0F

Currently four different reference designs exist (Ethernut 1, Ethernut 2, Ethernut 3 and Ethernut 5) which are available as ready to use boards. [1]

All reference designs share the same set of interfaces:

The designs mainly differ in the used microcontroller (Ethernut 1 & 2: 8-bit AVR, Ethernut 3 & 5: 32-bit ARM) and the available memory size. Since the Ethernut 3 board an MMC slot is available. Ethernut 5 also includes USB host and device interfaces.

History

With the rise of the idea of the Internet of Things, different groups of people with different aims started around 2000 developing embedded systems which would be able to integrate in existing TCP/IP networks.

The limited resources of this mostly 8-bit embedded systems, which rarely reached or exceeded 64 kB of main memory, imposed a great challenge.

In the year 2000 the British developer Dave Hudson released the source code of a real-time operating system with integrated TCP/IP stack named Liquorice.

Another challenge was that suitable hardware for this kind of development was nearly non-existent. Nearly all network controllers of that time used the PCI-Bus interface which is too complex for small microcontrollers. But one of the few still-in-production controllers with ISA-Bus interface, which also was not recommended for new designs, was used together with ATmega103 microcontroller to create a single board computer. The layout of this board was released under BSD license and was one of the early open hardware projects.

After one year Hudson ceased work on the project. But the source code of Liquorice was used as software foundation for the new Ethernut project which aimed to integrate software and hardware development. After the first few versions had been released to the AVR Freaks Board, the project switched to SourceForge in 2002.

Software

Nut/OS

The open source operating system for these boards is called Nut/OS. It is a modular real-time operating system, licensed under BSD license.

Characteristics:

Nut/OS is supported by popular SSL/TLS libraries such as wolfSSL for embedded security.

Nut/Net

The Ethernut project implements its own network stack, called Nut/Net. It implements a substantial protocol and socket API for use in Nut/OS programs.

The supported protocols are:

Configuration and usage

Configuring Nut/OS and Nut/Net is quite simple. After download of the source packages the Nut/OS configurator has to be executed which will build the needed libraries for the selected hardware configuration.

Application programmers will now use these Nut/OS and Nut/Net libraries to write its own software. Beside of the Nut/OS libraries the application programmer can use the standard C libraries. As programming languages C is used, but C++ is mostly supported as well. Additionally a Lua interpreter exists so that Lua scripts can be executed interactively at runtime on the board.

A multitude of simple sample applications exists as easy introduction into Nut/OS.

Supported architectures

The following architectures are supported but not actively maintained:

Bluetooth stack

The research group for distributed systems of the ETH Zurich has developed a distributed Sensor network with nodes based on AVR. These sensor nodes communicate via Bluetooth. As system software the open source BTNut Bluetooth stack is used. The BTNut stack is based on the Nut/OS system and extends the Nut/OS functionality with Bluetooth access functions. Although the BTNut stack was developed mainly for the BTNode sensor nodes it can be easily ported to other applications.

Usage and availability

According to the German manufacturer (egnite GmbH) about 33.000 Ethernut boards were sold (state: December 2013). There are several manufacturers of compatible hardware:Achatz electronics (Netherlands), proconX (Australia), Propox (Poland), SOC Robotics (Canada), HW group s.r.o. (Czech Republic), thermotemp Embedded-IT (Germany). Beside these, the Nut/OS operating system is used as base for the BTNode Sensor network ETH Zurich.

Related Research Articles

AVR microcontrollers

AVR is a family of microcontrollers developed since 1996 by Atmel, acquired by Microchip Technology in 2016. These are modified Harvard architecture 8-bit RISC single-chip microcontrollers. AVR was one of the first microcontroller families to use on-chip flash memory for program storage, as opposed to one-time programmable ROM, EPROM, or EEPROM used by other microcontrollers at the time.

Atmel Corporation was a designer and manufacturer of semiconductors before being subsumed by Microchip Technology in 2016. Atmel was founded in 1984. The company focused on embedded systems built around microcontrollers. Its products included microcontrollers radio-frequency (RF) devices including Wi-Fi, EEPROM, and flash memory devices, symmetric and asymmetric security chips, touch sensors and controllers, and application-specific products. Atmel supplies its devices as standard products, application-specific integrated circuits (ASICs), or application-specific standard product (ASSPs) depending on the requirements of its customers.

Contiki

Contiki is an operating system for networked, memory-constrained systems with a focus on low-power wireless Internet of Things devices. Extant uses for Contiki include systems for street lighting, sound monitoring for smart cities, radiation monitoring, and alarms. It is open-source software released under the BSD-3-Clause license.

AVR Butterfly

The AVR Butterfly is a battery-powered single-board microcontroller developed by Atmel. It consists of an Atmel ATmega169PV Microcontroller, a liquid crystal display, joystick, speaker, serial port, real-time clock (RTC), internal flash memory, and sensors for temperature and voltage. The board is the size of a name tag and has a clothing pin on back so it can be worn as such after the user enters their name onto the LCD.

Atmel ARM-based processors are microcontrollers and microprocessors integrated circuits, by Microchip Technology, that are based on various 32-bit ARM processor cores, with in-house designed peripherals and tool support.

Arduino Open source hardware and software platform

Arduino is an open-source hardware and software company, project, and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its hardware products are licensed under a CC BY-SA license, while software is licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially from the official website or through authorized distributors.

ChibiOS/RT

ChibiOS/RT is a compact and fast real-time operating system supporting multiple architectures and released under a mix of the GNU General Public License version 3 (GPL3) and the Apache License 2.0. It is developed by Giovanni Di Sirio.

The uIP is an open-source implementation of the TCP/IP network protocol stack intended for use with tiny 8- and 16-bit microcontrollers. It was initially developed by Adam Dunkels of the Networked Embedded Systems group at the Swedish Institute of Computer Science, licensed under a BSD style license, and further developed by a wide group of developers.

Single-board microcontroller

A single-board microcontroller is a microcontroller built onto a single printed circuit board. This board provides all of the circuitry necessary for a useful control task: a microprocessor, I/O circuits, a clock generator, RAM, stored program memory and any necessary support ICs. The intention is that the board is immediately useful to an application developer, without requiring them to spend time and effort to develop controller hardware.

OBDuino is an open source trip computer design based on the Arduino platform. An OBDuino may be assembled and customised by an electronics hobbyist; it displays information such as instantaneous fuel economy, engine tuning parameters etc. on an LCD.

Faustino (platform)

Faustino is a physical computing platform geared towards process monitoring and control. The faustino platform consists of a single-board microcontroller with embedded analog and digital I/O support, an input module with LCD, sensors and actuators in form of solid state relays. The development software is based on Eclipse and WinAVR, a variant of GCC for AVR microcontrollers. For visual presentation of measurements, a XML-configured Windows status monitor application is available.

FunkOS is a real-time operating system (RTOS) developed by Funkenstein Software Consulting, targeting a variety of microcontroller architectures. It is free to use in any project - commercial or otherwise - with few conditions. If the kernel is ported to a new target, that code must also be made available for inclusion in future releases. Also, if used in commercial projects, an attribution statement must be included in some form of product documentation.

CubeSat Space Protocol (CSP) is a small network-layer delivery protocol designed for CubeSats. The idea was developed by a group of students from Aalborg University in 2008, and further developed for the AAUSAT3 CubeSat mission that was launched in 2013. The protocol is based on a 32-bit header containing both network and transport layer information. Its implementation is designed for embedded systems such as the 8-bit AVR microprocessor and the 32-bit ARM and AVR from Atmel. The implementation is written in C and is ported to run on FreeRTOS and POSIX and pthreads-based operating systems such as Linux. The three-letter acronym CSP was adopted as an abbreviation for CAN Space Protocol because the first MAC-layer driver was written for CAN-bus. The physical layer has since been extended to include several other technologies, and the name was therefore extended to the more general CubeSat Space Protocol without changing the abbreviation.

Mbed is a platform and operating system for internet-connected devices based on 32-bit ARM Cortex-M microcontrollers. Such devices are also known as Internet of Things devices. The project is collaboratively developed by Arm and its technology partners.

NuttX is a real-time operating system (RTOS) with an emphasis on technical standards compliance and small size. Scalable from 8-bit to 64-bit microcontroller environments, the main governing standards in NuttX are from the Portable Operating System Interface (POSIX) and the American National Standards Institute (ANSI). Further standard application programming interfaces (APIs) from Unix and other common RTOSes are adopted for functions unavailable under these standards, or inappropriate for deeply embedded environments, such as the fork system call.

Tinkerforge is an open source hardware platform of stackable microcontroller building blocks (Bricks) that can control different modules (Bricklets). The primary communication interface of the building blocks can be extended using Master Extensions. The hardware can be controlled by external programs written in C, C++, C#, Object Pascal, Java, Perl, PHP, Python, Ruby, Shell and VB.NET over a USB, Wifi or Ethernet connection, and running on Windows, Linux and macOS. This non-embedded programming approach eliminates the typical requirements and limitations of conventional embedded software development. Tinkerforge hardware and software are both Open Source, and all files are hosted on GitHub.

Arduino Uno Microcontroller board

The Arduino Uno is an open-source microcontroller board based on the Microchip ATmega328P microcontroller and developed by Arduino.cc. The board is equipped with sets of digital and analog input/output (I/O) pins that may be interfaced to various expansion boards (shields) and other circuits. The board has 14 digital I/O pins, 6 analog I/O pins, and is programmable with the Arduino IDE, via a type B USB cable. It can be powered by the USB cable or by an external 9-volt battery, though it accepts voltages between 7 and 20 volts. It is similar to the Arduino Nano and Leonardo. The hardware reference design is distributed under a Creative Commons Attribution Share-Alike 2.5 license and is available on the Arduino website. Layout and production files for some versions of the hardware are also available.

References

  1. "Ethernut Reference Boards". egnite GmbH. Retrieved 11 December 2013.