BlinkMs blink once with power then die...
We have noticed a problem with a select number of BlinkMs. We received a shipment of 35 of the BlinkM from a distributor, 5 of them were DOA. We are following up for replacements from the distributor, but we were wondering if this was a more frequent problem with users.
This is the symptom:
Power on the BlinkM and the three dies blink once and turn off immediately.
Is this a sign that the ATtiny doesn't contain data or has been flashed?
This is with the BlinkM connected directly to the Arduino or with it stand alone.
This is the symptom:
Power on the BlinkM and the three dies blink once and turn off immediately.
Is this a sign that the ATtiny doesn't contain data or has been flashed?
This is with the BlinkM connected directly to the Arduino or with it stand alone.
5 people have this problem
I have this problem, too!
Tell me when someone solves it.
The more people who report this problem, the more it gets noticed.
The more people who report this problem, the more it gets noticed.
-
Inappropriate?HI Rob,
An unprogrammed BlinkM will do nothing when connected to power. Generally, if a BlinkM starts to power up then stops, it's an indication the power supply going to the BlinkM is noisy or can't supply enough to power a BlinkM.
If your power is good, then it sounds like the BlinkMs got fried somehow, either permanently or the flash got corrupted.
If you have an AVRISP programmer and a breadboard, you can try reflashing the BlinkMs using the wiring diagram described in the datasheet and using the standard BlinkM firmware.
If you'd like to exchange the bad BlinkMs, feel free to contact us directly at blinkm @ thingm.com and we can arrange for replacements. This will let us do forensics on the BlinkMs to see how they died. -
I have this same problem. I was playing around with the code examples. I guess I may have inadvertently plugged my blinkMs in to the arduino while it was powered up... (yes I realise its in big bad red letters not to do so (o;)
So, now both my blinkMs are blipping all 3 dies on and then nothing.
Can I recover them? thanks /pauric -
radiorental, if you have access to an AVRISP programmer, you can try reflashing the BlinkM firmware. The datasheet has a description of how to wire up a BlinkM for that. -
Inappropriate?I do not, just an arduino. Unless thats a AVRISP programmer and I can add one more thing to the world of stuff I dont know.
-
Inappropriate?After flashing the firmware, adding the .eep gives me this error:
C:\BlinkM>avrdude -c stk500v1 -p ATtiny45 -P com3 -U eeprom:w:blinkmv1.eep
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9206
avrdude: reading input file "blinkmv1.eep"
avrdude: input file blinkmv1.eep auto detected as Intel Hex
avrdude: writing eeprom (39 bytes):
Writing | ################################################## | 100% 0.30s
avrdude: 39 bytes of eeprom written
avrdude: verifying eeprom memory against blinkmv1.eep:
avrdude: load data eeprom data from input file blinkmv1.eep:
avrdude: input file blinkmv1.eep auto detected as Intel Hex
avrdude: input file blinkmv1.eep contains 39 bytes
avrdude: reading on-chip eeprom data:
Reading | ################################################## | 100% 0.05s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0002
0x00 != 0x08
avrdude: verification error; content mismatch
avrdude: safemode: Fuses OK
avrdude done. Thank you. -
Inappropriate?ack... looks like my first post got wacked - the one above shows an .eep upload error.... not sure what is going on there.
History - same problem as the parent post - blinkm worked fine on Arduino, then didn't... would blink once, then go out...not sure if I zapped something or what. Flashed the firmware with ISP - LED blinks like crazy during upload. Put back on arduino... now nothing. Any ideas?
Firmware output:
C:\BlinkM>avrdude -c stk500v1 -p ATtiny45 -P com3 -U flash:w:blinkmv1.hex
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9206
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: reading input file "blinkmv1.hex"
avrdude: input file blinkmv1.hex auto detected as Intel Hex
avrdude: writing flash (3882 bytes):
Writing | ################################################## | 100% 2.61s
avrdude: 3882 bytes of flash written
avrdude: verifying flash memory against blinkmv1.hex:
avrdude: load data flash data from input file blinkmv1.hex:
avrdude: input file blinkmv1.hex auto detected as Intel Hex
avrdude: input file blinkmv1.hex contains 3882 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 2.19s
avrdude: verifying ...
avrdude: 3882 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you. -
Hi Jim,
If you were able to flash it successfully, chances are the BlinkM works, but it's either not playing its startup script (or it's playing a blank script). Try talking to it with an Arduino and the BlinkMTester sketch and see what happens.
In general, we recommend using the Makefile that comes in the firmware zip, modifying it where appropriate for your programmer. Then, doing a "make erase" and "make program" to fully reset a BlinkM to its factory condition.
And yes, because of how the BlinkM is wired up, you should see the blue LED flash during programming (and only the blue). -
Inappropriate?I'm new to AVR and ISP so I might be screwing something up... I edited the makefile to my specifics than ran it... still get a verify error.
C:\BlinkM>make -f Makefile-dist
avrdude -p attiny45 -P com3 -c stk500v1 -v -v -y -e -U lfuse:w:0xE2:m -U hfuse:w:0xDF:m -U efuse:w:0xFE:m -e -U fla
sh:w:blinkmv1.hex -U eeprom:w:blinkmv1.eep
avrdude: Version 5.5, compiled on Jun 9 2008 at 14:32:04
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
System wide configuration file is "C:\WinAVR-20080610\bin\avrdude.conf"
Using Port : com3
Using Programmer : stk500v1
AVR Part : ATtiny45
Chip Erase delay : 4500 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 6 4 0 no 256 4 0 4000 4500 0xff 0xff
flash 65 6 32 0 yes 4096 64 64 4500 4500 0xff 0xff
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
calibration 0 0 0 0 no 2 0 0 0 0 0x00 0x00
Programmer Type : STK500
Description : Atmel STK500 Version 1.x firmware
Hardware Version: 1
Firmware Version: 1.15
Vtarget : 5.0 V
Varef : 5.0 V
Oscillator : 3.686 MHz
SCK period : 1.1 us
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e9206
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FE
avrdude: erasing chip
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny45
avrdude: erase-rewrite cycle count is now 3
avrdude: reading input file "0xE2"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xE2:
avrdude: load data lfuse data from input file 0xE2:
avrdude: input file 0xE2 contains 1 bytes
avrdude: reading on-chip lfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of lfuse verified
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDF:
avrdude: load data hfuse data from input file 0xDF:
avrdude: input file 0xDF contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.00s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFE"
avrdude: writing efuse (1 bytes):
Writing | ################################################## | 100% 0.00s
avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFE:
avrdude: load data efuse data from input file 0xFE:
avrdude: input file 0xFE contains 1 bytes
avrdude: reading on-chip efuse data:
Reading | ################################################## | 100% 0.02s
avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "blinkmv1.hex"
avrdude: input file blinkmv1.hex auto detected as Intel Hex
avrdude: writing flash (3882 bytes):
Writing | ################################################## | 100% 2.61s
avrdude: 3882 bytes of flash written
avrdude: verifying flash memory against blinkmv1.hex:
avrdude: load data flash data from input file blinkmv1.hex:
avrdude: input file blinkmv1.hex auto detected as Intel Hex
avrdude: input file blinkmv1.hex contains 3882 bytes
avrdude: reading on-chip flash data:
Reading | ################################################## | 100% 2.19s
avrdude: verifying ...
avrdude: 3882 bytes of flash verified
avrdude: reading input file "blinkmv1.eep"
avrdude: input file blinkmv1.eep auto detected as Intel Hex
avrdude: writing eeprom (39 bytes):
Writing | ################################################## | 100% 0.28s
avrdude: 39 bytes of eeprom written
avrdude: verifying eeprom memory against blinkmv1.eep:
avrdude: load data eeprom data from input file blinkmv1.eep:
avrdude: input file blinkmv1.eep auto detected as Intel Hex
avrdude: input file blinkmv1.eep contains 39 bytes
avrdude: reading on-chip eeprom data:
Reading | ################################################## | 100% 0.06s
avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0002
0x00 != 0x08
avrdude: verification error; content mismatch
avrdude: safemode: lfuse reads as E2
avrdude: safemode: hfuse reads as DF
avrdude: safemode: efuse reads as FE
avrdude: safemode: Fuses OK
avrdude done. Thank you.
make: *** [eraseprogram] Error 1
-----
Did I do anything wrong here? -
Hi Jim, It doesn't look like you've done anything wrong. It looks like the EEPROM won't verify, a condition I've only seen when I've unplugged a BlinkM in the middle of programming. I'd like to look at it now and see what's wrong.
Email us at blinkm [at] thingm.com we can arrange a replacement. Apologies you had some bad luck with it. -
Inappropriate?I had this problem with one of my BlinkMs, out of four, related to plugging in a power source (4.5v 3xaa)
wrong.
Do as todbot suggested, the blinkMTester should still work, even if they blink, then 'die'.
Somehow the startup sequence has been corrupted with the fade speed turned down in the startup parameters, and/or the startup script is blank (script 0).
There should be no need to reflash the chip.
In blinkMTester, first type a, to get the address
it should register as 9, if it says 97, D and C lines on the blinkM aren't hooked up correctly
then type cFFFFF this will make the led full white
then type f100, this will make sure that the fade speed is ok/not zero
then type p16 this will play the lightning script which has occasional flashes of white..
using the tester you can also reset the startup parameters
from the BlinkM tester issue the command
B 1 12 30 20 -5 (see pg 16 of the blinkM v1 datasheet for description of paprameters)
hope this helps,
Brian
I’m learning
Loading Profile...


EMPLOYEE

