Compare commits

..

No commits in common. "4aba63273728d19270c5df8ae87409a940e91540" and "132ad2498a8fdca5073679915befd7a48b19441d" have entirely different histories.

166 changed files with 106 additions and 868 deletions

View File

@ -12,9 +12,9 @@ title = "About us"
##### History ##### History
Milkymist was founded in summer 2007 by Sébastien Bourdeauducq. The open source project tackled the development of a system-on-chip design capable of running MilkDrop. The name "Milkymist" was chosen to evoke a parallel MilkDrop. The development was no small task, as it required designing and/or integrating a powerful 32-bit microprocessor core, basic peripherals, many interfaces, a fast SDRAM controller, and graphics acceleration. The video synthesizer born out of those efforts, the <a href="/other/m1/">Milkymist One</a>, was launched in September 2011 with the help of open hardware company Sharism at Work. Milkymist was founded in summer 2007 by Sébastien Bourdeauducq. The open source project tackled the development of a system-on-chip design capable of running MilkDrop. The name "Milkymist" was chosen to evoke a parallel MilkDrop. The development was no small task, as it required designing and/or integrating a powerful 32-bit microprocessor core, basic peripherals, many interfaces, a fast SDRAM controller, and graphics acceleration. The video synthesizer born out of those efforts, the <a href="https://m-labs.hk/m1.html" target="_blank" rel="noopener noreferrer">Milkymist One</a>, was launched in September 2011 with the help of open hardware company Sharism at Work.
Components of the Milkymist system-on-chip soon found many other uses, such as <a href="/images/jpl_letter.jpg" target="_blank" rel="noopener noreferrer">software-defined radio</a> on board the International Space Station. The community grew and activities diversified, with the development of a <a href="http://www.ohwr.org/projects/tdc-core/wiki" target="_blank" rel="noopener noreferrer">TDC core</a> for CERN (using a variant of the Milkymist SoC for integration), the <a href="/gateware/migen/">Migen</a> logic design system and its application to the Rhino software-defined radio platform, and the <a href="/other/mixxeo">Mixxeo</a> digital video mixer. In 2013, Milkymist was renamed to M-Labs to mark the more varied activities, and formally incorporated in Hong Kong as M-Labs Limited. Components of the Milkymist system-on-chip soon found many other uses, such as <a href="/images/jpl_letter.jpg" target="_blank" rel="noopener noreferrer">software-defined radio</a> on board the International Space Station. The community grew and activities diversified, with the development of a <a href="http://www.ohwr.org/projects/tdc-core/wiki" target="_blank" rel="noopener noreferrer">TDC core</a> for CERN (using a variant of the Milkymist SoC for integration), the <a href="/gateware/migen/">Migen</a> logic design system and its application to the Rhino software-defined radio platform, and the <a href="https://m-labs.hk/mixxeo.html" target="_blank" rel="noopener noreferrer">Mixxeo</a> digital video mixer. In 2013, Milkymist was renamed to M-Labs to mark the more varied activities, and formally incorporated in Hong Kong as M-Labs Limited.
The company's current main project is <a href="/experiment-control/artiq/">ARTIQ</a>, a leading-edge open source control system for quantum information experiments. In 2016, Robert Jördens joined the directorate of the company to further develop ARTIQ and other physics-related projects. The company's current main project is <a href="/experiment-control/artiq/">ARTIQ</a>, a leading-edge open source control system for quantum information experiments. In 2016, Robert Jördens joined the directorate of the company to further develop ARTIQ and other physics-related projects.

View File

