Tag Archives: wearable computer

And it's not even a triumph yet ;-)

Raspberry Pi wearable PC – updates

Good news! I have moved towards my project of wearable Raspberry Pi. First of all, my Raspberry Pi is working. I’ve desoldered all the connectors that were bulky, even though I haven’t desoldered the SMSC ship yet. I’ve desoldered the linear regulator… And replaced it with exactly the same 1117 regulator =) It’s just a temporary proof that external regulator really does work as intended. The Pi boots up nicely even after this drastic modification and is equipped with 8GB card. It also has a case and the prototype shield is being made.

And it's not even a triumph yet ;-)

Poor Pi. It has suffered so many injuries and is still alive.

What I’ll be pairing with Pi?

  • DS18B20 sensors
  • Infrared receiver and diode
  • LED strip piece
  • I2C RTC based on DS1307Z with logical level shifter
  • I2C GPIO expander used as key matrix controller
  • DC-DC 5V-3,3V converter
  • 2 Li-ion 18650 cells
  • DC-DC 7,2V-5V converter
  • Usb hub
  • USB BT dongle
  • 3x Nokia 3310 screens with custom CS signal multiplexer

Later:

  • Pulseoximeter
  • Geiger counter
  • NFC
  • WiFi

How? Just see this diagram on the left. It gives you some clues about what exactly I’m going to make. Diagram on the right shows you what I currently have =)

That's how things are now just for you to see =)

That’s how things are now =)

Turns out Linux also has Paint-like software. This was created by Pinta. Seems like they didn't think much about the name and just rearranged the letters ;-)

That’s how things should look like.

I’m probably going to loot some free sample-offering IC companies =) I’m certainly going to need an acelerometer and gyroscope after that. I have an idea to get them from some mobile phone motherboards scattered around my room, but I just don’t have equipment suitable for desoldering BGA chips – otherwise I’d have had those parts already.

How exactly I’m going to do that?

I’ll need some kind of a board with ATMega – solely for expanding GPIOs, as well as getting normal PWM outputs and analog inputs. These, unfortunately, aren’t available on Pi but I’ll sure need them. I have an Arduino Nano – it’s just that it has broken FTDI chip, all pins desoldered and some traces damaged, but most of them are still fine =) This is necessary for the pulseoximeter to work, for example, as it does require analog input. See, I’m kind of tight on money now =) This explains why I have to suffice from what I currently have and not what I could have ordered from Adafruit/Farnell/DealExtreme/whatever. But I really want to finish this project, and my skills are good enough to get some things out of worthless electronic waste. Moreover, I have some projects that turned out not really good after all – but I can get some parts out of them. So – project will go on. After all, this is something I’ve dreamed about for, like, 1 or 2 years.

Size of my current prototype. Height of it is the same of two matchboxes =)

Size of my current prototype. Height of it is the same of two matchboxes =)

I’ll then have to strap this case onto my wrist using some kind of flexible textile band. As you can see, the case is kind of big. But I still like the idea of wearing it on my wrist. Why? I know, it’s bulky and such – but I plan on giving this project benefits that no smartphone currently has and really using this wearable PC, and I think any continuation of this project is not possible if I don’t use it in my daily life. That, of course, means wearing it on my wrist, no matter if it seems oversized. Later, when I get some money, I might make this smaller, but now I just have no possibility – remember, I’ll have to use what I got now 😉 But for now I’ll have to wear this bulky thing when it’s ready. After all, I could eventually come up with a solution to make a device even this size more prettier =)

As I’ll be using this outdoors, I also want this case to be waterproof. This sure will mean some testing of the closed case under the shower (imitating the rain that sometimes happens =) ) Probably I’ll also test it fully underwater – you know, things happen 😉 And I’ll definitely include some kind of device that’ll monitor if water got inside and notify me immediately, at least with LED on the case. A small circuit using, like, one transistor and an external battery has to be enough.

Yes, that's what I'm talking about. Contacts like that connect HDD controller with HDD head and don't let any air or water through them.

