GithubHelp home page GithubHelp logo

PicoBootSerial and Avrdude about picoboot HOT 4 OPEN

nerdralph avatar nerdralph commented on August 16, 2024
PicoBootSerial and Avrdude

from picoboot.

Comments (4)

nerdralph avatar nerdralph commented on August 16, 2024

I actually submitted avrdude patches to Jeorg back in 2014 but he rejected them. For a couple years I maintained my own version of avrdude. After that my focus was writing larger (but still small) bootloaders that are compatible with the standard Arduino bootloader (the way Optiboot is).

I wouldn't recommend it for general use in its current form. The 230.4kbps baud rate was done as a test to see what was the maximum speed I could get out of a hand-tuned bit-bang UART implementation. I may still have copies of the slower versions (57.6 & 115.2kbps) that are much more reliable. If not, it wouldn't take me long to do the mods.

I don't have much time to work on MCU projects these days, but I've put an entry in my calendar to take an hour or two this weekend to look at this suggestion.

from picoboot.

MCUdude avatar MCUdude commented on August 16, 2024

I actually submitted avrdude patches to Jeorg back in 2014 but he rejected them

Any particular reason why he rejected them? I wasn't able to find the conversation between you two.

from picoboot.

nerdralph avatar nerdralph commented on August 16, 2024

I actually submitted avrdude patches to Jeorg back in 2014 but he rejected them

Any particular reason why he rejected them? I wasn't able to find the conversation between you two.

I looked back and it was actually a smaller patch for zero-wire auto-reset I had sent him and he rejected. His reason was that I emailed the patches directly to him and documented them on my blog. Apparently that didn't comply with his undocumented rules for patches.
http://nerdralph.blogspot.com/2014/02/zero-wire-serial-auto-reset-for-arduino.html

When I finished my picoboot patches for avrdude I figured there was no point in submitting them as long as he was still in control.

from picoboot.

nerdralph avatar nerdralph commented on August 16, 2024

I finished reviewing the old bootloader code and avrdude code:
https://github.com/nerdralph/picoboot-avrdude/blob/master/picoboot.c

If I'm going to refresh it, I'd like some advice on improving usability & reliability.
Dropping the baud rate to 57.6kbps will get the rx timing error range to about 1% for 8 & 9.6Mhz.

In 64 bytes, I wasn't able to implement a bootloader entry timeout. It looks for the Rx pin to be high to enter the bootloader. This makes it a bit cumbersome for development as it requires disconnecting Rx after flashing, followed by a manual reset.

My first thought is to use DTR and/or RTS to control reset. Avrdude would pulse reset low while leaving the host Tx idle (high) to enter the bootloader. To exit the bootloader after flashing, the host would toggle reset while transmitting a break (Tx low) to skip the bootloader. If the bootloader is left in the flash when the project is deployed, the pin used by the bootloader would need a weak pull-down.

What do you think?

from picoboot.

Related Issues (5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.