background preloader

Free online course on building a simple Raspberry Pi OS from the University of Cambridge

Free online course on building a simple Raspberry Pi OS from the University of Cambridge
This summer, the University of Cambridge Computer Lab has been home to a small group working on projects with the Raspberry Pi. Alex Chadwick is one of those people, and he’s produced this: a free course on building a very simple operating system for the Raspberry Pi in assembly language. The course opens with some explanations about what assembly language is – and, importantly, what an operating system really is; you’ll learn some new concepts and possibly some new terms, and then you’ll dive headlong into practical work. You will work through sessions which teach you how to enable and manipulate one of the board’s LEDs, then learn some graphics theory and start generating lines, text and random numbers. Eventually you’ll be manipulating text to display computed values, and learning how to build your own command line interface. Many thanks to the University of Cambridge Computer lab for making the course available, and especially to Alex. Related:  Programing RaspberryConfiguración

Open source software and hardware tutorials, Raspberry Pi hints and tips, learn electronics and LPIC practice exams Adventures in Raspberry Pi-land: Bootloaders and LEGO sets After several shameful weeks of having it sit on a bookshelf, Gizmag recently decided it was time to embark upon not one but two very ambitious projects for its Raspberry Pi: turning it on, and building a LEGO case for it. Needless to say, in both cases we turned to the worldwide web for fast, easy answers. View all I say "turning it on," but considering that's as simple as connecting a power adapter (not included), we thought we'd go one better and get the thing properly up and running. The only deviation we'd recommend concerns installation of Raspian operating system (very probably the first OS you'll want to install, especially if you don't know what OS to install). Much more interesting, of course, was the LEGO case. This LEGO set is excellently functional, holding the Pi firmly in place while granting access to its various ports and slots. If you do build it, do follow the photo guide written by the designers, and not the electronic instructions provided by Daily Brick.

How to Customize XBMC 12 Frodo with All the Bells and Whistles Kodi (formerly known as XBMC) is a great entertainment center software. But, here’s the deal: Like many other open source projects, it is driven by a very technical community, and it is not necessarily user-friendly enough for the average person to use and customize. Fortunately, with a bit of time and the right skin, you can set things up properly and make Kodi (XBMC) very user-friendly and rock solid. I have spent countless hours crawling forums and websites, trying to get the live TV setup, premium online content, automatic light control, and all the other settings right. Note: These step-by-step instructions have been tested with Kodi v15, but they should also be compatible with v16 (codename Jarvis). In this extensive and updated guide, I will walk you through the relevant customization tips and tricks needed to take your Kodi installation to the next level. Free Step-by-Step Kodi eBook: You’re almost done! Jump to any section of this post Install Kodi and Configure Basic Settings: Now:

Support for GPIO-driven interrupts maddin1234 wrote:Ok, perhaps MY process is sleeping, but then POLL has to run to thedoor and wake me up when someone is there.I didn't have a look into poll.c, but from the name I guess it is polling. poll(), and the similar select(), are the standard system calls for checking and/or waiting for one or more files to become ready for I/O. With a timeout value of zero, poll() simply checks whether each of the files is in the requested state and returns immediately. So you can use it to make your own polling loops. But with a non-zero timeout value, and if none of the requested conditions are already met, poll() puts the current process in an (interruptible) sleep state until some asynchronous event elsewhere on the system changes the state of one of files, or causes the timeout to expire. Neither the user process nor the kernel is wasting any CPU during the period when it is waiting for the pin to change state.

Z-Wave.Me présente le RaZberry Le stand de la Z-Wave Alliance était particulièrement intéressant cette année. Outre les habitués Remotec, Aeon Labs, Poly-Control ou encore NorthQ, nous avons pu voir Z-Wave.Me qui présentait son RaZberry, une petite carte Z-Wave qui se connecte sur le Raspberry Pi. Pour rappel, le Raspberry Pi est un petit ordinateur low cost fonctionnant sous Linux. Ainsi en rajoutant la carte RaZberry il est possible de créer sa propre box domotique Z-Wave pour moins de 100€ ! La carte RaZberry dispose d’un émetteur/récepteur Z-Wave Sigma Designs 3102, d’une mémoire Flash de 32Ko pour les données réseau, d’une antenne PCBA et de 2 voyants (Led) pour indiquer l’état du contrôleur. Elle se connecte sur les ports GPIO du Raspberry Pi. Z-Wave.Me propose également la partie logicielle appelée Z-Way qui permet de gérer le fonctionnement du réseau Z-Wave à travers une API. Z-Way offre un outil simple à comprendre et facile à utiliser basé sur Javascript et la technologie JSON sur un serveur Web intégré.

