Programming a microcontroller without a computer

cassie_arduino_audio.jpg

Say you want to build a re-programmable toy, but the person you are making it for doesn't have access to a computer. How could you do it? Charlie Robinson looked to the past to solve this problem with his Arduino Cassette Engine. His project allows an Arduino to interpret specially coded audio files as binary data, which can then be stored to a memory card. The current version seems to be just storing the data, however there is no conceptual reason why this couldn't be used to actually reprogram the device once it is downloaded.

So, why is this interesting? Well, if the Arduino can be programmed using audio, then suddenly anything with a speaker can be made into a programmer. I think it would be pretty funny if you could use, say, a garden variety cell phone with some Java software to write programs for your micro.

What do you think, is there some potential here, or would it be better to just give aspiring programmers a regular computer to hack on? [Thanks Matt!]

Arduino photo by Matt Biddulph.


Recent Entries

Comments

Oldest comments listed first.

Posted by: Mace Moneta on November 10, 2009 at 6:17 PM

Hello, netbooks?

With netbooks available under $200 capable of running a full Linux distribution for development, this seems a wasted effort.


Posted by: youevolve on November 10, 2009 at 6:27 PM

Memories

Ah the sweet sweet squeal of playing back a recorded program on my Timex Sinclair 1000.....


Posted by: Fair Witness on November 10, 2009 at 6:41 PM

Memories

Yes, nothing sold Apple disk drives faster than trying to reload a program from cassette tape and getting a load error for the ninth time...


Posted by: Steve P. on November 10, 2009 at 6:43 PM

Back to the future...

So, what about this is new? Modulated-audio data on cassettes was THE way many gen-1 personal computers loaded programs. I have several shoeboxes full of program cassettes in the attic, along with a few burned-out Timex Sinclairs and various other relics.


Posted by: Ron on November 10, 2009 at 6:55 PM

rCube Clock Is Programmed With Tones

The rCube talking clock uses this technique as an alternate way to set the time. You enter a value on the website and it creates a series of tones which the microphone in the clock picks up.

http://www.rivalonline.com/configureFeature.htm


Posted by: alandove on November 10, 2009 at 7:15 PM

Still Have To Record the Tape

Allowing the Arduino to receive data in audio format doesn't solve the programming problem. One still needs to convert a program into an audio stream somehow. Unless the users have somehow figured out how to compose their programs musically and whistle them into a microphone, my guess is that a computer will still be the best way to write code.

If the real goal is to enable microcontroller development on a cell phone, it seems like there would be easier ways to handle the data transfer, such as Bluetooth or USB.


Posted by: Nightstar on November 10, 2009 at 7:20 PM

We old times use KC Standard and vinyl records!!! ^_^

Timex... That was mid 80's. Try 70's for the better cassette engines.

Try Kansas City Standard. Did both 1200/300bps. Uses that with a SWTP before went with dual single sided 5 1/4 floppies then 8" disk around the early 80's.

Back in the late 70's some mag's had those limited play records.

The best cassette interface. That was always solid. Was on the RS Color Computer. Very simple circuit. Unless the tape recorder was a mess would save and load ok. Very tolerant of line levels. Even had motor control that worked very well.

Seem to remember a super remote that use an audio CD or something to update it. Around early 90's I think.

If it only to write program on it then a Text/graphics LCD or composit video with a keyboard would be easier... Look at some of the Parallax Propeller setups... It can do video with a few resistors and caps...

Good luck...


Posted by: CircuitGizmos on November 11, 2009 at 4:39 AM

Very familiar

There are some reading your comment that might gloss over the SWTP reference, but I lived all that. I built/programmed my own tape interface for a Z80. I even had a test tone/code for setting playback levels. It took longer to load, but made really long loads less likely to fail.

My next attempt was to use DTMF (phone touch-tone) on tape. Short programs were faster to load.

Those were the days.


Posted by: alanc on November 10, 2009 at 11:41 PM

back to 1st personal computers

wahooo reminds me ORIC Atmos or Commodore 64

my 1St "computer"


Posted by: Alessandro on November 11, 2009 at 2:34 AM

Nothing new, and even no schematic and source !...

Am I wrong or there's no schematic and source ("to be added" and that dates back to April 2008...1st - a kind or joke ? ) .

Placing data on a cassette tape looks very attractive to me, we've done so for years and it looked a convenient way.
Sinclair ZX Spectrum, as an example, had a very simple and well reverse-engineered hardware/software interface, reliable also : porting that to Arduino should have been very straightforward. A good idea but not finished here . I put it on a 'to do list' for myself.
Best
A.


Posted by: Alessandro on November 11, 2009 at 2:42 AM

Ooops !

Reading the html source I found the link to the source code...couldn't spot it in the text ! I need better glasses .
Sorry.

The schematic would help still..

Best


Posted by: Ken Booher on November 11, 2009 at 3:38 AM

Atari Memories

My first computer, an Atari 800XL used many different storage and programming devices, among them was a cassette. They're slow, but if someone could come up with a 'fast play' on one, you would be in business, so to speak. Instead of the usual cassette recording head, use a hard drive pick-up mounted in its place. I'll be the data will be 'crisper' too.


Posted by: Robomarkov on November 11, 2009 at 6:25 AM

Old style

This is a joke, right? Or shall I break out my old Atari 410?

One of the big problems I had with the old Atari 410 was a "serial bus data frame checksum error". If the tape was used a lot, then it would stretch and then the data framing would get lost.

