I need to be able to send raw data out of the serial port using Bonescript command b.serialWrite. I set up an HTML Bonescript to send data and then looked on the logic analyzer to see what bit pattern is sent out. The pattern is always the ASCII value of the character whether the variable is a text or number.
Does anyone know how to pass to b.serialWrite a value so that the UART outputs that value?
so I want to have
var port = ‘/dev/ttyO2’; // set UART port
var data = 0x55 ;
b.serialWrite(port, data );
and for the bit pattern coming out of the UART to be 01010101
I tried using String.fromCharCode(data); but this only works for values up to 127 (0x7F) since that is all ASCII goes to. This must not support extended ASCII?
I recall BoneScript uses https://github.com/voodootikigod/node-serialport
for serial port interface.
You should be able to send raw binary with b.serialWrite(port, [0x55]);
Data should be a buffer (http://nodejs.org/api/buffer.html).
So it worked but once I let the board sit not being powered overnight it stopped working. Do you or anyone know how to get the UART2 working and stay working once powered down and then turned back on?
So it worked but once I let the board sit not being powered overnight it
stopped working. Do you or anyone know how to get the UART2 working and
stay working once powered down and then turned back on?
Once power cycled, you would need to start up the program again so that the
serial port could be properly opened for writing. I would have the
bonescript code in, say, /home/debian/doSerial.js, and run that
automatically on every reboot. There are a number of ways to do this. One
quick way is try to add a line in /etc/crontab to run this command on
@reboot root cd /home/debian &&
NODE_PATH=/usr/local/lib/node_modules && export NODE_PATH && doSerial.js
Assuming you are using debian image, /dev/ttyO1 and /dev/ttyO2 have
"rw-rw---" as their permission. So you either need to run it as root or add
your desired user to the dialout group to be able to write to these serial
If doSerial.js crashes for any reason, you could use a process monitor to
restart it. Supervisord <http://supervisord.org/>, forever
<https://github.com/nodejitsu/forever>, pm2 <https://github.com/Unitech/pm2>,
are some options to explore.
My UART2 app worked the whole time, I had the logic analyzer probes on the wrong pins and thought it was not working. I found this once I tried a 2nd BBB and it worked right out of the box. I then went back and realized the probes were on the wrong pins.
thanks for all the help.