Metaboard/2010 activities: Unterschied zwischen den Versionen

aus Metalab Wiki, dem offenen Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten.
Zur Navigation springenZur Suche springen
(link to documentation of last hacksession)
 
(20 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 29: Zeile 29:
 
* Measuring water level in indoor fountains
 
* Measuring water level in indoor fountains
 
* wireless or opto-coupled USB-to-USB keyboard/mouse or serial device
 
* wireless or opto-coupled USB-to-USB keyboard/mouse or serial device
 +
** could double as a replacement for serial terminal / null modem connections (violates USB specs, but should work with Linux)
  
 
== Implementation ==
 
== Implementation ==
Zeile 35: Zeile 36:
 
* PCB implementation: single sided PCB with no SMD components
 
* PCB implementation: single sided PCB with no SMD components
 
* Board base: [[metaboard]] (at least for the base station)
 
* Board base: [[metaboard]] (at least for the base station)
* RF communication: ISM band using [http://www.hoperf.com/rf_fsk/rfm12.htm HopeRF RFM12]
+
* RF communication: ISM band using [http://www.hoperf.com/rf_fsk/rfm12b.htm HopeRF RFM12B]
 
* Computer communication: [http://www.obdev.at/products/vusb/index.html V-USB] (works with metaboard, is cheap and much cooler than relying on serial port emulation)
 
* Computer communication: [http://www.obdev.at/products/vusb/index.html V-USB] (works with metaboard, is cheap and much cooler than relying on serial port emulation)
 
* Layouting software: [http://www.gpleda.org/ gEDA] seems to be the best free schematic and PCB editor
 
* Layouting software: [http://www.gpleda.org/ gEDA] seems to be the best free schematic and PCB editor
 +
* Board voltage: 3.3V (originally 5V, but 3.3V gives cleaner USB communication and should save power in the sensor units)
 +
* Flashing sensors using serial interface using the [[Metaboard/2010 activities/6-pin auto-detecting programming]]
 +
* Power supply: "18650" (z.B. von [http://www.dealextreme.com dealextreme])
 +
 +
=== Random implementation detail notes ===
 +
 +
* Some AVR boards have onboard temperature sensors that don't block an external pin. Given sufficiently low power output and sensor precision, those could be used for monitoring room temperature.
 +
* The RFM12B modules feature low voltage detection. This could save some analog circuicy and pin on boards fed off battery w/o a voltage regulator.
  
 
== Parts ==
 
== Parts ==
  
 
=== for the base board (metaboard + DMX + RF12) ===
 
=== for the base board (metaboard + DMX + RF12) ===
 +
 +
''this is partially outdated due to the change to 3.3V board voltage''
  
 
* a 5V voltage regulator (7805)*
 
* a 5V voltage regulator (7805)*
Zeile 65: Zeile 76:
  
 
* [[Metaboard/2010 activities/Hacksession 2010-09-17]]: bootstrapped a an ATmega168 via an existing arduino on a breadboard
 
* [[Metaboard/2010 activities/Hacksession 2010-09-17]]: bootstrapped a an ATmega168 via an existing arduino on a breadboard
 +
* [[Metaboard/2010 activities/Hacksession 2010-09-20]]: arduino style programming on the breadboard
 +
* [[Metaboard/2010 activities/Hacksession 2010-10-14]]: LEDs are important
 +
* [http://sense.reox.at/usbbb/prototype/ 2010-10-29]: built first (and working!) version of the usbBB, a USB connector for breadboards which is our first attempt in PCB milling
 +
* [http://sense.reox.at/usbbb/prototypev3/ 2010-11-10]: Prototype v3 (without USB Port and LF33CV because just ordered them)
 +
* [http://sebastian.arttis.net/main.php?g2_itemId=10481 2011-03-15]: Hacking arround with [[HP54645D_Mixed-Signal_Oscilloscope]] and see whats going on at sck, sdi, sdo and irq
 +
* [http://sense.reox.at/rfm12/ 2011-03-20]: WOOOHOOO got something over the air, used mostly code from [http://www.tahina.priv.at/electronics.html#index2h1 here]... also: datasheet gone wrong... port with ANT marking is in real GND, ANT Port is next to it!
 +
* 2011-03-25: If it works at 5V and doesn't at 3.3V, just try adding a startup delay. Hacking on based on [http://jeelabs.net/projects/cafe/repository/show/RF12 jeelabs' RF12 library] now.
  
 
== Resources ==
 
== Resources ==
Zeile 78: Zeile 96:
 
* [http://www.embedds.com/interfacing-rfm12-transceiver-module/ RFM12 transceiver module]: a board with ATmega8, with the RFM12 completely connected (see [http://comwebnet.co.funpic.de/RFM12/Projekt-RFM12-Tranceiver.pdf schematics])
 
* [http://www.embedds.com/interfacing-rfm12-transceiver-module/ RFM12 transceiver module]: a board with ATmega8, with the RFM12 completely connected (see [http://comwebnet.co.funpic.de/RFM12/Projekt-RFM12-Tranceiver.pdf schematics])
 
* [[Benutzer:Mihi/Programming-attiny45-mit-arduino]]: programming arduinos with arduinos
 
* [[Benutzer:Mihi/Programming-attiny45-mit-arduino]]: programming arduinos with arduinos
 +
* The vKeyBoard mentioned on [http://pjrc.com/teensy/projects.html the Teensy project page] seems to do exactly the USB-to-USB trick described above, but using two [http://pjrc.com/teensy/ Teensy] boards, which use an ATMega32U4 each. These chips might even provide a way to get the desired functionality in one chip by using vUSB to get a second USB port and optocouplers USB-side, but they are rather difficult to work with unless preassembled in a teensy.
  
 
=== Physical resources ===
 
=== Physical resources ===
Zeile 85: Zeile 104:
 
=== Other Links ===
 
=== Other Links ===
  
 +
* AVR
 +
** [http://arduino.cc/en/uploads/Hacking/Atmega168PinMap2.png Arduino/ATmega168 pinout]: Labeled schematic of ATmega168 with complete pin names and arduino references (pin mapping)
 +
** [http://www.engbedded.com/fusecalc/ AVR fuse calculator]: A web application to choose fuse settings, includes avrdude output
 +
** [http://en.wikibooks.org/wiki/Atmel_AVR wikibooks on Atmel AVR]: Good introduction and overview of features
 +
** [http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf ATmega168 datasheet] as linked from [[Bauteilsortiment]]
 
* RFM12:
 
* RFM12:
** [http://www.hoperf.com/rf_fsk/rfm12.htm RFM12 supplier website]
+
** [http://www.hoperf.com/rf_fsk/rfm12b.htm RFM12B supplier website]
 
** [http://blog.strobotics.com.au/2008/06/17/rfm12-tutorial-part2/ RFM12 tutorial]
 
** [http://blog.strobotics.com.au/2008/06/17/rfm12-tutorial-part2/ RFM12 tutorial]
 
** [http://news.jeelabs.org/2009/05/06/rfm12-vs-rfm12b-revisited/ RFM12 vs RFM12B]: the differences
 
** [http://news.jeelabs.org/2009/05/06/rfm12-vs-rfm12b-revisited/ RFM12 vs RFM12B]: the differences
 
** [http://www.mikrocontroller.net/articles/RFM12 RFM12 on mikrocontroller.net]: german description of RFM12 commands
 
** [http://www.mikrocontroller.net/articles/RFM12 RFM12 on mikrocontroller.net]: german description of RFM12 commands
 
** [http://www.mikrocontroller.net/articles/AVR_RFM12 AVR RFM12 on mikrocontroller.net]
 
** [http://www.mikrocontroller.net/articles/AVR_RFM12 AVR RFM12 on mikrocontroller.net]
 +
** [http://olek.tk/en/rfm12.php olek.tk's RFM12 tips], including the magical FE reset command
 
* DMX:
 
* DMX:
 
** [http://www.maxim-ic.com/datasheet/index.mvp/id/1111 Maxim RS485 controllers]
 
** [http://www.maxim-ic.com/datasheet/index.mvp/id/1111 Maxim RS485 controllers]
Zeile 103: Zeile 128:
 
* General Arduino related stuff
 
* General Arduino related stuff
 
** [http://www.ladyada.net/library/arduino/bootloader.html Arduino Hacks: Bootloader Hacks]: maybe this could show how to integrate the bootloader with the program so we can upload new software from USB w/o physically touching the device
 
** [http://www.ladyada.net/library/arduino/bootloader.html Arduino Hacks: Bootloader Hacks]: maybe this could show how to integrate the bootloader with the program so we can upload new software from USB w/o physically touching the device
 +
* USB:
 +
** [http://www.beyondlogic.org/usbnutshell/usb1.shtml USB in a NutShell]: a good summary of the USB spec
 +
* 18650 / LiPo charging:
 +
** [http://batteryuniversity.com/learn/article/charging_lithium_ion_batteries battery university on Li-Ion batteries]
  
 
* Metalab projects:
 
* Metalab projects:
Zeile 111: Zeile 140:
  
 
[[Kategorie:Projekte]]
 
[[Kategorie:Projekte]]
[[Kategorie:WhateverLab]]
 
 
[[Kategorie:Arduino]]
 
[[Kategorie:Arduino]]

Aktuelle Version vom 21. Januar 2013, 22:28 Uhr

As of September 2010, reox and chrysn are about to build some microcontroller stuff, partially based on the metaboard, and centered around home automation.

People who want to participate are invited to join, even if there is just a small overlap between the things we build!

Some current files are in gitorious (clone using "git clone git://gitorious.org/metaboard/metaboard.git metaboard").

Goals

  • Physical goals:
    • Build remote sensors that monitor room parameters; those should be as cheap as possible (<10€)
    • Build a base station for those sensors that can be used both for receiving and programming the sensors
    • Build a version of said base station that can also control that can emit DMX signals
  • Learning goals:
    • Planning a physical computing device from standard components
    • Physically creating the devices
  • Community interaction goals:
    • Document the learning experience
    • Enhance tools used
    • Create a version of metaboard that can be edited using free tools

Random extension ideas

  • IR transceiver for integration with TV or universal remotes
  • Measuring water level in indoor fountains
  • wireless or opto-coupled USB-to-USB keyboard/mouse or serial device
    • could double as a replacement for serial terminal / null modem connections (violates USB specs, but should work with Linux)

Implementation

  • Microcontrollers: Atmel AVR (ATmega and ATtiny; chosen for availability of existing infrastructure (gcc, arduino libraries) and widespread use in similar applications)
  • PCB implementation: single sided PCB with no SMD components
  • Board base: metaboard (at least for the base station)
  • RF communication: ISM band using HopeRF RFM12B
  • Computer communication: V-USB (works with metaboard, is cheap and much cooler than relying on serial port emulation)
  • Layouting software: gEDA seems to be the best free schematic and PCB editor
  • Board voltage: 3.3V (originally 5V, but 3.3V gives cleaner USB communication and should save power in the sensor units)
  • Flashing sensors using serial interface using the Metaboard/2010 activities/6-pin auto-detecting programming
  • Power supply: "18650" (z.B. von dealextreme)

Random implementation detail notes

  • Some AVR boards have onboard temperature sensors that don't block an external pin. Given sufficiently low power output and sensor precision, those could be used for monitoring room temperature.
  • The RFM12B modules feature low voltage detection. This could save some analog circuicy and pin on boards fed off battery w/o a voltage regulator.

Parts

for the base board (metaboard + DMX + RF12)

this is partially outdated due to the change to 3.3V board voltage

  • a 5V voltage regulator (7805)*
  • capacitors: 100nF, 22pF (2x)
  • clock crystal: 16MHz (for other frequencies, check the V-USB hardware considerations)
  • diodes: 1N4004*, 3V6 (2x)
  • jumper pads of length 3 (2x) and 2
  • "negative jumper pads" (or whatever they are called) of length 2, 4, 6 and 8 (2x)
  • polarized capacitors: 10µF (2x) (*: 1x)
  • power jack*
  • resistors: 68Ω (2x), 100Ω*, 1.5kΩ, 1MΩ
  • RS485 driver: SN78176a*
  • push button
  • ATMega168 (or 328)
  • RFM12 DIP*
  • USB-B connector
  • DIP sockets: 8*, 28
  • socket for RFM12 DIP (2mm 2x4)*

The components marked with * are optional in the first stage of building the board, which will be about getting to know V-USB.

Current status

Resources

Existing similar solutions

(We could probably directly go for some of them, but doing it all ourselves gives more flexibility and a learning experience.)

Physical resources

We hope to be granted access to Metalab / WhateverLab resources for physically creating the boards (PCB etching (or milling?), solder station, parts repository / order collections), and will approach metalabbers as soon as we know what we want at all.

Other Links