[We thought we would take the opportunity this post to ask Kunal Jain, the TripleC tech lead, to describe what we've built-- both from the hardware and software end. This has been a big development project (not done yet), that has been challenging but a lot of fun. On the implementation side, things are going well, with 2nd (and 3rd) round workshops happening this spring and summer in NYC, New Delhi, Manila, Shanghai, and Beijing. But enough of that, and back to the tech. Take it away Kunal!]
(This is Kunal...)
Notes on building a compact portable teaching kit...
Hi everyone! TripleC's ‘Code Combinator’ platform is targeted at late middle-school/early high-school age youth from semi-urban/rural regions in combination with their counterparts in more developed/urban contexts. Our intention is to link participants from different countries and different cultures, with the hope of providing insight into level of exposure of technology and how it affects learning new platforms, as well as exposure to different experiences with a networked environment. To enable this, the tech platform and hardware kits we have developed as part of the project are applicable across these groups, regardless of socio/economic/lingual/cultural barriers. We are currently working with 4 locations across continents:
- Parsons + Maker Academy, New York, USA
- Russell School, Shanghai, and Dandelion School, Beijing, China
- Rajmala School, Gurgaon, India
- Taguig school, Manila, Philippines
The disparate cultural differences are intentional as we intend to observer and research into how these students learn the platform and interact with each other. Most of the first-cycle workshop tests have occurred in urban and/or semi-urban environments (both Manila and New Delhi have been “semi” urban, while Beijing and New York have been smack in the middle of the city). Also many locations have very minimal technological exposure but at are at the cusp of a massive networked escalation. While other locations are embedded within one of the most connected cities in the world. To allow for such observations, we have implemented the workshop format, during which we set up networked stations and get the students (and faculty) to work on the projects. For this end, we created a teaching station kit that includes the hardware and software configuration required to run a reasonably self-contained computer system for the workshop. The kit design had to satisfy the following requirements:
- portable: easy to carry to remote locations
- self-contained: all hardware requirements should be included
- locally sourced: all components should be locally available where possible
- provide alternative power
- easy set-up: software should be ready to use
- work within a local network
- allow for alternate internet connectivity
All apps (offline/online) have been designed to be lightweight and run off a basic Raspberry Pi computer for students as well as teachers (we have used model Raspberry Pi 2). To simplify deployment, our portable kit comprised of:
- Raspberry Pi 2 configured to connect automatically to the local wifi network (as is 3) and to open the triplec app in the browser
- wired keyboard/mouse
- compact wireless router configured to create a local wifi network and a local server (teacher station)
- pre-configured Sonic-Pi application and sound setup
- compact speakers
- 7” Pi Foundation touchscreen display
- Portable pico projector (as a backup presentation tool)
- 14Ah portable battery powerbank
- extra wires, adapters etc.
These are organized within a compact padded backpack for portability and convenience. SInce electricity is very unreliable in the semi-urban areas chosen for the workshops, the kit was designed to be self-powered up to realistic timeframes but are still investigating into provision of a reliable continuous electricity source to power the kit (solar). Network access is also a large concern in these areas, hence, are also working with providing a temporary internet access to allow for social connectivity during the workshop sessions.
A punch list for our overall tech implementation would look something like this:
- TripleC kits (hardware). Complete, functional, and tested on site(s)
- The TripleC central web server running the Code Combinator web application. Complete, functional, and tested on site(s)
- The Code Combinator software. Basics are functional, including the versioning system. Translator yet to be implemented.
- Additional web and server application features currently under development: direct output from Sonic coding window, comments screen, authors, live upload mode
In at least two of our test locations, reliable electricity has been a problem, so we have looked at using either solar or battery power. Our main testing suggests that the battery approach (basically just a large external phone battery running something like 12-20Ah) will work fine, and is relatively inexpensive. The assembly requires an average of 2.5A (a standard mobile phone charger provides about 1A of power, though many recent phones do ask for 2A) of sustained current to run the pi, keyboard, mouse, wifi adapter and then screen. Currently the router and the speakers are run directly on AC. It may be possible to switch the speakers to a battery operated product, and substitute the wifi router with a more portable bus-powered version, but these items are not essential for the purpose of the operation of the kit.
The battery packs we tested were the RAVPower 13.4Ah bank that provides 2.4A on one of its output. Theoretically, this should provide the kit with continuous power for about 5.5 hrs. In real world testing and running with all items plugged in and running, we recorded 4.5 hrs of usage. This should be enough to run the kit is any typical workshop environment.
Power drain and UPS (Uninterruptible Power Supply)
Another use case we tested was using the powerbank as a UPS, essentially providing continuous power during blackouts as well as grid supply. This is a more typical use case in our locations where power exists but is intermittent and unreliable. The powerbanks have a rapid charging capability, theoretically being able to charge from 0% to 100% within 3 hrs. We tested this charging capacity while using the kit, to see if there was any significant power drain during the charging process. We didn’t notice any degradation during a 4 hrs observation period and the pack was able to charge within 3 hrs while simultaneously powering the setup.
The CODE COMBINATOR:
Now a bit about the software/web development. We are building a web-based application called the ‘Code Combinator’, to power the code coding, as well as sharing and archiving of all the content generated by the students.
The Code Combinator is powered by the Ruby on Rails framework and hosted on Heroku and Amazon AWS linux/nginx infrastructure and integrates a versioning system, translator, and a REST-based interface for data exchange between servers/stations. The final code will be open source. A locally hosted version for the teacher kit is also in consideration to allow offline classrooms to continue to host and share their content with each other. mySQL is our database of choice.
The web application client is designed to run with minimal resource loads, with responsive frontend (using the Zurb Foundation frontend responsive framework). It has been designed to run on the pi’s default OS, Raspian, with customized Sonic Pi v2 (Code Combinator client). “Black box inside a glass box” design approach used here.
The Code Combinator web application is designed as a secure network platform with a strong privacy model to secure all identification markers for contributed code. Other application features: Direct output from Sonic coding window, viewing/contributing versions with comments + authors, live mode, node-based entity model.
The basic application architecture diagram is as follows:
And the Code Combinator acts like this:
Students and teachers and other users can upload their music code here and then share with other students and teams following a process of permission-based interactions. This process is similar to the methods employed by most popular social networks. Here are a few screenshots of the final web interface:
A FEW FINAL OBSERVATIONS:
During our past two workshops in Gurgaon and Manila, this tech implementation has pretty much worked as we expected it to (Rails is a solid, well supported platform and we aren’t trying to build an overly complicated thing). Once the sites and workshops move onto the network, we will have to stress and security-test our primary web server, but we aren’t expecting much issue (the bandwidth of the data and apps involves is pretty lightweight).
The kit components and structure will keep evolving as we do more field testing, but there are a few key areas that require more research:
- Selecting a more sustainable power source
- Building (3d print or retrofit) a custom housing unit to hold the Pi and the screen together
And on a final happy note, we are really thrilled with the new, inexpensive 7" Raspberry Pi screen that has just been released. It's made a huge difference as we transport these kits around. We'll end her with a celebratory picture:
And here's a last shot with everything put together (no speakers). The RPi fits behind the screen:
That's all for now. Thanks for reading. We are trying to convince Michie to write the next post live from Manila when she is there this summer. More soon!