the Open Source hardware thread

icebags

Wise Old Owl
Arduino

Alright, several TDF members are on their way to acquire their arduino boards from abroad. And I personally am trying to build one.

If any of you have experience with arduino, kindly share knowledge.

An arduino board can easily be purchased from ebay with pricing from ~500 and above. Arduino Uno boards cost ~1k and they are the current version for low end boards.

Click for Different types of Arduino boards.

Please note that, if you are starting new @ arduino, it is recommended to get a Diecimila / Duemilanove / Uno board. There previous two are outdated while Uno is the current standard. Apart from that, you can also acquire a Leonardo board, that has some spec advantages over Uno [Differences].

If you are familiar with electronics circuit making, you may try to build one for yourself :
(1) Arduino Single-Sided Serial Board.
(2) Diecimila. - This would be difficult to make though, you will have to solder a SMD IC FT232 on board, and will need to design the pcb layout yourself.

Things to remember when making / purchasing an Uno board:

The main microcontroller is either of ATmega8, ATmega168, ATmega328p. They have ~8KB,16KB,32KB of flash memory for porgram & bootloader storage.

If making a board, make sure to purchase the atmega micro controller chip that comes with bootloader preloaded (available in ebay), if not, then you will need an AVR programming device like USBAsp (available at ebay as well). Getting an USBAsp is good idea, so that u can later flash the bootloader of chip.
However, an arduino board can be flashed with another arduino board too, if you don't have the AVR programmer.

Diecimila / Duemilanove / Uno are all compatible design, so, these boards can be flashed with Uno bootloader if required.

I have not acquired the board yet, but those who have, please share ideas, guides and share some of your own projects thinking to undertake or already worked upon. :oops:

Do it yourself :
Arduino - Setting up an Arduino on a breadboard

u need to buy a pre bootloaded atmega8/168/328p microcontroller from ebay and also get the other components locally or online. (skip the bootloading process in the above link for a prebootloaded chip)

interfacing with computer can be done through the FT232L usb breakout board (available in ebay.in) or through serial port, via a MAX232 chip.

and voila! once u put all these together, u r ready to download C/C++ sketches into ur new arduino.
 
Last edited:
OP
icebags

icebags

Wise Old Owl
@quagmire thanks for the list. don't forget to post pics if u have already done some projects. :D
 

gopi_vbboy

Cyborg Agent
1.I suggest we rename thread to open source hardware thread and move to open source section.....wat to do you say guys?

might be apt to discuss arduino, beaglebone,rasberry pi etc open source hardware projects on single threads.



2.Heres a comparision of OSH boards for info
comparison-arduino-uno-beaglebone-raspberry-pi.png


source
 
OP
icebags

icebags

Wise Old Owl
^If people decide to do that, please include "-Arduino/Rasp-Pi/BeagleBone" to thread title, so that people easily understand whats going on inside. :)
 

quagmire

Allllright !
I agree with gopi_vbboy and icebags. +1 to 'Open source hardware'.

BTW I'm planning to buy a BeagleBone Black ( probably import for 45$ ) soon :D
 

gopi_vbboy

Cyborg Agent
^If people decide to do that, please include "-Arduino/Rasp-Pi/BeagleBone" to thread title, so that people easily understand whats going on inside. :)

sure as op ..you can pm any moderators (in green) to do that...its your call...i don't have permissions to do that
 
OP
icebags

icebags

Wise Old Owl
thanks for the link, but instead of posting ready made projects, why don't share some of your own projects thinking to undertake or already worked upon.
37.gif


that will be more interesting to see.
 
Last edited:

d3p

PowerHouse
thanks for the link, but instead of posting ready made projects, why don't share some of your own projects thinking to undertake or already worked upon.
37.gif


that will be more interesting to see.

Yes, i too agree there.

Why not we post our own projects & details ??

Anyway eagerly waiting to try my hands on this. Meantime bought couple of things from local electronics store.

1). Soldering Station [Cheap one], liquid flux & Solder.

2). Few Resistors, Capacitors & Diodes.

3). Breadboard

4). Wire Stripper & Cutter

5). 16x2 lcd.

I hope by next weekend, i can post some crazy screenshot with my 8051 board & later with Ardruino
 
OP
icebags

icebags

Wise Old Owl
^ its is amazing how ppl come up with those awesome ideas. just give them the tools to pley and they will make wonders. :)
 
OP
icebags

icebags

Wise Old Owl
^ interesting. but where to find a beaglebone black at suitable price ? saw one @ ebay @4.5k but is that a proper price ? raspberry seems a bit cheaper.

realtime monitoring from pc is really a +point of beagle, what kind of web based programming platform u think is suitable for a black (it being the server and to be accessed from pc via lan) ? that can show the beagle port telemetry with numeric data as well as in graph format, while being lightweight.


Yes, i too agree there.

Why not we post our own projects & details ??

Anyway eagerly waiting to try my hands on this. Meantime bought couple of things from local electronics store.

1). Soldering Station [Cheap one], liquid flux & Solder.

2). Few Resistors, Capacitors & Diodes.

3). Breadboard

4). Wire Stripper & Cutter

5). 16x2 lcd.

I hope by next weekend, i can post some crazy screenshot with my 8051 board & later with Ardruino

hey ! what happened to pics u promised ? :eek:
 

Mr.Kickass

In the zone
Its okay as long as you don't have much content but once this thread begins to grow a separate sub-thread for each uC is a must.

I'll pick the Arduino. Needs only C++. Ready to use libraries. Excellent community support. Can even use AVR tools with Arduino as they all have the ATmega328. Though I worked on ATmega16.
 
Last edited:
OP
icebags

icebags

