Send Raw or hex data out the serial port using bonescript

432 views
Skip to first unread message

John Mladenik

unread,
Nov 19, 2014, 6:26:23 PM11/19/14
to beagl...@googlegroups.com
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?    

here is my html/javascript to test this functionality

<html>
<body>

Uart Byte:<br>
<input type="number" name="value" id='value'/>
<button onclick="uartWr()">SEND</button>

</body>
<head>
<script src="/bonescript.js"></script>
<script>
function uartWr() {
    var b = require('bonescript');
    var port = '/dev/ttyO2'; // set UART port
    var data = document.getElementById('value').value;
    // set baud rate and buffer size
    var options = {
        baudrate: 9600
    };

    b.serialWrite(port, data );

}
</script>

</head>
</html>


George Lu

unread,
Nov 19, 2014, 6:44:26 PM11/19/14
to beagl...@googlegroups.com
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).

John Mladenik

unread,
Nov 19, 2014, 7:03:12 PM11/19/14
to beagl...@googlegroups.com
Yes that worked thanks.   

John Mladenik

unread,
Nov 22, 2014, 10:49:10 PM11/22/14
to beagl...@googlegroups.com
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?   

George Lu

unread,
Nov 24, 2014, 10:43:55 AM11/24/14
to beagl...@googlegroups.com
On Sat, Nov 22, 2014 at 7:49 PM, John Mladenik <john...@sbcglobal.net> wrote:
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:

@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 interfaces.

If doSerial.js crashes for any reason, you could use a process monitor to restart it. Supervisord, forever, pm2, are some options to explore.
  

--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Message has been deleted

John Mladenik

unread,
Nov 25, 2014, 1:46:10 PM11/25/14
to beagl...@googlegroups.com
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.
Reply all
Reply to author
Forward
0 new messages