Posted on

Send message to LED matrix using Bluetooth

The next iteration of the LCDMatrix in the earlier post is to add a Bluetooth module HC-05 to the Arduino. This will allow us to send message to LED matrix using bluetooth.

The bluetooth module will need to be connected to the Arduino via the following:

  • Pin 2 is connected to the RX of HC-05
  • Pin 1 is connected to the TX of HC-05

Once this is done, we need to initialise the Bluetooth module to ensure that we can connect to it. In this demo we are using Android app called Bluetooth terminal which allow us to connect to the HC-05 bluetooth module.

You can see it in action in the following clip.

If you are interested to get the source code and the detailed diagram don’t hesitate to let me know.

Posted on

Windows 10 can’t see network drive

I had a problem where my windows 10 can’t see network drive, all the mapped drive can’t be accessed. I had been pulling my hair over this issue. I got a new HUAWEI router (NBN) but somehow this muck up my Windows 10 mapped drive. I had a NAS drive that was mapped in windows 10 and every now and again the Windows 10 Home will no longer able to access the NAS drive. Strangely all the other computers, I had several Mac in the house, they are all working fine connected via the same router. Here are some instruction on how to fix Windows 10 Network file sharing, it works for me, so I hope it will save you some time.

After countless of hours of tweaking and google searching for why windows 10 can’t see network drive, I found the following Method is the most effective to resolve the issue.


Step 1. Go to the settings from clicking “Windows” button on your bottom left corner and select settings as shown in the picture.Windows Options

Step 2. Click on the Network & Internet icon

Windows 10 can't see network drive

Step 3. You will see the similar screen to the one below, scroll down until you find the “Sharing option” and click on it.

Network and Internet

Continue reading Windows 10 can’t see network drive

Posted on

LED Matrix Scrolling text with Arduino using a 74HC595

The extension to the previous letter guessing game, I found a font library from a post in Instructables, and this leading me to create a scrolling text message to the single LED Matrix. This can be combined to make bigger display.

Nostalgic memory remembering what one of my Uni friend’s project back 20 years ago using shift registers and pascal programming, we had come a long way to simplify the circuitry and reduce the complexity of both hardware and software.

Please contact me if you would like the source code or the copy of the fonts library.


Posted on

Emergency recovery shell in berryboot

Every now and again you would experiment with things in raspberry pi, in this instance I am playing around with the wall display called Dakboard, so I modify the config.txt file /boot, and because I had berryboot, it freak out and drops to “emergency recovery shell”.

In order to restore the config.txt file do the following in the command line, because berry boot doesn’t have  /boot partition by design we will have to create one:

cd /
mkdir boot
mount /dev/mmcblk0p1 /boot
vi /boot/config.txt

At this point you can edit the config back to the original or restore it from the backup (what? you didn’t make a back up?)

Once you restore it to the original, you will have to unmount the boot partition back using

umount /boot

Then reboot by using the Ctrl + Alt + Del key or power cycle the pi. This should then boot back to berryboot gui for you to perform any changes.

Posted on

TERM support in Screen command

When you get the following error message when trying to start screen

Cannot find terminfo entry for 'xterm-256color'.

you will need to find the which TERM is supported:

ls /usr/share/terminfo/x

this will give you a list of supported TERMs i.e.


set the environment variable:

export TERM=xterm-xfree86

and then run the screen command

TERMINFO='/usr/share/terminfo/' screen
Posted on

Backup Raspberry Pi remotely

To back up your raspberry pi remotely, you will need to know the ip address, then using the following command

ssh pi@xx.x.x.xx “sudo dd if=/dev/mmcblk0 bs=1M | gzip -” | dd of=~/Desktop/pibackup.gz

Replace the xx.x.x.xx with the ip address of your pi, and the final image will be copied to your desktop.

To check from time to time the progress, press “Ctrl + T”, and you will see something like the following:

load: 0.98 cmd: dd 8967 running 0.17u 1.94s
317344+0 records in
317344+0 records out
162480128 bytes transferred in 167.835383 secs (968092 bytes/sec)

