Is there anyone here using the arduino and storing data on a SD/CF card or USB stick or something like that? I have a dosonchip module that is not very cooperative. Unfortunately I read this thread http://www.sparkfun.com/cgi-bin/phpbb/viewtopic.php?t=5065 after ordering it. I tried to get it working with a softwareserial interface and at the moment I try to get it working with SPI but i am not really succesful. Documentation of this thing is minimal which makes it quite hard to get it working. So, I am looking for alternatives. I want something removable like a memorycard or USB stick. This thing: http://www.vinculum.com/prd_vdip1.html seems nice. But it is a new product and googling for it mostly gives the press release of his new product.
Have you tried using rs232 instead of SPI for the dosonchip? This thing is on my wishlist, and I'm curious to see how well it works. I think there's another vendor with a similar device, but I can't remember details (sorry).
One way to use SD/CF/etc is to simply use the SPI interface and use it as a chunk of flash memory. Of course, you won't have a filesystem left so you can't just plug it in to a cardreader and grab a data file (although a linux user should be able to use dd to pull the entire contents off easily).
A trick I've heard about (but haven't tried) is to create a dummy file with junk in it, fighure out where that file starts on flash, then make sure you skip that many bytes (and don't write past the length of the file) when writing to the flash device. I don't particularly like the sound of this, but it does have the potential of being the cheapest in terms of interface hardware and software development.
Then again, you can always implement FAT in arduino and share your hard work with the rest of us.
Have you tried using rs232 instead of SPI for the dosonchip? This thing is on my wishlist, and I'm curious to see how well it works. I think there's another vendor with a similar device, but I can't remember details (sorry).
I still have pc's with a RS232 interface. But no max232 or something like that to get the dosonchip voltages to rs232 levels.
I tried to get it going with a software serial port on the arduino but it didn't work.
One way to use SD/CF/etc is to simply use the SPI interface and use it as a chunk of flash memory. Of course, you won't have a filesystem left so you can't just plug it in to a cardreader and grab a data file (although a linux user should be able to use dd to pull the entire contents off easily).
A trick I've heard about (but haven't tried) is to create a dummy file with junk in it, fighure out where that file starts on flash, then make sure you skip that many bytes (and don't write past the length of the file) when writing to the flash device. I don't particularly like the sound of this, but it does have the potential of being the cheapest in terms of interface hardware and software development.
This sounds familiar. But I guess it will not be easy to get it working.
Then again, you can always implement FAT in arduino and share your hard work with the rest of us.
I would love to do that. But it is maybe a little bit too much work for me. No, to be honest: I don't think I am capable of doing such a job.
I still have pc's with a RS232 interface. But no max232 or something like that to get the dosonchip voltages to rs232 levels.
I tried to get it going with a software serial port on the arduino but it didn't work.
You could try the arduino's hardware UART (e.g. pin 0 and pin 1) - switch to external power (to disable the FTDI chip) and you can hook the dosonchip TTL level 232 to the arduino's TTL level 232.
You could try the arduino's hardware UART (e.g. pin 0 and pin 1) - switch to external power (to disable the FTDI chip) and you can hook the dosonchip TTL level 232 to the arduino's TTL level 232.
What do you mean? Can I decouple the AVR from the FTDI chip and then use the FTDI to interface the dosonchip module to the USB port?
What do you mean? Can I decouple the AVR from the FTDI chip and then use the FTDI to interface the dosonchip module to the USB port?
I meant decouple the AVR from the FTDI and use the AVR's UART to talk to the dosonchip module, although now that you mention it you could pull the AVR from its socket and use the FTDI to talk to the dosonchip.
A trick I've heard about (but haven't tried) is to create a dummy file with junk in it, fighure out where that file starts on flash, then make sure you skip that many bytes (and don't write past the length of the file) when writing to the flash device. I don't particularly like the sound of this, but it does have the potential of being the cheapest in terms of interface hardware and software development.
This will work only if you are lucky enough to get the file allocated all in a single fragment. In general, a file on any filesystem (FAT, NTFS, etc) can be fragmented into multiple chunks, each chunk being an integer number of clusters. The cluster size can be any power of 2 between 512 bytes and 64K.
It just so happens that my day job involves low-level systems programming with filesystems and partition tables for data backup. Writing code to create a new file in a FAT filesystem is definitely non-trivial, especially if the file name doesn't fit in the old 8.3 character format. There are interface chips out there (forget the name) that solve this problem for you.
Well, using the FTDI chip for an USB<>RS232 interface was a great idea. But still no respons from the dosonchip module. >:( Connecting the RX and TX did work though, so the trick is okay.
So, back to the original question. Does anyone know easy to use modules to interface between arduino and SD/CF card or USB stick? The vinculum VDIP1 seems okay. But I haven't found examples yet how to use it.
Hm, how much storage size do you require? :-?
Maybe its a solution to use an I2C Bus (not too difficult to implement) to get
connections to a two wire I2C eeprom (size up to 1MBit).
As in addition you get the advantages of a bus system, connect very different types
of chips on only 2 wires.
Since I'm a unix guy anyway, my first attempt will probably be to write to the SD card directly (bypassing and overwriting the filesystem) via SPI, and just use dd to copy the data off the block device.