Welcome new user! You can search existing questions and answers without registering, but please register to post new questions and receive answers. Note that due to large amounts of spam attempts, your first three posts will be manually moderated, so please be patient.
We have moved to a new forum at http://jevois.usc.edu, please check it out. The forum at jevois.org/qa will not allow new user registrations but is maintained alive for its useful past questions and answers.

Electrical Connections and Wireless Streaming - More detail required

+1 vote

I want to mount the JeVois on an autonomous Robot and stream video wirelessly to a control platform (Windows Surface Pro Tablet ) As a start I have the following questions.

Step 1 - Power for the JeVois unit

  1. Is the only connection to power the LeVois the USB port?  Does this mean a USB connector is always required or are there Vcc & Gnd pins somewhere? 
  2. The voltage connections for the serial port 5v or 3.3v.  What are the specifications for Current mA?  Arduino pins can be limited to as little as 50 mA is this sufficient?
  3. Since it will be battery powered. What is the over voltage protection if any?  What is the minimum voltage? For example a custom USB cable connected to a 3 batteries 4.5v to 4.8v will it work?  Complete specifications would be useful here.
Step  2 - How to send the data stream?

It would appear I need to have an intermediate microcontroller to stream the video wirelessly. For example: Raspberry Pi (linux), Intel Edison (linux) or Panda Board (windows)  I was not expecting this, but it makes sense to do.  I now need to sort out the architecture, electrical and communication so any help would be appreciated because this just got a whole lot more complex. 

  1. Has this been done before?  Are there any recommendations for the router function?  I seem to remember reading about a Linux  based video hub.  Has anything like this been used with the LeVois?
  2. I assume the output is USB serial only, correct?
  3. Any experience with Bluetooth LE or Wireless Ethernet 2.4 Ghz or Xbee as wireless networks?
asked Apr 25, 2017 in Hardware Questions by Irakandjii (200 points)

2 Answers

+1 vote
 
Best answer

A few additions to the great answers by pelrun (who is indeed a fellow user, but quite knowledgeable!):

Power requirements

- yes, power is only through the USB pport

- the serial port power is only used to power RX and TX voltage translators (BSS138 mosfet + 1M resistor to ground + 10K pullup), which then connect directly to inputs on the CPU. We do not have the exact figure either. Assume less than 1mA draw.

- the power management unit (voltage regulator) is an AXP223. Rated maximum input voltage under normal operation is 6.3V. Note that the fan is also directly connected to the input voltage. It is rated for 5V +/- 10% nominal. Brownout voltage is 4.4V. Again remember that the fan will start slowing down before that. To power from battery, we highly recommend either:

1) a USB power bank battery, you can get any size and shape you want and they deliver regulated 5V. Have a look here for some calculations and run time estimates with a 2600mAh power bank:

https://www.jevoisinc.com/collections/accessories/products/usb-power-bank-2600mah

2) Or you could use either a step-up or a step-down voltage converter if you already have a battery for other reasons (e.g., in a robot), for example those tiny units:

https://www.jevoisinc.com/collections/accessories/products/step-down-6-24v-in-to-usb-5v-3a-out-dc-dc-converter

https://www.jevoisinc.com/collections/accessories/products/step-up-dc-dc-boost-converter-3v-to-usb-5v-1a

Maximum we have ever achieved is 3.73W. Under the burn test JeVois module (which fully loads CPU, GPU, USB, camera, etc) you should see 3.5W, and other ArUco or other lighter modules, expect 2.5W.

Wireless streaming of video:

We have done it once using a $25 OpenWRT router. OpenWRT is an open source framework for routers. OpenWRT has USB camera support, and can stream video wirelessly using the mjpg-streamer OpenWRT module, see

https://wiki.openwrt.org/doc/howto/webcam

You then simply use a Y-type cable to connect JeVois to the USB port of the OpenWRT box and to an additional power source (the USB port on the OpenWRT box is unlikely to be able to power JeVois). The OpenWRT box detects JeVois as a connected USB camera, and triggers the mjpg-streamer module. There is a bit of messing around with config files and options passed down to mjpg-streamer to select the correct resolution and you are good to go. You view the video by wirelessly connecting your tablet to the OpenWRT router (which acts as a wifi access point) and then pointing your browser to some URL (see the mjpg-streamer doc) where you will see the video from JeVois.

