SlideShare a Scribd company logo
1 of 27
Download to read offline
Tracking the
International Space Station with Commodore Computers
(and other fun networking applications, devices, and more)
Leif Bloomquist
World of Commodore 2023
What’s Coming Up
• History
• Networking 101
• Summary of networking interfaces for Commodore computers
• The FujiNet Project, Meatloaf, and the ISS Tracker demo application
• Porting the ISS Tracker to the Ultimate 64
• What next?
Credits!
• Thomas Cherryhomes: FujiNet Project, developed many demo
applications, including original ISS Tracker for VIC-20 and C64
• Jaime Idolpx: Meatloaf IEC Wi-Fi interface, code and tons of support
• Scott Hutter: Networking Library for the Ultimate 64
First, a bit of history…
1986
Won a C64 in a raffle
draw
1984
Bought a VIC-20 with
paper route money 2008-2009
Lead Developer on SSRMS
(Canadarm 2) Control GUI on the ISS
A bunch
of stuff
happens
More stuff
happens
2020-2022
Project Engineer for Canada’s ISS
Logistics and Sustaining Engineering
Data Archival/Analysis Team
2022-Present
Product Manager for Canadarm 3
(Lunar Gateway)
Mission Planning Tools Development
I stopped
writing code
at work
around here
Why Connect Commodores to the Internet???
• Commodore users had rich online experiences from early on:
QuantumLink, Bulletin Board Systems, etc. Lots of nostalgia
• Commodore gaming has always had a strong social aspect.
Bringing it online adds a new dimension
• Incorporating Internet capability on an 8-bit computer is a fun
technical challenge. We can leverage Arduino and Internet of
Things
• It appeals to the Japanese philosophy of Chindogu,
the whimsical idea of the “unuseless invention”
Networking 101 – the TCP/IP “Stack”
Credit: t-suarez, DEV Community
Ethernet
Ethernet (and Wireless Ethernet, Wi-Fi) have become the de facto standard for
commercial “link layer” - the actual connection between computers on a network.
It specifies the cables, frequencies, etc at the lowest level.
Fun fact! Commodore had their own Ethernet Organizational Unique
Identifier 00:80:10
• Same ID as their early acoustic coupler/modem, coincidence?
• If you set your computers to use this Ethernet address prefix they
will show up as Commodore devices in modern network analysis
tools 
Photo Credit: David Bradley
IP (Internet Protocol)
• The Internet Protocol is the next layer up, which provides addressing information (source
address, destination address, etc) and basic information about the type of data
• It doesn’t do much on its own – other protocols like TCP and UDP (next slides) are used to
actually carry data
UDP (User Datagram Protocol)
• UDP is one of the simplest methods for sending data over the Internet
• It’s “fire and forget” – you collect your data into a small bundle (called a “packet”) and send it
across the Internet with a destination address attached
• Routers and modems along the way do their best to get the packets to their destination, in
the right order, but there are no guarantees
• Analogy: Postcard
• Ideal for real-time games, and quite manageable
by 8-bit machines with the right hardware
TCP (Transport Control Protocol)
• Unlike UDP, TCP provides a “reliable” connection and ensures your data gets through
• You collect your data into a “stream” and TCP handles the rest
• The protocol creates a connection, acknowledges that the data got through in the correct
order, and tries again if needed. Continues streaming data until either end “hangs up”.
• Analogy: Phone Call
• Ideal for (ie) strategy games, applications where the data must get through i.e. Email, chat
apps like WhatsApp, Web browsing
• Manageable by 8-bit machines with the right hardware, but requires significantly more
resources and memory
HTTP (Hypertext Transfer Protocol)
“HTTP (Hypertext Transfer Protocol) is the set of rules for transferring files -- such as text,
images, sound, video and other multimedia files -- over the web.” – TechTarget.com
• HTTP (and its secure encrypted big brother, HTTPS) are the “language of the web”
• Built “on top of” TCP
• Every web page you visit, file you download, video you watch…involves HTTP(S) in some way.
• Once you have access to HTTP on a Commodore, many cool possibilities open up!
• Simple web browsing
• Download files (PRG files or D64 disk images can be loaded directly from the web)
• Access to JSON files
JSON (JavaScript Object Notation)
“An open standard file format and data interchange format that uses
human-readable text to store and transmit data objects” - Wikipedia
• Derived from JavaScript, but now supported by most modern
programming languages
• Relatively easy for humans and computers to understand
(even our beloved 8-bits, with a bit of work)
• This data can often be dynamic for getting real-time information
• The public interface is called an API – Application Programming
Interface. (Usually over HTTP)
More on JSON Later!
ISS Live Location JSON API
http://api.open-notify.org/iss-now
More history! • In 2002, Adam Dunkels unveils “The Final Ethernet”
cartridge (a riff on “The Final Cartridge”)
• A fully functional design of an Ethernet cartridge
interface for the Commodore 64
• The uIP “micro” TCPIP/IP stack that runs in very
limited memory (like the C64)
• Contiki OS with many example applications: Web
browser, Web server, Telnet client, audio
streaming…
• The era of the Internet-Enabled Commodore 64
begins!
Photo credits: Adam Dunkels
My Networked Commodore 64 Games
Free Downloads at https://schema64.itch.io/
Artillery Duel NET NetRacer Vortex Dungeon of the
Rogue Daemon
A Plethora of Networking Options!
Expansion Port
The Final Ethernet
RR-Net
64NIC+
User Port
WiFi Modem
WiC64
ZiModem
etc.
IEC (Serial) Port
Meatloaf
Credit: xkcd
User Port “Modems”
• Connect to the User Port
• Pretends to be an old-skool dialup modem (“ATDT….”)
• Usable on any machine with a User Port: VIC20, C64, C128,
PET (with modified wiring)
• All your old terminal software like CCGMS, NovaTerm, etc will work – they don’t know the
difference
• You can even host a classic Bulletin Board System for incoming calls, in theory
• Bandwidth is limited to 2400 bits per second (or maybe 9600 or higher with non-standard
hacks)
• Examples: Retro Rewind WiFi Modem, WiC64, ZiModem, Stupid PET Tricks, many others
Expansion Port Interfaces
• Connects to the C64/128 Expansion Port aka “Cartridge Port”
(or VIC20 with appropriate adaptor)
• TCP/IP Stack resides on the machine – requires a lot of RAM and resources
• Special software is required – usually written specifically for the interface
• Bandwidth is blazingly fast, 10 Mbps (fill the C64 memory in 0.0524 seconds)
• Examples: The Final Ethernet, RR-Net, 64NIC+, FB-Net
• All based on the CS8900 chip and compatible with each other
• Despite the limitations, has been the “de facto” Ethenet standard for
Commodores for years
Proprietary Interfaces: Ultimate 64 and MEGA65
• These are both hardware re-implementations of the original machines with an FPGA
(Field Programmable Gate Array) and Ethernet ports added
• TCP/IP Stack resides inside the FGPA, but outside the 8-bit memory space – saves a lot of memory
• Special software is required – usually written specifically for the interface
• C libraries are available to do (most of) the dirty work
• Not compatible with the RR-Net, or each other
• Bandwidth is very fast, 10 Mbps, but not memory-mapped so throughput is reduced
• FujiNet is a multi-peripheral emulator and WiFi network device for vintage computers.
• The first completed hardware was for Atari 8-Bit computers and development has begun for other systems with the goal of
supporting as many as possible.
• FujiNet allows vintage computers that do not have enough processing power to handle TCP/IP connections talk to the modern
internet over Wifi.
• Many example programs have been created: Card games, strategy games, PLATOTERM client, news readers, ISS Tracker, more!
• These example programs are available on GitHub under the GNU Public License so encourage you to build your own
To Learn More: https://fujinet.online/
Atari 8-Bit Apple II
“FujiApple”
Coleco ADAM Commodore
“Meatloaf”
IEC Interfaces: Meatloaf
• Based on the common ESP32 system-on-a-chip microcontroller
(Lolin D32 Pro)
• You can build one yourself with under $20 in parts
• Connects to the IEC (Serial Bus) port
• Pretends to be one of more virtual floppy drives
• Usable on any machine with an IEC Port: VIC20, C64, C128, Plus/4, etc.
• No special drivers or software required: It uses standard KERNAL calls and standard LOAD command
• You can program it in BASIC! OPEN 15,8,15,”HTTP://EXAMPLE.COM/API/DATA.JSON”
• Can access and download any files: D64, PRG, but also HTML and JSON
• Built-in JSON parser
• Bandwidth is limited by IEC Bus: ~400 bytes/second
Jaime Idolpx will be talking about the Meatloaf project in detail with more updates at 2 PM!
…Tracking the International Space Station
• Demo applications developed by Thomas Cherryhomes
for the FujiNet project, including Commodore versions
• Meatloaf has everything we need!
• IEC Interface
• TCP/IP Stack
• HTTP(S) Interface
• JSON Parser
• NASA provides an JSON API with the ISS current location
Tracking the ISS on an Unexpanded VIC-20
• Since the TCP/IP stack, HTTP interface, and JSON parser reside on the Meatloaf, this can even be
done on an unexpanded VIC-20 from 1980 with 5K of RAM
• Application runs as a cartridge ROM image, program size ~2,791 bytes
• Remaining RAM on the VIC used for temporary variables
• The application polls the JSON API, updates the PETSCII screen and ISS position every 10 seconds
Credit: Thomas Cherryhomes
Tracking the ISS on an Ultimate 64
• The Ultimate 64 is a modern, FPGA-based, implementation of a C64
• Can be overclocked to 48MHz
• U64 has its own proprietary but well-documented
Ethernet interface with TCP and UDP
• Ported the FujiNet version to the Ultimate 64:
• Adapted to use Scott Hutter’s Ultimate 64 Library
• Implemented a crude HTTP interface in C to “GET” the JSON files
• Implemented a crude JSON parser in C that pulls the data from the
received data object
• The application polls the JSON API, updates the screen and ISS position (sprite) every 10 seconds
• Code is freely available on GitHub
Map Credit: Thomas Cherryhomes
Some other cool JSON APIs
• Weather, News, etc.
• Stock Prices! (Many APIs out there, some free)
• Cheerlights Xmas Lights! http://cheerlights.com/api/
• Realtime Earthquake Notification! http://earthquake.usgs.gov/fdsnws/event/1/queryformat=geojson
• Chuck Norris Facts! http://api.chucknorris.io/
• Geolocation (track your computer’s location)! http://ip-api.com/docs/api:json
• International Space Station Location! http://api.open-notify.org/iss-now
• …thousands more!
Fun JSON uses on your Commodore?
• News/weather apps?
• Shared high-score tables for new games?
• News and notifications of new releases of demos and games, with the ability to directly
download or run them?
• List of current players of games – ie a lobby for online games?
• Dynamically grab game updates, maps, new content “on the fly”?
• Patches and upgrades, new libraries and content for systems like 64OS?
• …Your idea here!
Discussion

