Sunday, June 3, 2012

A year after the Kickstarter campaign

A year has passed since Minibloq's Kickstarter campaign. So I think this is a good moment to talk about the project's status and specially, about the roadmap.
May has been a very active month for Minibloq (12 posts on a single month!). We released the v0.81 on May 1st, and updated all the online documentation throughout the month. Also, there were talks, demos and new agreements with manufacturers. Now, we are working mainly on six big things:
  1. Linux native version (which is already running, but still has some issues). Thanks Juan! 
  2. Translations, (together with people who is kindly helping).
  3. More documentation, including a new printable (in both  PDF and ODT -LibreOffice-) English manual, more ready to use activities and the new Developer's guides, anticipating the upcoming release of the full Minibloq's source code (we also are perparing a surprise before releasing the sources).
  4. New agreements with manufacturers specially from USA and China. We want Minibloq to work with as much hardware as possible (if you are a manufacturer, you can post a hardware request in this forum thread. There is a process, but we will really be happy to add your board!).
  5. A new website (to replace this blog which is now small for the kind of project Minibloq has turned in).
  6. The new v0.82 version.
Project's roadmap
As many of you already know, we have been working hard on Minibloq's structural features. And we have still to finish some very important parts (such as the multihardware subsystem, for example). But there are also a lot of things that will improve in the next versions. Minibloq's current GUI is a mixture of what we want and what we had time to implement. We know there are a lot of things to change, improve and correct. But the most important thing is that the project and the community are very active. So, here are some of the features we are working on:
  • An easy way to add new hardware by any third party manufacturer or advanced user. We are designing a very flexible backend for this. It will take some time, but it's possible that we can have a reduced version for the next release.
  • Better datatype management. We will be adding full support for different kinds of basic datatypes. In the future, we want user defined datatypes, just like in any high level language.
  • User defined blocks. This is complex, but we are working on it.
  • GUI improvements: there are a lot of suggestions from the users. We will try to improve the user experience as much as possible with every new release.
  • Translations to as many languages as possible! (we need help with this, and will publish very very soon a complete tutorial on how to translate Minibloq using open source tools).
  • More blocks! We are cooking some very interesting blocks for the new version. Stay tunned!
  • Agreements with Arduino-compatible and other open source hardware manufacturers to add their boards to Minibloq.
  • Optimizations: It's time to make Minibloq run faster, and to reduce its footprint.
  • Sources: We have sent the sources to  nearly everyone who had requested them. Releasing the full sources is a lot of work, and we want to do this as soon as possible. Anyway, if you want the sources, just tell me (you can send a forum private message or an @ mention in Twitter.
  • There are also some surprise features coming!
Project status
That said about the future, let's now talk a bit about the present, and the past. How has Minibloq evolved over the last year?

Hardware
When we launched the Kickstarter campaign, in May 1st 2011, there were a few Arduino-compatible boards supported. Now there are a lot of different boards, from "standard Arduinos" (like the Uno, the Mega or the Duemilanove) until 32 bits ARM-based boards such as the Maple, going through the small 8 pin ATTinys and the new HID DuinoBots, made by RobotGroup (you can see the image above). And there is more: there are also indirectly supported boards, like the Arduino™ Diecimila, the Nano, and others (you can check the "Supported hardware" section in the online documentation page). But even more important is the fact that we were very busy closing agreements with open source companies to add new hardware. So we expect to have a bunch of new boards and sensors for the next version, such as most Seeedstudio's Grove sensors and accesories, or the DFRobots Romeo controller:
Also regarding hardware, we are happy with the addition of direct support for complex sensors, were some developers contributed with libraries for linealization, filters, and others. The current Minibloq version has ready (and easy) to use blocks for RC5 IR remote receivers, ultrasonic sensors, standard IR rangers (both 80 and 150 cm versions) and can manage lots of analog sensors with the AnalogRead block. There is also a new PulseIn block for PWM based sensors. And as a secret, we are working on I2C/TWI sensors for the next version!

Documentation
End user documentation involves a lot of work. And we are trying to do it. Minibloq is perhaps one of the most completely documented graphical programming environments for open source hardware now. Along this year we finished the online documentation (English), the printable PDF/ODT Spanish User Manual (coming soon in English!), and a small page with complete examples featuring Fritzing circuits, and videos. In addition, we put online the forum. But perhaps the most important thing is that there were users and contributors writing manuals and examples. I want to mention some of them here:
Thanks, again!
Finally, I want to thanks again to a lot of people who has been involved with the project in different ways, and to the Kickstarter backers, of course.