Try a search for "GL-MT300N" or similar. Although we have not used this exact model, it should work just fine since it has OpenWRT and also a USB2.0 port to which you can connect JeVois. Note that the CPU in these OpenWRT boxes is quite slow (e.g., 200MHz single core) so the framerate at which you will be able to see the video may be limited. We could do 15fps at 320x240 MJPG in our tests. Because of the slow OpenWRT CPU, you may be better off doing compression to MJPG on JeVois and streaming MJPG video out of JeVois, so that the OpenWRT box will just forward the video frames over wifi without the need to compress them on the OpenWRT CPU.

Wireless serial

We have successfully used an Adafruit Feather 32u4 Bluefruit LE. We connected its serial pins to the serial port of JeVois, and wrote a trivial piece of code that would just forward serial data between the serial pins and the BLE module of the Feather. It worked well at 9600 bauds but choked at 115200. Looks like serial transmission over BLE is limited to 9600 bauds. Have a look in JEVOIS:/config/params.cfg for config options we used when transmitting serial data over Bluetooth. Other serial-to-BLE modules are available and should work fine as well, but we have not yet tested. The main drawback with the Feather 32u4 Bluefruit LE is its price ($30). 

answered May 4, 2017 by JeVois (46,580 points)
selected May 11, 2017 by Irakandjii
For Wireless serial, i have to test it but i think :

- over BT : probably a simple (and cheap) HC05 would transmit serial commands.
- over WIFI : you can use an esp8266 (small and cheap) wired to RX/TX (like any arduino) and transmit serial commands via WIFI.
Thank you.

Simply stated.  
- The device is intended to be used with a PC (OS agnostic) and is not suitable for remote mounting without specialized power management.
- Currently, the JeVois cannot be used safely on autonomous devices, there is no built-in capability to monitor the vehicle remotely.  JeVois equipped Robots or Vehicles may only be tested or used in spaces devoid of people, animals or property that may be subject to damage.

Summary:
1) All recommended remote power "USB battery packs or voltage converters" do not pass through the USB data signals, and therefore block monitoring.

2) A "Y connector" is generally expected because the device exceeds nominal USB power levels.  
- The user is expected to manage "injected" noise on the Rx/Tx lines.
- The user is expected to "experiment" to find current draw.  USB 3.0 has a max current of 900 mA (4.5W), USB 2 500 mA.  3.73 W has been seen on the device.
- The user is expected to manage voltage levels, overcurrent, polarity etc. in the supply.
- There are no engineering specifications for the device.

Conclusion, the device is likely to operate at the limits of traditional USB ports and will likely exceed the output of cheap usb chipsets that are used in typical "maker" products.  

To support this device for autonomous use, the user will need to design an appropriate power "infrastructure" when the "USB serial lines" need to be accessed.
So,
- break out the USB lines,
- pass through the Tx/Rx to the "OpenWRT" device
- and then supply sufficient 5v power to support all devices in the architecture on a common power bus.  (JeVois, "OpenWRT", wireless transmitter) ~3 A @ 5v.

I would suggest that in Version 2 of JeVois the manufacturer provide an independent (well specified) 5v input, that can be isolated from the USB power lines, typically by a switch or at least a trace that can be cut on the circuit board.
Thank you for your comments. Yet, I respectfully disagree with your conclusions ;-)

To clarify these issues, we created a new documentation page at http://jevois.org/doc/UserConnect.html

As you can see, no cutting or splitting of USB cables is necessary for the scenarios we have discussed here, and for many more scenarios. The OpenWRT scenario is included: it uses one standard Y-type cable for JeVois + one micro-USB cable to power the OpenWRT box.
0 votes
The unit is only powered through the USB port. You may be able to solder cables somewhere on the device, but that will immediately void your warranty.

Any current draw from the serial port is negligible. The unit only uses the +V pin to determine the voltages for the serial pins.