More Related Content

Similar to Tracking the International Space Station with Commodore Computers

How the internet works
How the internet worksHow the internet works
How the internet worksftcim
 
Web Services for the Internet of Things
Web Services for the Internet of ThingsWeb Services for the Internet of Things
Web Services for the Internet of ThingsMarkku Laine
 
Contiki IoT simulation
Contiki IoT simulationContiki IoT simulation
Contiki IoT simulationnabati
 
Parallel Rendering of Webpages
Parallel Rendering of WebpagesParallel Rendering of Webpages
Parallel Rendering of WebpagesLangtech
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Benjamin Cabé
 
Moore’s law change drives OS change
Moore’s law change drives OS changeMoore’s law change drives OS change
Moore’s law change drives OS changeSyed Zaid Irshad
 
Kordik fundamental guidtoindustrialnetworking -v_imp
Kordik fundamental guidtoindustrialnetworking -v_impKordik fundamental guidtoindustrialnetworking -v_imp
Kordik fundamental guidtoindustrialnetworking -v_impamsubramanyam
 
History of Internet and advantages of internet
History of Internet and advantages of internetHistory of Internet and advantages of internet
History of Internet and advantages of internetTallat Satti
 
Smalltalk XXL
Smalltalk XXLSmalltalk XXL
Smalltalk XXLESUG
 
