My project of a radio emulator on my 'bike is all working well. I am able to write to the display and all functions work. It takes a short time for the display to get its startup text currently and I would like it to appear asap, so I want to issue the I-bus command at the earliest possible time after the system comes on line. At the moment, that data transmission is getting corrupted and I believe it might be because the Arduino Nano hasn't fully started up. It is fine and remains so if I wait a few seconds before allowing it to transmit..
To test my theory, I wonder if there is a way of getting any sort of "Fully initialised" signal from the board please?
Sure, just set a GPIO pin whenever you decide you are "fully initialized". The first line of setup() would be the canonical place. Then slap a scope on it.
Interesting, thankyou. The final versions are intended to be exactly that so perhaps it will just need a final tweak when a production prototype is built. That's if it gets to that stage, I have only had two expressions of interest so far from the BMW forums, so it may be a non starter.
AJLElectronics:
At the moment, that data transmission is getting corrupted and I believe it might be because the Arduino Nano hasn't fully started up.
Upon some thought, this makes no sense. How can it do any kind of command and control or I/O if it hasn't started up? Take a good hard look at your startup sequence to see how you can prevent this. Everything is completely determinate.
Note that the Optiboot loader does not delay on a power-up reset, only if the reset line has been tripped to cause the reset. So if it is just on power-up, it is unlikely to be a delay caused by the bootloader.