In my recent posts I hacked a BV4618 LCD to prepare it for use in my Tastic RFID project. Now that I have the BV4618 working and an improved and simple code library (sopBV4618_S), we return to the Tastic tool. If you are not familiar with the Bishop Fox Tastic project you can read about it here.
Ol’ Sopwith again wants to make it clear that I am not interested in the dark-side of RFID hacking. Nor do I encourage anyone to do so. The goal of this project is to learn about RFID and how it all works. Fascinating stuff.
After researching the Tastic RFID documentation I ordered three PCB’s using the Tastic project PCB documents. The vendor I used was OSH Park. Highly recommended outfit that does great work.
In Part-2 of this blog post series I provided a detailed ‘How-To’ for new users of the ByVac BV4618 LCD for their Arduino projects. It is clear to me there are plenty of Arduino hobbyists who want to hack LCD’s and need a simple way to wire them up and write to them.
The ByVac BV4618 LCD is a great choice. You can actually get it up and running with three wires – V+, Gnd, and Tx. Writing text to the display is pretty straightforward using the BV4618_S library. The library is useful, but Ol’ Sopwith does not think the class is easy enough to use for beginners.
To solve this problem I extended the BV4618_S class library and created a new class named sop4618_S. The class is brain-dead simple to use and it hides all the complexities of the VT100 code sequences.
In Part-1 of this blog post series Ol’ Sopwith described the ByVac BV4618 LCD and how to wire it up to an Arduino Uno. If you are interested in how to program an Arduino to talk to this LCD, pull up a chair and let’s get started.
I wrote up a detailed implementation guide for the BV4618 LCD that walks through the entire process to get the LCD into one of your cool Arduino projects. If you are new to the Arduino and want a quick guide on how to setup the developer IDE you can follow this guide.
Arduino ‘How-To’ Series
My previous post describes my new venture into RFID hacking using a Tastic RFID stealer. The Tastic gadget requires a serial 4×20 LCD to display a proximity cards site code and serial number. I purchased a ByVac BV4618 LCD as a replacement to the LCD listed in the Tastic specifications due to local availability.
As Sopwith always advises, the first thing you need to do with a new gadget is to download the datasheet. You can find it here. The internal controller/driver of the LCD is a Hitachi HD44780. This very popular device can be found in all types of LCD applications. The BV4618 piggybacks on the HD44780 providing a very convenient communication interface.
The BV4618 provides three interfaces. A serial interface provides support for both TTL and RS-232. This means you can connect a MCU such an Arduino or Raspberry PI, or use 12V serial connections to a serial port on a PC. There is also an I2C interface and support for a small numeric keypad.
Sopwith’s Current Project (BV4618 LCD)
Have not blogged much over the summer because the Mrs. and I have moved to London on a temporary work assignment. Anyone who has been an expat understands the complexities of a relocation. Now that we are here and settled, I can get back to my hacking projects. I bought my Rasberry Pi’s with me and purchased a couple of Arduino’s and bench tools at a local Maplin store.
My latest interest is in RFID cards. The use of this technology is exploding. Since I am in the security business, understanding how RFID is used for secure access to large data centers and other secure facilities is important. In my research, I came across an interesting project involving an Arduino Nano. The Tastic RFID stealer is a very clever hack.
According to Mrs. Sopwith, I have mellowed considerably over the years. This is a good thing because ol’ Sopwith used to be a pretty intense fellow. There are still a couple of things that can get me quickly riled up: The complete breakdown of personal privacy and the proliferation of the advertising assault by the media.
Now, I would much rather be posting about solder and such – but these issues are important.
Let me give you an example. Last weekend Mrs. Sopwith finally capitulated and said she would like to get a Kindle. Like many people, the Mrs. loves the physicality of a book and resisted electronic book reading. Now that we are going to do some traveling, she agreed to get a Kindle.
Sopwith currently has two Kindles. I think they are terrific. So – off to Best Buy. We look at our options with the salesman and decided the best fit for the Mrs. was a Kindle Fire HD. The Fire HDX was overkill. So off to the checkout where I paid $139.00 US + CA sales tax.
When I got the unit home I plugged it in and did not fire it up until it was fully charged. Upon startup, I walked through the registration process and linked the Kindle with Mrs. Sopwith’s Amazon account.
Then – the nightmare began! When I was presented the Kindle home screen I was bombarded by flashing images, ads, and unending visual noise. It reminded me of running a web browser with the pop-up blocker disabled. I quickly traversed the menu structure to find the checkbox that would disable the ads. Alas – I found it, but to my horror I discovered I would have to pay $15 to disable the ads.
Like many of my fellow smoke-makers, ol’ Sopwith has been very reluctant to adopt Python3. In my view, Python2.7 is the most stable and flexible version of Python ever released. It is hard to believe the first version of Python3 was released in 2008. Folks – that was six years ago! The time has come to move to Python3.
In my recent work with the AM2315 humidity sensor, I was forced to use Python3 because the quick2wire library I use only runs in the Python3 environment. So, I wrote a Python3 class that wraps the capabilities of the AM2315 sensor.
A couple of important points about Python3. First, installing Python3 on your computer does nothing to your existing Python2.x installation. Python3 is installed in a completely separate location and runs in a separate environment. This means it is very easy to have both version on your system. If you install Python3 on Windows, it will become the default Python version. You can still use Python2.x but you will have to ensure its PATH is set correctly. On Linux you run your Python3 scripts using python3 from the command prompt.
Second, there are a few things in Python3 that you must understand up front. The biggest gotcha for most people is that the print statement is now a function (print()). This is a very good thing although it may take you some time to internalize this change. Also, all ambiguities about Unicode are gone in Python3. This is a big change. You must now think of strings as ‘text’ and all other data as ‘bytes.’ This is truly ‘elegant’ as they say. Once you understand how this works it makes much more sense.
Sopwith recommends that you write all new Python code in Python3. Whether you want to port your old code to Python3 is up to you.
Sitting in a restaurant last month with Mrs. Sopwith, it was impossible to have a conversation because the large TV over our heads and the six others within 12′ were blaring. Living in Southern California, it is nearly impossible to escape obnoxious TV’s and their noise pollution. Bars, restaurants, cafes, heck even grocery stores have them assaulting us.
On this particular night, the normally mellow Mrs. Sopwith was quite unhappy. After droning on about the evil trend of constant noise in our world, she finally said the magic words: “I wish I could turn off every TV in here.” Being the typical faithful husband, I decided to make her wish possible.
Sopwith here. I’m just one of those guys who likes to understand how things work. More often though, when I mess with things they tend to break. Specifically, when I mess with electronic components I often smell smoke.
This blog is a public forum where you can follow along as Sopwith makes smoke.