|
Commodore PET Projects
- petSD+ |
petSD+ - Firmware
Last Firmware Update :
Get it here
The firmware for petSD+ is currently in development and a
"production" version has not yet been formally released. During
this development phase, firmware updates are available on Nils'
"nightlies"
firmware page. I will endeavor to keep the table below up to date as
new versions are made available, but for the most up to date
status and copies of the binary files, please visit the "nightlies"
download page.
July 8th 2019 : IMPORTANT UPDATE
ON NODISKEMU FIRMWARE STATUS
For the latest -
see below
Nils has just advised me that he no longer intends to devote
any time to petSD+ / NODISKEMU firmware updates. The 2018-10-28
firmware file will not be updated, whether or not any bugs or
other problems come to light.
Unfortunately, I do think that there are some issues with the
latest firmware (that may have been present for some time), but
Nils has not been able to duplicate the problems that I have
reported or figure out what the cause might be. I think that he
is pretty skeptical that my findings are real but in any event,
he will no longer devote any time to working on the firmware. To
some extent, I can see why Nils does not believe me; the strange
thing is that the problems only seem to manifest themselves with
certain MCUs, but having built and tested many petSD+ units, I
am 100% certain that there is a (admittedly, perhaps hard to
find) firmware issue somewhere.
With Nils no longer willing to work on the code, it is likely
that these firmware issues will go unresolved. Hopefully, your
petSD+ does exactly what you expected it to, in that case, even
if your firmware revision is older than the latest, unless you
need some fix or feature in a later firmware revision, I
strongly suggest that you DO NOT UPDATE THE FIRMWARE
in your petSD+. You may find that a later firmware revision
brings problems that you did not expect. If you do decide to
update the firmware, take a note of the installed firmware
version BEFORE upgrading, that way,
you should be able to revert to a working system if the update
causes issues.
Nils has licensed NODISKEMU as "Open Source" and his
Github
Repository hosts the source files for the current and all
previously released versions of NODISKEMU. Unfortunately, I do
not have the skills to pick up responsibility for maintaining
the firmware, so unless some other PET enthusiast with AVR
programming skills is prepared to take up the mantle, then
NODISKEMU is effectively DEAD, or at least, has a status of
"unmaintained".
WHAT NOW FOR petSD+ ?
It is a real shame that this situation has arisen, petSD+ is
a truly great piece of hardware for the PET, there are many
petSD+ users who should be grateful to Nils for his time and
effort in developing petSD+ and for supporting it over the past
8 years or so. Other, cheaper, SD card based solutions are
available, but the ability for petSD+ to coexist with legacy
disk drives and transfer files between them over the IEEE-488
bus is a real differentiator - I am sure that the vast majority
of petSD+ users would agree!
Whilst I want to continue to make petSD+ available, I am
becoming increasingly frustrated by the extended testing time
that I need to put in before I am happy to send out petSD+ and
with the number of MCU "failures" that I am seeing - currently
about 50% of the MCUs that I install have one or more issues
that mean that I have been reluctant to ship them - I have
accumulated a large number of costly MCUs that I am unable to
use. (Anybody want to buy a "nearly new" ATMEGA1284p-PU?)
The most common "failure" is that petSD+ does not start up
properly on power-on. There is a
simple work around for this, but, until now, I have not
knowingly sent out units with this "fault", however, I am
considering moving to a position where, if I identify this
"fault" during testing, and only with the agreement of the
purchaser, I may not consider this as a failure and may ship the
unit anyway. Having to do a manual reset on power-on is not
ideal, but is a minor inconvenience that users may be prepared
to live with if it allows them to get hold of a petSD+ that they
might otherwise not be able to. This would only be for external
petSD+ units as manual reset of an internal unit would be just
too awkward.
This needs more thought though . . . . It may be that I offer
a small discount for users willing to accept a petSD+ with this
minor inconvenience.
Update 29/08/2019 - CURRENT
STATUS
The last release of NODISKEMU firmware was dated 2018-08-28
but it continues to be problematic, with around 50% of MCUs not
able to start-up the application code without the user needing
to use the
simple work around mentioned above. I have reached the point
where I can no longer tolerate the 50% failure rate of MCUs
failing to run this firmware revision "out of the box".
Date |
Brief Description |
Caution
Updated 2019-07-08 |
Caution : It
has been reported that, on some petSD+ units, the
2018-10-28 firmware revision has an issue with writing
to the SD card; when the "save" command is used to write
a file to the SD card, an empty file is created and the
petSD+ resets.
This is currently being
investigated, but in the meantime, With the petSD+
firmware no longer being maintained (see above), it may be wise to
stick with the current firmware loaded on your petSD+. |
2018-10-28 |
Bugfix :
Backport Ingo Korb's sd2iec commits from 2015-2018
Corrects a bug that when writing to a file inside an
image, the save would overwrite files inside the image
other than the named file
Development
: Add CONFIG_IGNORE_CARD_DETECT Compile-time
configuration option to disable the card detection
switch for devices with defective switch
Other
: lcd-i2c-menu: Always interpret '\n' Other
: Add support for full-step encoders like ALPS STEC12E08
Other
: Move #include of a library from .h file to .c Other
: lcd-i2c-menu: First attempt of a Markdown README Other
: lcd-i2c-menu: Add support for m1284p and use it by
default Other
: lcd-i2c-menu: Fix some compiler warnings Other
: lcd-i2c-menu: Use an easily available 20x04 display by
default Other
: lcd-i2c-menu: Replace obsolete prog_char type
Other
: lcd-i2c-menu: Rework broken Makefile Other
: lcd-i2c-menu: Make config-example the default |
2018-05-16 |
Bugfix : Fix
SPI speed during card init for petSD+ The divisors
for slow and fast speed were mixed up so that the card
was initialized way too fast. For some cards. Maybe. At
least according to the specs from many years ago. In
practice, this bug doesn't seem to be much of a problem,
it was found just by random.
Bugfix
: Fastloader-GEOS: Add missing track masking to 1581
reads Fix a missing bit mask in the 1581-read path
of load_geos() because GEOS already sends the READ
command with bit 7 set if it only needs the link pointer
of a sector, even though the bit is only checked in the
TRANSMIT command. |
2018-01-22 |
Bugfix : Fix
unexpected behavior when setting contrast The
contrast setting menu reset the contrast to default
value instead of starting the adjustment with the
current value. |
2017-11-22 |
Development :
Enable all fast-loaders for petSD+
Development : Preparation for petSD+ Vesion 2
- Rework LCD contrast/brightness menu
- Store LCD contrast/brightness values in EEPROM
- Rename/move some functions to match the
name scheme - Switch between IEC and
IEEE-488 in hardware on the petSD+ Rev. 2.x
(This is done with a wire link inside the adapter cable
on the older Rev. 1.x boards) - Show
firmware version of PWM controller in diagnose screen
- Press NEXT key on power-up for LCD
contrast adjustment - Add LCD brightness and
contrast adjustment to menu - Add firmware
for PWM controller on petSD+ rev. 2.x boards
- Fix EXTRAINCDIRS
The creation of asmconfig.h failed because header files
located in $(EXTRAINCDIRS)
were not found. - Split board_init() into
early and late_board_init() - Fix a remark
(F_CPU was 18.432 MHz but is now 16 Mhz) -
Rename lcd-i2c directory to lcd-i2c-menu -
Enable DS3231 RTC for petSD+ boards -
DS1307-3231: Add missing weak alias for rtc_init
- Enable PCF8583 and DS-RTCs in most
configurations - Merge CONFIG_RTC_DS1307 and
CONFIG_RTC_DS3231 - ds1307-3231: Auto-detect
RTC type Bugfix : Get rid of an
unwarranted compiler warning Other
: Update copyright notices for 2017 |
2017-10-05 |
Bugfix : Fix
debug output for old petSD (not relevant to petSD+)
Last stable release of NODISKEMU firmware ?
|
2017-07-12 |
Bugfix :
Increase LCD delays to enable the usage of slower
displays
Bugfix : Fix UART
debugging for petSD+ The new setting is 38400 baud
8N1 regardless of whether the petSD+ runs at 8 MHz in
IEC mode or 16 MHz in IEEE-488 mode |
2017-07-11 |
Bugfix : Fix
compilation when UART debug is enabled
Optimisation : (Compile time) Re-arrange tables
used for IEC bus Avoid defining of some tables for
non-IEC bus targets like the old petSD, this removes
some unused variables warnings. This change combines a
series of #ifdef / #endif into a single #ifdef
CONFIG_HAVE_IEC section.
Optimisation
: (Compile time) Don't treat compiler warnings as errors
Some warnings aren't justified and hence shouldn't
break the compilation, for example (with avr-gcc 7.1.0): |
2017-04-06 |
Development :
Same LCD delays for 8 and 16 MHz on petSD+ -
Same SPI speed for 8 and 16 MHz on petSD+ -
Remove remaining traces of former XS-1541 support |
2017-04-05 |
Bugfix : Fix
IEC fastloader for petSD+
The AVR fastloader
code is hardcoded for 8 MHz and running the device at
other speeds breaks the timing and thus the support of
fastloaders. But the device can not run at 8 MHz
because that would be too slow to respond in time to the
IEEE-488 ATN signal. To fix this, a CPU clock prescaler
is introduced to run at 8 MHz when in IEC mode and at 16
MHz when in IEEE-488 mode. Replace the crystal on
your petSD+ with a 16 MHz type to benefit from this
commit. However, take great care not to
damage the PCB when you exchange the crystal!
Development : Cleanup IEEE-488
code Optimisation : Remove ATmega32
specific code The code grew too large for this
controller quite a while ago Optimisation
: Remove support of XS-1541 There are no XS-1541
with attached SD-card out in the wild and the poor men's
variant without IEEE bus drivers is broken anyway. So
just get rid of it and close #4 Optimisation
: Remove more petSD-duo related code This code was
introduced when the IEEE-488 functions were replaced. It
didn't come with a petSD-duo specific commit so it had
to get removed separately. Optimisation
: Revert petSD-duo code This commit reverts all
petSD-duo related code, leaving it in the spsp branch
for further reference. The petSD-duo is a failed
hardware project so there’s no need to preserve its code
in the master code branch. |
2016-12-01 |
Development :
Import Emily's SPSP functions SPSP = Serial
PET/Server Protocol (See
petSD-duo) |
2016-11-29 |
Development :
Add preliminary support for petSD-duo |
2016-11-07 |
Development :
Allow more characters in FAT filenames |
2016-09-06 |
Bugfix : Fix
reading device address DIP switches on petSD+ |
2016-06-30 |
Bugfix : Revert
to reliable diagnosis mode entry |
2016-05-21 |
Bugfix : use 11
as default device address If the device address
couldn’t get read back from the EEPROM memory, it was
accidentally set to zero. This bugfix uses 11 as a new
default value. |
2016-04-07 |
Development
: Add support for device address switches on petSD+ |
2016-03-15 |
New Feature :
Added support for Commodore 64 Serial IEEE-488
Development : IEC support for petSD+
This commit turns your petSD+ into a IEC-only device.
Select IEC or IEEE-488 during runtime Currently, only
standard kernal functions work. Consider all fastloaders
as broken. |
2016-03-13 |
Development :
Menu change from "Abort" to "Return to Menu" |
2016-03-12 |
Bug Fix
: Re-read
configuration after IFC (interface clear) Development
: Add missing dummy LCD functions Development
: Allow dot ('.') within FAT filenames |
2016-01-18 |
Optimisation :
Preserve CMD compatibility for $=t on devices with IEC
bus Development
: Make directories with timestamps 40 column friendly
Development
: Enable larger debug hex dumps |
2016-01-15 |
Bug Fix :
LCD Menu - fixed LED usage while browsing files |
2016-01-06 |
Development
: LCD Menu - added directory and disk image browsing
- Minor issue - When browsing, LED behavior is not as
documented - fix in progress
- Minor Issue - Does not stop browsing up from root,
produced an error - fix in progress Development
: Removed M2I support |
2015-12-10 |
Development
: Set default file extension mode to 0
- Old setting was 1 which created x00 files except for
PRG. -
New setting: never write x00 format files |
2015-11-06 |
Bug Fix :
LCD Menu - fixed determination of the day of week when
setting time from LCD Optimisation :
Increase time-out for SD-Cards |
2015-11-04 |
Development
: LCD Menu - development for future disk image options -
no user benefit |
2015-10-28 |
Development
: Code - compilation options, source file edits - no
user benefit Development
: LCD Menu - development for future disk image options -
no user benefit |
2015-10-28 |
Development
: LCD Menu - minor change to clock setting option text |
2015-10-28 |
Optimisation :
LCD Menu - reworked clock setting
function Optimisation : LCD Menu -
minor presentation changes for consistency between menus
Optimisation : LCD Menu - added labels
to the status screen |
2015-10-27 |
New Feature :
LCD Menu - added "Set Clock" functions Development
: LCD Menu - minor presentation changes |
2015-10-26 |
New Feature :
LCD Menu - added "Store Settings" dialog |
2015-10-26 |
New Feature :
LCD Menu - added ability to change device number |
2015-10-21 |
New Feature :
First release of PREV/NEXT/SELECT
Button Code
- Pressing P,
N or S
button enters the LCD Menu
- When LCD Menu is active, puts IEEE bus in "sleep"
mode, indicated by solid Red LED New Feature
: LCD - Show disk status Development
: LCD - Added cursor |
2015-10-12 |
Bug Fix : Be
more tolerant for U command variants Bug Fix
: Ensure a proper DOS command channel dump Bug Fix
: IEEE-488: Fix friendly co-existence with other devices
Development : Update default
directory header |
2015-09-08 |
Bug Fix : Fix
an ATN race condition |
2015-08-28 |
Bug Fix : Fix
preservation of petSD+'s device address |
2015-08-25 |
Development :
AVR system tick code, assembly version |
2015-08-22 |
Optimisation :
Speed up LCD display |
2015-08-21 |
New Feature :
Initial version of the LCD status display, a "splash
screen" displays the software version and hardware name
on startup and the Device ID when in normal operation. |
2015-08-03 |
Bug Fix : LED
brightness |
2015-08-01 |
New Feature :
Diagnostic functions, uses the LCD to report the status
of the SD card detect and write protect
switches, the values reported by the ADC for the various
prev, next and select button
combinations and the MCU fuse settings. |
(earlier) |
Development : Versions prior to shipment of
petSD+ hardware |
|