Home avatar

Engineer, Coder and Open-Source enthusiast

Interfacing a MS8607 sensor with Python using the bus pirate

A couple of days ago, I’ve read about Scott Harden’s interesting approach of interfacing a twi temperature sensor by using Python and Hack-a-day’s bus pirate. Quite accidentally, I had an similar problem. For some experiments I need a good knowledge about my environmental sizes (e.g. ambient pressure, temperature and humidity). I decided to use a MS8607 sensor produced by “Measurement Specialities / TE Connectivity” and is distributed for example by AMSYS. I’ve got some modules and started reading the datasheet. Due a permanent lack of time I was searching for a good and simple way for testing the sensor interface without the whole prototype circus (e.g. design and build some interface cards, testing the code by using debug interfaces and so on). Scott’s solution was simple and I had all tools already available, so I started to adapt his code for my needs.

CFD simulations using Scientific Python

For some simulation topics of my Ph.D., I had to learn/recapitulate some basics about simulations techniques and fluid simulations. The original procedure and code could be found at Archer (UK National Supercomputing Service). This is a simple example for applying the finite difference approach to determine the flow pattern (CFD1) in a cavity. For simplicity, we’re assuming a perfect liquid without viscosity, which also implies that there’re no vortices. The \(z\)-dimension of this setup was defined to be endless. We are interested in the directional velocity of the fluid.

Scientific Python - first contact

To be honest, my last contact with Python was some years ago. It’s a pretty cool language, nice packaging system (pip and so on) like CPAN1 or CTAN2. But to be more focused on C/C++, Python and myself are going different ways. Last year I purchased a textbook “Python Machine Learning” Sebastian Raschka in a fortunate coincidence and as I had read it, I was fascinated by a bundle of new Python libraries like Numpy, SciPy, Mathplotlib and so on.

Port expanding HAT for the Raspberry Pi

By development of a new version of our heating control, I was dealing with several ideas like designing a new microcontroller pcb, using an ESPXY-device or the most luxurious solution using a Raspberry Pi board. All three solutions open three different grades of performance, effort and possibilities for further ideas. In the past I spend several months of playing with self designed AVR microcontroller boards. These boards are communicating and interacting through a self-constructed ISM1 network and I’m proudly able to say: “Since I have installed them, they had worked all the time.”

Get your drive info

Since two weeks my server is reporting some S.M.A.R.T-errors on one of my hard drives. For a quick overview about all drives (serial numbers, mode) and finding the one which has to been replaced, I’ve written a small script. The script produces a fancy list of all available drives on your Linux host. It uses hdparm in combination with sed for retrieving the drive information, so both are the only dependencies. With a few changes it could be used directly for generating content as Markdown.

Using githooks for generating documentation on gitweb

Github offers an automatic processing of markdown files (e.g. README.md) for simple and easy repository description and/or documentation. Recently I replaced gitlist with gitweb. A great pity was that gitweb hasn’t the ability to process Markdown-Code by it’s self.

Anyway, nice chance to play around with git’s hooks and let them do the hard work for us.

What is a git hook?
A hook is a trivial BASH-Script which would be executed by git under special circumstances like a new push to a special branch or special content inside the committed source (or what ever you wnat to keep managed).

So what must be done to create and activate a git-hook? The answer is very simple and including only three steps:

Atmel ICE and OS X no 3

All available fixes and patches are already included in AVRDude 6.3 (fragmentation support, eeprom crash and so on). Unfortunately homebrew isn’t up-to-date and only version 6.2 is available online.

The updated one should be something like this: