- We don't know, make some kind-of mini mobile hack-a-thon-ey fun little device.
- Get up a mini device running linux that we can hack on to try to fuel innovation and effort and energy, and iterate upon whatever ideas "stick" in a future revision.
Inventory / Parts
Parts List (for v1)
- Raspberry Pi Zero W
- Powerboost 1000C
- 1200mAh LiPo Battery
- 3.3v Low Voltage Reset/Disable
- eInk Display
- 8GB MicroSD Card
- Setup RNDIS/OTG, to allow your computer to act as a network bridge seen here or here or here
- would_be_nice Provide "passthru" usb data pins from the powerboost the USB port (so there's only "one" usb port needed)
- Get voltage resistor / sensor wired up and working
- Try out some of the other sensors, accelerometer for example
- Make the olindata logo display and/or animate on the screen
- Make the "olindata" interface for this device, make it do something, make the buttons do something.
Build Notes (Hardware)
- Papirus eInk Driver
- Disable Wifi (save battery)
- Disable Action(power-ish) LED
- Disable bluetooth and wifi (on boot)
- Readonly Raspberry Pi (after our device is "done" we should do this to prevent file system corruption)
- Audio Output via GPIO
- Buzzer Output
- Linux USB Gadget
Potential (v2+) Hardware
- V1 Prototype Cases (Lexan)
- Low Power Timer Breakout to shut down/reboot the device once in a while to save power. We could detect in-activity and shut down the device, reboot it every 2 hours, and shut down again if needed. This could make the battery last days and not waste power at night when it is unused (if this is a more interactive device)
- Buzzer/Audio Feedback or this
- Powerboost 500 we don't need the size/capacity/strength of the 1000, the 500 would do and would take less space, could possibly fit a small battery between the eInk and the Raspberry, such as...
- 500mAh battery would probably fit inside
- 10 kΩ Resistor for getting voltage readings
Build Notes/Instructions (Hardware)
- TODO Farley
Build Notes/Instructions (Software)
- MUST have the latest Raspbian Stretch for the Zero's wifi and bluetooth to work
- Using Etcher.io for writing the OS to the MicroSD card
- NOTE: The Raspberry Pi Zero has NO LED light when powered on. It has an "activity" light. If you boot it up and there is no light, it probably means the OS/SD card isn't right. See here.
- Once booted, the login is "pi" the password is "raspberry" (if using the "lite" version without a window manager)
- Enable "usb serial device mode" with the following commands (so you never need a screen/keyboard again)
echo "dtoverlay=dwc2" >> /boot/config.txt
echo "dwc2" >> /etc/modules
echo "g_serial" >> /etc/modules
systemctl enable getty@ttyGS0.service
- Reboot your device, but with USB connected to your computer instead of to the device (make sure you're plugged into the same port where you plugged the USB keyboard, the other usb port is just for power)
- You should see and be able to connect to the USB serial port that shows up on your machine just like a SSH console.
ls /dev/cu*to find where it mapped to, look for "serial" or "modem"
- On OS-X the command would be (for Farley)
screen /dev/cu.usbmodem1421 115200
- (if you want ssh) Make SSH run on boot with
update-rc.d ssh enable
- Now, install eInk driver with
curl -sSL https://pisupp.ly/papiruscode | sudo bash
- Answer the questions in the wizard, the screen size is the "2.0"
- It will prompt to reboot, after it reboots, you'll need to run
papirus-setupagain and answer the same questions again (I don't know why, it's a bug)
- After this above, you should be able to run
papirus-snakeor any other
papirus-*command to communicate with the eInk display.
- To save power... disable bluetooth with
echo "dtoverlay=pi3-disable-bt" >> /boot/config.txt
- To save power, disable the LED activity light with
echo "dtparam=act_led_trigger=none" >> /boot/config.txt && echo "dtparam=act_led_activelow=on" >> /boot/config.txt
- Make an "olindata" service to run on boot with a systemd script as follows...
$ cat /lib/systemd/system/olindata-eink.service [Unit] Description=Job that drives our eInk display [Install] WantedBy=multi-user.target [Service] ExecStart=/root/olindata-eink.sh # Could be forking, oneshot, or simple Type=simple RemainAfterExit=yes
- With the binary that it runs to be as follows (for now, replace with a better binary)
root@raspberrypi:~# cat olindata-eink.sh #!/bin/bash while [ 1 ] do echo "Printing date" && papirus-write --posX 0 --posY 0 --fsize 12 "`date`" # echo "Running snake" && papirus-snake echo "Sleeping for 1 minute" sleep 60 done
- And enable the service to run on boot with
systemctl enable olindata-eink
- (optional) If you want your device to have internet connectivity (eg: via a wifi network) then...
- Join wifi network (either via the wifi GUI menu or via the command line)
- Note: Keep in mind, you may want/need to change this. For example, if you're going to be using/hacking on this device "on-the-go" you might want to join this device to your phone hotspot so you don't have to have it plugged into your computer. So that you can just plug it up and be online wherever you are.
- You'll want to scan for a wifi network with
iwlist wlan0 scan
- Join that network by editing
- You should now be able to ssh into your device. If using a mac/linux you should be able to ping it at raspberrypi.local.