-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhacking.html
More file actions
540 lines (451 loc) · 18.8 KB
/
hacking.html
File metadata and controls
540 lines (451 loc) · 18.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
<html>
<head>
<meta name="author" content="Brian Sturk">
<meta name="description" content="Hardware and firmware hacking projects">
<meta name="keywords" content="Circuit Bending, hardware hacking, firmware, samplers, audio, reverse engineering, rom">
<meta name="revisit-after" content="30 days">
<style type="text/css">
<!--
a:hover { color: #FFFFFF }
body { font-family: verdana, arial, sans-serif }
-->
</style>
<title>Hacking (Circuit Bending, Firmware, Mods)</title>
</head>
<body bgcolor="#000000" text="#FFFFFF" link="#FF0000" vlink="#AFAFAF" alink="#AFAFAF" marginwidth="0" leftmargin="0" topmargin="0" marginheight="0">
<! **************** main title *****************>
<center>
<table border="0" width="100%" cellspacing="5" cellpadding="0">
<font face="Verdana">
<h1>
<tr><td width="100%" align="center"><b>Hardware Hacking - Circuit Bending - Firmware Mods</b></tr>
</h1>
<tr><td width="100%" align="center"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=500> </tr>
</table>
</center>
<center>
<b>
<font face="Arial">
<font size=-1>
<a HREF = "#mv8800">[ Roland MV-8800 ]</a>
<a HREF = "#hr16">[ Alesis HR-16 ]</a>
<a HREF = "#rx5">[ Yamaha RX-5 ]</a>
<a HREF = "#remix16">[ Akai Remix-16 ]</a>
<a HREF = "#qsr">[ Alesis QSR ]</a>
<a HREF = "#tg33">[ Yamaha TG-33 ]</a>
<a HREF = "#rm50">[ Yamaha RM-50 ]</a>
<a HREF = "#kaoss">[ Korg Kaoss Pad 2 ]</a>
<a HREF = "#rapman">[ Casio Rapman ]</a>
<a HREF = "#626">[ Roland TR-626 ]</a>
</font>
</font>
</b>
</center>
<! **************** Roland MV-8800 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="mv8800">Roland MV-8800: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
The MV 8000 and 8800 series groovebox/production studios are amazing pieces of hardware. They pack a ton
of DAW functionality into a pretty integrated hardware box. I love mine but there were small things I wanted to change or
add so I took on the (way more challenging than I expected) project of modifying the firmware. At this point I am able
to make changes to the 8800's main firmware and have made a few improvements/tweaks so far, including:
<p>
<ul>
<li>Project loading/saving for projects incorporates how many songs are in the project, so loading and saving times are much faster.
<li>Some annoying popups are now gone
<li>The direction of the scroll wheel can be reversed (this was a big one for me)
<li>Small tweaks to wording, etc
</ul>
<p>
I have much more planned too! There was a lot to do to get to the point of being able to make changes and most of it is documented
<a href="https://web.archive.org/web/20210517034149/https://www.mv-nation.com/index.php?topic=227.0">here</a> at the mv-nation forum archive.
<p>
What I enjoy most about this project is it involves reversing both the hardware at a very low level (things like chip selects, registers, etc) and all of the software with many challenges along the way.
I also learned a new processor instruction set and architecture (SuperH, thanks to Ghidra and a ton of autoit) and many other things as a result of all the work. Very rewarding, plus my old sampler is getting updated!
</td></tr>
<p>
<tr><td width="100%" align="left">
<p>
<img SRC="pics/hacking/mv_8800.jpg" NOSAVE height=400 width=500 alt="Roland MV-8800 Production Studio">
<p>
<img SRC="pics/hacking/tsop_flash_reader_writer.jpg" NOSAVE height=320 width=240 alt="tsop flash reader/writer">
<img SRC="pics/hacking/pcb_debugger_wiring.jpg" NOSAVE height=320 width=240 alt="pcb wiring">
<img SRC="pics/hacking/homemade_debugger_cable.jpg" NOSAVE height=320 width=240 alt="homemade debugging cable">
<p>
<img SRC="pics/hacking/ghidra.png" NOSAVE height=466 width=600 alt="ghidra annotated disassembly">
</td></tr>
</font>
</table>
<p>
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Alesis HR-16 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="hr16">Alesis HR-16: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
Picked this up as "non-working" on eBay for $25. It had some issues which were easily fixed (screen was busted, battery dead).
Did most of the recommended updates in the service manual, new screen, retrobrited the buttons and circuit bent it including a few types of bends I haven't seen on other builds.
</td></tr>
<tr><td width="100%" align="left">
<p>
The OS and both sound roms are now external to the unit and can be swapped out for changing from the stock sounds. This is a pretty common mod.
<p>
The circuit bends on my unit are the standard ROM/RAM patch points for which I used tiny 2.54mm sockets rather than banana or 3.5mm jacks.
Any of these can be routed to momentary or toggle switches in addition to be being controlled via the 4 3.5mm trigger inputs. These 4 inputs
connect to a 4066 switch chip. When the chip gets a 5v signal, it "shorts" the 2 patched inputs, so you can externally control bends with something
like an Ardunio, Teensy, or the gate/trigger output of modular synths. I had planned on wiring up all of the 16 pads to be triggered externally as
well but the trigger pads at best (based on my testing w/ a siggen) can be triggered around 25Hz. Notes can be triggered MUCH faster via MIDI.
<p>
I also did the standard LTC1799 pitch control, but with a few twists. First a 3 way toggle to go through all the different ranges of the LTC
circuit. And in addition to the course and fine pot controls, I made a vactrol out of a white LED and photoresistor which allows me to connect
up CV from my modular synths to control pitch. There's also a resistive strip and photoresistor that can drive the LTC.
<p>
There are 2 toggle and 4 momentary switches for controlling bends or the pitch on/off.
<p>
I may try reversing the firmware and making some updates at some point. Would love to have pitch and decay envelopes for the individual sounds.
</td></tr>
<p>
<tr><td width="100%" align="left">
<p>
<img SRC="pics/hacking/alesis_1.jpg" NOSAVE height=400 width=300 alt="Circuit bent Alesis-HR16">
<img SRC="pics/hacking/alesis_2.jpg" NOSAVE height=400 width=500 alt="Circuit bent Alesis-HR16 circuit board">
<p>
Retrobriting the pads
<p>
<img SRC="pics/hacking/alesis_3.jpg" NOSAVE height=400 width=400 alt="Retrobriting the pads">
<p>
First of 3 wiring attempts using sockets and jumper cables (ended up being too stiff), finalized on hardwiring to board w/ soft IDE cables to sockets
which connected to the sockets on the motherboard. My goal was to be able to work on this easily, but there were limits on how much I could stuff in there
and the CPU was sensitive to cable length.
<p>
<img SRC="pics/hacking/alesis_4.jpg" NOSAVE height=400 width=500 alt="First of 3 wiring attempts using sockets and jumper cables (ended up being too stiff)">
<p>
Some of the mods recommended in the service manual.
<p>
<img SRC="pics/hacking/alesis_5.jpg" NOSAVE height=300 width=350 alt="Recommended updates">
</td></tr>
</font>
</table>
<p>
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Yamaha RX-5 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="rx5">Yamaha RX-5: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
The Yamaha RX5 is an amazing drum machine, even not modified. There are way more options for munging the sounds on it than most other drum machines.
There is also a cart available, the RX5USB, which allows you to write your own samples to the on board EPROM and use it in the RX5.
<p>
Changes made were:
<p>
<ul>
<li>A new display (was a pain, it's not common)
<li>LTC1799 pitch mod (works only after turning on, needs stock crystal to boot)
<li>Rom bends
</ul>
</td></tr>
</font>
</table>
<p>
<p>
<img SRC="pics/hacking/rx5/rx5_with_mods.jpg" NOSAVE height=400 width=500 alt="Circuit bent Yamaha RX-5">
<p>
<img SRC="pics/hacking/rx5/IMG_1843.jpg" NOSAVE height=400 width=500 alt="ROM bends">
<img SRC="pics/hacking/rx5/IMG_1844.jpg" NOSAVE height=400 width=500 alt="Crystal for clock">
<p>
<img SRC="pics/hacking/rx5/IMG_1891.jpg" NOSAVE height=400 width=500 alt="Testing 4066 and LTC">
<img SRC="pics/hacking/rx5/IMG_3095.jpg" NOSAVE height=400 width=500 alt="Non working display w/ a resistor for correct contrast">
<p>
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Akai Remix 16 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="remix16">Akai Remix 16: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
The Akai Remix 16 is more of a DJ phrasing sampler than anything else, but it can make some interesting sounds when bent.
<p>
Changes made were:
<p>
<ul>
<li>RAM bends exposed through 2.54 sockets (crazy fine pitch on the RAM)
<li>LTC1799 pitch mod
<li>Gotek floppy emulator
</ul>
</td></tr>
</font>
</table>
<p>
<p>
<img SRC="pics/hacking/remix_16/IMG_3592.JPG" NOSAVE height=400 width=500 alt="Done and mounted on unit">
<p>
<img SRC="pics/hacking/remix_16/IMG_3483.JPG" NOSAVE height=400 width=400 alt="In progress">
<img SRC="pics/hacking/remix_16/IMG_3484.JPG" NOSAVE height=400 width=400 alt="Wiring">
<p>
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Alesis QSR *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="qsr">Alesis QSR: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
The Alesis QSR is a rompler, but allows for using your own samples via a PCMCIA RAM Card. It also has a decent modulation matrix.
Bending this was a super pain due to the placement and pitch of the mask roms, and the OS is very touchy about address changes.
<p>
Changes made were:
<p>
<ul>
<li>ROM bends exposed through 2.54 sockets (unfortunately most addr/data pins end up with "Address Error" if switched on too long)
<li>LTC1799 pitch mod
<li>Rack faceplate
</ul>
</td></tr>
</font>
</table>
<p>
<p>
<img SRC="pics/hacking/qsr/IMG_3665.JPG" NOSAVE height=400 width=500 alt="">
<img SRC="pics/hacking/qsr/IMG_3600.JPG" NOSAVE height=400 width=500 alt="">
<p>
<img SRC="pics/hacking/qsr/IMG_3601.JPG" NOSAVE height=400 width=400 alt="">
<img SRC="pics/hacking/qsr/IMG_3641.JPG" NOSAVE height=400 width=400 alt="">
<p>
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Yamaha TG-33 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="tg33">Yamaha TG33: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
This is an oddball, it's an FM synth with lo-fi samples and a joystick. I love it.
<p>
Changes made were:
<p>
<ul>
<li>ROM bends exposed through 2.54 sockets
<li>LTC1799 pitch mod
<li>CV input to vectory joystick X/Y
<li>4066 trigger inputs to switches
</ul>
</td></tr>
</font>
</table>
<p>
<p>
<img SRC="pics/hacking/tg33/IMG_3668.JPG" NOSAVE height=400 width=500 alt="">
<img SRC="pics/hacking/tg33/IMG_3674.JPG" NOSAVE height=400 width=500 alt="">
<p>
<img SRC="pics/hacking/tg33/IMG_3679.JPG" NOSAVE height=400 width=400 alt="">
<img SRC="pics/hacking/tg33/IMG_3629.JPG" NOSAVE height=400 width=400 alt="">
<p>
<img SRC="pics/hacking/tg33/IMG_3630.JPG" NOSAVE height=400 width=500 alt="">
<img SRC="pics/hacking/tg33/IMG_3632.JPG" NOSAVE height=400 width=400 alt="">
<p>
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Yamaha RM-50 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="rm50">Yamaha RM50: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
Drum machine/synth. Lots of options for creating sounds and lots of inputs/outputs.
<p>
Changes made were:
<p>
<ul>
<li>ROM bends exposed through banana jacks
<li>Rack faceplate w/ momentary and toggle switches
<li>Memory expansion for loading samples
</ul>
</td></tr>
</font>
</table>
<p>
I didn't take a lot of pics of this one. The white plastic washers were to work around
the fact that the banana jacks and switches are in contact with the panel creating one huge short.
<p>
<img SRC="pics/hacking/rm50.jpg" NOSAVE height=400 width=400 alt="Rack panel">
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Korg Kaoss Pad 2 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="kaoss">Korg Kaoss Pad 2: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
Cool effects/sampler box with XY touch control. This version has MIDI control which allows for more options.
<p>
Changes made were:
<p>
<ul>
<li>RAM bends exposed through 2.54 sockets
<li>LTC1799 pitch mod
<li>Added a small toggle to act as the pad motion but not need to be held down.
</ul>
</td></tr>
</font>
</table>
<p>
<p>
<img SRC="pics/hacking/kaoss/IMG_3723.JPG" NOSAVE height=500 width=500 alt="Done and mounted on unit">
<p>
<img SRC="pics/hacking/kaoss/IMG_3687.JPG" NOSAVE height=400 width=400 alt="Wiring to chip">
<img SRC="pics/hacking/kaoss/IMG_3688.JPG" NOSAVE height=400 width=400 alt="Routing to external box">
<img SRC="pics/hacking/kaoss/IMG_3689.JPG" NOSAVE height=400 width=400 alt="Hole to external box">
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** Rapman *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="rapman">Casio "Rapman" RAP-1 toy synth: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
This thing is ridiculous... none of the sounds are really good nor is the synth. With the bends it is slightly better.
<p>
Changes made were:
<p>
<ul>
<li>External in for microphone control of the vocoder (distorts AWESOME), switching jack so onboard mic still works too
<li>Fixed the broken key as best I could with some kitbashing
<li>Added glitch switches after experimenting on the board. Some are pretty good, some cause a lockup after a little while.
<li>Added a pot and switch to control the main oscillator
</ul>
</td></tr>
</font>
</table>
<p>
<p>
<img SRC="pics/hacking/rapman/IMG_3729.JPG" NOSAVE height=400 width=400 alt="Input jack">
<img SRC="pics/hacking/rapman/IMG_3730.JPG" NOSAVE height=400 width=400 alt="Fixed key">
<img SRC="pics/hacking/rapman/IMG_3731.JPG" NOSAVE height=400 width=400 alt="Glitch momentaries">
<img SRC="pics/hacking/rapman/IMG_3732.JPG" NOSAVE height=400 width=400 alt="Oscillator control and some switch for the drums">
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<! **************** TR-626 *****************>
<table border="0" width="50%" cellspacing="5" cellpadding="5">
<font face="Verdana">
<tr><td width="100%" align="left">
<p>
<b><h3>
<a name="626">Roland TR-626: </a>
</b>
</h3>
</td></tr>
<tr><td width="100%" align="left">
<p>
The Roland TR-626 came out in 1987. OK sounds, but with the bends and different ROMs you can get lots of interesting variations, including mucking with
the patterns which most bent drum machines won't do.
<p>
Changes made were:
<p>
<ul>
<li>
I installed a ROM Expansion kit from HKA design and also broke out the pins to an external ZIF socket so I can swap the sounds easily.
The stock sounds are still installed inside. The switches to swap between chips and banks are exposed via the sockets so I can change on
the fly (which makes for some cool sounds).
<li>
The circuit bends ROM patch points for which I used tiny 2.54mm sockets rather than banana or 3.5mm jacks.
Any of these can be routed to 2 momentary and 2 toggle switches in addition to be being controlled via the 2 3.5mm trigger inputs. These 2 inputs
connect to a 4066 switch chip. When the chip gets a 5v signal, it "shorts" the 2 patched inputs, so you can externally control bends with something
like an Ardunio, Teensy, or the gate/trigger output of modular synths.
<li>
I also did the standard LTC1799 pitch control mod. First a 3 way toggle to go through all the different ranges of the LTC
circuit. Course and fine pot controls. The input into the LTC is a socket pair, so I can plug in
a photoresistor or vactrol, etc rather than the pots.
<li>
Swapped out the soldered on button battery for a case with an on/off switch.
</ul>
</td></tr>
</font>
</table>
<p>
<p>
<img SRC="pics/hacking/tr626/IMG_5873.JPG" NOSAVE height=400 width=400 alt="Bends on the non ROM chip">
<img SRC="pics/hacking/tr626/IMG_5874.JPG" NOSAVE height=400 width=400 alt="The ROM card with all breakout wiring">
<img SRC="pics/hacking/tr626/IMG_5872.JPG" NOSAVE height=400 width=400 alt="Most of the wiring done">
<img SRC="pics/hacking/tr626/IMG_5871.JPG" NOSAVE height=400 width=400 alt="New battery case">
<p>
<img SRC="pics/hacking/tr626/IMG_5881.JPG" NOSAVE height=400 width=500 alt="All done">
<p>
<p>
<table border="0" width="75%" cellspacing="5" cellpadding="0">
<tr><td width="100%" align="left"><p><img SRC="pics/buttons/red_bar.gif" NOSAVE height=2 width=700> </tr>
</table>
<p>
<p>
<center><p><a href="index.html"><img SRC="pics/buttons/hacking_back_button_text.jpg" NOSAVE border=0 height=50 width=150 align=TEXTTOP></a></center>
</body>
</html>