Re: SD3 logic board DEAD !!
Highest potential wins... so... its dead jim. No short necessary.
Not an expert, but curious: He applied 7V to the fan, but why would that bring the 5V bus to 12V? My multimeter on a 40mm fan reads 20MOhm...
You are not logged in. Please login or register.
SoliForum - 3D Printing Community → Help/Repair/Maintenance → SD3 logic board DEAD !!
Highest potential wins... so... its dead jim. No short necessary.
Not an expert, but curious: He applied 7V to the fan, but why would that bring the 5V bus to 12V? My multimeter on a 40mm fan reads 20MOhm...
There are a lot of factors here
not to mention which way he connected the fan(matters) 20mohms seems a little high for a fan that can draw around 50 ma at 12v but since it is a dc to ac converter in front of the fan that reading doesn't mean much.
adrian wrote:Highest potential wins... so... its dead jim. No short necessary.
Not an expert, but curious: He applied 7V to the fan, but why would that bring the 5V bus to 12V? My multimeter on a 40mm fan reads 20MOhm...
I think that when I connected the fan, I connected the ground to the 12V pin and the + to the 5V pin. The power LED on the PB cut out and the fan didn't spin. When I realized I plugged it into the wrong pins, I pulled the plug and plugged it in correctly, but by then it was too late.
If I'd have plugged the + into 12V and the ground into the 5V I wouldn't have had the problem, as you said I'd be running the fan at 7V, but plugging it backward resulted in the firmware being zapped.
Luckily I was able to re-flash the firmware and save the board.
Yeah, usbtiny for less than $10 from Geeetech or Ebay. You can get your firmware and bootloader straightened out.
Today I received my USBasp programmer, and set out to recover my dead Printrboard. I first tried to flash the DFU bootloader, and it looks like it flashes it, and verifies it.
But when I plug the Printrboard in the USB, and I get nothing. Windows doesn't recognize the board at all, no COM ports, nada. I also tried the CDC bootloader, and still nothing.
One thing I noticed that looked strange, is that when I flash the bootloader which is only 11K in size, avrdude reports it's flashing 131072 bytes, which is 128k, the total size of the flash. Is this normal?
Anyway, I then tried flashing the Solidoodle firmware hex file. This time the flash process says it flashing 62358 bytes, which is correct, and it also takes substantially longer to perform the flash. After it was done, I unplugged the programmer, plugged the board in the USB port and hit reset a couple of times. Lo-and-behold, it posted, and Windows installed it on COM4.
I also started Repetier and connected to it too, and issued a few command like M501 to see what's in the EEPROM.
So it seems to work, but it still doesn't look like I have a bootloader. I mean, now that I have a programmer, it's no big deal if it doesn't have a bootloader, but I'd like to find out what I did wrong.
Another anomaly I found is that I can connect to the board using Repetier, whether I have the boot jumper on or off. On Rev.D boards, the jumper should be OFF if I want to boot the firmware, but in my case I seem to be able to boot and connect to the Solidoodle firmware regardless of the jumper position.
Another anomaly I found is that I can connect to the board using Repetier, whether I have the boot jumper on or off. On Rev.D boards, the jumper should be OFF if I want to boot the firmware, but in my case I seem to be able to boot and connect to the Solidoodle firmware regardless of the jumper position.
The pin check on boot re the Boot jumper is part of the firmware - not the chip itself. No bootloader means it doesn't pay any attention to that jumper.
SO what did I do wrong that I don't have a bootloader?
You had also mentioned earlier that getting the SD card to work is doable, but a chore. How do I enable it? or would it be better to get a LCD panel that has the card and use that, like the Viki, or any other recommendations?
SO what did I do wrong that I don't have a bootloader?
You had also mentioned earlier that getting the SD card to work is doable, but a chore. How do I enable it? or would it be better to get a LCD panel that has the card and use that, like the Viki, or any other recommendations?
"Bootloader" is a tad misleading in the context of AVR microcontrollers.
For making this discussion easier - lets use the terms 'sketch' to mean 'arduino platform based source code' and the word 'Bootloader' to mean "the thingy that detects when I want to load a sketch and lets me upload it" . And for purists - no these are not the correct memory addresses etc - this is written to explain the concept not for technical application itself ![]()
Now, when an AVR turns on, it reads its memory and starts running whatever code is in memory and starts at address 0.
The 'Bootloader' is actually just a special kind of 'sketch'... Its the guts of whats needed to 'bootstrap' the AVR to the barest minimum to get some sort of comms working, usually serial but nowdays increasingly USB handlers. After its done that, it usually has some sort of 'trigger condition', and once thats been met or expired (such as timeout based ones on the arduino bootloader) its told to go and load the 'sketch' (or 'rest of the code fragments') from a certain address onwards - lets call it "2048" for conversational purposes.
The 'bootloader' if it receives the trigger its setup for (jumpers on pins, hello commands from avrdude, etc) then it will switch to listening on whatever comms port, and receive the downloaded file (it doesn't care what, hence why you can 'load the wrong firmware') and sticks it in from location 2048 onwards. This is what happens when you upload via Arduino IDE using the 'arduino bootloader' - your 'sketch' is received by the 'bootloader' (which is really just another sketch at address 0) and the bootloader puts it in from 2048 onwards.
When you reset the board, the bootloader, living at address 0, runs. The code waits for the trigger, and this time, not being met (no upload inside 2 seconds, no jumper, etc) it just goes straight on to load whatever lives at 2048 onwards.
Now - If you upload using an ICSP programmer (usbtiny etc), it doesn't pay any attention to this. It instead uses the raw 'shutup and take my file' commands to the AVR and whatever it transmits starts living at address 0 onwards. This is how one gets around the 'chicken and the egg' problem of loading a bootloader without a 'bootloader'. This is why the 'Burn Bootloader' options under Arduino IDE need you to also setup a 'programmer' and can't use the built in bootloader... since that bootloader on the board no matter how much you ask it to will always load the received file to address 2048 - Useless for a 'bootloader'.
The same happens if you use avrdude and a programmer, or arduino ide and the 'upload using programmer' option. The uploaded file lives at address 0 - so it gets run every time and there simply is no 'bootloader' to accept further programs. One must use either programmer again, or load a 'sketch' that does the appropriate bootloader things one wants so that it lives at address 0.
So how do they get the bootloader and the default 'sketch' onto the AVR before it ships, or back at the arduino factory how do they load it so that it has bootloader+blink running ?
What they do is - Load the bootloader to one AVR, and then using the 'bootloader method' (so serial via arduino ide, usb for hidbootloader, etc) load the sketch they want onto the AVR. It now behaves how one would want - loads bootloader, checks trigger states, then runs blink/marlin/whatever. They then use the ICSP to 'read back' the entire loaded memory on the AVR. This gives them a brand new .hex file that now contains the bootloader at address 0 AND the 'running sketch' at address 2048 onwards... and when they load this to other AVR's they also now have the 'bootloader' and 'sketch' running - which is as this all explains really just one long piece of firmware loaded from address 0 onwards ![]()
So thats why, once you upload using a programmer directly, you 'kill off' the bootloader. To restore it now - simply follow the instructions at the page I already linked above at lincomatics blog - he covers how to load either of the 3 bootloaders.
Why your bootloader didn't work originally - It probably did, just wrong method used. Can't tell you what, as I dont have a generic geeetech board, and there really is about 5 different ways you can program them, so when you don't know for sure, it really is a matter of trial and error. Often just bypassing it and loading a known good bootloader using an ICSP programmer is definately far easier! ![]()
There you go - hope that shed some light on the whole subject and didn't just confuse it more
![]()
Re the SD card - personally I'd just do it in combo with an LCD... its pretty useless without an LCD anyway. But if you read the latest beta firmware thread over in software/firmware, it covers it all in gritty detail.
Now that made perfect sense. Thanks.
I really don't need the bootloader now that I have the ICSP. So now I just need to make a few tweaks to get a panel and the SD card going.
Any hints on how to get the SD card functional?
Edit:
Well, it looks like I just got it working.
I just had to enable SDSUPPORT in the configuration.h
I can copy things to the card and I can see it's contents in the SD card Manager in Repetier. So far so good. Now I need to get a control panel....
SoliForum - 3D Printing Community → Help/Repair/Maintenance → SD3 logic board DEAD !!
Powered by PunBB, supported by Informer Technologies, Inc.