Close
0%
0%

SnapBloks

Tools for students, makers, designers and artists
to quickly demonstrate interactive concepts.

Similar projects worth following
Introducing SnapBloks! It is the latest modular technology for hardware and software development, based-on Arduino system. With SnapBloks, users create, design, and prototype ideas quickly by combining modular sensors and actuators with easy snap-on Blok.

SnapBloks hides the cumbersome hardware wiring with easy three-magnetic-contacts that serve as conductor, powering, and networking. Each Blok does data serialization and deserialization from UART, SPI, I2C, etc into one shared communication line. SnapBloks can also get connected to computer, tablet, smartphone, or other SnapBloks system over local network or to the internet.

Let SnapBloks take care of hardware composition and you concentrate on data handling and manipulation. If you are a hacker, the least requirement for hacking SnapBloks is an Arduino IDE. SnapBloks' core design is open and everyone can add new sensors as many!

One of the early steps in Making, is creating a prototype that serves as an early sample or model from a concept. It can be easily done with Arduino, so grab an Arduino board and some jumper wires, connect some sensors and motors to Arduino, and... voila! You've got your robot built! Or... ups... you might end up with spaghetti wiring and nothing seems to work as expected. Not so great impression when you are introducing Arduino to beginners.

SnapBloks can help demonstrate interactive concept to the world quickly by snapping Bloks together and instantly gather useful information to your computer, tablet, phone, or to the cloud. SnapBloks is meant as complementary tools to speed up productivities. It is based-on Arduino, so we don't reinvent the wheels in the process of making this project to happen.

As a proof of concept that it can be done, we have tried several prototypes as follow:

  1. SnapBloks version 1.0 (a.k.a. eSMAC - Modular Robotic Kit for STEM Education) was featured in the IEEE Robotics and Automation System Magazine, Special Issue on Educational Robotics. For you who do not have access to IEEE articles, you can download from the Files section. The core hardware was develop using TI CC2530.
  2. SnapBloks version 2.0 was born with more user friendly, color coded 3D printed case. Red Bloks are for inputs, Green Bloks are for output, Blue Bloks are for power sources, Orange Bloks are for connectivities, White Bloks are for any Blok that were still under development and testing. SnapBloks v2.0 supports Arduino IDE, powered by STM32Duino. We used ST Microelectronics STM32 for this version. Below you can see the sneak peek of it:
SnapBloks v3.0 is currently planned to be much lower cost than the previous two models. The shape does not have to be circular this time, but we keep the number of contacts the same. For this project, we will use the low cost and famous ESP8266/ESP8285 Wi-Fi chip. Please check our project log for updates. Anyone cares to help are very welcomed aboard!

Adobe Portable Document Format - 44.96 kB - 07/24/2017 at 10:51

Preview
Download

IEEE_RAM_eSMAC.pdf

eSMAC - Modular Robotic Kit for STEM Education

Adobe Portable Document Format - 1.79 MB - 04/03/2017 at 09:16

