summaryrefslogtreecommitdiffstats
path: root/firmware/releases/release notes.txt
blob: c513de6341d3a510de1ea511871b45e9aca5d909 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
== 1.06 - 2013-3-4 ==

firmware:
 o Store 16.5mhz oscillator calibration value in tiny vector table
 o At user program startup, restore oscillator calibration value stored together with program
   -> User programs always start on the calibration value from the last time they were uploaded
 o Slightly too big to have 6076 programmable bytes, reverted to having 6012 bytes free for user program
   -> Hopefully a future version can slim down again and get another page free!

== 1.05 - 2013-2-8 ==

firmware:
 o Revert all timing aspects to be like 1.02 - the most reliable version ever as judged by digistump
   this means this is a 5 sec boot time release
 o The only meaningful difference between using this and version 1.02 is 1.02 has 6010 bytes of
   programmable space and 1.05 has 6076 bytes. This release also has the improved idlePolls mechanism
   which might improve reliability in some cases
 o I'm not totally sure this version is as reliable as 1.02. Maybe it's better? Maybe it's worse?
 o Now includes a -jumper. "-jumper" works exactly the same with four exceptions:
   -> Bootloader never times out (no 5 seconds waiting)
   -> Bootloader runs user program immediately
   -> If you want to upload something, connect jumper between D5 / reset pin and ground
   -> You obviously can't use this on chips which don't have their reset pin disabled
   :: I made it for DeuxVis on digispark forum, but I mostly use it on my LittleWire. It's really great for that!

upgrade:
 o When finished upgrading runs new bootloader firmware.
   -> you can watch for the new bootloader to connect to see when the upgrade has finished
   -> upgrades only take about half a second, so you could just wait like five seconds
   :: if upgrading to a micronucleus -jumper variant you might like to connect the jumper before you upgrade

== 1.04 - 2012-10-5 ==

firmware:
 o Further reduction in code size - not enough to gain another page yet
 o Reduced default configuration's timeout from 5 seconds to 2.5 seconds - seems to work on Mac, Windows 7, and Linux
 o Timeout mechanism now more robust - any usb requests reset timeout
 o Faster Uploads - write sleeps reduced from 8ms to 6ms, for a roughly 25% speed boost
 o You can poll info requests once every half second or so to keep bootloader captive, so it doesn't launch user program
  -- this is useful for programs which are likely to do strange things to the USB data lines - less freaking out usb
  -- root hubs in specialist applications where that can be predicted
 o Added warning when bootloader configured with idle timeout below duration of erase request (the longest running request)
 o Option to restore OSCCAL to it's factory setting - run your programs at 16.0mhz instead of 16.5mhz
 o Option to set CLKPR prescale selection - You can configure micronucleus to run on devices with clkdiv8 fuse set. By default it returns to clkdiv8 after (2mhz real speed), but you can optionally specify a different division, to have 8mhz, 4mhz, or a much lower speed.
 
upgrade:
 o Micronucleus now includes a viral upgrade tool. Upload these hex files via an older version of micronucleus or some other attiny85 bootloader like fast tiny & mega uart bootloader, and when the program runs it'll brick the chip, patch the bootloader with a new version, then patch it's own interrupt vector table to point to the bootloader. After letting it run for at least five seconds, power cycle the device and it should boot right in to the new bootloader!
 o I (bluebie) make no guarentees that any of micronucleus wont brick your chips. Be careful if you don't have access to a fuse resetter or HVSP programmer.

commandline:
 o Added percentage progress logging
 o New --dump-progress option outputs computer readable JSON lines, for driving GUIs, including raw progress bar data
 o Can pass "-" as filename to upload via stdin, for GUI apps
 o Exit code is more reliably not zero when an error occurs, and zero when upload succeeds flawlessly
 o Detect and refuse to upload to unknown newer versions of firmware
 o Adjusted some delays - uploads now take about a quarter to half of a second less time
 o `make install` works and installs to /usr/local/bin (anyone know how to make this smarter?)
 - notice: I think there may be a bug uploading raw binary files, but intel hex files seem to work fine

commandline's c library:
 o progress argument to eraseFlash and writeFlash functions - a function to call frequently with progress data
  -- eraseFlash: library currently simulates progress, by providing the erase_sleep progress in steps of 1%
  -- writeFlash: provides real progress, at about one update every write_sleep milliseconds (usually about 8-10ms)


== 1.03 - released 2012-9-30 ==

 o Reduced bootloader size by one page, expanding memory for user program by 64 bytes
 o Adjusted tinyvector table to correct size (four bytes) - giving user program two more bytes
 o Changed upload protocol in an incompatible way to enable smaller bootloaders in the future
 o Now we have a command line tool (which detects 1.02 and works around upload protocol differences)
 o Now requires all pages be written
 o 'Finish' command repurposed as 'run' command for bootloader configs where running user program maybe optional


== 1.02 - released 2012-9-30 ==

 o Most recent build before next release where some subtle protocol changes took place