ch4-Software is Everywhere
ch4-Software is Everywherech4-Software is Everywhere
ch4-Software is Everywheressuser06ea42
 
From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...P. Taylor Goetz
 
Internet of Things 101 - Part II
Internet of Things 101 - Part IIInternet of Things 101 - Part II
Internet of Things 101 - Part IIYoonseok Hur
 
Network protocols and Java programming
Network protocols and Java programmingNetwork protocols and Java programming
Network protocols and Java programmingdifatta
 
IT Book of Knowledge
IT Book of KnowledgeIT Book of Knowledge
IT Book of KnowledgePhil Primeau
 
Windows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardwareWindows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardwareyeokm1
 
Understanding computer networks
Understanding computer networksUnderstanding computer networks
Understanding computer networksUC San Diego
 

Similar to Tracking the International Space Station with Commodore Computers (20)

How the internet works
How the internet worksHow the internet works
How the internet works
 
Web Services for the Internet of Things
Web Services for the Internet of ThingsWeb Services for the Internet of Things
Web Services for the Internet of Things
 
Contiki IoT simulation
Contiki IoT simulationContiki IoT simulation
Contiki IoT simulation
 
Parallel Rendering of Webpages
Parallel Rendering of WebpagesParallel Rendering of Webpages
Parallel Rendering of Webpages
 
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
Using Eclipse and Lua for the Internet of Things - EclipseDay Googleplex 2012
 
