Skip to content

Instantly share code, notes, and snippets.

@junwatu
Forked from janjongboom/gist:94d575526a689687a6b8
Last active September 19, 2015 04:14
Show Gist options
  • Save junwatu/ecd7ef73921cbe3818d3 to your computer and use it in GitHub Desktop.
Save junwatu/ecd7ef73921cbe3818d3 to your computer and use it in GitHub Desktop.
Firefox OS / JanOS on Raspberry Pi with GPIO support

This does NOT work on Raspberry Pi 2!

  1. Obtain a 8GB SD Card
  2. Download disk image from http://janos.com/downloads/fxos-pi-gpio.img
  3. Put SD card in your computer
  4. Find out where your SD card is mounted (BE REALLY SURE ITS THE RIGHT DEVICE, IT WILL BE WIPED COMPLETELY!!!), f.e. /dev/disk5 on OSX
  5. On Linux, run: sudo dd bs=4M if=fxos-pi-gpio.img of=/path/to/your/disk
  6. On OSX, run: sudo dd bs=4m if=fxos-pi-gpio.img of=/dev/rdisk5 (do rdisk, not disk here!)
  7. When it's done put it in your Pi and start up
  8. The demo's are wired like this: yellow LED on GPIO2, red LED on GPIO3, button (wire it as pulldown) on GPIO26.

Write your own apps

  1. Grab this repo: https://github.com/jan-os/janos/tree/gpio
  2. Check out apps/system/js/my-app.js for examples
  3. Go on the same network as the device and run nmap --open -p 5555 192.168.2.* (if 192.168.2 is your IP range of course) and use the IP in next step
  4. Connect to the device via adb: adb connect 192.168.2.100
  5. Verify that it works by running adb logcat, should see a lot of stuff going on
  6. Run make install-phone to update
  7. To debug, use WebIDE

Example of the API

Highly experimental, but to open pin 3 for output, set it to HIGH and then release it again:

navigator.gpio.setPinMode(3, 'output')
  .then(pin => {
    pin.writeDigital(true)
      .then(() => console.log('OK!'))
      .catch(ex => console.error('NOK!', ex));
  });

Only does digital pins at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment