Close
0%
0%

Wearable Raspberry Pi personal assistant

Powered by Raspberry Pi, Python, #pyLCI, 18650 cells and tons of peripherals.

Similar projects worth following
It's one of the best portable Raspberry Pi projects you're going to encounter. It's always handy because it's strapped to your arm. It's going to have various sensors for lifelogging, assisting me in different tasks, interacting with devices around me and generally implementing all kinds of my evil plans. It's powerful, it's huge, and it's going to attract your attention. Possibly, you'll even want one.

Why make it?

Because I want to have one, and I'll be damned if I don't make it so. So - I'm bringing it to life after 3 years of attempts.

Wearable assistant manifesto

A bracelet that has everything I need inside.

  • WiFi/BT/FM/IR/UART/GSM/RFID comms
  • Pi camera accessible for filming
  • USB ports
  • Powered by 18650 cells
  • Accelerometer, gyroscope, compass, WS2812
  • Pi GPIO header accessible
  • Interfacing done using #pyLCI

Why?

  • Managing my life by using various apps that I'm going to write
  • Hacking things
  • Confusing people and making them freak out
  • Hacker cred
  • It's fucking huge and awesome.

Parts and their current status:

  1. Main module - Raspberry Pi & some necessities (done)
  2. Display module (done)
  3. Power control, GPIO&RFID module (done)
  4. Communication module (done)
  5. 18650 holders (done)
  6. Glove input device: TBD
  7. Software: TBD

Project logs:

Wearable assistant.zip

STLs and Solidworks 2016 files

Zip Archive - 2.21 MB - 08/28/2016 at 23:59