Moore’s law change drives OS change
Moore’s law change drives OS changeMoore’s law change drives OS change
Moore’s law change drives OS change
 
Web technology
Web technologyWeb technology
Web technology
 
Introduction to Raspberry PI
Introduction to Raspberry PIIntroduction to Raspberry PI
Introduction to Raspberry PI
 
21PSP13
21PSP1321PSP13
21PSP13
 
Kordik fundamental guidtoindustrialnetworking -v_imp
Kordik fundamental guidtoindustrialnetworking -v_impKordik fundamental guidtoindustrialnetworking -v_imp
Kordik fundamental guidtoindustrialnetworking -v_imp
 
History of Internet and advantages of internet
History of Internet and advantages of internetHistory of Internet and advantages of internet
History of Internet and advantages of internet
 
Smalltalk XXL
Smalltalk XXLSmalltalk XXL
Smalltalk XXL
 
ch4-Software is Everywhere
ch4-Software is Everywherech4-Software is Everywhere
ch4-Software is Everywhere
 
From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...From Device to Data Center to Insights: Architectural Considerations for the ...
From Device to Data Center to Insights: Architectural Considerations for the ...
 
Internet of Things 101 - Part II
Internet of Things 101 - Part IIInternet of Things 101 - Part II
Internet of Things 101 - Part II
 
Network protocols and Java programming
Network protocols and Java programmingNetwork protocols and Java programming
Network protocols and Java programming
 
IoT: An introduction
IoT: An introductionIoT: An introduction
IoT: An introduction
 
IT Book of Knowledge
IT Book of KnowledgeIT Book of Knowledge
IT Book of Knowledge
 
Windows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardwareWindows 3.1 (WFW) on vintage and modern hardware
Windows 3.1 (WFW) on vintage and modern hardware
 
