Let's Make Robots!

XMOS - Tutorials

My XMOS entry was to create tutorials that not only taught how to use the XMOS but also lead up to explaining complicated robotic principles as well as good coding standards. So far I have been trying to figure out what to make a tutorial about. Below is my list which I will add or subtract from depending on the XK1's capabilities and the complexity of the tutorial. My goal is to break them into small chunks that can be digested in less than 30 minutes (5-10 minutes of first read through followed by some do it yourself time and possibly another 10-20 minutes of re-reading for comprehension). Here is the list. Feel free to make suggestions if something you have learned or want to learn isn't included.

  1. Hook up the XMOS and get an LED blinking
  2. Flash LED in morse code "SOS"
  3. LEDs doing 8-bit binary counting
  4. LED Dice
  5. 7 segment LED display (7 LEDs to display a grapical representation of a 1 digit #)
  6. Servo and motor introductions
  7. Motor Driver introduction
  8. Motor Driver w/ second power source (possible first robot to drive around)
  9. Ultrasonic and IR rangefinders to make project above not run into stuff
  10. Line Sensors to make robot above follow a line
  11. Make your own h bridge and use as a motor driver
  12. PWM -software and hardware
  13. Charlieplexing
  14. Encoder beginner
  15. Encoders Quadrature
  16. P Control
  17. PI Control
  18. PID Control
  19. Localization
  20. Wave Front

Along the way items such as resistors, capacitors, transistors and OHMs law will be covered as well as I can explain it. I am a CS guy not an EE so I will need help from others to ensure I am explaining things in a way that is accurate ;) My #1 goal is to teach the above principals as well as good coding standards, the electrical stuff will be explained the best I can...

My hope is to duplicate the tutorials using an Arduino Mega and Picaxe where possible. Picaxe may not handle wave front, quadrature, etc.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

This is a great project and I`m looking forward to seeing what you come up with. As I`m still learning the XK1s ins and outs for my own project I wish you had started 6 months ago ;)

Collected! :D

I'll be interested in some of these and how you accomplish some of them, like the pwm. I'm using pwm and have an idea of how I can accomplish what I need to, but not sure if what I'll be doing is the best way...  :D

 btw, I know that there is a uart tutorial, but I wonder if you were maybe looking at expanding it?


I need servos tutorial, gpps tutorial, usb datalogger, gyro/accellerometer, ping, Pob-Eye, and TPA 81 tutorials knowledge. Which ones apply?

A few questions:

1) What is the difference between what you call an "encoder" and a "quadrature encoder"? I thought the first was just a shorter way of refferring to the latter :/

2) It sounds interesting this whole XMOS thing (especially since I'm a programmer). But are there any libraries say for controlling servos, generating pwm, serial communication, reading analog devices, OR do you have to make EVERYTHING from scratch?

There are quite a few open source projects on our community site, and also a fair few examples on xmos.com too which cover most of the things you mention Aniss.

I'd like to see some tutorials on how to connect other stuff to the XK-1.  Memory cards.  :)

Although, this isn't really a tutorial, but some tips on how to find connectors to  attach to the XK-1 would be nice.  :)

The 20 items you mentioned are all great. However I think one important thing is missing: COMMUNICATION. How to communicate by serial. Using cable and/or various wireless options such as bluetooth or RC units like this

PS: I'm still curious to know whether the X-mos has any libraries for eg. controlling servos and stuff or whether you're supposed do all this from scratch?!

xmos has a tutorial for uart communication that you could check out.

I'm kinda curious about libraries as well....I'm a bit surprised that they don't have some simple ones.

They do have these though

Thanks for the link...

And yeah it seems to be lacking both a servo lib. and a PWM lib. (eg. for dc motors).

On the other hand I wont be venturing into the X-mos universe for some months, and they may be added by then. However it does seem like the next natural step for me (being a programmer).

But I may just start buying my own Atmega chips and programming them using the AVR platform instead. Or for instance these  Atmega1280 breakout boards:


I really like those. That's basically the power of a Mega board in sub-matchbox size. Plus you exploit the MCU's capability better if you skip the Arduino platform and program them directly in their "native" tongue.

Anyway that's for the future. For now I'm pretty content playing with my Arduino :)

Nice, I've never seen those chips set up like that....thats pretty damn sweet...

Now the funny thing is that they are looking a lot like the old procs for computers with the way they have the pins set up.  :D

 Edit: do you have the link where you found those? the one supplied goes to LMR....but I'm already here!!!  :D