From Nutwiki
Jump to: navigation, search


Probably the most often asked questions are: "Do you support..?" or "Anybody working on...?". This page will provide some up-to-date status information about projects under work, future plans or just interesting ideas. Please keep in mind, that most of the code presented here is in a preview stage and may not work for you.

If you are interested in any of these topics, you can get in touch with other developers through the Ethernut discussion mailing list.

SPI Flash File System

Dusan Ferbas from DF Soft contributed this sample Webserver application, which uses a SPI data flash for storing web pages. He tested AT45DB161B and AT45DB041B chips.

A second implementation done by Michael Fischer is available at

AVR Internet Radio

This tutorial presents a step by step guide on how to build an Internet Radio.

CAN Interface

Visit Michael Fischer's to check the latest status.

MMC Interface

Michael Fischer has started this project at

Ethernut Discoverer

Scan the local network for Ethernuts by using UDP broadcasts. NUTSetup is a tool written by Michael Fischer. It's presented at

The Nut/OS TecNote 3 describes a similar tool.

Programming On-Board CPLDs and FPGAs

XSVF Executor 1.0
is the name of a tool for programming on-board programable logic devices. Main purpose is to load an XSVF file into the XC9536XL CPLD of the Ethernut 2 board. Nevertheless, the code is highly portable and can be easily used on other platforms. Complete code is included in [[../arc/|]]

USB Host Interface

Just a photo for now. Hardware (SL811HS) seems to be the easy part. Anyone with experience in writing USB host drivers?

Wireless LAN

Michael Fischer succeeded in implementing Wifi on an Ethernut Board by adding a PCMCIA WLAN card. Take a look at his Wireless Internet Radio.

1-Wire Interface

Oliver Schulz contributed this 1-wire interface to Nut/OS. You can directly connect a data pin of the slave devices to a port pin.

Another implementation has been done by Pavel Celeda for the Charon II and is available at

Implementing Bluetooth

Matthias Ringwald from ETH Zürich is working on BTnode, an autonomous wireless communication and computing platform based on a Bluetooth radio and an ATmega128 microcontroller. There are plans to port this software to Nut/OS. More about BTnode is available at

Extending the Serial Driver

Gediminas Simanskis contributed an UART driver for the TL16C554.

A new USART driver is currently under development. It will support

  • Hardware (RTS/CTS) and software (XON/XOFF) handshake
  • Half duplex mode (used by RS485)
  • 9-bit communication
  • Synchronous communication
  • More complete implementation of ioctls
  • Several optimizations
  • Configurable buffer sizes
  • Interface de-initialization

Porting Nut/OS to the H8 CPU

There are two ports available, which are not yet part of the official distribution.

Porting Nut/OS to the ARM CPU

Setting up Nut/OS for an ARM CPU had been often discussed. However, almost nothing had been done so far, except this project page.

STK500 Compatible ISP Adapter

SISP Version 1.1.1 uses an AT90S2313 to upload software to your Ethernut board via the PC COM port. This is the same ISP adapter, which is sold by egnite and included in the Ethernut Starter Kit.

Timers and Real Time Clock

[[../arc/|]] - link fixed
Pavel Chromy provided this modified timer.c containing the function NutMicroDelay() for precise timing (microsecond). It does not take calling overhead into account, but this is less that a microsecond. It is clock speed dependant, since it is a hard task to do it otherwise. This tiny function is pretty usefull when controlling attached devices.

Ralph Mason has modified the Timer so you can set-up the resolution of the system clock. (eg number if jiffies per second)

Ralph uses 40 in his apps giving a 25ms timer resolution, you can increase or decrease as necessary. For 30 ms you could use a value of 100, remembering of course that you are going to get quite pronounced jitter using the system timer.

If you need reasonably precise timers you should use one of the remaining hardware timers. To use the source in the archive, you need to define NUT_CPU_FREQ to whatever your xtal is and change time_base to be whatever you need (number of interrupts per second)


There's currently no official Nut/Net API for using the ICMP protocol. Mike Cornelius and Ralph Mason had been working on a solution. Unfortunately these archives seem to be incomplete.

IDE And Compact Flash Interface

This interface by Michael Fischer is under development, but you can check the running prototypes.