Unboxing – SeeedStudio Xadow

SeeedStudio Xadow unboxingFirst impression of Xadow is very good! There a lot of parts :), small – a bit smaller than end of my (man sized) thumb, but all look very well made and ideally suited for wearable items like those the Xinchejian Assistive Devices project is creating.

The SeeedStudio wiki has detailed page on each Xadow device with instructions on how to use, sample code, schematics, eagle files and if required libraries and some pages also have links to data sheet and other related software. Next step is to plug in and use, but that will have to wait until tomorrow 🙁

A big thanks to SeeedStudio for sponsoring the Xinchejian Assistive Devices project with the Xadow! Asked SeeedStudio last Wednesday evening to sponsor, they approved next day, Friday gave them address, shipped Monday 5:45, arrived 10am today, Wednesday.


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.

Not so busy – relaxed busy

A friend in XinCheJian hackerspace Shanghai asked me today what I have been up to. I was thinking not too much, as I have watched quite a few movies (Sleep Dealer is pretty good, Avatar was way better than I expected) and re/read several books & magazines, but then I started to list some of the things I have been doing…….

  • PartTester – built 2nd board with 1% R – did not work, and now 1st one not working – same issue, eventually worked out LCD had partially died on trip home from China.
    • Looking into ways to do improved or auto-calibration
    • As part of above, part of X-bot work discovered that Gerbers used for PCB production have an electrical issue where 328 processor digital ground is not connected. This is only in the Gerbers – the schematic is correct!
    • Red circle in photo highlights difference between “good” gerber (blue) and my gerber with missing ground connection.
    Gerber issue ground not connected to Atmega328 ground!
    Gerber issue ground not connected to Atmega328 ground!
    • X-Bot – learning SMD soldering (old, unrefrigerated solder paste = :(, new = 🙂 )
      • Made a pogo pin ISP connector to easily test if processor was working
    • Playing with el-cheapo Taobao STK500 programmer (good in HV mode, but can’t get it working in ISP mode)
    • Fighting several nasty computer issues
      • XP system freezes for 1/2 to 3-5 minutes yet CPU is at 1% and no other symptoms or errors!
      • XP ongoing anti-virus software instability issues
      • battling security update issues on XP and Lububtu
      • Lubuntu intermittent keyboard & mouse issues – only some keys/buttons work!
      • Lubuntu SMB file copy issues
      • Lubuntu “system problems”
      • Lubuntu restoring backups – path too long
      • Unsuccessfully trying to install Windows 7 to SSD and user directories to different disk
      • Unsuccessfully trying fix injet printer ($$ cartridges, cleaned, factory resets, extra cleaning…..)
      • …..
    • Replacing swimming pool pump (now pool is leaking – think it is drain system)
    • Car window electric winder replacement
    • Fixed front door lock
    • Home Theatre – fixed bad solder joint that stopped right channel working
    • Toshiba SD-K310P DVD player won’t play disks – seems like region free hack has stopped working
    • Dish washer – bottom arm won’t spin .. ongoing effort to fix
    • Backyard jungle:-
      • Getting rid of dangerous European wasp nest
      • Digging ditch for irrigation system repair
      • Hacking away at six months growth (two trailer loads so far), have not even started on the 80+ meters of hedges yet!
      • Watching Cockatoos, King Parrots and Roselas
      • Saw a falling star
      • Cleaning up flood in garage last night due to major storm – we were lucky – could hear clean up with chainsaws nearby.
      Backyard Cockatoos
      Backyard Cockatoos


      Backyard King Parrot
      Backyard King Parrot


SwarmRobot InfraRed remote control

The video shows three SwarmRobots being controlled by one InfraRed signal – sorry for the poor video quality.

Looking at ways to have some sort of SwarmRobot display for MakerCarnival in Shanghai in early November, found this AtTiny 2313 code which can decode RC5 IR. It compiled, loaded and ran (verified looking at serial data output), but it did not detect IR from several different remote controls tried.

Using this Arduino code, (which uses some really nice multi-protocol IR receive and transmit libraries) it was discovered that all the remote controls used where NEC protocol, not RC5! Research indicates the NEC protocol is very common in Asia!

Rather than find NEC code for the AtTiny, or write code decode NEC, I used the above library to send RC5 and now a SwarmRobot can receive commands and as the shows, several SwarmRobots can be controlled at the same time! Kept using RC5 because it actually sends two sets of information an ID and a command, so this really fits controlling robot X to do command Y, or group z of robots to all do same command.

The code is on GitHub: SwarmRobot AtTiny2313 and the Arduino transmitter.

SwarmRobot infrared object avoidance video

Success:- Using one InfraRed transmitter LED and four receiver LEDs for 360 degree object avoidance. The program logic is very simple at present.

Unfortunately the setup is not yet reliable – works one day but not the next and there are still some initialisation issues.

Biggest issue seems to be that there are huge variations in the functionality of IR receiver LEDs and we have not found matching data sheets for the two types we are using!

Barcamp Shangahi Fall 2012

Three Xinchejian SwarmRobots

Had fun at Shanghai Barcamp Fall helping to show off Xinchejian’s SwarmRobots. It was great seeing how all the children (young and old) explored the robots ability and asked heaps of questions!

Also helped with a presentation about Xinchejian’s SwarmRobots and the AFRON $10 robot competition and I gave one presentation on one of my favourite topics “Instantly turn your project into a kit” available in Libre Office odt and as a power point. It has a LOT of pictures and includes three video picture shows, so it is around 10MB!

How to ‘Instantly turn your project into a “kit”’

Promotion of this idea has focussed so far on the creators or builders of projects creating and publishing a shopping cart from the BOM to create the easy purchase kit. This is very challenging for anyone not experienced in electronics and sourcing of parts! Here are a few snippets of people talking about this issue.

Ihsan, Littlewire project wrote:

Being a full time researcher/student and preparing an OSHW product is so exhausting …

Bunnie has several very interesting posts on part sourcing issues. Bunnie, Mitch Altman and others often travel overseas to the manufacturer and especially check on parts. Even fledgling projects like MCHCK travel overseas trip trying to get cost from $5.85 to $5 ($7 if use someone to sell/support).

Maybe once you have done it ‘many’ times and restrict yourself to a fairly standard process and parts, it gets easier, but for most of us, those first big hurdles remain. Even very experienced project designers have challenges, and as Bunnie has posted, this is an issue for commercial companies.

Ian from DangerousPrototypes has almost 24 products totalling almost 1900 items (not counting Tshirts) in stock at his MAIN supplier (retail value $US40,000) said:

… evidently Seeed was plagued with these problems in the beginning and now they swear by the broker. ….. Seeed has more experience than I will ever have sourcing parts, and this is how they do some of it, so I thought it was an interesting meeting to share. I’ll probably never buy a bulk lot of chips ever.

There other ways than doing it ALL yourself, to turn a projects BOM into a shopping cart, or even a full kit. These alternate approaches can be especially helpful to those with little experience in sourcing.

One partial step in this direction is the just announced Club Jameco. Yes this is commercial, and no, I have no affiliation of any kind. From an open source view, the design agreement (contract) and the return that starts at “5% of Net Sales” are limiting, but Jameco have allowed designer to keep intellectual rights. Jameco also reserves the rights to sell the project any way it can but that does NOT prohibit the Designer from selling his/her own designs to others. For some people, especially those just getting into design, this might be a good way to go!

But this Jameco approach once again demonstrates again the worth of the basic idea – your project can be turned into a kit that many others will buy!  The reality of hardware open or closed is that most of the parts need to come from a commercial source!

If you are not keen on going this way, then publish your own PCB designs and a good BOM, and everyone can then take their own approach to building. Publishing your project is the key first step, then easing the pain of sourcing with good BOMs is a critical next step, even if you just publish how you sourced or scavenged and then encourage others to SUBMIT how they sourced, so you can publish for them.

There are existing commercial vendors who will review and might publish and sell your project, Sparkfun is one. Some only manufacture and do not provide any sourcing assistance, for example SeeedStudios, so that approach is harder – you need the expertise to source and supply, the where the Jameco approach does most of this for you!

Another approach is via electronics magazines, either as formal circuits, or as brief, less formal circuit ideas and then hope that one of the kit supplier companies will stock and sell the kit! Disadvantage is that magazines require a very high standard of projects and also there is only a small number of magazines publishing a small number of projects, so competition would be very high if many people tried this approach.

Hackerspaces already help members develop skills to do this and some directly assist members sell projects, so you may want to check out your local space!

An approach that does not yet seem readily available to hobbyists is use of professional services to help with PCB design rules, gerbers, part selection, price management, best production/distribution/support approach, before project is sent to  manufacturing companies like Seeed, or Mitch Altmans manufacturer Etonnet. So this is a shout out to for someone to create such a business!

Instantly turn your project into a “kit”

This previous post discussed some of the reasons why this is such a great idea.  Here are some examples of projects that are actually doing this!

Sqonk really gets’ the idea that published BOMs help others build his project. He has posted about building a

40-pin LPC1343 breakout board with 12 MHz crystal, USB Connect detection and disconnect, MicroBuilder’s single-button ISP, ISP Header and the standard LPCXpresso user LED. I added proper USB ESD/EMC handling, all this on a 5×2 cm board. All parts where purchased at Digi-Key, but I am working on the BOM to be able to order the parts from other online distributors that are easier to work with in Europe (Farnell, RS…).

He is taking the excellent step of creating carts with multiple suppliers including with the LOCAL branches to help minimise the dreaded shipping fees and hassles of customs and taxes!

It is this extra step of providing one or more shopping carts transforms a project plus BOM into an ‘instant kit’ and reduces the effort from finding and verifying every single part and balancing the multiple suppliers and delivery fees to just one or two simple purchases!

In this example SARduino644 v0.1 BOM at Mouser, Stan has seen a project he liked, created a shopping cart and very generously offered it for publication. This is a great way to build up many carts and also to get feedback on the how the parts went in the actual build!

Vinciduino is an open hardware project, a clone of the forthcoming Arduino Leonardo.” The project has blogged that: “Transparency in costs is something required when speaking about “open hardware” and there is a community working altruistically on it.” They also said that:

“it must be possible to go to a distributor of electronic components and order the component list, where, with a mouse click we get all the necessary components. Anyone who are not an expert in electronics will not know how to select the components for mounting the board, so if we want a total spread of the board, a component list must be provided, while this action is also useful to know the cost of the board.”

MC HCK is not only building a project using community input, but one of the key goals is a very low price point, so the sourcing and pricing of parts is a key part of the project work and discussion. This project has published the BOM, but not yet published any carts. Understandably that is not a priority when they need bulk purchasing to hit the $5 price, but it would be an useful to publish carts for those who want it ‘now’ and especially helpful to start building the momentum and refinement of this project before mass production!

Dangerous Prototypes have many BOMs with carts and also often discuss pricing and pricing approaches in some detail.

Of course these carts won’t return any % of sales to the projects creator, but that is no different for the “pure” open source process. Hopefully this will change in the not too distant future, once suppliers realise the benefit in providing easy ‘one click’ purchase will drive up their sales, I am confident they will offer, or the community can negotiate % of sales to ‘registered – recognised – or some terminology’ projects!

One really easy way that the suppliers could offer significant % of sales to project creators when they make that first sale, is to gather the parts for two, or five kits in the ONE SINGLE STEP. While this might add a tiny cost over the cost of gathering parts for one kit and does add a bit of inventory cost, it makes a huge saving on labour for gathering the parts for the next sale(s)! This process could even be a stepping stone into 10+ pricing for the project parts!

There are many additional ways that projects could work with suppliers to drive down project kit costs with this sort of partnership between project creators and part suppliers. For example, a project creator could provide funds to enable up front bulk purchase parts for say 100 kits, to drive down the cost, and of course encourage the supplier by reducing their risk! This situation suits pre-sale approaches ranging from a commitment to buy, to a dollar commitment.

So think about creating carts for your projects, or for a project you like, encouraging others to create carts and even pushing suppliers to provide this service!

How much code can be “stuffed” into an Arduino?

In a quest to see how much code can be “stuffed” into an Arduino the Autonomous robot project has grown to several thousand lines of code.

The compiled code is currently about 16kB when all of the debug functions are included. This is only about half of what an Arduino with an ATMEGA328 can handle. To give some meaning to this, here is the call graph I generated with Doxygen, a marvellous code documentation tool:

Autonomous robot Main loop - Doxygen call graph.

Autonomous robot Main loop – Doxygen call graph.



This actually only gives a very tiny view of Doxygen’s full capability. But the real Arduino memory size limitation is not usually the code size, but the variables used, and typically the strings. Posts on using Doxygen with Arduino code and tips and utilities to help Arduino memory management are “coming soon”.

Autonomous robot update

Work (play?) on the Autonomous Robot has triggered a large stream of activity including:

  • Using the Processing code to control a Nanode acting as a logic analyser for the robot Arduino controller.
  • using BusPirate as logic analyser
  • using RGB LEDs to display the robots sensor data “view” of it’s environment
  • struggling with bad wiring (bread board jumpers), possible power supply issues with batteries and possibly with shield used.
  • Trying to work around the on board goodies (resistors, LEDs) of Arduino as these can really interfere with some circuits.
  • Exploring CodeBlocks and Doxygen use in large Arduino projects (both are really useful!)
  • Exploring how much code and variables you can ‘stuff’ into an Arduino …. before instability kicks in as well as the techniques used to ‘save memory’.
  • (re)discovering that the Arduino has more digital pins (all the analogue pins are also digital!) and if you really want to squeeze some more, then change some fuses!

More on all of these in coming posts.