SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
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

Más contenido relacionado

Similar a 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 a 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
 

Más de 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
 

Más de 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
 

Último

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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!