# Electro-knit

## Overview

http://www.youtube.com/watch?v=GhnTSWMMtdU

The video above overviews the process which is detailed in this tutorial. Go from a digital image like this:

![](https://cdn-learn.adafruit.com/assets/assets/000/000/747/medium800/braincrafts_adazoomed.gif?1447976396)

To a knitted object like this!

![](https://cdn-learn.adafruit.com/assets/assets/000/000/748/medium800/braincrafts_adafabric.jpg?1396765521)

Working with these machines is very difficult. Before you begin, look at your life, and what choices brought you to this point. Are you proficient at using the knitting machine's normal functions? Can you read and run Python scripts? Have you ever done any serial communication between your computer and another device before? If you answered "no" to any of these questions, work on these skills first before attempting to follow this guide.  
  
Adventures in communicating with the Brother KH-930e knitting machine! The order of operations:

- [Make the FTDI interface cable](http://learn.adafruit.com/electroknit/cable)
- [Prepare the computer by downloading the software](http://learn.adafruit.com/electroknit/software)
- [Backup your Brother Knitting Machine's memory to your computer](http://learn.adafruit.com/electroknit/backup "Link: http://learn.adafruit.com/electroknit/backup")
- [View patterns from the machine's memory](http://learn.adafruit.com/electroknit/view)
- [Adding a new pattern from an image](http://learn.adafruit.com/electroknit/insert)
- [Load your new file back to the knitting machine](http://learn.adafruit.com/electroknit/upload "Link: http://learn.adafruit.com/electroknit/upload")

Much of this tutorial is directly adapted from [Steve Conklin's totally awesome knitting machine wiki page](http://www.antitronics.com/wiki/index.php?title=Electroknit_Technical_Information "Link: http://www.antitronics.com/wiki/index.php?title=Electroknit\_Technical\_Information")!&nbsp;

**Troubleshooting**

- If the RAM data has been corrupted, the screen will flash "888" and the machine will seem unresponsive. Hold down INPUT and STEP at the same time, and when the display should change. Perform a memory reset by hitting CE, 888, STEP.

**Outside resources**

- download the [PDF knitting machine manual](http://knittsings.com/knitting-machine-manuals/) (many other knitting machine manuals here as well)
- [Troubleshooting Brother machines](http://www.softbyte.co.uk/brothl1.htm#Troubleshooting%20Uploading%20and%20Downloading%20with%20Brother%20KH940,%20KH950i,%20KH965i,%20KH970) - includes how to do an 888 reset of memory
- [Good forum post](http://www.howtomendit.com/answers.php?id=124420) - includes what to do when all the machine will do is flash "888"
- [Newton's Yarns](http://www.newtons.com/brother_knitking.htm) - in Anaheim, CA, claims to carry Brother machines/accessories incl. KE-100 motor drive

# Electro-knit

## Cable

 **Make your own cable**

The kh930e is designed to work with a Tandy PDD1 floppy drive. We don't need it! Make your own cable to communicate between your computer and the machine. You will need:

- [FTDI cable](http://www.adafruit.com/index.php?main_page=product_info&cPath=18&products_id=70&zenid=08edecd591934eebcc4993c01b0259d6) - you should be able to use a '3.3v' or '5v' cable. 
- 2x4 connector part number [WM8036-ND on Digikey](http://search.digikey.com/scripts/DkSearch/dksus.dll?vendor=0&keywords=WM8036-ND) 

You will need to make some minor mods to get the cable talking to your knitting machine. Follow the tutorial to get your knitting cable going.

**Change 'polarity' of the FTDI cable**

 

FTDI cables have standard 'inverted' TTL (zero is 3-5V and one is 0v) but the KH930E requires the opposite. Luckily its very easy to fix this by reprogramming the software.

You will need a copy of [FTDI MProg](http://www.ftdichip.com/Resources/Utilities.htm "Link: http://www.ftdichip.com/Resources/Utilities.htm") (windows only) and your FTDI cable. Plug in the FTDI cable into your windows computer and [install the driver that matches your computer best](http://www.ftdichip.com/Drivers/VCP.htm "Link: http://www.ftdichip.com/Drivers/VCP.htm")

 For Windows users, [http://www.ftdichip.com/Drivers/CDM/CDM%202.08.28%20WHQL%20Certified.zip](http://www.ftdichip.com/Drivers/CDM/CDM%202.08.28%20WHQL%20Certified.zip "Link: http://www.ftdichip.com/Drivers/CDM/CDM%202.08.28%20WHQL%20Certified.zip") is the best choice  
![](https://cdn-learn.adafruit.com/assets/assets/000/000/749/medium800/braincrafts_fetch.php.jpg?1396765527)

[Please read our detailed tutorial on installing the driver here](http://learn.adafruit.com/ftdi-friend) then come back when the driver is installed

Now download [FTDI MProg](http://www.ftdichip.com/Resources/Utilities.htm) (Search for MProg in the page, v3.5 was the latest version last we checked) and run the program

![](https://cdn-learn.adafruit.com/assets/assets/000/000/750/medium800/braincrafts_mprog.gif?1447976412)

Select **Scan…** from the menu

![](https://cdn-learn.adafruit.com/assets/assets/000/000/751/medium800/braincrafts_mprogscan.gif?1447976423)

The message window should say it found a cable.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/752/medium800/braincrafts_mprogscanned.gif?1447976431)

Now select **Read and Parse** to read in the cable programming.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/753/medium800/braincrafts_mprogread.gif?1447976438)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/754/medium800/braincrafts_mprogparsed.gif?1447976446)

Click the buttons that say to **Invert TX and RX**.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/755/medium800/braincrafts_mprogsignals.gif?1447976454)

Here is the wierd thing, you have to **Save as…** the settings so just save it anywhere.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/756/medium800/braincrafts_mprogsave.gif?1447976462)

Now you can click the **Program** button (lightening bolt).

![](https://cdn-learn.adafruit.com/assets/assets/000/000/757/medium800/braincrafts_mprogprog.gif?1447976469)

The message window will say it programmed.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/758/medium800/braincrafts_mprogged.gif?1447976477)

You're done! Quit Mprog.  
  
**Rewire the connector**

Next we need to rewire the FTDI cable to match the pinout of the knitter. The cable comes with a 1x5 connector, but we need a 2x4 connector. You can also follow [Davi Post's excellent rendition of this cable-rewiring](http://daviworks.com/knitting/cable_tutorial.html "Link: http://daviworks.com/knitting/cable\_tutorial.html") section.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/759/medium800/braincrafts_propcablestart.jpg?1396765630)

Use tweezers to lift up the black connector tabs.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/760/medium800/braincrafts_propcableremovewire.jpeg?1396765637)

Then gently pull out the wire.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/761/medium800/braincrafts_propcablepullout.jpg?1396765644)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/762/medium800/braincrafts_propcableremoved.jpg?1396765652)

Repeat for all the wires.

You'll want to cut away a few inches of the black cable sheathing so you have plenty of 'space' to work with the wires. Cut **down** the sheathing without cutting the colored wires, use a fine scissors. Cut 1 or 2" away.

Now grab the 2x8 cable connector you bought from Digikey or whatever. You'll need to insert the wires so that they snap into the connector to match the following diagram. **Do not insert the red or green wires yet!!!** Insert just the orange and yellow wires. Look at the photos below to make sure you have the wires in the right order, they should just snap in. If they don't snap make sure the little lock-tab is facing 'out'

This diagram assumes you're looking at the connector from the end that goes into the machine. Again, check with the photos many times to be sure you get this right!

![](https://cdn-learn.adafruit.com/assets/assets/000/000/763/medium800/braincrafts_connbott-adafruit-kmt.png?1396765671)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/764/medium800/braincrafts_conntop-adafruit-kmt.png?1396765687)

Pin 1 is black, pin 2 will be red, pin 3 will be green, pin 6 is orange, and pin 7 is yellow.

Next is the one tough part, you'll want to cut the green wire as close as you can to the black sheathing. Use the piece of green wire to branch off from the red wire by stripping a small opening in the red sheathing and soldering the green wire on. This produces one wire with two header inserts - red and green. See the following image:

![](https://cdn-learn.adafruit.com/assets/assets/000/000/765/medium800/braincrafts_cablesplice_t.jpg?1396765695)

Wrap it up in electrical tape or heatshrink:

![](https://cdn-learn.adafruit.com/assets/assets/000/000/766/medium800/braincrafts_cablewrapped_t.jpg?1396765695)

You're done!

![](https://cdn-learn.adafruit.com/assets/assets/000/000/767/medium800/braincrafts_cabledone_t.jpg?1396765698)

 **TODO** : We're pretty sure its possible to make this part less difficult by using the RTS (green) wire without splicing it to the 5V (red) wire and using setRTS() in the python code but we already mangled the cable before trying this. If you try and succeed, please post up in the [forums](http://adafruit.com/forums/)!

# Electro-knit

## Software

In this section we will download and install the software that emulates a disk drive to the knitting machine.

**Python code**

Now that you have the cable running, its time to download the software. Visit the Adafruit [github](http://github.com/adafruit/knitting_machine) repository and click on **Download** to download the source code.

_This code is based on [Steve Conklin's knitting machine code](http://www.antitronics.com/wiki/index.php?title=Electroknit_Technical_Information) which is totally awesome but doesn't support pattern insertion. Still, check out his site for a lot of detailed information._

Download the file and unzip it into a directory that is easy for you to get to. For windows, we're going to stick the folder in **My Documents** in a folder called **brother** but if you are comfortable with command lines put it where-ever you'd like!

![](https://cdn-learn.adafruit.com/assets/assets/000/000/768/medium800/braincrafts_brotherfolder.gif?1447976486)

We've had good luck running this software on Linux and Mac (OS X) systems, but it supposedly works on Windows now too, thanks to Steve's PDDEmulate.py bug fix. Try it and let us know!

You will need Python installed to run the code. To see if you have Python installed, open up a command line and type in **python**. If you're running Windows you probably don't have it, so download it from [the official Python site](http://www.python.org/download/) . You'll also need [PySerial (serial interface for python) from http://sourceforge.net/projects/pyserial/](http://sourceforge.net/projects/pyserial/)  
  
Open up a command line (windows) or Terminal (mac) or xterm (linux) and **cd** to the **brother** directory and then type in **ls** (or **dir** if **ls** doesnt work) to list all the files.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/769/medium800/braincrafts_brothercmd.gif?1447976493)

 **Determining the serial port**

Now we need to figure out what the name of the FTDI cable is. This process differs a little for Mac, Linux and Windows people.

Under Mac, in the Terminal window, type in **ls /dev/cu.\*** which should give the following responses or so.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/770/medium800/braincrafts_lscu.jpg?1396765724)

The name we are looking for is **/dev/cu.usbserial-XXXX** where the X's are going to be unique for each cable. Copy and paste the name into a text file so you'll remember it for later.

For Linux/Unix type **ls /dev/ttyUSB** \* into a terminal window, you should see a device file called something like **ttyUSB0**.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/771/medium800/braincrafts_lstty.png?1396765736)

If you are using Windows, go to the **Device Manager** (From the **Start Menu** , select **Settings→Control Panel**. Double click on **System** and select the **Hardware** tab. Then click on the **Device Manager** button).

![](https://cdn-learn.adafruit.com/assets/assets/000/000/772/medium800/braincrafts_devicemanager.jpg?1396765742)

# Electro-knit

## Backup

This step will show how to download the custom patterns from the knitting machine memory to your computer. This is just for the 'custom' patterns, it wont download the 'built in' patterns that are shown in the manual.

**Plug in the cable** into the back of the machine.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/773/medium800/braincrafts_knitport_t.jpg?1396765745)

There is a 'key' on the plug so you should be able to use it without accidentally putting it backwards. Still, check to make sure you have the right colored wires in the right places now, before plugging it in.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/774/medium800/braincrafts_cableplugged_t.jpg?1396765751)

Now back to the computer. Start up the disk drive emulator in the command line by typing in&nbsp; **python PDDemulate-1.0.py img COMPORT** &nbsp;where&nbsp; **COMPORT** &nbsp;is your serial connection. For example on a mac the command might be&nbsp; **python PDDemulate-1.0.py img /dev/tty.usbserial-A7TKMHYD** &nbsp;this will make an 'image' of the knitting memory in a directory called&nbsp; **img**.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/775/medium800/braincrafts_screen_shot_2010-11-01_at_3.57.41_pm.png?1396765762)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/776/medium800/braincrafts_screen_shot_2010-11-01_at_3.57.52_pm.png?1396765774)

Now over on your knitting machine... When "ready" lamp is lit, clear display with&nbsp; **CE** &nbsp;key, then prepare to save pattern data to "disk" by typing&nbsp; **552** , then&nbsp; **STEP**.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/777/medium800/braincrafts_01_press_ce_then_552.jpg?1396765779)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/780/medium800/braincrafts_03_display_goes_dark.jpg?1396765794)

Display will go blank and then "ready" and "pattern no" lamps will light up with the "track" number 1 in the display. Press&nbsp; **STEP**.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/781/medium800/braincrafts_02_press_step_track_1_appea.jpg?1396765787)

Machine will beep when finished, and the track data will now be in the&nbsp; **img** &nbsp;folder along with your emulator and other scripts. Ignore the .id files.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/782/medium800/braincrafts_screen_shot_2010-11-01_at_3.58.46_pm.png?1396765815)

The emulator also makes a handy&nbsp; **file-01.dat** &nbsp;file to make it easy to preview the patterns using&nbsp; **dumppattern.py** &nbsp;(see the next step)

We'll need that&nbsp; **file-01.dat** &nbsp;file, so make a backup of it somewhere else for safekeeping! That file contains all your patterns.

# Electro-knit

## Viewing Patterns

The **file-01.dat** file contains any pattern data that you entered into the machine by hand. You can use the **dumppattern.py** software to view patterns and see which patterns are in which slot. Not all information is printed, like memo data, just the stitches.

Using it is simple, and you don't need to be connected to the knitting machine to perform this step. Open up that terminal program and navigate to your directory where the software is. Type in **python dumppattern.py img/file-01.dat** (that's assuming that the folder you chose before is called img).

![](https://cdn-learn.adafruit.com/assets/assets/000/000/783/medium800/braincrafts_dump.gif?1447976500)

The software will tell you how many patterns are in the memory and their sizes

You can view individual patterns by running&nbsp; **python dumppattern.py img/file-01.dat PATTNUMBER** &nbsp;where PATTNUMBER is the name of the pattern, usually starting with 901 and going up to 999.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/784/medium800/braincrafts_dump901.gif?1447976507)

# Electro-knit

## Insert New Patterns

Now we get to the fun part, showing how you can make an image on your computer and then inserting it into the memory file so that we can easily make new patterns without the tedious entering-by-hand part.  

The first thing we'll need to do is make the image. The image&nbsp; **must** &nbsp;be 1-bit/2-color/monochrome/black&white. You need to make sure that whatever image software can save the file in monochrome. A free program on every windows computer that can do this is **MS&nbsp;Paint** &nbsp;- its crummy but it does this stuff kinda well.

A nice thing you can do is zoom in and click pixels. Remember that stitches in knitting are not square, so you may want to squish your graphic horizontally just a bit before lowering its resolution.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/785/medium800/braincrafts_paintzoom.gif?1447976516)

![](https://cdn-learn.adafruit.com/assets/assets/000/000/786/medium800/braincrafts_adazoomed_%281%29.gif?1447976524)

Again, make sure that its saved as a monochrome 1-bit Bitmap (BMP) file.  
![](https://cdn-learn.adafruit.com/assets/assets/000/000/787/medium800/braincrafts_monochromsave.gif?1447976533)

Next you'll need to figure out the pixel dimensions (width and height). You can count the pixels or, at least under windows and some paint programs, they'll report the image size for you.  
![](https://cdn-learn.adafruit.com/assets/assets/000/000/788/medium800/braincrafts_properties.gif?1447976541)

Write down or otherwise keep track of the pixel dimensions for the next step.

## Creating a container pattern

Our software can't add new patterns to the memory file (we don't understand enough of the format to do so) but it&nbsp; **can** &nbsp;edit existing patterns. So what we'll do is make a blank 'container' pattern on the knitting machine. Then we'll edit the pattern on the computer and re-upload the file.

In this step, you're going to create the blank "container" pattern of the appropriate dimensions using the knitting machine control panel. This pattern is going to be 32x32 and will have pattern ID #901.

Press INPUT

![](https://cdn-learn.adafruit.com/assets/assets/000/000/789/medium800/braincrafts_01_press_input.jpg?1396765884)

Note the pattern number that appears. User-input patterns get assigned a number in ascending order starting at 901.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/790/medium800/braincrafts_02_note_pattern_number.jpg?1396765893)

Press STEP

![](https://cdn-learn.adafruit.com/assets/assets/000/000/791/medium800/braincrafts_03_press_step.jpg?1396765904)

Enter your pattern's width (number of stitches), then press STEP

![](https://cdn-learn.adafruit.com/assets/assets/000/000/792/medium800/braincrafts_04_enter_number_of_stitches.jpg?1396765912)

The number of available rows in the machine's memory will appear on the display. Press CE to clear the display.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/793/medium800/braincrafts_04_remaining_available_rows_display.jpg?1396765923)

Enter the pattern's height (number of rows) and press STEP.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/794/medium800/braincrafts_05_enter_number_of_rows.jpg?1396765930)

Press INPUT once more to exit input mode.

Repeat for as many patterns as you'd like to create (and for which you have space).

## **Inserting the pattern**

Follow the&nbsp;[backup tutorial](http://learn.adafruit.com/electroknit/backup)&nbsp;to transfer the knitting machine memory to your computer

Now you'll run&nbsp; **insertpattern.py** &nbsp;by typing in&nbsp; **python insertpattern.py img/file-01.dat PATTERNNUM BMPFILE myfile.dat** &nbsp;which will insert the&nbsp; **BMPFILE** &nbsp;You made in part 1 into the pattern # location&nbsp; **PATTERNNUM** &nbsp;and when done, save the new data file to **myfile.dat** &nbsp;(so you dont overwrite the old file).

![](https://cdn-learn.adafruit.com/assets/assets/000/000/795/medium800/braincrafts_insertingqr.gif?1447976549)

If the pattern size doesn't match the image size it won't continue.  
![](https://cdn-learn.adafruit.com/assets/assets/000/000/796/medium800/braincrafts_wrongsize.gif?1447976556)

## **Split the file**
Now that we have the&nbsp; **myfile.dat** , we'll need to split the file into tracks. This lets the emulator load the files back like it was a diskette. We've included a simple program to do this, its called&nbsp; **splitfile2trakc.py** &nbsp;and you can run it by typing in&nbsp; **splitfile2track.py myfile.dat** &nbsp;it will create two files,&nbsp; **track0.dat** &nbsp;and&nbsp; **track1.dat**.![](https://cdn-learn.adafruit.com/assets/assets/000/000/797/medium800/braincrafts_screen_shot_2010-10-26_at_9.55.27_pm.png?1396765968)

Rename the files 00.dat and 01.dat respectively.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/798/medium800/braincrafts_screen_shot_2010-10-26_at_9.55.40_pm.png?1396765985)

And drag them into your&nbsp; **img** &nbsp;folder.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/799/medium800/braincrafts_screen_shot_2010-10-26_at_9.56.07_pm.png?1396766004)

If you're looking for a simple way to accomplish all that file-wrangling, check out Davi Post's img2track software that combines many of the above steps into one handy program.

Lastly, we'll reupload the files to the knitting machine, see the next section!

# Electro-knit

## Upload Custom Patterns

This step will show how to upload the custom patterns to the knitting machine memory from your computer. This is just for the 'custom' patterns, it wont overwrite the 'built in' patterns that are shown in the manual (those are built into the "ROM").  
  
Start up the disk drive emulator in the command line.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/800/medium800/braincrafts_screen_shot_2010-11-01_at_3.57.52_pm_%281%29.png?1396766015)

When "ready" lamp is lit, reset the machine's memory by pressing CE key, then type in 888, then press STEP key.&nbsp; **This deletes all stored patterns** , so&nbsp;[be sure to back up first](http://www.ladyada.net/wiki/tutorials/knittingmachine/backup.html)&nbsp;if you have patterns on the machine you want to save! (The patterns included with the machine are stored on non-rewritable chips and can never be deleted through this method).

Clear display with CE key, then prepare to load new data into memory by typing 551, then STEP.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/801/medium800/braincrafts_07_enter_551.jpg?1396766019)

Display should go blank, then "ready" and "pattern no" lamps should illuminate.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/802/medium800/braincrafts_10_ready_and_patternno_ligh.jpg?1396766025)

Press 1 to indicate which "track" to load from the disk drive emulator, then press STEP.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/803/medium800/braincrafts_11_enter_track_number_1.jpg?1396766029)

Machine will beep when finished. Pick a pattern and knit as normal, according to the machine manual for knitting a pattern from memory.

![](https://cdn-learn.adafruit.com/assets/assets/000/000/804/medium800/braincrafts_adafabric_%281%29.jpg?1396766037)

# Electro-knit

## FAQ

### 

We only tried this project with a Brother 930. Other machines may have different cable pin configurations and different data formatting on their on-board memory. We don't have another machine so for now this guide is "AS IS" for the 930.

### 

Check out these two Adafruit [forum](http://forums.adafruit.com/viewtopic.php?f=8&t=18693&p=141050&hilit=knitting+machine#p141050 "Link: http://forums.adafruit.com/viewtopic.php?f=8&t=18693&p=141050&hilit=knitting+machine#p141050") [threads](http://forums.adafruit.com/viewtopic.php?f=8&t=26550&p=145988&hilit=knitting+machine#p145988), where you can also find out about the [Yahoo mailing list](http://groups.yahoo.com/group/kminternals/) (not managed by Adafruit).

### 

[Valley Yarns 8/2 Cotton](http://www.yarn.com/index.cfm/fuseaction/product.detail/categoryID/3D03DC12-64EF-4CFA-BA1E-65F9D62C685D/productID/3CFF8FBB-FC25-45A2-87C0-E2025E0C05BB/)&nbsp;and [Valley Yarns 2/10 Merino Tencel (Coltrain Lace)](http://www.yarn.com/index.cfm/fuseaction/product.detail/categoryID/3DE2C30C-6D95-43DD-8AB5-B8DB265D6674/productID/09524FC9-99A1-49B6-B68D-23A9FC6DE02A/), both from Yarn.com


## Related Guides

- [CircuitPython Libraries on Linux and Orange Pi](https://learn.adafruit.com/circuitpython-on-orangepi-linux.md)
- [CircuitPython Libraries with the Binho Nova Multi-Protocol USB Host Adapter](https://learn.adafruit.com/circuitpython-with-binho-nova-multi-protocol-usb-host-adapter.md)
- [CircuitPython Libraries on Linux and the NVIDIA Jetson Nano](https://learn.adafruit.com/circuitpython-libraries-on-linux-and-the-nvidia-jetson-nano.md)
- [CircuitPython Libraries on Linux and ODROID C2](https://learn.adafruit.com/circuitpython-libaries-linux-odroid-c2.md)
- [CircuitPython Libraries on Linux and Raspberry Pi](https://learn.adafruit.com/circuitpython-on-raspberrypi-linux.md)
- [CircuitPython Libraries on Linux and the 96Boards DragonBoard 410c](https://learn.adafruit.com/circuitpython-libraries-on-linux-and-the-96boards-dragonboard-410c.md)
- [CircuitPython Libraries on Linux and Google Coral](https://learn.adafruit.com/circuitpython-on-google-coral-linux-blinka.md)
- [SNES EZ Key Bluefruit Game Pad](https://learn.adafruit.com/snes-ez-key-bluefruit-game-pad.md)
- [Make it Glow: NeoPixel and LED Diffusion Tips & Tricks](https://learn.adafruit.com/make-it-glow-neopixel-and-led-diffusion-tips-tricks.md)
- [Bajoran AirPods](https://learn.adafruit.com/bajoran-airpods.md)
- [Measuring Parts from Product Photos in FreeCAD](https://learn.adafruit.com/measuring-parts-from-product-photos-in-freecad.md)
- [Modifying Servos for Continuous Rotation](https://learn.adafruit.com/modifying-servos-for-continuous-rotation.md)
- [Bluefruit Ouija Board](https://learn.adafruit.com/bluefruit-ouija-board.md)
- [AI 3D Printed Figure](https://learn.adafruit.com/ai-figure.md)
- [Onion Pi](https://learn.adafruit.com/onion-pi.md)
