2013. június 30., vasárnap

New (sub)Project: Kinetis Development Platform

I'm planing to develop a new device. It will be some kind of widely usable serial LED display (with enormous amount of capabilities). I started to build the first version based on my regular MSP430 platform. Later I realized that the number of the I/Os of the DIP20 package will not enough. I tried to switch to the TSSOP-28 package, but both of the boards I soldered was failing (Because of the poor design of the breakout board and my SMD soldering skills. I had only two pieces of MSP430G2553 in TSSOP package in that time).
I tried to get new MCUs from the market and realized that it is not so easy here in Hungary in small quantities (or I get a really high shipment cost).
In addition the solution what I'd like to develop could require DAC and the MSP430 value line has no integrated DAC.
The two factors above and my hunger to learn additional MCU platforms lead me to switch this development effort to a different platform. My choice fell to FreeScale Kinetis KL05 series ARM Cortex-M0 MCU.
I bought the Freescale FRDM-KL05Z development platform for it.
At that time I realized that it has not enough I/O pins, the In-Circuit programmer connector has 1.27 mm ... what has high cost. There come the decision to create a development board what has the following parameters:
- Use 2.54 mm programming header
- Independent power source
- LQFP-48 form factor MCU
- Fits in the 50x50 Sick of Beige enclosure
- All of the GPIO pins available externally
- No integrated programer. I want to use the FRDM-KL05Z's OpenSDA as programer
I finished the design of the board.

I'll order the PCB from the seeedstudio on the next week (it shoud arrive after my vacation)

2013. június 21., péntek

Sample ordering - Blow a fuse

I'm ordering samples time to time from various semiconductor manufacturers to support some of my design ideas.
I don't know what was the thing (Some LED drivers and a Wi-Fi adapter was ordered) possibly switched on the dangerous switch in the head of the TI people. I got this letter from them:

"Texas Instruments Sample System Notification for Order Number: XXXXXXX

Dear TI Sample Requester:
We are sorry for the inconvenience, but your TI Sample Order is ON HOLD.
Because TI parts are potentially being used by a company in the Defense Industry or in a Space, Avionics, and Defense Application, we require that an End Use Certification Letter be submitted to our Global Export Control team for review and approval.
Please contact us at email address ti_store@ti.com and Request a Copy of TI’s End Use Certification Letter. 

We will help you complete the certificate, get it approved, and release your sample request.

Regards, TI Worldwide Sample Program
"

So I requested the mentioned letter. We will see what happening...

2013. június 19., szerda

Installing Ubuntu on BeagleBone Black

I write this post to collect all of the information needed to get a running Ubuntu configuration on the BBB. It just give a command line UI at the end.
Authentication data for the Ubuntu:
usr: ubuntu
pwd: ubuntu
The process:
1. Put a MicroSD card into an USB reader.
2. Connect an USB hub to the BBB.
3. Connect the MicroSD reader and the cordless desktop receiver to the USB HUB
4. Start the integrated Angstrom Linux
5. Download the Ubuntu Image. The information found here: http://www.armhf.com/index.php/boards/beaglebone-black/
This package is required for the Ubuntu 12.04 LTS:
http://s3.armhf.com/debian/precise/bone/ubuntu-precise-12.04.2-armhf-3.8.13-bone20.img.xz
6. Put the image to the SD card with the following command:
xz -cd ubuntu-precise-12.04.2-armhf-3.8.13-bone20.img.xz > /dev/sda
7. Mount the created filesystem (I forget this so I did it other way). Hopefully the devicefile correct:
mount /dev/sda2 /mnt
8. Copy the image (ubuntu-precise-12.04.2-armhf-3.8.13-bone20.img.xz) to the mounted filesystem somewhere
9. Shutdown the system put the MicroSD card into the MicroSD holder of the BBB.
10. Boot the Ubuntu first time from the SD.
11. Install the Ubuntu into the integrated MMC:
xz -cd ubuntu-precise-12.04.2-armhf-3.8.13-bone20.img.xz > /dev/mmcblk1
12. Shutdown, remove the MicroSD and start from the MMC
The first steps with the new system:
13. First of all you have to put the package management system into order:
sudo apt-get update
sudo apt-get upgrade

14. If you are using other keyboard layout than the default US you can change it:
dpkg-reconfigure keyboard-configuration
15. Change the password of the ubuntu user to something more secure

2013. június 18., kedd

Universal Digital Timer 2. - Project Suspended

I have to suspend this project.
Unfortunately (most probably on my fault) I was not able to succesfully integrate the piezo buzzer into the project. Even the button interface what was working before now not functioning correctly anymore.
These things as such are not give reason to me to suspend the project, but some higher priority projects are front of me (like the Nagios project).

New project: Nagios on BeagleBone Black

Here is my new project. It is not really an embeded project but it is on an embeded platform.
Today I'm using an HP MicroServer in my office as Nagios server. I'd like to change it to a BeagleBone Black what I recently purchased.
The process should be the following:
- Install Ubuntu Server to the BeagleBone (12.04 LTS or 13.04)
- Install nagios
- Move configuration files
- Done

2013. június 13., csütörtök

Universal Digital Timer 1.

I have an oven and a deep fryer at home. Both has the same type of digital timer in it. The timer has a two digit 7 segment display and two buttons with one drawback. It only beep when the time elapsed but unable to switch of the device.
I realized that I need a timer like this for various purposes with switching capability.
Here are the planed usage:
  • Control the deep fryer above
  • Small, desktop timer (it may requires LCD instead of LED display because of the battery operation)
  • Control my (planed) UV lightbox what will used for PCB solder mask developing
  • Soldering station watchdog (I always fear if once I will leave my soldering station switched on unattended. Therefore I'd like to have a watchdog what starts when I put the soldering iron back to the holder and switch of the entire station after five minutes)

The project will be based on an MSP430 value line MCU. Here are the design principles what I will follow:
  • The connections of the MCU should fit in max 20 pins. This gives me the versatility to build the circuit with trough hole or SMD components.
  • Use as few external components as possible. To be honest I don't like to use any external active components except the two transistors driving the display digits.
  • Have an SMD design what fits under the display except the switches and breadboard compatitble.
  • Have external user programing capability through computer interface (most probably UART)
The first two of the principles above also give me a challenge. Lets take the pin count and the desired functions:
  • The use of the MCU itself: take 4 pins (VCC, GND, RST, TEST) these pins are needed all time
  • Two digit 7-Segment display: 10 pins (7 Segment pin, 1 decimal point, 2 digit multiplex pin)
  • External clock crystal: 2 pins
  • PC communication: 2 pins (UART: TXD, RXD)
  • Push buttons: 2 pins
  • External trigger: 1 pin
  • Switch the load: 1 pin
  • Piezo Buzzer (beep at the end of time): 1 pin
Lets count: it makes total 4+10+2+2+2+1+1+1 = 23 pins Ooops!!!
So I've the following choices:
  • Use some kind of GPIO expander (some I2C, SPI based or a simple shift register like 74HC595)
  • Use a 7 Segment deccoder
  • Use the pins smarter
Take the last one:
  • We can't do anything with the MCU own pins. Period. 4 pin left
  • Use the second digit driving transistor as an inverter (driven from the collector of the first transistor). -1 pin. Concept proved. 9 pins left
  • Use internal DCO instead of the crystal. I don't like this concept, so the pins stay. 2 pins left
  • PC communication. Unfortunately no tricks possible here. 2 pins left
  • Push buttons. Multiplex the push buttons from the digit driver transistors and sense them with a single pin. Concept proved. 1 pin left.
  • External trigger. No tricks here. 1 pin left.
  • Switch the load. No tricks here. 1 pin left.
  • Piezo Buzzer: I need only one of the decimal point of the display. What if I connect the buzzer instead of the second DP. Concept. If I can prove it: 0 pin left.

Lets count once more: 4+9+2+2+1+1+1+0  = 20 pin Done!!!

Things are done:
  • Schematics (the work of the buzzer must be proved)
  • Working circuit on breadboard
  • Display multiplex code
  • Debounced button driver
  • The countdown timer (with button setup)

Things what ahead (not necessary in this order):
  • Buzzer code (prove the concept above)
  • Homebrew PCB
  • Writing to the flash in runtime (required to store data came from the PC interface)
  • Serial communication
  • Character based Menu driven UI (inside the MCU)
  • Serial Binary command set (for the desktop UI)
  • Extending the timer code for the programmable functionality (like the watchdog)
  • Desktop UI (most probably in C#)
  • SMD design/PCB ordering
This is the my new project. Any comments suggestions feature requests are wellcome.



2013. június 12., szerda

And it arrived

About a month ago I applied to the NXP's LPC800 simplicity challenge. Two days ago I received a message that I'm selected (among with 500 fellow applicant) to receive the LPC800 mini-board.
Today the DHL come and the board arrived
The challenge ends on 30th August.
My challenge starts here:
1. Create or find something to connect the board above to my computer
2. Setup a toolchain to write code/program the device
3. The biggest one: Find a project what fits to the device and the goal of the challenge. Actually nothing came into my mind.
If you have an Idea what can I do with this, don't hesitate to share with me.

"SoB" and KiCAD

I'm quite impressed by the Dangerous Prototypes enclosures named "Sick of Beige" (sold by SeeedStudio). I use them more and more of my projects. I realized that the it has templates for the Eagle EDA.
Personally I'd like to work in KiCAD instead of Eagle because it has no board size limitation (I'll not pay for the Eagle until I just running hobby projects).
So I decided to create a KiCAD module library for the "SoB" enclosures.
You can use, share, modify freely:
http://files.pakahuszar.hu/KiCAD/SoB.zip

(the picture is just for illustration the library contains all of the available sizes)