@ -10,7 +10,7 @@ logo_only = true
+++ +++
{% layout_text_img(src="images/lab-hardware@2x.jpg", popup="images/origin/lab_hardware.png", alt="lab hardware", textleft=true, shadow=true) %} {% layout_text_img(src="images/lab-hardware@2x.jpg", alt="lab hardware", textleft=true, shadow=true) %}
ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a leading-edge control system for quantum information experiments. It was initiated and developed in partnership with the <a href="https://www.nist.gov/pml/time-and-frequency-division/ion-storage" target="_blank" rel="noopener noreferrer">Ion Storage Group</a> at NIST, and is now used and supported by a growing number of research institutions worldwide. While ARTIQ is currently mostly used by atomic physics groups, its applicability reaches beyond ion trapping. ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a leading-edge control system for quantum information experiments. It was initiated and developed in partnership with the <a href="https://www.nist.gov/pml/time-and-frequency-division/ion-storage" target="_blank" rel="noopener noreferrer">Ion Storage Group</a> at NIST, and is now used and supported by a growing number of research institutions worldwide. While ARTIQ is currently mostly used by atomic physics groups, its applicability reaches beyond ion trapping.
@ -18,7 +18,7 @@ ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a leading-edge
{% layout_text_img(src="images/modern-research@2x.png", popup="images/origin/nist_crate.jpg", alt="modern research", shadow=false) %} {% layout_text_img(src="images/modern-research@2x.png", alt="modern research", shadow=false) %}
Modern research on quantum information systems poses particular challenges to the control system: Modern research on quantum information systems poses particular challenges to the control system:
@ -32,7 +32,7 @@ Modern research on quantum information systems poses particular challenges to th
{% layout_text_img(src="images/gui_screenshot_small@2x.jpg", popup="images/origin/gui_screenshot.png", alt="lab hardware", textleft=true, shadow=true) %} {% layout_text_img(src="images/gui_screenshot_small@2x.jpg", alt="lab hardware", textleft=true, shadow=true) %}
##### Enter ARTIQ ##### Enter ARTIQ
@ -52,7 +52,7 @@ Technologies employed include <a href="http://python.org/" target="_blank" rel="
{{ layout_centered_img(src='images/comp@2x.png', popup='images/origin/comp.svg', alt='comp') }} {{ layout_centered_img(src='images/comp@2x.png', alt='comp') }}
@ -82,7 +82,7 @@ ARTIQ was initiated by the Ion Storage Group at NIST, and other partners have co
{% layout_text_img(src="images/gui_screenshot_allcock_small@2x.jpg", popup="images/origin/gui_screenshot_allcock.jpg", alt="gui screenshot allcock small", textleft=true, shadow=true) %} {% layout_text_img(src="images/gui_screenshot_allcock_small@2x.jpg", alt="gui screenshot allcock small", textleft=true, shadow=true) %}
##### Open source ##### Open source
@ -94,7 +94,7 @@ Our aim is to provide a control system suitable for the challenges of modern qua
{% layout_text_img(src="images/sinara_crate_small@2x.jpg", popup="images/origin/sinara_crate.jpg", alt="sinara crate small", shadow=true) %} {% layout_text_img(src="images/sinara_crate_small@2x.jpg", alt="sinara crate small", shadow=true) %}
##### Sinara hardware ##### Sinara hardware

View File

@ -5,7 +5,7 @@ template = "page.html"
+++ +++
{% layout_text_img(src="images/stabilizer@2x.png", popup="images/origin/stabilizer.jpg", alt="", textleft=true, shadow=false) %} {% layout_text_img(src="images/stabilizer@2x.png", alt="", textleft=true, shadow=false) %}
##### Stabilizer ##### Stabilizer
@ -33,7 +33,7 @@ The <a href="https://github.com/quartiq/stabilizer" target="_blank" rel="noopene
{{ layout_centered_img(src="images/_standard-open-source-firmware@2x.png", popup="images/origin/stabilizer_pid.png", alt="", css="row d-flex align-items-center mt-0 mb-0") }} {{ layout_centered_img(src="images/_standard-open-source-firmware@2x.png", alt="", css="row d-flex align-items-center mt-0 mb-0") }}
@ -70,7 +70,7 @@ The <a href="https://github.com/quartiq/stabilizer" target="_blank" rel="noopene
{% layout_text_img(src="images/Thermostat@2x.png", popup="images/origin/thermostat.jpg", alt="", shadow=false) %} {% layout_text_img(src="images/Thermostat@2x.png", alt="", shadow=false) %}
##### Thermostat ##### Thermostat

View File

