I’m not dead. I’m only (terribly) busy! :-(

Hi techo girls and boys!
I know…I know.
It’s more than one year that I don’t publish new posts on Garretlabs.
The fact is tied to new engagements: on the work (yes, I have a work which is very important to me and I want do the best on it…), in the frame of my family.
And I have also (of course) new musical projects,as composer and musician (please,check out my italian music site, and dowload for free all my compositions: http://www.marcolastri.net) but also as project engineerΒ  and producer of noise machines and analog and digital synthesizers.
For example, for the friend Stefano Muscas of great band “Correlazione quantistica” (please, visit the facebook page: https://www.facebook.com/correlazionequantistica) I designed an produced a very interesting noise machine based on Arduino, called ALGOnoise.


I took the idea from here: http://little-scale.blogspot.it/2008/01/arduino-noise-maker-info.html but I added some modification (a repetition function, an output amplifier and some funny values changes on the resistors). I will publish very soon the result on Garretlabs (I hope)!
Here you can see a live concert of Correlazione Quantistica with Stefano playing ALGOnoise (yes, it’s the yellow box πŸ™‚ ):




I’m very honoured of this collaboration!
After this I produced a modified version (the modification are: all controllers are panel mounted, the on-off button can be bypassed by a switch pedal, double resonance potentiometer and an adapter for the use with a power supplier) of the well known SparkPunk by Sparkfun. I did it for my friend Alessandro “Mazza”, the singer of the historical italian demential-metal band Tossic (http://www.tossic.it/home.html).
Here you can see the naked machine called “Mazzulator”:


I’m very excited to work with Alessandro, since I love his band from ever. I was 14 when I encountered for the first time the politically uncorrect world of heavy metal, and the first disc I listened was “Il Regno del Cingliale” of a strange and demential band called Tossic: one of the first italian heavy metal bands. Now I am 40, an d I love Tossic as the first day. πŸ˜‰

Well… after this I produced some other music/noise machines, especially guitar effects pedals For example, I built an echo/delay and a chorus pedals for my friend and guitar player Fabiano Vezzosi, and I modified a model of the well known pedal “Metal Zone” (by Boss) in order to transform this pedal in a great fuzz effect. It kicks asses now! πŸ˜‰

I also modified a great number of other guitar pedals of many friends…But in the meantime I produced also some other interesting things: for example new versions of old (diy) synthesizers. :-O

…But it is another story: keep in touch to discover this “dark side of Garretlabs”. πŸ™‚

Who you gonna call? GHOSTBUSTERS!!!

And now… (for the swecond time in the Garretlabs history, after a post about a problem on Raspberry B and NOOBS!) for something completely different! πŸ™‚
I want to repeat the famous Monty Phyton refrain because this post isn’t a technical post, but a celebrative and a little (self) historical post. πŸ™‚

All started approx. 30 years ago.

I started coding on my first computer (one beautiful Commodore 16), and in the meantime one movie entered the History (with the initial capital letter) by the main door.

The movie was “Ghostbusters” by Ivan Reitman, with a super-cast coming from the Saturday Night Live (Bill Murray, Dan Aykroid and Harold Ramis)…. but I loved also Rick Moranis and the mighty Sigourney “Alien” Weaver.

And I well remember (I was 9 -10, but I had always good memory) at the same time the fear and the humour of the movie. At that time it was a fabolous trip for me: the music, the special effects, the lightweight script, the ghosts….the videogame for the Commodore 64!
I think I bought (read: my father bought) the Commodore 64 only in order to play the mighty Ghostbusters videogame from Activision…in which there was the first “sampled voice” I never heard. Do you remember? Clicking the space bar one 8-bits electronic and destorted voice said “Ghostbusters!”…wow!!!! πŸ˜€


In the meantime I learned programming in BASIC and in ASM for the famous 6510 in order to create my first videogames…. So, when someone (especially if he/she is a “non technical person”, a sort of “Techno-Muggle” to say it in Harry Potter style!) today says to meΒ  that my experience on software started only with my first “official work” (approx. 15 years ago), well, I get pissed off as a boar (you are advised ;- ) ).

Returning to Ghostbusters…yes, I love very much this movie (and the videogame, of course)…and I’ve seen it again (…and again and again and again! πŸ˜‰ ) across thirty years.
I think in the next days I will buy the new edition on double vinyl of the soundtrack (also if I know it note by note πŸ˜‰ ).
But, for the moment, as you see from the photo, today the Ghostbusters (yes, me and Monica are also LEGO VIP collectors…now you know it! πŸ˜‰ ) are here in my garret in order to help me to debug some “ghost” problem.

THe LEGO Ghostbusters arrived in Garretlabs!!!

THe LEGO Ghostbusters arrived in Garretlabs!!!

Have you never encountered signal overshoot or undershoot problems, tied to the stabilization of addresses or data in memories? No? You are very lucky, man.
You have an “unimplemented error code” trap in your software and, when the debugger blocks the execution, all values (addresses and data) are correct. ARGHHHHHH!!! 😦
I have often encountered these “ghost problems” (they are really bad… they are the real “poltergeists” of the microelectronics! πŸ˜‰ ), at work but also in my garret adventures.
So, after thirty years the “chorus” is always the same, when from the sky is raining shit: “Who you gonna call? Ghostbusters!”

Olinuxino A20 micro: a new toy in Garretlabs!

…Yeahhhh!!!! πŸ™‚

I’m always happy when my lab “boards family” grows…. and this time I bought a very interesting single board computer from Olimex, a Bulgarian company: one Olinuxino A20 micro (without NAND flash).

This is the toy (photo from Olimex blog):


As usual I bought the board from my favourite online shop: Robot Italy (this is not a commercial spot…but I would like to have some little discount from this company!).

With the board I ordered also the ad-hoc plexiglas box, some 40-pins flat cable (in order to connect some GPIO) and the SATA cable to connect a 2.5” hard disk to the board.

The board arrived in one day with Bartolini express courier (Robot Italy is very fast to ship), and these are my very first impressions about the board:

  1. The packaging is very beautiful (as we say -literally- in Italy: ” also the eye wants his part” πŸ˜‰ )
  2. The board has a very solid appearance, and it seems very well designed and built
  3. The ad-hoc plexiglass box prefectly fits, and it’s very “chic”Β  (see point 1)

I downloaded the official Debian image from Olimex, I wrote it on a Kingston microSD (class 4) using the open source Win32 Disk Imager. Note that Olimex recommends to use a class 10 microSD…but I wanted to try with a cheaper choice. πŸ˜‰

After this, I connected the HDMI cable to my 37” Panasonic TV, I connected to one USB connector the radio transmitter for my wireless cheap Trust keyboard + mouse (only 19 euros… but it’s a very good choice to be used on the sofa in order to seek youtube videos…. with the fingers by the chips and assorted fried food πŸ˜€ ) and I powered the board with the miniUSB connector.

Pushed the power ON button, first boot….a moment of real suspence….and all worked correctly!Β  …YES! πŸ™‚


Ok, I tried some program preinstalled in the Debian image (such as Midori browser) and I noticed that all seems faster than same programs running on the Raspberry PI (ok, I know it’s obvious but I want to evidentiate this concept).

After this first boot I connected a wifi dongle (this dongle from Robot Italy, as usual) to the other USB connector and I rebooted the board.Β  The dongle is supported by Debian but, after the connection to my home WPA2 protected wifi network, I observed some problem tied to lost ping packets (approx 25% of the total number) .:-(

Mhhhhh… it could be tied to a too high power consuption, so in the next days I will try using a 6-16 volts external power supplier instead the miniUSB source (as recommended by Olimex in the user manual, in order to have the maximum efficiency with external peripherals).

For the moment that’s all, folks. After the first few steps with this board, Olinuxino A20 seems to be a great study opportunity for my natural born curiosity. πŸ™‚

….Bye bye geeks!!!!

Unpacking (and playing with) the Intel Galileo board: first impressions

Good morning to all you embedded freaks!

Let’s talk a little about Intel Galileo today. Just a “first impression post”… a very light chunk in order to smoothly introduce the argument.

I opened the box some day ago. In the box there is the board and a power cord with ALL possible plugs (so you can use the Galileo everywhere, but ALWAYS with a power socket on the wall! πŸ™‚ ).


Is it an Arduino Uno or a Linux based embedded board? Mhhh…someone told me it’s a hybrid one between the two things.

But after some very basic experience on this board, I am at the moment very doubtful about the right answer.

In order to do the first (baby) steps with the Galileo board you must use the Quick Start Guide from Intel (you can download it from the official website). It’s a good starting point (since it it the -near- only one!).

After this…it’s up to you guys! πŸ˜‰

Well, anyway, you must always remember three very important things (the first one is the most important, trust me: it’s veryveryvery important):

  1. You must connect the Galileo power plug BEFORE to connect his USB to the host PC (so, you must disconnect the USB from the host PC BEFORE to disconnect the Galileo power plug). It seems that a incorrect connection/disconnection order could break (…burn?) the Galileo hardware. Arghhhh…too dangerous! πŸ™‚
  2. If you don’t boot the board from a Linux image installed on the microSD, any Arduino sketch downloaded using the IDE on the Galileo board, will be lost at the power off. In order to have a “persistent” sketch (wich it will start his execution after the Galileo boot, exactly as on the Arduino UNO) you must boot the Galileo board starting from the microSD, with the devoted Linux distribution installed on (because in this case the downloaded sketch will be saved in a filesystem folder called /sketches).
  3. All advanced functions, the network drivers and protocols (networl support, telnet and ssh in primis) will work only if booting the Galileo board from the microSD.

I think that these three aspects (especially the first one) will be corrected by Intel in the next release (if there will be…).

The last thing I’ve noticed after two hours of play is very interesting: the Intel Galileo doesn’t have a video output (differently from other embedded Linux solutions such as Raspberry PI). My colleague and friend Paolo noticed it after 5 minutes on the web…but it is more skilled than me on embedded hardware! πŸ˜€

Ok, I think it isn’t so necessary but it could be funny. One solution (pay attention: now I’m talking with no idea if it is really possibile/feasible, and how great would be the effort to up’n’run this solution!) to have a video output with a graphic environment could be the use of a X remote screen connecting Galileo to a Linux desktop machine…. it could be one really good idea for a case study (I think I will try in the future)!

Another thing. An annoying thing for me, especially to execute portings from Arduino UNO to Intel Galileo. The hard reality of facts is that … String class doens’t work correctly in the modified Arduino IDE from Intel.

Ok, if no one yet revealed to you this secret (I know it’s a “Pulcinella’s secret” -a very well known secret-, as we say in Italy)… I’m proud to do it. πŸ™‚

The use of String class of Arduino IDE is strongly deprecated (by me, but also by some other desperate people -like me- on internet…) because the String operations such as “+” (concatenation) don’t work. So… if you want to print on the serial output of Arduino side some slightly complicated string….I think you should use only combinations of Serial.print and Serial.println functions. Or, you can try to use the old “C” functions dedicated to string manipulation: strcpy, strcmp, sprintf and so on (as usual defined in the file stdio.h). I’ve done a little tour with these functions and they seem to work (also if I think they are really terrible to be used in 2014…) so, good luck guys!

Well, in the next post we’ll go more into concrete spaces (with some code, I know you love it!). So, have no fear (possibly, have a beer)! πŸ˜‰