Yes, that’s what I’m talking about. Contacts like that connect HDD controller with HDD head and don’t let any air or water through them.

I’m not including WiFi, Geiger counter or NFC in the project yet, but I think I’ll need them sometimes. So – there has to be some kind of expansion possibility, while keeping everything inside the case waterproof. Way to go, pogopins and isolated contact groups from the broken HDDs! I have already got one contact group from HDD that seems promising, all that’s left is to cut a hole in the plastic and wire all the contacts.

Even though case is big – I probably won’t really be able to stuff just everything in it. 18650 cells will have to be somewhere else. I could put them into some kind of cell-shaped cases (probably an 18650 holder modified just a little bit and also made waterproof) and then attach them to the same band that will hold the case on my wrist. But both DC-DC converters will definitely be inside, along with all the other electronics, except those that will be added from time to time.

hc-06s-1_2

 

I’ll need options for debugging. For example, I’m going to take some magnet-controlled switches and glue them inside the case close to the side. One’d control RPi reset pins, and second would enable UART-Bluetooth converter which’d help to access serial console if everything gets broken. This will be some kind of a last chance tool so I don’t need it enabled all the time – the only drawback is in that there has to be a magnet with me all the time =)

MDSM-4R 12-18

 

The device will certainly act as a RGB flashlight. I’ve got two pieces of LED ribbon, both around 6 centimeters long – one is RGB and other’s just white. Will probably add a possibility to swap them or just use them together. I’d also like to mount a low-power laser, maybe on my index finger – I’ve already tried it and it felt awesome =)

LED_strip_SMD_3528

 

Seems like I’ll be using SPI actively for various things, and each device on SPI interface needs its own CS line. So – there’s a need in SPI CS signal multiplexer. This can be done easily by using some IC like 74hc138, and adds many more chip select lines for connecting more devices to Pi =) But I’ll need to make a Python wrapper library for spidev library so that we can actually use those CS lines, and it’ll occupy 2 or 3 GPIO lines.

ID757_LRG

Click image to go to product page

I2C will be fine – it won’t need any multiplexing. However, there’s another problem – DS1307Z RTC I’m using is 5V-only, and this is not going to make Raspberry Pi happy. So I need a logic level shifter – and I’m going to get it from TI, as the IC they have is the best for this purpose but is hard to get in Latvia for reasonable price.

 

 

I also plan on making an I2C keyboard that will consist of keys placed on fingers of my left arm, the same arm I’ll be carrying my PC on. I want to experiment with this way of controlling the PC, that is – key matrix on the fingers. But I’ll surely need a GPIO expander for this, and I2C seems to be a way to go.

I might buy a camera board if I happen to get enough money, even though it’s not my top priority for now. I already have the plans on how to extend the wiring up to 1M without noticeable losses in signal – using USB cable for power, ground and I2C signals and a shielded Ethernet cable for 4 differential data pairs =) The camera will probably be shoulder-mounted for better field of view with some kind of servo turning it around.

Click image to go to product page

If it lasts, I’ll try to add a GSM modem – at first it’ll be just capable of sending message through some simple software, but then code might be added to enable voice calls. I just don’t feel like being ready to code voice call support, but I haven’t looked that much at it yet =)

 

 

 

I also will need some ICs to help my project. Those include some that I just can’t get in Latvia for any kind of reasonable price. Thus, I’ll need money to obtain them =) For example, I need following ICs from Texas Instruments:

  • TUSB2077APT USB hub – I’ll temporarily replace it with a GL805-based board and, probably, will make a breakout for GL805.
  • TPD4E001DCKR USB hub ESD protector
  • TCA9555 I2C GPIO expander
  • PCA9306 logical level shifter for I2C – but I’ll look out for a possibility to replace this with something.

They’ve refused to send them as samples as it’s not any kind of university or company project. So – gotta get this on my own =) Or, maybe, search for similar things at other companies.

Bigger! Way bigger!

Bigger! Way bigger!

