Ik heb een probleem met het uploaden van mijn gemaakte code naar mijn Arduino board.
Ik werk met een Arduino Leonardo via een Mac. Mijn idee is om vier buttons vast te maken aan de arduino en deze zo te programmeren dat ik de button kan gebruiken in plaats van mijn keyboard.
In een topic geleden had ik ook al een vraag over hoe ik een button werkend kreeg met een sensor shield. Dat is gelukt, alleen nu wil ik er in plaats van een, vier werkend krijgen.
Hieronder is te zien welke code ik wil uploaden.
Ik heb gekeken naar de instellingen en deze is aangesloten op een Arduino Leonardo via het bluetooth incoming port. Als het goed is zijn de keyboard bibliotheek en IDE erin toegevoegd. Op onderstaande foto's is te zien dat ik een bord heb gesoldeerd waarin ik in de blauwe vierkantjes de draadjes van de buttons heb ingeschroefd. De buttons zijn aangesloten op pin 13, 11, 9 en 7 via de ground en 5V.
Goede foutmelding is te zien in het twee stukje!
Heeft iemand enig idee wat de fout kan zijn? Ik heb namelijk al veel op internet gezocht, maar kan nergens een concreet antwoord vinden.
Als ik op schets compileren druk, dan is het binnen 1 seconden klaar. Druk ik op uploaden dan duurt het eeuwig en na een tijdje krijg ik dit als foutmelding.
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
Found programmer: Id = "��"; type = g
Software Version = .; Hardware Version = �.
avrdude: butterfly_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: buffered memory access not supported. Maybe it isn't
a butterfly/AVR109 but a AVR910 device?
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: leave prog mode
avrdude: butterfly_recv(): programmer is not responding
avrdude: error: programmer did not respond to command: exit bootloader
avrdude: error: programmer did not respond to command: exit bootloader
Ik heb al gekeken naar die site, voordat ik op dit forum iets postte. Helaas snap ik er vrij weinig van van wat ik daar moet doen. Heeft u misschien een idee?
Helaas. wel de IDE op de mac draaien, maar geen Leonardo in huis. Doe nog steeds vrijwel alles op een UNO. Groot zat. Dwingt je tot efficiënt programmeren
nicoverduin:
Helaas. wel de IDE op de mac draaien, maar geen Leonardo in huis. Doe nog steeds vrijwel alles op een UNO. Groot zat. Dwingt je tot efficiënt programmeren
Ben het daarmee eens, maar in mijn geval is een Leonardo net wat efficiënter, aangezien ik meerdere buttons via mijn toetsenbord moeten laten werken.
Iemand anders enig idee wat het probleem kan zijn?
Ja, ik moet toegeven, dat het een behoorlijke slordigheidsfout is.
Vandaar ook even een foto, het is een soort tinklont tussen de 3.3V en reset-knop. Alleen vraag ik mij dan af... zou dat werkelijk iets met het probleem te maken kunnen hebben? Ik heb namelijk dat mijn andere oude code nog eens geupload (zie mijn vorige topic) en dat lukte zelf niet meer.
Het vreemde is wel dat de foutmelding pas ontstond nadat ik 'per ongeluk' een keer op de reset button op de arduino had gedrukt.
Nou het niet niet erg moeilijk om dat te testen he.
Trek dat ding er uit en kijk of 'íe het dan wel wil doen.
Dat per ongeluk op reset drukken, heb je dat gedaan met dat spul in je Arduino, of eruit ?
Reset is actief als het met GND ("de min") wordt verbonden.
Als jij 3.3 volt en reset met elkaar verbind, en vervolgens de reset knop gaat indrukken, dan maak je een volle kortsluiting in de 3.3 volt.
Het zou me niets verbazen als je daarmee schade zou hebben aangericht.
Maar zoals al 2 keer eerder aangegeven, je kunt dus testen of het met alleen de Arduino wel wil.
Dat ding met die klodder tin er op moet je dus nooit meer gebruiken zolang die klodder er op zit.
Dus moet die klodder er af.
Dat kun je met je soldeerbout doen, en als je wat vaker zou solderen zou je daar waarschijnlijk ook wel een hulpmiddeltje voor hebben (litze, tinzuiger of desoldeerbout).
Maar tin is een heel zacht metaal, en met een scherp mesje krijg je dat tin ook wel tussen die pinnen uit zonder de soldeerbout aan te hoeven zetten.
Gewoon die header weg flikkeren. Straks denk je dat ie schoon is.... blijkt er toch nog een minispoortje te zijn. Die 3.3V regelaar kan zo weinig stroom leveren dat er zelfs een micro spoortje tin nog sluiting maakt.
Maar dit lijkt inderdaad de oorzaak te zijn. Die chip kan nooit de reset aansturen om in bootloader mode te komen. Zelfs niet met een programmer.
nicoverduin:
Gewoon die header weg flikkeren. Straks denk je dat ie schoon is.... blijkt er toch nog een minispoortje te zijn. Die 3.3V regelaar kan zo weinig stroom leveren dat er zelfs een micro spoortje tin nog sluiting maakt.
Maar dit lijkt inderdaad de oorzaak te zijn. Die chip kan nooit de reset aansturen om in bootloader mode te komen. Zelfs niet met een programmer.
Hoi,
Ik heb vandaag opnieuw de arduino getest zonder headers en het werkt nog steeds niet. Ik krijg nog steeds precies dezelfde foutmelding. Dit kan dus de fout niet zijn.
Precieze foutmelding: avrdude: error: programmer did not respond to command: exit boot loader
Zou zo maar kunnen dat ie echt kapot is inmiddels. Mogelijk is de bootloader verkl..t. Dan kan je nog proberen of je hem kan reflashen via de ISP maar daar heb je wel een andere arduino voor nodig of een ISP programmer. Alles is nu eenmaal mogelijk.
Het kan nog steeds de fout zijn, maar deze fout kan geleid hebben tot verdere schade.
Wanneer je een multimeter hebt en jezelf vertrouwt deze te gebruiken, kun je eens meten aan de reset pin (en de andere kant aan GND).
Die moet (dicht bij) 5 volt meten.
Wanneer je op de reset knop drukt, zie je dan iets gebeuren met de LEDs op het board ?
Een Leonardo werkt wat dit betreft anders dan een Uno, omdat de controller op de Leonardo zelf de USB communicatie afhandelt.
Daarom kun je daar niet zien of er een reset signaaltje gegeven wordt.
Maar als het goed is werkt het op de Leonardo wel ook zo dat wanneer de upload gestart moet worden, een reset geforceerd word.
Stel nou dat juist dat forceren van de reset niet meer zou werken.
Dan kun je zelf een reset maken.
Daarvoor moet je de Leonardo met 1 hand bedienen, en de PC met de andere.
Doe de handelingen die je anders ook doet om te gaan uploaden, en start de upload.
Als het goed is zie je van alles gebeuren in de IDE.
Je ziet dan ook wanneer de upload daadwerkelijk start (na het compileren).
Nu is de truc dat je op de Arduino de reset knop eerst indrukt en ingedrukt houdt, en vervolgens de IDE vraagt om te gaan uploaden.
Wanneer de upload daadwerkelijk begint, laat je de reset weer los.
Als je dit loslaten niet te vroeg en ook niet te laat deed, dan maak je nog steeds kans om die upload te initiëren.
Het kan geen kwaad om de reset heel lang in te drukken, dus daar hoef je je geen zorgen over te maken.
MAS3:
Het kan nog steeds de fout zijn, maar deze fout kan geleid hebben tot verdere schade.
Wanneer je een multimeter hebt en jezelf vertrouwt deze te gebruiken, kun je eens meten aan de reset pin (en de andere kant aan GND).
Die moet (dicht bij) 5 volt meten.
Wanneer je op de reset knop drukt, zie je dan iets gebeuren met de LEDs op het board ?
Een Leonardo werkt wat dit betreft anders dan een Uno, omdat de controller op de Leonardo zelf de USB communicatie afhandelt.
Daarom kun je daar niet zien of er een reset signaaltje gegeven wordt.
Maar als het goed is werkt het op de Leonardo wel ook zo dat wanneer de upload gestart moet worden, een reset geforceerd word.
Stel nou dat juist dat forceren van de reset niet meer zou werken.
Dan kun je zelf een reset maken.
Daarvoor moet je de Leonardo met 1 hand bedienen, en de PC met de andere.
Doe de handelingen die je anders ook doet om te gaan uploaden, en start de upload.
Als het goed is zie je van alles gebeuren in de IDE.
Je ziet dan ook wanneer de upload daadwerkelijk start (na het compileren).
Nu is de truc dat je op de Arduino de reset knop eerst indrukt en ingedrukt houdt, en vervolgens de IDE vraagt om te gaan uploaden.
Wanneer de upload daadwerkelijk begint, laat je de reset weer los.
Als je dit loslaten niet te vroeg en ook niet te laat deed, dan maak je nog steeds kans om die upload te initiëren.
Het kan geen kwaad om de reset heel lang in te drukken, dus daar hoef je je geen zorgen over te maken.
Ik heb de resetknop nogmaals ingedrukt en er licht een vakje op genaamd "L", deze kleurt oranje. Verder gebeurt er vrij weinig. Als ik jou methode uitprobeer, dan weet ik niet of ik het wel goed doe, maar ik weet ook niet wat er precies gebeurt op de arduino.
Ik heb zo geen andere arduino thuisliggen, dus ik kan niet zeggen of de code wel had gedaan met een andere arduino. Misschien dat eens moet kijken of er nog een andere Arduino Leonardo is waarmee ik kan testen of de code het doet?