Dear all,
I want to use this project (GitHub - TheChief79/tpm2arduino: Tpm2 Firmware for Arduino) on my Arduino Uno to control 180 RGB-LEDs with my VDR (VirtualDiskRecorder) running on Gentoo.
The developer runs tpm2arduino on an Arduino Duemilanove without problems with a high datatransfer-rate.
My Arduino Uno is extremely slow receiving data. Every second the lights gets refreshed. The deleoper tested some other boards. It works perfectly only with the FTDI-controller...
How can I fix this problem to use my Arduino Uno???
Could you use a "normal" baudrate, like 115200 ? stty -F /dev/ttyACM0 115200
That is about 10kbyte per second. Is that not enough ?
I don't know if the 500000 is supported by Arduino or computer. Perhaps only the FTDI supports 500000. I know also the Arduino Leonardo allows much higher baudrates than 115200. But the serial port on the Leonarde is a combination of hardware and software, so that might slow it down.
I'm not pretending to know anything about the OP's problem.
I have had no trouble getting an Uno to work at 1,000,000 baud.
And a Leonardo ignores the baud rate when using Arduino 1.5.7 and works at full USB speed with a throughput about 3 or 4 times faster than the Uno.
Do you have an official Arduino Uno ? which version ?
Or a clone from Ebay ? If so, can you make a photo of it ?
Perhaps a clone has problems with the high baudrate, but I don't know if clones have problems with that.
Could you continue with a board with the FTDI ? I guess only a real FTDI can do the high baudrates and not a counterfeit FTDI.
Can you change the baudrate in Windows software ? It is a bad piece of software if you can not change it...
It is an original Uno R3!
I just bougt a new "SainSmart Duemilanove" (the Duemilanove is not available in Germany anymore) and I hope, a FTDI is onboard.
Otherwise I have to buy an FTDI-shield...
I'm sorry, I don't have a Uno R3. So I can't test it.
We have also not found the cause yet. It might still be something else, not the baudrate.
500000 (500k) is about 50kbyte per second. The buffer size is 64 byte. The 64 byte will be filled in 1.3ms.
Perhaps buffers are overflowing. Perhaps some data is thrown away or the Arduino starts polling.
svenf:
Well, the baudrate is expected by the software running on windows.
You need to understand that the baudrate only comes into play on the Arduino board. With an Uno or Mega the USB connection goes to a separate Atmega chip which converts the signal for the main Atmega Rx and Tx pins.
On the Leonardo there is only one Atmega chip which connects directly to the USB cable.