I am programing Arduino from an external computer using Arduino IDE and on pin 38 I get 1.8V instead of 3.3V. But if I let the OS boot then the voltage is again 3.3V Why is that happening, is any solution?
It's probably the i.MX6 chip interfering, a consequence of both CPUs sharing pins. Notice the canonical name for this pin is EIM_A16 (address bit 16)-- at kernel boot time the pin-muxing is changed, as layed out in board-mx6qd_seco_UDOO.h to make it just a normal gpio, set to input state until changed, but on the i.MX6 side, usually canonical pin names reflect the power-on default, and CPU address pins tend to be full-time outputs. i.MX6 pulling this down to 0V as the SAM3X tries to pull it up to 3.3V would explain the 1.8V intermediate voltage, as the two chips fight one another... this can dissipate significant heat in the pin drivers, and is'nt good for hardware health in the long term. It'd be best to make D38 an input, if you can, and move any Arduino ouptuts to pins that come up as GPIO_* at power-on on the i.MX6. Check file "UDOO_pinout_alternate_table.pdf", avaialble under Downloads on this site for a handy reference.