Air-mouse update

Added header pins to the Xadow breakout board, plugged in the MMU 6050 sensor, uploaded the SAME code been testing on the Teensy++2 and success – the Xadow works as an air mouse!

I did comment out the button code as I have loaned my buttons to another Xinchejian Assistive devices team member. Also changed the movement sensitivity.

Will probably use the Teensy to continue the sensor – library debugging as it has heaps of IO to drive LEDs or a logic analyser. Will also move the draft code for the virtual button control to both boards and then should have a fully functional mouse. There are a lot more features planned, so this will be a highly capable and highly adaptable mouse!

A Xinchejian members first experience is in this second video – only instruction to him was hold like this and rotate! Seems like he was quite impressed!

Assistive devices and “Helper sessions” at Xinchejian

Kicked off establishment of “Helper sessions” and making assistive devices in a talk at Xinchejian.

Seems like there is a fair bit of interest – so these sessions will hopefully be be ongoing and produce some fun and “usable devices” (haha).

The trimmed presentation (cut out the waffle about me) has been published here as pdf and odp because XCJ blog and wiki have file size and type restrictions.

Started Xinchejian wiki pages for “Helper sessions” and making assistive devices.

USB device detected, but no USB port assigned – Ubuntu

This issue, where a USB device is detected, but no USB port assigned has taken me a lot of effort to solve on several occasions, because I forgot the fix each time, so hopefully this post might help you!

In short if you connect a ‘new’ USB device and it does not ‘work’, but dmesg reports something like below and the device number increments on every dis/reconnect:
usb 4-2: new full speed USB device number 11 using uhci_hcd

The issue is that no USB port has been assigned, as seen below in this successful connection:
usb 4-2: new full speed USB device number 12 using uhci_hcd
cdc_acm 4-2:1.0: ttyACM0: USB ACM device

The following fix has worked for me on three, maybe four, systems:
sudo modprobe cdc_acm

The systems it definitely fixed were the Dangerous Prototypes OLS, a USnooBie and just this week, an Arduino UNO v2.0. Plus it probably fixed a Dangerous Prototypes BusBlaster, but my notes don’t document and it almost certainly would have fixed the very long saga I had with the Dangerous Prototypes IRToy, but it went a different, painful process, that I won’t be able to reproduce, but the root issue seemed the same.

While three of these systems are all from Dangerous Prototypes, ALL five have a different hardware USB implementation! The Arduino and Dangerous Prototypes devices are also all very popular.

Two references that helped were 1 and 2. The second, Gentoo link, talks about modprobe cdc_acm and interestingly modprobe ftdi_sio, which I have not used, but am trying to burn into my brain for the next issue I have. I must have used other sites – but apologies to them as I forgot to record the sources 🙁

Possibly relevant background information:

I only use the one Ubuntu laptop, so have not run into this on any other systems! The build started with 10.10 and took all upgrades up to 11.10. These devices all worked on Windows XP Pro, with only a couple of minor issues.

I have successfully used lots of other devices on the same Ubuntu laptop, including an Arduino Deumilanove, a DP BusPirate, a DP USB LCD Backpack, and three different types of USB to TTL (FTDI) convertors.

Highly relevant background information = I break stuff – lots of stuff, just by touch and sometimes it seems just by looking.

Lophilo, Swarm Robots and R2D2

Xinchejian hackerspace is still settling in to their new space, but there was a lot of activity on the weekend!

Things that I noticed included many active projects undergoing design work, coding and assembling a quadcopter (commiserations on the maiden flight crash) and first timers playing with Arduino.

Highlights for me were:

  • getting hands on a real Lophilo – this development hardware looks extremely professional, flexible, and is not “vapourware”… can’t wait to own one!
  • Swarm Robots meeting – lots of really interesting ideas
  • R2D2 was at the swarm meeting – just too cute not to give a special mention


HY-SRF05 Ultrasonic Sensor for autonomous robot

Continuing the autonomous robot sensor theme with some updated sample code for the HY-SRF05 Ultrasonic Sensor that significantly reduces the blocking (delays in program execution where NO code is run!).

Once again, the code is placed on the Wiki as part of the move to help create re-usable community content.

Honeywell HMC5883L compass sensor for autonomous robot

One big part of my ‘relaxation’ project – ‘building’ an autonomous maze solving car is the sensors.

Installation of the four ultrasonic sensor and experimental avoidance code has shown (again) just how bad I am at visualising in 2 & 3D space. My simple avoidance logic attempts always end up avoiding big objects, but then get stuck in a tight loop “go forward” – “avoid = go back” – “go forward”.

So I thought it was time to add the Honeywell HMC5883L compass sensor (part of Christmas present to self). The sample code ran up easily (once converted all the wire-I2C commands to Arduino v1.0), so I ported the code into my code. Weeks later after umpteen different project sidetracks I noticed that the output from the compass was not linear and very different if you rotated clockwise or anticlockwise!

After lots of web searching and help from others with this sensor, I have now started to get more sensible output. While this work is not fully complete, it is a big improvement over the standard sample code that is commonly found, so I thought I better start publishing before I loose momentum on this.

