Translate

Monday, December 24, 2018

MMCedu project - keyboard #2

This article describe little bit more in detail the plan for the keyboard to be used for the MMCEdu project.

Sunday, December 16, 2018

Timer for UV box - final build - Hardware

Time to close also this project.
With the help of Roberto we did end up with a PCB, let's put it together.
This article describes some work on the hardware side.

Saturday, December 15, 2018

Timer for UV box - final build - software


Once the hardware was ready, I resumed the code developed with Energia.


Let's see what I found.

MMCedu project - keyboard #1

This article is part of the MMCedu project (Magnetic Memory Core Education) and discusses about a keyboard to interact with the Magnetic Memory Core project.

Sunday, December 9, 2018

Digital Encoder breakout

On many projects I use a digital encoder as input device (to set values, select, etc.).
In order to have more flexibility to put the encoder on panels, I usually manually wire it on a prototype board, every single time.

So it is time to have a standard way to deal with this.






Saturday, December 8, 2018

Infinity Disney base

Information about the Disney Infinity base.
Going around antique mall I bough few bases.
I'm collecting here some information, would be nice to be able to use the NFC reader for other purposes.

Sunday, November 25, 2018

EasyEDA

EasyEDA is a schematic CAD with PCB capabilities, like Eagle CAD, but running in the browser (I'm using Chrome).
For a project I started  I'm trying to use it for schematic and eventually for the PCB.
This is a brief review of my experience so far.

Saturday, November 24, 2018

MMCedu project - Introduction

Time ago I wrote an article (Toroid tale) about my early experience in programming.
Electronics always fascinates me, especially digging deep about how things works, so ... here we go with some magnetic core explanations/experimentation and a retro-magnetic core building project, for fun and nostalgia lane.

Sunday, November 11, 2018

Electronic components sources


I often need to buy some electronic components.
Where to look for components, tools, information ?

Saturday, October 6, 2018

Teirmilab - final building

Ok, time to close the project.
This article will be updated to track the progress.

Sunday, September 23, 2018

tRPOf with Trinket - updated

This article is about a RPOf circuit for the Raspberry Pi using a Trinket, thus the name  tRPOf.
The main difference from previous ones, is that this project uses a standard Adafruit Trinket as microcontroller instead the MSP430 in order to use "off the shelf" components with less effort of programming and a LiPo charger/USB DC/DC converter..

Sunday, September 9, 2018

Texas Instrument TI Programmer

Often during the week ends we love to visit antique malls and similar places, looking for something to adapt to other uses or just strange things.
Sometimes instead I found things that .. well, something I can not just leave there.

Sunday, September 2, 2018

DIY fume extractor

A quick DIY fume extractor.
Breathing fumes when soldering is not exactly an healthy activity.
You can buy a fume extractor but often they are quite expensive.

Sunday, August 19, 2018

Repairing a GoldStar microwave

My old microwave started to have a problem lately.

Sometime when turning ON the oven, only the light works, the blower and the magnetron remains turned OFF.

Saturday, August 18, 2018

VPN - generate a new user key


This is just a quick way to remember how to generate a user key for openvpn.

Saturday, August 11, 2018

Controlling a WS2812B LED

Just some brief notes about LED strips based on the WS2812B (for example this one).
The same LED is also used in the Adafruit circular ring LED (here a datasheet from Adafruit)

Sunday, August 5, 2018

Technology changes

The market for embedded development is more and more complex and fast these days.
Every day there is some new platform popping up.
Is quite difficult to stay updated unless you have to do that for work.

Saturday, August 4, 2018

A toroid tale

I'm a software developer, mainly in firmware for many years and still today I really love working on small board in C or assembly. I consider that a "real" programmer job.
Going down on the memory lane (pun intended :) ) it can explains maybe why.

Sunday, July 22, 2018

Sunday, July 15, 2018

Huzzah32 - Thermal camera

