A simple typewriter written in go for KOBO e-readers

Kobowriter

This small project aims to let you use your old KOBO e-reader (mine is a GLO HD) as a simple, distraction free typewriter.

For years I thought that e-ink was the ultimate medium to write in broad daylight without eye strain or focus fatigue. It seems that others have had the same ideas, as we can see in the Freewrite or Pomera products.

This project brings the same form factor in a considerably cheaper way (especially if like me you already have a KOBO at hand).

Note that the installed software should let you use switch between your normal kobo stock software and the KoboWriter one; so your kobo is still usable in its default way.

Because XCSoar USB OTG should work for many KOBO devices (touch, Mini, Glo HD and pretty much all the later ones), this project would work there too. But as of now this program has only been built and tested for the KOBO GLO HD and only supports the AZERTY (French) keyboard. You can open issues if you need to support other devices / keyboards

How it looks

From face

From side

TODO add video

How it works

The kobo e-readers have a Micro-USB connector to charge and transfer files. With proper kernel modification this USB socket can be used as OTG, letting one plug in any kind of USB device.

Such kernel was compiled by the XCSoar project in order to turn the kobo into a fliying assistant supported by an external GPS.

We use their modifications to connect a USB keyboard to the OTG port.

However, the kobo giving no power through its USB socket, the keyboard has to be powered on its own - you can either use a cheap USB otg power cable like this one or modify the keyboard, like I did.

The software lets you use the keyboard to write and edit text files. It's coded in Go, compiled with a toolchain prepared for the KOBO devices, and relies largely on the excellent FBInk library to drive the screen, through its extremely useful port in Go, go-fbink.

How to build it

Note that we also provide ready made precompiled binaries for your KOBO

First you need to download and build the koxtoolchain on your development computer. This toolchain, once built, will let you build Go programs that can run on the KOBO.

TODO : Detailed step to build project

How to install

You can build the software, put it on a KOBO with XCSoar software, and launch it any way you see fit.

Or you can use our modified XCSoar installer that will get you the XCSoar program, kernel, and Kobowriter in just one step:

You do this at your own risk!

  • Download the KoboRoot.tar.gz from the release page
  • Connect your Kobo and place the archive in the .kobo (hidden) directory
  • eject safely, unplug, and let the Kobo update

From now on your Kobo will start up on XCSoar launcher. From there you can start the stock Kobo software, turn on USB-OTG or start the KoboWriter.

Note that when USB-OTG is enable, you won't be able to start the stock Kobo software. But you need to have it on in order to use the KoboWriter software. Changing the USB-OTG setting requires a restart.

  • When you start the KOBO, if not activated yet, from the XCSoar laucher tap on system and the enable USB-OTG and then restart the device.

If, like me, you use the KOBO only for KoboWriter, then your device should always boot in this state. In this case, only this last step is required:

  • From XCSoar launcher tap tools and then KoboWriter.

Plugin you powered USB keyboard and you should be good to go ;-)

Comments
  • It works too on kindle ?

    It works too on kindle ?

    Hi I like so much your project but I've a Kindle 8th gen (base model). Do you think that your guide/sw works on ? I've seen that the koxtoolchain supports kindle devices. Have you some ideas about ?

    Thank you in advance

  • Kobowriter missing from XCSoar menu

    Kobowriter missing from XCSoar menu

    Hello

    I have copied the archive in my .kobo directory. XCSoar start correctly. However, Kobowriter app is missing from tools menu.

    I downloaded archive from from this link https://xcsoar.org/download/ I have enabled OTG-USB. I have KOBO GLO HD.

  • Has anyone actually been able to get this to work?

    Has anyone actually been able to get this to work?

    Short of creating a development environment, I have tried this on several kobo devices and it either bricks the device or, more commonly, the Kobowriter just does not open. So, copying the KoboRoot.tar.gz file to the kobo; bricked my aura (I knew the risk and am ok but sad), does not respond on my touch (several keyboards and power supplies and power on sequences), and I am waiting for a glow to arrive to try it. This function is so useful that I started to look into learning the Go (Golang) programming language. I would rather be writing my novels than learning to code but the possibility of days worth of battery live in a distraction free environment is attractive. A device that accepts text on an e-ink screen, saves the results, and allows extraction of those text files is selling for six times what a kobo is selling for. If this is possible with a kobo please tell me how to do it. I have a blank computer that I can add a developmental environment to, I just need to know how. Any help would be appreciated. Give me a fish or teach me to fish. I am all ears. It is just sad now that I don't have a device to read on, now that my reader is bricked, and nothing to write on.

  • perixx Keyboard compatibility

    perixx Keyboard compatibility

    Hello

    I use perixx PERIBOARD-409 with kobowriter and keyboard is not detected. Kobowriter start correctly with logitech k120.

    Is this issue a driver issue? Is there a way to fix that?

  • How to change display orientation

    How to change display orientation

    Hello

    I downloaded your custom XCSoar archive from https://github.com/olup/kobowriter/releases, and I successfully started kobowriter. However, display orientation is not landscape. Is there a way to change this?

  • Other keyboard layouts?

    Other keyboard layouts?

    Hello, first I want to thank you for the Kobo writer. Im not a Very tech guy but I managed to install the rooted firmware and modify a USB keyboard. And the result is awsome: a modern typewriter with eink screen for distraction free writing... beautiful and elegant solution. Im ethousiastic so Im ready to learn how to use an azerty keyboard but... maybe there is a way to insert others layouts... Im currently writing in Italian. Let me now! Thank you very much.

  • Chouette ! But I don't really understand how to do this properly

    Chouette ! But I don't really understand how to do this properly

    Hey there !

    I don't know how to contact you. I'm very interested in your program cause Freewrite and Pomera is awfully expensive. The only issue is that I don't really understand the HOW to do this, and especially the first step : "First you need to download and build the koxtoolchain on your development computer. This toolchain, once built, will let you build Go programs that can run on the KOBO." Secondly, the keyboard need to be connected to the Kobo and to a battery ? And, lastly, when you writed something, your text file, where does it go ? In the Kobo's memory ?

    thank you.

