Bluetooth Chord Keyboard

Now avaialble for left and right handed users with adjustable key positions

The Raspberry Pi PICO-W powered Bluetooth Chord keyboard (I call it “Blue Chords”) is now on GitHub. You can find it here. I’ve updated the code to use the latest version of the Raspberry PI PICO SDK and updated the PC design and matching case design.

I used the Kicadstepup plugin to import the board into the design

I’ve built some prototypes (you can see them at the top) but I’ve not built the final design yet. The project will be the basis of an article in an upcoming HackSpace magazine.

Achievement unlocked: designed KiCad circuit board

I’m rather proud of this. Please don’t find a fault in it…

I’ve finished my design for the chord keyboard. There are lots of key locations but you only put one switch in each column. This makes it easy to make left or right handed versions. I’ve added connections for a tiny OLED screen. You fit the display the the side that you are not using.

Next thing to do is to send it off to get some boards made. Rather exciting.

Bluetooth MicroWriter keyboard in the works

A while back I made a MicroWriter keyboard which lets you input text by entering chords on six input keys. It worked very well, but it emulated a wired keyboard. Now that the Raspberry Pi PICO can now talk Bluetooth I’ve started working on a wireless version. I’m going to have a go at designing my own PCB for it. I’ve bought some sockets for the keys. And some keys.

My original keyboard code is written in Circuit Python but there is no Python support for Bluetooth on the PICO just yet. My plan is to convert the code to C++. This shouldn’t be too hard. Most of the work is in the character decoding arrays.

Simple Bluetooth BLE between ESP32 devices

There are lots of things in life that are supposed to be difficult. One of them is getting Bluetooth to work between devices. However, this is now not the case. Because I can do it.

It’s not quite a simple as you might expect though, the BLE server and client examples for the ESP32 devices distribution don’t work straight out of the box (they really should) because they use different service and characteristic ids and (and this is the tricky one folks) the device name for the server is more than three characters long (which for some reason stops the client from recognising it).

Anyhoo, to make things really useful for you I’ve slightly fettled the samples and dropped them on GitHub for you to just grab and go. They make it super-easy to send messages from one ESP32 to the other.

You can find the library here: https://github.com/CrazyRobMiles/SimpleESP32BluetoothBLE

ESP32 Bluetooth BLE to Windows 10 Universal Apps

So I’ve got this lovely little M5Stack device with an ESP32 processor on it and it is supposed to support Bluetooth BLE. So I thought I’d see if it did. So fired up the example Bluetooth BLE program in the Arduino SDK and then I fired up the Bluetooth sample from the Windows-Universal-Samples and tried to get them to connect.

And they just did. Astonishing. In no time at all I was sending messages from the PC to the M5Stack, and with a bit of fiddling I managed to get data values going the other way as well. I find this amazing and wonderful. Previous attempts to get Bluetooth working like this have always been fairly horrid and fraught. With this I just hit the pair button inside the app on Windows 10, accept a security prompt and then I’m sending packets of data backwards and forwards. I’m definitely going to build something based on this,

Birthday Bluetooth

It's my birthday today. I had my treat over the weekend and am now saving up for a Segway (just about doable) and a twenty acre estate that I can use it in (pretty much impossible). So I'm here in the office, eating chocolates and writing C#. Which counts as a pretty good situation in my book. 

Anyhoo, I've been playing with a present I bought myself last week. It is a Texas Instruments SensorTag. You can pick these up for a very reasonable sixteen pounds or so and they are enormous fun (if you like connecting devices to sensors). It talks Bluetooth BLE and I've fancied having a go at this for a while.

Turns out to be easy to get it to connect to a Windows 8.1 device. Just remember that for Windows you have to pair the tag over Bluetooth. It just works with iOS and Android - I hope that they remove the need for pairing with Windows at some point. 

If you fancy having a go I've written a very simple universal app and put it on GitHub. You can use this to connect to the accelerometer in a SensorTag and get events fired in your program when a new reading is produced. 

I used a superb post from Dan Ardelean to get started, and just built a little wrapper class around methods that he described.  Great fun.