Download

  • Wearing, debugging and thinking

    Arsenijs12/19/2016 at 03:14 0 comments

    The hardware works for some time. I can get 4 hours of battery life so far, which is nice, and extending it is the direction I'll be moving towards now.

    Issues and/or solutions so far:

    Read more »

  • ​Wearing, testing, debugging and learning

    Arsenijs09/25/2016 at 11:20 0 comments

    The hardware is mostly finished. I'm starting to wear it. Now is the time for initial tests. Battery life, hardware quirks, ergonomics and ease of use - everything is to be considered. I'm also starting to enable its functions one by one.

    I've solved some issues with the display board - some unshielded contacts were touching each other. Oh, about that...

    I'm doing "shake tests". Basically, you shake the thing while it's on your wrist and bang it on all surfaces until it breaks, then fix and strengthen what's broken. Else, you just wear it for a week or so and problems will surface anyway. The issues I've found were:

    1. A bad quality IDC-40 cable which eventually developed a crack in 3.3V wire, causing display to lose power and therefore become blank. Solution: found a reliable cable in my hackerspace (salvaged from some industrial-grade board), should be good for 2 more breakages. IDC is not the way to go though. =(
    2. The protoboard on which I've layed out the display capacitors etc. had some loose wires which'd touch occasionally. Solution - kapton and soldering.
    3. The display board falls off if bracelet is dropped. I consider that a nice feature till the next display module prototype. Maybe some hot glue would be a good temporary fix.
    4. IDC-10 cable which carried power and USB connections to the CPU module was under stress and eventually developed cracks as well (didn't help that it was single-strand because of my oversight). Solution - replace the cable and also get a nice socket from the same industrial-grade board.
    5. If USB hub with the soundcard, flash drive, BT and WiFi is disconnected, device crashes hard. If booting without USB, it doesn't get to the console. Not yet debugged but I have some pointers. ^W^W^W^W^W (flash drive was in /etc/fstab and apparently that blocked the boot process indefinitely). Was fun to debug though, that crappy IDC cable would disable a USB line which'd crash everything without logs or anything
    6. WiFi card turned out to be crap which'd segfault occasionally. Solution: take casing off WiPi dongle and put it inside, replacing that piece of crap.
    7. Power-to-comm module power cable would fall out of socket. Solution: hot glue.

    Read more »

  • Software side - first thoughts

    Arsenijs08/31/2016 at 00:16 0 comments

    First batch of device-tailored software is due to be written. Ideally, it should make me wear the thing without ever taking it off.

    Music player

    The soundcard I've added has been waiting for too long, and I don't have a reliable music player so this should hook me up. I just hope I have a flash disk big enough for all my music...

    Task management software

    I've got a TODO.txt app alright. However, it's not that easy to add tasks through pyLCI - generally, enter any kind of text. Maybe a 5$ small BT keyboard is to come soon...

    SMS and call app

    GSM modem, right? Time to put it to a good use. I just wonder if my modem's speaker output is toast - making calls might just get complicated.

    BT device app

    Bluetooth hacking is something that I want to do. I also want to employ my numerous Bluetooth peripherals, such as keyboards, headsets and phones.

    pyLCI app-like architecture

    This will be a little more complicated. Menu-driven systems might be good for system management interfaces, but for systems with high levels of human interaction, such as aggressively used UIs, contexts are necessary. My plan is to make true "apps" communicating with pyLCI over sockets, as well as being able to switch between them on the fly without exiting another apps first. This also somewhat helps improve security, though not very well - it creates some kind of "sandboxes" on the machine, at least if I launch separate apps as separate users, giving no more privilege than necessary. Honestly, it just feels like another system at this point - should it be called "WCS", as in "Wearable Control System", just like the previous version did for some time?

    More sophisticated input system

    I'll need to input things, such as messages and notes, a lot. I'll also need to combine various input ways - my goal is to even be able to use OCR and QR-codes, not to mention USB and BT keyboards.

    Thus, I think I need to implement a menu-driven input type selector, with an ability to attach inputs on the fly.

    Notification framework

    Goes well with the "app-like architecture", as well as this thing being a goddamn wearable that needs to notify me about events.

    Reader app

    I also would like to be able to read things on the screen. It'd work the same way those "read things quickly" apps do - one or two words at a time on the screen. Would go well for some blog posts I read from time to time, as well as things such as short books and tweets.


    It's not going to be easy writing all this, but it's not going to be hard either, given that pyLCI covers all of my interfacing needs and I can expand it whenever I feel like it's limiting me =) Also, the more code I write, the better!

    I wrote some cool libraries while developing pyLCI apps. I think they deserve to be released as separate Python libraries, especially now that I know how to release them =)

  • Hardware almost finished

    Arsenijs08/29/2016 at 00:08 1 comment

    This is an old log I forgot to post. Sorry guys ;-)


    All the modules are finished, and the device is wearable. I'd be wearing it right now, but...

    I forgot about batteries. I had quite different plans about the enclosure initially, and thus my battery holders were to be 4 aluminium cylinders with 18650s inside. Those cylinders are 25mm in diameter, which is not that great for the 3D-printed case I'm getting now. Thus, I'll re-make the communication module (throwing in a GPS module, as well). It'll be able to fit 2 18650 batteries, and I'll probably find a place for 2 more somewhere around the display module. I'll likely need to insert a small battery in the CPU module, just for the redundancy of some sorts so that I can swap modules quickly if necessary.

    For example, I already have plans for a snap-on display module with a color TFT LCD working over SPI. I need to get some of those displays first, but the results should be good enough for GPS maps. Alternatively, I could make it snap on top of the CPU module, complementing the pyLCI controls.

    Read more »

  • Continuation - 3D printing and assembling, part 3

    Arsenijs07/28/2016 at 23:28 0 comments

    I didn't have time for this project for quite some time. However, after I've finished work on some other projects that had higher priority, I decided it's time I finish this project. Let's do a writeup on how it looks now:


    So, first thing to come is 3D-printed parts. inb4 - just updated the files for download.

    Read more »

  • 3D printing the case - part 2

    Arsenijs05/29/2016 at 22:46 0 comments

    So, I've been ill for a while. I like to think I'm feeling better. The project must go on! If not - what's going to remind me about pills I need to take on time and food schedule I need to keep on?

    from left to right - power module, display module, main module and comms module

    I've designed a comms module and a lid for it. The lid incorporates a Pi camera - I'd want to keep it hinged in the next versions, so it's in a separate fixture. It's also separated for safety - again, this is the most vulnerable part. Need to remember that for the future revisions, which there will be.

    2 modules done, 2 to go. I'll start designing either the power module or the main module tomorrow. The main module, as you can see, is a prototype from laser-cut acrylics, from when the only thing I had available was a laser cutter. That was the start of the project and long ago. Now, I'll focus on 3D printing.

    Now it just waits for a soldering session, oh, and some connectors.

    After I do this build log, I'll publish the model files, for 3D printing and redesigning. Hope I don't forget to do this =)

    I'll think about adding another display on top of the existing 24x2 one - for notifications and status messages, since that is going to be important. Will need to see about the I2C bus since the address will be the same as the existing display. I might just add another I2C bus from USB though, or invent another solution - such as an ATTiny-driven address changer that'd sit in I2C line between the Pi and the display and relay the requests =) If I'm doing that, I'm also adding some annoying LEDs to signify the importance of things I'm notified about.

    Is there such a thing as "a cat for scale"?

    I'm using a Pi B+. Just that, no 2s or 3s. Why? Power consumption. I'll be happy to have 10-14 hours of continuous operation with all the peripherals, I guess. Also, the fact that it's most likely going to be enough. If not, I'll upgrade everything - along with the power management system, I guess.

    It'll need a GPS. I have one module I could experiment on, but I need to see about power consumption - I might need to buy a less consuming module later.

    Alright, I'll go to sleep now as I'm feeling quite sleepy.

  • 3D printing the case - part 1

    Arsenijs05/25/2016 at 00:22 0 comments

    Wearable assistant is getting a nice black 3D-printed ABS shell. It seems to be sturdy enough, and a little bit of dremelling helps with most problems. With new case, comes the new mounting system. It's going to be mounted on a fabric belt or even two belts wrapped around the wrist, and modules are going to be attached to the belt(s) using clips, possibly, magnets. It's also going to be help in place by the 40-pin IDC connector, though I wouldn't rely on this too much.

    I'm having a hard time designing the "front" module, which's supposed to contain the comms and the camera. It's the most visible module since it's at the front, and the camera has to point to the front as well, and it also will need to have some special functionality which's yet to be told about. One thing is clear - there will be more versions of it.

    And the comms module case is done, now printing for the 3rd hour. I've also made a case for the Pi camera, which's meant to sit in the "protective shell" of some sort. No fancy lenses for the camera, I'll want to try fisheye lenses but for that the whole comms module case will need to be redone. I'm printing it with 100% fill - it's the most vulnerable part, for example, if I were to fall, I'm falling on it. Therefore, I need to reinforce the camera case lid. Future version will have even better reinforcement.

    I need a fabric belt for assembling it all together - I've given mine to a friend for his project. I also need the main module, the power module and buttons for the display module designed and printed. Wonder if it all can be done in a day... And then, I need to make a new power module since I lost that one I've made. Guess I'll need to visit plenty of stores this weekend if I want this project finished by Sunday. Oh, and etching boards. I'm doing that tomorrow, a lot.

    I'll also need to spend a day on pyLCI. Could be Friday, most likely will be. After that, I'm spending the entire week on it because it's the way my assistant will communicate with me and I suddenly need all the cool features I can implement in pyLCI apps so that my bracelet is not an useless piece of plastic.

    I'm very sleepy now, just waiting for my 3D print to finish. I'll have the first case and I'll go get some components for assembling it tomorrow.

  • Wearable assistant manifesto

    Arsenijs05/09/2016 at 05:03 0 comments

    • I love Fallout game series. I wish I was playing Fallout 4 now, but there's hacking to do. Eh. Maybe I'll get to it later.
    • I love the Pip-Boy idea. It manages your resources, ammunition, tasks to be completed, plays radio broadcasts, has something like GPS inside and generally is a nice thing. Of course, the idea of a wearable personal assistant predates the Pip-Boy idea - but it's so far the most popular comparison to my project.
    • Thus, my dream was born. I always need something to manage my task lists to stop forgetting about my assignments. GPS would be very nice given that I often need to get to places I've never visited even though our city is comparably small. I need something to playback music because I just love listening to music while I'm doing things. I also would like something to help me with my hacking. On top of that, if it tracks my sleep schedules, I'm golden. So far, nothing you couldn't do with a Raspberry Pi =)
    • I love Raspberry Pi boards. The community is huge, main distros are well-polished and even though there are some quirks, it's an excellent base for my projects. Moreover, it makes them much more repeatable! So, I'll start with one. A Raspberry Pi B+ - I don't need too much processing power, but improved power management and 4 USB ports is a nice touch.
    • I don't like modern phones. They're not hackable, and it very much sucks for me. The main reason - they're mainly not open-source. Not only it's a privacy/security concern, it's hard for me to change stock apps on phones, making them act however I want them to act. Moreover, hardware is not hackable either. Want to add a FM/IR transmitter to your phone? "Screw you, buy the newer one which may or may not have good support of this functionality, it might suck in many different ways and we'll stop releasing updates anyway." Or "Yeah, buy this FM transmitter, it might not work with your next phone though, we ain't giving you an API, just a limited app we made in a couple of hours". Battery life sucks, and extra-capacity batteries ain't that great of an experience. So, if I can put together a wearable personal assistant - it's going to be my phone, too.


    Read more »

  • No time to explain, look at these pics

    Arsenijs05/03/2016 at 20:02 0 comments

    Hi everyone! So, I'm building this thing. Building first, documenting later.

    This worklog spans across 4 24-hour intervals. I won't call them days because I typically associate them with some kind of schedule, and my schedule is fucked up beyond recognition. It's all long hacking sessions with random sleep breaks.

    You remember the saying: "One picture is worth a thousand words"? Well, this worklog has 15 000 words. Go ahead, try to top that.

    A pile of stuff soon to be interconnected and turned into my bracelet

    Starting from top: display module, power module, comm module, base module

    Connecting the cable to the Pi. Oh, and a RTC connected to I2C

    USB hub added and soldered in, some more boards&stuff

    Read more »

View all 9 project logs

Enjoy this project?

Share

Discussions

kaiserr04 wrote 02/24/2019 at 03:14 point

here is what i do to get a good amount of time with the pi, you might try using a portable cellphone battery charger

  Are you sure? yes | no

Ethan Stoops wrote 02/05/2019 at 19:29 point

Dude this thing is ridiculously cool, do you ever think of coming back to it. If so Just a quick idea for less power consumption, you could use a e-ink display.

  Are you sure? yes | no

Arsenijs wrote 02/05/2019 at 19:36 point

Ideas from this project are now being implemented in #ZeroPhone - a Raspberry Pi smartphone =) I've learned a lot from this project and now, things that I've learned help me move forward. However, in parallel, I'm working on some stuff that might just help me get back here, or, at least, to a similar wearable project ;-P Also, @Morning.Star did quite a bit of research&development with regards to making a ZeroPhone-based wearable - I'm soon going to produce some PCBs based off his research, PCBs that should hopefully result in making wearable ZeroPhones (and other wearable projects) more easily.

  Are you sure? yes | no

Ethan Stoops wrote 02/05/2019 at 19:38 point

Alright, cool!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates