Monday, January 28, 2019
Friday, January 25, 2019
Secret Handshake Firmware: USB Text Keyboard as Ableton-style Music Keyboard
This firmware for the Secret Handshake module turns a wireless USB keyboard into an "Ableton-style Music Keybaord".
The USB received for the wireless USB keyboard can be plugged into the Secret Handshake module, and then the row from A to K will become the white keys of a piano, the row Q to U will become the black keys of a piano, Z and X will change the octave up and down, and C and V will change the velocity up and down.
More information about Secret Handshake can be found here: http://little-scale.blogspot.com/2019/01/secret-handshake-diy-usb-midi-host.html
Download this firmware code for Arduino here: https://github.com/little-scale/eurorack/blob/master/USB_MIDI_Host/Secret_Handshake_-_Logitech_Keyboard.ino
The file defs.h is also required: https://github.com/little-scale/eurorack/blob/master/USB_MIDI_Host/defs.h
The USB received for the wireless USB keyboard can be plugged into the Secret Handshake module, and then the row from A to K will become the white keys of a piano, the row Q to U will become the black keys of a piano, Z and X will change the octave up and down, and C and V will change the velocity up and down.
More information about Secret Handshake can be found here: http://little-scale.blogspot.com/2019/01/secret-handshake-diy-usb-midi-host.html
Download this firmware code for Arduino here: https://github.com/little-scale/eurorack/blob/master/USB_MIDI_Host/Secret_Handshake_-_Logitech_Keyboard.ino
The file defs.h is also required: https://github.com/little-scale/eurorack/blob/master/USB_MIDI_Host/defs.h
Labels:
arduino,
diy,
eurorack,
secret handshake,
teensy
Thursday, January 24, 2019
12 Gate 16 CV USB MIDI Interface: BOM, Build Guide, Schematic, PCB and Code
Overview
This is a USB-powered, Teensy-based interface that has 16 CV outputs and 12 gate outputs. USB MIDI channels 1 - 8 are mapped to CV outputs 1 - 16 for pitch and velocity, and gates 1 - 8 for note on and off events. Gates 9 - 12 are mapped to note on and off events only on channel 9, and also will send a sync and transport signal based on MIDI clock messages if received. CV is 12 bit from 0V to 4V, gates 1 - 8 are 0 and 5V, and gates 9 - 12 are 0 and 3.3v.
Schematic
PCB
See: https://github.com/little-scale/eurorack/tree/master/USB_MIDI_12_gate_16_cv_interface
Code
See: https://github.com/little-scale/eurorack/tree/master/USB_MIDI_12_gate_16_cv_interface
Bill of Materials
1 x 12 Gate 16 CV USB MIDI Interface PCB
1 x Teensy LC or 3.2 and associated header pins
40 x 1k 1% resistors
8 x MCP4822 through hole DAC and 8 8-pin IC sockets
1 x 74HC595 through hole shift register and 1 16-pin IC socket
8 x red 3mm LEDs
4 x green 3mm LEDs
28 x PJ301M-12 3.5 mm sockets
Build Guide
This is the PCB.
Place and solder the 40 x 1k resistors.
Place and solder the 8 x red 3mm LEDs. In the picture, the short negative leg is oriented towards the lower edge of the picture.
Place and solder the 4 x green 3mm LEDs. In the picture, the short negative leg is oriented towards the lower edge of the picture.
Place and solder the 8 x 8-pin IC sockets. In the picture, the indent is oriented towards the upper edge of the picture.
Place and solder the 1 x 16-pin IC socket. In the picture, the indent is oriented towards the upper edge of the picture.
If the Teensy does not have headers, place and solder two rows of headers.
Place and solder the Teensy. In the picture, the USB port is oriented towards the left edge of the photo.
Place and solder 28 x PJ301M-12
Populate the IC sockets, paying attention to the orientation of the MCP3822 DACs and the shift register 74hc595.
This is a USB-powered, Teensy-based interface that has 16 CV outputs and 12 gate outputs. USB MIDI channels 1 - 8 are mapped to CV outputs 1 - 16 for pitch and velocity, and gates 1 - 8 for note on and off events. Gates 9 - 12 are mapped to note on and off events only on channel 9, and also will send a sync and transport signal based on MIDI clock messages if received. CV is 12 bit from 0V to 4V, gates 1 - 8 are 0 and 5V, and gates 9 - 12 are 0 and 3.3v.
Schematic
PCB
See: https://github.com/little-scale/eurorack/tree/master/USB_MIDI_12_gate_16_cv_interface
Code
See: https://github.com/little-scale/eurorack/tree/master/USB_MIDI_12_gate_16_cv_interface
Bill of Materials
1 x 12 Gate 16 CV USB MIDI Interface PCB
1 x Teensy LC or 3.2 and associated header pins
40 x 1k 1% resistors
8 x MCP4822 through hole DAC and 8 8-pin IC sockets
1 x 74HC595 through hole shift register and 1 16-pin IC socket
8 x red 3mm LEDs
4 x green 3mm LEDs
28 x PJ301M-12 3.5 mm sockets
Build Guide
This is the PCB.
Place and solder the 40 x 1k resistors.
Place and solder the 8 x red 3mm LEDs. In the picture, the short negative leg is oriented towards the lower edge of the picture.
Place and solder the 4 x green 3mm LEDs. In the picture, the short negative leg is oriented towards the lower edge of the picture.
Place and solder the 8 x 8-pin IC sockets. In the picture, the indent is oriented towards the upper edge of the picture.
Place and solder the 1 x 16-pin IC socket. In the picture, the indent is oriented towards the upper edge of the picture.
If the Teensy does not have headers, place and solder two rows of headers.
Place and solder the Teensy. In the picture, the USB port is oriented towards the left edge of the photo.
Place and solder 28 x PJ301M-12
Populate the IC sockets, paying attention to the orientation of the MCP3822 DACs and the shift register 74hc595.
Sunday, January 13, 2019
Secret Handshake: DIY USB MIDI Host Module for Eurorack
The Teensy 3.6 can act as a USB host. This includes support for class-compliant USB MIDI devices, as well as other types of USB devices.
The strength of this is to be able to use USB MIDI controllers without the need for a laptop or similar device, and can interface with Eurorack.
I've made a simple Eurorack module that acts as a USB MIDI host, and has two inputs that can be either gate or CV signals, 4 gate outputs and 2 CV outputs.
All of the relevant files can be found here: https://github.com/little-scale/eurorack/tree/master/USB_MIDI_Host
This includes an example for Launchpad Mini, PS4 controller, NanoKontrol 2.
Different USB MIDI devices have different Arduino sketches written for them as firmware. Each USB device has different controls, functions and mappings, and so the flexibility of having a USB Host module is weighed against needing to program each device.
I will be adding and updating this project in the coming weeks. My plan is to make a new PCB with buffered outputs, voltage scaling, and busses for IO expansion.
Here are demonstrations for NanoKontrol 2, PS4 controller and Launchpad Mini.
Subscribe to:
Comments (Atom)




















