Giter Club home page Giter Club logo

weio's Introduction

WeIO - Connected. Smart. Simple.

PyPI Gitter

Alt text

WeIO is an innovative open source hardware and software platform for rapid prototyping and creation of wirelessly connected interactive objects using only popular web languages such as HTML5 or Python.

With WeIO making connected objects becomes as simple as making websites.

WeIO removes a burden of technically complex embedded and system software programming making sophisticated object design easy to prototype, so that users can focus on the design and innovation.

With WeIO everyone can easily create objects that sense the environment (sensors) or act upon the command (actuators) from the distance and from any device (PC, mobile phone or tablet). This way you can check the temperature, detect movements, control lights, move servo motors and do many other interesting things, making your objects smart and interactive. In addition, you can design rich graphical user interfaces for your intelligent things.

One more advantage of WeIO is that it can create real standalone applications - i.e. objects that have their own intelligence. Thanks to WeIO’s multi-process design, these smart objects can do multiple tasks simultaneously while sending and receiving messages at the same time.

Alt text

WeIO consists of the development board and WeIO IDE, locally served (not from the cloud) web application that lets you program and control all inputs and outputs on the board from any browser. Programming of WeIO is easy and fun, as it is done with HTML5 or Python - languages that are loved by designers.

WeIO project opens the doors to creating new and original objects that never existed before. And it will be available to the whole community - as an Open Source and Open Hardware. Possibility for everyone to quickly make industry-grade smart and connected objects that are practically ready for production and market is amazing! In the new era of specialized fablabs for innovative enterprises and DIY production tool like WeIO will find a significant place.

Links

weio's People

Contributors

0x7fff5238100b avatar areox avatar drasko avatar gitter-badger avatar ks156 avatar manuio avatar nmarcetic avatar ronanyvergniaux avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weio's Issues

Updater - longer progress bar

Updater progress bar finishes before board is reset and new WeIO IDE is initialized.

In this case, when user tries to reload page there is 404 - leads to confusion.

Fix: progress bar should last longer.

If non utf8 symbols in code, file will not be saved

If any of non utf8 symbols gets inside code that file will never be saved. That's causing websockets that refuse to transmit non utf8 symbols. The problem is that there is no warning message or any information on this subject that is really hard to debug or understand by people.

Possible solution is just to analyse code and alert user is there is some strange symbols in code.
Other solution is to encode everything to utf8 and decode before saving. This can work well for html and co but not at all for python files.

Suggestions are welcome but the most urgent thing to do is to alert users when some non utf8 symbols occurs in code

Can not create directories with Samba

I tried creating a dir somewhere in WeIO via Samba, and this is not possible.

This might be useful for the users to group their files.

Samba server permissions need to be checked.

Not allowed to write using samba

Today I have flash weio_recovery.bin to start with a new card. I have done the first login using "weio" as login and "weio" as password. Then after update I tried to write using samba but no way to do it, I can only read. Somebody know why?

Documentation inside IDE

Currently Documentation tab in interface is blank. Here is documentation HTML tag https://github.com/nodesign/weio/blob/master/www/editor.html#L356

Main idea is to use Flatdoc library for manual and code visualization
http://ricostacruz.com/flatdoc/

In that manner is possible to write simple markdown files and let Flatdoc render documentation so we don't need to mess with complicated html when change occurs.

Here are official markdowns
JS API http://we-io.net/doc/jsAPI.md
PY API http://we-io.net/doc/pyAPI.md

Example of flatdoc can be found here
http://we-io.net/doc/

Place for rendering Flatdoc is not big, it's about 500px so the main idea is to force Flatdoc to render in that small place as it's for mobile device. (Try to make browser smaller to see how Flatdoc adapts itself)

I made two mockups to document what need to be done. This is summary screen that lists all functions JS an PY APIs.
http://we-io.net/test/docFirst.jpg

and this is mockup of the screen that shows some precise function
http://we-io.net/test/docDetail.jpg

Notice the button in the upper left corner of documentation tab "Back to summary" that will return to the first page with list of functions

To make work easier I added Flatdoc inside our libraries and tried to call it inside IDE, well it works but it's not useful for now. However it's good start because environment has been set.
See this commit in next branch
a52fa56

pinMode doesn't work

PinMode function don't work. Origin of the problem is not known. Pullup and pulldown resistors are never set. I tried this example with straight IoTPy library and it worked. The problem is at our side, maybe somewhere in weioGpio.py??

Preview was not working

Pre setup:
Does not connected with weio board.
Steps:
Start the server python weioServer.py
Connect localhost:8080 through firefox.
Load the example program and click preview icon.
Expected: Preview the output.
Fail to show output but it displayed 404 error.

Updater - user confing is lost / chnaged

After update User name (right corner of IDE) is replaced by "Uki car". This new config overwrites user configuration on every update.

Fix: check if config.weio is being replaced and find the way to keep user configuration.

Tests without board

How do the installation for testing without having the board?
I'm doing a final completion of course work, which would be based on Arduino + web, but I was very interested by WeIO

Date and time are not correct

We are using NTPD to sync with atomic clocks over Internet. Once WeIO is connected to the Internet it has to show correct time. There is some problem with NTPD configuration, maybe distant servers are never reachable?

Need to implement heartbeat between client IDE and server

User must be informed in case of wifi drop or any other kind of interruption with server that is not naturally detected by websockets. Without heartbeat, code is not saved and user is not informed that everything that he writes will be lost