@ -8,7 +8,7 @@ title = "Sinara hardware"
+++ +++
{% layout_text_img(src="images/sinara-hardware@2x.png", popup="images/origin/sinara_hardware.jpg", alt="", textleft=true, shadow=false) %} {% layout_text_img(src="images/sinara-hardware@2x.png", alt="", textleft=true, shadow=false) %}
The first ARTIQ core devices used hardware built in-house by physicists (based on a Xilinx KC705 development board with custom FMC cards). To improve the quality, features and scalability of ARTIQ systems, we have been developing the Sinara device family. It provides turnkey control hardware that is reproducible, open, flexible, modular, well-tested, and well-supported by the ARTIQ control software. The first ARTIQ core devices used hardware built in-house by physicists (based on a Xilinx KC705 development board with custom FMC cards). To improve the quality, features and scalability of ARTIQ systems, we have been developing the Sinara device family. It provides turnkey control hardware that is reproducible, open, flexible, modular, well-tested, and well-supported by the ARTIQ control software.
@ -20,7 +20,7 @@ Kasli and EEMs can be ordered now. We can deliver a rack-mountable crate that co
{% layout_text_img(src="images/kasli@2x.png", popup="images/origin/kasli.jpg", alt="", shadow=false) %} {% layout_text_img(src="images/kasli@2x.png", alt="", shadow=false) %}
##### Kasli ##### Kasli
@ -32,7 +32,7 @@ One of the main devices in the Sinara family is the Kasli core device. It contai
{% layout_text_img(src="images/isolated-ttl@2x.png", popup="images/origin/dio.jpg", alt="", textleft=true, shadow=false) %} {% layout_text_img(src="images/isolated-ttl@2x.png", alt="", textleft=true, shadow=false) %}
##### Isolated TTL I/O EEMs ##### Isolated TTL I/O EEMs
@ -44,7 +44,7 @@ More information: <a href="https://github.com/sinara-hw/DIO_BNC/wiki" target="_b
{% layout_text_img(src="images/LVDS@2x.png", popup="images/origin/dio_rj45.jpg", alt="", shadow=false) %} {% layout_text_img(src="images/LVDS@2x.png", alt="", shadow=false) %}
##### LVDS I/O EEM ##### LVDS I/O EEM
@ -57,7 +57,7 @@ Each RJ45 supplies 4 LVDS DIOs. The direction (input/output) is individually sel
{% layout_text_img(src="images/Banker-TTL-1@2x.png", popup="images/origin/banker1.jpg", alt="", textleft=true, shadow=false) %} {% layout_text_img(src="images/Banker-TTL-1@2x.png", alt="", textleft=true, shadow=false) %}
##### Banker 128-channel TTL I/O expander ##### Banker 128-channel TTL I/O expander
@ -73,7 +73,7 @@ Interfaces include:
{% layout_text_img(src="images/Banker-TTL-2@2x.png", popup="images/origin/banker2.jpg", alt="", textleft=true, shadow=false) %} {% layout_text_img(src="images/Banker-TTL-2@2x.png", alt="", textleft=true, shadow=false) %}
All outputs can be configured either as 3.3 or 5V. They can drive 50R load when set to 5V. FPGA can is configured from on-board FLASH. FLASH can be updated over I2C or with the on-board SPI connector. All outputs can be configured either as 3.3 or 5V. They can drive 50R load when set to 5V. FPGA can is configured from on-board FLASH. FLASH can be updated over I2C or with the on-board SPI connector.
@ -92,7 +92,7 @@ There are several DIN-rail compatible modules for use with Banker. They are inte
{% layout_text_img(src="images/Urukul-DDS@2x.png", popup="images/origin/urukul.jpg", alt="", shadow=false) %} {% layout_text_img(src="images/Urukul-DDS@2x.png", alt="", shadow=false) %}
##### Urukul DDS card ##### Urukul DDS card
@ -108,7 +108,7 @@ In regular mode, various DDS features are supported, including frequency, phase
{% layout_text_img(src="images/Zotino-DAC@2x.png", popup="images/origin/zotino.jpg", alt="", textleft=true, shadow=false) %} {% layout_text_img(src="images/Zotino-DAC@2x.png", alt="", textleft=true, shadow=false) %}
##### Zotino DAC card ##### Zotino DAC card
@ -124,7 +124,7 @@ It is also possible to connect the Zotino using a HD68 cable to an external crat
{% layout_text_img(src="images/Sampler-ADC@2x.png", popup="images/origin/sampler.jpg", alt="", shadow=false) %} {% layout_text_img(src="images/Sampler-ADC@2x.png", alt="", shadow=false) %}
##### Sampler ADC card ##### Sampler ADC card
@ -140,7 +140,7 @@ Note that update rate specification on this page is for the hardware only; ARTIQ
{% layout_text_img(src="images/Grabber-camera-interface@2x.png", popup="images/origin/grabber.jpg", alt="", textleft=true, shadow=false) %} {% layout_text_img(src="images/Grabber-camera-interface@2x.png", alt="", textleft=true, shadow=false) %}
##### Grabber camera interface ##### Grabber camera interface
@ -154,7 +154,7 @@ In the FPGA, frame data streamed through "ROI engines". Each ROI engine gates on
{% layout_text_img(src="images/clocker@2x.png", popup="images/origin/clocker.jpg", alt="", shadow=false) %} {% layout_text_img(src="images/clocker@2x.png", alt="", shadow=false) %}
##### Clocker ##### Clocker

View File

@ -1,3 +0,0 @@
+++
title = "Other"
+++

View File