Do *not* connect the unit directly to an unregulated battery. Either use a pre-built USB battery pack, or a 5v BEC (regulator) between a 2S/3S lipo battery and the unit. 4.8V from three AA batteries will work, but you'll probably drain them extremely quickly and the unit will behave erratically. I don't recommend it.

The serial port can be reached either via the serial connector or via the serial device exposed over USB.

If you want to send the video remotely, you *will* need to connect the unit to another computer with wifi - a raspberry pi running mjpg-streamer would work. The other wireless technologies you mention will not have enough bandwidth for the video stream, although they could work if you only want to connect serial.

Edit: You might want to reconsider your design if you intend streaming the jevois video output. It's generally intended to be used to debug your vision code during development, and the primary output is the serial data. If you want a camera for FPV use, I would strongly recommend adding a *second* camera specifically for that purpose.
answered Apr 26, 2017 by pelrun (2,330 points)
edited Apr 26, 2017 by pelrun
Thank you for this response.  But if you please, are you able to provide engineering specifications (numbers)?  Negligible and "extremely quickly" are not specifications.   

That car running around in the video could really hurt someone or something if it lost control.  I need to design my projects with public safety in mind.  Therefore, understanding components in detail is an engineering OBLIGATION.

Pre built USB battery packs used for one device in an architecture of devices is far from optimum.  Better to have a single monitored and regulated source.  I can easily design a 5v power tap from the main power battery, a 12v deep discharge battery.  Yet without specifications there is a design risk and a chance for a LOT of wasted time.  This device is "by intent" out of spec with respect to USB 2.0.  It is usually incumbent on a manufacturer to clearly and unambiguously state any out of spec attributes, since users cannot rely on the std. USB values.

For example, @3.5 Watts, I CANNOT power the JeVois from the Raspberry Pi USB ports.  More importantly I would much prefer to use an Intel Edison since it has a embedded wireless, BLE and real-time controller closely coupled to its Linux Kernel.  Standard Linux is really not the best for real-time control systems.  Edison does not provide USB power to external devices.

I need to understand the engineering parameters so I can design for them.  This is usually standard stuff.  By way of example:
Specifications:
Power Vcc Max. = X, Vcc Min = Y, Icc Max. = Z amps, Icc Nominal = ? amps.
Operating environmental air temperature  -min temp < T < +max temp  
BTW Thermals seem pretty important here, so when does the device need to be shut down in the interests of safety.  
Usually Bandwidth, latency and jitter requirements would be available for each video mode, that would define the available network choices.  

As for the need for a second camera, that obliterates my purpose.  I already have a Pixy, I needed something better.  

Robots in the wild will "run into" unexpected circumstances that the algorithm cannot handle.  In that case, it needs to enter a safe mode, call home and have a human operator take control.  For this to occur the human needs to see what the robot sees.  If this cannot be done, the JeVois is not suitable for my use on autonomous devices.  In a sense it is debugging, but on a higher plane.  In my IEEE SQA days we called this "Software Safety"  a higher standard of quality assurance.  This device is being promoted as suitable for drones, safety should be high on the requirements list.

It may be that this device is not suitable for any real purpose other than PC based software experimentation.  That would be fine.  I just need to know sooner rather than later.
I'm just a fellow user, don't expect hard numbers from me, or a sales pitch. If explicit numbers are that critical, you need to measure them yourself.

Power usage on high-impedance signal lines *is* negligible. As in 5v into 100k or whatever is small enough to not need explicit calculation. Like I said, the unit does not draw power from the serial port, only the USB connector.

My own measurements of the unit had it drawing at most 700mA (but usually 500mA) on the USB connector, but I wasn't fully loading it up. If all four cores were running 100% I expect it's probably going to be around an amp. So you will need to design for at least 1.5A, unless you know for certain that your specific application will require less.

And whether it's "fully USB 2.0 compliant" or not, there's absolutely no reason not to also guarantee the standard 5.0V (+0.25V/-0.6V). You must regulate the input power, and better performance than this is trivially obtainable. I don't understand the desire to push the spec on this point, especially since you're placing so much emphasis on safety.
...