The NetBSD Toaster 229
kv9 writes "Finally after many, many yeas of running on everything-but-your-toaster NetBSD is there too. Technologic Systems has made a toaster that is controlled by NetBSD and powered by one of their ARM boards, the TS-7200. Everything is controlled through sysctl, there are LEDs that show you what is going on, the toaster can play MP3s while it fries the bread and even has Apache/PHP installed. More information in the press release [pdf warning] and on this running NetBSD on the TS-7200 page."
Re:Oh man, a toaster?! (Score:2, Informative)
Re:Yeah, but... (Score:2, Informative)
Myth (Score:5, Informative)
Re:Yeah, but... (Score:3, Informative)
BCBs can also result from using special components such as LERs (Light Emitting Resistors) and SEDs (Smoke Emitting Diodes).
Re:Already Dead (Score:5, Informative)
TFA salvaged from MoFos cache:
It has long been regarded that the UNIX-like OS NetBSD is portable to every type of machine except perhaps your kitchen toaster. Technologic Systems, however, has conquered this last frontier. Using one of its rugged embedded TS-7200 single-board computers housed inside the empty space of a standard 2 slice toaster, Technologic Systems has designed a functional NetBSD controlled toaster.
The toaster on display now in the NetBSD booth at the LinuxWorld Expo in San Francisco, is as high-tech as they come. This toaster features a 4 line LCD, USB keyboard, 10/100 ethernet port and a RS232 serial port for the external console. The toaster's internal circuit boards have been bypassed and routed through the CPU board allowing NetBSD complete control over the toaster's features. A keyboard connects through a USB port on the side of the toaster and the 4x40 LCD displays a NetBSD/toaster login prompt. The burner element is also controlled by the TS-7200 via an internal relay. Unlike previous NetBSD toasters which were nothing more than a glorified PC case-mod, this toaster can actually toast bread!
NetBSD was ported to the toaster by Jesse Off (an engineer at Technologic Systems). When asked details about the week-long effort, he replied, "NetBSD is well laid out for this type of embedded application development. I was most worried about physical things such as fitting the hardware inside the case and the board being able to survive 60 seconds at a time a half centimeter away from an 800 watt burner element. A regular PC can't even survive room temperature without heatsinks and fans, and the TS-7200 has neither." The end-design has no thermal issues and will not let the user toast if things start getting close to the temperature margins of the internal components measured by the onboard temperature sensor.
When asked what he thinks of the NetBSD operating system, Off replied, "Well, I'm skewed. I have been a small-time NetBSD developer on and off the last 4 years. NetBSD's single no-frills high quality source tree is a great starting point for bringing up an embedded application. The API's have a great power-to-complexity ratio and are coded with great wisdom as well as great intellect. For NetBSD though, being wiser is definitely the greater virtue."
When asked what the point of this exercise was, company president Bob Miller chuckled and had this to say: "Well, we're definitely not planning on going into full production with this. The idea was to follow through on a process most of our customers are using everyday in their own embedded designs using our boards. Though customers are not likely using toasters in their designs, they are likely encountering many of of the same issues such as GPIO control of hardware, custom software design/modification and dealing with tight spaces and high temperatures."
So what exactly is inside this toaster for a computer to read/control? For one, there is a small magnetic latch that holds your toast down against the spring action after you press down. To engage that latch, one needs to know when the user is pressing the bread into the toaster which the TS-7200 reads with another sensor. There is a browning level knob (a potentiometer) which the TS-7200 reads with an analog converter input. The front panel also contains 4 bright red LEDs and 5 push-buttons which appear to the system as a 5-key keyboard. The NetBSD LCD driver presents a standard VT100 text mode console that both the USB keyboard and 5-key front-panel are connected.
All peripherals had NetBSD drivers w
Re:Warning? (Score:2, Informative)
Re:The obligatory question (Score:5, Informative)
More pics (Score:3, Informative)
(If it isn't all there yet, give it a few minutes to upload.)
Re:So... (Score:5, Informative)
Pictures I took: http://wickedways.org/articles/linuxworld2005/ [wickedways.org]
Here's what's available to a script from sysctl:
# sysctl -a | grep hw.t
hw.toaster0.led0_duty = 1 hw.toaster0.led0_width = 8
hw.toaster0.led1_duty = 2 hw.toaster0.led1_width = 16
hw.toaster0.led2_duty = 4 hw.toaster0.led2_width = 32
hw.toaster0.led3_duty = 8 hw.toaster0.led3_width = 64
hw.toaster0.magnetic_latch = 0 hw.toaster0.burner_element = 0
hw.toastersensors0.burnlevel_knob = 1593 hw.toastersensors0.cancel_key = 0 hw.toastersensors0.cancel_key_ticks = 13 hw.toastersensors0.toast_key = 0
hw.toastersensors0.toast_key_ticks = 4 hw.toastersensors0.bagel_key = 0
hw.toastersensors0.bagel_key_ticks = 6
hw.toastersensors0.warm_key = 0 hw.toastersensors0.warm_key_ticks = 7 hw.toastersensors0.frozen_key = 0 hw.toastersensors0.frozen_key_ticks = 10 hw.toastersensors0.toast_down = 0 hw.toastersensors0.toast_down_ticks = 50965 hw.tspld0.board_temp = 40250000 hw.tspld0.board_temp_5s = 40290128
hw.tspld0.board_temp_30s = 40477805
(The board_temp are the temperature in C, multiplied by 10^6, so right now it's at 40.25 degrees C.)
#!
sysctl -w hw.toaster0.magnetic_latch=1
# user presses toast lever down now...
sysctl -w hw.toaster0.burner_element = 1
sleep 60
sysctl -w hw.toaster0.burner_element = 0
sysctl -w hw.toaster0.magnetic_latch=0
echo "Toast is done!"
Only root has write access to hw.toaster0.burner_element!
The real script uses trap to prevent the sleep line from being interrupted, since that could result in a fire!
Just FYI:
# dmesg
NetBSD 3.0_BETA (TS7200) #57: Mon Aug 8 00:34:41 MST 2005
joff@sayan.wifi.home:/home/joff/NetBSD-toaster/obj
le/TS7200
total memory = 32768 KB
avail memory = 28196 KB
mainbus0 (root)
cpu0 at mainbus0: ARM920T rev 0 (ARM9TDMI core)
cpu0: DC enabled IC enabled WB enabled EABT
cpu0: 16KB/32B 64-way Instruction cache
cpu0: 16KB/32B 64-way write-back-locking-A Data cache
epsoc0 at mainbus0: Cirrus Logic EP93xx SoC rev E0
epsoc0: fclk 200.03 Mhz hclk 100.01 Mhz pclk 50.01 Mhz
ohci0 at epsoc0 addr 0x80020000-0x80020fff intr 56
epclk0 at epsoc0 addr 0x80810000-0x8081008f intr 35
epe0 at epsoc0 addr 0x80010000-0x8001ffff intr 39
epe0: MAC address 00:d0:69:4f:af:76
ukphy0 at epe0 phy 1: Generic IEEE 802.3u media interface
ukphy0: OUI 0x0010a1, model 0x0021, rev. 9
ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
epcom0 at epsoc0 addr 0x808c0000-0x808c0fff intr 52
epcom1 at epsoc0 addr 0x808d0000-0x808d0fff intr 54
epcom1: console
ohci0: OHCI version 1.0
usb0 at ohci0: USB revision 1.0
uhub0 at usb0
uhub0: Cirrus Logic OHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 3 ports with 3 removable, self powered
tspld0 at mainbus0: Technologic Systems TS-7200 rev C, features 0x1
tspld0: jumpers 0x7
tspld0: board temperature 21.93 degC (71.48 degF)
isa0 at tspld0: PC/104 expansion bus
tsdio0 at isa0 port 0x100-0x107: Technologic Systems TS-DIO24
toasterlcd0 at tsdio0: 4x40 text-mode hd44780 LCD
toasterlcd0: using port C, bits 0-7 as DB0-DB7
toasterlcd0: using port B, bits 0-3 as RS, WR, EN1, EN2
wsdisplay0 at toasterlcd0 kbdmux 1
wsmux1: connecting to wsdisplay0
toaster0 at ts
Re:Myth. -- not really. (Score:1, Informative)
Status of site (Score:2, Informative)