Understanding computer networks
Understanding computer networksUnderstanding computer networks
Understanding computer networks
 

More from Leif Bloomquist

Multiplayer Roguelike for the Commodore 64
Multiplayer Roguelike for the Commodore 64Multiplayer Roguelike for the Commodore 64
Multiplayer Roguelike for the Commodore 64Leif Bloomquist
 
Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64Leif Bloomquist
 
VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)Leif Bloomquist
 
Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64Leif Bloomquist
 
More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)Leif Bloomquist
 
Marc Garneau Collegiate Institute
Marc Garneau Collegiate InstituteMarc Garneau Collegiate Institute
Marc Garneau Collegiate InstituteLeif Bloomquist
 
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")Leif Bloomquist
 
Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64Leif Bloomquist
 
New Commodore 64 Network Game Developments
New Commodore 64 Network Game DevelopmentsNew Commodore 64 Network Game Developments
New Commodore 64 Network Game DevelopmentsLeif Bloomquist
 
Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)Leif Bloomquist
 
Software Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustrySoftware Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustryLeif Bloomquist
 
Real-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETsReal-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETsLeif Bloomquist
 
Commodore 64 Telnet BBS Server
Commodore 64 Telnet BBS ServerCommodore 64 Telnet BBS Server
Commodore 64 Telnet BBS ServerLeif Bloomquist
 
World of Commodore 2009 Posters
World of Commodore 2009 PostersWorld of Commodore 2009 Posters
World of Commodore 2009 PostersLeif Bloomquist
 
Retrocomputers as Hacking Platforms
Retrocomputers as Hacking PlatformsRetrocomputers as Hacking Platforms
Retrocomputers as Hacking PlatformsLeif Bloomquist
 
NetRacer for the Commodore 64
NetRacer for the Commodore 64NetRacer for the Commodore 64
NetRacer for the Commodore 64Leif Bloomquist
 

More from Leif Bloomquist (20)

Multiplayer Roguelike for the Commodore 64
Multiplayer Roguelike for the Commodore 64Multiplayer Roguelike for the Commodore 64
Multiplayer Roguelike for the Commodore 64
 
Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64Multiplayer RogueLike Game for the Commodore 64
Multiplayer RogueLike Game for the Commodore 64
 
Audible Objects
Audible ObjectsAudible Objects
Audible Objects
 
VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)VIC MIDI (World of Commodore 2015)
VIC MIDI (World of Commodore 2015)
 
Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64Wi-Fi Modem For the Commodore 64
Wi-Fi Modem For the Commodore 64
 
More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)More Mad Science for the Commodore 64 (ECCC 2015)
More Mad Science for the Commodore 64 (ECCC 2015)
 
Marc Garneau Collegiate Institute
Marc Garneau Collegiate InstituteMarc Garneau Collegiate Institute
Marc Garneau Collegiate Institute
 
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
MIDI Mad Science and Mayhem (Soundhackers #5 "Controller Crazy")
 
Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64Motion-Sensing Gaming Glove for the Commodore 64
Motion-Sensing Gaming Glove for the Commodore 64
 
New Commodore 64 Network Game Developments
New Commodore 64 Network Game DevelopmentsNew Commodore 64 Network Game Developments
New Commodore 64 Network Game Developments
 
Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)Wifi For the Commodore 64 (ECCC 2013)
Wifi For the Commodore 64 (ECCC 2013)
 
Software Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace IndustrySoftware Requirements and Design Process in the Aerospace Industry
Software Requirements and Design Process in the Aerospace Industry
 
CANADA IN SPACE
CANADA IN SPACECANADA IN SPACE
CANADA IN SPACE
 
TCP/IP For Engineers
TCP/IP For EngineersTCP/IP For Engineers
TCP/IP For Engineers
 
Real-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETsReal-Time Clock for Commodore PETs
Real-Time Clock for Commodore PETs
 