@ -1,169 +0,0 @@
+++
title = "Milkymist One"
weight = 1
template = "page.html"
+++
<a href="/images/m1_large.jpg"><img src="/images/m1.jpg"></a>
The Milkymist One is an experimental hardware appliance for live video effects.
The small 172x145x45mm device creates visualizations similar to those generated by the <a href="http://www.geisswerks.com/milkdrop/" target="_blank" rel="noopener noreferrer">MilkDrop</a> software, and enables you to mix them with live footage from a camera and interact using MIDI and DMX controllers.
The Milkymist One is programmable and customizable at many different levels.
The simplest way one can use a Milkymist One is by affecting MIDI controls to the existing snippets of code (called "patches") that create the effects. The Milkymist One ships with dozens of pre-existing patches.
Creating new patches can be done with a simple programming language based on the <a href="http://www.milkdrop.co.uk/guide.htm" target="_blank" rel="noopener noreferrer">MilkDrop preset format</a>. The Milkymist One device comes with a built-in editor.
Under the hood, the Milkymist One is like a mini-computer running our Flickernoise video synthesis software.
But we did not stop at open source <em>software</em>. As a matter of fact, when this project started in August 2007, one of the goals was to open up <em>chip design</em>. Inside the device, which was launched in September 2011, the Flickernoise software is actually running on an open source CPU part of our own system-on-chip.
## Detailed specifications
<img src="/images/m1_board.jpg">
- Multi-standard video input (PAL/SECAM/NTSC)
- Two DMX512 (RS485) ports
- MIDI IN and MIDI OUT ports
- VGA output, 24bpp
- AC97 audio
- XC6SLX45 Spartan-6 FPGA supporting the open source Milkymist SoC
- 128MB 32-bit DDR333 SDRAM
- 32MB parallel flash
- 10/100 Ethernet
- Memory card
- Two 12Mbps USB host connectors
- RC-5 compatible infrared receiver
- RS232 debug port
## Press
- Create Digital Motion (10/02/2012): <a href="http://createdigitalmotion.com/2012/02/milkymist-is-digital-visual-synthesizer-and-processor-built-on-sophisticated-open-source-hardware/">Milkymist is Digital Visual Synthesizer and Processor, Built as Sophisticated Open Source Hardware</a>
- MikroBitti (03/2012): <a href="http://www.mbnet.fi/artikkeli/lehti/avointa_vj_rautaa_3_2012">Milkymist One -visualisaattori: Avointa vj-rautaa</a> [FI]
- Make Magazine (30/09/2011): <a href="http://blog.makezine.com/2011/09/30/milkymist-one-an-open-source-vj-console-goes-on-sale/">Milkymist One, an Open Source VJ Console, Goes on Sale</a>
- The Register (28/09/2011): <a href="http://www.theregister.co.uk/2011/09/28/milkymist/print.html">Open-source hardware group puts out vid system-on-a-chip</a>
- Theory&amp;Practice (22/09/2011): <a href="http://theoryandpractice.ru/seminars/19402-videosintezator-s-otkrytym-kodom-milkymist-one-22-9">Видеосинтезатор с открытым кодом Milkymist One</a> [RU]
- ETN (17/05/2011): <a href="http://www.etn.se/index.php?option=com_content&view=article&id=53785">Videoeffekter i öppen hårdvara söker partners</a> [SE]
- Linux-Magazin (28/01/2011): <a href="http://www.linux-magazin.de/NEWS/VJ-System-Milkymist-als-Entwicklerboard-erhaeltlich">VJ-System Milkymist als Entwicklerboard erhältlich</a> [DE]
- Create Digital Motion (16/08/2010): <a href="http://createdigitalmotion.com/2010/08/milkymist-one-all-in-one-open-source-vj-workstation/">Milkymist One, All-in-One Open Source VJ Workstation</a>
- Linux-Magazin (29/12/2009): <a href="http://www.linux-magazin.de/NEWS/26c3-Bewegtbildgenerator-Milkymist-bald-mit-Ethernet-und-USB">26c3: Bewegtbildgenerator Milkymist bald mit Ethernet und USB</a> [DE]
## Buy a Milkymist One
We are no longer selling Milkymist One. If you want one, you can ask about buying a second-hand unit on the <a href="https://ssl.serverraum.org/lists/listinfo/devel/listinfo.cgi/devel-milkymist.org">mailing list</a>, or take the open source design files and manufacture it yourself.
## Video
<iframe width="420" height="315" src="https://www.youtube-nocookie.com/embed/0k080nzA_z4" frameborder="0" allowfullscreen></iframe>
## Screenshots
<a href="/fnscreenshots/pdf.png"><img src="/fnscreenshots/pdf_small.jpg"></a>
<a href="/fnscreenshots/darkblue.png"><img src="/fnscreenshots/darkblue_small.jpg"></a>
<a href="/fnscreenshots/sailing1.png"><img src="/fnscreenshots/sailing1_small.jpg"></a>
<a href="/fnscreenshots/sailing2.png"><img src="/fnscreenshots/sailing2_small.jpg"></a>
<a href="/fnscreenshots/sailing3.png"><img src="/fnscreenshots/sailing3_small.jpg"></a>
<a href="/fnscreenshots/sailing4.png"><img src="/fnscreenshots/sailing4_small.jpg"></a>
<a href="/fnscreenshots/sailing5.png"><img src="/fnscreenshots/sailing5_small.jpg"></a>
<a href="/fnscreenshots/starballet1.png"><img src="/fnscreenshots/starballet1_small.jpg"></a>
<a href="/fnscreenshots/starballet2.png"><img src="/fnscreenshots/starballet2_small.jpg"></a>
<a href="/fnscreenshots/starballet3.png"><img src="/fnscreenshots/starballet3_small.jpg"></a>
<a href="/fnscreenshots/starballet4.png"><img src="/fnscreenshots/starballet4_small.jpg"></a>
<a href="/fnscreenshots/starballet5.png"><img src="/fnscreenshots/starballet5_small.jpg"></a>
<a href="/fnscreenshots/starballet6.png"><img src="/fnscreenshots/starballet6_small.jpg"></a>
<a href="/fnscreenshots/starballet7.png"><img src="/fnscreenshots/starballet7_small.jpg"></a>
<a href="/fnscreenshots/starpainter1.png"><img src="/fnscreenshots/starpainter1_small.jpg"></a>
<a href="/fnscreenshots/starpainter2.png"><img src="/fnscreenshots/starpainter2_small.jpg"></a>
<a href="/fnscreenshots/starpainter3.png"><img src="/fnscreenshots/starpainter3_small.jpg"></a>
<a href="/fnscreenshots/plasmastreams.png"><img src="/fnscreenshots/plasmastreams_small.jpg"></a>
<a href="/fnscreenshots/pshroomery.png"><img src="/fnscreenshots/pshroomery_small.jpg"></a>
<a href="/fnscreenshots/pshroomery2.png"><img src="/fnscreenshots/pshroomery2_small.jpg"></a>
<a href="/fnscreenshots/pshroomery3.png"><img src="/fnscreenshots/pshroomery3_small.jpg"></a>
<a href="/fnscreenshots/pshroomery4.png"><img src="/fnscreenshots/pshroomery4_small.jpg"></a>
<a href="/fnscreenshots/eerieberi.png"><img src="/fnscreenshots/eerieberi_small.jpg"></a>
<a href="/fnscreenshots/pdb1.png"><img src="/fnscreenshots/pdb1_small.jpg"></a>
<a href="/fnscreenshots/pdb2.png"><img src="/fnscreenshots/pdb2_small.jpg"></a>
<a href="/fnscreenshots/kalei.png"><img src="/fnscreenshots/kalei_small.jpg"></a>
<a href="/fnscreenshots/torridtales3.png"><img src="/fnscreenshots/torridtales3_small.jpg"></a>
<a href="/fnscreenshots/torridtales.png"><img src="/fnscreenshots/torridtales_small.jpg"></a>
<a href="/fnscreenshots/burningdisc.png"><img src="/fnscreenshots/burningdisc_small.jpg"></a>
<a href="/fnscreenshots/burningdisc2.png"><img src="/fnscreenshots/burningdisc2_small.jpg"></a>
<a href="/fnscreenshots/burningpanel.png"><img src="/fnscreenshots/burningpanel_small.jpg"></a>
<a href="/fnscreenshots/crazyface.png"><img src="/fnscreenshots/crazyface_small.jpg"></a>
<a href="/fnscreenshots/crazyface2.png"><img src="/fnscreenshots/crazyface2_small.jpg"></a>
<a href="/fnscreenshots/mateball.png"><img src="/fnscreenshots/mateball_small.jpg"></a>
<a href="/fnscreenshots/pyramids.png"><img src="/fnscreenshots/pyramids_small.jpg"></a>
<a href="/fnscreenshots/madness.png"><img src="/fnscreenshots/madness_small.jpg"></a>
<a href="/fnscreenshots/explosiveminds.png"><img src="/fnscreenshots/explosiveminds_small.jpg"></a>
<a href="/fnscreenshots/torridtales2.png"><img src="/fnscreenshots/torridtales2_small.jpg"></a>
<a href="/fnscreenshots/8bitstarfield.png"><img src="/fnscreenshots/8bitstarfield_small.jpg"></a>
<a href="/fnscreenshots/airs.png"><img src="/fnscreenshots/airs_small.jpg"></a>
<a href="/fnscreenshots/aqualung.png"><img src="/fnscreenshots/aqualung_small.jpg"></a>
<a href="/fnscreenshots/balkacid.png"><img src="/fnscreenshots/balkacid_small.jpg"></a>
<a href="/fnscreenshots/cloudedbottle.png"><img src="/fnscreenshots/cloudedbottle_small.jpg"></a>
<a href="/fnscreenshots/cosmicechoes.png"><img src="/fnscreenshots/cosmicechoes_small.jpg"></a>
<a href="/fnscreenshots/digitalflame.png"><img src="/fnscreenshots/digitalflame_small.jpg"></a>
<a href="/fnscreenshots/drunkenboat.png"><img src="/fnscreenshots/drunkenboat_small.jpg"></a>
<a href="/fnscreenshots/eerieberi2.png"><img src="/fnscreenshots/eerieberi2_small.jpg"></a>
<a href="/fnscreenshots/interwoven.png"><img src="/fnscreenshots/interwoven_small.jpg"></a>
<a href="/fnscreenshots/madness2.png"><img src="/fnscreenshots/madness2_small.jpg"></a>
<a href="/fnscreenshots/shaking.png"><img src="/fnscreenshots/shaking_small.jpg"></a>
<a href="/fnscreenshots/ssmatrix.png"><img src="/fnscreenshots/ssmatrix_small.jpg"></a>
<a href="/fnscreenshots/patcheditor2.png"><img src="/fnscreenshots/patcheditor2_small.jpg"></a>
<a href="/fnscreenshots/glass.png"><img src="/fnscreenshots/glass_small.jpg"></a>
<a href="/fnscreenshots/glass2.png"><img src="/fnscreenshots/glass2_small.jpg"></a>
<a href="/fnscreenshots/face.png"><img src="/fnscreenshots/face_small.jpg"></a>
## Milkymist SoC
<img src="/images/jtagserialb.jpg">
<img src="/images/jtagserialt.jpg">
The Milkymist SoC is at the core of the Milkymist One, implemented in the Spartan-6 FPGA.
The Milkymist <a href="http://en.wikipedia.org/wiki/System-on-chip">system-on-chip</a> uses the <a href="http://www.latticesemi.com/mico32">LatticeMico32</a> (LM32) core as a general purpose processor. It is a RISC 32-bit big endian CPU without a memory management unit (MMU). It is supported by the GCC compiler and can run <a href="http://www.rtems.com">RTEMS</a> and <a href="http://www.github.com/m-labs/linux-milkymist">uClinux</a>. There is also an <a href="https://github.com/m-labs/llvm-lm32">experimental back-end for LLVM</a> 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 <a href="/thesis/thesis.pdf" target="_blank" rel="noopener noreferrer">Master thesis report</a>. 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 on another computer.
The SoC source distribution includes software libraries, the BIOS and the demonstration firmware, as well as test benches, LaTeX source for the documentation, build scripts, etc. The repository is hosted by GitHub and is available <a href="http://github.com/m-labs/milkymist">here</a>.
Milkymist SoC is phased out in favor of the more powerful [MiSoC](@/gateware/migen.md).
## Flickernoise
Flickernoise is the video synthesis application developed for the Milkymist One and the Milkymist SoC. It renders hardware-accelerated visual effects comparable (and, to some extent, compatible) with those of <a href="http://www.nullsoft.com/free/milkdrop">MilkDrop</a> 1.x, the popular audio visualization plug-in for Winamp.
Flickernoise allows the creation of visual patches and their connection with all the interfaces that the Milkymist One provides thanks to a built-in graphical user interface. Let the visuals react to sound and MIDI events, connect a camera and create live phantasmagoric images of yourself...
Flickernoise uses:
- The <a href="http://www.rtems.org">RTEMS</a> real-time operating system.
- The <a href="http://www.yaffs.org">YAFFS</a> flash filesystem (modified version <a href="http://www.github.com/m-labs/rtems-yaffs2">here</a>).
- The <a href="http://www.libpng.org">libpng</a>, <a href="http://www.ijg.org">libjpeg</a>, <a href="http://www.ijg.org">openjpeg</a> and <a href="http://jbig2dec.sourceforge.net/">jbig2dec</a> image decompression libraries.
- The <a href="http://www.freetype.org">freetype</a> font rendering system.
- The <a href="http://www.mupdf.com">MuPDF</a> library for the online help system.
- <a href="http://www.github.com/m-labs/mtk">MTK</a>, a modified version of the <a href="http://www.genode-labs.com/products/fpga-graphics">Genode FX</a> embedded GUI toolkit, which provides all the elements for common user interaction (windows, buttons, etc.).
- <a href="http://www.github.com/m-labs/liboscparse">liboscparse</a>, a variant of <a href="http://liblo.sourceforge.net/">liblo</a>, for <a href="http://www.opensoundcontrol.org">OpenSoundControl</a> communications.
## Credits
Thanks to the many people who made Milkymist One possible - in no particular order:
Sebastien Bourdeauducq (founder), Michael Walle (software), Adam Wang (production engineering), Uwe Bonnes, Werner Almesberger, Jon Phillips (evangelist), Yi Zhang (operations), Christophe Devine, Don Miller, John Lejeune, Wim Vandeputte, Xiangfu Liu (software), Wolfgang Spraul, Joachim roh Steiger (mechanical), Yanjun Luo (jtag-serial design), Lars-Peter Clausen, Cristian Paul (early adopter), Christopher Adams (logo design), Christiaan Virant (advice), Takeshi Matsuya (Linux port), Akuei Chen (smt), Anson Lin (layout), Vera Cheng (layout), Terry (pcb), Nick Chen (remote control), Eva Su (sourcing), Sean Xiao (sourcing), Elisha Tseng (xilinx fae), Henry de Beauchesne, Philip Sheu (nor flash), Arno Lin (vga connector), Sun Hung Kuang (jtag-serial smt), Aaron Lee (usb connector), Ruby Su (sourcing), Yunchao Xie (ccd camera), Xiaochun Lu (power supply), Cailin Dai (box design), Mr. Zhang (box making), Xianke Zhang (eva), Xin Cai (label printing), Ting Jiang (sticker making), Xiaopeng Li (silicone keyboard), Mr. Ba (audio, video cables), Dehua Xiao (ethernet cable), Miss Zhao (usb cable), Shen Chun Yi (package pickup Taipei)...
Plus countless workers at dozens of suppliers and many more who created the free technology we were able to build upon.

