Superfly replacement for Problem Butterfly Bootloader

Go To Last Post
14 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0


Turn Your Butterfly into a SUPERFLY Speed Demon by adding a 4-Speed Transmission and a Turbo Charger!

Due to Lock-Up problem with Butterfly Booter it is recommended that it be replaced. Try replacing it with SUPERFLY or SUPERFLEA.

Use Joystick to select Speeds of 1, 2, 4 or 8 Mhz.

MAIN FEATURES:

a) SMALLER: Only 240 (or 378) words (original is 1500+)
b) SECURE - Can't accidentally alter fuse/lockbits - No LOCKOUTS
c) SAFER - Extra Warning - No Accidental Over-Writes
d) FASTER - Joystick Up Launch programs at Turbo (High) Speed
e) FLEXABLE - Joystick Down at Original (2MHz) Speed
f) ADDITIONAL- Joystick Left goes Mid-Speed (4Mhz)
g) VARIETY- Joystick Right is Slow Speed (1Mhz)
h) FASTER - Programs Upload Quicker
i) EFFICIENT - Conserves Battery with "Sleep Mode"
j) EASIER Stack set-up, no need to do it in your program.
i) ROOMIER - More program space for your Applications
k) CONVIENIENT - Don't waste code on speed selection
l) SIMPLE - Works as original, no additional docs reqd

(FREE for personal or educational, non-commercial applications. All rights reserved.)

CURRENT UPDATES 2006:
MAR-16 High Speed if joystick UP, Low if joystick DOWN.
MAR-16 Size reduction [SUPERFLEA] from 254 to 240
MAR-18 [SUPERFLY] v0.9d "Quad Speed" 1/2/4/8 MHz
MAR-19 [SUPERFLEA] "Quad Speed" v0.9d edition.

I can't get Lock-Up or Failure from either of these and no has reported a single one to date. If you do, let us know ASAP.

Thank to the AVRfreakst that helped especially Giorgos K.[img][/img]

Attachment(s): 

Last Edited: Fri. Apr 14, 2006 - 04:48 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The intent of these threads is discussion of improvements for the above programs only.
Limit any comments towards that end and refrain from any off-topic entries.
Any inflamitory statements, personal attacks for "flamewars" are absolutely forbidden.

I Thank You and Moderators Thank You.

Last Edited: Sun. Mar 19, 2006 - 02:33 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

########## QUAD-SPEED OPTION: INSTALL 4-SPEED TANSMISSION! ##########

18-MAR-2006:

Just uploaded the latest [SUPERFLY] and [SUPERFLEA] versions 0.9d with 4-speed trannys.

You can select which speed to use when launching your programs as follows:

JOYSTICK UP: "TURBO" Mode launches at full 8Mhz Speed (4 times Original Speed)
JOYSTICK DOWN: "ORIGINAL" Mode launches at factory selected 2Mhz
JOYSTICK RIGHT: "SLOW" Mode launches at just 1Mhz (1/2 Original Speed)
JOYSTICK LEFT: "QUICK" Mode launched at 4Mhz (2 times Original Speed)

NOTE: Of the 100s of copies downloaded not a single problem or locked Butterfly has been reported. If you experience a problem, report it immediately.

Last Edited: Sun. Mar 19, 2006 - 02:20 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

NOTICE: BUAD RATE SPEED ADJUSTMENTS

If you are running your own applications at a speed other than the old 2MHz and need to use UART/Serial port you need to adjust the UBBR register.

The formula is:

 UBBR = [(1,2,4,8MHz)/(8xBAUD)]-1 (Double Speed Mode)

If you are NOT using the Butterfly default Double Speed Mode the formula is:

UBBR = [(1,2,4,8 MHz) / (16 x BAUD)] - 1

If you are using the Synchonous Master Mode:

UBBR = [(1,2,4,8x1,000,000) / (2 x BAUD)] -1 

FOR EXAMPLE: 19,200 BUAD at 8MHz

Your application was using serial port at 19,200 BAUD so your UBBR is set to 12.
To get 19,200 at 8 MHz the UBBR calculation is:

