No pumpkins and definitely no Halloween easter eggs in this release, just wholesome goodness and updates to the infrastructure around the amigahid firmware.
Starting with this release, firmware binaries will be published automatically to GitHub so you no longer need to install a build toolchain - get the firmware and write it to your AVR/Arduino with avrdude
or whichever tool you favour for writing to your AVR EEPROM. Or download the excellent PlatformIO and build and program it to your board yourself! The choice is yours.
In this update:
- We've switched to PlatformIO. That's the royal "we" since I'm talking about myself. Don't feel you have to reach for the Arduino IDE any longer, this change was in part because I want to move from the model of having a single sketch to multiple files for readability and maintainability, but has the benefit of enabling continuous integration as well.
- Continuous integration! Well, right now, it just checks that the build runs okay; we've not resorted to an AVR simulator yet, and it could be quite difficult, but it's a start.
- Dropped use of the Arduino Serial class: the UART has been setup as stdin/out/err now so
printf
works happily and we can use simpler output on the debug console, also removing amalloc
in the process. This has had a sideeffect of increasing RAM usage in the short term but not by much and hopefully we can optimise out more unused parts of the Arduino core library. - Removal of more Arduino-specific code: the goal is something which does not require the Arduino core library, but we're not there yet. To get there we will likely need to fork the USB Host Shield library and refactor its use of the Arduino library to get there. That's not going to happen quickly.
Known problems:
- Seeing some sporadic board resets at the moment. This has an unpleasant sideeffect - it reboots the Amiga. Some investigation into a permanent fix for this will be forthcoming, but the next minor release should contain instructions for adding a 74LS04D NOT gate to the reset line (as well as a configuration flag in
platformio.ini
to turn use on and off). This should mean that on reboot,/RES
never gets pulled low and the Amiga should not reset. Bear with me, I'm trying to finish a masters degree, raise two children, train a puppy, maintain a full time job and my own sanity. By adding the NOT to/RES
the reset behaviour will need to be inverted, but a board reset will stop the Amiga from rebooting.
In the coming months, the development is going to be steered towards moving to a finite state machine model so the same AVR can be used for mouse conversion as well as keyboard, so your humble AVR can drive more USB input for the Amiga. Stay tuned.