As the PC probably need to be silent sometimes, I’ll equip it with a vibromotor, similar to those used in mobile phones, just a little bit bigger. It could be also helpful in waking me up =)  Also I’m not sure whether I’ll need loudspeakers integrated. I think I’ll mostly use either wired headphones or BT headset with this. And if I’d need to use loudspeakers with my wearable PC, I have battery-powered Nokia speakers. Also, integrated loudspeakers are hard to make waterproof – sad but true.

 

 

Not to mention that Pi has shitty PWM-driven audio output =) I’ll certainly be using my PC as a MP3 player, so I’ll need to add an audio card to it. Either USB or I2S, I don’t know which will be more affordable for me.

The last thing – all this will sure need its own RPi SD card image, maybe even recompiled kernel =) This image will for sure be public and I’ll probably even make instructions on how to embed those things into Raspbian.

All in all, each of these chapters will get an article on its own. I’ll be soon putting an article about DS1307Z PCB that is already made and show you a RTC module for this project – I just don’t have a normal board etched yet to show you. Other things will then follow as soon as I make them.

                                                                                                                                                            

So, what are the requirements for me to make it?

Tools:

  • Soldering iron, enough solder and flux, along with some more essentials – check.
  • Soldering heat gun – I have a possibility to use friend’s one so no worry about this, check
  • Hot glue gun – check
  • Dremel – check
  • Everything to make my own PCBs – check
  • Power supplies for substituting batteries while they’re not working yet – check

Programming languages:

  • Some Wiring language experience I got as a result of tinkering with Arduino before. Thus, it won’t be a problem to make firmware for Arduino as a GPIO expander.
  • Python – my language of choice, and it fits in the project as it has all the capabilities needed. I’ve already got some experience in writing more or less complex programs and it won’t be a problem to make usable and useful software for a wearable PC =)

Materials:

  • Case – check
  • Raspberry Pi – check
  • Some pre-etched breadboards for prototyping – check
  • USB BT module – check
  • USB-UART module – check
  • BT-UART module – check
  • Magnetic switches – check
  • I2C RTC – PCB is not etched yet, but the layout is ready and I have all the parts
  • LED strips – check. Will need to remake them to work on 5V instead of 12V, though, or get a 5V-12V DC-DC.
  • USB hub with ESD protection – to buy from Texas Instruments
  • I2C GPIO expander – from TI, too
  • I2C level shifter – same
  • DS18B20 – check. Got like 3 of them already.
  • IR receiver/diode – check
  • ATTiny 2313 for multiplexer – check
  • Arduino – I don’t know whether mine is working now. If it isn’t, this part will be delayed.
  • 18650 cells with holder – not available yet. I know how to get decent cells here, though, so it’s a matter of money. I also know a person who’d buy the holders for me abroad, as they’re difficult to spot here.
  • DC-DC converters – not available for me yet, too. But I’ll soon make one using a LM2576 – just got one fixed for 5V and they seem easy to design a PCB for.
  • Nokia 3310 screens – I know a place where to search for those phones broken, and I’ll just get the screens by disassembling them.

Some cool battery hack lies beneath this image, click!

                                                                                                                                                            

Note – I could get some 18650 cells from laptop batteries. The thing is that I don’t feel good about fiddling with lithium batteries as this easily gets dangerous – and I don’t want my arm to be torn off by an explosion, so I won’t be trying to get those cells for cheap.
I also have an idea for a temporary setup, not needing money. I happened to have 3 batteries of Asus EEE PC, a laptop I’m currently using. That means – 2 spare batteries, and they have just the same 18650 cells inside. So – I could find a way to wire EEE PC battery socket to the DC-DC regulators so that I could power the PC with the said batteries and charge them using my laptop, until I buy proper cells, holder and charger. After that, when I’ll need more custom solution, I’ll go for making something else =)

See, I want to build this PC as soon as it’ll be possible to but also make it functional enough to work, not to be just an additional weight for my arm. Therefore, I’m gonna make a prototype PC fast and then, as I get money, make it better step by step.

 What are the positive and negative sides of this project I can think of?

