Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Readme.md update #121

Closed
wants to merge 174 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
c0b87a1
small code changes.
adityapatadia May 1, 2014
083eaf6
obonescript migrate.
adityapatadia May 2, 2014
ae20574
module.exports added to some basic files.
adityapatadia May 2, 2014
f9ca9a6
hw.capemanager code changed for better debugging and module.exports a…
adityapatadia May 3, 2014
55f0e1d
my.js changed to module.exports
adityapatadia May 3, 2014
27cd05c
sicket.io removed from tests.
adityapatadia May 3, 2014
25589ee
Some variables made back local
adityapatadia May 3, 2014
9aa7395
digitalWrite made sync with writefilesync function
adityapatadia May 3, 2014
7f7de57
Some finer bugs fixed.
adityapatadia May 3, 2014
e5f4ea6
bug fix.
adityapatadia May 3, 2014
f39dc6a
bug fix
adityapatadia May 3, 2014
3aea01d
bug fix in parse
adityapatadia May 3, 2014
3e0fceb
another one in same file
adityapatadia May 3, 2014
32535ea
reverted code
adityapatadia May 3, 2014
f5ca1fb
bug fix.
adityapatadia May 3, 2014
136d31d
error added when writing to gpio fails.
adityapatadia May 3, 2014
1de3dc8
loop and setup removed from index.js
adityapatadia May 3, 2014
390f797
fivers removed from index
adityapatadia May 3, 2014
4f12de4
eval removed from attach interrupt. One must pass function as handler.
adityapatadia May 3, 2014
5f508b8
epoll module made made optional. package.json upgrade
adityapatadia May 4, 2014
f568381
Package.json upgraded for octalbonescript
adityapatadia May 4, 2014
4d4877c
changes in dependency.
adityapatadia May 4, 2014
0dbe971
0.2.6 released with updated readme.
adityapatadia May 4, 2014
c32a386
Bug fix in capemanager
adityapatadia May 4, 2014
2464c56
0.2.7 release
adityapatadia May 4, 2014
3880336
bug fixes and code revert.
adityapatadia May 4, 2014
10e3abc
bug fix
adityapatadia May 4, 2014
c1fc4a9
bug fix
adityapatadia May 4, 2014
32f38b3
0.2.8 released
adityapatadia May 4, 2014
4d72e76
Simulator updated. Error message shown when GPIO write fails
adityapatadia May 4, 2014
19c4cbf
winston error fixed
adityapatadia May 4, 2014
2467b5c
0.2.9 release
adityapatadia May 4, 2014
4df5f3e
0.2.10 release
adityapatadia May 4, 2014
795ec49
bug fix
adityapatadia May 5, 2014
ada2e06
DEBUG mode now turned on only based on "bone" value. Small bug fix. 0…
adityapatadia May 5, 2014
cbf2ae5
Debug problem fixed. 0.2.12 release
adityapatadia May 7, 2014
8f4ee02
Bugs fixed in debug
adityapatadia May 12, 2014
e43d3a7
Updated as per bone script - double merge commits
adityapatadia May 17, 2014
ad5032e
Revert "Updated as per bone script - double merge commits"
adityapatadia May 26, 2014
b95ea6c
Debug statements bug removed
adityapatadia Jun 3, 2014
0b138e3
bonescript bus fixes.
adityapatadia Jun 8, 2014
8f42b1b
new 0.2.14 version
adityapatadia Jun 9, 2014
2fce82a
bug fixes.
adityapatadia Jun 9, 2014
3373b87
v 0.2.15
adityapatadia Jun 9, 2014
2e65eea
some changes according to new bone script
adityapatadia Jun 27, 2014
41c9b71
hw universal added according to new bonescript
adityapatadia Jun 27, 2014
674449d
bug fixes after new code
adityapatadia Jun 27, 2014
a0194bc
export gpio controls changed
adityapatadia Jun 27, 2014
c074d4d
debug redundant code deleted.
adityapatadia Jun 27, 2014
3ae28a8
simulator error corrected.
adityapatadia Jun 27, 2014
4a6ba45
small errors fixed
adityapatadia Jun 27, 2014
0829a80
version 0.2.19
adityapatadia Jun 27, 2014
5dcf25d
dependency made optional
adityapatadia Jul 3, 2014
f4892ff
0.2.21
adityapatadia Jul 3, 2014
9e62bfd
0.2.22
adityapatadia Jul 3, 2014
8b931e0
0.2.23
adityapatadia Jul 3, 2014
0ca3abd
dependency change.
adityapatadia Aug 22, 2014
ea74bc1
Logging is made better.
adityapatadia Sep 5, 2014
b656593
bone.js is renamed for better understanding.
adityapatadia Sep 6, 2014
d6db4f5
Added checks for callback before attempting to run it
Sep 6, 2014
5040ccf
Now using universal cape whenever supported.
adityapatadia Sep 7, 2014
3dfa33d
Changelog added
adityapatadia Sep 7, 2014
a5379ec
Update CHANGELOG.md
adityapatadia Sep 7, 2014
84d6e62
Merge pull request #4 from ablankenship10/master
adityapatadia Sep 7, 2014
e88ac2c
Release 0.3.1
adityapatadia Sep 7, 2014
a62b02f
Update README.md
adityapatadia Sep 7, 2014
9524ffc
pinMode made fully async
adityapatadia Sep 10, 2014
ccaaef7
Some more functions made async
adityapatadia Sep 10, 2014
5314fab
Majority of functions made async. my.js file renamed to bone.js to be…
adityapatadia Sep 10, 2014
ee77eb7
Analog input cape loaded at start of script in sync.
adityapatadia Sep 10, 2014
46c9947
removed flag variable
adityapatadia Sep 10, 2014
cbcd905
Watchdog timer added
adityapatadia Sep 11, 2014
ad3eb91
Docs updated
adityapatadia Sep 11, 2014
2c82dd3
Modified name added
adityapatadia Sep 12, 2014
531ea3c
Version 0.4.0 release
adityapatadia Sep 14, 2014
c2c0f0c
pin mode better warning.
adityapatadia Sep 14, 2014
e31a255
stopAnalog function added
adityapatadia Sep 15, 2014
3112cb2
read me update
adityapatadia Sep 17, 2014
243bd52
0.4.3 release
adityapatadia Nov 18, 2014
26a1e56
startAnalog function added
adityapatadia Nov 18, 2014
bb9d376
analogWrite improved. 0.4.4
adityapatadia Nov 18, 2014
af1e291
0.4.4
adityapatadia Nov 18, 2014
7284e80
PWM enable after updating
adityapatadia Nov 19, 2014
38a6d7a
Bug fix for universal cape load when HDMI is not disabled
adityapatadia Nov 28, 2014
f6126e4
Updated README.md
hardikpandya Nov 28, 2014
6416bbe
Updated README.md
hardikpandya Nov 28, 2014
be13a5c
bug fix
adityapatadia Nov 30, 2014
821a388
log reduced
adityapatadia Nov 30, 2014
34fa9a2
removed old cape manager
adityapatadia Dec 27, 2014
f7e8afd
dependency fix
adityapatadia Dec 28, 2014
0a14275
bug fix
adityapatadia Dec 28, 2014
ad66064
0 added in single digit pins
adityapatadia Jan 7, 2015
0fc678f
winston removed and debug module used
adityapatadia Feb 3, 2015
91aa82b
bone.js code cleanup and speed improvements
adityapatadia Feb 3, 2015
00413fc
* VError module added for all error handling
adityapatadia Feb 5, 2015
2780971
code indentation fix
adityapatadia Feb 5, 2015
46f8500
syntax fix as per linter
adityapatadia Feb 5, 2015
2dba943
Better error handling complete for entire library.
adityapatadia Feb 13, 2015
3fd50be
converted pinmap to pure json file
adityapatadia Feb 13, 2015
f2e996d
pinmap file changed as per new universal cape modes.
adityapatadia Feb 13, 2015
ccf0f0f
constants file changed to json
adityapatadia Feb 13, 2015
4b2bc27
mode value changed in constants
adityapatadia Feb 13, 2015
b89d7fe
organised code in smaller modules
adityapatadia Feb 15, 2015
08e497a
serial code changed for universal cape.
adityapatadia Feb 16, 2015
2cc24bd
error handling improved in serial port
adityapatadia Feb 16, 2015
f9572f1
write function added to serial.
adityapatadia Feb 16, 2015
1bb3e40
I2C code updated for universal cape
adityapatadia Feb 16, 2015
04d34fa
error messages added for legacy methods
adityapatadia Feb 16, 2015
0a816cc
analog and digital tests added
adityapatadia Feb 16, 2015
b6320b7
unit tests complete and bugs fixed.
adityapatadia Mar 1, 2015
fa5b150
readme update
adityapatadia Mar 1, 2015
2f56831
Begin documentation on digital functions
TechplexEngineer Mar 4, 2015
ed54677
Merge pull request #31 from TechplexEngineer/Techplex-doc-digital
adityapatadia Mar 4, 2015
9ec06ec
Update digital.md
adityapatadia Mar 11, 2015
3306d47
fix grammar
TechplexEngineer Mar 11, 2015
9c0a89f
Merge pull request #36 from TechplexEngineer/patch-1
adityapatadia Mar 12, 2015
f109554
Update README.md
adityapatadia Mar 12, 2015
fe10930
sync version of pinMode added
adityapatadia Mar 18, 2015
a71fec5
Notice added for pinModeSync
adityapatadia Mar 20, 2015
274d153
pinmode doc added
adityapatadia Mar 20, 2015
2b41bd7
Update digital.md
adityapatadia Mar 20, 2015
6e76d40
Update pinmode.md
adityapatadia Mar 20, 2015
a8ce175
Update digital.md
adityapatadia Mar 20, 2015
d00b5a1
Create analog.md
adityapatadia Mar 20, 2015
ababb30
Update analog.md
adityapatadia Mar 20, 2015
6089bb9
Update analog.md
adityapatadia Mar 20, 2015
40efa35
Delete examples.md
adityapatadia Mar 20, 2015
c83c9b8
Create interrupt.md
adityapatadia Mar 20, 2015
5fdb9a6
Create watchdog.md
adityapatadia Mar 20, 2015
c8e5e2d
Create serial.md
adityapatadia Mar 20, 2015
5b123f0
fix typo
adityapatadia Mar 20, 2015
252af69
Merge branch 'master' of github.com:theoctal/octalbonescript
adityapatadia Mar 20, 2015
2195ec8
Create i2c.md
adityapatadia Mar 20, 2015
5ef891e
Update README.md
adityapatadia Mar 20, 2015
4c7a642
Update README.md
adityapatadia Mar 20, 2015
39fb749
Docs deleted. Moved to github wiki.
adityapatadia Mar 21, 2015
8cf3f01
Update README.md
adityapatadia Mar 21, 2015
ef54d20
Update README.md
adityapatadia Mar 21, 2015
5b78d4c
Update README.md
adityapatadia Mar 21, 2015
a6ca826
Update README.md
adityapatadia Mar 21, 2015
1f787a5
Update README.md
adityapatadia Mar 24, 2015
148a14c
Update README.md
adityapatadia Mar 24, 2015
67cf6ae
Update package.json
adityapatadia Mar 24, 2015
347eb76
Update package.json
adityapatadia Mar 24, 2015
de63389
bug fixes
adityapatadia Mar 25, 2015
03bca47
Merge branch 'master' of github.com:theoctal/octalbonescript
adityapatadia Mar 25, 2015
e71ac68
new packages version
adityapatadia Mar 25, 2015
b546b1c
update readme
adityapatadia Mar 28, 2015
2e3d11b
badge added to readme
adityapatadia Mar 29, 2015
95a509b
badge error corrected
adityapatadia Mar 29, 2015
ddbd5a8
badge removed
adityapatadia Mar 29, 2015
7ab29e4
Bug fix in attachInterrupt. Libs updated.
adityapatadia Jun 22, 2015
ae61d9c
bug fixes
adityapatadia Jun 22, 2015
1851ecb
fixed exception handler for dtc compile command
mattcarpenter Jul 4, 2015
2fd8193
Merge pull request #39 from mattcarpenter/mattcarpenter/dtc_compile_e…
adityapatadia Jul 4, 2015
8f5b4ce
bug fix
adityapatadia Jul 4, 2015
52c8fd2
interrupt related fix
adityapatadia Jul 17, 2015
b2a92a8
error message improvement in pwm
adityapatadia Jul 23, 2015
63a7b65
updated readme to recommend local installation and EPOLL module made …
adityapatadia Dec 12, 2015
1f53dcd
made code compatible with 4.1 kernel. Tests still don't pass
adityapatadia Dec 13, 2015
769cbe4
Fix potential errors due to JavaScript scope
psiphi75 Dec 19, 2015
3bef5c5
analog, digital and pwm are working fine now.
adityapatadia Dec 23, 2015
80c22c5
Merge pull request #49 from psiphi75/patch-1
adityapatadia Dec 23, 2015
55bccf7
all functions should now work fine
adityapatadia Dec 24, 2015
bd44b23
fix #51
adityapatadia Dec 25, 2015
5348337
readme update
adityapatadia Dec 26, 2015
34c28bc
new npm version release
adityapatadia Dec 26, 2015
8fa8bba
Update README.md
adityapatadia Dec 28, 2015
bcdfbfa
Update README.md
adityapatadia Jan 25, 2016
4c0b97a
Added option to disable autoloading of capes at startup
psiphi75 Mar 21, 2016
8174525
serialport upgrade
adityapatadia Mar 22, 2016
c877b4d
Added option to disable autoloading of capes at startup
psiphi75 Mar 22, 2016
9822242
Merge pull request #60 from psiphi75/patch-2
adityapatadia Mar 23, 2016
3a1ae86
Clearer install instructions.
psiphi75 Apr 3, 2016
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
.settings.xml
.DS_Store
bonescript.log
*~
node_modules
40 changes: 40 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
ChangeLog
---------