Wise Old Owl
^arduino is going to be popular because its cheap, easily obtainable, but dont know about others.
some members ordered arduino development boards from abroad and we are expecting to do some projects together, when they arrive.

meanwhile i received the atmega328 microprocessor from ebay @ ~320/-, that came with uno bootloader. going to set it up on a breadboard. also collected other components locally and prepared an usb cord for +5v supply. serial port interface is pending, & when it's done i will post. :D

if anyone more is interested, may check this link and post back any query in mind: Arduino - Setting up an Arduino on a breadboard
 

gopi_vbboy

Cyborg Agent
I have many doubts ppl ..sry asking due to high curiosity ..answer if u can help me..

In case of a embedded system lets say beagle-board or a custom board made from it using ARM-

1.How does linux know that a we use a particular processor and have connected peripherals in a particular way?
Say i have connected SDCARD controller to some pins.
How does linux know its at that particular pins ?
I means how are pins mapped to registers of particular peripherals?
It seems we need something called board support package like bios.Who gives this?Manufacturer?

If i compare with PC i get confused.In pc we have BIOS and we just use mass storage to boot linux and install.
PC motherboard are designed by vendor.But if i want to start with custom design of beagle, how to i add linux to it?

2.After some research, it appears that the a OS has to be ported to the board architecture which loads to RAM by bootloader.
Additionally we need to write device driver if any for custom peripherals.How do we write boot loader to a
custom board design rather than beagle board?How Device driver written or we optimize existing ones?

3.Is there any good book to understand these things about Linux+ARM os porting+ Device drivers+Hardware design?
I have good basics in EE and familiar working on pic microcontroller.So looking for resources.

Thanks in advance friends
 
OP
icebags

icebags

Wise Old Owl
^ supported linux comes with drivers for the beaglebone arm chip and architecture, there is no other way it would have worked.
^the attached sd card socket is already mapped for os loading purposes, it is the mass storage drive recognized by by the i/o chip interfacing bus.
^u can not attach sd card to any random input/output ports - be they analog or digital, if u attach, u will have to program it for those particular ports.

^if u want to write custom boot-loaders, u have to study the processor manual, write a c program i guess, initializing the processor registers, referencing the ram addresses etc, & then burn the hex code of the c program to the boot rom chip on board, by mean of a programmer board/hardware specific for that particular chip - this is true for arduino, i don't know about beagle, but they should be same.

^google & youtube are ur best book there.
 

Mr.Kickass

In the zone
I have many doubts ppl

In case of a embedded system lets say beagle-board or a custom board made from it using ARM-

1.How does linux know that a we use a particular processor and have connected peripherals in a particular way?
Say i have connected SDCARD controller to some pins.
How does linux know its at that particular pins ?
I means how are pins mapped to registers of particular peripherals?
It seems we need something called board support package like bios.Who gives this?Manufacturer?

This is more of an OS related question. You'll need to study the Linux OS by some standard author to understand memory calls, interrupts... I'm not the best person to answer that.

Your bios in case of a microcontroller(uC) is the bootloader. It sits right inside the ROM memory(specific to the device so refer to the datasheet) and it can access any of inbuilt peripherals like USB, USART, CAN, SPI, etc. to exchange the data and this capability is used to write the flash memory. If it is not found then the program counter will point to the memory location 0000H(for example in ATmega16) and start executing the instructions which are written in the memory of the device.

If i compare with PC i get confused.In pc we have BIOS and we just use mass storage to boot linux and install.
PC motherboard are designed by vendor.But if i want to start with custom design of beagle, how to i add linux to it?

The PC has a different architecture.

Again, OS centric question. You should ask in Beagleboard forums probably they have a better understanding of the platform. One of the members seems to have a similar query where he wants to replicate a design on his own. Though at this stage you won't understand much of it unless you have a working knowledge of Linux but still, just have a look.

Cloning Beaglebone

2.After some research, it appears that the a OS has to be ported to the board architecture which loads to RAM by bootloader.
Additionally we need to write device driver if any for custom peripherals.How do we write boot loader to a
custom board design rather than beagle board?How Device driver written or we optimize existing ones?

There is no need to write a bootloader to a custom design or even the manufacturer shipped official Beagleboard. You should be more concerned with burning the bootloader than making it, though you can provided you know the Linux Kernel thoroughly. Making a bootloader is more of a specialist subject so publicly you won't find a standard text. You'll have to dig.

3.Is there any good book to understand these things about Linux+ARM os porting+ Device drivers+Hardware design?
I have good basics in EE and familiar working on pic microcontroller.So looking for resources.

Thanks in advance friends

I have books on the subjects but forgot to bookmark them :D

I will however mention the standard references so you know what to look for however, you'll need to hunt for illegal sources as they are prohibited from posting here on this forum :twisted:

This should be the ideal starting point
Operating Systems : Internals and Design Principles 6 Edition

Step 2
Linux Kernel Development

A great free book :D
Linux Kernel in a Nutshell

Step 3: This is where you are on your own now
Writing device drivers in Linux: A brief tutorial

Don't get turned off by the funny title, the author is a post graduate in CS from IISC :p
Device Drivers, Part 1: Linux Device Drivers for Your Girl Friend

ARM is a different story, but Linux still applies

Start, here
The Definitive Guide to the ARM Cortex-M3
(Probably the most popular text)

Then this
ARM System-on-Chip Architecture

I have both books with me but those links are now probably taken down. I had used blackhat methods to get them :twisted: so if you need it badly then I'll upload it to some file host for you to download but the first book on ARM is easily available. The second one will be, if you google hard enough.

Now, I hope you have something to read this weekend :D

^google & youtube are ur best book there.

The simplest and most effective answer. Even beats my own :-x
 
Top Bottom