Tuesday, 10 April 2018

Project status as of 11-Apr-2018

It has been awhile since I wrote anything about my research. Now it's time for a major update since a lot has happened since October 2017.

New projects and their status

Supercapacitors for automotive use - Active, High priority

After figuring out that my car battery cannot hold the charge for too long I decide to install supercapacitors to take the burden of powering the starter motor off the battery. It took way too long for the capacitors toe arrive and the battery has lost the ability to hold the charge even for a day. But not all is lost. Later I will provide some of my findings into this matter.

Touchscreen control Version 2 - Active, Low priority

Having a touchscreen to control stuff may be a cool thing at first but it becomes a bit boring later. So why not to add some really good features to it such as aggregated feedback and PoE (Power over Ethernet)? Oh yes, and also the GUI based end user interface design for smart home automation? At the moment I got stuck with Cortex-M3 connectivity line due to the crazy amount of datasheets required for bare metal setup. It's ok, I will get through it someday.

Custom LED driver - Active, Medium priority

After ordering some cheap 9W-12W MR16 LEDs from China I realized that the power output is not what it should be. Some LEDs were faulty which gave me one more reason to dismantle and look inside. As expected the soldering job was not good at the rectifier bridge. Also the boost converter seemed to be too weak for 12W LED - instead of 36V it provided only 22V. That means one more project for me: design a robust and cheap power controller for the LEDs.

Old projects put on hold

Time is extremely hard to refund. Some even say it's impossible. So I had to put some projects on hold due to busy lifestyle and some unexpected difficulties.

Digital DI box

ATXmega could not cope with realtime sound conversion - it was just enough to convert Analogue data into digital signal, but converting it back to Analogue was too much of a task. I will have to use either a specially designed DAC or a more powerful uC (Cortex-M3 maybe?).

Abandoned projects

Technically I have not abandoned any projects yet, only changed priorities and some key components. For example I will not longer use ATXmega for high computing/high data throughput projects, there are other microcontrollers out there better suitable for this and at a lower cost too. At the same time I am switching mainly to PIC at low end due to cost and driver availability.

Do you really need to know the first principles to...

... become an engineer? Before today I was 100% sure that you do need the base knowledge of the engineering field you specializing in. You have to understand some basics of electronics for example to be able to design electronic systems. Or you need some basic knowledge of mechanics to produce robots. And in both cases you most likely will use computers and therefore you need to know computer basics too.

So what happened today?

A few hours ago (on a very short notice) I helped to setup an Arduino based class for schoolchildren visiting the Uni for a field trip. Some PhD students were organizing and helping with technical side: connect Arduino based robots, copy libraries onto computers, setup login and workspace for the school students to practice.

The first problem occured when the PhD's tried to install a particular Arduino library onto the computer's harddrive. I usually frown upon anything that gets installed on top of the base image, especially if this requires admin rights. Well, I am probably too lazy to type the admin password into 20+ computers, but I also know that this should not be necessary in order to use that library. It can be done by simply coping the library to desktop and using an absolute path in the program source code. So the students - intelligent Mechatronics PHD's in their early 20's! - copied the files from a network drive onto local Desktop and asked if this is enough to do it once so the file will (magically?) appear on the rest of computers.

They were surprised when I told them they will have to manually copy the files on all computers. And no, I did not want to automate the process - why to make their life easier, especially when they were not prepared in the first place?

Another problem was with specifying the local path for #include statement. I would expect them to know that #inlcude takes a file name as an argument, not the directory name. But no! The student's did not realize that library (in Arduino sense) is just a bunch of source files, with the .H file as its base. I wonder what will happen when they meet real uC development toolchain?

Once again, these were intelligent (and some are quite actually bright) people who did not understand fully the basics of 1) Desktop computing; 2) Arduino programming; 3) File structure. I am pretty sure they are quite successful at what they do despite these knowledge gaps - thanks to several layers of abstraction imposed by software developers.

Then what is the problem?

The problem lies in their core ability to create something non-mainstream, something that will require advanced skills. What looks to me as a very basic and necessary information for them will become an intimidating and alien concept. They will spend too much time to get through the wrongly understood principles and improperly learned skills

Or they will just hire someone who will do all the dirty work for them

Is low level programming still relevant these days?

The levels of abstraction have made the application programming much easier and faster. But everything comes at a price. This is a new ...