One of the big challenges to homeschoolers is providing for lab classes such as AP physics. There are suppliers like Pasco http://www.pasco.com/ or Vernier http://www.vernier.com/ that supply most of the lab equipment you find in high school and college classrooms. But their prices are prohibitive for home schooling families.
Initially the goal was to create a low-cost measurement and data-logging system equivalent to Pasco's 850-Universal Interface or Vernier's LabQuest2. The way to reduce costs for such a system is to have an easily reprogrammable control box complemented with a wide range of low-cost sensors and actuators, all sharing a common serial interface. Implementing this common interface requires incorporating an embedded microcontroller into each plug-in device's design, which then creates a system with distributed intelligence. So besides measurement and data logging, it becomes a great platform for robotics.
Several developments come together to make this design concept work. Having smart peripheral devices (PDs) means that a lot of the control box's computational burden can be off-loaded to the individual plug-in devices; the control box becomes a task manager, interacting with the PD's via a small set of high level commands. This simplifies the control box's programming and reduces the complexity and cost of its required hardware.
The hot-swap plug-n-play serial interface is a star-tiered arrangement, with levels and hubs. Bus voltage is 12V. The bus clock is 1.0-MHz, with a 1-ms frame period and time stamp sent out every frame. Using this time stamp, each of the PD's can sync their clocks to within a few microseconds of the control box. Each PD can be given four addresses, one that is unique for control and three that can be party-line addresses so that the control box can broadcast simultaneously to functional clusters of PD's in one command.
The control box's processor core combines a stack-based microcontroller with the serial interface's host controller. This core is written in Verilog and ported to an FPGA. The host controller supports 8 ports. Each port can support an additional 8-port hub for a total of 64 ports maximum. The design goal was to have a control box with sufficient I/O and short enough response time to be able to implement a robotic hand+forearm system or a four-legged walker.
The control box compiles its own source files by itself. There is no programming software, running on a PC, needed for its operation.
After plugging in, the control box will upload from a PD, the low-level command words it needs to talk to that PD. Then, with only a few lines of source code, a homeschooler and/or their parents can have their control box programmed and up and running.
A prototype of the system, as described above, has been built and tested, but the microcontroller's programming is still very much a work in progress. At this point, it occupies about 30-kbytes of memory. While the system clock is only 4.0-MHz, the control box can still maintain a 1-ms input/output response time.