Making the Roland DXY-1200 pen plotter wireless (bluetooth) for about 10€

Easy and cheap hack

My office is quite cluttered with hardware. I’ve been toying with chiplotle lately but doing so meant cleaning up my desk and make room for the big clunky 80ties plotter. Chiplotle just sends serial commands, so why not over bluetooth. I ordered a


HC06 serial bluetooth module widely available


and a


serial to ttl converter powered by USB


just hooked it up together with a DB9-DB25 convertor and it just worked… pairing the HC06 was with the code 1234, instead of OSXs default 0000. besides that, no problems.

I set my



serial_port_to_plotter_map = {‘/dev/tty.HC-06-DevB’ : ‘DXY-1300’}

and of we goplottersetup

The whole setup is usb powered and works really smooth. I can now leave the plotter at a convenient place in my office and play with it… wirelessly yay!





flashing the mi mini wifi router with OpenWRT

I lost connection with the mi mini wifi router after following this procedure. I flashed u-boot to the bootloader, and it succeeded, but It would no longer boot the firmware.
Apparently it did boot into u-boot, but to find that out I had to get a serial console. Instead of getting a usb serial to TTL I tried using a raspberry pi and the GPIOpins. It worked.

opening the MI mini wifi

two screws hold i together, opening it from there was a bit harder. You have to forcefully get underneathe four little hooks at the bottom front of the device

holes in the router

after opening it, all we need is accessible.

soldering a serial port on it

I used an old connector I had lying around, easy t get to the breadboard

nice solderpads, easy connection

next step involves the RPi

you can then hook it up to the RPis Tx, Rx and GND pins. As both devices use 3v3 TTL, no extra circuitry is needed

ssh over to the RPi

once your logged in, type

$ minicom -b 115200 -o -D /dev/ttyAMA0

to start a serial console on the RPis GPIOports. Once it runs, boot the mi and you should see this

Screen Shot 2015-06-09 at 20.46.36


now the easy part

connect a UTP cable from a LAN port directly to your computer, and assign your PC a manual address in th 192.168.1.x but not

start the http server on the mi

MT7620 # httpd
raspi_read: from:40028 len:6
NetTxPacket = 0x83FB5080

KSEG1ADDR(NetTxPacket) = 0xA3FB5080
Trying Eth0 (10/100-M)

Waitting for RX_DMA_BUSY status Start… done
HTTP server is starting at IP :
HTTP server is ready!

Keep going WEB failsafe, rx_counter=0 , GoGoGo!!!

point you browser to

and upload your firmware…

I flashed openwrt-ramips-mt7620-xiaomi-miwifi-mini-squashfs-sysupgrade.bin

connect to internet (cable)

and start setting up OpenWRT

$ opkg update && opkg list luci-*
$ opkg install luci-ssl

$ /etc/init.d/uhttpd start
$ /etc/init.d/uhttpd enable

$ uci set wireless.@wifi-device[0].disabled=0; uci commit wireless; wifi


make sure it boots from the flash partition

by default it waits for a tftp image to be transferred, so:

$ printenv

and take a look at the env variables

$ bootcmd=tftp

this should be

“bootcmd=bootm bc050000”

so set it and save it

$ setenv bootcmd bootm bc050000

$ saveenv

now reboot, test and go and configure it

APC update

I hardly have time lately to code anything at home. I just dusted of the APC and I made slight progress going almost no sound to some sound…

That is in “dongle” mode. In stand alone mode it works fine. I even added a set of capacitors so you can switch between several sorts of sounds and a light sensitive resistor for that look-without-touching-I-can-play-this-APC-touch

I was successful in attaching it to the computer with the regular standard arduino’s + firmata and playing it from
puredata.But this is an arduino pro mini (5v 16Mhz, from sparkfun). Apparently firmata isn’t entirely the same on these mini’s. Although Since arduino 0017 I can connect and send data, it’s not without errors. First of all

[arduino]_WARNING_currently_unsupported: 176
[arduino]_WARNING_currently_unsupported: 160
[arduino]_WARNING_currently_unsupported: 176

Is what I see when I try to run the pd patch. lot’s of those, thousands…

Another weird thing is that even though pin 13 is unconnected on the arduino, It’s the only pin that seems to work. I really don’t get it. Is there some sort of different mapping? normally only pin 9-10-11 are supposed to work.

any ideas anyone?


Axiome is a mlr (monome style) pd patch. I’m still looking for a good beatslicer to built my own custom controller. This one is a candidate for sure. Provided I still don’t own a monome, I will have to hack it up so it becomes compatible with my yet-to-be-designed-budget-friendly-midi-and-osc-controller. Lucky it’s GPL’ed