I am using a raspberry pi as the brain of a mobile robot. For debug reasons I'd like to keep a wireless connection with a PC. Communication speed is probably not an issue here, but a little bit of headroom would be great.

Is there an easy-to-use wireless communication way that does (ideally) not need a self-built application running on the debug PC?

Important are:

  • low power usage (the robot is running of a 3000mAh battery, so every mA saved is important)
  • low processing usage (there will be some image processing getting on)
  • ease of use (on the RPi on one hand, also on the PC - "open a website" is better than "write your own program")

I've looked into bluetooth, but I couldn't find an easy way to implement it on the debug PC. Also I considered the idea of using a wifi-stick with a simple web server running on the pi, but I can't really tell whether this will put a burden on the power and processing time.

  • Hello and welcome! I hope this question is not considered too broad... – Ghanima May 11 '15 at 21:59
  • Thank you, I hope so, I tried being as precise as possible. – Luke35 May 11 '15 at 22:00
  • A USB wifi dongle plugged in only when needed would work; the challenge is more if you need something which can be very passive until remotely activated. An ESP8266 could implement a serial bridge, and you can play with sleep timing to save power, but remote wakeup may be tricky. Something like bluetooth low energy would be great for remote wakeup but require more customization on the PC side. Also, if you designing a battery powered product you probably shouldn't be using a pi to begin with, but something with a mobile- rather than set-top-box chip. – Chris Stratton May 11 '15 at 22:04
  • It's not gonna be a product, it's mainly for fun (but should be as good as its possible ;) ). Can you estimate what the impact on processing power would be with a wifi-stick & a server delivering a simple html? – Luke35 May 11 '15 at 22:09
  • I don't understand the constraints you are adding if the wireless is for debugging purposes. Just use a standard wifi dongle and ssh into the Pi. – joan May 11 '15 at 22:16

You will need to allocate the extra resource for a server software to send these details to your chosen solution. It is unclear what you want to be sending over, just text data? Or image data too?

For Images, video streams, you can use a normal WiFi dongle, during debug mode plug it in and start your server. A simple Python web server that can push the data you need via a web browser over Wifi, images, text, and HTML. You can set it to run in 802.11a/b/g/n to tweak power and also you can set the TX/RX power to tweak the power usage on the dongle. You will need to do your own research on this.

For pure text debugging you can use the UART on the Pi. You need to disable the console out put first. Then you create a script, in any language you prefer that will dump data to the UART. Then to the UART you attach a transparent Bluetooth Serial Device (more power efficient than WiFi)(try and find BLE but the range is extremely cut down on BLE!). Basically you pair your PC with that Bluetooth Serial device and you get a virtual COM Port. Now you can connect to the Pi using Putty on COMx, over Bluetooth reading all the data on the console.

As mentioned before, debugging should only be used when you testing things out locally, so battery shouldn't play to much of a factor. When you done and happy, you then turn of all debugging platforms, servers, processor and peripherals - and let your robot do its thing. (You may let you logger run and save to a file to review offline, in the event things go wrong while you are in production mode)

| improve this answer | |
  • 1
    As it would be useful to send images sometimes I'm probably gonna use the python server, thank you! Also, for pointing out offline logging, I hadn't thought about that. – Luke35 May 12 '15 at 9:04
  • No problem Luke - Years of software developing always boils down to offline logs :) Good luck with your project. – Piotr Kula May 12 '15 at 9:05

I suggest using Bluetooth Low Energy (BLE). You can get a dongle (pay attention that it is a BLE and not regular Bluetooth dongle). As name already says - it is low energy.

Then I would setup an ad hoc network over Bluetooth connection. I have written a blog post about that.

You can use ssh with IP address set up by DHCP.

| improve this answer | |
  • I'd really like to upvote this answer too, but I can't having not enough reputation. Thank you anyway! – Luke35 May 12 '15 at 9:05
  • Bostjan, if you upvote Luke, then Luke can upvote you. Then we form an unbreakable upvote loop and everybody is happy :) +1 for good tip with BLE. – Piotr Kula May 12 '15 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.