Wednesday, July 22, 2009

Sketching in Hardware 2009 - University College London

I was in London last week for the Sketching in Hardware 2009 conference..

This is my second year and this year's conference was even better than last.. I got some time to hack on modkit in between talks and while it rained and everyone else was at the pub (It's London you know)..

Before last week, the modkit interface only supported one board: the Arduino diecimila.. So I spent some time implementing support for additional boards including an XML board definition file defining what blocks get exposed as well as the necessary libraries etc.. I wrote a small library to control the modkit proto (motor) board and then built the block and board definitions. The following is the resulting interface:

Once I added configurable board support, I was able to demonstrate the ease of integrating a new arduino compatible board.. Shigeru Kobayashi's lent me one of the wireless FIO boards he designed on Saturday night.. I got it working in about 20 minutes Sunday morning before my talk.. His response was "wow!" and I agree.. Things are really coming together!

Wednesday, July 15, 2009

(Just In Time for) Sketching In Hardware 2009

We needed a board with integrated motor drivers for our work in the Learn 2 Teach, Teach 2 Learn program.. So I hired Shawn Wallace of AS220 Labs to layout this board based on what we learned from working with the gogoboard and scratch board (now the pico board).. The boards arrived from China just in time to demo at the Sketching in Hardware 2009 Conference where I will be talking about modkit.

The interface is also coming together:

Tuesday, March 31, 2009

Maker Faire, San Mateo 2009

Hi Makers,

Make magazine's publisher Dale Dougherty has been quoted as saying "Makers don't need a
competition to create things. They only need a deadline."

I've signed up to demo the modkit development environment at Bay Area Maker Faire 2009..

I'll keep you posted..


*Update* Here is a video of what I demoed (shot by friend and Make blogger Chris Connors):

Monday, March 9, 2009

Modkit <--> Arduino Interaction

Edit (June 19, 2011): This post is outdated and describes an early prototype software system and a hardware system that Modkit has not continued developing.  We left this post up as it explains some of the reasoning behind a few important design decisions in the software interface.  For an up to date view of how Modkit works with Arduino, please check out our software features.

From the start of the new year I've been moving towards polishing up my modkit work and getting it out.. Besides not being able to devote enough time, I had hit a mental roadblock about how modkit would interact with scratch at the community level and arduino at both the technical and community levels. This meant that when I had cycles to spare (that could have been used to make progress) I could not just dive into implementing things since the philosophical questions still lingered.. People that have seen the prototype interface may recall that I used arduino language blocks including setup and loop function blocks with the blocks resembling scratch graphically..

I have been milling over this and think I've reached some clarity.. I will likely distinguish the blocks from scratch graphically (so as not to confuse users) and I've decided to move away from these arduino constructs and work through what makes sense given modkit's unique goal: Ages 6 - 106, ie: Modkit should be usable by both children and adults and in industry (in prototyping initially).. It is possible that I may come back to these constructs and/or syntax, but only if and when it makes sense given the goals of the Modkit project.. At the same time, I think the Arduino hardware, software, and community will be very important to Modkit and have laid out how I think they will interact:

Arduino ----> Modkit

1) Arduino libraries and shields (or hardware tutorials) can be converted to modblocks hardware and interfaces. This means that modkit can leverage the large number of user contributed libraries by adding simply modkit-bus libraries and creating a modbus interface..

2) Arduino(w/modkit-bus hardware or hack) or Modkit-Arduino can be used to prototype new modblocks hardware modules.. This is very important.. Arduino is essentially the moblocks prototyping module.. In fact, I am using arduino to prototype the new modkit-bus right now (see Serial.end() question below)..

Modkit ----> Arduino

1) Modblocks (modkit's visual ide) programs can be converted to arduino sketches
. When targeting arduino or modkit-arduino (arduino or arduino clone with modkit-bus hardware interface), pin-level functionality is available.. These programs can be converted to arduino sketches using modkit arduino libraries for editing/exploring/flashing/
interpreting(modkit c interpreter).. The main program will be converted to use the setup/loop construct in some non-opaque way.. This means that modkit users (kids and non-programmer adults) can start with simple blocks programing and move to the wide arduino world seamlessly..

2) Modblocks (modkit's hardware) modules can be used with arduino hardware/software using modkit<->arduino interface hardware, and modkit arduino libraries.. This means that any unique modules developed for modkit will be easily usable by arduino users with a hardware interface which can be as simple as a single diode (must disable usb) or with a cheap add on board/shield..

Modkit-bus Software Interaction:

The modkit-bus software interface can be added to standard arduino programs by inclusion of the modkit-bus libraries, but I need a Serial.end() method as described in the following post:

I haven't had any luck getting anyone on the arduino project interested in this, but I haven't poked around much.. I will likely push to get this support in the arduino Serial library directly or will just add my own, more feature rich Serial library.. Everything else could be contained in the modkit-bus libraries..

Modkit-bus Hardware interaction:

The modkit-bus hardware interface can be added to standard arduinos through rx/tx pins and a simple diode (must disable usb) or through a cheap add on module/sheild using a software serial interface..


Friday, March 6, 2009

Hello World

Hello world,

I've been working on a project called Modkit, on and off, for well over a year now and have been thinking about the ideas behind the project for at least the past three years.. In that time, I have discussed, brainstormed, argued and demoed the ideas and ongoing implementation with and for a small but important group of people..

I've talked and demoed around the world @ the Boston Fab Lab, the MIT Media Lab, One Laptop Per Child, the Austin Maker Faire '07, the Bay Area Maker Faire '08, Sketching '08 in Providence RI, Scratch@MIT '08, MagicBox@SmartLab London, and the Second, Third and Fourth International Fab Lab Forums and Symposiums on Digital Fabrication in Lyngen Norway, Pretoria South Africa and at the Museum of Science and Industry in Chicago.

This small but tight knit community of educators, hackers, makers, fabbers, builders, tinkerers, programmers, and doers have helped mold both the technical and ideological aspects of the project.. The project (and myself) have gained immensely from their input, suggestions, and insights.. Unfortunately, the demands of my personal life, community work and thriving software consultancy, often require me to leave the project alone for weeks or months at a time.. But it is the encouragement of this group, that pushes me to neglect my consulting work from time to time, adding a feature or two to Modkit, feeling that I can't neglect my favorite project for too long..

I received much of this encouragement, from the Make (O'Reilly) team or from people I met at their events.. Recently, a friend named Brian Jepson (also an editor at Make) emailed me to ask about Modkit.. His last question made me think:

" Is there a blog/twitter feed I should be following to keep up with developments?"

For the last year, I've been demoing the different stages of my prototype implementation.. When people tell me that they have been dreaming of such a system and would like to know where to download or sign up, I usually exchange emails and tell them I will keep them in the loop.. This usually means emailing them a few months later apologizing that I have not yet opened up a beta program or posted any downloads.. Now I know I need to get this stuff out, but that always seems to be just over the horizon (when I have a "free" weekend to add some functionality, clean up the UI and chase down some javascript bugs - when do I ever have a "free" weekend?)..

In the meantime, here it is: The Modkit Blog! A place to keep all those people-who-have-encouraged-me updated, and have those same people trash me for not releasing this stuff last year (a little pressure never hurts).. Until we open the beta.....

I'll keep you posted,