Go Down

Topic: LumiNet (based on attiny84) (Read 61 times) previous topic - next topic


Couple questions:

1) Any plans on releasing a compiled IDE with all your changes? Save me the trouble of figuring out your instructions (haven't dwelled into the source code of the Arduino yet)

2) Are there any restrictions? Can all libraries be used? Would there have to be many changes to port the libraries over?

3) Is there a way to burn a bootloader through bit banging with the FT232?


darudude: thank you for your questions.

1) yes the IDE will be released soon. And I hope to get the LumiNet patches included into the official Arduino release, so you don't need to have two IDEs installed. I will explain all instructions to you, what do you need to know?

2) There are some restrictions I guess. The attiny84 has less pins and no hardware UART for example. But all simple examples can be used. All libraries will be available. At the moment some libraries use code that only compiles on the Arduino atmega chips. Some problems with the Ethernet, Wire and Stepper libraries are still open.

3) The LumiNet nodes have their own bootloader. So every node comes with a preprogrammed bootloader (that supports programming by infection). Burning the bootloader via BitBang was not tested, but if it is possible with the Arduino then I see no reason why it shouldn't work with LumiNet. All ISP pins are available and can be used by any ISP programmer.


Mar 16, 2009, 01:48 pm Last Edit: Mar 16, 2009, 01:51 pm by darudude Reason: 1
thanks for the quick follow ups!

1) Well I guess I wasn't completely clear. I do understand most of the instructions and could probably edit the IDE on my own with a little trial and error and research (I've never had to recompile the Arduino IDE before but I assume this wouldn't be any more different than any other programming project I have worked on). However, most of what I do with the Arduino is teaching and kit development, and I'd want something I can give my students that they can then find later without much effort. I think learning how to recompile the IDE is out of the scope of what I am trying to do with them (mostly high school kids). Having the LumiNet patches merge the LumiNet and Arduino branches together is exactly what I need. I'll probably wait till this happens before I start actively working with this.

2) I am glad most of the libraries will be supported. I was aware there would be restrictions, but I am glad they aren't as drastic as I thought they would be.  

3) What is programming by infection? Also how can the LumiNet be bootloaded by bit-banging without a UART?

And a few more questions

1) Is the power saving drastically better than the Atmega? I seem to be losing power way too quickly for battery powered applications on my Atmega based solutions even on sleep mode.

2) I don't see I2C capabilites on teh Attiny85 data sheets. is it possible to work with I2C and OneWire?


1) Good to hear that someone actually needs my modifications :) I really hope that most of my patches qualify for a future release of the Arduino IDE. But there will be a release of my IDE within the next 6 weeks.

3) programming by infection is a multi-hop reprogramming method we created for LumiNet. The idea behind LumiNet is that you don't have a single controller (like in most Arduino projects) but many (hundreds) of nodes with their own microcontroller. You could disassemble the network and reprogram every node via isp or UART. But what we do is different: a special node (called vector node) gets programmed via (software) UART and it stores the program code. Then this (vector) node is connected to the network and the payload propagates from one node to all its neighbors... like a virus. In that way the network remains unchanged and new program code can be uploaded to all nodes in a single step. This is especially handy for mobile applications (e.g. wearable computing) when you don't have a PC around you but you have 10 preprogrammed nodes with different payload. So programmin by infection is a combination of a program code dissemination protocol and a bootloader.

I have to compare power consumption. I will provide information about that in the next days.

LumiNet uses the attiny84 chip. This chip has limited I2C capabilities (the same is true for the attiny85).
But if you look in the datasheet in 14.3.4 Two-wire Mode you can see, that the USI of the attiny can do I2C (TWI) in hardware.
How important is I2C to your projects? Do you need I2C master or a slave functionality?

I did not test OneWire yet because I have no such devices. But I downloaded the lib from here:
and the example compiles without problems. A short look in the sources tells me: this should work without any problems with LumiNet.


Oh I forgot the bit bang question... the attiny84 has no hardware UART. But for ISP you don't need a hardware UART. What you need is a ISP interface. And the six ISP pins are available (the diagonal pins you can see on the photo) so you can connect any ISP programmer to them, even a bit bang device that can be a FTDI chip like the one that is used on the Arduino. So you can use the Arduino as an ISP for LumiNet in theory. I have never tried this but it should work just as fine as with an Arduino. Just to make sure we are talking about the same thing, here is a link:


The picture (of the circuit) at the bottom of the page shows how to connect the 4 pins of the X3 connector of the Arduino in Order to convert the FTDI chip into a bit bang ISP programmer (that can be used with LumiNet nodes)

With this ISP programmer you can upload the bootloader to the LumiNet node. If requested I could modify the IDE so that the sketch can be uploaded via ISP (I use this for tests here but it will get removed with the official release because programming by infection is the way sketches should be uploaded)

Go Up