Give some Internet service examples like twitter, fb or other

It will be really nice to have some Twitter or FB examples in our menu. Something really simple like turn the LED ON when someone twitt my name or similar. These examples will show that we are internet services ready. If it comes to install some Python libraries to have some specific support just let me know, so we can discuss embedding them directly in fw.

Better organization of 'things'

Before the first big release, I suggest to reorganize the 'things' directory by adding subdirs for sensors, motors, etc.
In the future, the number of 'things' should increase, and the 'things' directory will be full of various drivers, unclassified. Creating subdirs later will break compatibility with all code already made.

LPC UART bridge port not working from linux userspace

When Openwrt is booted there are multiple interfaces inside /dev
ttyACM0
ttyACM1
ttyATH0
ttyS0

ttyATH0+ttyS0 - the serial console (connected to FTDI chip) and ttyACM0+ttyACM1 (LPC command and bridge ports)

This is code for testing purposes that can be run directly from python console. One wire should be added from pin 0 to pin 1 on WeIO board. Right now this code is not working and Tx pin is not firing at all.

import serial
ser = serial.Serial('/dev/ttyACM1', 19200, timeout=1)
print "Writing..."
ser.write("Hello, World!\n")
print "Reading..."
print ser.read(15)
ser.close()

Make examples inside IDE readonly

User can't edit official examples. They has to be read only and they can only be duplicated to flash, sd or usb flash if user wants to use them as start point

Server Error message: /weio/running.p No such file or directory

Presetup:
Does not connected with weio board.

Steps:
Start the server python weioServer.py
Connect localhost:8080 through firefox
Click preview or load some example program

Expected: It should start without any error message.

But weioServer.py process giving below error message

ERR 4 : return fn(_args, *_kwargs)
File "./weioRunner.py", line 168, in userPlayer
ERR 5 : File "./weioRunner.py", line 168, in userPlayer
error in file : ./weioRunner.py
error in line : 168
self.stop()
ERR 6 : self.stop()
File "./weioRunner.py", line 113, in stop
ERR 7 : File "./weioRunner.py", line 113, in stop
error in file : ./weioRunner.py
error in line : 113
fRunning = open('/weio/running.p', 'wb')
ERR 8 : fRunning = open('/weio/running.p', 'wb')

Fix documentation section

-- Documentation require section scroll (left section when content grow).
-- Python/JS documentation tabs, click on section not working.

Responsive Dasboard

-- On lower resolutions play/stop buttons are not visible, header dashboard layout is broken.

Not the same Mac address on the sticker and in the hardware

For example on the sticker is written MAC : C49300011215
Inside /etc/config/wireless is written : option macaddr 'C4:93:00:01:12:16'

Last number is always different but I think that it's predictable. It seems that last number is always +1

Settings page frontend and backend

Currently there is a settings page that is not functional: https://github.com/nodesign/weio/blob/master/www/settings.html. This page has to be connected with backend and re-designed in the frontend.

We should get to the page via pull-down menu clicking on user name (just above update).

User should be capable to change parameters like name, password and board name, and some other parameters from https://github.com/nodesign/weio/blob/master/config.weio.

In the further improvement (not necessary in the initial version) user should be able to use this form to search and install Python modules via pip.

wifi scan dropdown was not dynamic values

Presetup:
Does not connected with weio board.
Steps:

  1. Start the server python weioServer.py
  2. Connect localhost:8080 through firefox
    Expected:
    Scan all the wifi AP and list.
    It is listing all predefined wifi networks.

Strange behavior after flash weio_recovery and setting other name than weio

After flash weio_recovery.bin and set other board name than weio an infinite loop asking for reload page appears.

To reproduce:

  • flash weio_recovery.bin
  • Do soft restart (after 505 internal server error)
  • go to weio.local and set other board name than weio during sigin
  • Then IDE is blocked loading and a message "I've lost connection" appears
  • When you reload page the address is not founded
  • Restart WeIO (disconnect-connect)
  • Enter IDE address with your name (in my case manu.weio:8080)
  • Then "I've lost connection" message appears, if you reload page the same message appears and that to the infinite.

Fail to ask for Username and password

Presetup:
Does not connected with weio board.

Steps:
Start the server python weioServer.py
Connect localhost:8080 through firefox.
Expected: To ask username and password.
But it directly launch the IDE

User server can't start without main.py

Even if main.py is empty user server can't start, the log is: "main.py don't exist!"
It could be more helpful and understandable for beginners if is not necessary to create an empty main.py file in the project.

Fast click from "stop" to "play" will break

If clicked from "stop" to "play" rapidely program will break. This occurs really often. That's because WeIO don't have enough time to reset LPC co-processor. When stop is clicked, reset pin on LPC is activated and LPC goes to coma. OS needs little bit less than two seconds to enumerate again co-processor and open protocol. The question is how to solve this issue?

the simplest thing but not the most elegant is to add a delay of 2sec before activating play after stop....

IDE - Long lines on console

Console don't have automatically new line return, all entries are diplayed in one line.
To test it print long entry.

IDE - Project in flash directory don't start

  • Create new project in "flash" directory
  • Start project
    -> MODULE CAN'T BE LOADED. Maybe you have some errors in modules that you wish to import?
    ...

Maybe missing __ init __.py?
Also, inside of flash directory there is an empty "flash" project wihout files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.