I want to use an arduino duemilanove atmega168 for audio signal processing. I can sample the signal at around 38.5kHz using this code. I want to send the sampled data over the serial to a computer for processing.

  • Data acquisition rate: 38.5 kbps (using 8-bit precision)
  • Maximum serial communication rate: 115200 bps (I don't know exactly how this relates to the transfer rate of the actual data (without any overheads), but anyhow the limit is 13.94 kbps)
  • Arduino flash memory: 16 kB

I would like to transmit around 4-5 seconds of the audio signal to the computer. Is there a way to achieve this?

  • So I think this is going to very hard since the serial communication limit is based on the underlying atmega168 and there isn't really another hardware based communication system. I poked around and apparently people have made hardware serial run at 1Mbps, this seems rather difficult though check here for some more details arduino.stackexchange.com/questions/4071/…. Nov 5, 2014 at 19:29

1 Answer 1


After doing some reading here Serial.begin(): Why not always use 28800? and looking at the manual for the 168. You should be able to achieve the baud rate you want by directly programming the USAR.

According to the answer there you should be able to use miniterm to keep up with a high baud rate.

As stated there you might run into problems with computer power.

Read chapter 20 here http://www.atmel.com/images/doc2545.pdf.

Basically you can set up the USART speed (UDR0) and the control registers (UCSR0A,UCSR0B and UCSR0C) such that you can send data pretty fast.

Let me know if you can't access that link and if you need me to explain some more about these things.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.