There is a new contest at sxlist.com! And this one has 3 ways to win! Are you a HARDWARE wire head? A SOFTWARE guru? or are you the IDEA person? Anything is ok! You can just send us a good idea, or share a circuit or (learn?) PCB design, or show us some cool code.
Prizes will include SX-Keys, SX chips, SXWiz BASIC to ASM code generator, Ethernet demo boards, RS232 level converters, and your name in lights on SXList.com!
In the past, I've set the focus on nearly finished projects (code ready to debug, design finished, etc...) and we have received some really nice entries...
I'd like to move the focus to a slightly less demanding contest and offer several different points of entry:
A) Ideas that match the SX chips well: What application can you think of for which the SX chips are a perfect fit? Something that could be done in a PIC except for the lower clock speed. Something that needs THROUGHPUT (or that involves doing a bunch of slower tasks all at the same time so that one SX could replace several PICs) but doesn't need a lot of RAM or a huge amount of code. An application where the power supply can support the high speed requirements. Here are some examples: http://www.sxlist.com/idea/sx.htm
B) Great Circuits or Printed Circuit Board Design. Have a really killer little circuit that involves an SX? Then you have an entry! But I want to encourage another path here as well: Right now, AutoTraxEDA is GIVEING AWAY the current (first) release of their professional PCB design software: It supports Mult-sheet schematic entry, circuit simulation, rule driven PCB layout, fast autorouting, 3D visualization and Computer Aided Manufacturing tools. WOW! They will be charging for it at some future date, but for now this is a fantastic deal for the little guys. http://www.autotraxeda.com/Purchase/purchase.html Co-incidentally, a PCB manufacturer is giving away PCB panels in return for posting a public design using a compatible processor. SX is ok. See: http://www.sxlist.com/piclist/pcbcontest These are limited to double side, 160x100 mm, solder mask, component print and must follow the guidelines posted at http://www.olimex.com/pcb/techinfo.html but you get an entire panel free and the quality is great! So... Design a PCB using an SX, if you haven't done one before, this is a great opportunity to learn and you can get a fantastic design program FREE. If you win, I'll throw in one or more of the prizes above in addition to your PCBs.
C) Code snippets: Any bit of code that does something better, faster, or that hasn't been published already on the SXList.com site. If you can't publish the entire project, but you have one part that you are especially proud of, share it (and let the world know who you are). Lots of people have published something on sxlist.com and been amazed at the number of questions, thank you's and even, sometimes, yes, actual paying jobs! Come on! You've figured out something that you're jazzed about! Show us what you got! Just starting? No problem: Browse the PICList code library http://www.piclist.com/lib or PICList archive and find some code that you would like to see in an SX. Use the MPASM to SASM code converter: http://www.sxlist.com/cgi-bin/mpasm2sasm2.exe and then check for any warnings and clean up the code for the SX.
The prizes are nice, entering is easy... I expect to be overwhelmed with entries! Use the little form at the bottom to describe your entry and/or send the files to -Remove-JamesNewton@spam@ at sxlist.com
-Remove-garrett@spam@ at macetech.com
[SXList Contest: Idea]
A useful application of an SX microcontroller, and a wonderful tool for robotics hobbyists and home machinists, would be a self-contained CNC controller.
Typically, CNC controllers cost tens of thousands of dollars, require expensive setup and support contracts, and use proprietary code that cannot be user-modified. This makes it nearly impossible for anyone to produce accurate computer-machined parts, without the financial backing of a corporation.
A large community of homebuilt CNC'ers is growing. These hobbyists pull together CNC machines with surplus parts, homebrew software, and things from around the house. It's not overwhelmingly difficult to build a small router or engraver with acceptable accuracy, but the main problem has been controlling it. TurboCNC is one program that has gained a significant place in the hobbyist market, as it is free to use with a small fee for the sourcecode. However, it still requires a separate computer, and relies on the parallel port for output. In order to maintain the precise timing requirements of stepper motor controlling, TurboCNC will only run in DOS and relies on a purely text-based interface.
My proposal is this: implement a CNC controller with a single SX microcontroller. With microstepping drivers, the controller may need to output 20,000 or more step/direction pulses per second, to three or more stepper motor drives at once. The microcontroller should be configurable for lead screw pitch, step rate of the motors, accelerations, and other details. It should be able to accept standard G-Code (CNC motion description language) and perform the acceleration, deceleration, and interpolation as necessary.
If the SX chip can translate G-Code into realtime stepper control, the hardware requirements of a homebuilt CNC would be significantly reduced. A hobbyist could use an application on their desktop computer, which streams G-Code to the controller via serial port and provides a graphical backplot. The SX can be built into the same box as the stepper control circuits, and eliminate the need for a complete computer, monitor, and keyboard (or laptop computer). The control computer can be located some distance away from the CNC machine, to protect it from dust and metal chips. The control would also not be dependent on an old computer that may not have replacement parts available.
I think this idea is feasible, as a 486-50 running TurboCNC is capable of processing G-Code and controlling up to 8 motors. Without any overhead from the operating system, and with optimized code, an SX chip running 50-75 MIPS should be more than competent.
And with only one entry, the winner is Garrett. He gets a Debugger, Ethernet Demo Board, some SX28's, and a Linistepper controller kit. Garrett says thanks and he is very supprized that there were not more entries.
Aras Vaichas says:
I am an embedded software engineer who has gone on to study Sculpture at a Fine Arts School. I still love engineering so I like to build the occasional electronic interactive artwork. This time I want to create an interactive sound installation.
Let's begin with my art-speak blurb:
Sound Installation No.1
Sound ebbs, surges and swirls around your body. Jumping from speaker to speaker to speaker. The sound slowly decays in volume and quality until some of the sound is but a whisper and a puff of ambient background white noise. A continuous stream of new sounds arrive only to be swept up in the growing menagerie of pressure waves bowing to the rules of entropy.
New technology is given old memory in this haunting and noisy installation. Dynamic random access memory (DRAM) was brought back from obsolescence to interface with the latest family of multi-mega speed reduced instruction set computing (RISC) microcontrollers for storage of the sounds. Commercial COder DECoders (CODECs) suck in the sounds and spit it back out at you with sixteen bit resolution at a frequency of twenty-thousand hertz. Sound goes from analog to digital to analog to digital in a continuous loop. Thermal noise, radio interference, memory errors and quantum effects all take their toll on the sound as it travels in the loop. Sounds are forwarded, stored, replayed and destroyed at the whim of the computer which is at the whim of the programmer and artist.
In geek-speak I am building a circular daisy chain of digital delay units. Initially I was going to design and build eight separate units, but I quickly realised that it would be cheaper and easier to centralise the memory and simply create a virtual ring of delays units with a star topology.
The main aim is to create a sound installation that is interactive and engrossing for the audience.
I have been working on this idea for the last couple of months and my specifications have been fixed at:
- 8 audio channels
- 8 channel amplifier (5W minimum per channel)
- 8 speakers
- volume control per channel
- 22050 samples per second per channel
- 16 bits per sample
- 1 second per channel (minimum) storage time
- microphone input with auto gain control
I decided that DRAM was the most sensible option for memory, it also has the advantage that it requires less pins to interface. Old 30pin 1MB - 4MB SIMMs are very cheap, easy to source and very reliable. After looking at various options for the DAC and ADC, I decided upon using a CODEC (TI/Burr Brown PCM3500 16bit CODEC) which simplifies things greatly because it does all the clocking for me and gives me some very useful IO options - I highly recommend looking at the data sheet for this device if you are interested in doing any sort of audio processing. My amplification stage would most likely be a separate unit and use eight Class-D integrated amplifiers (TI TPA3001d1, TPA3002d2).
My order of implementation would be:
1) create a simple ring of delays units into which I can inject a sound and listen to it travel around in the loop. The unknown factor here is how much the signal will decay (if at all) while it travels around, this is where I will work on getting the signal to decay in the analog realm
2) work on giving the system a state-machine or a "personality", allowing it to store and recall sounds, identify individual sound segments, basic digital audio processing
3) work on other feedback mechanisms like motion detectors, light detectors, etc. used to trigger different sounds and trigger personality shifts
- total sample throughput: 22050samples/sec * 8ch = 176400samples/sec
- total data throughput: 176400samples/sec * 2bytes/sample = 352800bytes/sec
- minimum memory required: 352800bytes = 344kbytes
- processing time/sample: 1/176400samples/sec = 5.67usec/sample
- processing time/byte: 1/352800bytes/sec = 2.83usec/byte
I started by looking at the Atmel AVR initially, but once I got these figures I realised that no processor would be fast enough within my price range.
Only the SX chips can meet these requirements.
assuming 50MIPS processor: 2.83usec / 20nsec = 141cycles/byte = 17cycles/bit
I realise that even the SX will be cutting it fine in the timing stakes, but I believe that I can easily achieve my level 1 implementation. Looking at the PCM3500 data sheet you will see that the CODECs are designed to be used in parallel and synchronised to a single clock, thus I will be able to transfer the audio data in parallel. I believe that my biggest bottleneck will be doing the 16bit 2s complement processing and bit bashing the DRAM data access. This project will be fun to code.
Currently I am waiting on samples from MAXIM and Texas Instruments, I have sourced all the other parts and I should start prototyping soon. As yet I do not possess any SX tools. Wish me luck!
+ And with only one entry again guess who the winner is? Aras! Tell me where to send the prize. You don't seem to be getting your email.
Note: This will be the last month of this contest unless I recieve more
than one entry
|file: /Techref/scenix/contest/triple.htm, 16KB, , updated: 2003/6/4 11:11, local time: 2024/3/1 07:22,
|©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?
<A HREF="http://massmind.org/Techref/scenix/contest/triple.htm"> 3 way winner contest</A>
|Did you find what you needed?
Welcome to massmind.org!
Welcome to massmind.org!