The OLPC Wiki is Locked - Make a Donation to OLPC

Projects/Port S4A

Jump to: navigation, search

Project Title

Porting S4A (Scratch for Arduino) to XO


The objective of our project is porting S4A to XO.

S4A means 'Scratch for Arduino', and it is a modification of Scratch to make it capable of controlling Arduino boards. See S4A web site for complete information and downloading.

It is completely functional, as you can see in the S4A web site. However, its current status is beta.

Currently S4A runs in Windows, Linux and Mac, and, since Scratch is already ported to XO, it should not be difficult to have a successful first version of S4A running in a XO in few months. However, the life cycle of software does not end with deployment, and that is the reason that the project may last as much as needed, since debugging, maintenance and upgrading are required.

Plan of Action

None of the members of the team will be full time dedicated to this project (at least at the beginning), so I guess we will need a couple of months to complete our first port. Two more months for testing and debugging should be enough. After that, the XO version of S4A may keep the same pace of the other versions (Win, Linux, Mac) in what concerns debugging, maintenance and upgrading.


Why is this project needed?

Arduino is one of the cheapest hardware available to play with and learn. Scratch is the best environment ever created to learn programming. Scratch for Arduino is obviously a good idea. Thus, it would be great to be able to use an XO to program and control Arduino boards from Scratch. This is precisely what we have done for Windows, Linux and Mac, and what we want to do for the XO.

We are currently using it locally at Citilab for teaching programming and robotics. We have a small international community that is using it in high schools and universities.

Why can't this project be done in emulation using non-XO machines?

Software dealing directly with serial ports and other hardware is always a little bit tricky. I cannot assure that emulation would not work, but may be risky.

Sharing Deliverables

Project URL:

How will the final fruits of your labor be distributed to children or community members worldwide?

Hopefully inside the XOs they get! Besides that, all our software is open source, so it is available in our web-site for free.

Will your work have any possible application or use outside our community?

In this case this is already done. I mean, any person working with (almost) any computer can use S4A for free. It is available in our web-site and we have versions for Windows, Linux and Mac (OS X). We just wanted to add the XO to the list.


Roughly this time-line would be:

Months 1 and 2: Initial port and working version of S4A in a XO.

Months 3 and 4: Debugging and testing

Months 5 and 6: Final undergraduate CS projects involving Arduino hardware, S4A and the Xos

Beyond 6 months: Debugging, maintenance and upgrade as needed.

Tentative milestones would be:

End of month 2: Working version, maybe with some hopefully non-important bugs.

End of month 4: Making 'S4A for XO' public.

End of month 6: Final student projects started and in progress.

Progress communication: As you see fit. We can adapt to what you may need.