Skip to content

binqbit/blaustahl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blaustahl Storage Device

The Blaustahl USB dongle provides long-term storage for about 8000 characters of text. Simply plug the device into your computer and open any serial communications program that supports VT100 emulation (PuTTY, Tera Term, Minicom, screen, etc.) in order to access the built-in text editor.

Blaustahl

This repo contains schematics, firmware and a 3D-printable case.

Find usage instructions and more information on the Blaustahl product page.

Connecting Blaustahl

The following sections will describe how to connect to Blaustahl on different operating systems. Once you're connected, press CTRL-G to view the on-device help screen.

Linux

  1. Install screen or minicom:
$ sudo apt install screen
$ sudo apt install minicom
  1. After plugging in Blaustahl, find the device:
$ dmesg | grep ACM
  1. Connect to the device (for example):
$ screen /dev/ttyACM0
or
$ minicom -D /dev/ttyACM0

If the device is already plugged in and you see nothing, you may need to press CTRL-L to refresh the display.

OS X

  1. Open the Terminal application.

  2. After plugging in Blaustahl, find the device:

$ ls /dev/tty.usbmodem*
  1. Connect to the device (for example):
$ screen /dev/tty.usbmodem1234561

Windows

Note: The default firmware isn't currently recognized by Windows, please update your firmware to blaustahl_cdconly.uf2 in order to access Blaustahl from Windows.

After the latest cdconly firmware is installed:

  1. Download and install PuTTY.

  2. After plugging in Blaustahl, find the device by opening Device Manager and looking under "Ports (COM & LPT)" for "USB Serial Device (COMx)".

  3. Open PuTTY and set connection type to Serial. Enter COMx (e.g. COM4) in the serial line box and press the Open button.

Using Blaustahl

Blaustahl includes a built-in text editor with four 80x24 pages of text. The cursor can be moved with the arrow keys. When you'd like to enter or delete text, press CTRL-W to toggle the write mode.

Keypress Action
CTRL-G Help
CTRL-L Refresh screen
CTRL-W Toggle write mode
CTRL-S Toggle status bar
CTRL-Y Enter firmware update mode
PGUP/DN Navigate between pages
CTRL-A or ^ Move to beginning of line
CTRL-E or $ Move to end of line

Software

The 'bs' utility program can be used to read and write the FRAM data. Note that it's not possible to use this utility with the cdconly firmware.

Build and install:

If using OS X:

$ brew install libusb

If using Linux:

$ sudo apt install libusb-1.0-0-dev

Then:

$ cd sw
$ make
$ sudo make install
$ sudo bs -r my-backup.bin

Firmware

The firmware can be updated over USB by pressing CTRL-Y in the text editor to enter the UF2 bootloader mode. You can also enter the bootloader by holding the button while plugging in the device.

Once in bootloader mode, you can update the firmware by dragging and dropping a new UF2 file to the device.

There are two firmware images available:

  • blaustahl.uf2: USB composite device with USB-CDC and vendor interface
  • blaustahl_cdconly.uf2: USB-CDC simple device

The vendor interface allows you to access the 'bs' utility and to develop custom software that interfaces with Blaustahl.

You can build the firmware from source, if you have pico-sdk installed:

$ cd firmware/blaustahl
$ mkdir build
$ cd build
$ cmake ..
$ make

Future data recovery

In the event that the USB interface were to become obsolete or the RP2040 were to become non-functional, it should still be possible to recover the FRAM data using a SOP-8 test clip. The FRAM IC is marked "RS64".

One way to achieve this today is to load the Blaustahl firmware onto a Raspberry Pi Pico using the same SPI GPIOs as shown in the schematics, then hold the Blaustahl boot button while attaching a test clip to the FRAM IC. The text editor or 'bs' utility can then be used to recover the FRAM data.

To read or write data to flash memory via software, use the built-in API Simple Read Write Protocol (SRWP). An example and description of the protocol can be found in this repository. There is also an existing drivers with SRWP support for Linux and Windows.

License

The contents of this repo are released under the Lone Dynamics Open License.

About

Blaustahl Storage Device

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 83.3%
  • CMake 9.0%
  • OpenSCAD 7.5%
  • Makefile 0.2%