To restore the image back you need to restore to SD card

diskutil unmountDisk /dev/disk#
gzip -dc ~/Desktop/pibackup.gz | sudo dd of=/dev/rdisk# bs=1m conv=noerror,sync


Posted on

Fixing corrupted Time Machine backup

If you are a MAC user, the following message pop up at times.

“Time Machine completed a verification of your backups. To improve reliability, Time Machine must create a new backup for you.”

This means that:

  • Time machine will delete all your existing backups, and
  • Create a new initial backup

You will loose all your previous backups. So let’s try to fix this.

Step 1. Preparations

Time Machine will save all backups and every piece of meta information into a *.sparsebundle file on your network storage device. So this is the file we need to fix.

In order to access it, you need to connect to your networks device share that contains the backup with Finder. It will hold one or more *.sparsebundle files in its root, one for each Mac that uses this drive with Time Machine.

After that, open a Terminal window and switch to the root (=admin) user with the following command:

sudo su -

Enter your password if you’re asked to do so.

When you see the error message I talked about above for the first time, Time Machine has already flagged your backups *.sparsebundle file as bad. As a first step, we need to undo this:

chflags -R nouchg /Volumes/<name of network share>/<name of backup>.sparsebundle

Make sure to replace <name of network share> and <name of backup> accordingly and give it a while to finish.

Step 2. Mounting your backup

Next, we need to mount your backups *.sparsebundle file to enable your system to run a few checks on it:

hdiutil attach -nomount -noverify -noautofsck /Volumes/<name of network share>/<name of backup>.sparsebundle

his command will return something like this:

/dev/diskX Apple_partition_scheme
/dev/diskXs1 Apple_partition_map
/dev/diskXs2 Apple_HFS

What is important to us is the line containing Apple_HFS or Apple_HFSX(this usually is the last line) which is the device ID followed by the device type. The X will be replaced with a number which will be anywhere between 2 and 6 or even higher. So, you want to take note of the device ID that looks something like /dev/disk2s2 or /dev/disk3s2.

Step 3. Repairing the *.sparsebundle

Now we can finally let OS X do its magic of trying to repair the file. Run the following command after replacing the dummy device ID with your own:

fsck_hfs -drfy /dev/diskXs2

With this kicked of, you may want to go have a coffee or two as this may take anywhere from 15 minutes to multiple hours, depending on the size of your backup and the speed of your network connection.

After the command finished, you’ll either see »The Volume was repaired successfully« or »The Volume could not be repaired«.

Either way, you need to unmount the backup before taking any further steps:

hdiutil detach /dev/diskXs2

Step 4. Finishing touches

If the repair command from the previous step failed, there’s not much you can do about it and your backups are lost for real probably. You should just let Time Machine create a new backup for you.

If it succeeded though, there is a last step we need to take in order to convince Time Machine to keep using the existing backup.

Use the Finder to navigate to the backups *.sparsebundle file and with a right click, choose »Show package contents« to get a look inside. There you’ll find a file called Since Time Machine uses this file to mark bad backups, too, we need to modify it slightly.

Open the file with a text editor of your choice and find the line saying


and remove them completely. Next find the lines


and change them to


Done. You probably want to eject/unmount the network share from your finder and tell Time Machine to do another backup now.

Posted on

IoT Temperature Sensor With ESP8266

Just posted the instruction on how to make IoT temperature sensor with ESP8266 in Instructables.The sensor used is LM35 which connects to Analog AD0 of the ESP8266. The ESP8266 will act as a webserver as well as posting the temperature value to the cloud for external access. Temperature reading is done every couple of minute.


You can check the temperature in my lounge room here.

Posted on

PIC18F2550 development board LCD display library

I just get around to port the LCD display from Arduino library to be compatible with the PIC18F2550 library. I am using the BEEPIC development board which contain the PIC18F2550. The base library I am using is baed on the BOLT open development board.

The result can be seen on the following video. If you would like to download the library please let me know.