I've been working now awhile on my Onkyo Qt ISCP library and there is one not so funny thing about the protocol. There is no authentication or authorization whatsoever. So basically if you happen to be on the same network as a networked Onkyo you can do whatever you like.

From the not-too-bad: Change radio channel, switch input
To the not-so-nice: Turn the volume up as high as it goes, stream something nasty

Even the device setup web interface is open to everyone.

So don't put a networked Onkyo on a public IP and keep it on a private network that no outsiders can access.

Sunday, August 14, 2016

I've been working with Drupal now for about 3 years now. From time to time there are things that are just strange design decisions or just plain stupid.

One such thing is Date fields, there are a couple of them with no clear documentation (on the Field management page that is, there are if you Google, but who does that?). Anyway, I needed a Date field. The ISO sounded good, pretty much assumed it was just related to the data entry as I was going to feed in a 170000 nodes with date & time field in a easy for machines to parse format.

How.Wrong.Was.I

Drupal uses, obviously, a SQL database. Meaning that dates, should, obviously be stored in a SQL a DATE, TIME, DATETIME type right ? Oh, no no no.

What does Drupal do ? Use a varchar.

No wonder searching, by date ranges, on my collection of 170000 nodes was just a tiny bit slow.

Wednesday, June 15, 2016

Something I've been working on @Work(tm). It started with the exercise bike generator and then we went a bit crazy with the extras for it.

Environment education package, train set with various themes

It is part of a environment education package with various themes, including energy, mobility,waste managementand biodiversity. It is part of the City of Turku Ekotuki action.I've done the technical side of it using an AVR/Arduino as a main controller. The track has 3 (The two that are positioned at the parallel track location are combined into one.) IR sensors to track where the train is. The IR sensors are monitored using interrupts and as there are only two on the ATmega328P the two sensors needs to be combined into one.A H-bridge motor controller is used to run the train itself using one pin PWM for speed and a couple of pins for direction control.

The system, a bit of a mess yes :)

As the whole system is covered with a plexiglass cover to keep fingers away, the whole system and train needs to be fully automatic. The train controller is configured to run the train around the track a random amount of times (with lower and upper limits), then stop and the station and change direction.

To help debug the system a character LCD is connected trough i2c, it displays the current state, input voltage, speed, wait counters and various other data.

Debug character LCD

The run time and stop time can be adjusted with two potentiometers so code changes are not required for basic adjustments. These are read at startup with analog inputs.

Configuration potentiometers

We are considering adding a automatic/manual model toggle with some kind of a remote controller (IR might work).All buildings have LED lights and are also controlled by the Arduino, currently some are combined because a lack of hardware (need to add a PWM LED controller) but all lights can be controlled separately.

Building lights

Recycling point with street light

There is also a tiny i2c connected B&W LCD screen (the red thing by the blue car, supposed to be a charge point for electric cars) that is used to display logos of the sponsors (Föli, Turku Energia, Lounais-suomen jätehuolto and Turun seudun puhdistamo Oy) and train timetables (fixed for now). This will be upgraded to a color LCD sometime in future.

Electric car charge point with advertisment screen

The system can be powered by the exercise bike to demonstrate electricity generation and usage. It is also possible to power the system with a AC-adaptor in cases where using the bike is not possible.The Arduino source code is open and available on github. It is of course very specific to this particular setup but still, it is there.

The small house at the top has also a working solar panel.

Solar panel with LED light in the window

The package is still evolving and one of the features in the pipeline is to add environmental and train sounds, upgrade the sponsor LCD to a color version and fully separate light control. Also a way to run the set in manual mode is

Various kits was used to build the whole thing, you can find links to the major parts below if you are interested:

Monday, April 25, 2016

I was sick and tried to do something usefull at the time. So, a bit of hacking on the BlackBerry fork of SDL to add support for native gestures (Swipe down and and Back swipe "down-left to upper-right").

Swipe down is obviously used for the game menu access (F5 key) and back swipe for Escape to skip cut-scenes (ESC key).