View File

@ -1,37 +0,0 @@
+++
title = "Mixxeo"
weight = 1
template = "page.html"
[extra]
logo = "images/mixxeo_logo.png"
logo_size = 125
logo_only = true
+++
{% layout_centered_content() %}
The Mixxeo was the first open source digital video mixer.
<a href="/images/mixxeo_render_large.png">
<img src="/images/mixxeo_render.jpg">
</a>
<em>[picture is a rendering - actual product appearance may vary]</em>
{% end %}
{% layout_centered_content(force_left=true, min_width=true) %}
Built on the <a href="/gateware/migen/">MiSoC and Migen</a> technologies that originated from the development experience of the Milkymist One and unlike other mixers, the Mixxeo itself does everything and processes every pixel with our own <a href="http://github.com/m-labs" target="_blank" rel="noopener noreferrer">open source hardware and software</a>. This gives us exceptional control and customization possibilities.
The Mixxeo supported mixing from two DVI or HDMI sources up to 720p60, with crossfade, fade to black and potentially other effects with a latency of less than two frames.
<b>Status (Aug 2014)</b> - Main board and gateware have been <a href="/images/mixxeo_result.jpg">mostly functional</a> for a while, mechanical design and manufacturing for the case/mechatronics are progressing slowly. If you have the skills and would like to help out, email sb at m-labs.hk or the mailing list.
<center><img src="/images/mixxeo_menu.png"><br /><br /><img src="/images/mixxeo_board.jpg" class="picimg"></center>
{% end %}