Pros:

  • It’s completely open-source, excluding RPi GPU code, of course.
  • It’s the first project like that – no one has ever put anything like this in public.
  • There’ll be data about every step on my blog, or a substitute from other blog describing exactly the same part of my work.
  • Parts will be cheap – I just don’t have any other choice other than to pick cheap parts =)
  • It’s free from Google surveillance and things like that. With this PC, you control your privacy.
  • It’ll be really easy to modify it to suit your needs – to throw out something unnecessary or to add something that’s vital for you.
  • Almost everyone will be able to build one by spending some time working or, at least, to buy one instead =)

Cons:

  • It does take some time and soldering skills to build a PC like that.
  • It’s big and bulky. At least, I haven’t found a good way to shrink it yet.
  • Everything that is planned will need to be coded, this will take time.
  • It’s not really suited for running a desktop environment on. You can have another Pi for development, though =) I’m using a laptop, so it’s fine for me. It won’t be any faster or slower than a Pi is, that’s it. I’ll certainly think about making a custom DE or modifying something already existent and lightweight.
  • It’s not developed by some kind of a company with resources. This is both good and bad thing. What’s bad is that if I fry some of the vital parts I have now (such as RPi), development will likely be delayed as I simply don’t have that much money.

IMG_0382

I’ll be developing this anyway, as all the positive sides are just what I search for and all the negative sides don’t bother me that much. So – count on the project as a started, and I doubt there’d be any obstacles that’d divide me and this project… If only I don’t lose my prototype or it doesn’t fry itself due to being badly planned or MB due to my occasional clumsiness. Hope that won’t happen =)

Wearable PC project from Raspberry PI – preparation and idea

Raspberry Pi has been nearly anywhere – robots, desktop computers, laptops, control centers, HTPCs, control centers, game machines, bar tables, spy devices, web cameras – to be continued. But what about a wearable computer? Something I dream about? I haven’t seen some project that went public yet. Basically, nothing to be inspired from, than Pip-Boy =)

My favorite accessory from my favorite game. This does inspire, indeed!

And that’s OK, as long as the idea inspires me enough to write about it. Talking about Pip-Boy – that’s kinda of what I want my future wearable PC to look like. I want it to be placed the same way – on my arm, but I won’t be making it as big as Pip-Boy yet =) It has to have two 18650 cells inside, with the way to charge them. It also needs to have BT and USB hub inside, and, possibly, WiFi. I want it to be wireless yet reliable so some crucial communications will be wired. Talking about communications…

What could this PC have as a display? There’s no such a thing as “cheap yet good display for RPi”. SPI screens are slow to refresh. Composite video screens don’t have any much quality of image, also, the resolution is limited. HDMI screens are expensive and hard to find. Those DSI-connected screens simply do not exist. Given that my money is limited, I’ll now have to choose between composite video and SPI… And at the moment I choose neither. I think I can live without a screen for a while =) I had an old idea of hanging three Nokia 3310 screens to the SPI port of either RPi or Arduino as a helper module. I still have it and I like it – there is a place for them on my sketch I have in mind. They’d be showing time, date, status of various wearable PC additions and possibly would have some controls to make a simple menu using them. This is much more easier and less expensive, even though requires some soldering 😉

Yes, that simple. And 3310 are just soooo easy to get 😉

So – what’s RPi lacking from a perfect wearable PC base? Well, Model B with its 512MB of RAM seems good, but…
Small size and energy consumption seem to be the problem. What’s about size?
Even though we can’t change the board’s length or width, we can change height. There are some connectors that can easily be removed, and we can use pins to connect something to RPI instead. For example, we could replace the double USB connector with 2 groups of 4 pins – both replacing each 4 contacts of each one of two USB ports. For RCA jack, there’s only two pins. For audio – 5, but it seems that 2 of them are useless, so let’s say – 3. Ethernet jack? Well, I suppose I don’t really need Ethernet on my wearable computer, MB I could bring USB-Ethernet card with me just in case, but that seems an overkill even for debugging. So Ethernet jack stays somewhere else in my drawer 😉 I won’t be removing neither HDMI not CSI/DSI as they’re OK and don’t enlarge size that much, also, they will be used sometimes.

