The Casio SK-1 keyboard is rather well-known within the “circuit bending” scene, where its simple internals lend themselves to modifications and tweaks to regulate the device’s output in many interesting ways. But creating music via circuit bending the SK-1 could be tiresome, because it boils lower to twiddling with the internals blindly until it may sound awesome. [Nick Cost] wanted to behave a little more scientific, and made the decision to test replacing his SK-1’s ROM by having an Arduino so he might take complete manage it.
Replacing the ROM nick with header pins.
That’s the concept, anyway. At this time he’s become so far as dumping the ROM and becoming the Arduino connected instead of it. Regrettably the resulting seem invokes mental pictures of a 56K modem being cooked inside a microwave. Clearly [Nick] continues to have some work in front of him.
For the time being though, the progress is fascinating enough. He could pull the initial NEC 23C256 nick from the keyboard and browse its contents utilizing an Arduino and a few code he cooked up, and he’s even place the dump online for just about any other SK-1 online hackers available. Then he authored newer and more effective code for that Arduino to spit data in the ROM dump to the laptop keyboard when requested. Theoretically, it ought to seem just like before, however with the additional capability to “forge” the information returning to the laptop keyboard to create new sounds.
It makes sense that which you hear within the video linked following the break. Not quite what [Nick] been on mind. After a little snooping using the logic analyzer, he believes the problem is the Arduino can’t respond as quickly as the initial NEC nick did. He’s now got an NVRAM nick on to switch the original NEC nick the concept is the fact that he is able to still make use of the Arduino to reprogram the NVRAM nick as he really wants to alter the seem.
We’ve covered some pretty fancy circuit bent instruments here previously, but when you’re searching for something a little simpler to obtain your ft wet we ran a start-to-finish guide during the Ye Days Of Old of 2011 which needs to be useful.
Publish navigation
27 ideas on “ Circuit Bent Casio SK-1 will get an Arduino Brain ”
The arduino could easily switch the rom nick. You just need to program it correctly rather of utilizing that digitalWrite crap.
Eh, emulating a ROM isn’t within 8-bit microcontroller capacity.
The Atari 2600’s Harmony cart emulates a 8 bit ROM at 1.2MHz utilizing a 70MHz ARM.
This really is around the cusp. The ROM is 200ns access some time and the Arduino includes a 62.5ns clock cycle so it’s doable with tight code and interrupts. Presuming the Arduino is a instruction per clock and never 4.
Nah, certainly not. Atmega interrupt latency, as well as the time for you to copy the worth in the pins to some table and perform the lookup and relay the worth out? Way too slow.
Bear in mind the access duration of the 2600 is really a glacial 420ns.
If it is doable then without interrupts in an exceedingly tight polling loop. Interruots for use for that exterior interface, if you wish to reprogram it. But an “EPROM emulator” concept by having an NV RAM is way better.
Is replacing the ROM of the electric synth using what comes down to an emulator really circuit bending? Not too it’s not interesting… obviously the unit already is really a music instrument, and yet another link is really a modification of the music instrument also. Appear a lot more like electronic music instrument hacks instead of circuit bending, for me. I had been of the opinion the awesome/clever facet of circuit bending ended up being to modify circuits that aren’t already made to be synthesizers. Not really a huge issue, and awesome hack in almost any situation!
I’m able to remember modifications for very Casio “noise makers” such as the VL-Tone. I’m able to almost picture some saying “well I suspected only at that and fiddled at that”, partly because information was scarce (concerning the ICs, concerning the equipment) so “fiddling” was what you want.
That appears to suit the idea of “bending ” because it came into existence used. Altering something, frequently if you attempt, to obtain another feature. I am not sure it truly is about “making a synthesizer from something else”
Resistors. Diodes. Capacitors. Inductors. Lengthy ago, the 4 passive components resided together harmoniously. Then, everything altered once the Diodes attacked. Only Ghazala, master of four passive components, could stop them…
this looks promising! will like to check out the progress about this (i believe i’ve 8 or 9 sk1 keyboards to experience with). i’d love to determine soneone hack the cartridge slot as if you get in the pt82 (yet others)…
He’s on course however that CPU appears to become in the 1980’s (from memory).
I appear to keep in mind it getting used in us dot matrix printers of this era and when memory serves me properly it had been most frequently a Quad Inline Pins package.
The next thing is to create some code to split up the information ares in the instruction areas.
produce a byte array how big the ROM (or perhaps an eighth from the size like a but array) to keep binary values that behave as a flag for either code or data.
produce a variable length double byte array like a code thread stack to keep ROM addresses
Find all of the binary values for branch instructions.
Start studying the ROM from &h0000 and mark each address as code within the code flag array.
Whenever you achieve a branch address then push that address in to the stack array.
While you’re reading a previous address that was already read then drop that thread, pop a previous address in the stack array and begin from that address, When there aren’t any more addresses within the stack array your done and also the flag array will explain which addresses are code. The code could be disassembled and you can begin searching in the data.
Now write another program to focus on any read instruction that read from areas that aren’t flagged as code and you’ll get a concept of the way the information is construed.
FWIW, The ROM sample data begins at byte offset 2816 within the bin file. Just load-in the bin file within an audio editor of your liking as unsigned 8-bit audio. Sweet 1980’s samples.
Oh, and mono…clearly mono.
hmm, appears allot of samples are missing out of this? or possibly its remodulating others.
Possibly, you’ll notice there are several fundamental tones inside, like sine, organ, horn. I’ve never performed by having an SK-1, and so i have no idea what sounds it can make in the factory…always did have to have one like a kid, though. But when I came across MOD music, it had been moot.
Wow, you realize the kodak playtouch camcorder well. I couldn’t even find asm info for that CPU. It appears to become a custom CPU produced by Casio plus they didn’t to produce data sheet for this.
Where have you get the info?
I required a fast try looking in a hex editor, and observed the familiar signatures of unsigned 8 bit mono samples…loaded it into a sound editor there these were 🙂
Final listing of sample offsets / lengths from that bin:
Offset Len
0x0B00 256
0x0C00 128
0x0C80 128
0x0D00 128
0x0D80 128
0x0E00 256
0x0F00 128
0x0F80 128
0x1000 4096
0x2000 8192
0x4000 4096
0x5000 4096
0x6000 8192
Architecture seems to become little endian. A catalog of samples seems at 0x85C:
00 20 – sample 10
00 60 – sample 13
00 10 – sample 9
00 40 – sample 11
00 50 – sample 12
80 0f – sample 8
00 0b – sample 1
00 0e – sample 6
I really like the SK-1 and thinking someone might make headway having a “modern” revision.
they’ve, its known as an op-1.
Only a general ‘bending question here Can a shift register having a pot connected to the time studying a piano matrix be utilized for an arpeggio generator?
My two cents worth – When the goal would be to develop a ROM emulator (RAM. ), then it is really an interesting but round-about method of doing the work. When the goal would be to bend seem, why don’t you emulate the ROM inside a much easier way (static RAM shared through the Arduino, or similar), therefore the real task of bending seem could be tackled. Just saying…
If it is quick enough, you can even modify it without anyone’s knowledge. Like the combined access of CPU and VIC 2 within the C64.
The Arduino may take constantly he really wants to write content and also the keyboard can see as quickly as it can…
It’s probably the Oki SoC utilized in the SK-1 is wearing-board ROM. The exterior ROM looks a lot more like it simply contains an construed bytecode, plus samples.
After searching in the ROM dump, it appears nearly the same as the the exterior ROM only contains samples and construed bytecode. The MSM6283-01GS likely comes with an internal program ROM. Other Casio keyboards use other variants with various suffixes, such as the MSM6283-05GS within the DM-100 dual-manual keyboard. It’s likely the various suffixes are identical SoC with various internal programs. It might be good sooner or later to gather all of the different versions from the MSM6283 SoC and decap these to find out the CPU core and extract any internal ROM data.
I searched wishing to locate information on this CPU.
Used to do find information on other chips within the MSM series which had internal ROM however they were mostly speech synths chips.
And So I ask the reason why you state that this perticular nick has internal ROM which the exterior ROM has construed bytecode?
The manual states –
“The capacity of ROM is 256Kbit and possesses this program for system execution”
256kbit (or 32kByte) will be a lot for construed code.
Leave an answer Cancel reply
This website uses Akismet to lessen junk e-mail. Find out how your comment information is processed.
Never miss a hack
Should you missed it
Designing Space-Rated PCBs
Shushing Sonic Booms: NASA’s Supersonic X-Plane to consider Flight in 2021
5 Year Old Bug Spawns Router Botnet Monster
Creating Black Holes: Division By Zero Used
Flagging Lower Aliens with World’s Greatest Laser Pointer
Groups
Our Posts
Hackaday Links: November 25, 2018
Fail each week: Did My Laser Cutter Tube Really Burn Up?
The Linux Throwie: A Non-Spacefaring Satellite
Of Roach Killer and Rust Remover: Mike Zeloof’s Garage-Made Chips
Fail Each Week: Once the Epoxy-Coated Nick Is Conductive
improvisation with Casio sk1
Video COMMENTS:
- Lachlant1984: Have either of those keyboards been circuit bent?
- ScriptTwiceFilmOnce: not sure why but this started to hit in the feels at 1:17
- Electronic Petz: lovely !
- jumpyFKB: made me think of gamelan !!! come and join the casio freaks group on facebook 😉
- I AM DOOM NOT GROOT: what's the green/black piece next to the SK's?
- David Santos: hello
gret video. i love this
does anybody know what's that black and red thing and it does?
thanks
- Matt Palmer: shit is boring my guy
- Emily Tallman: what are you sliding under the keys to hold them down?
- carlosocarnero: Amazing, reminds me of Ricky Eat Acid
- Eefje van den brink: doe je nog iets met die keyboards, of liggen ze ergens te verstoffen? zo ja, dan koop ik ze graaaaag van je over 🙂
- Kling The Poster: Is it ok if I sample bits of this for a song?
- MuggsyStyle: what kind of mixer are you using?
- MaxCL: Do you have more videos ?
- Marc Brassé: Nice! Ever heard of Pierre Schaeffer? Basically what you are making is Musique Concrete.
- Martín Donaldo Gómez Plata: Awesome
- Folks Around: Are the sk1s bent? Nvm doesn't matter this is great you should post some more
- Die, Master Monkey: My broh! I use the SK in every single set – Casio Lo Fi Forever! 🙂
- doran stewart stewart: how did tou mic everything up.
- Fedro Fuzzi: sorry for the silly question, but did you use a speaker for listening to what you were doing? Nice improv
- sonomama82: Awesome
- PSS-270 Casio-Core Music.: Very good CASIO stuff.
- Gary D: Dude you are hella cool I think we're from the same planet. 🙂
- Jesse Juup: Hey, cool stuff! Check out the guitarpedals on synths and drummachines group on facebook! Lots of likeminded artists…
- JunkJams: kept thinking there was someone at the door
- Matthew Fraser: I'm not sure why…. but I'm just expecting King Crimson to bust in at any given moment.
- once upon a synth: That was really creative, nice job!
- Gabriel Martignon: awesome
- islesandice: What pedal are you using?
- Mr. Thanatogenous: Great stuff!
- epitome of incomprehensibility: Cool. I especially liked the pitch shift at the end. And the way the white noise (the "ffff" sound), that at first seemed vaguely annoying, became part of the beat.
- sonoro1: Fuck ya!