Details are on the wiki, and I also updated the SeeedStudio site sample code on their wiki. The main point to note is that it takes some effort to calibrate, but hopefully the sample code provided helps simplify the tasks.

Computer wiring – eliminating chaos – part 2

The first attempt to improve access to the computer cables and to eliminate the wiring chaos worked fairly well for the easy access, but not so well on the eliminating chaos. Some valuable lessons were learnt, including to reduce the size of cable bundles and to split the bundles based on cable destination, to reduce the stress on connectors when desk or computer is moved.

This second attempt is a major improvement as it:

  • improves the rear cable management “rack”:
    • rigidity and strength – to support heavy cable bundles and pulling when moving.
    • space to get hands in to adjust wiring.
    • air flow.
    • by adding cable management at rear top of computer.
  • splits cables into three bundles:
      • local to the computer (USB, eSata and power for external disk drives).
      • to the desk.
      • to the wall.
  • included extra slack in the cable bundles.
  • used velcro for quick un/wrapping cable bundles.

Many of the improvements were made through the planning of what bundles go where and then bundling with velcro ties and good slack.  You can make big improvements, without the trolley and rear rack, by planning your cable bundles, adding slack and using easy cable wraps or ties. Also be prepared to have a make improvements or even redo completely, as you discover better ways to run the cables and bundles.

You might even have a computer case with holes or brackets where you can tie or add screws to support cable bundles and eliminate the need for the cable “rack”, although this does work better with smaller cable bundles.

The lessons learnt this time are to:

  • label both ends of each cable
  • have a labelling “standard”.
  • Resist adding ANY extra cables unless well labelled and documented, and even then resist as they add complexity and bundle weight and stiffness!!!
  • plan for change – you will refine and also just change, think about the common things you use and move.

It’s very surprising how often you forget which cable does what a few months later, even you think it is just so obvious when you do the wiring, so at a minimum label “this end” with what the “other end” is connected to – and this needs to be done on each end. If you can write up a table or spreadsheet or have custom software, then that is also very useful.

The outcome – was chaos eliminated?

Both computers now wheel out easily and the desk, which has one computer each end, can also easily be pulled out. A bonus is that this enables quick disconnect of the entire computer – you only have to unplug a couple of easy to find cables.

The real miracle is that the cables have not magically reverted to a horrible rats nest, despite adding and removing several devices and cables and even an overhaul to fix a failed fan.

The outcome is that chaos has at least been deferred long term, the final result is very pleasing !

Computer wiring – eliminating chaos.

Over the years I have seen many ideas on the web to help reduce cable chaos and made many of my own attempts to reduce or eliminate. My best attempts have created neat, tidy and largely hidden the cables, but very soon after, if not minutes later I always had add or remove a device or to take wall wart on a trip, or just rearrange, and the immediate wiring chaos that occurs is not desirable at all. Often my attempts were never even completed, as frustration at the bad results, lead to abandoning the attempt.

It also seems that all attempts are for fixed wiring that does not allow you to move the computer to easily get to the rear to make changes. I also am trying to overcome issue of heavy cables pulling on plugs & especially cards in motherboard slots.

First attempt was to add some swivel wheels to a flat board and use cheap power cord wrappers with some added bracing, which also keeps the computer on the trolley.

$2 Power-cord-wrapper  Computer trolley

The result was a definite improvement as the trolley for in/out easy access was great and the power cord holders provide fairly good cable management.

Computer trolley and cablesHowever there were a lot of lessons learnt:

  • plan which cables go into which bundle, for example cables that are entirely local to computer and cables that go from the computer to different destinations.
  • bundling can actually increase cable weight/pull on computer plugs – take care to include slack and support BOTH ends.
  • try hard not to twist cables around each or it becomes very difficult to remove cables.
  • use of cheap plastic bags ties are good, but not as quick to undo and reuse, and not much good for thicker cables/bundles.
  • power cord holders used where OK, but a bit flimsy for larger cable bundles and did not leave enough space to fit my large hands in.
  • had to undo angled brace on one side to open computer case!
  • next time buy a case with wheels.

The biggest issues were not enough room for easy access to change, too many cables bundled together and worst was wrong cables in wrong bundles severely restricted ability to move the trolley in/out for easy access.

However all this did lead to good ideas for improvement, which the next post on this topic will show were really successful.

Safer Alarm – 7400 competition entry

The Dangerous Prototypes Open 7400 competition winners have been announced, congratulations to all the well deserving winners.

The Safer Alarm did not get a prize, but the project is still a great idea :), so please have a look and think about providing at least some ideas!

This competition has helped to generate some interest in this site (and traffic) with visitors from ten countries in the first two weeks, thanks to Dangerous Prototypes.

Safer Alarm – 7400 competition entry

The mark 2 version of this circuit which was entered into the Dangerous Prototypes 7400 competition has now reached successfully five weeks running on it’s own backup super capacitor. During this period it has maintained the alarm status and powered the indicator LEDs on more then 25 occasions.

The first version ran for seven weeks, but with less LED activity.  So there is room to balance costs and backup time with the current 7400 design. An order for some pico power PICs will be sent soon, so the mark 3 version with a few more bells and whistles can be prototyped.

As always, if you would like to be a part of this project in any way, leave a comment here, or at the project site at Launchpad.