Skip to content

Instantly share code, notes, and snippets.

@oodler577
Last active September 30, 2024 03:52
Show Gist options
  • Save oodler577/dcbbd788cd091ad70c47aa76ed23ddd1 to your computer and use it in GitHub Desktop.
Save oodler577/dcbbd788cd091ad70c47aa76ed23ddd1 to your computer and use it in GitHub Desktop.
Adventures in Updating Firmware on the X16 29 Sept 2024
# INSTRUCTION VERSION
The following is originally based on the following URL (nearly a year old at the
time of this text document):
https://github.com/FlightControl-User/x16-flash/blob/1d9c5f8c11ac94d129bfdfe95393f154d718f1d8/README.md
Please check for latest version, but all information below is consistent with this
README.md version. IOW, these are notes on my situation and how it ended successful
for me.
OP's Journey started with this video: https://www.youtube.com/watch?v=FArnhwrJd6Y, itself a rather dated
video. All documentation referenced here is all nearly 1 year old. Please ask for newer information if
this document is even a little dated (as written, 29 Sept 2024).
# IMPORTANT
If performing the update in-system, please obtain and use version 2.0 of
X16-SMC-UPDATE. This will assist with updating boards that were shipped with SMC
version 45.1.0 which included a problematic bootloader.
https://github.com/stefan-b-jakobsson/x16-smc-update/releases/tag/2.0 (NOTE: the flashing
program will promot for the "hex file" - it's looking for, "x16-smc.ino.hex").
# SOFTWARE VERSION INFORMATION
CX16-UPATE.PRG - https://github.com/FlightControl-User/x16-flash/releases/tag/r3.0.0
rom.bin - https://github.com/X16Community/x16-rom/releases/tag/r48
• VERA:
◦ Recommended: 47.0.2
◦ Also supported: 0.3.1, 0.3.2
◦ Functional but with known problems: 0.3.3
◦ Unsupported: 0.1.1 or older
• SMC:
◦ Recommended: 47.2.3
◦ Also supported: 43.0.0 and higher
◦ Unsupported: 42.0.0 or older
vera.bin - https://github.com/X16Community/vera-module/releases/tag/v47.0.2
smc.bin - https://github.com/X16Community/x16-smc/releases/tag/r47.2.3
x16-smc.ino.hex - https://github.com/X16Community/x16-smc/releases/tag/r47.2.3
(used iv SMC is at v45.1.0 - see IMPORTANT note above)
# PRECHECK
1. start the x16
2. type, `help` (will appear in caps bc PETSCII)
3. note your SMC firmware version and VERA firmware versions
4. if your SMC firmware is "45.1.0" you need to start at step #1 below, all others step #2
# PROCEDURE
Note 1: You will need access to the x16 board!
Note 2: You will need to rest the machine after the update by touching 2 parts of the
board together with a wire that normally don't touch (shorting). If you are uncomfortable
with doing this and have SMC 45.1.0, then **STOP** here and seek out community support on
the Discord server or the X16 Forums.
## Step 1 - (if your SMC is v45.1.0) Updating the "problematic bootloader"
1. run, `X16-SMC-UPDATE`
2. when prompted, type in the name of the "hex" file, here it is
`x16-smc.ini.hex` - DO NOT REBOOT yet, see #3
3. when prompted, grab a wire and touch pin #10 of the SMC (if IC is on the
bottom, it's the bottom left corner) to a "GND" (ground) pin nearby
See https://github.com/X16Community/x16-smc/blob/main/doc/update-with-bad-bootloader-v2.md for deeper
information on the process; it's an optional method for update the SMC that according to the author is
not yet _complete_, nonetheless shows nice pictures of the SMC chip and shorting procedure. YMMV.
## Step 2 - (everyone) Do Updates
1. `@CD` (navigate using, `/LAUNCHER`) to directory with flash tool and updated
firmware bins (from above)
2. run, `CX16-UPDATE.PRG` (from r3.0.0, see "SOFTWARE VERSION INFORMATION"
above)
3. follow on-screen instructions
Notes:
If you had to update the SMC using the "hex" file, then the update utility in
the step for all will report that it's already updated and nothing needs to be
done. (that's how it was for OP here)
Moving on the the VERA update, when it talks about "JR1," this is on the VERA.
OP here was looking at "J1" by mistake. OP had to make sure the plug on JR1 was
firmly seated for it to be "closed." Follow the instructions on screen. Note:
the pins must remain open after the updates.
Finally, somehow my screen ended up with larger than normal letters. I brought
it back to _80 column_ mode using the command, `SCREEN 0`.
FAQ
Q. How do I get my files on the x16?
A. See the YT video linked at the start, you copy it to your SD card from your
modern computer (Windows, Mac, Linux, etc)
Q. Do I really have to "short" my board if my SMC is at v45.1.0?
A. Yes. Try shorting the SMC in #10 to GND a few times - it's not that scary; but
it helps to practice this ahead of time
Q. If I "brick" my X16, is it forever dead?
A. No, but you will need an EPROM programming device to fix the ROM on the IC you
that got corrupted
Q. Can I just update the SMC with the EPROM programmer from the start if I have one?
A. Yes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment