Arduino chip creator project.

I would like to gauge the interest in the following project: A file or sketch you could download into an Arduino device that would allow you to program a new Mega 168 with the Arduino bootloader. This would allow users to create their own Arduino chips.

I have the technical chops to write, document and release the code but do not have the web presence to distribute the project and I do not care to develop web pages. I would appreciate any comments on the concept and how well it would be received. Is it possible that such a thing exists? Comments and messages from possible collaborators are requested.

There's something along those lines on the playground: Arduino Playground - Boot-Cloner, but it could use testing on or porting to the ATmega168, and I'm sure there are lots of other improvements possible. For example, it would be cool if it could work as a programmer for getting any sketch onto another Arduino, not just the bootloader. This kind of program is really great to have, as it makes it possible to "virally" spread Arduino or similar boards by each person programming the bootloader onto the next's board. So anything you could do along these lines would be much appreciated.

I would like to gauge the interest in the following project: A file or sketch you could download into an Arduino device that would allow you to program a new Mega 168 with the Arduino bootloader. This would allow users to create their own Arduino chips.

So, it would be turning the Arduino board into an In-System Programmer (ISP)?

but do not have the web presence to distribute the project and I do not care to develop web pages.

Well, you could always put it up on somewhere like SourceForge or Google Code.

I would appreciate any comments on the concept and how well it would be received. Is it possible that such a thing exists?

There's been a number of projects that have tried to turn an Arduino board into an ISP (mostly implementing the STK500 v1 or v2 protocols), I've collected links I know of in this list of projects turning Arduino into an ISP.

I'm interested in the project because there's no technical reason that I know of that the Arduino wouldn't work as an ISP and there's no point in buying or making another piece of equipment when you don't need to. Having said that, I got tired of waiting for it to get developed and have now ordered a USB programmer kit. (While I want to work on a similar project my current project is more urgent.) :slight_smile:

From what I've seen the mega-isp project looks quite promising if they follow through.

Having said that, I wonder if these projects are going about things the wrong way by trying to embed too much "intelligence" into the code running on the Arduino. The avrdude software already has all the "intelligence" needed to communicate with a chip with SPI to program it (due to the need for this for bitbanger programmers like the parallel cable). So I think a small program on the Arduino to act as a USB Serial<-->SPI proxy might be a better approach and it would mean it could be a lot simpler than implementing the the STK protocol(s) on the chip itself.

What I'm not sure about is how easy it would be to get access to the "raw" bytes needed without having to write an avrdude programmer "plugin". It might be possible in the interim to use a local-proxy to take advantage of the avrdude's ability to connect over the network--but I'm not sure if that would be as simple as an SPI-proxy.

So, anyway, that's my thoughts... :slight_smile:

--Phil.

Hi,

I would like to gauge the interest in the following project: A file or sketch you could download into an Arduino device that would allow you to program a new Mega 168 with the Arduino bootloader. This would allow users to create their own Arduino chips.

Interest is high! There seems to be no reason to limit the project to bootloaders. If you can burn bootloaders you can also burn sketches and set fuse/lock-bits.

I have the technical chops to write, document and release the code but do not have the web presence to distribute the project and I do not care to develop web pages.

We have the playground as the natural choice for the documentation and software distribution.

I would appreciate any comments on the concept and how well it would be received.

Here are my personal ideas and hopes for such a project:
I would like to see this as a feature of the arduino IDE. For this I would suggest the code to be run on the "ArduinoProgrammer" to be quite dumb. Mainly a Serial-toSPI-proxy (as already suggested).
The "ProgrammingSoftware" on the host-computer should is written in Java so it could be easily integrated into the IDE. (Advanced Tools Menu?)
The major goal for me would be to have an easy way of uploading sketches to an Arduino from inside the IDE without the need for a bootloader.
Since Mellis has already taken notice of the idea, we would probably have a chance on taking the arduino a step further...

Eberhard

What would be best (from my point-of-view) is if the Arduino could be turned into an ISP that avrdude could handle (stk500 or something else). Arduino 0011 will have support for uploading sketches from the IDE using a programmer (you'll need to edit the preferences file to enable it) and if the Arduino was an avrdude-compatible programmer, it should just work. Integrating Java code for a custom protocol wouldn't be very high on my list of priorities.

Hi,

What would be best (from my point-of-view) is if the Arduino could be turned into an ISP that avrdude could handle (stk500 or something else).

Then its not really worth the effort any more. The arduino is ~26 Euros a MkII Programmer is 39 Euros (here in germany). If the programming feature is not available directly from the IDE one could just buy and use a programmer.

Arduino 0011 will have support for uploading sketches from the IDE using a programmer (you'll need to edit the preferences file to enable it) and if the Arduino was an avrdude-compatible programmer, it should just work.

Will we be able to burn a sketch directly, without the bootloader, that way?

Integrating Java code for a custom protocol wouldn't be very high on my list of priorities.

Should be nothing more than a simple function call.
The programming class would need to know where the compiled sketch is to be found on the filesystem, and a reference to the serial-port to which the programming-arduino is connected (assuming its already open).

Eberhard

You're going to be able to burn sketches directly from the IDE with a programmer in Arduino 0011. If the Arduino can act as a programmer, then you'll be able to do the same with it. The advantage as I see it is that the while the Arduino may not be much cheaper (if at all) than a programmer, it's can be used in ways that a programmer can't. I can imagine that there are people who already have an Arduino that would like to be able to use it as a programmer (e.g. to burn sketches onto new ATmega's to put into projects), that wouldn't want to spend the money on a programmer. I think there's a lot of value in saving people that 39 euro, even if the functionality is the same.

It turns out the BootCloner was almost the exact project I was suggesting. A search reveals there is sufficient prior art in the boot loader and boot cloner code to prove an Arduino based programmer is possible. What I don't know is what features the programmer software should have. I would like to develop this project for my own personal satisfaction but would like it to be as useful to as many people as possible.

My development plan is to modify the current boot loader code to talk to a PC and log to a terminal program and then modify the boot cloner code to program all of the memory locations in an AVR. I will then merge the two together and report back with the results.

If anyone would care to suggest this is a waste of my time, please tell me now. I can move on. If anyone would like to help with the project let me know but don't get too excited until I post proof of concept code.

Thanks for your time,

W.M.F.

Mellis - there's one more thing that's going to nibble away at that 39 euro savings; you will need a piece of hardware to turn an Arduino into a programmer. You will need a "chip carrier" and cable. Ideally, a ZIF socket. Not cheap! Wiring your Arduino to a breadboarded target chip is too unreliable for me!

Hmm, good point. Still, I imagine some people might try it and get it work in a breadboard - or, say, maybe someone has two Arduino boards, they could use one as the programmer and the other to hold the target chip. In any case, I think it would be a good option for people to have.

I am kind of wishing I had one at the moment (I just put a Boarduino together).
What about ZIFduino? That thread ended a couple weeks ago when a ZIF socketed BBB appeared, but files for a ZIFduino were posted by Bitty a month ago. Could that be used? I haven't looked at the files (though I'm downloading them now); did you ever look at that layout, Mellis? In the Hardware Development forum, I should mention.

FYI - I went to Bitty's website and left a message asking about ZIFduino progress.