View File

@ -1,7 +1,7 @@
+++ +++
title = "SolveSpace" title = "SolveSpace"
weight = 1 weight = 1
template = "page-solvespace.html" template = "page.html"
[extra] [extra]
layout_css = "col-12 col-md-10 mx-auto" layout_css = "col-12 col-md-10 mx-auto"
@ -44,6 +44,14 @@ Of course, most vacuum chambers would have some standard flanges. These can be e
<img class="img-fluid" src="/images/kf25-section.png" width="400" height="100%"> <img class="img-fluid" src="/images/kf25-section.png" width="400" height="100%">
<div id="kf25"></div> <div id="kf25"></div>
<script src="/js/models/kf25.js"></script>
<script>
(function () {
var node = document.getElementById("kf25");
var params = {width: 400, height: 300, scale: 10, offset: new THREE.Vector3(-8, 0, 0)};
node.parentNode.replaceChild(solvespace(solvespace_model_kf25, params), node);
})();
</script>
{% end %} {% end %}
*(The illustration on the right is "live"; it can be panned, rotated and scaled.)* *(The illustration on the right is "live"; it can be panned, rotated and scaled.)*
@ -54,7 +62,24 @@ In a similar way, an NW160 viewport and an adapter with an NW160 flange, a KF40,
{% layout_treejs(two=true) %} {% layout_treejs(two=true) %}
<div id="viewport"></div> <div id="viewport"></div>
<script src="/js/models/viewport.js"></script>
<script>
(function () {
var node = document.getElementById("viewport");
var params = {width: 400, height: 300, scale: 3};
node.parentNode.replaceChild(solvespace(solvespace_model_viewport, params), node);
})();
</script>
<div id="multiport"></div> <div id="multiport"></div>
<script src="/js/models/multiport.js"></script>
<script>
(function () {
var node = document.getElementById("multiport");
var params = {width: 400, height: 300, scale: 3};
node.parentNode.replaceChild(solvespace(solvespace_model_multiport, params), node);
})();
</script>
{% end %} {% end %}
@ -67,6 +92,14 @@ The fittings above were designed to be used with a cylindrical vacuum chamber, 2
{% layout_treejs() %} {% layout_treejs() %}
<div id="chamber"></div> <div id="chamber"></div>
<script src="/js/models/chamber.js"></script>
<script>
(function () {
var node = document.getElementById("chamber");
var params = {width: 800, height: 600, scale: 3};
node.parentNode.replaceChild(solvespace(solvespace_model_chamber, params), node);
})();
</script>
{% end %} {% end %}
@ -81,7 +114,24 @@ First, the cryocooler and its cold head were modelled to verify fits:
{% layout_treejs(two=true) %} {% layout_treejs(two=true) %}
<div id="k526s-body"></div> <div id="k526s-body"></div>
<script src="/js/models/k526s-body.js"></script>
<script>
(function () {
var node = document.getElementById("k526s-body");
var params = {width: 400, height: 300, scale: 6, offset: new THREE.Vector3(-10, -15, 0)};
node.parentNode.replaceChild(solvespace(solvespace_model_k526s_body, params), node);
})();
</script>
<div id="k526s-head"></div> <div id="k526s-head"></div>
<script src="/js/models/k526s-head.js"></script>
<script>
(function () {
var node = document.getElementById("k526s-head");
var params = {width: 400, height: 300, scale: 8, offset: new THREE.Vector3(25, 0, 0)};
node.parentNode.replaceChild(solvespace(solvespace_model_k526s_head, params), node);
})();
</script>
{% end %} {% end %}
@ -90,6 +140,14 @@ Then, a fixture was designed, shown below with a cutout (blue). It consists of a
{% layout_treejs() %} {% layout_treejs() %}
<div id="k526s-fixture"></div> <div id="k526s-fixture"></div>
<script src="/js/models/k526s-fixture.js"></script>
<script>
(function () {
var node = document.getElementById("k526s-fixture");
var params = {width: 800, height: 400, scale: 12};
node.parentNode.replaceChild(solvespace(solvespace_model_k526s_fixture, params), node);
})();
</script>
{% end %} {% end %}
@ -98,7 +156,24 @@ The KF25 adapter for the cold head is a much simpler device:
{% layout_treejs(two=true) %} {% layout_treejs(two=true) %}
<div id="k526s-adapter"></div> <div id="k526s-adapter"></div>
<script src="/js/models/k526s-adapter.js"></script>
<script>
(function () {
var node = document.getElementById("k526s-adapter");
var params = {width: 400, height: 300, scale: 8, offset: new THREE.Vector3(-8, 0, 0)};
node.parentNode.replaceChild(solvespace(solvespace_model_k526s_adapter, params), node);
})();
</script>
<div id="k526s-adapter-assy"></div> <div id="k526s-adapter-assy"></div>
<script src="/js/models/k526s-adapter-assy.js"></script>
<script>
(function () {
var node = document.getElementById("k526s-adapter-assy");
var params = {width: 400, height: 300, scale: 8};
node.parentNode.replaceChild(solvespace(solvespace_model_k526s_adapter_assy, params), node);
})();
</script>
{% end %} {% end %}

View File

@ -113,7 +113,7 @@ h3, h2, h1 {
} }
.modal-lg { .modal-lg {
max-width: 60%; max-width: 70%;
} }
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 181 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 354 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Some files were not shown because too many files have changed in this diff Show More