Take the 2-minute tour ×
Code Review Stack Exchange is a question and answer site for peer programmer code reviews. It's 100% free, no registration required.

I have a piece of simple code that works on a Windows - WAMP environment, e.g.

<?php

`mode com3: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

file_put_contents(com3, chr(1).chr(255).chr(1).chr(4).chr(64).chr(5));

?>

It connects via a USB cable (using USB-Serial drivers) to a circuit-board to light some LEDs, and it works fine - so similarly windows software like 232Analyser, can connect to COM3 and send code in DEC like 1,255,255,255,255,5, and light the LEDs. The number 255, is a DEC number from: 1,2,4,8,16,32,64,128,255 which will light a certain LED depending on which number is called.

Anyway, the code above works fine on Windows, and lights LEDs by calling this PHP file. So can call a URL like: http://localhost/lightled.php which works ok.

Now I need it to work via Linux, on a Raspberry Pi, so I have just installed standard Raspberry Linux, and Apache with PHP.

Then attached the USB cable, and it appears as /dev/ttyUSB0 I have then CHMOD 777 /dev/ttyUSB0

And changed the PHP code to:

<?php

`mode /dev/ttyUSB0: BAUD=38400 PARITY=N data=8 stop=1 xon=off`;

file_put_contents('/dev/ttyUSB0', chr(1).chr(255).chr(1).chr(4).chr(64).chr(5));

?>

However calling this file on Linux in a browser is not Lighting the LEDs, as it does on Windows.

Now when I call this file it goes through with no errors, without chmod 777, it gave a permission denied error. So it seems like it goes through ok, but something else is wrong.

  • So question is anyone know how to make it work on Linux, it might be I am calling the USB wrong, or Raspberry Linux needs some kind of drivers, or " `mode " needs to be defined differently ...or maybe the decimal/binary code sent is not right like "chr(2)" etc. needs to be different and wont be sent in same way on a LAMP setup.

Any ideas on what I can try?

Thanks,

Aku Foo.

share|improve this question

put on hold as off-topic by Ismael Miguel, RubberDuck, Jamal 7 hours ago

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions containing broken code or asking for advice about code not yet written are off-topic, as the code is not ready for review. After the question has been edited to contain working code, we will consider reopening it." – Ismael Miguel, RubberDuck, Jamal
If this question can be reworded to fit the rules in the help center, please edit the question.

    
Interesting problem, but broken code is off topic here. –  RubberDuck 7 hours ago
    
To my knowledge, you can't change serial port parameters by writing magic data to the port; you need to use an out-of-band mechanism to reconfigure the port. Suggestions: see php_serial.class.php, or ask on Raspberry Pi / Unix & Linux / Stack Overflow. –  200_success 6 hours ago