This photo shows what Pi looks like with connectors desoldered. Also, click to go to this project page =)

OK, something is clear about the size. What about the energy consumption? Well, there are three things on the board that consume energy.

That does look terrifying if you think about how much energy is wasted =(

First is the CPU. We can’t do much about it, though, except underclocking. The best we can do is to cool it down. I think heatsink really has to be in my wearable computer – just for the stability 😉 So – I’ll have to have a heatsink on CPU. I’m not sure how this will improve power consumption, though, but it will definitely make a job easier for the CPU. Second is USB hub&USB-Ethernet chip. Well, I personally think we can remove it without a doubt. Why? First of all, it’s laggy sometimes, some users still report driver problems regarding exactly USB-Ethernet, as I’ve seen on forums. Also, I won’t be needing Ethernet, remember? So I think it’s better to have the possibility of choosing whether I want USB hub enabled or not, and thus have better power management. You see, you can turn off external hub – but with internal it’s not that easy. Also, it freakin’ heats up =) So – I’ll also have to remove this SMSC chip. Third part is 5V-3.3V regulator. It’s linear, so it heats up, too. Also, I think I’ll need much more current on 3.3V line than this regulator can provide, so I think I’ll be replacing it with something else. Some guys did replace it with a switching regulator, I think I’ll do the same.


So – remove the linear regulator.
Also, speaking about the power – will have to think about whether this MicroUSB port with the corresponding capacitor and fuse are really necessary. Given that I’m likely to power everything through GPIO header, I think they aren’t.

Okay, I can now imagine the board without all those large connectors. The only things that remain are: GPIO headers, USB/audio/RCA headers, reset header, HDMI/CSI/DSI connectors and the CPU. It just seems like an Arduino now, having some pins we can plug a shield onto. And we will. I think that RPi is to be like a processor shield for my wearable computer, and we have to plug this processor shield into an expansion board. What’s this expansion board? First of all, something that will be connected to all the GPIO pins of the RPI. So – in the base there must be a PCB with sockets for GPIO pins and stuff. It should expose USB/RCA/audio connections, too. Then, we have to have some kind of USB hub there. I think it won’t be hard to make a hub directly on this PCB.
Like, we have chips like GL805, which have accessible specifications, and they don’t require that much of components to work, and what’s most important – they’re in every second Chinese USB hub. Even though they are, indeed, consuming around 100mA even when idle – it’s something for the start, later on we can grab something from TI to ensure power efficiency.
On this PB, I also plan putting BT and WiFi modules. I’ve seen WiFi modules for, like, 6-7EUR each, that had good Linux compatibility and could be soldered directly onto PCB with pads prepared for that.

Click on this to go to product page

Will have to find BT modules like that, though – BT is my concern as I feel I’ll be using it actively.
sample design pics here
Also, I’ll certainly have an IR sensor and IR LED on this PCB, along with some DS18B20’s and MB other stuff that I could develop on. See, as it is a wearable computer, some of temperature sensors are certainly going to be stuffed under the clothes to log the temperature of my body with 0,01 Celsius grade precision. Pulsoximeter will follow this shortly after that, and I definitely will add something more 😉 One more thought for this device – it could be the thing that registers when I fall asleep, just to turn off the lights and lock my PC so that nobody will blame me for leaving lights on and PC working =)

I could think of many usages, like a mobile phone/PDA replacement, audio player and stuff like that – the problem is I haven’t started actually working yet. I don’t even know if the RPi I’m holding in front of me right now is in a working condition – I occasionally threw it in my school bag and it got some minor injuries there, none of those look critical but there might be some critical ones that just can’t be seen easily. So – the whole project depends on whether mine RPi is working. I’ll provide updates when I have them =)

This is real… But inside there’s just a music player. Gotta fix that in my edition 😉

Gotta go and strip ALL the connectors off!

And no, it’s not an April Fools joke – updates are to be coming soon 😉