[Author's note: This is the second post in a real-life story that ultimately took a full year and four chapters (1, 2, 3, 4) to tell. Read them all, then browse through the other surprising puzzle box stories that have popped up along the way.]
The Puzzle Box story has a delightful second act.
It’s Saturday night, [...]
There is a cool new addition to the website today — a project I call the Reverse Geocache Puzzle™. It’s a box that won’t open until its owner figures out where on earth to move it. I built it for a friend who got married in France last month. The software for this project incorporates [...]
NewSoftSerial 9 is now available. This is a major new release that replaces all the performance path pin reads and writes with direct Port I/O.
What does that give you? Well, a couple of things. Most importantly, it makes NewSoftSerial more compatible with the latest Arduino release. Changes to timings of digitalRead and digitalWrite in Arduino [...]
Changes in the timing of digitalRead and digitalWrite on 0015 have degraded NewSoftSerial’s and AFSoftSerial’s performance on this platform. If you need software serial at higher baud rates, I recommend you stick with 0014 — at least until NewSoftSerial 9 comes out.
The good news is that version 9 has been optimized heavily and it [...]
Over the last couple of weeks I’ve spent a fair number of hours in front of the logic analyzer, and the result is NewSoftSerial version 8. The major delta in this release is support for 8MHz processors.
The half-speed clock makes accurate serial reception considerably more difficult, but NewSoftSerial 8 still manages to transmit with 100% [...]
Thanks to Paul V. and Ben Combee for their useful suggestions on how to support line endings (C++ “endl”) and internal format manipulators, respectively, we now have a bona fide Streaming library.
With it, you can now write code like this:
Serial << "A is " << lettera << "." << endl;
lcd << "The date is " [...]
I wrote a new library, Flash, which abstracts away most of the complexity of PROGMEM programming. It provides String, Array, and Table types that make ROM-based data collections as easy to use as “normal” types. Each overrides the C++ [] operator, so to get at individual elements, one simply uses familiar array syntax. For example, [...]
Thanks to a helpful suggestion by user DanP, I have increased the effective resolution of the latitude and longitude values returned in TinyGPS. The get_position method now returns values in units of 10-5 degrees, a 10-fold increase in resolution. Note that if you use use the old get_position, you will have to make some minor [...]
Ladyada tested NewSoftSerial and made some improvements to the code, contributed a “goodnight moon” sketch, and tested the library (successfully) with the Atmega328p processor. Thanks, ladyada! Go buy a bunch of processors from her, please. They give you twice the RAM and nearly twice the flash space.
I posted the new library.
…goodnight moon. [...]
Check out the new PString library.
PString is a very lightweight string class that derives from Print, so you can use it to render text to string buffers the same way you would to the Serial port or to a LiquidCrystal device. Try it out. Feedback welcome.
Mikal
October 25, 2009
24