__Check https://github.com/theoctal/octalbonescript/releases for changelog.__

### 0.4.9
* This version and all pervious versions were bug fixes

### 0.4.4
* Bug fixes in analogWrite function. ```startAnalog(pin, callback)``` function added

### 0.4.3
* All the express, socket.io and cloud9 dependencies removed. The library now focuses only on providing better I/O functionality for BeagleBone rather than serving to cloud9 IDE
* Removed usage of FFI and moved to 'shelljs' to compile universal device tree

### 0.4.2
* ```stopAnalog(pin, callback)``` function added to ust stop the analog output on given pin. Call ```analogWrite``` again on that pin to start analog output (see v0.4.4 for update)

### 0.4.1
* Better warning in pinMode

### 0.4.0 (Major update. Introduces BC break)

* Support for 3.2 kernel has been dropped
* Individual pin based "hw_capemgr" is no longer supported. Universal cape manager handles all the tasks of pin muxing
* Required nodejs version is now >= 0.10.24. Effecively, the octalbonescript won't install on Angstrom distribution
* __BC Break__ ```pinMode``` function now takes only 3 arguments -> (pin, direction, callback). This function now asserts mode automatically and sets slew rate as fast. Additional direction variable ```INPUT_PULLDOWN``` is also added.
* __BC Break__ ```pinMode``` function is now fully async unlike original bonescript. Please use callback to know the status.
* Support for WatchDog timer added. It can be accessed via ```startWatchdog()``` and ```stopWatchdog()``` functions

### 0.3.1

* Small bug fixes

### 0.3.0

* Universal and HDMI cape loaded as per compatibility
* 2 new dts overlays bs_univ_template and bs_hdmi_template added
* Changed name of bone.js to pinmap.js to better reflect its content
* Pins P8_7, P8_8, P8_9 should now be used as P8_07, P8_08, P8_09
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2011 Jason Kridner <jdk@ti.com>
Copyright (c) 2011 Jason Kridner <jdk@ti.com>, Aditya Patadia <aditya@patadia.org>

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
Expand Down
261 changes: 57 additions & 204 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,214 +1,67 @@
Getting started
OctalBoneScript
===============
BoneScript is a node.js library for physical computing on embedded Linux,
starting with support for BeagleBone.

Information on the language is available at http://nodejs.org.
A more stable, continuously tested and better node.js library for scripting BeagleBone. This is alternative to [bonescript](https://github.com/jadonk/bonescript) library.

To check the version and see BoneScript is in your path, try running:
````sh
node -pe "require('bonescript').getPlatform().bonescript"
````
__v1.0.0 introduces major BC breaks. Please refer to [releases](https://github.com/theoctal/octalbonescript/releases) to see the changes made in latest version.__

Additional documentation is available at http://beagleboard.org/bonescript.
Installation
------------
Recommended method to install OctalBoneScript is to add following line in your project ```package.json``` file.

The concept is to use Arduino-like functions written in JavaScript to
simplify learning how to do physical computing tasks under embedded Linux
and to further provide support for rapidly creating GUIs for your embedded
applications through the use of HTML5/JavaScript web pages.
```sh

npm install octalbonescript

Installation
```

If you are running kernel 3.8 i.e. Debian 7.9 or below, you should use version 1.0.6 or earlier:

```sh

npm install octalbonescript@1.0.6

```

After adding this line, you should run ``` npm install ``` command from that project directory to install OBS. Another method is to directly ```cd``` to project directory and run ```npm install octalbonescript``` command.

If you must install OBS globally, you must run following command as root.

```sh

npm install -g --unsafe-perm octalbonescript

```

Please note that OBS does not recommend Linux Angstrom. We strongly recommend that you upgrade your BeagleBone to Debian by following link given below:

[http://beagleboard.org/getting-started#update](http://beagleboard.org/getting-started#update)

Examples
--------
Latest code docs, examples and **migration guide** from original bonescript are available at following link:

[https://github.com/theoctal/octalbonescript/wiki](https://github.com/theoctal/octalbonescript/wiki)

Fork
----
This is a fork of [bonescript](https://github.com/jadonk/bonescript). Some APIs are changed in v1.0.0, and we have changed many things under the hood leading to a much better, more functional and faster version of the original library.

This fork is created to make bonescript more feature rich, faster, fix bugs and make it work in
simulator mode under Mac OSX and Linux.

We encourage you to report issues rightaway if you face any. We will try our best to be of help.

Contributors
------------
BoneScript comes installed on your BeagleBone. To update
to the latest revision or install it on another distribution, use 'npm':

````sh
TERM=none npm install -g bonescript
````

Angstrom prerequisites:
````sh
opkg update
opkg install python-misc python-modules
````

Debian and Ubuntu prerequisites:
* Credit to http://learn.adafruit.com/introduction-to-the-beaglebone-black-device-tree/compiling-an-overlay
````sh
sudo apt-get install -y build-essential g++ python-setuptools python2.7-dev
wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh
chmod +x dtc.sh
./dtc.sh
````

Some steps to consider:
````sh
cp bonescript/etc/default/node /etc/default/node
cp bonescript/etc/profile.d/node.sh /etc/profile.d/node.sh
cp bonescript/systemd/* /lib/systemd/system
systemctl enable bonescript.socket
systemctl enable bonescript-autorun.service
````

Launching applications persistently
-----------------------------------
To have your applications launch on startup, simply drop them into the
/var/lib/cloud9/autorun folder. Moving them out of that folder will kill
the processes. You are expected to only drop in already bug-free apps into
this folder as there isn't a good way to perform debug on them.

Note on code state
==================
There's still a lot of development going on, so be sure to check back on a
frequent basis. Many of the fancier peripherals aren't yet supported
except through performing file I/O.

Directory layout
----------------
* autorun.js: Node.JS app to run apps dropped in the autorun folder
* index.js: Main BoneScript source code
* package.json: NPM.JS package descriptor
* server.js: BoneScript web server to serve up remote procedure calls
* dts: Devicetree templates
* etc: Configuration files to be placed in target distro
* src: Library source code
* systemd: Configuration files for systemd to start services
* test: To-be-automated test code

Template
========
For a Bonescript application, you must currently manually 'require' the
bonescript library. Functions are then referenced through the object
provided back from require.

I started out trying to provide Arduino-like setup/loop functions, but the
idea really isn't a good match for JavaScript. Using JavaScript's native
flow works best, but the familiar functions are enough to give you a boost
in your physical computing productivity.

Here's an example:

````javascript
var b = require('bonescript');

b.pinMode('P8_12', b.INPUT);
b.pinMode('P8_13', b.OUTPUT);

setInterval(copyInputToOutput, 100);

function copyInputToOutput() {
b.digitalRead('P8_12', writeToOutput);
function writeToOutput(x) {
b.digitalWrite('P8_13', x.value);
}
}
````

The 'P8\_12' and 'P8\_13' are pin names on the board and the above example
would copy the input value at P8\_12 to the output P8\_13 every 100 ms.


API
===
When a callback is provided, the functions will behave asynchronously.
Without a callback provided, the functions will synchronize and complete
before returning.

System
------
* getPlatform([callback]) -> platform
* getEeproms([callback]) -> eeproms
* echo(data, [callback]) -> data
* readTextFile(filename, [callback]) -> data
* writeTextFile(filename, data, [callback])
* setDate(date, [callback])

Digital and Analog I/O
----------------------
* analogRead(pin, [callback]) -> value
* analogWrite(pin, value, [freq], [callback])
* attachInterrupt(pin, handler, mode, [callback])
* detachInterrupt(pin, [callback])
* digitalRead(pin, [calback]) -> value
* digitalWrite(pin, value, [callback])
* pinMode(pin, direction, [mux], [pullup], [slew], [callback])
* getPinMode(pin, [callback]) -> pinMode
* shiftOut(dataPin, clockPin, bitOrder, val, [callback])

Serial
This [fork](https://github.com/ruth0000/octalbonescript_capemgr4_1) of OBS was very helpful in making OBS compatible with 4.1 kernel.

I also thank [psiphi75](https://github.com/psiphi75) who funded OBS transition to 4.1 kernel.

Donate
------
Uses https://github.com/voodootikigod/node-serialport
* serialOpen(port, options, [callback])
* serialWrite(port, data, [callback])
* serialParsers is serialport.parsers

I2C
---
Uses https://github.com/korevec/node-i2c
* i2cOpen(port, address, options, [callback])
* i2cScan(port, [callback])
* i2cWriteByte(port, byte, [callback])
* i2cWriteBytes(port, command, bytes, [callback])
* i2cReadByte(port, [callback])
* i2cReadBytes(port, command, length, [callback])
* i2cStream(port, command, length, [callback])

Bits/Bytes, Math, Trigonometry and Random Numbers
-------------------------------------------------
* lowByte(value)
* highByte(value)
* bitRead(value, bitnum)
* bitWrite(value, bitnum, bitdata)
* bitSet(value, bitnum)
* bitClear(value, bitnum)
* bit(bitnum)
* min(x, y)
* max(x, y)
* abs(x)
* constrain(x, a, b)
* map(value, fromLow, fromHigh, toLow, toHigh)
* pow(x, y)
* sqrt(x)
* sin(radians)
* cos(radians)
* tan(radians)
* randomSeed(x)
* random([min], max)


Note on performance
===================
This code is totally unoptimized. The list of possible optimizations that run
through my head is staggering. The good news is that I think it can all be
done without impacting the API, primarily thanks to the introspection
capabilities of JavaScript.

Eventually, this is planned to enable real-time usage, directly from
JavaScript. The plan is to attact the ability to use this programming environment
in real-time on several fronts:
* Enabling multiple loops and analyzing them to determine if they can be off-
loaded to a PRU. This will be the primary mechanism for providing real-time
servicing of the IOs.
* Providing higher-order services that utilize the standard peripherals for
their intended use:
- Serial drivers for I2C, SPI, UARTs, etc.
- analogWrite for PWMs using hardware PWMs, timers, kernel GPIO drivers, etc.
* Adding real-time patches to the kernel


The JavaScript language provides some features that I think are really cool
for doing embedded programming and node.js does some things to help enable
that. The primary one is that the I/O functions are all asynchronous. For
embedded systems, this is especially useful for performing low-latency tasks
that respond to events in the system. What makes JavaScript so much easier
than other languages for doing this is that it keeps the full context around
the handler, so you don't have to worry about it.

Plans
=====
* SPI support
* PRU support
* Handling array of pins in pinMode and getPinMode
* Saving off created dtbo and writing configuration to cape EEPROM
I have kept OBS updated and working since May 2014 and I will continue to do so. This ongoing development takes lot of my personal time.

If you use OBS in commercial projects, please consider donating some money as it supports ongoing development.

Bitcoin address: **15v6b7AP7TVc8PASGxqddYPeNW1kA7ydFh**
Loading