I always  wanted to have a thermal camera to play around.
yeah yeah, I really don't NEED one, but it can be quite useful sometime and, well, I just like to have another tool.
If you are reading this blog I'm sure you can relate with me on that :)

MSP430f169 LCD development environment


Until now I always developed code for the  Olimex board MSP430F169 LCD using an open source compiler (GNU) and using a parallel port->JTAG adapter to program the board and do some debug.
That requires a computer with parallel port.
The goal of this article is to see if is possible to use an USB->JTAG adapter or using the Spy-by-wire connection.

Android - proprietary ASN.1 encoder

The purpose of the ASN.1 coding specification described here is to have a way to create ASN.1 data sequence in a program without having an ASN.1 compiler capable to read a formal ASN.1 notation.
There are a lot of libraries out there with many different ways to handle the coding/decoding of an ASN.1 message. I needed something simple, cheap and fast so I created this system.
I originally created this years ago in C and now ported in Java for Android.

Saturday, July 14, 2018

VPN - troubleshooting

Some tips to solve problems related to the Raspberry Pi VPN.

MSP430 - Reading a digital encoder

Already exists a lot of documentation about this, but just for fun, I started from the scratch and did some analysis.
I did find very interesting issues about this "common" component.

Developer tips - Visual Studio - Apple iOS erase certificates

Disclaimer !
This article is based on tests/research/finding at April 2018. Things can change.


Sometime is better to clean up the mess of certificates used by Xamarin for Apple iOS development.
Here what to do based on my experience.

Normally the certificates are generated/maintained on the Apple Developer website.


Saturday, July 7, 2018

Designing an HVAC monitoring system

Ideas - things to do

The HVAC (Heating, Ventilation and Air Conditioning) system, as many other systems, has the bad habit to broke down when most needed.

The idea is to design a monitoring system for HVAC capable to predict problems, with the less possible impact on the system, meaning that the monitoring system should be as much as possible independent from the HVAC itself.

Sunday, July 1, 2018

NiRis - support for a second prototype



In order to better work on the development, is always a good thing to have at least another prototype ready, in order to experiment and do more tests.
Some ideas about how to recycle "stuff" you can find in antique mall for example.


Sunday, June 24, 2018

ASN.1 - what is it ?

ASN.1 stands for Abstract Syntax Notation One, a standard protocol from ITU, is heavily used in telecommunication, for example in ISDN.

There is a lot of literature about ASN.1, books, white papers, online tools, etc. so I'm not duplicating here what already exists "out there" but I just sum up few things I think are interesting.

Saturday, June 16, 2018

Set Raspberry Pi as Bluetooth slave

Some notes about how to connect a Raspberry Pi 3 via Bluetooth to an Android phone.
These notes shows some suggestions about how to connect an Android phone to the Raspberry set as Bluetooth slave.
Android side I'm using an off the shelf app.

Saturday, June 9, 2018

Artifactory - what is it ?

Today many projects are based on different libraries and code.
Usually the code on a project is stored in some repository, like github, but usually a lot of stuff is not stored in the github for a project.
For example, in order to create your project you need to have a compiler, libraries, modules, tools, etc.
Most of them are usually available on the net but ... but there are some limits.
What happens if you want to build your project in the future ?
How can you be sure to be able to find what "now" is easily available ?

Monday, June 4, 2018

Good bye GitHub

Just a quick note.

Because the acquisition of GitHub from Microsoft, I decided to abandon it.
Gradually I'll migrate all my projects on Bitbucket and eventually, time permitting, I'll create my git repository with GitLab as final destination, but for nowon Bitbucket will be my repository management.

So for a while my public repositories will still be accessible on Github, however they will not be updated and they will be eventually removed when they will be on Bitbucket.

New projects will be on Bitbucket.

Sunday, June 3, 2018

Backup/Sync system




Ok, time to organize a backup strategy involving the Drobo unit.
The idea is to have Drobo having all the data around  the network copied on the Drobo unit, i.e. different machines do backup on Drobo.




