Skip navigation


7 posts
Hackerspace Brmlab

Challenge Summary

Posted by Hackerspace Brmlab May 3, 2011

Project name: EDUBRM




Aim of our project was to create an open platform for teaching electronic principles. Our target audience were students of elementary and comprehensive schools interested in this field. The main idea of the project is to provide modular design. One "mother board" can be extended with a set of "shields" which are used for particular scenarios. During the challenge we created three example shields and one debug shield for our purposes.


Mother board is based on ARM Cortex M3 chip (more exactly LPC 1343 from NXP Semiconductor), Direct digital synthesizer and Operational Amplifiers. This combination allows us to read 6 analog values from the shields, which can be very low, because they can be multiplied up to 32x. DDS generates frequency from 1 Hz up to 50 MHz in 1 Hz steps, which can be used for generating various signals or alternating current.


The first demo shield we create illustrates the creation of electricity using a dynamo and electrodes. These are made from different metals and can be plugged into lemon or a potato. Software reads up voltage and draws a nice graph.


Second shield represents a simple DC circuit with a battery, switch and a bulb. Edubrm application can detect whether battery and bulb are present and if the student has pressed the button. It also visualizes which parts of the circuit have power and which not.


Third shields can visualize voltages and currents in circuits with coils and capacitors. It can also switch between AC and DC power source so student can easily understand behaviour of these electronic parts while turning the power on and off.


Check the following video to get the idea how it works! (and don't forget to turn on subtitles/captions)



We also came up with ideas for lots of shields that could be used in other fields than electronics. Sadly, we were not able to implement them in time. To give some examples:


  • shield with two speakers emitting the same soundwave but with different phase,   student can use the microphone to find out that there's no sound in the exact   middle of them, application would draw charts of signals to speakers and from the   microphone (acoustics)
  • shield that can read various amplified biosignals, like ECG or EEG (medicine)
  • shield with dynamo and motor connected through gears, student can inspect   the resulting voltage while changing the gear ratio (mechanics)




Hello Brmlog readers!


While Biiter and Stick are working hard on the software, and firmware, our hardware developement is now on debug phase.

I found lot of things what need to be improved or totaly changed ...


I also  made some calculations to be sure how much money we spent on this project. Here are the results :


PartValueprice 1pcsprice 100pcs
CN1miniUSB conn0.6390.542
LED1Green 12060.1860.149
SV1header conn0.2710.229
SV3header conn0.2710.229
SV4header conn0.2710.229
U3OSCILLATOR 50MHz6.6834.18
U4OSCILLATOR 12MHz6.6834.18



All prices are in USD.


You can say ... $80 for board with ARM processor is so much, but as you can see we implemented DDS generator which can handle the signal generation so MCU has a much more time to do other stuff  like communicating trough USB or AD conversion.

... more info and videos coming soon



Another milestone of our project. Lady from a PCB manufacturing company called Sargon that his prototyping boards are ready. He immediately rushed for them and started to work on them ...



Unpacking parts from Farnell and local store ... and we are ready to solder!

All of the components are SMD and some of them are really really small, but that is nothing we cannot handle.




Closer look at partially assembled board:




We hope that the next blogpost will also contain video with some cool demo.


Happy easter hacking !

Hackerspace Brmlab

We have cookies!

Posted by Hackerspace Brmlab Apr 18, 2011

Yummy cookies just arrived from the UK!



Last two weeks we were familiarizing with the LPC1343 micro-controller and trying to sort our ideas out and also to get from very high-level project overview to concrete and detailed prototype. We made lots of achievements and in the process we learned a lot.


At first we wired USB cable, a LED, a potentiometer and an old Nokia 3310 display to the controller. USB cable is used for communication between our software and the main board using USB HID protocol. LED serves as an indicator for pulse-width modulation (PWM). With potentiometer we can test the functionality of AD converters and display is a very nice way how to test Serial Peripheral Interface Bus (or SPI). This protocol will be used to control Direct Digital Synthesizer (DDS) in our final design.


We really loved the performance of the LED display using SPI so we went crazy a little bit and we ended up with a funny Peanut Butter Jelly Time animation running on our prototype! See the image and the video below for evidence. :-)


While Biiter and Stick were trying to understand how the microcontroller works (and listening to Peanut Butter Jelly Time song for at least one hundred million times), Sargon got into designing the final board so we could get it printed. I think the following images are impressive and speak for themselves.