UBBR = (8,000,000 / 8 x 19,200) -1
UBBR = (8,000,000 / 153,600) -1
UBBR = 52.08 - 1
UBBR = 51

For 4Mhz it is UBBR=25
For 1Mhz answer is 5.5 so use 5 or 6 (see below):

BAUD = 1MHz / [ 8 x (UBBR + 1) ]

BAUD1 = 1,000,000 / 8(5+1) - for UBBR=5
BAUD1 = 1,000,000/48
BAUD1 = 20,833 (Error = +8.5%)

BAUD2 = 1,000,000/ [ 8 x (6+1)]  - for UBBR=6
BAUD2 = 1,000,000/56
BAUD2 = 17,857 (Error = -7.0%)
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thank you for your comments Girogos, but they are off-topic here.

Giorgos_K wrote:
After all this noise about the Butterfly bootloader failures, I took the liberty to disassemble the official butterfly_boot_rev03.hex, where I think I have found a few minor inconsistencies and a lot of code bloating, of course.

If Giorgos admits that his BootLoader is a doctored dis-assembly of the Copyright Atmel Bootloader. How can he legally release it to the public under his own name and with his own copyright notice at the top? Isn't that considered Software Piracy under the law because it's a "derivative work" of the original and Amtel still owns the copyright to it? You can't "doctor" a hit song and release it as your own with your own copyright.

Last Edited: Sat. Apr 8, 2006 - 08:15 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The intent of this forum is for the discussion of projects in the Academy section. You have not submitted your code as a project, so you are off-topic. And legal discussion of code is just as valid as technical discussion. I also add that this forum is for discussion of code, not binaries. So far you have only posted binaries.

I suggest you Read this before continuing in this forum.

Edit log: corrected a type-o

Writing code is like having sex.... make one little mistake, and you're supporting it for life.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for your comments glitch but your post is off-topic.

Last Edited: Mon. Mar 27, 2006 - 12:07 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Although not explicately stated it is implied... this forum is for learning, and it's hard for people to just learn from a binary. And note that on the forum mainpage it says "code/projects". Your binary is neither code, or a project.

But I will highlight the most important part of the guidelines for you, as you seem to have missed it 3 times over:

Quote:
This is forum is only for questions relating to projects and articles in the "AVRFreaks Academy".

Your bootloader is not in the academy, so therefore this thread should not be here.
EOT

Writing code is like having sex.... make one little mistake, and you're supporting it for life.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

RetroDan wrote:
There's no requirement of posting source code in the guideline for this Forum(?) I just double checked.
Have you read the guidelines, because your posts are definately off-topic.

I will have to agree with glitch , and i have read the "Read Before Posting" thread : https://www.avrfreaks.net/index.p...

Where the first few sentences in the quoted text contains this.

Quote:

FORUM PURPOSE
This is forum is only for questions relating to projects and articles in the "AVRFreaks Academy".

Well i might not have a fancy "internet forum thread" lawyer to explain the above quote to me , but i dont feel i need anyone to understand the meaning.

There is a requirement of having submitted a project or article in the academy

/Bingo

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My apologies, how do I add them to the Academy, because that is what I thought I was doing with these posts.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

[SOURCE CODE REMOVED]

Last Edited: Mon. Mar 27, 2006 - 12:00 AM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

I have already posted the source-code to the main part of the program previously.
The rest is just a few routines (that I haven't commented yet) that copy data to/from UART to memory.

Should I re-post them here too?

Do you mean "commented" or "re-commented"?

Sure Dan, post the *entire* source code here. We all would just love to see it!

Tom Pappano
Tulsa, Oklahoma

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am busy trying to add options while keeping the size small, especially the [SUPERFLEA] version. I did make room for four speed selections and have made those versions avaiable. I have a few other "mods" I'd like to make. If you can be patient. Here's the complete source code so far:

[SUPERFLY SOURCE CODE REMOVED]
Last Edited: Sun. Mar 26, 2006 - 11:55 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

RetroDan wrote:
I have already posted the source-code to the main part of the program previously.
The rest is just a few routines (that I haven't commented yet) that copy data to/from UART to memory.

Presumably these are the bits of the code that you don't yet understand and are still trying to work out what they do?

Cliff