summaryrefslogtreecommitdiffstats
path: root/Readme.txt
diff options
context:
space:
mode:
authorJenna Fox <a@creativepony.com>2012-09-30 14:46:21 +1000
committerJenna Fox <a@creativepony.com>2012-09-30 14:46:21 +1000
commit96a1fe300f3c25537ef3fc1c6bd614589a7c6a84 (patch)
tree490fd5a1d2bdcd9fc68b6623d4d780b817799819 /Readme.txt
parent4ab39b1d0cdcbac838d2d15acd532493a33a3764 (diff)
downloadmicronucleus-96a1fe300f3c25537ef3fc1c6bd614589a7c6a84.tar.gz
micronucleus-96a1fe300f3c25537ef3fc1c6bd614589a7c6a84.tar.bz2
micronucleus-96a1fe300f3c25537ef3fc1c6bd614589a7c6a84.zip
Shorter revised readme
Diffstat (limited to 'Readme.txt')
-rw-r--r--Readme.txt224
1 files changed, 18 insertions, 206 deletions
diff --git a/Readme.txt b/Readme.txt
index f5d15a4..495513a 100644
--- a/Readme.txt
+++ b/Readme.txt
@@ -1,212 +1,24 @@
-micronucleus tiny85 Note
-========================
-This is a brand new project by bluebie, which merges code from embedded-creations'
-wonderful USBaspLoader-tiny85 project with bits from obdev's bootloadHID and bits
-of my own invention to create a minimalist bootloader for tiny85 chips. It's hot
-off the presses, and so this readme and everything else is already way out of date.
-During it's early development it was called 'µBoot-t85', and the name has since
-changed to avoid conflict with a similarly named ARM bootloader of no relation.
+micronucleus tiny85
+===================
+Micronucleus is a bootloader designed for AVR tiny 85 chips with a minimal usb interface, cross platform libusb-based program upload tool, and a strong emphasis on bootloader compactness. The project aims to release a 2.0kb usb bootloader, and is nearly there, with recent builds at 2.07kb. By using the tinyvector mechanism designed by Embedded Creations in their USBaspLoader-tiny85 project, combined with the simplicity of Objective Development's bootloadHID and a unique bare bones usb protocol, Micronucleus is the smallest usb bootloader available for tiny85 at the time of writing.
-Some quick notes:
-The stuff in commandline is a slightly modified version of bootloadHID's commandline
-folder - it's irrelevent for now - don't use that stuff!
-To upload to the device, pop in to 'firmware', and install ruby 1.9 on your system
-(I recommend using homebrew on Macs), then install libusb 1.x and then the libusb
-rubygem. You'll then be able to use my two experimental scripts 'upload.rb' and 'dump.rb'
-to upload binary or hex files via bootloader and dump to binary files over a
-littlewire/usbtiny isp. I used ruby for rapid prototyping - I think it'd be better
-to port this stuff to C, modifying obdev's commandline app to do it or something like
-that.
+Micronucleus adds a small amount of delay to the Pin Change interrupt in user applications, but this latency is low enough to not interfere with V-USB applications. Once bootloaded, an ISP or HVSP programmer can enable use of the reset pin in user applications. While nobody has yet written an upgrade program, it is theoretically possible to upgrade the bootloader in place by uploading a special upgrade program to it which overwrite the bootloader with a newer version when run.
-Another note - the nyan-cat binaries require you connect a piezo speaker between pb0
-and pb1. Upload and enjoy!
+tiny85 does not offer any hardware bootloading support, and does not protect the bootloader from being accidentally overwritten by a misbehaving app. We recommend great caution if using flash self programming inside an uploaded program due to the potential of bricking.
-And now back to your regular broadcast...
+----------------------------------------------------------------------------------
+==================================================================================
+!!%$!^%%$!#%$@#!%$@!$#@!%$#@%!#@%$!@$%#@!$%%!$#^&%$!%(*$!^%#!$@!#%$*^%!!&^%!%@$#!^
+@#$%^&*%#$%^#($)#*&($^#^*%&%%&@$*#($^&^*@$#&%^*%&($^&#^*%&$(^^%@$&^*#%@%&$^#*%^*%&
+&$%#$&^&$%@&#$*^*##*$##^$&#^%$^&*$&^&^%$#^%$&*$&#^%$*^$#^&%$*%#^$&^*%$#^$*^$$&*%#$
+==================================================================================
+----------------------------------------------------------------------------------
+Special Thanks:
+ • Objective Development's great V-USB bitbanging usb driver
+ • Embedded Creations' pioneering and inspiring USBaspLoader-tiny85
+ • Digistump for motivation and contributing the VID/PID pair
+ • Ihsan Kehribar for the command line C-based upload tool
+This project is released under the GPLv2 license. Code uploaded via the bootloader is not subject to any license issues.
----------------------------------------------------------------------------------------
-=======================================================================================
-!!%$!^%%$!#%$@#!%$@!$#@!%$#@%!#@%$!@$%#@!$%%!$#^&%$!%(*$!^%#!$@!#%$*^%!!&^%!%@$#!^!%@%$
-@#$%^&*%#$%^#($)#*&($^#^*%&%%&@$*#($^&^*@$#&%^*%&($^&#^*%&$(^^%@$&^*#%@%&$^#*%^*%&^@$%&
-&$%#$&^&$%@&#$*^*##*$##^$&#^%$^&*$&^&^%$#^%$&*$&#^%$*^$#^&%$*%#^$&^*%$#^$*^$$&*%#$^%$*%
-=======================================================================================
----------------------------------------------------------------------------------------
-
-
-
-
-
-USBaspLoader-tiny85 is a modification to the USBaspLoader project giving
-support for the ATtiny85 microcontroller. This is a signification modification
-as the tiny85 has very limited boot loader support in the hardware. The
-boot loader becomes a part of the application it has loaded by taking over the
-application's reset and USB-related interrupt vectors, yet the application
-does not need to be modified to support the boot loader. The boot loader does
-take up more flash (about 2.8k) than the standard USBaspLoader (about 2k), so
-the space available for the application is smaller.
-
-
-WORKING WITH THE BOOT LOADER
-============================
-Because of the limited pin count on the tiny85, the boot loader doesn't look
-for an external condition to enter boot loader mode, it does it automatically
-before starting the application. On reset the boot loader enumerates with the PC
-as a USBasp programmer, and jumps to the application after 5 seconds if there are
-no USBasp commands sent by the PC. You can flash the device with AVRDUDE
-through a "virtual" USBasp programmer. If there is no valid application loaded
-(determined by verifying a checksum calculation across application program space)
-the boot loader will stay connected as a USBasp programmer until the flash is
-written.
-
-
-HARDWARE CONFIGURATIONS
-=======================
-Even through the ATtiny85 only has 6 IO pins, there are a couple ways designers have
-connected the USB signals to the tiny85.
-
-Configuration 1
-The first configuration this bootloader supported was the configuration used by the
-V-USB example "EasyLogger", and by Sparkfun in their AVR Stick: D- is connected to PB0
-and D+ is connected to PB2 (INT0). This is convenient as INT0 can be used for USB,
-and the Pin Change interrupts can be left free for the application to use, but
-inconvienient as INT0 shares the same pin as USCK/SCL preventing use of the USI peripheral
-in SPI or I2C mode. Also, PB0 is used for MOSI/DI/SDA, preventing use of the USI
-peripheral in UART mode as well as SPI and I2C.
-
-Configuration 2
-An alternate configuration, used by Little Wire, puts the D+ pin on PB4 and D- on PB3,
-and uses Pin Change interrupts instead of INT0 for USB. This allows the USI peripheral
-to be used by the application, but prevents using external interrupts: Pin Change
-interrupts are used by USB, and INT0 shouldn't be used as it's a higher priority
-interrupt than Pin Change, and will interfere with USB communication.
-
-(There's a third configuration used by vusbtiny: similar to configuration 2 but with the
-D- and D+ pins swapped. I don't plan to support that configuration in the precompiled
-binaries, though it can be generated easily by changing bootloaderconfig.h and recompiling.)
-
-
-For more information on the USBaspLoader-tiny85, please visit the
-following URL:
-
-http://www.embeddded-creations.com
-
-(c) 2012 Louis Beaudoin
-
-Below is the unmodified README file for USBaspLoader:
-
-=========================================================================
-
-This is the README file for USBaspLoader.
-
-USBaspLoader is a USB boot loader for AVR microcontrollers. It can be used on
-all AVRs with at least 2 kB of boot loader section, e.g. the popular ATMega8.
-The firmware is flashed into the upper 2 kB of the flash memory and takes
-control immediately after reset. If a certain hardware condition is met
-(this condition can be configured, e.g. a jumper), the boot loader waits for
-data on the USB interface and loads it into the remaining part of the flash
-memory. If the condition is not met, control is passed to the loaded firmware.
-
-This boot loader is similar to Thomas Fischl's avrusbboot and our own
-bootloadHID, but it requires no separate command line tool to upload the data.
-USBaspLoader emulates Thomas Fischl's USBasp programmer instead. You can thus
-use AVRDUDE to upload flash memory data (and if the option is enabled) EEPROM
-data.
-
-Since USBaspLoader cooperates with AVRDUDE, it can be used in conjunction with
-the Arduino software to upload flash memory data.
-
-
-FILES IN THE DISTRIBUTION
-=========================
-Readme.txt ........ The file you are currently reading.
-firmware .......... Source code of the controller firmware.
-firmware/usbdrv ... USB driver -- See Readme.txt in that directory for info
-License.txt ....... Public license (GPL2) for all contents of this project.
-Changelog.txt ..... Logfile documenting changes in soft-, firm- and hardware.
-
-
-BUILDING AND INSTALLING
-=======================
-This project can be built on Unix (Linux, FreeBSD or Mac OS X) or Windows.
-
-For all platforms, you must first describe your hardware in the file
-"firmware/bootloaderconfig.h". See the documentation in the example provided
-with this distribution for details. Then edit "firmware/Makefile" to reflect
-the target device, the device's boot loader address and fuse bit values.
-
-Building on Windows:
-You need WinAVR for the firmware, see http://winavr.sourceforge.net/.
-To build the firmware with WinAVR, change into the "firmware" directory,
-check whether you need to edit the "Makefile" (e.g. change device settings,
-programmer hardware, clock rate etc.) or bootloaderconfig.h and type "make"
-to compile the source code. Before you upload the code to the device with
-"make flash", you should set the fuses with "make fuse". To protect the boot
-loader from overwriting itself, set the lock bits with "make lock" after
-uploading the firmware.
-
-Building on Unix (Linux, FreeBSD and Mac):
-You need the GNU toolchain and avr-libc for the firmware. See
- http://www.nongnu.org/avr-libc/user-manual/install_tools.html
-for a good description on how to install the GNU compiler toolchain and
-avr-libc on Unix. For Mac OS X, we provide a read-made package, see
- http://www.obdev.at/avrmacpack/
-
-To build the firmware, change to the "firmware" directory, edit "Makefile"
-and bootloaderconfig.h as described in the Windows paragraph above and type
-"make" to compile the source code. Before you upload the code to the device
-with "make flash", you should set the fuses with "make fuse". Then protect the
-boot loader firmware with "make lock".
-
-
-WORKING WITH THE BOOT LOADER
-============================
-The boot loader is quite easy to use. Set the jumper (or whatever condition
-you have configured) for boot loading on the target hardware, connect it to
-the host computer and (if not bus powered) issue a Reset on the AVR.
-
-You can now flash the device with AVRDUDE through a "virtual" USBasp
-programmer.
-
-
-USING THE USB DRIVER FOR YOUR OWN PROJECTS
-==========================================
-This project is not intended as a reference implementation. If you want to
-use AVR-USB in your own projects, please see
- * PowerSwitch for the most basic example,
- * Automator for an HID example or
- * AVR-Doper for a very complex example on how to simulate a serial
- interface (virtual COM port).
-All these projects can be downloaded from http://www.obdev.at/avrusb/
-
-
-ABOUT THE LICENSE
-=================
-It is our intention to make our USB driver and this demo application
-available to everyone. Moreover, we want to make a broad range of USB
-projects and ideas for USB devices available to the general public. We
-therefore want that all projects built with our USB driver are published
-under an Open Source license. Our license for the USB driver and demo code is
-the GNU General Public License Version 2 (GPL2). See the file "License.txt"
-for details.
-
-If you don't want to publish your source code under the GPL2, you can simply
-pay money for AVR-USB. As an additional benefit you get USB PIDs for free,
-licensed exclusively to you. See the file "CommercialLicense.txt" in the usbdrv
-directory for details.
-
-
-MORE INFORMATION
-================
-For more information about Objective Development's firmware-only USB driver
-for Atmel's AVR microcontrollers please visit the URL
-
- http://www.obdev.at/products/avrusb/
-
-A technical documentation of the driver's interface can be found in the
-file "firmware/usbdrv/usbdrv.h".
-
-
---
-(c) 2008 by OBJECTIVE DEVELOPMENT Software GmbH.
-http://www.obdev.at/