Saturday, May 19, 2018

MSP430 - reading a TSL2561

The TSL2561 is a chipset capable to read IR and visible light intensity and is the chipset used in the iRis project.
This article give some suggestions about how to use this sensor.

Saturday, May 12, 2018

Using PiBackery - my FAQ

April 2019 - Update !
PiBackery is a nice tool to prepare SD cards for the Raspberry Pi.
One of the annoying problems to work with Raspberry in embedded world, is the need to have it connected to a wired network, monitor HDMI and keyboard for the first initialization.

Developer tips - Android studio

Bluetooth RFCOMM connection problem

If you like me are trying to set up a simple Bluetooth RFCOMM connection and you end up having connection errors, especially : read failed, socket might closed or timeout, read ret: -1
is possible the problem lies in a changed default assignment for the socket.

NiRis - the New iRis - the plan

Waiting could be sometime a good thing when designing something.
Like the iRis project I started years ago.

Even if I never posted recent articles about iRis, I did reach a nice stage of development, involving 3D printing design, electronic development and firmware development on different platforms.

Saturday, May 5, 2018

iRis project - mechanical support

The support for the mechanical iris and the servomotor that control it, is important as the electronics.
After many experiments, it was 3D printed a support using Tinkercad.

Sunday, April 22, 2018

Raspbian - prepare SD card

April 2019 - Update !
I already did in the past an article about a SD card preparation for Raspberry Pi.
The idea behind this article is to find a way to simplify and speeding up to prepare an image for a Raspberry Pi with Raspbian and beside, things change constantly.
Here what we need to do now to prepare a Raspbian image (no NOOBS !!!)

Saturday, April 14, 2018

Developer tips - Visual Studio - plist files

Disclaimer !
This article is based on tests/research/finding at April 2018. Things can change.


A project in Visual Studio that involve Apple iOS has some configurations saved in files ending with the .plist suffix.
These files are Property List files.

These files, combined with the project setting, contribute to set up the application configuration that need to match the content of the Provisioning profile.

However the files "per se" contains only few XML lines.

Developer tips - Visual Studio - Apple iOS development types of build

Disclaimer !
This article is based on tests/research/finding at April 2018. Things can change.

 
Apple iOS can be a very complicated environment, especially if Xamarin is involved (Visual Studio on Mac).
This article is part of a small collection of notes about some things that usually annoy the developers :) (me)

Ok ok, these are just some notes for me to remember some annoying things

Developer tips - Visual Studio - Apple iOS certificates

Disclaimer !
This article is based on tests/research/finding at April 2018. Things can change.

 
In order to develop code for iOS (or also Mac) you need to have certificates and provisioning profiles from Apple.
In other words the application will be able to be installed and run on the device ONLY if Apple recognize the certificate.
The certificates are so a very intimate and integral part of the development and preparation of an app for iOS.

Sunday, April 8, 2018

Enable passwordless access to a machine


DEBRH or ... Don't Expect Big Revelations Here :)
Just a quick note that maybe can be useful to somebody.

Here the scenario.

We have two Linux machines in the network. A user from the machine A (call it Auser) need to  access some data on the machine B, under a specific user (call it Buser).
So, we can simply use ssh for that.



Raspberry Pi - broken micro SD card reader

One of the Raspberry Pi I have around has now a broken micro SD card reader.
The micro SD card is not retained anymore, thus the options are :

a) trash away the Raspberry and buy a new one
b) try to repair it

Sunday, April 1, 2018

A personal CI system - building C program



Now we do have our CI system, how can we use it ?


If you have some code to compile with GCC, is possible to create a job in Jenkins to monitor it (on github) and every time the code is committed, have it updated on the server and compiled, notifying errors to the developer.





Sunday, March 25, 2018

Monitoring a Mac CPU

Recently I'm using some very CPU intensive programs on the mac, like Xamarin (Visual Studio), Android Studio and test code.

