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

SmartSim, a digital circuit designer and simulator Ashley Newson is a sixth-form student from Oxford. Alex Bradbury and Rob Mullins from the Raspberry Pi Foundation met him at the University of Cambridge Computer Lab open day, where he came over with an SD card ready to show off a demo of SmartSim, his home-grown circuit design and simulation package. It was, said Alex, hugely impressive – I’ve had a play too now, and couldn’t agree with him more. Ashley’s now polished it off and released it for public consumption under the GPLv3. SmartSim running on the Raspberry Pi SmartSim, just to make you feel completely sick about what you were doing when you were 16/17 (me? It was at this point I realised the only way I was going to achieve my goal was to take the matter into my own hands and independently study for my computing A-level; surely they couldn’t stop me doing that. The SmartSim GUI – this is a RISC chip partway through development. Thanks so much, Ashley; and I’m sorry it took me a little while to get this post up.

Open source software and hardware tutorials, Raspberry Pi hints and tips, learn electronics and LPIC practice exams 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:

Sneak Peek: Adafruit Raspberry Pi WebIDE September 19, 2012 AT 2:14 pm We love the Raspberry Pi. This tiny computer has so much potential for makers, and it is offered at an extremely reasonable price. As the name suggests, the Raspberry Pi WebIDE is entirely web based. We have also included a built-in terminal so you can listen to, and talk directly with your Raspberry Pi. We have so many cool things planned for the WebIDE, and expect to have plenty of updates (especially at the beginning). Like I said, this is just a sneak peek, and covers only a few of it’s many features. Stay tuned to the Adafruit blog for more updates. Related Sorry, the comment form is closed at this time.

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.

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) ;

Raspberry Pi at Southampton The steps to make a Raspberry Pi supercomputer can be downloaded here [9th Jan 2013 update]: Raspberry Pi Supercomputer (PDF). You can also follow the steps yourself here [9th Jan 2013 update]: Raspberry Pi Supercomputer (html). The press release (11th Sept 2012) for our Raspberry Pi Supercomputer with Lego is here: Press Release University Page The press release is also here (PDF): Press Release (PDF). Pictures are here - including Raspberry Pi and Lego: Press Release (More Pictures). We wrote up our work as a scientific journal publication where you can find further technical details on the build, motivation for the project and benchmarking. The reference to the paper is: Simon J. Iridis-pi: a low-cost, compact demonstration cluster Cluster Computing June 2013 DOI: 10.1007/s10586-013-0282-7 These are some links you may find helpfulul

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 .

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:

RPi Guides Back to the Hub. Community Pages: Tutorials - a list of tutorials. Learn by doing. Guides - a list of informative guides. Projects - a list of community projects. Tasks - for advanced users to collaborate on software tasks. Datasheets - a documentation project. Education - a place to share your group's project and find useful learning sites. Community - links to the community elsewhere on the web. Games - all kinds of computer games. Introduction This page contains a set of guides to show readers how to do common or useful tasks on the system. The Raspberry Pi Forum has a list of Project Ideas & Links, to help people get started. Please add links to your guides (and ones you find interesting). Fill in each section: Guide Title (as a link to the project webpage or connected wiki page) Guide Description (including any additional links or information Tags (key words related to the item, i.e. System Tasks Easy Medium Advanced