Fun with OpenEMM installation

A few days ago  a colleague asked me if I could install a Newsletter System for him on one of our servers. He decided to use OpenEMM 6.1.

OpenEMM is a feature-rich enterprise software for e-mail marketing, newsletters and service mails (transaction mails and event or time triggered mails). OpenEMM offers sophisticated bounce management, link tracking, lots of realtime statistics, a CMS module and a scripting feature to implement individual tasks…….  cool 🙂

Installation goes by hand, cause sadly there are no deps.

However – after a bit of googling I found a wiki which descriptives the installation process for the common linux distros.

As a brave installation instruction follower I went through the installation step by step.

In the end there was only one task left to start the application server resin and login in for the first time.

And the fun starts 🙂

Instead of a shiny login screen I got….

An error occurred

javax.servlet.ServletException:  org.springframework.jdbc.UncategorizedSQLException: Hibernate  operation: Cannot open connection; uncategorized SQLException for SQL  [???]; SQL state [null]; error code [0]; Cannot create  PoolableConnectionFactory (Communications link failure  The last packet sent successfully to the server was 0 milliseconds ago.  The driver has not received any packets from the server.); nested  exception is org.apache.commons.dbcp.SQLNestedException: Cannot create  PoolableConnectionFactory (Communications link failure  The last packet sent successfully to the server was 0 milliseconds ago.  The driver has not received any packets from the server.)

hmmm, so what is jdbc trying us to say?

So I checked the stack trace:

Caused by: java.net.ConnectException: Connection refused
 at java.net.PlainSocketImpl.socketConnect(Native Method)
 at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
 at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
 at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
 at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
 at java.net.Socket.connect(Socket.java:529)
 at java.net.Socket.connect(Socket.java:478)
 at java.net.Socket.(Socket.java:375)
 at java.net.Socket.(Socket.java:218)
 at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:256)
 at com.mysql.jdbc.MysqlIO.(MysqlIO.java:293)
 ... 57 more

“Connection refused” what the hell…. ok, database credentials are ok, openemm and openemm_cms schema are created. The MySQL error log says nothing? I’m able to connect to the schemas via mysql client ……. oh mannn, it turned out that I’m not the only one with this problem, lol, but all forum posts I could find so far offered no solution for my problem.

Then after half a day more or less searching for a solution I found a post where someone is talking about to check the MySQL “bind-address” parameter.  Checking my.cnf  turns out that the address binding was set to the external address of the server, lol what…, who changed that???

Quickly changed the address-binding back to “localh0st” restarted OpenEMM and requested the logging screen. Unsurprisingly the HTML error stays the same but,…. the stack trace changed…yeahhhh.

Now the trace shows:

Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
 at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2497)
 at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:599)
 ... 72 more

Humpf,…… firing on google. I interpreted this message that jdbc could successfully establish a connection to the database and than for some reason the connection was closed from the db side.

A few hours later checking a lot posts concerning this problem I found a small side node in a post that it make sense to check the host.allow entrys.

Added ….

mysqld : localhost : allow

and ….. it works yeahhhhhh 🙂

Brushless DC (BLCD) Motor Test-Stand focused for Drone environments

If you have ever worked in an academic environment you might know that there are students and then there are STUDENTS :-). I mean these kind of students who are really interested into the project and incorporate their own ideas, one of the rare varieties…..  A year ago one of this rare varieties volunteered for one of my projects…. yeah

The goal was to build a BLCD Motor Test-Stand to measure how electric current and buoyancy are changing on several different motor propeller combinations. The motor/props tests are mainly focused for usage with Quadrocopter like vehicles. Furthermore Amir (Godfather of Quadrocopters)
came up with the idea to measure the Tau63 for the PT1 transmission behavior.

The software part is entirely written in G (LabVIEW).  For data acquisition we used the NI PCI-6024E interfaced via DAQmx.

With DAQmx you can set up your measurement hardware very easily (see next snippet).

Measured signals are:

Sampling rate = 10kHz

  • BLC- Ctrl. Phase 1
  • BLC- Ctrl. Phase 2
  • BLC- Ctrl. Phase 3
  • motor speed with optical sensor
  • power input
  • command acknowledge from  BLDC-Controller
  • voltage supply

For the measure of the buoyancy force we use a weighing machine 🙂 (see gallery)

To measure the motor/prop. speed we used two different measuring methods.

1. Laser module  and a photodiode:

As you could see in the circuit diagram it is very high sophisticated 🙂

2. Via  Back EMF (back electromotive force)

Back EMF is the voltage that pushes against the current which induces it. This voltage can be used to measure the motor speed.

Some Results for the electric current versus buoyancy measurements:

auftrieb-zu-leistung-hacker-a20-22l

Image 1 of 6

Some Results for the Tau63 measurements:

sprungantwort-50g-hacker-a20-22l

Image 1 of 12

Last but not least, Ladies and Gentleman let me introduce you the Test-Stand itself 🙂

Cool new gadget

Just got a new gadget. It’s from TI and called eZ430-Chronos.

The eZ430-Chronos is a highly integrated, wearable wireless development system based for the CC430 in a sports watch. It may be used as a reference platform for watch systems, a personal display for personal area networks or as a wireless sensor node for remote data collection.

  • Fully functional sports watch based on the CC430F6137, MSP430 with integrated <1GHz wireless transceiver
  • The watch is reprogrammable for custom wireless applications
  • It includes an on-board 3-axis accelerometer, pressure sensor, temperature sensor, battery voltage sensor
  • 96-Segment LCD display driven directly by CC430
  • Can be paired wirelessly with heart rate monitors, pedometers or other devices based RF transceivers like the CC1101 or SoCs such as the CC430 or CC111x
  • Includes an eZ430 USB emulator that connects the Chronos to a PC for real-time, in-system programming and debugging
  • Includes IAR Kickstart and Code Composer Studio integrated development environments which includes an assembler, linker, simulator, source-level debugger, and code limited C-compiler

We are planning to use the watch for Sports-Telemetry environments and also for our Ambient Assisted Living Technologies.