Sometime, when I'm running a lot of this stuff, the Mac is clearly slowed down and can be useful to know what is going on.
So I did look around for some monitor application, possibly capable to show what is going on on the tray.

I did found many apps but I wanted something small and possible free :)

I did found MenuMeters, a very small and nice app, but unfortunately is not supported since 2014 and thus is not working on the latest releases of Mac OS.
However somebody did write a patch to allow this utility to run also on newer systems (at least for now, it seems Apple is locking down even more the systems to prevent this kind of third party utility to run).

Click here to find the patch for the MenuMeters app.


Saturday, March 24, 2018

Drobo - monitoring it



Now that the Drobo unit is on the final place, connected to the server, I did set up a monitor activity of it.

The server, other than handle the backup operations, also monitor that everything is OK, Drobo included.





Friday, March 23, 2018

Repairing a zapper

In the springtime, summer and fall, there is an appliance that works almost 24 hours a day, at least in my garage.
A zapper.
This one, a PestiTech, did work all the last summer and fall.
Really, in Arkansas is not an option to have a zapper to limit the "things" that can fly and bite you !
The garage is the main entry for these pests, so a good zapper is really the first protection.
Now it was time to restore it and ... of course dead !

Saturday, March 17, 2018

Why sometime ...

... simple things does not work or just make you crazy losing hours and hours if not days  ?

Who work in the magical world of the software development, especially embedded or firmware, sometime find himself in weird situation, when something incredibly simple and trivial, simply does not work.
Why ?

Saturday, March 10, 2018

magclock

Years ago I did a very quick project with a MSP430F2013 capable to generate a signal to drive a magnetic clock like the one below


(the video does not represent the actual clock, just an example).

The code, few lines in C, is in the magclock repo on my github account.

The idea is quite simple.
Three coils are controlled by the MSP430 in a sequence, like the brushless hard disk motors, same principle but much much slower.
Basically the system is designed to move a dented wheel one notch every second.
That wheel then controls the other gears of the clock.

The only thing is to have an accurate timing, so better to use a crystal on the MSP430.
This article give some other information about the MSP430 clock capabilities and settings.

Friday, March 9, 2018

Update firmware of a GXV3000



The GXV3000 is an old phone from Grandstream, not anymore in production and supported, but still available on Ebay at a decent price.
It is possible to even find in Ebay "new" GXV3000, i.e. never used before, like one I bought recently as a replacement for a broken one.
So I had to go back on memory lane in order to update the firmware in it to the last available one (high recommended in order to fix the SPIT problem)
Here what is needed to do the job.


Friday, March 2, 2018

A personal CI system




In this article I'm describing how to set up and configure a basic CI (Continuos Integration) system that can be used for many  things, based on an open source program called Jenkins.

Of course, for my projects to set up a CI  to build them is just little bit overshooting, but surely is interesting and fun.




Thursday, March 1, 2018

Freddy the cat - memory

Once in a while I put something not technical related on my blog.
Today is one of these days.

Little bit more than one year ago, our cat, Freddy the cat, left us.


Still missing him.
Recently Ladyada from Adafruit, a shop where sometime I buy electronic stuff, communicated the death of her cat, Mosfet.
I remembered Freddy.

So ... dear Freddy, I'm posting on my blog a small memory of you.


Saturday, February 24, 2018

Playing with Drobo (updated !)



I did buy a Drobo for my server. 
Here a kind of review and my discoveries.

Of course the main purpose is to connect Drobo to my server, so I'm planning to use it only for Linux.
The goal is to end up with at least  a couple of Terabyte of space, possibly more in the future.



Friday, February 9, 2018

Compile ZeroMQ as static library

On some environment can be useful to have ZeroMq as static library rather than a dynamic one.
In order to create a static ZeroMQ library, follow these steps.

To do so, under ubuntu :
  1. sudo apt-get install build-essential
  2. sudo apt-get install libtool
  3. sudo apt-get install automake
  4. sudo apt-get install autoconf
  5. sudo apt-get install uuid-dev
  6. Download the tarball for the libsodium from the Libsodium website
  7. Extract the tarball in a directory
  8. go in the directory
  9. ./configure --enable-static --disable-shared
  10. make
  11. sudo make install
  12. Download the tarball from the ZeroMQ website
  13. extract the tarball in a directory
  14. go in the directory
  15. ./configure --enable-static --disable-shared
  16. make
  17. sudo make install
At this point is better to close all the terminals and re-open them.

On some systems is better to run :
sudo ldconfig to update the system library cache, otherwise it is requested a reboot of the machine.

Install Czmq

In order to bind the library with the C language is necessary to compile the library Czmq


  1.  git clone https://github.com/zeromq/czmq
  2.  cd czmq
  3.  ./autogen.sh
  4.  ./configure --enable-static --disable-shared
  5.  make
  6.  sudo make install
  7.  sudo ldconfig







5V Solar Power Supply - testing results

As described in the 5V Solar Power Supply - testing system article, here some results after running tests for a while.

First of all, I did connected the data logger to the battery terminal and let it run for few days, with the load connected, drawing around 350mA.
Here a graph, starting with the battery charged.
Once the battery was depleted, with the load connected there is no way to have it recharged enough.
The weather was good at least for the last two days, so plenty of sun, but even with the 3W solar panel the battery was unable to be charged enough.


This indicates anyway the need to disconnect the DC/DC converter in order to have the battery charged.

Developer tips - CentOS 7 notes

Just a post with some notes to remember what to do when encountering some recurring problems after installing CentOS on a vm for tests.

The scenario : installation CentOS 7 64 bit on VirtualBox (on a Mac)
  1. yum update
    After installation yum update is not working
    Yum returns an error like : "Cannot find a valid baseurl for repo".

    Could be a connection problem and a configuration problem.
    Let try to issue the command : sudo dhclient

    If it solve the problem (i.e. if Yum works as expected) edit the file /etc/sysconfig/network-scripts/ifcfg-enp0s3.
    Change the line ONBOOT=No in ONBOOT=Yes.
    Save.
    Reboot

    Is possible sudo command will not work (see sudoers below)
  2. Gnome GUI
    Installation of the iso (tested on DVD.iso) does not have a GUI.
    To install Gnome :
    1. yum update
    2. yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
    3. ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
    4. reboot
  3. Sudoers
    Add the user in the sudoers list.
    Assuming to be logged as user, go in the root account using for example ssh.
    1. ssh root@localhost
    2. If the first time type Yes to the request to add the localhost key.
      Then enter the root password
    3. Use the command visudo to edit the sudoers list.
      Locate the root and add below the user with the same levels of access
    4. save

Developer tips - loading iOS apps directly

Sometime is quite useful to be able to load an iOS app under development on a phone directly, without passing for the Apple store.

On the latest version of iTune it was removed the possibility to load directly an app.

If you have a Mac with  macOS High Sierra Version 10.13.3 it is very possible your iTune will not allow you to load an app directly to an iPhone connected via USB.

Developer tips - Visual Studio - workarounds

Ok, let me start with I didn't choose to use Visual Studio !!  ðŸ˜›
But sometime is the pain that choose you.

In my case I'm using Visual Studio 7.4 on a Mac in order to develop apps Android and iOS in C# (old Xamarin).

This article contains some tips I discovered that can be useful if somebody else has the pain to use 'that'.
Of course this article is working in progress, expect updates.


Sunday, January 21, 2018

SPIT calls on GXV3000 (updated)

SPIT stands for Spam over Internet Telephony.

Out there exists a lot of evil people that do bad things, SPIT is one of this bad things.
It can be very annoying. Here some notes about to get rid of these calls on the Grandstream GXV3000 phones.