As you can see our main board design has one LPC1344 microcontroller (U1), three connectors for attaching various shields (SV1, SV3, SV4), one Direct Digital Synthesizer (U$1) for generating simple signals, one operational amplifier for amplifying this signal (U$3), another operation amplifier for amplifying input signals (U$2) and six switches to decide whether input signals need amplification or not (IC1-IC6).


We haven't forgot to work on our software as well! We now have a fully functional Python application which sends commands to mainboard via USB. One can set values for both PWM pins, control both OPAMPs, set the DDS frequency and waveform type, set the direction of IO pins and their values (if they are set to as output), set the state of the switches and the sampling rate for reading analog values and input pins.


This Debug module will not be a part of the final solution, but it is very critical for us now as we can read and set various main board properties. Next step would be to implement separate module (with easy to use user interface) for every prototype shield we create and create these shields as well.

During the past week we tried to figure out some details about our project, mainly about which technologies to use, come up with the structural schemas and so on. Sargon had a very concrete idea in his mind, so he started with his explanation to the rest:


sargon.jpg schema.jpg

In the end we created the following block schema:



The most dominant part of the solution is the microprocessor. We have decided to go for LPC1343 and we'll develop using LPCXpresso development board. The board is connected to computer via USB cable (probably using HID). It reads analog inputs from the shields using AD converters or binary inputs using IO pins. Output of the board uses again IO pins, but we can also generate simple waveforms using DDS routed using switches to operational amplifiers.


We also started to work on the control software that runs on the computer. This will use Python and Qt library for GUI. This will allow us to create truly multiplatform solution running not only on Windows but also on Linux and Mac OS X. We also setup a source code repository which is now:


The key challenges for us right now are understanding of how LPC1343 works, especially its USB communication and also if we'll be able to read and process readings from it effectively.

We are a young hackerspace (around half a year old) located in Prague, Czech Republic. Experience of our members is wide and varies from electronics, hardware, programming, IT security to medicine and biotechnology. During our relatively short existence we already held lots of events with strong international presence, to mention a few: Mitch Altman's soldering workshop, GNOME Foundation's Python Hackfest or Frantisek Apfelbeck's foodhacking workshop. We also helped with organization of Polish security conference Confidence and you could've also seen us for example at 27C3 presenting our computer driven homemade RGB laser. We are very happy and honored that we can participate in this challenge and we'd like to use this opportunity not only to design and deliver our solution, but also to get more contacts in the global hackerspace community and to strengthen the worldwide cooperation.


brm-altman.jpg brm-gnomepython.jpg brm-foodhacking.jpg brm-laser.jpg


The main impulse to join this challenge came from our member Sargon who has big experience with training people as service technicians in his company, so he is able to easily recognize which parts of theoretical knowledge in electronics need more practical experience. He'll also be the main designer of the whole solution. The next team member is STiCK, a software wizard and a huge open-source proponent. His main task will be to create a nice and usable application which will control the whole device. Biiter, a superb low level C hacker, and b00lean, a microcontroller guru, will unite their forces to take care of creating the firmware of ARM microprocessor. During the development we'll be communicating with our friends - teachers - in order to get their feedback and make sure we are not creating some unneeded junk project, but something that will be useful and helpful in education.

sargon.jpg stick.jpg   biiter.jpgb00lean.jpg

The aim of our project is to create an open platform for teaching electronic principles. The target audience are students of elementary and comprehensive schools interested in this field. During their education they gain theoretical knowledge, but this is often unsupported by illustrative experiments and visualizations. Such study is boring and it is harder to remember new pieces of information. On the other hand, we think that "school by play" makes electronics much more attractive to students and also makes it easier to understand its nature.

The main idea is to provide modular design - one "mother board" and a set of "shields" which are used for particular scenarios. One shield can be reused for more lessons and vice-versa one lesson can use more shields if needed. Example shields include:

  • basic circuit with battery, wires, switch and lightbulb
  • slightly advanced circuit with resistors, coils and capacitors
  • advanced circuits with semiconductors such as diodes and transistors

Both hardware and software parts are open source and by using modular design it is even more easier to extend the project (e.g. designing own shields for custom lessons), so in the later phases we could create shields for other fields like for example optics, acoustics, chemistry or biology.


During the first week of our challenge we made first steps in application and firmware development, we agreed on protocol we'll be using between the computer and the mother board and we also scheduled an appointment with the teachers. Needless to say, we are very excited to be a part of the challenge and we're looking forward for the output not only from our hackerspace but also from other hackerspaces all around the world!