Skip to content

rechsteiner/weavie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

112 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weavie

Weavie is a tiny physical weaving pattern machine, implemented entirely in 32-bit ARM assembly. It's a silly little project, created to learn more about embedded development and assembly programming. You can draw weaving patterns by changing the threading, tieup and treadling using its own little mechanical keyboard. It runs on this STM32 board with this monochrome display. It also has its own emulator based on Rust for local development.


images

Getting Started

Requirements

All dependencies are defined in shell.nix. Run:

nix-shell

Or install the depedencies listed in shell.nix using your preferred package manager.

Running in emulator

make
  • WASD to move the cursor in the selected region.
  • Q to switch between the threading, tieup and treadling (see How to Read a Weaving Draft)
  • WS to zoom in/out when there's no selected region.
  • E to toggle the selected square.

Running on hardware

  • Connect the BOOT0 (B0) pin to the 3.3V PIN. This enables the DFU bootloader mode.
  • Connect the board to the USB port.
  • Flash the chip:
make flash

Running in QEMU

To run in QEMU:

make qemu

Restarting QEMU inside gdb:

monitor system_reset

Exiting QEMU:

Ctrl-A X

Debugging

Debugging in gdb:

make debug

Hardware

Wiring

  • 3.3V to display VIN (power)
  • GND to display GND (ground)
  • SCK to display CLK (clock)
  • MO (MOSI) to display DI (data input)
  • PIN6 to display CS (chip-select)

Weaving

Documentation

Resources

About

A tiny physical weaving pattern machine, implemented in 32-bit ARM assembly.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors