Dump data from NAND flash with Arduino

 Author:   Posted on:    No comments

A while ago I decided to see if it is possible to read data from a NAND flash memory chip using an Arduino. Although I found out it is possible, it is not quite practical. The ATmega328 Arduino is way too slow to read and transfer large amounts of data. Nevertheless, dumping data is possible. But for common usage, such a slow and limited microcontroller shall not be used for this purpose.

In the previous posts I wired the NAND to a 3.3V Arduino and wrote a basic sketch to communicate with the flash chip and read its ID register. Now I will attempt to read data from the memory and transfer it to PC over serial port. I must say I have no prior experience with NAND memory chips and this is the first time I’m ever attempting this.

Dump data from NAND flash with Arduino

Read NAND Flash device signature with Arduino

 Author:   Posted on:    No comments

NAND Flash chips are widely used non-volatile memory devices. They have high storage capacity, fast access time and are reliable, usually being able to withstand 100,000 erase/program cycles. Such chips are available with parallel or serial interface (commonly SPI). While the latter can be easily interfaced to any SPI port and can be read/programmed even by slow microcontrollers, parallel chips are faster and require more data lines (connections) to host microcontroller.

In the previous post I described the way I connected a NAND flash to Arduino (a Pro mini compatible board running at 3.3 V). This time, I'll deal with the limitation of the small MCU and read the NAND signature.

Read NAND Flash device signature with Arduino

Attempts at reading parallel NAND Flash with Arduino

 Author:   Posted on:    No comments

NAND Flash chips are widely used non-volatile memory devices. They have high storage capacity, fast access time and are reliable, usually being able to withstand 100,000 erase/program cycles. Such chips are available with parallel or serial interface (commonly SPI). While the latter can be easily interfaced to any SPI port and can be read/programmed even by slow microcontrollers, parallel chips are faster and require more data lines (connections) to host microcontroller.

Having an old DSL modem which cannot be flashed with a locked bootloader and unavailable JTAG port I unsoldered its NAND flash. I do not own a parallel memory programmer and I do not intend to buy one for the sole purpose of dumping useless data from this flash. So, I attempted to interface this memory to what I have. At first it seemed it has too many pins to wire it to a common ATmega328p Arduino. But the datasheet revealed something else.

Attempts at reading parallel NAND Flash with Arduino

Bargraph timer, an unusual LM3914 application

 Author:   Posted on:    No comments

LM3914 and LM3915 are dot/bar display drivers used to create basic displays of analog voltage levels. They are widely used in VU-meters and various voltage indicators (for batteries). The LM3914 senses an analog voltage and drives a number of LEDs depending on the level of this voltage. Knowing this, we can provide this voltage from a discharging capacitor. Depending on the resistive load which discharges the capacitor, the time required to turn off all LEDs can be set to specific intervals. This is how a timer is made using LM3914 (or LM3915).

This IC contains a constant current source for LEDs and an adjustable voltage reference. The following circuit uses LM3914 internal current source to charge the capacitor. To be able to modify countdown time, a potentiometer is used to discharge the capacitor. When the last LED is off two opamps drive a relay. The two opamps are part of the LM358 integrated circuit and one of them is used, in a similar manner, with a capacitor that is charged/discharged to provide an optional turn-off time for the relay. By setting a jumper you can choose between relay always on after time is up or relay on for an adjustable amount of time.

LM3914 countdown timer built on PCB

LM3914 countdown timer built on PCB

Volumetric sensor (broken window or opened door alarm)

 Author:   Posted on:    No comments

The following device can detect sudden small air pressure changes in a room caused by opening a door or breaking a window. It is therefore useful to automate lights or as alarm. Although it uses as detector a common electret microphone, the circuit does not react to sound. Used as an alarm, it will not trigger while you are in the room, unlike infrared and ultrasound movement detectors which need to be deactivated when you are home.

I found this circuit in an old electronics magazine and I decided to build it without expecting too much from a microphone based air pressure sensor. The circuit is purely analog, without microcontrollers. Yet, as I found out it does its job very good. Microphone signal is filtered and amplified using common opamps and a couple of 555 timers keep the relay activated for an adjustable amount of time.

Built volumetric sensor

Built volumetric sensor

Making your printed circuit boards with PCBWay

 Author:   Posted on:    No comments

I'm quite satisfied with the PCBs I can make at home using the toner transfer method. So far, I have made PCBs for through hole devices as well as PCBs for surface mounted devices. My results are acceptable for tracks as thin as 0.3 millimeters. But there is another issue I'm having with the toner transfer method. When I apply the iron to heat the toner, the paper warps and dilates. Not too bad though. I can still solder bigger IC capsules. But what about a double sided PCB? I found it totally impossible to align top with bottom pads across the board. Until now I tried my best to keep all designs single sided by adding wire jumpers where needed.

Yet when it comes to double sided PCBs or even more than two layer PCBs you need to get them professionally manufactured. Even with single sided PCBs when you want them to look professionally built or you need more pieces the right choice is a manufacturing service. I decided to try the PCB manufacturing services of PCBWay, a Chinese company which can manufacture PCBs and ship them worldwide at good prices.

PCBs ordered from PCBWay

PCBs ordered from PCBWay