Open rc-ozzy opened 8 years ago
Olá, desculpe por não ter respondido antes no forum da Mikroe, devo estar com alguma configuração de notificação incorreta e não vi a mensagem.
Muito obrigado pelo bug report. Parece que o problema aconteceu devido a uma versão recente que lançaram da biblioteca pyudev, que quebrou compatibilidade com a versão 0.16 que eu tinha instalada na minha máquina. Agora ele não permite mais usar a classe Attribute como se fosse um dicionário, por isso ocorre o erro que você observou. Fiz uma mudança no código que mantém compatibilidade com a versão antiga e também suporta essa nova versão.
Por favor teste com a última versão do mikroe-uhb e avise se ainda ocorrer algum erro.
The issue is due to a change in pyudev's Attribute class which breaks backwards compatibility. It can no longer be treated as a dictionary. The new implementation should be compatible both with older and newer pyudev versions.
Olá, Paulo, tudo bem? Existe alguma configuração de topic reply lá no forum, mas parece que temos acesso somente ao abrir o tópico (tenho passado por alguns problemas com isso também...) Eu é que lhe agradeço pela iniciativa... é um trabalho árduo desenvolver ferramentas para linux, pois não há compatibilidade tão natural de bibliotecas 'comerciais' (como hid), e todas as ferramentas disponíveis na internet sobre bootloader para MCU pic, são baseadas no Microchip Framework, por isso é tão importante o seu projeto. A própria Mikroeletronika não possui hoje um bootloader para PIC em linux. Quando conseguirmos usá-lo com o 18f4550, ficarei muito feliz em não ter que modificar meus vetores de reset e interrupção para atender o boot da picdem (microchip), ou modificar o arquivo hex (para o tinybootloader -020000040000FA). Me desculpe pela dificuldade (sou mais da área eletrônica que da informática), desculpe também por seguir tudo bem devagar, passo a passo...
Segui as dicas do site: http://pyudev.readthedocs.org/en/latest/ e entrei com o comando no terminal: ozzy@ozzy-laptop:~$ udevadm --version 151 e depois: ozzy@ozzy-laptop:~$ python Python 2.6.5 (r265:79063, Feb 27 2014, 19:44:14) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. Será que tem problema? Porque no github pede a versão de phyton ao menos 2.7... Enfim, baixei o arquivo zip direto no github (mikroe-uhb-master), porque o do library stock está com o último update de 2014 (Last Updated: 2014-08-16).
Abri outro terminal e digitei sudo su (senha) Nautilus Daí verifiquei em usr/local/bin o arquivo mikroe-uhb e etc/modprobe.d o arquivo mikroe-uhb.conf Ok
No mikrobasic, rodei um programa de teste bem simples:
program mikroe_uhb_test
main: while TRUE TRISc.0 = 0 latc.0 = 1 while true latc.0 = 1 delay_ms(100) latc.0 = 0 delay_ms(100) wend wend end.
Testei o código no proteus com sucesso. Usei o bootloader para um pic 18f4550 http://www.mikroe.com/forum/viewtopic.php?f=88&t=53440 Fiz o upload no Mikroe HID bootloader v2.0.0 (windows7). Ok.
Conectei meu dispositivo ao computador (que após o tempo do boot já comecou a piscar o led) com linux ubuntu 10.04LTS (lucid linx), e no terminal, digitei lsusb, pressionei o reset (para acessar o bootloader) e dei enter. Achou: Bus 003 Device 016: ID 1234:0001 com a sintax: lsusb -d 1234:0001 -vvv tivemos:
Bus 003 Device 018: ID 1234:0001
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x1234
idProduct 0x0001
bcdDevice 0.01
iManufacturer 1 Mikroelektronika
iProduct 2 USB HID Bootloader
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 41
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0x80
(Bus Powered)
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.01
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 33
Report Descriptors:
\ UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 1
Device Status: 0x0001
Self Powered
rodando no terminal: mikroe-uhb -v ou mikroe-uhb -v /home/ozzy/Download/mikroe_uhb_test_20Mhz.hex ou /usr/local/bin/mikroe-uhb -v /home/ozzy/Download/mikroe_uhb_test_20Mhz.hex o cursor ficou piscando, até desconectar e reconectar a placa do usb (alimentação) ou pressionar o reset.
O resultado foi o mesmo:
ozzy@ozzy-laptop:~$ mikroe-uhb -v
DEBUG:mikroeuhb.hid.linux:opening device vendor=1234, product=1
INFO:mikroeuhb.hid.linux:USB device 1234:0001 plugged
INFO:mikroeuhb.hid.linux:USB ID matches the expected one
DEBUG:mikroeuhb.device:send cmd: stx, cmd=INFO, addr=0x00000000, counter=0x0000
Traceback (most recent call last):
File "/usr/local/bin/mikroe-uhb", line 5, in
E isso é tudo o que consegui. Paulo, mais uma vez, muito obrigado pela paciência! Parece que agora falta pouco... Estive olhando o github, nao sei se o bootloader utilizado pelo senhor Kerekes Szilard pode ter alguma informação diferente, pois estou utilizando a versão de firmware e software oficial da mikroe (windows), e tanto vendor quanto product id coincidem.
Uma última informação: O relatório não deu erro sobre minha versão de phyton (que é nativa do linux 10.04LTS), mas já tive problema com isso anteriormente, ao tentar rodar outros programas. O que me impede de atualizar meu linux é devido eu utilizar uma máquina antiga (problemas com placa de vídeo), e eu não consigo desinstalar um pacote essencial do sistema. Procurando bastante, tive esse resultado:
ozzy@ozzy-laptop:~$ whereis python2.6.5 python2.6: /usr/bin/python2.6 /etc/python2.6 /usr/lib/python2.6 /usr/local/lib/python2.6 /usr/include/python2.6 /usr/share/man/man1/python2.6.1.gz
ozzy@ozzy-laptop:~$ whereis python3.1.2 python3.1: /usr/bin/python3.1 /etc/python3.1 /usr/lib/python3.1 /usr/local/lib/python3.1 /usr/include/python3.1 /usr/share/man/man1/python3.1.gz /usr/share/man/man1/python3.1.1.gz
Tenho estas duas versões de phyton na minha máquina. Mas é só pra avisar mesmo, porque, entendi que o erro em si é este: IOError: [Errno 32] Broken pipe
Na instalação do mikroe-uhb (último update Jan 23, 2016), tivemos: Using /usr/local/lib/python2.6/dist-packages/six-1.10.0-py2.6.egg Finished processing dependencies for mikroe-uhb==0.2 install -m 644 conf/51-mikroe-uhb.rules /etc/udev/rules.d install -m 644 conf/mikroe-uhb.conf /etc/modprobe.d ozzy@ozzy-laptop:~/Download/mikroe-uhb-master$
Ou seja, instalação feita com sucesso!
Obrigado mais uma vez. Me desculpe pelo excesso de informações...
Olá mais uma vez, Paulo. Respondi lá no github (não sei se foi no lugar correto rsrs). Assim que tiver um tempinho, pode dar uma olhadinha por favor?Obrigado! Rogério Campos
De: Paulo Matias <notifications@github.com>
Para: thotypous/mikroe-uhb mikroe-uhb@noreply.github.com Cc: rc-ozzy rc.ozzy@yahoo.com.br Enviadas: Sábado, 23 de Janeiro de 2016 13:16 Assunto: Re: [mikroe-uhb] mikroe hid bootloader linux (#5)
Olá, desculpe por não ter respondido antes no forum da Mikroe, devo estar com alguma configuração de notificação incorreta e não vi a mensagem.Muito obrigado pelo bug report. Parece que o problema aconteceu devido a uma versão recente que lançaram da biblioteca pyudev, que quebrou compatibilidade com a versão 0.16 que eu tinha instalada na minha máquina. Agora ele não permite mais usar a classe Attribute como se fosse um dicionário, por isso ocorre o erro que você observou. Fiz uma mudança no código que mantém compatibilidade com a versão antiga e também suporta essa nova versão.Por favor teste com a última versão do mikroe-uhb e avise se ainda ocorrer algum erro.The issue is due to a change in pyudev's Attribute class which breaks backwards compatibility. It can no longer be treated as a dictionary. The new implementation should be compatible both with older and newer pyudev versions.— Reply to this email directly or view it on GitHub.
Olá, Paulo, tudo bem?
Meu nome é Rogério, e estou muito interessado em utilizar o seu bootloader no linux. Atualmente utilizo o pic18f4550, e o bootloader mikroe HID bootloader (no windows) neste link há uma foto:
http://oi45.tinypic.com/33esll0.jpg
Meu objetivo é apenas estudar mesmo... Me formei recentemente na Fatec Osasco. Como não consegui rodar o seu bootloader, eu uso o piklab e picdemusb (microchip bootloader), com a diretiva org para mudar o meu vetor de reset. Infelizmente, para ficar o código idêntico ao windows, tenho que gravar meus arquivos hex por icsp com pickit2 (daí não preciso de diretiva org). Isso será resolvido quando eu usar o seu mikroe-uhb normalmente.
Postei meu problema no fórum Mikroe, pensando que você veria minha dúvida lá. O link é este: https://www.mikroe.com/forum/viewtopic.php?f=12&t=56367
A última linha do terminal me retornou isso: TypeError: argument of type 'Attributes' is not iterable
Se puder, me responda... Dê uma olhadinha por gentileza. Tentei contato com o pessoal da mikroletrônika, mas eles não pensam em desenvolver um bootloader HID em linux tão cedo.
Pode me ajudar por favor?
Se preferir responder por email será muito bem vindo! rc.ozzy@yahoo.com.br
Muito Obrigado!