Commodore 64 Telnet BBS Server
Commodore 64 Telnet BBS ServerCommodore 64 Telnet BBS Server
Commodore 64 Telnet BBS Server
 
Artillery Duel Network
Artillery Duel NetworkArtillery Duel Network
Artillery Duel Network
 
World of Commodore 2009 Posters
World of Commodore 2009 PostersWorld of Commodore 2009 Posters
World of Commodore 2009 Posters
 
Retrocomputers as Hacking Platforms
Retrocomputers as Hacking PlatformsRetrocomputers as Hacking Platforms
Retrocomputers as Hacking Platforms
 
NetRacer for the Commodore 64
NetRacer for the Commodore 64NetRacer for the Commodore 64
NetRacer for the Commodore 64
 

Recently uploaded

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 

Recently uploaded (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 

Tracking the International Space Station with Commodore Computers

  • 1. Tracking the International Space Station with Commodore Computers (and other fun networking applications, devices, and more) Leif Bloomquist World of Commodore 2023
  • 2. What’s Coming Up • History • Networking 101 • Summary of networking interfaces for Commodore computers • The FujiNet Project, Meatloaf, and the ISS Tracker demo application • Porting the ISS Tracker to the Ultimate 64 • What next?
  • 3. Credits! • Thomas Cherryhomes: FujiNet Project, developed many demo applications, including original ISS Tracker for VIC-20 and C64 • Jaime Idolpx: Meatloaf IEC Wi-Fi interface, code and tons of support • Scott Hutter: Networking Library for the Ultimate 64
  • 4. First, a bit of history… 1986 Won a C64 in a raffle draw 1984 Bought a VIC-20 with paper route money 2008-2009 Lead Developer on SSRMS (Canadarm 2) Control GUI on the ISS A bunch of stuff happens More stuff happens 2020-2022 Project Engineer for Canada’s ISS Logistics and Sustaining Engineering Data Archival/Analysis Team 2022-Present Product Manager for Canadarm 3 (Lunar Gateway) Mission Planning Tools Development I stopped writing code at work around here
  • 5. Why Connect Commodores to the Internet??? • Commodore users had rich online experiences from early on: QuantumLink, Bulletin Board Systems, etc. Lots of nostalgia • Commodore gaming has always had a strong social aspect. Bringing it online adds a new dimension • Incorporating Internet capability on an 8-bit computer is a fun technical challenge. We can leverage Arduino and Internet of Things • It appeals to the Japanese philosophy of Chindogu, the whimsical idea of the “unuseless invention”
  • 6. Networking 101 – the TCP/IP “Stack” Credit: t-suarez, DEV Community
  • 7. Ethernet Ethernet (and Wireless Ethernet, Wi-Fi) have become the de facto standard for commercial “link layer” - the actual connection between computers on a network. It specifies the cables, frequencies, etc at the lowest level. Fun fact! Commodore had their own Ethernet Organizational Unique Identifier 00:80:10 • Same ID as their early acoustic coupler/modem, coincidence? • If you set your computers to use this Ethernet address prefix they will show up as Commodore devices in modern network analysis tools  Photo Credit: David Bradley
  • 8. IP (Internet Protocol) • The Internet Protocol is the next layer up, which provides addressing information (source address, destination address, etc) and basic information about the type of data • It doesn’t do much on its own – other protocols like TCP and UDP (next slides) are used to actually carry data
  • 9. UDP (User Datagram Protocol) • UDP is one of the simplest methods for sending data over the Internet • It’s “fire and forget” – you collect your data into a small bundle (called a “packet”) and send it across the Internet with a destination address attached • Routers and modems along the way do their best to get the packets to their destination, in the right order, but there are no guarantees • Analogy: Postcard • Ideal for real-time games, and quite manageable by 8-bit machines with the right hardware
  • 10. TCP (Transport Control Protocol) • Unlike UDP, TCP provides a “reliable” connection and ensures your data gets through • You collect your data into a “stream” and TCP handles the rest • The protocol creates a connection, acknowledges that the data got through in the correct order, and tries again if needed. Continues streaming data until either end “hangs up”. • Analogy: Phone Call • Ideal for (ie) strategy games, applications where the data must get through i.e. Email, chat apps like WhatsApp, Web browsing • Manageable by 8-bit machines with the right hardware, but requires significantly more resources and memory
  • 11. HTTP (Hypertext Transfer Protocol) “HTTP (Hypertext Transfer Protocol) is the set of rules for transferring files -- such as text, images, sound, video and other multimedia files -- over the web.” – TechTarget.com • HTTP (and its secure encrypted big brother, HTTPS) are the “language of the web” • Built “on top of” TCP • Every web page you visit, file you download, video you watch…involves HTTP(S) in some way. • Once you have access to HTTP on a Commodore, many cool possibilities open up! • Simple web browsing • Download files (PRG files or D64 disk images can be loaded directly from the web) • Access to JSON files
  • 12. JSON (JavaScript Object Notation) “An open standard file format and data interchange format that uses human-readable text to store and transmit data objects” - Wikipedia • Derived from JavaScript, but now supported by most modern programming languages • Relatively easy for humans and computers to understand (even our beloved 8-bits, with a bit of work) • This data can often be dynamic for getting real-time information • The public interface is called an API – Application Programming Interface. (Usually over HTTP) More on JSON Later! ISS Live Location JSON API http://api.open-notify.org/iss-now
  • 13. More history! • In 2002, Adam Dunkels unveils “The Final Ethernet” cartridge (a riff on “The Final Cartridge”) • A fully functional design of an Ethernet cartridge interface for the Commodore 64 • The uIP “micro” TCPIP/IP stack that runs in very limited memory (like the C64) • Contiki OS with many example applications: Web browser, Web server, Telnet client, audio streaming… • The era of the Internet-Enabled Commodore 64 begins! Photo credits: Adam Dunkels
  • 14. My Networked Commodore 64 Games Free Downloads at https://schema64.itch.io/ Artillery Duel NET NetRacer Vortex Dungeon of the Rogue Daemon
  • 15. A Plethora of Networking Options! Expansion Port The Final Ethernet RR-Net 64NIC+ User Port WiFi Modem WiC64 ZiModem etc. IEC (Serial) Port Meatloaf
  • 17. User Port “Modems” • Connect to the User Port • Pretends to be an old-skool dialup modem (“ATDT….”) • Usable on any machine with a User Port: VIC20, C64, C128, PET (with modified wiring) • All your old terminal software like CCGMS, NovaTerm, etc will work – they don’t know the difference • You can even host a classic Bulletin Board System for incoming calls, in theory • Bandwidth is limited to 2400 bits per second (or maybe 9600 or higher with non-standard hacks) • Examples: Retro Rewind WiFi Modem, WiC64, ZiModem, Stupid PET Tricks, many others
  • 18. Expansion Port Interfaces • Connects to the C64/128 Expansion Port aka “Cartridge Port” (or VIC20 with appropriate adaptor) • TCP/IP Stack resides on the machine – requires a lot of RAM and resources • Special software is required – usually written specifically for the interface • Bandwidth is blazingly fast, 10 Mbps (fill the C64 memory in 0.0524 seconds) • Examples: The Final Ethernet, RR-Net, 64NIC+, FB-Net • All based on the CS8900 chip and compatible with each other • Despite the limitations, has been the “de facto” Ethenet standard for Commodores for years
  • 19. Proprietary Interfaces: Ultimate 64 and MEGA65 • These are both hardware re-implementations of the original machines with an FPGA (Field Programmable Gate Array) and Ethernet ports added • TCP/IP Stack resides inside the FGPA, but outside the 8-bit memory space – saves a lot of memory • Special software is required – usually written specifically for the interface • C libraries are available to do (most of) the dirty work • Not compatible with the RR-Net, or each other • Bandwidth is very fast, 10 Mbps, but not memory-mapped so throughput is reduced
  • 20. • FujiNet is a multi-peripheral emulator and WiFi network device for vintage computers. • The first completed hardware was for Atari 8-Bit computers and development has begun for other systems with the goal of supporting as many as possible. • FujiNet allows vintage computers that do not have enough processing power to handle TCP/IP connections talk to the modern internet over Wifi. • Many example programs have been created: Card games, strategy games, PLATOTERM client, news readers, ISS Tracker, more! • These example programs are available on GitHub under the GNU Public License so encourage you to build your own To Learn More: https://fujinet.online/ Atari 8-Bit Apple II “FujiApple” Coleco ADAM Commodore “Meatloaf”
  • 21. IEC Interfaces: Meatloaf • Based on the common ESP32 system-on-a-chip microcontroller (Lolin D32 Pro) • You can build one yourself with under $20 in parts • Connects to the IEC (Serial Bus) port • Pretends to be one of more virtual floppy drives • Usable on any machine with an IEC Port: VIC20, C64, C128, Plus/4, etc. • No special drivers or software required: It uses standard KERNAL calls and standard LOAD command • You can program it in BASIC! OPEN 15,8,15,”HTTP://EXAMPLE.COM/API/DATA.JSON” • Can access and download any files: D64, PRG, but also HTML and JSON • Built-in JSON parser • Bandwidth is limited by IEC Bus: ~400 bytes/second Jaime Idolpx will be talking about the Meatloaf project in detail with more updates at 2 PM!
  • 22. …Tracking the International Space Station • Demo applications developed by Thomas Cherryhomes for the FujiNet project, including Commodore versions • Meatloaf has everything we need! • IEC Interface • TCP/IP Stack • HTTP(S) Interface • JSON Parser • NASA provides an JSON API with the ISS current location
  • 23. Tracking the ISS on an Unexpanded VIC-20 • Since the TCP/IP stack, HTTP interface, and JSON parser reside on the Meatloaf, this can even be done on an unexpanded VIC-20 from 1980 with 5K of RAM • Application runs as a cartridge ROM image, program size ~2,791 bytes • Remaining RAM on the VIC used for temporary variables • The application polls the JSON API, updates the PETSCII screen and ISS position every 10 seconds Credit: Thomas Cherryhomes
  • 24. Tracking the ISS on an Ultimate 64 • The Ultimate 64 is a modern, FPGA-based, implementation of a C64 • Can be overclocked to 48MHz • U64 has its own proprietary but well-documented Ethernet interface with TCP and UDP • Ported the FujiNet version to the Ultimate 64: • Adapted to use Scott Hutter’s Ultimate 64 Library • Implemented a crude HTTP interface in C to “GET” the JSON files • Implemented a crude JSON parser in C that pulls the data from the received data object • The application polls the JSON API, updates the screen and ISS position (sprite) every 10 seconds • Code is freely available on GitHub Map Credit: Thomas Cherryhomes
  • 25. Some other cool JSON APIs • Weather, News, etc. • Stock Prices! (Many APIs out there, some free) • Cheerlights Xmas Lights! http://cheerlights.com/api/ • Realtime Earthquake Notification! http://earthquake.usgs.gov/fdsnws/event/1/queryformat=geojson • Chuck Norris Facts! http://api.chucknorris.io/ • Geolocation (track your computer’s location)! http://ip-api.com/docs/api:json • International Space Station Location! http://api.open-notify.org/iss-now • …thousands more!
  • 26. Fun JSON uses on your Commodore? • News/weather apps? • Shared high-score tables for new games? • News and notifications of new releases of demos and games, with the ability to directly download or run them? • List of current players of games – ie a lobby for online games? • Dynamically grab game updates, maps, new content “on the fly”? • Patches and upgrades, new libraries and content for systems like 64OS? • …Your idea here!