GPIO board read/write via bash

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP












1















Trying to get a GPIO board working, need to access it from script, here is what I am using:



stty -F /dev/ttyACM1 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
echo "gpio readall" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep 5s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA


The board is working - I can access via screen, enter same command and get results back, so I know its my fractured script. What am I doing wrong?



Note - this script was copied from elsewhere here on stackexchange.










share|improve this question






















  • When the script finishes (assuming it does), what's in your ttyDump.dat file?

    – RubberStamp
    Dec 31 '18 at 1:42











  • ttyDump.dat is empty, zero length.

    – alabamatoy
    Dec 31 '18 at 12:02











  • Please edit your question to add the GPIO board's manufacturer and model so that others with the same board might also find your question and answer...

    – RubberStamp
    Jan 1 at 12:52















1















Trying to get a GPIO board working, need to access it from script, here is what I am using:



stty -F /dev/ttyACM1 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
echo "gpio readall" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep 5s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA


The board is working - I can access via screen, enter same command and get results back, so I know its my fractured script. What am I doing wrong?



Note - this script was copied from elsewhere here on stackexchange.










share|improve this question






















  • When the script finishes (assuming it does), what's in your ttyDump.dat file?

    – RubberStamp
    Dec 31 '18 at 1:42











  • ttyDump.dat is empty, zero length.

    – alabamatoy
    Dec 31 '18 at 12:02











  • Please edit your question to add the GPIO board's manufacturer and model so that others with the same board might also find your question and answer...

    – RubberStamp
    Jan 1 at 12:52













1












1








1








Trying to get a GPIO board working, need to access it from script, here is what I am using:



stty -F /dev/ttyACM1 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
echo "gpio readall" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep 5s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA


The board is working - I can access via screen, enter same command and get results back, so I know its my fractured script. What am I doing wrong?



Note - this script was copied from elsewhere here on stackexchange.










share|improve this question














Trying to get a GPIO board working, need to access it from script, here is what I am using:



stty -F /dev/ttyACM1 115200 raw -echo #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
echo "gpio readall" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep 5s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA


The board is working - I can access via screen, enter same command and get results back, so I know its my fractured script. What am I doing wrong?



Note - this script was copied from elsewhere here on stackexchange.







bash stty gpio






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Dec 31 '18 at 1:26









alabamatoyalabamatoy

61




61












  • When the script finishes (assuming it does), what's in your ttyDump.dat file?

    – RubberStamp
    Dec 31 '18 at 1:42











  • ttyDump.dat is empty, zero length.

    – alabamatoy
    Dec 31 '18 at 12:02











  • Please edit your question to add the GPIO board's manufacturer and model so that others with the same board might also find your question and answer...

    – RubberStamp
    Jan 1 at 12:52

















  • When the script finishes (assuming it does), what's in your ttyDump.dat file?

    – RubberStamp
    Dec 31 '18 at 1:42











  • ttyDump.dat is empty, zero length.

    – alabamatoy
    Dec 31 '18 at 12:02











  • Please edit your question to add the GPIO board's manufacturer and model so that others with the same board might also find your question and answer...

    – RubberStamp
    Jan 1 at 12:52
















When the script finishes (assuming it does), what's in your ttyDump.dat file?

– RubberStamp
Dec 31 '18 at 1:42





When the script finishes (assuming it does), what's in your ttyDump.dat file?

– RubberStamp
Dec 31 '18 at 1:42













ttyDump.dat is empty, zero length.

– alabamatoy
Dec 31 '18 at 12:02





ttyDump.dat is empty, zero length.

– alabamatoy
Dec 31 '18 at 12:02













Please edit your question to add the GPIO board's manufacturer and model so that others with the same board might also find your question and answer...

– RubberStamp
Jan 1 at 12:52





Please edit your question to add the GPIO board's manufacturer and model so that others with the same board might also find your question and answer...

– RubberStamp
Jan 1 at 12:52










1 Answer
1






active

oldest

votes


















0














I found my problem. First, I had the tty commo configured wrong. Second, I was sending the command in a way that the GPIO board didn't know what to do with it. This works:



stty -F /dev/ttyACM1 -cstopb -crtscts cs8 9600 #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
# echo "Process ID is $PID"
printf "gpio read 0r" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep .2s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA





share|improve this answer























  • It might be a good idea to provide a link to the board's programming API website, if there is one....

    – RubberStamp
    Jan 1 at 12:53











  • Board MFG link is here: numato.com/docs/8-channel-usb-gpio-module-with-analog-inputs

    – alabamatoy
    Jan 1 at 17:58










Your Answer








StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "106"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f491674%2fgpio-board-read-write-via-bash%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














I found my problem. First, I had the tty commo configured wrong. Second, I was sending the command in a way that the GPIO board didn't know what to do with it. This works:



stty -F /dev/ttyACM1 -cstopb -crtscts cs8 9600 #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
# echo "Process ID is $PID"
printf "gpio read 0r" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep .2s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA





share|improve this answer























  • It might be a good idea to provide a link to the board's programming API website, if there is one....

    – RubberStamp
    Jan 1 at 12:53











  • Board MFG link is here: numato.com/docs/8-channel-usb-gpio-module-with-analog-inputs

    – alabamatoy
    Jan 1 at 17:58















0














I found my problem. First, I had the tty commo configured wrong. Second, I was sending the command in a way that the GPIO board didn't know what to do with it. This works:



stty -F /dev/ttyACM1 -cstopb -crtscts cs8 9600 #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
# echo "Process ID is $PID"
printf "gpio read 0r" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep .2s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA





share|improve this answer























  • It might be a good idea to provide a link to the board's programming API website, if there is one....

    – RubberStamp
    Jan 1 at 12:53











  • Board MFG link is here: numato.com/docs/8-channel-usb-gpio-module-with-analog-inputs

    – alabamatoy
    Jan 1 at 17:58













0












0








0







I found my problem. First, I had the tty commo configured wrong. Second, I was sending the command in a way that the GPIO board didn't know what to do with it. This works:



stty -F /dev/ttyACM1 -cstopb -crtscts cs8 9600 #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
# echo "Process ID is $PID"
printf "gpio read 0r" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep .2s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA





share|improve this answer













I found my problem. First, I had the tty commo configured wrong. Second, I was sending the command in a way that the GPIO board didn't know what to do with it. This works:



stty -F /dev/ttyACM1 -cstopb -crtscts cs8 9600 #CONFIGURE SERIAL PORT
exec 3</dev/ttyACM1 #REDIRECT SERIAL OUTPUT TO FD 3
cat <&3 > /tmp/ttyDump.dat & #REDIRECT SERIAL OUTPUT TO FILE
PID=$! #SAVE PID TO KILL CAT
# echo "Process ID is $PID"
printf "gpio read 0r" > /dev/ttyACM1 #SEND COMMAND STRING TO SERIAL PORT
sleep .2s #WAIT FOR RESPONSE
kill $PID #KILL CAT PROCESS
exec 3<&- #FREE FD 3
cat /tmp/ttyDump.dat #DUMP CAPTURED DATA






share|improve this answer












share|improve this answer



share|improve this answer










answered Jan 1 at 1:06









alabamatoyalabamatoy

61




61












  • It might be a good idea to provide a link to the board's programming API website, if there is one....

    – RubberStamp
    Jan 1 at 12:53











  • Board MFG link is here: numato.com/docs/8-channel-usb-gpio-module-with-analog-inputs

    – alabamatoy
    Jan 1 at 17:58

















  • It might be a good idea to provide a link to the board's programming API website, if there is one....

    – RubberStamp
    Jan 1 at 12:53











  • Board MFG link is here: numato.com/docs/8-channel-usb-gpio-module-with-analog-inputs

    – alabamatoy
    Jan 1 at 17:58
















It might be a good idea to provide a link to the board's programming API website, if there is one....

– RubberStamp
Jan 1 at 12:53





It might be a good idea to provide a link to the board's programming API website, if there is one....

– RubberStamp
Jan 1 at 12:53













Board MFG link is here: numato.com/docs/8-channel-usb-gpio-module-with-analog-inputs

– alabamatoy
Jan 1 at 17:58





Board MFG link is here: numato.com/docs/8-channel-usb-gpio-module-with-analog-inputs

– alabamatoy
Jan 1 at 17:58

















draft saved

draft discarded
















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f491674%2fgpio-board-read-write-via-bash%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown






Popular posts from this blog

How to check contact read email or not when send email to Individual?

Displaying single band from multi-band raster using QGIS

How many registers does an x86_64 CPU actually have?