Closed michalmikolajczyk closed 6 years ago
Hello, i suggest raspberry pi zero w. It is also from raspberry pi family. However, much smaller in size and cheaper than its big brothers. We can consider to get move to much more energy efficient platform but there are key features to discuss (language, speed, memory, etc...). For beginning, one of the raspberry platforms would be highly versatile.
@decaun the Raspberry Pi Zero W is a great suggestion. price is 80% lower then Raspberry Pi 3, which is, obviously, a great advantage.
I would suppose that the IoT devices don't really need to process too much data. Two questions:
The main advantages of raspberry pi are:
But it comes with some drawbacks like higher energy consumption (which is important when we want to run things on battery) and later manufacturing problems.
So, from start, we should keep in mind that everything should run on rtos platforms like Atnel Xmega (AVR) or Cypress PSoC (ARM), which allows us to better control power efficiency, functions of HW platform and etc. Therefore, the software for the end (IoT) devices should be written language like C or C++ for platform interoperability.
First of all there are many ICs today depends what you really want and how you will develop mainly: -FPGAs, CPLDs like programmable logics ~ longer dev times, better efficieny(next step ASICs)
↑↑↑↑↑↑ Pretty hard to develop↑↑↑↑↑↑
-Central Processing Unit (CPU) based designs ~ Like Laptops, PCs -Microprocessor based designs ~ Less processing power, some of external units are on chip, low energy ex: Atmel AVR(Arduino), PICs etc... -System on Chip (SOC) based designs ~ High processing power, most of elements in chip, fairly lower energy(high efficiency), tends to cover all system elements on a single chip ex: Raspberry Pi
↓↓↓↓↓Pretty new↓↓↓↓↓
-System in Package (SIP) designs ~ fairly new and growing like bellow -SOP, PIP, POP....
The good thing is with SOC it is possible to integrate more elements in single chip (like bus interfaces or ram etc.) therefore it is cheaper and more energy efficient than doing same thing with the same processor (if you can :)).
PSOCs are some chips that some part of programmable logic is used to program actual SOCs. Not to mix with raspberry, this time chip itself can be programmed(as hardware), also with another chip :) (like EEPROM). You can think about it as between SOC and FPGA, it has both pros from both side.
My proposition is to get a basic and cheap SoC(which is suitable for our application) based system and develop ecosystem around it. Than lets get rid of extra elements and replace existing externals with sth like FPGA or a PSOC.
I also agree that it should be written in C or C++ but if you think if you can convert Cython code to C there are many possibilities which im not awared of yet :)
Those are some pretty sound advice!
I think that we can agree for now that:
My concern is that, I would rather work faster initially with a language easier to pick up then C, then possible rewrite the code that is planned to ship to the devices. There are a few very popular IoT frameworks for JavaScript, like https://github.com/rwaldron/johnny-five or https://github.com/hybridgroup/cylon/
I also saw that Johnny-Five has an Inventors Kit bundle, based on hardware from the Tessel 2 Project, which is actually very interesting, and has some strong Node.js bindings: https://tessel.io/ https://github.com/tessel/project
Anyway, the popularity and flexibility of Raspberry Pi, and the price of the Zero W model, really convince me that we should start hacking with that hardware.
I would also vote for going with the Parity Ethereum client, because it seems to be the fastest around right now (though less popular in total then go-ethereum
).
Would you agree with the above? All opinions are good and welcome!
That basically leaves us with the question: which software IoT platform do we want to start with?
With this issue, we decided to go with Raspberry Pi Zero W, because it is cheap and effective. Through our discussions on Slack, regarding this issue, we also decided to go with Parity, because its development happens at a faster rate, it has better performance, and a proper pruning algorithm, which saves tens of gigabytes of storage.
I am moving the Platform discussion to another issue.
We need to pick our initial set of tools, to start working on the first prototype, or Pilot – Alpha.
IoT Platform
This piece will most likely be the biggest one. With regard to the requirements for the end products, described in README.md and in the Wiki, let us discuss and choose the base IoT platform, or another set of open-source software, serving as modules for our future tool set.
To clarify: we can either choose a large platform, and use the visualization apps etc., which come bundled, or choose a library which only cares for visualization, and integrate that into our project.
Blockchain
Here we need to decide which Ethereum client we want to use; or decide if perhaps an all together different ledger, would be better suited.
Ethereum clients
http://ethdocs.org/en/latest/ethereum-clients/choosing-a-client.html
Ledgers
Notable projects
IoT devices
What kind of devices are we going to use to connect the machines? The initial thoughts would go to Raspberry Pi 3, because it is very popular and can support multiple use cases. Perhaps Arduino would be the better choice, due to its low complexity? Or maybe a totally different product? Cast your votes :) and please explain the reasons behind them.