- Rob's Blog
- Last Entry
2016 Looking Back: Learn to Make
Been an exiting year as laid the foundation for making - explore & learn new hard- and software "things" and having fun.
Getting on with the various ESP8266 and Arduino models, controlled by software, like B4R (new product released) and ESP Easy.
For the B4X product suite, B4J HowTos has been greatly enhanced and developed new experiments for B4R.
Started to build solutions with IBM's Node-RED running on the Raspberry Pi. A highlight for sure is Lighthouse58.
2017 Looking Forward: Make to Share
- Make: small projects using Arduino, ESP, Raspberry Pi, LEGO with Brixo (expect first hardware in Q1). Play around with new bricks/bricklets, software from my favorite TinkerForge.
- Share: Rebuild from scratch rwblinn.de using commercial package (not decided yet which one). Keep on enhancing the various HowTos(B4J, B4R, Node-RED).
- Explore: the new ESP32 Wi-Fi + Bluetooth Combo Chip. Any new exiting things coming up ...
- Watch: how Raspberry Pi's PIXEL for PC and Mac is evolving. Follow what going on in the Maker scene.
- Learn: Attend Java course and workshop at openHPI.
Wish a prosperous 2017.
Thank You, Rob
Tags: B4X, Arduino, ESP8266, Raspberry Pi, Node-RED, TinkerForge
Lots and Lots going on.
Mid April Anywhere Software announced the first Beta Release of B4R.
As stated by Anywhere Software, B4R is a new development tool for Arduino boards, is 100% free and the libraries are open source (MIT license).
... so I shifted gears and started to test since with the various Arduinos (UNO, MEGA) and sensors using the Sensor Kit V2.0 for Raspberry Pi (bought last year to experiment).
Started to build B4R HowTos with sample projects = look at my homepage, select B4X. These are additions to the great Anywhere Software B4R Tutorials being build.
In the meantime Beta #10 is out.
One other being developed further, is my home automation solution using Domoticz
. A new shed in garden ("Gartenhaus") has been build, integration into Domoticz is in progress (again look at my homepage, select IoT.
An interesting aspect is handling the communication between the two Raspberry Pi's (Gartenhaus and Domoticz Home Automation Server). MQTT
(Message Queue Telemetry Transport) is used as the messaging protocol between TinkerForge Brick/Bricklets, Raspberry Pi and Domoticz.
application is used, to dispatch MQTT messages between the two Raspberry Pi's. The B4J application runs as a process, but because of connectivity issues (WiFi in the garden not stable), data is scheduled (every minute) transferred.
To consider is to use XBee's or Wireless nRF24L01+ for sending data instead of WiFi ... but not for now to look into ... the solution is running ok.
Overall learned a lot over the last 4 weeks.
BTW: Still awaiting my Pine A64
... not sure by when as the project is delayed.
Tags: B4R, Arduino, Raspberry Pi
Finally started to explore how to revise my homepage rwblinn.de. Up and running since 1999 with almost the same design, it is getting time to think way forward.
The requirements are responsive design to handle mobile devices, simple to build, test and maintain, modern look ("materialized like"), use existing data.
Explored several options, like commercial CMS tool, Wiki, Forum Type or develop own. Not easy must say.
... at the end, developed an own solution based on w3.css. The solution principle is having a slim core page, which loads its content from pages but keeping the header and the footer.
So have a look here - more in progress.
What a Pace
Started to learn more about openHAB.
At a first glance, it looked complicated to use, but after understanding the concept, it is a powerful solution. openHAB is developed in Java, has a REST API and supports MQTT plus many other interesting Bindings.
Developed my first experiment using TinkerForge RED Brick, Master Brick and IO-16 Bricklet to switch a LED.
In addition build a sample B4J application to control the LED via the openHAB REST API.
Exploring how to use MQTT with openHAB, TinkerForge and B4J is in progress (already got openHAB with TinkerForge using mosquitto broker working).
Already down into Feb 2016
First month of the year already over. Have been working on Android Apps developed with the RAD Tool B4A
It has been a while since developing Android Apps, as over last year mainly build Desktop Applications with another RAD Tool B4J
but got quickly back on track :-) during the build of roTrackX (Google Maps Way Tracker) and Spoddy (Plan and control Weight Reduction).
Greatest news comes from the Pine A64 Project: It has been successfully funded.
When all goes well, will receive in May 2016 the PINE A64+ 1GB unit along with 64GB MicroSD Pre-Loaded with Android 5.1 OS, 802.11N Wifi + Bluetooth 4.0, PINE64 Power Supply, 7" LCD touchscreen panel, the PINE64 Enclosure. Wow.
Really keen to see my first B4A App running on the Pine. By then will consider which App would suits best for such a power board.
Also started to convert Lazarus applications to B4J. As an example: This Blog Page has been created by roPageMgr
To note as well: the next B4J Version
(v4.20) is in the make with a new key feature to develop own Custom Views.
What a start of the year
As XMas present got a new Smartphone, Wiko Lenny 2 with Android 5.1. Thanks to my dear son ...
Since then, Lenny became my Buddy ... and a new Android App idea was born = Google Maps Way Point Tracker roTrackX
developed with B4A and B4J.
Great learning moments on how to use GPS, the Google Maps libraries, create B4A services, using the KeyValueStore with Types and many more. Very exiting but went through some tough moments in getting services to work properly. Positive feedback so far from the field testers.
Good progress reported from the PINE A64 (First $15 64-Bit Single Board Super Computer by PINE64 Inc.).
New Bricklets announced by TinkerForge. One of them a neat OLED display - will explore next on how to display graphics via B4J.
... Lets see what the year will bring - confident the pace of new developments will go even faster ... and I do have many more App idea's
Tags:B4A, B4J, Pine, TinkerForge
[IoT] Serial Communication
On my todo list had an item to explore Serial Communication between PC and the Raspberry Pi.
The reason for exploring, was to get an understanding how Serial Communication works to then apply to a modelrailroad control solution which I plan to start.
The solution build makes, again, use of my beloved TinkerForge
components - this time the RS232 Bricklet. Developed a solution as described here
To mention, is the development of a B4J client as a Non-UI app which uses the jSwing framework to build an UI.
The app is started from a console via the Raspberry Pi desktop.
It is a kind of hybrid app (B4J Non-UI with UI components), because JavaFX is not supported by newer Java versions on ARM board (like the Raspberry Pi).
The JSwing code is pure Java code encapsulated in the Inline Java region of the B4J Non-UI app.
Next step is to connect the modelrailroad Roco booster to a PC (as a first step, then next to the Raspberry Pi) to be able to control trains via a B4J app (and later B4A app).
This will be quite a task to explore how - but that's enjoying tinkering.
[IoT] MQTT Experiments
Exiting day by developing 2 new MQTT experiments using TinkerForge Bricklets IO16
, Remote Switch
and B4J ...
of course running on the Raspberry Pi.
The MQTT Experiments are one of my favorites, as it simplyfies development and a rather powerful way to communicate between devices.
Setting up a B4J Server on the Raspberry Pi, to then access the experiments via a browser (from any device) with w3.css is great fun.
Started to use first time the w3.css modal dialogs assigned to a button, which action is handled via B4J.
Thought was complex to achieve, but turned out to be rather easy.
Never a dull moment in life.
Tags:MQTT, TinkerForge, B4J
Backing and more
Become a backer for the PINE A64
, First $15 64-Bit Single Board Super Computer by PINE64 Inc..
Looking forward to receive the full kit ordered - in May 2016 if all goes well. It will run Android 5.1, which gives the opportunity to develop B4A
programming foundation course (yes, did the hard way - great tutorial).
Funny language; So many libs available; Really easy to build apps; Did bit of GPIO testing and Websockets on the Pi as well.
is evolving. Like it very much. Keen to see how it will grow further.
Kept on playing with the Raspberry Pi and my beloved TinkerForge Bricklets - next is building a RS232 experiment.
[IoT] Raspberry Pi Node-RED
Been a while since last blog - took a break on the sunny Canary Islands.
Restarting in following my motto "Exploring the New" by looking into Node-RED.
This was triggered by Raspian Update Blog
is a visual wiring tool for the Internet of Things. A creation of IBM Emerging Technologies
Read more on how to get started on the Raspberry Pi here
Got my first flow going, by - what to expect :-) - let a LED Blink via GPIO. Interesting experience building a solution using nodes visually.
The Raspberry Pi org promised to write a full blog post about Node-RED usage - looking forward.
Before I forget, build some small Lazarus apps (just to keep fit in programming with Lazarus). Look at the HowTos
> Sample Projects.
Tags: Raspberry Pi, Node-RED, Lazarus
Started a Blog to share thoughts & ideas
As a Starter, today Aug 30, 2015 was good to make some updates to my homepage. It looked too busy, simplified a "bit" further.
First time using W3.CSS
. Really simple to use and powerful = thus LIKE IT.
It triggered simplicity. Use containers with information blocks.
Getting momentum using w3.css
Updated the look and feel of my Blog, Contact Form and ToDo List.
Working on the ToDo-List.
Think will build a small B4J Application to keep track of the ToDo's (stored in a SQLite database) and generate the ToDo.html page. Probably will do the same for Blog Entries.
Increased momentum using w3.css
Learned more how to use w3.css resulting in simple and common structures for sharing information.
Build and updated various pages, like Contact Form, Blog, ToDo's ... but also the first Application pages for WeatherCubeOne, Domoticz Command Utility.
By doing so, will definite need Helper(s) to maintain the pages, means opportunity for B4J to use.
First Raspberry Pi Experiments in progress
Thought about writing Raspberry Pi Experiments as it makes so much fun working with these little "things".
First draft in progress = the classical Hello World
Have captured already lots of information as part of the B4J HowTos, so it is just a matter of translating (hope so).
Again using w3.css which strives for simplicity (I think).
Need to get a framework concept first, to then write more esp. related to using GPIO.
Continued with the Raspberry Pi Experiments
Further enhanced the experiments. Developed a common structure for the experiments.
Go to Get Ready
Updated the classical Hello World
Setup a new Raspberry Pi 2B for Experiments and control a blinking LED
Setup a new Pi 2 model B with Raspian.
Build a first GPIO Experiment (not final yet), the classical Blinking LED
Updated various other files to ensure consistent content.
Received 40 new sensors for Home Automation. Will start with simple experiments.
Raspberry Pi GPIO Experiment "The blinking LED" is 'blinking'
Got stuck few days! in finding a B4J solution for this GPIO Experiment as various threads did not interact with each other ... BUT ...
With the great help from Anywhere Software
a hint in the right direction was given.
Learned a lot about Thread programming resulting in a "Blinking LED
This appraoch will be used for all other GPIO Experiments as accessing via Browser makes it device independent and using w3.css has a simple nice interface.
A muddle day
Polished up the w3.css based webpages. Downloaded the latest w3.css version 1.55
updated - running smooth, although slight memory increase day-by-day. Need to watch and explore the cause.
Starting to document the thread programming used for all Raspberry Pi GPIO Experiments.
Tried Try Out's
First Try Out triggered by the announcement TinkerForge supports MQTT
started to read more about MQTT.
Eclipse has also a project related, called Kura
, which provides a platform for building IoT gateways. Tried to set Kura up on the development Pi, but "somehow" the network and other settings got screwed up. Will need some more time to understand this.
Parked MQTT for the moment - will look into later the year.
Next Try Out with the Pi I2C Bus. Configured the Pi and connected a BMP180 sensor, wrote a B4J console app with "heavy" Inline Java code (easier to do the programming [instead JavaObjects, use examples from Pi4J] and testing). Received output on the B4J IDE Log. Cool.
Time to Update
Has been some time since last writing ... made updates to my B4J HowTos
(still want to achieve the 1001/101 by year end). Every time starting updating, getting new ideas.
The first few Pi Experiments
are doing good, although still need to update online documentation including adding last experiment IR sensor.
Started to explore the MySensors
project, esp. the Serial Gateway
, as want to integrate into the Domoticz
. Ordered an Arduino Uno which is dedicated to run the Serial Gateway.
Received several requests to build a WeatherCubeOne
... like these Icons
Learned new : Ubuntu
Installed first time Ubuntu
on a Raspberry Pi 2. Impressed and exited about ease of installation, functionality, wealth of software.
Amended the standard setup, with X11VNC (Remote Desktop access from my Windows 8 laptop; much faster then default Windows Remote Desktop), ssh (to connect via WinSCP), Java 8 (for B4J), GCC and wiringPi (for GPIO), Geany (nice product to develop applications)... and few more...
Created, using Geany (to learn), a simple GCC program to test GPIO LED - done in a few steps. B4J WebApps tested - running fine.
Conclusion for now = like Ubuntu
New Raspberry Pi OS: Raspbian Jessie
Major Raspberry Pi OS update, since Sep 2015, which is called Jessie
Downloaded and installed - went smooth - followed by B4J Bridge, FTP (vsftpd), Geany, xrdp.
To note is that Jessie already includes Java, gcc, git ... but also packages LibreOffice and many more.
Jessie has many changes under the hood (have a read at the link shared earlier) ... Overall Jessie makes a very good impression.
Google Line Chart
Initiated by a request, developed two simple Sample B4J Applications (WebServer
and a Desktop
) to display, in a WebView, a Google Line Chart with 2 lines and different Y-Axes.
The data is loaded from a datafile (textformat). The chart options are defined in the B4J code. Both apps outline the principle on how to use - a solid foundation to build upon.
These B4J examples are good starters, because as part of my Home Automation Project wanted to have more complex charts.
... btw: Great to read that one of my favorite Blues musicians Walter Trout
is about to release a new album and is coming over to Hamburg (Germany). A must to go.
Made a major step further in IoT by including a Distance Sensor in Domoticz
Home Automation Server (running on a Raspberry Pi 2B).
First step: Setup an Arduino UNO as a MySensors Serial Gateway
using the NRF24L01+ Radio.
Connected the Arduino to the Raspberry Pi and configured as Serial Gateway (Hardware) in Domoticz.
Next step: Build a Node to connect to the Serial Gateway. The Node is a dedicated Arduino UNO with a NRF24L01+ Radio and HC-SR04 Distance Sensor.
Connected this Node to a Raspberry Pi (again Model 2B but running latest OS Jessie, but only for supplying power to the Arduino) and ... surprise ... the Distance Sensor was recognized by the Domoticz Server. The Node can also run standalone with external power (battery or AC).
This has been the first attempt to use the MySensors Serial Gateway with Domoticz = so far working fine - identified a bug in Domiticz, but after informing the developer this was fixed within 2 hours.
Both sketches running on the Arduino's can be found in the MySensors homepage ... Read also here
... More to come soon.
Lazarus on the Pi
is a Delphi compatible cross-platform IDE for Rapid Application Development. It is based upon Free Pascal
(FPC). Lazarus is an alternative to build simple Non-UI and UI applications running on the Raspberry Pi.
I have been looking for a development environment to build UI applications on the Raspberry Pi, since Oracle does not support JavaFX (since Java 8) anymore. Having used Delphi for a long time (since 1984), Lazarus came as a good option.
Have made first applications and started to document as Lazarus HowTo
- looks very promising.
Was really surprised about the speed of development with Lazarus running on the Pi 2 Model B - COOL.
Had been waiting for (further) MQTT developments to use for IoT solutions. Within a week, two interesting products have been announced:
Anywhere Software jMQTT - Official MQTT client
TinkerForge Brick MQTT Proxy
On a Raspberry Pi installed Mosquitto and the TinkerForge Brick MQTT Proxy.
Then developed a B4J Test application (download source
) to display values from the TinkerForge Bricklets Temperature, Barometer and Humidity on a TinkerForge LCD20x4 Bricklet.
The principle of subscribing and publishing enables to develop applications for which message handling is carried out by brokers (running as dedicated processes).
For this test application, only a few lines of code did the job - compared to previous solutions using JavaObject and Inline Java.
As just starting with MQTT, think this concept opens up a wealth of solutions - looking forward.
[IoT] LCD Custom Characters
Based upon the MQTT developments on the Raspberry Pi (see Blog Oct 21, 2015) wanted to show on the TinkerForge LCD Display
custom characters, like Arrow Up and Down, but how? ... so lets explore ...
With some great help of the TinkerForge Community got a basic understanding, which leads to test first using mosquitto publish commands. These tests went successfull. Next step to translate into B4J code with the jMQTT library. Went also smooth.
As more custom characters are needed, thought it would be handy to develop (in B4J
) a utility to define custom characters and convert in MQTT payload string. Thanks to B4J as a real Rapid Application Development (RAD) Tool, see the result (with source code) here
Now back to the MQTT B4J Test application (download source
) to display values from the TinkerForge Bricklets Temperature, Barometer and Humidity on a TinkerForge LCD20x4 Bricklet.
[IoT] MQTT progressed
Progressed with WeatherCubeOne v2
based upon MQTT (Message Queuing Telemetry Transport is a publish/subscribe messaging protocol). Learned a lot about this great technology.
The WeatherCubeOne is running fine so far on a Raspberry Pi 2B+. Rather keen to watch the memory consumption. Have included Memory Consuption in the Domoticz Dashboard, so can watch the trend.
Developed first very simple clients in B4J and Lazarus. Have a look at here
, download the documented source (B4J and Lazarus) and enjoy.
Keep watching what comes next.
Progressing with Lazarus Experiments on the Raspberry Pi. Developed straight on the Model 2 using Windows Remote Desktop. The response is quite ok - makes fun.
Beside playing with the standard GPIO, digged more into tests with TinkerForge Bricklets. I really like those and the concept behind. Converted the Tinkerforge console examples into (small) UI applications for the Bricklets Temperature, Humidity, Barometer, Ambientlight and IO-16. Have a look at the Lazarus HowTos.
Especially the IO-16 Bricklet offered playground with (again) LEDs, but also Switches. Working on more is in progress...
Tags: Lazarus, TinkerForge
Learned more Lazarus & IoT
Looked into how to build Lazarus
code on a PC with Windows and reuse the same code on a Raspberry Pi (RPi) with Jessie.
Build a simple Lazarus UI application to log data from a TinkerForge Temperature Bricklet. TinkerForge provides good sample code, so was easy to build an UI with callback functionality.
Build the application, connected to the Raspberry Pi via IP and YES data logging was working.
Copy the project files to the RPi via WinSCP, started Lazarus v1.5 on the RPi, added the defines -dUNIX, -dUseCThreads, build the application without any error and run with localhost as IP.
Hurrah, working like a charm. A great example of cross platform application development.
Tags: Lazarus, TinkerForge