Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

littlewire

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

littlewire

  • 0.9.11
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

Little Wire is a little multiheaded animal who pokes in a USB port, and uploads programs to AVR and PIC chips. But Little Wire does so much more - and that's what this library is about. The littlewire.cc gadget exposes four digital wires and a five volt power supply. Those four wires can each be individually controlled, with three capable of varying brightness of lights, two capable of controlling motors and servos, two 10-bit analog inputs, a temperature sensor, a Serial Peripheral Interface, an i2c interface, an WS2811 (also WS2812) interface, and a 1-wire interface.

Eventually littlewire.rb hopes to share fun, simple, principal of least surprise ruby interfaces to all of these.

a blinky

require 'littlewire'

wire = LittleWire.connect # connects to the first Little Wire on your computer

wire.pin_mode :pin3, :out

loop do
  wire.digital_write :pin3, :vcc # connect pin3 to 5v
  sleep 0.5
  wire.digital_write :pin3, :gnd # connect pin3 to ground
  sleep 0.5
end

And so it is that the ruby on the computer did remotely control the Little Wire's digital port. Don't forget a resistor for that LED of yours! If you don't have a resistor handy, add wire.pin_mode :pin3 => :input before loop do to use Little Wire's internal 20kohm resistor and keep that light shining.

a philosophy

Little Wire is such a small creature it's possible perhaps to implement every way you might want to use it! Every method name and every symbol. I've tried to do this a bit. My hope is that you'll play with littlewire in irb (or better yet pry) and everything you try just works. To that end, littlewire supports ruby_style_methods and wiringStyleMethods, and has methods like digitalWrite(:pin1, true) - familliar to arduinoers but also syntaxes like mywire[:d1] = true. Initialization sequences automatically run the moment you try to use features, and they always try to make sure littlewire is correctly configured for the task at hand, while not making any unnecessary requests. The only thing littlewire.rb doesn't do (yet) is program other chips - use avrdude for that.

what's it good for?

You could use the three pulse width modulated analog outputs to control an RGB light adjusting the mood of your batcave at the click of a button. Hook it up to displays, memory, sensors, iButtons, RFID readers, digital radios, motors, switches, fairy lights... whatever floats your boat really. The possabilities are not especially limited. Most projects you might use an Arduino for can be done with a Little Wire if you don't mind leaving a computer turned on connected to it, and with the advent of Raspberry Pi, that's not all that bad of an idea. I use my Little Wire to quickly test ideas before changing them to C and uploading them to cheaper avr tiny chips (also using the Little Wire to program them)

a warning

littlewire.rb is experimental (till it is released as 1.0 via rubygems) and there's a pretty good chance the API will change a bit until then. Not to worry - rubygems have a mechanism for you to require a specific version of littlewire.rb, ensuring your programs always work, so you can start building stuff on it today!

FAQs

Package last updated on 22 Nov 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc