Getting Started
Adafruit Playground is a wonderful and safe place to share your interests with Adafruit's vibrant community of makers and doers. Have a cool project you are working on? Have a bit of code that you think others will find useful? Want to show off your electronics workbench? You have come to the right place.
The goal of Adafruit Playground is to make it as simple as possible to share your work. On the Adafruit Playground users can create Notes. A note is a single-page space where you can document your topic using Adafruit's easy-to-use editor. Notes are like Guides on the Adafruit Learning System but guides are high-fidelity content curated and maintained by Adafuit. Notes are whatever you want them to be. Have fun and be kind.
Click here to learn more about Adafruit Playground and how to get started.
-
Pinned by AnneBarela
Setting Up an LLM Model on Your Own Computer
Many of us have been there: working with Claude, ChatGPT, Copilot, etc. and BOOM, the token allowance runs out and you have to wait a few hours for it to reset. All you want to do is finish your project.
Well, you are on your personal computer which can compute things. Perhaps your machine can even play some fairly recent games? If so, you have free compute right at your fingertips.
Some of the AI models used by the big companies are available for free. This is true. The trouble is knowing which model to get, where to get it, what to run it with and how to tune the model to your machine. If this sounds complicated, it's less complicated than installing current games and likely takes up less space. But you'll want to follow this guide for some tips on how to do this.
There are many models and many ways to run them. I'll show you some of what I have done as an example for you to do similar.
-
Using ESP-Claw with a Local LLM
ESP-Claw is a new tiny AI device for Espressif microcontroller-based boards. Supported boards must have at least 8MB Flash and 8MB PSRAM to run ESP-Claw.
ESP-Claw devices require a connection to the real world. This includes:
- WiFi (local) for communications
- A Large Language Model (LLM) for reasoning (OpenAI, Anthropic, DeepSeek or local)
- (Optional) A connection to Telegram for communication (there is now a crude web interface if Telegram is not desired)
- (Optional) A connection key to search engines Brave Search or Tavily (both services have fees)
I have tested ESP-Claw with a Claude API key. While some folks have it working, I found, at the lowest API access paid level, ESP-Claw could exceed tokens per second limits. And I don't want to put $100 on Anthropic's books to get that squared away.
HTTP 429: This request would exceed your organization's rate limit of 30,000 input tokens per minute (org: fb68d6db-0824-4998-b920-fe36549c9cae, model: claude-sonnet-4-6). For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later.
Using a Local Model Instead
I had set up my local computer to run an LLM per the guide Setting up an LLM model on your own computer. It can generate up to 40 tokens per second which is decent but not using crazy hardware.
I wanted to use this local LLM over my home network to connect to my ESP-Claws (yes, I have four 'Claws).
The latest builds of the flasher software allow for a local connection to an LLM model with OpenAI, Qwen, Deepseek or Anthropic calling conventions. It took me a bit of time, but I found the right combination of settings to get things working. This is what I'll share below.
-
RP2350B VGA with CircuitPython
I've been wanting to output video from my microcontroller projects for ages. But I didn't want to jump through obscure hoops and I really wanted multiple video outputs on one board.
Well, the Adafruit Metro RP2350 has a Raspberry Pi RP2350B microcontroller with lots of pins, memory and programmable PIO state machines.
There isn't a great deal on VGA video for the RP2350, only on the RP2040. And certainly no other code for using CircuitPython + PIO. So hopefully this may help some folks.
Here is my work just on VGA. Certain design decisions were made which might be changed by others. Yes I vibe coded it as I don't really know PIO syntax.
MIT License Copyright (c) 2026 Anne Barela
-
A mini-IBM PC Using an Adafruit Fruit Jam
My affinity for IBM PCs, starting with the first IBM PC 5150 is fairly well known in Maker circles. I have had several PCs now over the last few years but had pared back to one PC 5150, one XT 5160 and one AT 5170. Now that has changed, as I have a new PC, which I built. This one is considerably smaller than the others, and so much lighter in weight (it is definitely not a boat anchor).
I present my mini-IBM PC. It bears a striking resemblance to its big sister (background, to the right below), thanks to 3D printing. And the code emulates a PC up to a 386 class machine. I'll show you the details in this guide.
This build has some modular features, so you do not have to build all of the pieces shown. Possible builds:
- With all the features shown including the base system and monitor.
- Just the base system, use your own monitor.
- Optional parts of the base system include the LEDs on the front, the IBM joystick adapter and even the on/off button on the side if you wish.
- Use any USB keyboard you like.
You can start with the base system and build it up how you wish.
The project is open source under an MIT License.
Parts
-
Unboxing a 10 year old Home Theater PC
As an avid personal computer (PC) enthusiast, I was quick to adopt the idea of using a computer to serve multimedia content to a large TV for family use over 12 years ago. There were no Apple TV or Mac Mini boxes back then. The idea was to have a PC with multimedia hardware and emulate what a smart TV might provide you now.
Companies had hoped consumers would adopt multimedia PCs for their entertainment centers for awhile. Back in 1998, Gateway introduced the Destination, combining a 27" (tube) television with a Celeron PC for $2000. A higher end unit had a 36" TV with a Pentium II for $4999.
With Windows XP in 2002, Microsoft decided to embrace the multimedia aspects of their operating system. Extensions called the Windows Media Center provided a "10-foot interface" common to today's smart TV users. This worked best with a TV capture card and a computer outputting decent graphics and sound. It had limited success, available for Windows 7 and 8 also, but not popular enough to be kept in Windows 10.
Concepts
Here were ideas for a good multimedia PC of the era (12 to 14 years ago):
- A decent CPU (dual core or better) but one that ran cool so noisy fans could be mimimized.
- A good amount of RAM for Windows Media Center
- A motherboard with several PCI slots
- A mid to middle high end graphics card. Too slow it wouldn't output fast enough, too fast and the heat would require lots of fans. Passively cooled is optimal. Output in HDMI was high end, VGA and DVI was ok.
- A TV capture and tuining card
- A DVD player. A DVD recorder is better, Blu-Ray is a bonus
- Premium sound card
- Fast storage. SSDs were kind of new but one at least for boot and short term storage is great.
- Firewire for video camera capture is a bonus
- Fast networking to a home server for long term storage. Alternatively a fast hard drive.
- An infrared or RF keyboard with integrated trackpad or trackball
- A Windows Media Center remote control
- A front display, LCD or VFD, is a bonus
- SD card reader
- A horizontal cabinet to blend in to the home theater
-
Using the Fruit Jam Intel 286 Emulator
The new 286 PC Emulator for Fruit Jam provides many interesting possibilities and a lot of fun.
This Playground Note will provide information that may not be evident or may otherwise help others.
Initial Impressions
Having wide emulation through the 80286 is helpful, through it wasn't until the '386 that memory handling got better.
I was really excited about all the display modes. But trying to get to them in DOS or QBASIC was impossible. Maybe they'll work in games but I'd like a high resolution DOS screen too.
-
Fruit Jam Tips and Tricks
This Note is to document some tips and tricks on using the Adafruit Fruit Jam and the
adafruit_fruitjamlibrary.Determining what board you're running on
Some code will run both on Fruit Jam and another RP2350B board. The need is to determine which platform one is using. This is handy, for example, in determining if the TLV320 on the Fruit Jam is available. Another method could be to do an I2C scan and look for a TLV320. But the method below is a bit more straightforward in finding out if the board is a Fruit Jam or not.
-
Using the Terminal and displayio for DVI in CircuitPython
See the new guide Using DVI Video in CircuitPython which supersedes this Playground Note. Same author, greatly expanded content.
-
Serial Debug on RP2350 Boards
Recently I wanted to do some debugging of an emulator for a RP2350 board using the Pico SDK.
Using the USB for serial wasn't an option as my project uses TinyUSB for USB Host and there is an assert that aborts when TinyUSB Host is used and USB serial debug is set.
Looking at the Raspberry Pi SDK, I did some searching and looked to set up a secondary UART (uart1).
Note I did not have a Raspberry Pi Debug Probe so I'm using an FTDI Friend to get the signal level serial to USB to my computer, where I use a terminal program to see the serial output.
Setup
I looked at the pins I had free. I had D8 and D9 which are valid pins for UART2 via a table similar to the one below (source - https://electrocredible.com/raspberry-pi-pico-serial-uart-micropython/):
-
Anne Barela
Anne has been authoring guides for Adafruit since September, 2013. She joined Adafruit full time in April, 2018.
Anne is an electrical engineer and has previous experience at NASA/JPL, Boeing, and a 30 year career as a Security Engineering Officer with the US Department of State, retiring as a Senior Foreign Service Officer.
Anne's always had a special interest in digital circuitry, with experimentation in high school with parts from Radio Shack. Today she has a personal interest in vintage computing, especially early IBM and Compaq PCs. This includes interfacing with original equipment and emulation. You can read about this work on her blog 21stdigitalhome.blogspot.com.
Anne has authored two books on Adafruit boards via Make. Getting Started with Adafruit Trinket and Getting Started with Adafruit Circuit Playground Express. Amazon
Anne now lives in Chicago after leaving the Florida Space Coast. She's married to Amy Lendian, a Systems Engineering Consultant at Kennedy Space Center. They have numerous children, grandchildren and two great grandchildren. And they also have a dog named Bowie.
-
Getting Started with the Pocket 386
The Pocket 386 is the latest tiny retro PC to be available from China, joining the Book8086 and the Hand 386. I have read that the Hand 386 was discontinued due to part shortages.
The unit is small, but calling it something that fits in a pocket is stretching it.
Resources
The following resources are available online as of the time this Note was written:
8086cpu.com:
- Main Page
- 8086 Store on AliExpress
- User's Guide (PDF version 1.0)
- Schematic (PDF version 1.2)
- ISA Expansion Card and Cable
AliExpress:
- DZT's Store - where this line usually shows up first.
- ISA Expansion card and cable
Third party sites:
- Thread on Vogons - Pocket 386, the brother of Hand386 and Book8088, the story so far
- Thread from Foone - Mastodon
- Thread from Vintage Computer Federation (VCF)
Hacking:
- Reverse engineered LCD OSD/S-OSD control protocol
- RTC problem: the fix is to remove R38 next to the M6117D. The schematics say this component shouldn't be installed (NC), but they installed it anyway!
Resources:
Hardware:
- Datasheet for the Ali M6117 CPU chip
- POST codes for the Ali M6117
-
A PyDOS Handheld
I was looking to try out my new Adafruit Feather RP2350 and I remembered I had the Solder Party Keyboard Featherwing.
The Keyboard Featherwing is a handy device: it is about the same size as a BlackBerry phone with the same alphanumeric keyboard and a 2.6" 320x240 color display. Plug in a Feather board as the "brains" and you have a portable system.
Alas, one has to program the Feather, preferably with CircuitPython, to use the keyboard, display, and other features. Solder Party has example code snippets for those features. But what about something more holistic, more like a computer with input and output?
I found two solutions that were perfect: PyDOS and Beryllium OS. Both are built on top of CircuitPython.
PyDOS emulates MS-DOS commands used on PC compatible computers. And Beryllium OS, formerly ljinux, acts as a Linux-like computer. Neither are binary compatible (they cannot run native DOS or Linux binaries) but their commands and interactions emulate those operating systems.
This Playground Note will show you how I built my PyDOS handheld in short order.
There are two videos, one from Adafruit Show and Tell and another for Tom's Hardware The PiCast.
Preparing the Feather
Solder male pin headers onto the Feather RP2350. You could use long pin stacking headers to add a FeatherWing, but that would create quite a stack on the back.
See this guide page for soldering details:
-
Using a Motorola Atrix Dock with a Raspberry Pi Computer 2024 Version
Rock an Old Atrix Screen/Keyboard/Trackpad Dock Like It's 2012
Back in 2012, folks were getting their first Raspberry Pi single board computers. They initially used a monitor or television, a USB keyboard and a USB mouse, most often items they might of had around the house. This worked fine but it was far from portable. Folks wanted something a bit more laptop-like to develop on the go.
Enter surplus Motorola gear. Motorola made the Atrix line of cell/mobile phones they marketed as dual use as portable phone and computer. To make it a computer, you used a dock which looked like a laptop but had no processor, only USB and HDMI connections. Such docks were being sold wholesale at $60 each.
Folks used a combination of Far Eastern cables and adapters to connect the micro connections on the dock to the full size connectors on the Pi. As you can see below, two adapters and three cables were used. Some guides talked about splicing cables. Here is one guide from Instructables.
The setup worked faily well. Most often the adapters to the Atrix were too big, so some filing of the plastic was needed to get the cables to go on without interferring with each other. It was a slick setup but it could be fragile.
Over time, most folks moved on from using this solution as the Atrix dock supply dried up and new Pi models came along.
The 2024 Atrix Solution
I got my Atrix Dock out to use with a Pi 5 for Adafruit's Show and Tell. Things had changed since the Pi 1 when now using a Pi 5. The one full size HDMI connector is now a pairt of microHDMI connectors. There are more USB ports on the Pi 5.
I wanted a solution with no adapters and no trimming of the plug housings. I went on to Amazon (US) and through brute force (Amazon search is not the most robust) found the following cables:
-
MS-DOS Disk Images
Finding Disk Images on the Internet
Bootable Disks / Operating System Disk Images
Generally it is best to make your own bootable operating system disks from media you own. Or obtain them from a company that has released them into the public domain.
FreeDOS is an open source DOS-compatible operating system that you can use to play classic DOS games, run legacy business software, or develop embedded systems. Any program that works on MS-DOS should also run on FreeDOS.
MS-DOS was released by Microsoft. PC-DOS was IBM's version of MS-DOS. Note they can be different from each other. Other companies also released versions of MS-DOS licensed from Microsoft, most notably Compaq. See Wikipedia: MS-DOS. There was a competitor to MS-DOS, DR-DOS, starting in 1988 Wikipedia). Wikipedia also has a comparison of DOS operating systems as a good reference (Wikipedia). And also a timeline of DOS operating systems (Wikipedia).
A general source for operating system and application software is the Internet Archive, which has thousands of programs. Be sure to save software either in a disk image format or you may have to copy it over to a disk image (an extra, sometimes not easy, step).
Obtaining MS-DOS Disk Images
MS-DOS versions 1.25 and 2.11 have been released by Microsoft as open source under an MIT license. FreeDOS is also an open source GPL license. Other versions of DOS likely have copyright. If one has a disk image, one should have a license, usually physical media like floppy disks or a CD-ROM.
Images are being hosted on the internet, of course. It is up to the reader to do their homework as to the licensing of software they wish to obtain.
Websites with MS-DOS operating system disk images:
- A site that has MS-DOS 3 to 6: https://www.allbootdisks.com/download/dos.html (tested ok)
- A site which has DOS 1 to 7.1: https://winworldpc.com/product/ms-dos/1x (untested)
As with all software download sites, use a good antivirus / antimalware suite. For example, bootdisk.com claims they have boot disk images but they are flagged for malware by some software.
Locations to Obtain Application Disk Images
Throughout the history of MS-DOS systems, there have been numerous software licensing models. Some free, some shareware / donationware, and various commercial models. As companies went out of business, many packages became abandonware.
The licensing of non-free software is a complex subject. To that end, there are places to get disk images of vintage software.
- The Internet Archive
- https://www.goodolddays.net/diskimages/ (untested)
Information About Floppy Disks
See a comprehensive discussion by Michael Brutman: Working with Disks.
-
Interfacing Modern PCs with USB to Vintage Computers via Serial Ports
Vintage computers often lack the capability to connect to other computers to include networking. Even if networking hardware and software is available, such connections are difficult and take up resources. Often it's "impossible."
Many vintage computers do have RS-232 serial ports. They are most often DB-9 male connectors on the back, although IBM PC and PC/XT used 25 pin male connectors. Vintage operating systems such as MS-DOS were configured to handle various functions using serial ports.
USB to serial cables have existed for years. They seem like an excellent way to connect a modern computer with a vintage computer. And true, it's possible to make such a connection, although getting the software on each side talking is very hit and miss.
This Note will document exploring using IBM PC serial ports under MS-DOS, connected to a modern Windows machine using an RS-232 to USB cable.
The USB/RS232 Cable
I wanted to check things out quickly so I went to Amazon US. My vintage computer is an IBM PC/AT running MS-DOS 6.22 with a 9 pin DB-9 male serial port at COM1.
The cable I chose is a CableCreation USB to RS232 Serial Adapter with PL2303 Chipset, 10 FT USB to DB9 Pin Female Converter Cable as it already had a female DB-9. The 10 foot (3 meter) length helped to reach between computers. The PL2303 USB chipset worked fine with Windows 10, the driver installed automatically. They sell a version with an FTDI chipset but it is $8 more.
-
Web Browsers for MS-DOS and 8088/80286 Computers
Web browsers were not "a thing" during the heydey of 8088/8086/80286 IBM Compatible MS-DOS computers, which were generally made in the 1980s. The first web browser, called WorldWideWeb, was written in 1989 by Tim Berners-Lee, a computer scientist, on a NeXT computer, with the software going into the public domain in 1993. (CERN) Browsers were ported to PCs and similar computers like Amiga around 1993. Netscape Navigator came out in 1994, taking off in 1995. Microsoft Internet Explorer was released in 1995. (Wikipedia: History of the web browser)
The IBM PC came out in 1981, the PC/XT in 1983, the PC/AT in 1984. PS/2 computers arrived in 1988.
These computers predate the heyday introduction of web browsing software by approximately 5 to 10 years. But that does not mean folks have not been porting or backporting web browsers to older hardware.
Modern browsers have so much that Tim Berners-Lee's browser didn't. Advanced graphics, style sheets, JavaScript and much more. How does all that translate to using a browser on vintage equipment? Not well.
Specifically for the 8088, 8086, and 80286, the chips do not have enough processing power to provide anything near a modern web browsing experience (Berner-Lee's NeXT Cube was 25MHz Motorola 68030-based) (Wikipedia).
So browsers that work with older equipment forgo some or many of the features of modern browsers. Some have graphics mode, some are text based. Most workable MS-DOS browsers do not have HTTPS security. And graphics like JPG, PNG, and GIF are rudimentary if not missing.
This Note will discuss some of the browsers available for vintage IBM PCs and compatibles.
What Makes a Web Browser 8088/8086/80286 IBM Compatible?
This Note is only confining itself to the processors mentioned and only MS-DOS, the predominant operating system. By the time the first Windows web browser came to market (Internet Explorer in 1995), 80386 and 80486 computers were common. Any browsers for Windows 3.1 and earlier would have been backported.
Here is a list of common hardware that software had to use in the time period:
- Processors: 8088, 8086, 80286
- Clock Speeds: 4.77 MHz to 8 MHz
- Displays: CGA, MGA / Hercules, EGA, VGA (640x480 max, no hardware acceleration to speak of)
- Memory Sizes: 512K to 4000K RAM or so
- Hard Disk: 10MB to 40MB
- Network Interfaces: 10MB Ethernet TCP/IP (8-bit for 8088/6, 16-bit for 80286), Serial SLIP, PPP
To summarize: slow processors, slow and small displays, limited memory and slow communications.
Web browsers calaining compatibility with this set of hardware must work with these hardware restraints. Any software requiring Windows 3.11 (80386) or higher or MS-DOS > 6.22 (like Windows 95) are not in this class.