Golang counters for readers/writers

Datacounter Golang counters for readers/writers. Examples ReaderCounter buf := bytes.Buffer{} buf.Write(data) counter := datacounter.NewReaderCounter(

Oct 9, 2022
Serial to Keyboard converter for Polar's card readers

polar-serial-to-keyboard Serial to Keyboard converter for Polar's card readers Configuration This program is intended to be run as a background proces

Dec 17, 2021
Simple and expressive toolbox written in Go

ugo Simple and expressive toolbox written with love and care in Go. Deeply inspired by underscore.js and has the same syntax and behaviour Fully cover

Sep 27, 2022
Simple 'UserKit' for Malware written in Go. Startup, Hidden Files, Critical Process and Registry Watcher

GoUserKit Simple UserKit for Malware written in Go Features Makes Process Critical (NtSetInformationProcess) Hides Files Simple Add to Startup (HKCU R

Jan 3, 2023
Person is a simple CRUD application written in go which exposes API endpoint to create the person.

Person Person is a simple CRUD application written in go which exposes API endpoint to create the person. Installation Install docker in your local sy

Oct 18, 2021
A simple and sussy project is an implementation of SOMMIP Lab 1 written in Golang
A simple and sussy project is an implementation of SOMMIP Lab 1 written in Golang

SOMMIP Lab 1 Isac Arthur Table of Contents About The Project Getting Started Prerequisites Installation Supported commands About The Project This very

Nov 10, 2021
A simple project/module generated tool written in go

A module generator written in go This is a project/module generator written in go. It is intended to generate standard project/module layouts in the t

Oct 17, 2022
🧀 Formaggo is a simple model checker inspired by TLA+, The checker and the models are written in Go

?? Formaggo. A cheesy exhaustive state checker in Go. Formaggo is a simple model checker inspired by TLA+. The checker and the models are written in G

Jan 23, 2022
Simple cross platform fetch program, written in Go
Simple cross platform fetch program, written in Go

nextfetch Simple cross platform fetch program, written in Go Prerequisites True color (24-bit) or 256-color (8-bit) compatible terminals go >= 17 (bui

Oct 31, 2022
bf.go - A dead simple brainfuck interpreter Slow and simple

bf.go - A dead simple brainfuck interpreter Slow and simple. Can execute pretty much all tested Brainfuck scripts. Installation If you have Go install

Oct 15, 2021
go-simple-geo is a library for simple geo calculations.

go-simple-geo is a library for simple geo calculations. Installation go get github.com/EpicStep/go-simple-geo Example package main import ( "github.

Dec 4, 2022
Random fake data generator written in go
Random fake data generator written in go

Gofakeit Random data generator written in go Features 160+ Functions!!! Concurrent Global Rand Struct Generator Custom Functions Http Server Command L

Jan 1, 2023
Genetic Algorithm written in go

This genetic algorithm is designed to minimise the problem specific code from a genetic algorithm. The three interfaces Gene, Initialiser, an Evaluato

Feb 15, 2022
A simplistic todo list manager written in Go
A simplistic todo list manager written in Go

Tasks Tasks is a simplistic Go webapp to manage tasks, I built this tool to manage tasks which I wanted to do, there are many good kanban style boards

Dec 10, 2022
A session manager for tmux written in Go
A session manager for tmux written in Go

Smug - tmux session manager Inspired by tmuxinator and tmuxp. Smug automates your tmux workflow. You can create a single configuration file, and Smug

Jan 6, 2023
An example client implementation written in GO to access the CyberVox platform API

About This is an example client implementation written in GO to access the CyberVox platform API.

Nov 7, 2022
💥 Fusion is a tiny stream processing library written in Go.

?? Fusion Fusion is a tiny stream processing library written in Go. See reactor for a stream processing tool built using fusion. Features Simple & lig

Jun 30, 2021
Airplay 2 Receiver written in go

Go Play 2 This is a work in progress Airplay 2 Speaker implementation largely inspired by airplay2-receiver Status Can be paired manually on IOS 14.x

Dec 25, 2022
jacobin - A more than minimal JVM written in Go and capable of running Java 11 bytecode.

This overview gives the background on this project, including its aspirations and the features that it supports. The remaining pages discuss the basics of JVM operation and, where applicable, how Jacobin implements the various steps, noting any items that would be of particular interest to JVM cognoscenti.

Dec 29, 2022