How can you use pyLCI in your projects? Why am I submitting it for the Hackaday Prize?

A project log for pyLCI - Linux Control Interface

Makes Raspberry Pi accessible, portable and easily configurable.

ArsenijsArsenijs 04/24/2016 at 16:420 Comments

How can you use pyLCI in your projects?

  1. pyLCI is a control interface completely independent from any network connections. Thus, it's very useful for networking-enabled projects where you have to use an independent configuration channel.
  2. pyLCI is independent of any GUI interfaces. Thus, you can use it as an addition to them, for example, in media centers, music playing boxes and radios.
  3. pyLCI is hackable. Adding a custom application for your project is quite easy, since there are examples, documentation pages and existing applications which you can read to understand the principles and best practices.
  4. pyLCI is cheap to add to your project. You can assemble GPIO hardware for 3-4$ in Chinese parts, or buy a shield for 6$ and it'll work great with pyLCI, providing you with a simple interface to offload some basic tasks to.
  5. pyLCI solves chicken-and-egg problems. If your Pi doesn't automatically connect to a wireless network, you'd have to use some complicated methods to do that. With pyLCI, the idea is that you just connect to it. Same with shutdown, by the way - you just shutdown your Pi, avoiding SD-card corruption.
  6. pyLCI adds opportunities you never thought of before. It allows you to dynamically change many of your project's settings on the fly, making your projects much more flexible.

Why Hackaday Prize?

As an interface, pyLCI aims to change the world by making our projects capable of achieving their tasks more efficiently. With Raspberry Pi and other Linux SBCs being a quite popular base for Hackaday Prize projects, it can shorten the development time for many people and increase the capabilities of their projects by not wasting their time on implementing the basic interfacing from scratch, as well as giving many functions for free. It also lowers the effort to make a project configurable automatically - autoconfiguration doesn't matter as much when you have a powerful interface to reconfigure things in case something goes wrong. Not only that, but it also increases repeatability of the projects - with many different ways you can connect the hardware necessary for pyLCI, details such as LCD&button connections become more and more flexible and there's less possibility you need to buy that particular interface shield to make that particular project work, as it happened to me a couple of times. Last but not least, it's very cheap - and the components are easy to get in most places of the world.

On the other side, it's accessible. Let's just face it - web interfaces aren't as easy to reach. They require a network connection, another device capable of connecting to it, as well as rendering the interface correctly, not to mention knowing the network address. Graphical interfaces require a display connected, which reduces repeatability of the projects, as well as requires having some input devices, too - and the efficiency of configuration with a GUI isn't that good for many applications. pyLCI is an interface that has neither of those problems. It's right there in your project, stacked on top of your Raspberry Pi as a shield, or maybe embedded in your project's case, or even built as a detachable console. You don't need neither expensive displays nor one more computer to configure everything.

I expect to launch an Indiegogo campaign for both gaining popularity among makers and for developing some ideas I have thought of since the start of the project.

    1. First of all, I still want to lower the complexity of getting started with pyLCI. Thus, I've developed an idea of autoconfiguration shield. It'd have the character screen and buttons usable by pyLCI, as well as use the UART-accessible console of a Raspberry Pi to configure the network, install pyLCI and configure it to use the shield. It's no job for a simple Arduino, given all the command-line output parsing that has to happen and all the errors possible. I'll probably make that with MicroPython on a suitable STM chip, given that STMs have less constraints for my task in general - I'll need to implement "expect" with some custom extensions. That STM shield could be hackable as well, given, for example, the analog buses those MCUs have and a Raspberry Pi lacks =) It's definitely going to have room for user-defined expect scripts, most likely an SD card slot.
    2. Second thing is developing more easy-to-use shields. Those Chinese shields are great (and cheap!), but if I could make a shield with just the right amount of features that pyLCI needs, that'd be even cooler. For example, 5 buttons is a nice constraint, but sometimes you just need at least one more.
    3. I also want to try out crowdfunding on a small project. I've read a lot about all the possible crowdfunding problems and, with the ideas I periodically work on, I know I'll encounter that challenge in the future. Therefore, I'd want to test it out with a comparably non-complicated hardware project first.