Page 1 of 1

OSError: [Errno 2] ENOENT

Posted: Wed Aug 28, 2019 2:41 pm
by Sonam Phuntsho
Hi,

I am intending to convert the ascii.txt file into the hexadecimal and I used the following code (micropython) in Lopy4 which has ESP32;

import binascii
ascii = 'ascii.txt'
with open(ascii, 'rb') as f:
content = f.read()
data = binascii.hexlify(content)
print(data)

But I am getting the following error when I run the code

Traceback (most recent call last):
File "<stdin>", line 4, in <module>
OSError: [Errno 2] ENOENT
>
Pycom MicroPython 1.18.2.r6 [v1.8.6-849-a210e85] on 2019-05-13; LoPy4 with ESP32
Type "help()" for more information.
>>>

However, when I run the above code in the Pycharm IDE, I did get the result as attached which I feel I got the result.

Can anyone help me what did I do wrong in the Lopy4 which has ESP32 using micropython and how do I rectify the error shown above please.

Thank you
Capture.JPG
Capture.JPG (74.07 KiB) Viewed 171 times

Re: OSError: [Errno 2] ENOENT

Posted: Wed Aug 28, 2019 4:51 pm
by Roberthh
ENOENT means file not found. What is the size of ascii.txt? The way you code it has to fit in RAM, and the converted data too.

Re: OSError: [Errno 2] ENOENT

Posted: Thu Aug 29, 2019 3:51 am
by Sonam Phuntsho
The file ascii.txt is only 1Kb and it was located in the same folder. In fact I did not upload the main.py code as well as the ascii.txt in the flash. Is it because of that?

Thank you

Re: OSError: [Errno 2] ENOENT

Posted: Thu Aug 29, 2019 6:01 am
by Roberthh
Ok. You get the ENOENt error because there is no main.py on the board. You can ignore that error. To run your code, assuming it is in a file called to_hex.py, you have to type at the REPL:

import to_hex

you may also run that from a main.py file, which is executed at every boot.

Re: OSError: [Errno 2] ENOENT

Posted: Wed Sep 11, 2019 2:24 am
by Sonam Phuntsho
Thank you @ roberthh. (Apology for the long gap and again bringing this topic) I could upload the main.py and boot.py with ascii.txt file to the lopy4 flash and the program could run and i can see the print executed.

My code below:
i

Code: Select all

mport binascii
import struct

ascii = 'SIGN.txt'
with open(ascii, 'rb') as f:
    content = f.read()
    data = binascii.hexlify(content)
print(binascii.hexlify(content))
print(content)
print(data)
l = len(data)
print (l)
hex_string = binascii.unhexlify(data)
print (hex_string)
print (len (hex_string))

for l in range (0, l, 10):
    package = data[1:l+10]
    print (package)
 
Actually I intend to send the package with some delay through lora from lopy4 and retrieve the package in lora gateway. I am trying to struct.pack the package and send with defined socket. I am new to the micropython in fact, Could you help me guide in these?

Thank you in advance.

Re: OSError: [Errno 2] ENOENT

Posted: Wed Sep 11, 2019 5:56 am
by Roberthh
First of all, for anything related to LoPy4 you should better ask at the Pycom forum https://forum.pycom.io/.
Besides that, for sending data with Lora, you do not have to convert it to ASCII-Hex. In fact, due to the low Lora data rate, it would make things worse. The transmission time is doubled. For examples on using Lora, you can follow the documenattaion, which is linked on the Pycom forum webs site..

Re: OSError: [Errno 2] ENOENT

Posted: Wed Sep 11, 2019 6:44 am
by Sonam Phuntsho
Thank you for the information @ roberthh. :)