Raspberry Pi | WiringPi | Functions | Wiring Pi WiringPi provides some helper functions to allow you to manage your program (or thread) priority and to help launch a new thread from inside your program. Threads run concurrently with your main program and can be used for a variety of purposes. To learn more about threads, search for “Posix Threads” Program or Thread Priority int piHiPri (int priority) ; This attempts to shift your program (or thread in a multi-threaded program) to a higher priority and enables a real-time scheduling. The return value is 0 for success and -1 for error. Note: Only programs running as root can change their priority. Interrupts With a newer kernel patched with the GPIO interrupt handling code, you can now wait for an interrupt in your program. Note: Jan 2013: The waitForInterrupt() function is deprecated – you should use the newer and easier to use wiringPiISR() function below. int waitForInterrupt (int pin, int timeOut) ; e.g. gpio edge 0 falling before running the program. int piThreadCreate (name) ;

Tutorial: Interrupt-Driven Event-Counter on the Raspberry Pi --D. Thiebaut (talk) 19:57, 23 July 2013 (EDT) Install the WiringPi Library Get the WiringPi library from Follow the directions on the Web site to download to the Pi. In my case the Pi is connected to my Mac through an ethernet cable, so I downloaded the tgz archive from (download wiringPi-cbf6d64.tar.gz) sftp pi@ sftp> pwd Remote working directory: /home/pi sftp> put wiring.tgz Uploading wiring.tgz to /home/pi/wiring.tgz wiring.tgz 100% 108KB 107.8KB/s 00:00 sftp> quit Connect to the RPI and build the library tar -xzvf wiring.tgz cd wiringPi-cbf6d64/ . Add the new library to the libray path, as explained in the INSTALL file of the wiringPi distribution. sudo nano /etc/ and add the following line to it: /usr/local/lib Tell the system to configure the libraries: sudo ldconfig Our hardware setup is the same as that presented in Introduction to accessing the Raspberry Pi’s GPIO in C++ (Linux Way / SYSFS) on ISR Code sudo .

Build Your Own Raspberry Pi Portable, The Pi-to-Go Handset Oh Raspberry Pi, is there no end to the fun and creative projects of which you are a part? The latest nifty implementation of the tiny $35 Linux computer is a mobile Raspberry Pi machine called the Pi-to-Go. The brainchild of a fellow named Nathan Morgan, who dug into his nearby stack of Dell laptop parts for the battery he used to make the computer. Morgan, in true open source fashion, is making his project’s schematics and step-by-step instructions available to anyone who would deign to attempt the same thing. He was resourceful in finding components. For example, his LCD is actually an after market camera used to help cars back up safely, and he bought a simple tiny wireless keyboard and mouse combo for input. Here’s the complete list of specs: Probably the coolest part of the project, though, is the 3D printed case, which includes a sweet-looking Raspberry Pi logo cutout on the back that’s lit by rear LEDs.

Raspberry Pi | wiringPi | Serial Library WiringPi includes a simplified serial port handling library. It can use the on-board serial port, or any USB serial device with no special distinctions between them. You just specify the device name in the initial open function. To use, you need to make sure your program includes the following file: #include <wiringSerial.h> Then the following functions are available: int serialOpen (char *device, int baud) ; This opens and initialises the serial device and sets the baud rate. void serialClose (int fd) ; Closes the device identified by the file descriptor given. void serialPutchar (int fd, unsigned char c) ; Sends the single byte to the serial device identified by the given file descriptor. void serialPuts (int fd, char *s) ; Sends the nul-terminated string to the serial device identified by the given file descriptor. void serialPrintf (int fd, char *message, …) ; Emulates the system printf function to the serial device. int serialDataAvail (int fd) ; int serialGetchar (int fd) ; In your program:

Five Basic Raspberry Pi Projects At $35, the Raspberry Pi is almost an impulse purchase. Once its in your hands, its basic nature calls out for it to be used in some great projects. While its always tempting to jump in and build something completely mindblowing, it pays to start with a few easy projects and learn the system before jumping in to the deep end and experiencing frustration. Easy Project Criteria We classified easy, basic Raspberry Pi projects as ones that required a limited amount of programming expertise and required only hardware that might be owned already. 1. Turning the Raspberry Pi in to a webcam server for remote access, or monitoring or recording events while you are away is a great use of the capabilities of the Raspberri Pi. 2. The onboard 10/100 ethernet on the Raspberry Pi is a good start for providing basic internet connectivity, but today we expect our devices to have wireless capabilities. 3. 4. The display options on the Raspberry Pi make it a prime candidate for driving digital displays.