Preview
Download

  • 2 × ESP8266/8285 Low cost Wi-Fi chip
  • 2 × CH340G Low cost USB to serial converter
  • 2 × USB cables USB micro-AB to USB type A cable
  • 10 × Jumper wires Some wires to do networking test between ESP8266/8285

  • Business Pitch

    Ekawahyu Susilo07/24/2017 at 10:50 0 comments

    This business pitch is also available as PDF file

    Project Background:

    In 2013, a survey was conducted by the Open Source Hardware Association (OSHWA) to collect data about the open source community. This survey found that 90.3% of the participants were using open source hardware. From the demographic standpoint, the top two user backgrounds were in engineering and science, with people coming from high school (13.7%), undergraduate (40.5%), and graduate school (28.8%). In the same year, a Printed Circuit Board (PCB) software company, CadSoft Computer surveyed more than 100 engineers from around the world representing 42 countries to better understand PCB design trends in the electronics industry as they have evolved in 2013. This survey found that 64% of respondents believe that the expansion of development kits has eliminated the need for developing customized PCB. The trend is that engineers seem to favor more in adopting development kits over customizing themselves unless they have to.

    But in contrast, there are groups of people call themselves as Makers. They build complex, impressive, and clever electronic and robotic projects, even though sometimes they have no formal engineering background, less technical education, and limited resources to go beyond manufacturing. On June, 18th, 2014, the first-ever Maker Faire was hosted at the White House. In reaction to the rise of maker culture, President Obama pledged to open several national research and development facilities to the public. “Today’s Do-It-Yourself is tomorrow’s Made in America”, he told participants of the White House Maker Faire. “Your projects are examples of a revolution that’s taking place in American manufacturing - a revolution that can help us create new jobs and industries for decades to come.” This statement has been the stimulant of a growing number of Makers around the world, who want to build something with low-cost manufacturing tools, rather than buy it off-the-shelf.

    Why SnapBloks:

    1. Most development kits come straight from manufacturers and are not open hardware. It comes with an expensive price tag. It is true that development kits are customizable and speed up time-to-develop, but usually it uses vendor-lock-in parts only. In comparison to SnapBloks, it is made of the open source Arduino.

    2. As projects' complexity is growing, breadboards are not ideal anymore because the number of wiring will keep growing and not scalable.

    3. SnapBloks are modular and reusable blocks: no soldering, no wiring. Each Blok snaps together through magnetic contacts. When we are done with those parts, it can be easily detached and reuse for other projects.

    4. Unlike traditional development kit, SnapBloks is designed as a network of interacting elements with physical input and output instead of as standalone devices. This approach makes it perfectly positioned for broadening its adoption to STEM education, toward the “Maker community” at large. The “Maker culture” emphasizes learning-through-doing in a social environment.

    Short Term Business Goal:

    While targeting the global open source community in the long term, SnapBloks has a significant potential for commercialization in the field of Science, Technology, Engineering, and Mathematics (STEM) education, where it can provide an engaging learning-by-doing experience to middle and high school, undergraduate, and graduate students. Therefore, for short term plan, we propose SnapBloks to target any education level aforementioned, by making computer science, mechanical, and electrical engineering more appealing to young students.

    Funding:

    SnapBloks will try to get its traction by starting a campaign on Indiegogo and Kickstarter, rewarding backers with flat-rate ($5-10) reward for each Blok

    Competition:

    Looking at the existing modular electronics and robotic kits in the market, littleBits (http://littlebits.cc) seems to be the closest potential competitor. However, it is...

    Read more »

  • Can We Do It with Arduino Instead?

    Ekawahyu Susilo04/22/2017 at 08:55 0 comments

    Of course you can! As I said in the previous project log, each Blok is basically an Arduino. So, stacking SnapBloks is like stacking Arduinos. Take a look at this equivalent Arduino circuitry (below) for the 3 Bloks example (picture not to scale):

    How many Arduinos we could actually wire all together like this? Well, as many as you could, but it is a lot less cumbersome when you do it with SnapBloks, because:

    1. SnapBloks snaps onto each other with magnet, it uses magnet as conductor to deliver power and local one wire networking. So, no need to provide jumper wires.
    2. Data exchange happens only through one wire with SnapBloks, super easy, no need to think about which wire has to be connected to which pin.
    3. Reusable, no broken or bent component pins due to in and out of breadboard too often for the same sensors/actuators.
    4. Using the 3 Arduino UNOs would cost you $65++ (not including sensors/actuators), but using ESP8285 as Arduino core would cost you a lot less. ESP8285 module sold in the market is like $2-3 each. That's a lot of saving!
    5. Faster development time, snap on, snap off, and things are hot-pluggable by design.

    What if I don't like ESP8285 you asked? Well, it is Arduino anyway, you won't feel the difference. But if you insisted to stick with your favorite platform or microcontroller like AVR, 8051, STM32, etc. (cause you are a hacker for example) you could actually build each Blok yourself. The next project log will talk about essential components you need to create a Blok that can communicate to the rest of SnapBloks system.

  • Single Wire UART Communication

    Ekawahyu Susilo04/15/2017 at 10:01 0 comments

    Single Wire UART Communication, that is how I call it for now. The concept is pretty simple. Let's make a project with Thermometer Blok, Light Blok, Sound Blok, and a Battery Blok. Once we snapped on all Bloks together, they all get power from the Battery Blok through + and - contacts. All Bloks are in listening mode (RX).

    Only one Blok may send data over the wire at a time, like this:

    , or this one:

    but definitely not like the following scenario. When two or more Bloks are in TX mode and sending at the same tim, collision occurs and none of messages went through:

    So how does each Blok know when to send a message? Well, that depends how you program the Bloks. Let's say we want to see the Light Blok flashing when the temperature is beyond 75 degree F, and then the alarm goes off on Sound Blok when the temperature reaches 80 degree F. We could have several solutions listed as follow:

    1. Conditional tests happen internally in Thermometer Blok and then it sends commands to Light and Sound Bloks whenever the condition is met. So, Light and Sound Bloks are passively waiting for commands from the Thermometer Blok.
    2. Thermometer Blok can send messages periodically, Light Blok does the conditional test for beyond 75 degree F reading, and Sound Blok does the conditional test for 80 degree F. So the task is kind of distributed among Bloks.
    3. Light and Sound Bloks take turn in doing data request from Thermometer Blok. Thermometer Blok is passively waiting for acquisition command. Please note that collision might happens because at any given moment in time, Light and Sound Bloks might both switch to TX mode and send messages. There should be a traffic listening mechanism in each Blok before actually switching to TX mode and sending a message.
    4. You could program the Light Blok as a master, acquiring data from Thermometer Blok and send command to set the alarm to Sound Blok.
    5. Etc... etc... etc....

    There are so many solutions we could do for just this one project example with SnapBloks. Each solution has its pros and cons. It all depends on how we would use SnapBloks to solve the problem.

  • Color Coding and Symbols

    Ekawahyu Susilo04/07/2017 at 08:08 0 comments

    SnapBloks uses the following color coding to distinguish Inputs, Outputs, Connectivities, and Power Bloks. One more color coding is white to denote Bloks that are under development and testing.

    Those symbols in the figure, from left to right and top to bottom, they are light, thermometer, wireless connection, battery, sound, and 3-axial accelerometer. Below you may find other SnapBloks' symbols.

    Some of these symbols might not be easy to understand the meaning of it. So feel free to comment or suggest better symbols to represent sensors and actuators.

  • The Three-Legged Stool

    Ekawahyu Susilo04/06/2017 at 09:07 0 comments

    We all know by design theory that four-legged stool is more stabile than three-legged one. But why four-legged stool is always wobbly? Here is the reason why. No one nor machine can actually make a perfect four-legged stool with the exact same length of legs. Reason number two, there is no such thing as perfectly even surface or floor to put the perfect four-legged stool on. Hmmm... what does a four-legged stool have anything to do with SnapBloks? Glad you asked! Remember our first project log about serializer and deserializer? We need two contacts for powering and two contacts for serial data in and out. That is a total of four contacts! No matter how perfect we mounted the magnets on board, the Blok would end up wobbly. It means that we would get wobbly/unstable power or data transmission with four contact points. That is not good at all!

    So what about three-legged stool? Look at a tripod. A tripod, basically, is similar to a three-legged stool. It is very stabile for uneven surface. With this kind of stability, we can make sure that SnapBloks would not experience any unstable or intermittent connection. But wait, how would we reduce the number of contacts from four to three? The simple answer is, we architect the system to send and receive data on one wire only. As a compromise, we have to accept the fact that we can't send serial data in full-duplex mode.

    Alright, we can live with only three contacts, half-duplex it is. And that is how we came up with three magnetic contacts solution on SnapBloks, from the very first design started at about two years ago and we keep it the same until today.

  • SnapBloks Facts!

    Ekawahyu Susilo04/06/2017 at 08:23 0 comments

    FACT #1: MODULAR AND REUSABLE SNAP-ON BLOK

    The joy of soldering and wiring on breadboard. This has been the fun (or difficult) part for new comers and beginners. But once we become experts in the field, every one of us, get bored real quick of this repetition job. Most of us just want to go straight to see some real actions. For some, it may even too much to ask to solder for just one sensor. SnapBloks requires no soldering and no wiring for the most parts. Each Blok snaps together through magnetic contacts. When we are done with those parts, it can be easily detached and reuse for other projects.

    FACT #2: MAGNETIC CONTACTS WORK ALSO AS CONDUCTOR

    Magnet is made of brittle material and it is not conductive. So how can we use those three magnetic contacts to deliver power and data? It is simple. Magnet plating and coating material actually is conductor!

    FACT #3: SERIALIZER / DESERIALIZER BUILT-IN

    The following connection/interfacing: UART, SPI, I2C, CAN, USB, Ethernet, Wi-Fi, Bluetooth, etc., send data serially from one end to the other. Believe it or not, our fast internet access through Ethernet or Wi-Fi is also another form of serial communication. There is always serial data, sent/received bit-by-bit, in and out of the system. So at least, we need two channels to let data to flow in two directions. How many wires does USB connector have? Four wires, two for powering and two for data transmission (with the exception of USB 3.0 that is in fact full duplex and has more than 4 wiring). Would it be awesome if we could have a computer with hundreds of USB ports and all sensors and actuators are all hot-pluggable to it? Don't get it wrong, we are not going put USB controller in every SnapBloks. But guess what, every time we want to interface things to our computers, we use USB to serial adapter, USB to SPI converter, USB CDC ACM, etc. SnapBloks has built-in serializer/deserializer and it is the only interface among Bloks. I haven't come up with the name yet, but it is based on half-duplex UART).

    FACT #4: ARDUINO INSIDE

    We ported Arduino to SnapBloks, not because we only care about people working with Arduino, in fact Arduino community is huge! You can almost find any library supported by Arduino. We all love open source, so does SnapBloks. Porting Arduino to SnapBloks really is great for everyone. If you know other programming language such as Python, JavaScript, Lua, or whatever favorite languages you master, you could potentially port it to SnapBloks too.

View all 6 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates