Milkymist One Firmware

From Qi-Hardware
Revision as of 05:15, 28 February 2012 by 213.239.211.82 (Talk)
Jump to: navigation, search

Contents

ChangeLog

2012-02-26

  • Support USB-MIDI controller device, like LV3 and ICON
  • Support rendering multi-image files
  • Cache the compiled patches. no needs to re-compile next time
  • New MIDI document, new pacman and wheel pathces
  • Support // and /*...*/ comments under patch language
  • Support --, <, >, ! under patch language
  • Support semicolons at the end of assignments under patch language
  • New style on pre_frame and pre_vertex
  • Add sound indicator under Audio
  • Show channel number in MIDI monitor, change the channel numbers presented to user one-based
  • Fullscreen preview button under Video Input
  • Enable DMX chain mode by default. act as DMX fixture by default
  • Change the ftpd root to /ssd
  • Save user define ip, gateway, dns. by default using Google Public DNS
  • Sync with latest rtems 2012-02-23 18:09:55 (GMT)

2011-11-29

  • Support the inclusion of user-supplied pictures in PNG and JPG formats into the patches.
  • Support patch mashup.
  • Support selection of composite on any connector, S-Video and Component sources in the GUI.
  • Keyboard shortcuts to switch between composite video sources: F1/F2/F3 to select green/blue/red inputs (respectively).
  • Screenshot shortcut remapped to Ctrl-Pause
  • In simple performance mode, skip "advanced" patches (MIDI/DMX/OSC) and patches that use video input when no video signal is present.
  • Always run DHCP in the background instead of using the regular RTEMS configuration. Use periodic retries in case of failure.
  • Send a black screen instead of no signal during startup.
  • Prevent going outside of /ssd in file dialogs.
  • MIDI/DMX configuration: holding the mouse on the midiX/idmxX label sets the channel on MIDI/DMX events (Werner)
  • New PFPU scheduler from Werner.
  • Improve patch compiler register allocation, so we can use more variables in the patches.
  • Random delay in simple mode.
  • Simplify shutdown dialog.

2011-11-13

  • Use US keyboard layout by default
  • Simple mode: reset timer on manual patch switch
  • Do not allow empty filenames in file dialogs
  • Fix MIDI synchronization (Werner)
  • Fix MIDI over OSC (Werner)
  • Support for upstream RTEMS 4.11
  • Support for upstream YAFFS

2011-07-13

  • Support for French language
  • Automatic update over the internet
  • Online patch pool
  • Keyboard shortcut: Meta key + arrows/enter to move/click the mouse
  • File dialog: search option
  • Simple performance mode options:
    • patch title display at patch switch
    • automatic patch switch after delay
    • L pushbutton for previous patch
  • Keyboard shortcuts to change video input parameters live in rendering mode:
    • F5/F6: brightness +/-
    • F7/F8: contrast +/-
  • Changed F8 "Start rendering" shortcut to F2
  • Changed F8 "Stop rendering" shortcut to ESC
  • MIDI variables
  • OpenSoundControl and IR patch configuration autobuild
  • MIDI and IR: remove capture button, always capture when window is open
  • Update and show system settings dialog box on resolution switch shortcut
  • Disable memory card automount

2011-04-23

  • RSS wall
  • Simple performance mode (just use all patches found in flash)
  • Active pushbuttons:
    • LEFT (PB3/F9): update the entire box over Ethernet, download new patches from shared pool. (To be finalized)
    • MIDDLE (PB2/F10): boot, start rendering some patch right away using simple performance mode. Press again (long press) to turn off.
    • RIGHT (PB1/F11): switch to next patch (in simple performance mode)
  • Support for different keyboard maps: US, French, German
  • Automatic build of patch sets for keyboard and MIDI
  • Display line numbers in patch editor
  • Display explicative dialog box in rescue mode
  • Improved network settings: DNS, gateway
  • Do not load system configuration in rescue mode
  • Renamed /flash to /ssd
  • Web update (incomplete/experimental)
  • F1 key to display patch name when rendering
  • Bugfixes:
    • Crash with autostart when resolution is 640x480
    • All known Ethernet instability problems
    • DHCP IP address not taken when DHCP is enabled at boot
    • Subdirectories not always working on flash
    • First patch dialog box not updated on performance file load

2011-04-06

  • Support for 640x480, 800x600 and 1024x768 resolutions (GUI only)
  • New color theme
  • Quiet autostart mode
  • GUI usability improvements:
    • Mouse wheel scrolling support
    • Delete key working on selected text in editor
    • Ctrl-A selects all text
    • File dialog box: extension filter, hide /dev, open files with double click
    • Scroll bars in patch editor
  • File manager
  • Optional: PDF reader (online help)
  • Selectable wallpaper
  • Screenshots (Xiangfu)
  • More DMX channels
  • Display MTK version
  • Mount memory card in read only mode
  • Optional: LZMA compression of the flash boot image

2010-12-23

  • Video input support
  • Flash upgrade support
  • YAFFS2 flash filesystem
  • Configurable system settings
  • DHCP client support
  • Performance autostart
  • FTP server
  • Telnet server
  • Text messages from OpenSoundControl

2010-11-19

  • Patch rendering support (same features as in the demo renderer)
  • Support patch change on:
    • keyboard events
    • IR events
    • OSC events
    • MIDI events
  • DMX variables
  • OSC variables
  • GUI settings for keyboard, IR, MIDI, OSC, DMX
  • DMX table
  • DMX spy
  • Performance load and save
  • Audio mix table
  • Patch editor
  • Variable monitor
  • Wallpaper

Develop

Milkymist Flickernoise main source code is C. the SDK can download at : http://milkymist.org/updates/2011-11-29/for-rc3/Flickernoise-lm32-rtems-4.11-SDK-for-Linux-x86_64.tar.bz2 the SDK include ALL you needs to develop Flickernoise. if you wnat compile those stuff from scratch. you can look info the scripts file: read the 'Makefile' under this project and the README.html. short intro about the compile steps:

  1. compile the toolchian first
  2. compile rtems
  3. compile libfpvm (lib for rendering)
  4. compile mtk the GUI
  5. compile libs: libpng, jbig2dec, freetype2, mupdf, curl, expat, oscparse
  6. compile rtems-yeaffs2. the filesystem we using in NOR flash
  7. compile the host tools that flickernoise needed : https://github.com/milkymist/milkymist/tree/master/tools
  8. compile Flickernoise.fbi
  9. compile host tools we used to flash. urjtag: git://urjtag.git.sourceforge.net/gitroot/urjtag/urjtag

rtems

rtems is link the OS. if someone want write the Milkymist One driver and interested in real-time OS. then this is a good project look into.

Flickernoise

this is like the application. build with rtems. link the GUI. etc. give us a interface.

Rendering-libs

those libs is for rendering

libs

like: libpng, jbig2dec, freetype2, mupdf, curl, expat, oscparse. people can port more libs to Flickernoise.

Test

  • boot from tftp

when m1 boot to BIOS. press 'ESC'. then type 'netboot' . m1(192.168.0.42) will try to load '/var/lib/tftpboot/boot.bin' under 192.168.0.14.

  • direct flash the result to m1.

using Werner's tools. 'm1nor' under git://projects.qi-hardware.com/wernermisc.git, using script file under git://github.com/milkymist/flickernoise.git/flash

  • reboot by urjtag. save below to m1reboot.sh
#!/bin/bash
BATCH_FILE=`mktemp`
cat > ${BATCH_FILE}<<EOF
cable milkymist
detect
instruction CFG_OUT 000100 BYPASS
instruction CFG_IN 000101 BYPASS
pld reconfigure
EOF

jtag -n ${BATCH_FILE}
rm -f   ${BATCH_FILE}

Debug

Test Plan

  • Webupdate
  • All patches compile and render fine
  • For test filesystem, try to copy from/to Milkymist One by using lftp, filezilla.
  • Input system. keyboard, mice
  • USB-MIDI controller. I have ICON for test
  • react to OSC message. can test by midi2osc.
  • Sound system. MIC, line in and line-out
  • MIDI port by using usb-midi converter.
  • DMX chain mode and DMX controller mode
  • VGA output, 640x480, 800x600, 1024x768
  • Video input. I have one camera for test.
  • IR remode
  • Test switch patches by some saved performance files.

Linux

Our Linux development is focused here: https://github.com/milkymist/linux-milkymist

boot OpenWrt

  1. wget http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-openwrt.minimal-20120127-1251/openwrt-lm32-root.ext4 -O initrd.bin
  2. wget http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkymist-openwrt.minimal-20120127-1251/simpleImage.milkymist_one -O boot.bin
  3. copy them to your tftp folder like /var/lib/tftpboot, change your IP to 192.168.0.14
  4. press 'ESC' while m1 booting. type 'netboot'
Personal tools
Namespaces
Variants
Actions
Navigation
interactive
Toolbox
Print/export