Computing stuff tied to the physical world


In AVR, Hardware, Software on Jun 7, 2010 at 00:01

Please excuse the crazy title. This picture probably tells you more:

Dsc 1509

You’re looking at an RBBB from Modern Device, hooked up to the Ether Card from Jee Labs. The hookup is trivial, it need 6 wires: 2 for power and 4 for SPI:

Screen Shot 2010 05 29 at 04.18.26

And that’s all you need to create a webserver!

Here’s a sample screen (yep, it’s been running for almost 12 hours):

Screen Shot 2010 05 29 at 00.03.48

And here’s the code for it:

Screen Shot 2010 05 28 at 12.05.03

It presents a self-refreshing page with the “uptime”, i.e. how long the server has been running since power-up.

The code is available as “rbbb_server.pde” example sketch in the EtherCard library and is a simplified adaptation of the etherNode sketch, omitting the RF12 driver and calls, of course. It compiles to 6 Kb of code.

As with the etherNode sketch, the MAC address and IP address have to be set to suitable values in the source code before uploading it to the RBBB.

BTW… did you notice anything?

The RBBB is running at 5V. And it works. Because the Ether Card is compatible with 3.3V and 5V signals!

Which also means that the Ether Card can be used with any Arduino board. It’s not specific to JeeNodes and it’s not limited to being used with the Carrier Board, either.

The generic software for the Ether Card is contained in the “EtherCard” library, listed on the software page in the CafĂ©. It doesn’t depend on Ports or RF12 libraries, so this thing really is a completely independent product.

It just “happens” to fit gorgeously into a box alongside a JeeNode :)

So there you have it – the Ether Card can be used with just about any microcontroller setup. All it needs is a power supply of 3.6V or more, 4 SPI I/O pins, and the proper software to make it sing of course…


  1. AFAIR, ENC28J60 requires some 5/3.3v level conversion on signal lines to work with 5v micro. At least according to the datasheet. Did you do something special to handle it? I used to put some buffer chips between ENC and ATMega.

    • The current datasheet says that the inputs are 5V tolerant. Just an on-board 3.3V regulator.

  2. Hi, thanks for making web-enabled sensor nodes even more affordable. Maybe the library functions for initialization could be named more consistently by using e.g. initSpi, initMac, initIp. Cheers, tamberg

    • I did change a few things, but most of the code is from existing sketches and libraries. Maybe one day I’ll find the time to give this a big makeover.

  3. So far I have manage to control myself and not buy an Ethercard on the grounds that I don’t have a carrier card and box…

    This is like geek crack!

    Must resist…. MUUUUUST resist!

  4. Just thinking out loud … with a bit of javascript programming, and a page that never closes, you could send data in real time to a browser front end which displays it graphically .. a sort of Web-JeeMon …

    I’m pretty sure there’s a http type which deines a page as ‘unfinished’ .. I must go do some background reading :)

Comments are closed.