M-Labs
{{Short description|American technological company}}
{{advert|date=April 2017}}
M-Labs (formerly known as the Milkymist Project) is a company that develops, manufactures, and sells open hardware devices and software. It is known for the Milkymist System-On-Chip (SoC) which is a commercialized system-on-chip with free HDL source code.{{cite web|url=https://www.theregister.co.uk/2011/09/28/milkymist/|title=The Register: Open-source hardware group puts out vid system-on-a-chip|website=The Register |accessdate=2013-05-02}}
M-Labs Technologies have been used in different programs. For example, NASA developed the Communication Navigation and Networking Reconfigurable Testbed (Connect) experiment which uses the Memory Controller that was originally developed for the Milkymist One{{cite web|url=http://m-labs.hk/jpl_letter.jpg|title=JPL acknowledgement letter|accessdate=2014-02-13}}{{cite web|url=http://www.techthefuture.com/technology/open-source-hardware/|title=Tech the Future: Open source hardware|accessdate=2013-05-02}} and published under the terms of the GNU General Public License (GPL).
The project was presented at several open source and hacking conferences, such as the Chaos Communication Congress,{{cite web|url=https://events.ccc.de/congress/2009/Fahrplan/events/3350.en.html|title=26C3 schedule|date=9 January 2010 |accessdate=2011-04-22}} FOSDEM,{{cite web|url=http://m.fosdem.org/event/milkymist|title=Milkymist : Pushing further the limits of electronics openness|accessdate=2011-04-22|url-status=dead|archiveurl=https://web.archive.org/web/20110712080430/http://m.fosdem.org/event/milkymist|archivedate=2011-07-12}} Libre Software Meeting,{{cite web|url=http://2010.rmll.info/Milkymist-a-free-System-on-Chip-for-real-time-video.html?lang=fr|title=Milkymist : a free System-on-Chip for real-time video|accessdate=2011-04-22}} and Libre Graphics Meeting 2011.{{cite web|url=http://en.qi-hardware.com/wiki/Press_Release:_Milkymist_One_video_synthesizer_shown_at_6th_Libre_Graphics_Meeting_in_Montreal|title=Milkymist One video synthesizer shown at 6th Libre Graphics Meeting in Montreal|accessdate=2011-05-14}}{{cite web|url=http://fabricatorz.com/2011/05/milkymist-one-video-synthesizer-shown-at-6th-libre-graphics-meeting-in-montreal/ |title=Milkymist One Shown at Libre Graphics Meeting |accessdate=2011-05-14 |url-status=dead |archiveurl=https://web.archive.org/web/20110519235131/http://fabricatorz.com/2011/05/milkymist-one-video-synthesizer-shown-at-6th-libre-graphics-meeting-in-montreal/ |archivedate=2011-05-19 }} It was also featured on the Make magazine blog{{cite web|url=http://blog.makezine.com/archive/2010/08/milkymist-interactive-vj-station.html|title=Make: Online: Milkymist :: Interactive VJ Station|accessdate=2011-04-22}} The Milkymist One board was included in their "Ultimate open source hardware gift guide 2010".{{cite web|url=http://blog.makezine.com/archive/2010/12/the-ultimate-open-source-hardware-g.html|title=Make: Online: The Ultimate Open Source Hardware Gift Guide 2010|accessdate=2011-04-22}}
Milkymist SoC
The Milkymist system-on-chip uses the LatticeMico32 (LM32) core as a general purpose processor. It is a RISC 32-bit big endian CPU with a memory management unit (MMU) developed later by M-Labs contributors. It is supported by the GCC compiler and can run RTEMS and μClinux. There is also an experimental back-end for LLVM targeting this microprocessor.
The LM32 microprocessor is assisted by a texture mapping unit and a programmable floating point VLIW coprocessor, which are used by the Flickernoise video synthesis software. It is also surrounded by various peripheral cores to support every I/O device of the Milkymist One. The system-on-chip interconnect uses three bridged buses and mixes the Wishbone protocol with two custom protocols used for configuration registers and high performance DMA with the SDRAM.
The architecture of the Milkymist system-on-chip is largely documented in the project founder's Master thesis report.{{cite web|url=http://kth.diva-portal.org/smash/record.jsf?pid=diva2:370883|title=A performance-driven SoC architecture for video synthesis|last=Bourdeauducq|first=Sebastien|date=June 2010|accessdate=2011-04-22|publisher=KTH}} Most components of the system-on-chip, except the LatticeMico32 core, were custom developed and placed under the GNU GPL license.
The QEMU emulator can be used to run and debug Milkymist SoC binaries{{cite web|url=http://lists.nongnu.org/archive/html/qemu-devel/2011-04/msg00239.html|title=QEMU development mailing list|accessdate=2011-04-22}} on another computer.
Milkymist One and Flickernoise
{{Infobox information appliance
| name = Milkymist One
| image = 250px
| caption =
| manufacturer = Qi Hardware
| type = Video synthesizer
| releasedate = {{Start date|2010|12|27}} (early developer kit), {{Start date|2011|09|28}} (final version)
| price = 380 EUR (early developer kit), 499 USD (final version)
| lifespan =
| media =
| input = USB keyboard and mouse
| camera = External (CVBS digitizer)
| power = 5 W
| cpu = LatticeMico32 in a Xilinx Spartan-6 FPGA
| storage = 32 MB built-in NOR flash, memory card
| memory = 128 MB DDR SDRAM
| display = SVGA up to {{nowrap|140 MHz}} pixel clock (1280x1024)
| connectivity = DMX512, MIDI, OpenSoundControl, AC97 audio, Ethernet, RC-5 infrared, USB, GPIO
| service =
| dimensions = 172 × 145 × 45 mm
| weight = 465 g
| touchpad =
| predecessor =
| successor =
| related =
}}
The Milkymist One video synthesizer and reconfigurable computer is the main product released by the project. It was manufactured by Qi Hardware, a start-up founded by former Openmoko employees.{{cite web|url=http://www.linux.com/news/embedded-mobile/mids/29263-openmoko-layoffs-lead-to-new-open-hardware-venture|title=OpenMoko Layoffs Lead to New Open Hardware Venture|accessdate=2011-04-22}} It was first sold at the Chaos Communication Congress in 2010,{{cite web|url=http://hackable-devices.org/news/post/john/2010/12/first-milkymist-one-early-developer-kits-are-c/|title=First Milkymist One Early Developer Kits are coming!|accessdate=2011-04-22}} as an "early developer kit" for interested hackers, open source activists, and pioneers who could tolerate the remaining software and FPGA design shortcomings. A more refined version, including case and accessories, was later sold.
The technical specifications of the Milkymist One{{cite web|url=http://m-labs.hk/m1.html|title=M-Labs official website: Milkymist One|accessdate=2013-05-02}} are as follows:
- Multi-standard video input (PAL/SECAM/NTSC)
- Two DMX512 (RS485) ports
- MIDI IN and MIDI OUT ports
- SVGA output, 24 bpp, up to 140 MHz pixel clock (about 1280×1024)
- AC97 audio
- Xilinx XC6SLX45 Spartan-6 FPGA supporting the open source Milkymist SoC
- 128 MB 32-bit DDR333 SDRAM
- 32 MB parallel flash
- 10/100 Ethernet
- Memory card
- Two USB host connectors
- RC-5 compatible infrared receiver
- RS-232 debug port
The design files of the printed circuit board and the CAD files of the case were released under the Creative Commons Attribution-Share Alike license.
style="margin: 1em auto 1em auto;"
| File:Flickernoise-darkblue.png | |
Flickernoise is the video synthesis software that runs on the Milkymist One. It is heavily inspired by MilkDrop and uses a similar, and largely compatible, scripting language to define and program the visual effects. However, while MilkDrop is designed to run automatically in a music player, Flickernoise is focused on the interactivity of the visuals for use in live performances. The software supports the programming of visual effects that transform a live video stream coming from a camera connected to the Milkymist One, as well as input from OpenSoundControl, DMX512, and MIDI controllers.
Flickernoise runs on the RTEMS real-time operating system and uses many POSIX software libraries that were ported to this operating system, such as libpng, libjpeg, jbig2dec, OpenJPEG, FreeType, MuPDF, and liblo for OpenSoundControl support. The streamlined hardware platform and the use of a real-time operating system allow the system to have a lower response time than an equivalent PC-based setup. The user interface is based on a variant of the Genode FX toolkit.{{cite web|url=https://www.genode-labs.com/products/fpga-graphics|title=Genode Labs: FPGA Graphics}}
Flickernoise is also free software, released under the terms of the GNU General Public License.
ARTIQ
In May 2014, M-Labs entered a partnership with NIST to develop a next-generation open source control system for quantum information experiments.{{cite journal|url=http://nist.gov/pml/div688/grp10/open-source-software-for-quantum-information.cfm|title=NIST: Open-Source Software for Quantum Information|journal=NIST |date=23 January 2015 |accessdate=2015-01-25}}{{cite web|url=https://m-labs.hk/artiq|title=M-Labs website: ARTIQ|accessdate=2017-02-14}} The system, called ARTIQ (Advanced Real-Time Infrastructure for Quantum physics), is a combination of software and gateware that enables synchronized control of many devices with nanosecond-level timing resolution and sub-microsecond latency, while retaining features of high level programming languages.
Some of the ideas and code from Milkymist SoC have been reused in ARTIQ.
In 2016 M-Labs partnered with ARL and ISE to develop ARTIQ Sinara, an open source hardware and software-defined radio platform.{{cite web|url=https://ehsm.eu/m-labs.hk/artiq|title=M-Labs mirror: ARTIQ|accessdate=2017-02-14}}
References
{{Reflist}}