I used to work with some satellite tracking equipment that recorded data to a cassette. Both sides of the cassette were used at the same time. Side A had the data, and side B had a frequency on it that kept the tape data synchronized. The side B tone was used to keep the tape spindles moving at a constant rate.


Posted by: Rich on November 11, 2009 at 7:10 AM

CLOAD!

Wow - I'm having flashbacks of typing CLOAD / CSAVE on my old TRS-80. I also used a synthesizer that had tape save / restore feature. It was better than nothing!

This is great from a novelty standpoint (and hacking for the sake of novelty is a righteous endeavor), but I don't see much use for it given the previous comments on the cost of a computer.

Has anyone come up with an Arduino setup that can program another Arduino? Something like a keyboard hooked up to a board with a small LCD screen? Mmm? Mmm?


Posted by: JennaSys on November 11, 2009 at 5:37 PM

Reusing Old Tech

I think the premise given as an excuse to do this is kinda weak, but the retro geekiness potential is certainly there. I do like Matt's idea about taking the old technology to another level by not necessarily using tape, but still using sound as a way to transfer data. For example, imagine electronic devices getting "subliminal" audio messages from radio or TV broadcasts just by "listening". Sure there are a myriad of other ways to accomplish this, but sometimes lo-tech can be cheaper, easier to implement, and in many cases more reliable due to fewer "moving parts". In any case, I think it would be a fun experiment.


Posted by: Blockbuster on November 11, 2009 at 8:57 PM

I'm suddenly thinking my old tape of Slayer's Reign In Blood might come in handy...hmmmmm...


Posted by: creatine on November 24, 2009 at 6:16 AM

http://www.vitabits.co.uk/mens-health

So, why is this interesting? Well, if the Arduino can be programmed using audio, then suddenly anything with a speaker can be made into a programmer. I think it would be pretty funny if you could use, say, a garden variety cell phone with some Java software to write programs for your micro.


Leave a comment


Subscribe to MAKE!Subscribe to MAKE Magazine!

Subscribe today, save 42% and get web access to MAKE free. MAKE Digital Edition is available only to subscribers.

$34.95 / 1 year
(4 Quarterly Issues)

Subscribe now


Void your warranty, violate a user agreement, fry a circuit, blow a fuse, poke an eye out. Make: The risk-takers, the doers, the makers of things... Welcome to Make: Online!


CRAFT Maker Shed Maker Faire MAKE television




Check out more videos from MAKE.

Maker SHED

Connect with MAKE

Be a MAKE fan on Facebook MAKE on Facebook
Visit our Facebook page and become a fan of MAKE!
MAKE on Twitter MAKE on Twitter
Follow our MAKE tweets!
MAKE Flickr Pool MAKE on Flickr
Join our MAKE Flickr Pool!
    make_tips on Twitter



    MAKE Archives

    Make: Money

    Make: Science Room
    Subscribe to MAKE Magazine!

    Make: Online editors and authors!

    Gareth BranwynGareth Branwyn
    Editor-in-Chief


    Phillip TorronePhillip Torrone
    Senior Editor
    | Web | Twitter


    Becky SternBecky Stern
    Associate Editor
    | AIM | Twitter


    Marc de VinckMarc de Vinck
    Contributing Writer
    | AIM | Twitter


    John ParkJohn Park
    Contributing Writer
    | Twitter


    Sean RaganSean Ragan
    Contributing Writer
    | Twitter


    Matt MetsMatt Mets
    Contributing Writer
    | AIM | Twitter


    Dale DoughertyDale Dougherty
    Editor & Publisher
    | Twitter


    Shawn ConnallyShawn Connally
    Managing Editor
    | Twitter


    Goli MohammadiGoli Mohammadi
    Associate Managing Editor

    Kip KayKip Kay
    Weekend Projects
    | AIM | Twitter


    Collin CunninghamCollin Cunningham
    Contributing Writer
    | AIM | Twitter

    Adam FlahertyAdam Flaherty
    Contributing Writer
    | AIM | Twitter


    John BaichtalJohn Baichtal
    Contributing Writer
    | AIM | Twitter



    More contributors: Mark Frauenfelder (Editor-in-Chief, MAKE magazine), Kipp Bradford (Technical Consultant/Writer), Chris Connors (Education), Diana Eng (Guest Author), Peter Horvath (Intern), Brian Jepson (O'Reilly Media), Robert Bruce Thompson (Science Room)

    Suggest a Site!

    Advertise here with FM.

    Why advertise on MAKE?
    Read what folks are saying about us!

    Click here to advertise on MAKE!



    Current Podcast

    itunesdl.gif Behind the Scenes at MAKE and CRAFT In January, many of the remote MAKE/CRAFT team members (myself included) convened at the Maker Media headquarters at O'Reilly Media in Sebastopol, California. Take a look behind the scenes of your favorite DIY publications as Goli Mohammadi gives us... More...

    Get the Make: Online sent via email
    Enter your email to receive Make: Online each day:



    Sign up for the Make: Newsletter

    Our Make: Newsletter covers news from maker Media, has original columns, Shed deals, and more! You can also read the archives of past issues.


     



    MAKE Fascination video series brought to you by Dow

    Make: Education
    MAKE: en EspaƱol MAKE: Japan
    Important please read


    Subscribe to MAKE Magazine!

    Recent Posts from the Craft: Blog