nanoKenbak-1 firmware differs from µKenbak-1 firmware!

Skip to first unread message

May 29, 2021, 7:23:31 PM5/29/21
to uKenbak-1
I learned the hard way that before flashing the newest Kenbakuino firmware release to the nanoKenbak-1, it requires two source-code lines be changed. Because the nanoKenbak-1 uses a DS3231 clock chip (while the µKenbak-1 uses a DS1307, which is what the firmware release comes configured for), the two lines in Clock.h that say:

static const int RTC_CONTROL_OFFSET   = 0x07;
static const int RTC_USER_SRAM_OFFSET = 0x08;

need to be changed to:

static const int RTC_CONTROL_OFFSET   = 0x0E;
static const int RTC_USER_SRAM_OFFSET = 0x00;

Failure to make these changes results in subtle odd behaviors, some of which are that Auto-Run doesn't work; your configuration will randomly reset itself automagically; and the clock will go screwy when you try to fix your configuration. This is because the unmodified firmware will try to share its configuration bytes with DS3231 clock registers, not at all a wise thing. Once you make the modifications above, the configuration bytes will be kept in EEPROM where they belong. I spent half a day trying to track this down when I noticed that Auto-Run did not work on the nanoKenbak-1 that I had flashed.

Note that the last EEPROM page on the nanoKenbak-1 will be reduced by 8 bytes (e.g.: 56 bytes instead of 64 bytes) when compared to the µKenbak-1. So the last 64 printed on the back of the nanoKenbak-1 for the default Page Map should say 56. If you have the Page Map configured for 4 pages of 256 bytes, the last page will only save 248 bytes.
Reply all
Reply to author
0 new messages