DuinoMite, the Dynamite Maximite Compatible from Olimex.

DuinoMite, the Dynamite MaxiMite Compatible from Olimex.
By Don McKenzie.

Please Note:

Dontronics ships world wide at a current cost of around $12USD internationally for all packages. As an Australian company, we have no mechanism to charge VAT or any state taxes. As most items are low value, customs usually allows these items through. You will generally find our prices cheaper than places like Element14 (Farnell) and Mouser. Order today, we ship tomorrow. In business since 1964, and on email 365 days a year.

Firmware Alternatives:

How about a 12 pin GPIO DuinoMite that is a 100% hardware compatible MaxiMite?

DuinoMite hardware is now supported by Geoff Graham, the MaxiMite designer. Please note that this is limited hardware support, in as much as only 12 of the 20 IDC GPIOs are supported by Geoff's firmware, which is to be expected.

But it does give you a 12 pin GPIO Maximite at a third of the price.

It takes only a few minutes to do a firmware change from the DuinoMite hex file, to the MaxiMite hex file, and just as easy to roll it back into a DuinoMite, if you choose to do so. This means you can build it into what you want very quickly and easily, so you can choose the features you want.

This new MaxiMite version for the DuinoMite  is available for download from: http://geoffg.net/maximite.html#Downloads
Our thanks to Geoff Graham for making this available.

Wish to program the DuinoMite in C?

Olimex Pinguino IDE supports the DuinoMite even now. No need for a special linker script as there is one for the 795 already. Use the existing bootloader that is programmed into the board.
Tsvetan of Olimex.

INTRODUCTION:

DuinoMite is a MaxiMite Compatible Basic computer, originally designed by Geoff Graham, with additional features and Arduino shield like layout. DuinoMite allows you to program in the BASIC language and have VGA and Keyboard interface, so you can develop and write your code in Basic without the need of any computer. You can store your code on the SD-CARD and execute it on power up though autoexec.bas main code. BASIC programs can easily be exchanged and saved to a PC using either a terminal program and a USB connection, or the SD card. An internal flash memory drive can also be used to save up to 256K of programs and files. Development can be done on the USB only connection. Fantastic user support via a very active user forum group.

COMPATIBILITY:

SOFTWARE:
The BASIC is 100% software compatible with the original MaxiMite Version 2.7a, however additional commands and features have been added to the DuinoMite.

HARDWARE:
On the MaxiMite, you have access to 20 external I/O connections, compared to a possibility of 22 on the DuinoMite.

There has been BASIC commands added to control both the SD card, and VGA settings for the five pins that are shared on the DuinoMite. However with the internal A: Ram drive, the shared pins of the SD card shouldn't be of any real concern in most cases. With control over both the SD card and the VGA, this means the full 22 GPIOs can be accessed for most applications.
See:
http://www.duinomite.com/duinomite-how-many-gpios-can-duinomite-drive-independantly/

The DuinoMite uses three real UARTs at full speed. There are no real UARTs in the original MaxiMite design, as all serial I/O is bit banged.

UEXT:
Olimex have designed a special serial port using a 10 pin IDC header. It is available on all DuinoMite boards. In fact, the MEGA has two. One internal, and one external. The DuinoMite is capable of high speed data transfers via this serial port, and carries UART serial communications, SPI, and I2C protocols. The I2C protocol is in theory, capable of having 100+ boards cascaded to the 10 pin IDC header, via a flat ribbon cable daisy chain.
For more information:

http://www.dontronics-shop.com/duinomite-uext-boards.html
http://olimex.com/dev/OTHER/UEXT.pdf

PDF Manual:
The DuinoMite manual currently is 230 pages and growing. The origional MaxiMite manual is 37 pages.

All DuinoMite Documents Link

PRICING and QUALITY:

You will find MaxiMite kits on the market with prices right up to $90. There may be $20 or less worth of parts, including the case. These parts are nothing special, however the retail margin certainly is.

DuinoMite assembled boards can be as little as a third of this price in some cases. And all Olimex DuinoMite boards have carefully selected components to work reliably in an INDUSTRIAL temperature range -25+85C so the board can be used in INDUSTRIAL applications. Check the voltage regulation, and low power battery operation for each board. (NOTE Mini board only has +5 Volt input).

MODES OF OPERATION:

MODE 1 Stand Alone:

Run as a PC, by attaching a VGA monitor, or TV, and a PS2 Keyboard. Save files to the SD card, or the internal flash drive.

MODE 2 Terminal Mode from a PC:

Use any computer that supports a USB port, and a Terminal program, and you can run BASIC Programs, and develop directly from your computer. Save files to the SD card, the internal flash drive, or your PC.

MODE 3 Any combination of the above:

You can run two keyboards, and two screens in parallel, or remove any single item, and the unit will still operate. If you are running the standard DuinoMite board as a controller, and you don't need a keyboard, or screen, you can disconnect the IO board completely.

FEATURES: (Check individual boards for correct specifications as not all boards have all features.)

  • PIC32MX795 microcontroller
  • micro SD card
  • USB OTG which allow it to act both as Host and Device, so it can accept Android ADK, Printers, Cameras, Keyboards, Mouses, etc USB devices.
  • VGA connector
  • Composite Video connector
  • CAN driver and connector
  • RS232 driver and connector
  • two UEXT connectors allowing Olimex modules to be connected one inside the box one outside the box
  • PS-2 keyboard
  • Audio output connector
  • Arduino like format i.e. can work with Arduino shields

DOCUMENTS:

Unfortunately Olimex provide links to files and documents on their product pages, that are file name specific, instead of simply pointing to a directory. When they update a version number for instance, the link is broken, and so is every link on the web that every dealer that has gone to the trouble of placing. I have to edit those links when I get customer complains. As such, I don't intend to chase new links for DuinoMite, as I believe there will be many. I would rather edit an external link, or upload a new file, than to edit multiple products all the time. Please let me know if my file or link is out of date.

All DuinoMite Documents Link

HARDWARE:

The DuinoMite versions will have additional features because of the hardware serial ports ect., plus any other new features Ken Segler Designs, or anyone else adds, like the Full Screen Editor and Terminal program. If Geoff Graham wants to add these to the MaxiMite source, then in the spirit of open source, Geoff, or anyone can add it back into the MaxiMite firmware for the benefit of all users.

DuinoMite New Commands:

DuinoMite "help" Command:

Unzip and save the help zip files onto your SD card in B:\help and type "help" without the quotes.

 

DuinoMite "setup Command:

Type "setup" without the quotes.

 

DuinoMite, the MaxiMite Compatible
There are three new boards being produced by Olimex. Because of the re-mapping of the schematic, we have had to get software assistance with a new boot loader and get the existing MM-Basic firmware patched to match. I chose Ken Segler, (http://www.kenseglerdesigns.com) a Back Shed Forum regular, to carry out this task, as Ken has shown his proficiency with porting the MaxiMite code to other platforms, as well as adding many new routines to MM-Basic.

 

New Boards:
Schematics and all other relevant files are available from:

http://www.duinomite.com/files/index.php?dir=Hardware%2FDontronics%2FOlimex%2F

 

DuinoMite-Mega:

http://www.dontronics-shop.com/olimex-duinomite-mega.html

This fits nicely into a plastic box 130mm x 100mm x 30mm.
The box will be laser cut to allow easy fitting.
Arduino footprint can be seen in the middle of the board, however to make use of this, you would need to remove the cover, or remove the board fully from the case. An external shield adapter board will be available, and is listed below.

DuinoMite Board:

http://www.dontronics-shop.com/olimex-duinomite.html

DuinoMite-I/O Board:

http://www.dontronics-shop.com/olimex-duinomite-io-board.html

This will be two boards that plug into each other with a small IDC flat ribbon cable. It was felt that the VGA and Keyboard connectors could interfere with any shields being added, because of the height of these connectors. It would also allow the board to be more readily used as a stand alone microcontroller without the extra connectors, if the user chose to do this.

Connector to the left of the DuinoMite board, is for the I/O board, and the one to the right is the UEXT Connector. More on this later.

DuinoMite-Mini Board:

http://www.dontronics-shop.com/olimex-duinomite-mini.html

This is without the Arduino shield and is built as a minimum low cost system, yet it will still run as a full Maximite Computer as both Keyboard and VGA connectors are installed on the front edge of the board. This board is 64mm x 50m

DuinoMite-Shield Board:

http://www.dontronics-shop.com/olimex-duinomite-shield-board.html

Can be used on either the DuinoMite-Mega, or the DuinoMite-Mini boards, to add the Arduino footprint to the 26 pin IDC header via a flat ribbon cable.

NOTE **** Shield Adapter Boards:
Dontronics DonDuino Cross was designed for the Maximite, however it will also work on the DuinoMite.
DuinoMite-Shield Board was designed for the for the DuinoMite range from Olimex,
however it will also work on the MaxiMite.

DuinoMite Features:

These features will vary with board type, and possibly there will be various levels of component population, so that users may be able to order boards at reduced costs. Again, to be determined.

Standard features:

- USB
- VGA
- PS/2
- SD card
- GPIO 26 pin connector
- Audio connector
- Composite video connector
- User button, Reset button
- Two LEDs

Possible Additional Features:
(May not be fitted to all boards)

- Arduino connector with compatibe port arrangement i.e. SPI, I2C etc connected on proper pins to make maximal compatibility with Arduino shields
- Real Time Clock with battery backup
- RS232 connector and driver as host i.e. male DB9 connector as on PC
- CAN will open industrial and automotive applications
- USB-OTG functionality i.e. USB host/USB device, this is not so expensive but I think it important to have as will allow this board to be used as Android ADK as well, if you do not know what is this, it's easy way to interface Android tablets and phones, here is demo on Microchip site http://www.microchip.com/microchip.webcontent.provider/Video.aspx?id=HXhgJvFQ6v8
- DC/DC power supply to allow wide range 9-30V input power supply adapters to be used
- Li-polimer charger and battery connector, this will allow the board to work with Li-Po batteries
- UEXT enables WiFi, Zigbee, Ethernet, RELAY-IO, RFID etc modules to be connected
- Ethernet on board will just rise the cost, once we have UEXT we can connect MOD-ENC28J60 or MOD-WIFI to implement internet /ethernet connectivity.

NOTE ****
UEXT Connector is available on all boards.

 

The World's First Arduino Computer
I believe the DuinoMite-Mega version is the correct model to call "The World's First Arduino Computer", as it is not only boxed, but is a complete computer system in the true sense of the word. OK, you can't get to the Arduino footprint without an adapter, or taking the top cover off, but the shield footprint is there for users, if they choose to go this way.

But I know there will still be the knockers that will spin the facts around, and say otherwise. :-)

If one of these boards doesn't cover the definition of "Arduino and Computer", then nothing ever will.

And there may well be a user application that needs perhaps the CAN feature, as well as an off the shelf Arduino shield, so they may fit it all into a new case, or not even have a case at all.

Already the Maximite has been adapted to run TRS-80 Basic, as well as Unix, and there is no reason why it can't be used for C language development, the same as the Pinquino board has done in the past.

TRS-80 Model I, level II on a PIC32 See:
http://kenseglerdesigns.com/cms/sites/default/files/trs-80.jpg
for the thread:
http://www.thebackshed.com/forum/forum_posts.asp?TID=3937&PN=1

Maximite Computer now running Unix, 2.11BSD. Thread at:
http://www.thebackshed.com/forum/forum_posts.asp?TID=3925&PN=1

 

Posted in News | Tagged , , , , , , | 2 Comments

Run DuinoMite as a micro SD card reader.

Here is a silly little simple program, but it proves the point nicely.

autorun.bas

 

Code:
10 REM Run DuinoMite as a micro SD card reader.
20 MSDON

No keyboard, no VGA, no terminal program, but it works as a reader provided you have the autorun.bas file on board to tell the DuinoMite what to do.


Simply becomes an extra drive on your PC.

You can now run your favorite text editor, and files manager on this additional drive, just like it was connected directly to your PC or notebook.

Cheers Don…

Posted in Applications | Tagged , , , , , | Leave a comment

DMbasic for Duinomite’s Updates here

DMbasic for Duinomite's Updates here

Unread postby codeman » Fri Feb 17, 2012 8:12 am

Going to be a long post :shock:
DMBasic 2-16-2012 ksd

changes in this version
Usb is now a composite device CDC-Serial and Mass Storage
GameDuino support
Load VGA Binary Fonts
Load BMP's

USB
CDC-Serial works the same as before new driver thats all ..
Mass Storage when in basic you can use the MSDON command to enable . should show up on your pc as a drive and on the DM side it will say "Hit a key when done" and when you press a key on the DM it will exit Mass Storage mode. can't have pc and DM accessing the sdcard at the same time ..

GameDuino
http://excamera.com/sphinx/gameduino/
!! Uses pin 7 as CS !!
Option in setup to init GameDuino at power up and set 60hz or 72hz
GBWRITEB address,data //write a byte to gameduino
GBWRITEW address,data //write a word to gameduino
GDLOADF "sprite.img",RAM_SPRIMG //will load the sprite images from sdcard to GameDuino or any other area
GDSPRITEC sprite,x,y,image,palette,rot,jk //controls sprites
GDVOICES voice,wave,freq,lvol,rvol //controls voices

defines to include
20 ' Defines below for GameDuino Address's
30 RAM_PIC=&H0000:RAM_CHR=&H1000:RAM_PAL=&H2000:IDENT=&H2800:REV=&H2801
40 FRAME=&H2802:VBLANK=&H2803:SCROLL_X=&H2804:SCROLL_Y=&H2806:JK_MODE=&H2808
50 J1_RESET=&H2809:SPR_DISABLE=&H280A:SPR_PAGE=&H280B:IOMODE=&H280C
60 BG_COLOR=&H280E:SAMPLE_L=&H2810:SAMPLE_R=&H2812:MODULATOR=&H2814
70 VIDEO_MODE=&H2815:MODE_800x600_72=&h00:MODE_800x600_60=&H01
80 SCREENSHOT_Y=&H281E:PALETTE16A=&H2840:PALETTE16B=&H2860
90 PALETTE4A=&H28080:PALETTE4B=&H2888:COMM=&H2890:COLLISION=&H2900
100 VOICES=&H2A00:J1_CODE=&H2B00:SCREENSHOT=&H2c00
110 RAM_SPR=&H3000:RAM_SPRPAL=&H3800:RAM_SPRIMG=&H4000

see demo.bas
———————————————————————————
Load VGA Binary Fonts
FONT LOADB "test.f08" as #5
it will assume 8bits wide fonts .

see fonts.bas
———————————————————————————
Load BMP Files
LOADBMP "FILE.BMP",x,y,mode
Defaults to loading BMP with top left corner at 0,0 unless x and y are specified. Optional mode allows BMP to be
inverted (white=black etc) if mode=128.
———————————————————————————

FONTS.BMP
FONTS.BMP (25.37 KiB) Viewed 1 time

fntcol16.zip
some good fonts
(430.22 KiB) Not downloaded yet

DMBasic-2-16-2012.zip
Hex file
(332.7 KiB) Not downloaded yet

DM-GD.zip
complete GameDuino Demo
(8.04 KiB) Not downloaded yet

demo.bas
———————————————————————————
10 'OPEN "com3:115200" AS console
20 ' Defines below for GameDuino Address's
30 RAM_PIC=&H0000:RAM_CHR=&H1000:RAM_PAL=&H2000:IDENT=&H2800:REV=&H2801
40 FRAME=&H2802:VBLANK=&H2803:SCROLL_X=&H2804:SCROLL_Y=&H2806:JK_MODE=&H2808
50 J1_RESET=&H2809:SPR_DISABLE=&H280A:SPR_PAGE=&H280B:IOMODE=&H280C
60 BG_COLOR=&H280E:SAMPLE_L=&H2810:SAMPLE_R=&H2812:MODULATOR=&H2814
70 VIDEO_MODE=&H2815:MODE_800x600_72=&h00:MODE_800x600_60=&H01
80 SCREENSHOT_Y=&H281E:PALETTE16A=&H2840:PALETTE16B=&H2860
90 PALETTE4A=&H28080:PALETTE4B=&H2888:COMM=&H2890:COLLISION=&H2900
100 VOICES=&H2A00:J1_CODE=&H2B00:SCREENSHOT=&H2c00
110 RAM_SPR=&H3000:RAM_SPRPAL=&H3800:RAM_SPRIMG=&H4000
120 DIM RDBuff(6):DIM S(255):DIM rot(10)
130 SETPIN 13,6,1570
140 SETPIN 0,6,1340
150 GDLOADF "sprite.pal",RAM_SPRPAL
160 GDLOADF "sprite.img",RAM_SPRIMG
170 GDLOADF "image.chr",RAM_CHR
180 GDLOADF "image.pal",RAM_PAL
190 GDLOADF "ken.cop",J1_CODE
200 GDWRITEB IOMODE,&h4A
210 GDWRITEB COMM,300 ' start of vblank
220 GDWRITEB J1_RESET,0
230 GOSUB 1240
240 i2caddr = &h52
250 I2CEN 100,100
260 I2CSEND i2caddr,0,2,&hf0,&h55
270 I2CSEND i2caddr,0,2,&hfb,&h00
280 DATA 11,27,12,28,13,29,14,28,15,30,16,31,17,32,18,33
290 DATA 19,34,20,35,21,36,22,37,23,38,24,39,25,40,26,41
300 DIM sintab(512)
310 FOR xx=512 TO 0 STEP -1
320 sintab(xx)=SIN(xx/25.0)*25+30
330 NEXT
340 RANDOMIZE TIMER:x=0:y=0:ch=0:hit=0
350 FOR x=0 TO 4096
360 GDWRITEB x,GDREADB(COMM+2)/28 'INT(RND()*11)
370 NEXT
380 sx=200:sy=265
390 FOR f=0 TO 15
400 READ a
410 GDWRITEB 1169+f,a
420 READ a
430 GDWRITEB 1233+f,a
440 NEXT
450 k=0:r=1:fire =0:update=5:x=192:dir=0:color=0:oldcolor=0
460 f=1
470 SETTICK 50,950
480 GDSPRITEC 0,400,400,55,0,0,0
490 xx=416
500 I2CSEND i2caddr,0,1,&h00
510 I2CSEND i2caddr,0,1,&h00
520 I2CRCV i2caddr,0,6,RDBuff(0)
530 IF done=1 THEN xx=416 ELSE xx=xx-1
540 IF xx > 0 THEN GDSPRITEC 10,xx-16,sintab(xx),26,0,rot(1),0
550 IF xx <384 AND xx+16 >0 THEN GDSPRITEC 11,xx,sintab(xx+16),43,0,rot(2),0
560 IF xx < 384 AND xx+32 > 0 THEN GDSPRITEC 12,xx+16,sintab(xx+32),31,0,rot(3),0
570 IF xx < 384 AND xx+48 > 0 THEN GDSPRITEC 13,xx+32,sintab(xx+48),36,0,rot(4),0
580 IF xx < 384 AND xx+64 > 0 THEN GDSPRITEC 14,xx+48,sintab(xx+64),37,0,rot(5),0
590 IF xx < 384 AND xx+80 > 0 THEN GDSPRITEC 15,xx+64,sintab(xx+80),35,0,rot(6),0
600 IF xx < 384 AND xx+96 > 0 THEN GDSPRITEC 16,xx+80,sintab(xx+96),31,0,rot(7),0
610 IF xx < 384 AND xx+112 > 0 THEN GDSPRITEC 17,xx+96,sintab(xx+112),42,0,rot(8),0
620 IF xx < 384 AND xx+128 > 0 THEN GDSPRITEC 18,xx+112,sintab(xx+128),27,0,rot(9),0
630 IF xx > 0 THEN GDSPRITEC 20,xx-16,284,29,0,0,0
640 IF xx <384 AND xx+16 >0 THEN GDSPRITEC 21,xx,284,23,0,0,0
650 IF xx < 384 AND xx+32 > 0 THEN GDSPRITEC 22,xx+16,284,35,0,0,0
660 IF xx < 384 AND xx+48 > 0 THEN GDSPRITEC 23,xx+32,284,27,0,0,0
670 IF xx < 384 AND xx+64 > 0 THEN GDSPRITEC 24,xx+48,284,26,0,0,0
680 IF xx < 384 AND xx+80 > 0 THEN GDSPRITEC 25,xx+64,284,43,0,0,0
690 IF xx < 384 AND xx+96 > 0 THEN GDSPRITEC 26,xx+80,284,31,0,0,0
700 IF xx < 384 AND xx+112 > 0 THEN GDSPRITEC 27,xx+96,284,36,0,0,0
710 IF xx < 384 AND xx+128 > 0 THEN GDSPRITEC 28,xx+112,284,37,0,0,0
720 'IF xx < 384 AND xx+144 > 0 THEN GDSPRITEC 29,xx+128,284,40,0,0,0
730 IF xx+176 = 0 THEN done=1 ELSE done = 0
740 IF (RDBuff(1) AND &h3f) >35 THEN sy=sy-1
750 IF (RDBuff(1) AND &h3f) < 30 THEN sy=sy+1
760 IF (RDBuff(0) AND &h3f) < 30 THEN sx=sx-1
770 IF (RDBuff(0) AND &h3f) > 35 THEN sx=sx+1
780 IF sx > 384 THEN sx=384
790 IF sx < 0 THEN sx=0
800 IF fire=1 THEN GOTO 820
810 IF RDBuff(5)=251 THEN fire=1:xf=sx:yf=sy:freq=200:GOSUB 1360
820 'IF sy < 150 THEN sy=150
830 IF sy >265 THEN sy=265
840 GDSPRITEC 253,sx,sy,50,0,0,0
850 y=y-1
860 GDWRITEW &h2806,y
870 GOSUB 890
880 GOTO 500
890 GDWAITVBLANK
900 IF GDREADB(&h2803)= 1 AND GDREADB(&h29fe) <> 255 THEN hit=GDREADB(&h29fe)
910 IF hit <> 0 THEN s(hit)=0:yf=-1:PRINT hit,s(hit)
920 'IF hit > 9 AND hit < 19 THEN IF rot(hit-9) =0 THEN rot(hit-9)=2
930 hit=0;
940 RETURN
950 '
960 update=update-1
970 IF update=3 THEN GDWRITEW BG_COLOR,GDREADW(COMM+2) 'GDRGB(255,255,255)
980 IF update=6 THEN GDWRITEW BG_COLOR,GDRGB(128,128,128)
990 IF update = 8 THEN GOSUB 1440
1000 IF update = 0 THEN update = 10 ELSE GOTO 1130
1010 n=128
1020 FOR xz=30 TO 275 STEP 25
1030 xs=xz+25
1040 IF f=1 AND s(n)=1 THEN GOSUB 1180 ELSE GDSPRITEC n,400,400,0,0,0,0
1050 IF f=0 AND s(n)=1 AND s(n+10)=1 THEN GOSUB 1210
1060 n=n+1
1070 NEXT
1080 IF r=1 THEN k=k+3
1090 IF r=0 THEN k=k-3
1100 IF k=60 THEN r=0
1110 IF k=0 THEN r =1
1120 IF f=1 THEN f=0 ELSE f=1
1130 IF yf<0 THEN fire=0:GDSPRITEC 254,400,400,55,0,0,0
1140 IF yf<0 THEN GDVOICES 0,0,0,0,0:GOSUB 1400:GOTO 1170
1150 'GOSUB 880
1160 IF fire=1 THEN GDSPRITEC 254,xf,yf-15,55,0,0,0:yf=yf-5:GOSUB 1360
1170 IRETURN
1180 GDSPRITEC n,xs+k,70,52,0,0,0
1190 GDSPRITEC n+10,xs+k,90,54,0,0,0
1200 RETURN
1210 GDSPRITEC n,xs+k,70,51,0,0,0
1220 GDSPRITEC n+10,xs+k,90,53,0,0,0
1230 RETURN
1240 FOR f=0 TO 255:s(f)=1:NEXT
1250 RETURN
1260 ? ".":GOTO 1280
1270 FOR h=0 TO 255:s(h)=0:NEXT
1280 IRETURN
1290 ' Vblank interrupt
1300 IF GDREADB(VLANK) = 1 THEN PRINT "."
1310 IF GDREADB(&h29fe) <> 255 THEN hit=GDREADB(&h29fe)
1320 IF hit <> 0 THEN s(hit)=0;yf=-1:? hit:hit=0
1330 IRETURN
1340 PRINT "button pushed"
1350 IRETURN
1360 ' shoot
1370 GDVOICES 0,freq,0,128,128
1380 freq=freq+100
1390 RETURN
1400 'explode
1410 GDVOICES 1,4000,1,128,128
1420 GDVOICES 1,0,1,1,1
1430 RETURN
1440 '
1450 FOR ro =1 TO 10
1460 IF s(ro)<>0 THEN GOTO 1520
1470 IF rot(ro)=3 THEN rot(ro)=0:GOTO 1520
1480 IF rot(ro)=6 THEN rot(ro)=3
1490 IF rot(ro)=5 THEN rot(ro)=6
1500 IF rot(ro)=0 THEN rot(ro)=5
1510 s(ro)=0
1520 NEXT
1530 ' hide ship
1540 GDSPRITEC n,400,400,0,0,0,0:GDSPRITEC n+10,400,400,0,0,0,0
1550 RETURN
1560 RETURN
1570 IRETURN

fonts.bas
————————————————————————
10 CLS
20 FONT LOADB "thin_ss.f08" AS #5
30 FONT #5,1,1
40 PRINT "THIN_SS.F08";
50 FOR t=0 TO 255:PRINT CHR$(t);:NEXT
60 FONT #1:FONT unload #5:?:?
70 FONT LOADB "art.f16" AS #5
80 FONT #5
90 PRINT "ART.F16";
100 FOR t=0 TO 255:PRINT CHR$(t);:NEXT
110 FONT #1:FONT unload #5:?:?
120 FONT LOADB "antique.f14" AS #5
130 FONT #5
140 PRINT "ANTUQUE.F14";
150 FOR t=0 TO 255:PRINT CHR$(t);:NEXT
160 FONT #1:FONT unload #5:?:?
170 FONT LOADB "MEDIEVAL.f14" AS #5
180 FONT #5
190 PRINT "MEDIEVAL.F14";
200 FOR t=0 TO 255:PRINT CHR$(t);:NEXT
210 FONT #1:FONT unload #5:?:?
220 'FONT LOADB "vga-rom.f08" AS #5
230 'FONT #5
240 'PRINT "vga-rom.f08";
250 'FOR t=0 TO 255:PRINT CHR$(t);:NEXT
260 'FONT #1:FONT unload #5:?:?
270 FONT LOADB "lcd.f14" AS #5
280 FONT #5
290 PRINT "LCD.F14";
300 FOR t=0 TO 255:PRINT CHR$(t);:NEXT
310 FONT #1:FONT unload #5
320 SAVEBMP "fonts.bmp"
330 a$=INKEY$
340 IF a$="" THEN GOTO 330

 

Posted in GPIO & Firmware | Tagged , , , | Leave a comment

Duinomite-mega, mini computer based PIC32 (derived from maximite)

Duinomite-mega, mini computer based PIC32 (derived from maximite)

http://x2t.com/DuinoMite-review in French (Google translated)

Hello world! :)

Today I will present the mega-card duinomite manufactured by Olimex.

But before starting a bit of history ;)
Originally the project was created "maximite" by Geoff Graham, a "mini computer" programmable MMbasic, a language derived from the Basic spaghetti.
The map project was very maximite sober, she did nothing extraordinary.
Dev of the Olimex have had the idea to embark on a map based on the project maximite, but with a max of cool accessories and additions to the language MMbasic functionality to manage everything.
Thus was born the duinomite series, the most basic card duinomite, to further the mega-duinomite.

To give you an idea here maximite the project site:
http://www.themaximitecomputer.com/
and Olimex page of mega-duinomite:
http://www.olimex.com/dev/duinomite-mega.html

I'll talk about in this test only the mega-duinomite card, but cards duinomite normal has the same functionality, you just provide more card connectors that go.

Incidentally Olimex is now testing a new version called duinomite-EMEGA, with an e before mega for ethernet.
This new version will have an ethernet port, a flash storage chip and full of stuff and more!

-

In short, enter the heart of the matter :)

As always with cards manufactured by Olimex, they are carefully packed in a box with bright colors.
Is not to say I love boxes of Olimex, but I love their content more :)

History does not change the habits, the card is packaged in a simple anti-ESD bag, without the fuss.
Always with a view "cheap but complete" Olimex.
By cons I've enjoyed seeing a little bit of foam, cardboard or a wedge, to hold the card in its box, as during transport the LED on the side were a little twisted (but nothing serious).

So as I said at the beginning, the program will duinomite MMbasic, but not that!
It is also possible to use MPLAB IDE or pinguino duinomite to program.
Basically it is possible to program in c + + duinomite in "arduino", or MMBasic.
Go to my being given a card that I have pinguino I will only use language MMbasic.
The duinomite is a true mini computer, she can walk alone (with a keyboard and monitor), or in duet with a computer (via USB port or RS232).

Duinomite why?
From what I understood from Olimex dev want to keep the side "maximite" but also give an impression of an explosion (of features).
So they found the name "duinomite", a mix of "maximite" and "dynamite".

(Warning this will blow up!)

Let's talk about language MMbasic.
The language is derived from the language MMbasic basic "spaghetti", who are already seen or used an "old" computer, amiga, TRS80, etc. will probably already seen the syntax:
1 PRINT "Hello"
2 PAUSE 1000
3 GOTO 1

(In some forum signatures can also see this kind of syntax ;) )

The basic advantage is that it is very easy to learn.
The only disadvantage is that the basic code is interpreted and not compiled, so timeliness is less compared to a c + + native code.
But here it is not very serious because the duinomite is powerful enough to almost instantly interpret any command MMbasic.
(30 K instructions per second according to my test)

CPU level, the mega-duinomite is powered by a PIC32MX795, in other words a true powerhouse.
I will not detail all the functionality of the cpu, because it would not really useful in the sense that it is the interpreter that handles all MMbasic.
All that need be said is that it is a 32bit cpu, with lots of ram and flash enough to do things totally impossible with an arduino card for example.

Arduino is talking about!
The mega-duinomite has a connector (finally a series of connectors) to the "form factor" arduino UNO.
It is therefore possible to use arduino shields (rotatable in 3v3) with duinomite.
Suffice to say that the possibilities are endless!
And as always with thoughtful cards, there are parallel the "arduino connector", a series of pitch connectors "classic" to be able to do it yourself, its own shield if desired with a single hole plate.

Note the small top ICSP connector for connecting a debugger / programmer for PIC and the 32KHz crystal for the RTC's integrated PIC32.
(Side note: quartz has been welded a bit anyhow, as can be seen in the picture. Would he appear among Olimex? Go for it once it passes :) )

Like any Olimex cards, the mega-duinomite has a port for connecting UEXT seamless, or wiring, various types of probes / sensors / external modules called "MOD".
The "MOD" the most interesting being the MOD-PSTN, ie a card with a DS1307 to using a simple command MMbasic store / read the time and date.
But there are many other "MOD" as mod-IR to send / receive frames of infrared remote control, the MOD-GSM to communicate with GSM, etc. etc.

The duinomite also has an SD card slot, for storing programs and various data useful.
It is also possible to store / edit / manage programs from the SD card directly from the console MMbasic, and even save a bitmap screenshot of the console.
Note that it is also possible to store small program directly in the flash of the PIC32 via the named virtual drive A: (B: for the SD card).

(Note also the second port on the side UEXT)

The power of the card is over either the USB or external power.
By I use for my usb port for food because I noticed that my TV has a USB port that can be managed with the remote (the TV goes off -> turns off the duinomite, practice!).
The power supply accepts 9v to 30v DC, any commercially available AC adapter will therefore be the case.
Note that the USB port also serves as a virtual serial port usb when connected to a computer, and everything that happened to virtual serial port is sent on both the screen and the console 232.
The USB port is also used for updating via a small application "HID Bootloader" provided on the website of Olimex.

The duinomite also has a DIL connector with a number of pins, and to make the duinomite interact with the outside world by the bias pin digital, analog, SPI, I2C, serial port, etc …
Bonus, the mega duinomite also has a CAN bus for designing applications for the automotive field.

CAN bus has the distinction of being wired to an extractable terminal. This is the kind of small details that shows the design work provided by the team Olimex.

Let's talk a little more detail the connection!

First of all the mega-duinomite has a connector for PS / 2 keyboard, this one allows, with a screen, write, debug and run programs without needing a computer or other materials.

The mega-duinomite also includes an RS232 port with which it is possible to have a console MMbasic, or to communicate with devices using an RS232 connection.

As I evoked above, it is possible to connect a monitor on the mega-duinomite To view and modify a program without a computer.
You can connect a monitor, a choice is made via the composite or via the VGA socket.

(The VGA port)
In all cases with the mega-duinomite "normal" (not the ethernet version) it is possible to have an image in black and white.
It was not until version EMEGA for color images.

It is also possible to connect the mega duinomite to an audio input jack for composite or to use sound generation by the PIC32 PWM.

Similarly it is also possible to connect a lipo battery (or lion) directly to the mega-duinomite to make it fully autonomous.

The mega-duinomite has three status LEDs, indicating the state of cpu, and two push buttons, one for reset, and another to activate the bootloader.

As always with Olimex, the skillscreen and the pcb is excellent!
Nothing to say on that side, except that there is no indication on the jumper, pins, etc … as is usually the case, weird …

Anyway one thing is, we do not mess with the quality at Olimex!
The same tracks are very fine quality foolproof, it's almost surprising that such small tracks can be as strong!

Likewise the pads are not welded to a beautiful golden color, a sign that they were chemically protected against oxidation.

For all documentations, unlike usual (or normally there are only a few rare documents), here there are a countless number of documents and examples!

So you go on the page of the duinomite for more info: http://www.olimex.com/dev/duinomite-mega.html (part DOCUMENTS)

My conclusion:
The mega-duinomite is a marvel, what must it follow my blog saying that I take much to amaze me, but now I'm really on the c *!
A hardware clean, quality, totally flawless, with a simple programming language and well documented. What more?
The qwerty keyboard support (for the moment it is imperative to have a qwerty keyboard, or know the location of keys on a qwerty keyboard)? No problem!
It is provided in MMbasic 3.1! The command should be "CONFIG KEYBOARD FR" normally.

Ps: I do not débâterai action Maximite Dev Project, which made the source code from firmawre 3.0 "closed source" (and therefore more open source at all).
If I start from on the subject there shall have enough to do an entire article … so stay on the Olimex hardware and the software I have no idea yet.

Discussion

 

2 Responses to "[Review] Duinomite-mega, mini computer based PIC32 (derived from maximite)"

  1. Convenient for home automation, it makes me interested = D

    Posted by Nicolas Di Nunno (@ zilator) | February 16, 2012, February 14 44 02 442

     

     

    • The next version will be even with ethernet other interesting home automation I think (color display, Ethernet, flash memory, …), for the coup against firmware became "closed source" is not cool to hack the firmware and add house functions = (

      Posted by skywodd | February 16, 2012, March 15 13 02 132

       

 

Posted in News | Tagged , , , , | Leave a comment

DuinoMite: Very simple D to A convertor.

 
Dev to Dev
 
Posted by YT2095 on Feb 15, 2012 2:45:09 AM

 

Comments (3)
Add a comment
  • YT2095

    YT2095 Feb 15, 2012 4:16 AM

    unsigned char count;

    void setup()

    {for (int  i = 0; i < 8; i++){  

    pinMode(i, OUTPUT);      

    }}

    void loop()

    {PORTD = count++;

      delayMicroseconds(2000);

    }

     

    that was the code for the Arduino Nano part to generate the Ramp.

     

    this (If I can do it) will be the code for the Duinomite scope:

     

    nope, it`s still saying: Insert link, insert image, allignment and insert table

    sorry guys, i`ll try a new reply and see if I can fluke my way through it again.

     

  • YT2095

    YT2095 Feb 15, 2012 4:18 AM (in response to YT2095)

    10 SETPIN 1,1

    20 CLS

    30 FOR I=0 TO 479

    40 PIXEL(I,(PIN(1)*128))=1

    50 NEXT

    60 GOTO 20

     

    did it!!!!! (no idea How, but I did it!)

     

  • Drew Fustini

    Drew Fustini Feb 15, 2012 4:55 AM

    Cool project – you've got me excited to try my hand at a R2R DAC.  I've only done 'dirty' DAC before for microcontroller audio generation by putting PWM output through a low pass filter.

 

Posted in Applications | Tagged , , , | Leave a comment

Running StickOS BASIC on DuinoMite-Mega

http://olimex.wordpress.com/2012/02/12/running-stickos-basic-on-duinomite-mega/

Image

StickOS is BASIC interpreter which runs on Microchip PIC32 and Freescale MCF52XX microcontrollers. Recently in release 1.92 support for DuinoMite-Mega was implemented so I did a test drive this weekend.

To install StickOS on DuinoMite is very easy, you should go in bootloader mode and start DuinoMite bootloader then to load this HEX: http://www.cpustick.com/downloads/StickOS.PIC32.DuinoMite-Mega.v1.92d.elf.hex and then if you are on WIndows you need this INF file for the USB VID/PID which StickOS uses: http://www.cpustick.com/cpustick.inf

when you program the HEX code and press reset new COM port will be created you can use your terminal program of choice to connect to this port and you will see:

Welcome to StickOS for Microchip PIC32MX7-F512H DuinoMite-Mega v1.92d!
Copyright (c) 2008-2012; all rights reserved.

http://www.cpustick.com

support@cpustick.com
(checksum 0xe2e6)
>

StickOS pre-tokenize BASIC command and do syntax check while you enter your code

This is good as it speeds the execution of the code later also it prevent you to write code with syntax errors.

For instance if you want to write:

>10 non-existing command
^ – error

you will receive this error message and nothing will be stored to line 10

pre-tokenizing the source allow later the interpreter to switch the statements with single byte  comparison instead the multiply byte comparison which MM/DM BASIC does and this allow speed increase, another speed increase feature is that StickOS uses just the real PIC32 peripherials and do not make bit-banging as MM BASIC does, this result it x4 times faster execution:

10 dim a
20 configure timer 1 for 1 s
30 on timer 1 do print a
40 for a = 1 to 200000
50 next

prints 112518 BASIC instructions per second

what I missing in StickOS is:

- no VGA and PS2 keyboard support

- no SD card file system

- print command is very simplified

- not open source, although there is mechanism to add new commands by skeleton source which links the core basic as pre-compiled object code

It’s very easy to go back to MM/DM BASIC by simply entering bootloader mode and re-loading the HEX file for MM/DM BASIC.

If you want to give it try to StickOS BASIC you can first learn the commands by reviewing these PDFs:

Quickstart guide

http://www.cpustick.com/downloads/quickref.v1.90.pdf

and user manual

http://www.cpustick.com/downloads/stickos.v1.90.pdf

Posted in News | Tagged , , , , | 1 Comment

MaxiMite, DuinoMite & CGMMSTICK1 GPIO Tester.

All Dontronics Maximite Computer products are located at: http://www.dontronics-shop.com/the-maximite-computer.html

This product can be found at: http://www.dontronics-shop.com/test-a-mite.html

This device attaches to the 26 pin IDC male header at the rear of your Maximite or DuinoMite. It also has provision for a 30 pin header that is compatible with the CGMMSTICK1 pinout.

Mick Gulovsen designed a tester PCB (called Test-A-Mite) that will put the MaxiMite and DuinoMite through its paces and test the following features are working correctly on our `mites.

Analog Input
Digital Input & Output
Frequency Input
Period Input
Count Input

It also has a few LED Demo routines for Fun and lets face it who doesnt like fun..

Fun LED chases as follows:

Simple LED Chase
LED Bar Graph Display
LED Cross Over
Binary Counting

All information can be found HERE including some short video clips of a DuinoMite-mini connected to the Test-A-Mite doing each of the Fun LED chases

The schematic and part list is all available above so it is not too hard to make your own, or PCBs are available from Dontronics for $5.95AUD, or $7.95AUD including World wide Postage in a LETTER

NOTE ***

This PCB can also be used as a CGMMSTICK1 to 26 pin IDC connector adapter board.

The Test-a-Mite

We can post off the Test-a-Mite bare printed circuit board in a letter, world wide at a very cheap rate. In fact, we will do it for an extra $2. See this Page for details: 
www.dontronics-shop.com/test-a-mite-letter.html

This is an all through hole design, so the user can build it easily themselves. Anyone who has done a little electronics work, should have very little trouble soldering this kit together.

The board measures 81.3mm by 71.1mm (3.2" by 2.8") , 1.6mm thickness.

As many parts may be awkward to chase up, we have given detailed instructions on where they can be obtained in the PDF manual.

The parts we do have readily available are listed in the bundled groups of prices below. This includes a R/A 26 pin IDC female connector, and a R/A 26 pin IDC male connector for the input and output of this board.

You may also like to purchase a 26 pin 10cm IDC Female to Female header cable. This may be handy if your board design doesn't allow the Test-a-Mite to plug straight into the MaxiMite, or DuinoMite board. At times, power cables, USB cables, or other connectors, may be blocking your path. Check this out. You may need a cable.

Prices: We have set up prices starting at $5.95 for a PCB only, to $12.95 for the parts we have available:

Bare Test-a-Mite PCB: $5.95AUD
Bare Test-a-Mite PCB

Bundle A: $9.95AUD
Bare Test-a-Mite Printed Circuit Board, plus a 26 pin 10cm IDC Female to Female header cable.

Bundle B: $8.95AUD
Includes Test-a-Mite PCB
plus a R/A 26 pin IDC female connector, and a R/A 26 pin IDC males connector.

Bundle C: $12.95AUD
IncludesTest-a-Mite
PCB plus a 26 pin 10cm IDC Female to Female header cable, plus a R/A 26 pin IDC female connector, and a R/A 26 pin IDC males connector.

The Bundled kits do not include all parts. Only the items included above.

 


Software Download:

All software can be downloaded from: HERE

Schematics and all other relevant files are available from: HERE
 


Support:

If you need additional support on the above product, and you can't find the information you need in the documentation, then please contact support at the address below:


Support Forum:
http://www.kenseglerdesigns.com/cms/forums/index.php
http://www.thebackshed.com/forum/forum_topics.asp?FID=16&PN=1

This product is from: Dontronics

The Maximite Computer Blog
http://www.duinomite.com/

 

Posted in News | Tagged , , , , , , | Leave a comment

DuinoMite: Ultra Budget Computer System for slot cars.

http://www.auslot.com/forums/index.php?/topic/14672-ultra-budget-computer-system/

If you'd like a 4 lane computer system for your track for under $100 dollars then please read on.

I found these at http://www.dontronics-shop.com/

Posted Image Posted Image

They are Duinomite boards by Olimex (based on the Maximite by Geoff Graham), they have a mono VGA output, PS2 keyboard input, 26 pin IO port, MicroSD card socket, plus other stuff we don't need.

The one on the left is the Duinomite Mini and it retails for $33.35. On the right is the Duinomite Mega which retails for $50.08. After a quick perusal of the specs I thought these would be perfect for an ultra budget slot racing system. Either board will do the job but I purchased the Mega because it has a more tolerant power requirement, 9v to 30v, whereas the Mini requires 5v regulated, any more and the smoke escapes.
Also there is a pretty box available for the Mega for $16.65, and here it is -

Posted Image

I didn't buy the box because this is supposed to be an Ultra Budget project and I'd already splurged on the bigger board.

Upon arrival of the board I scrounged up an old PS2 keyboard and an LED monitor and went to work. After checking the IO port specs I made up a simple test board with 4 buttons and 4 LEDs and started on the software. It took longer to make the test board than to write the software, so be gentle with criticism please – here's how stage 1 looks

Posted Image

It's pretty basic at the moment but it provides lap counting and timing and displays the best lap time and the last 9 lap times for each lane. Function keys 1 to 4 reset the laps and times on the relevent lanes and the space bar turns the track power on and off. I've set it up with 4 outputs for individual control of the lanes and have already started on the qualifying and race programs although they are much more complex and will be a "spare time" job. It would take very little work to add single lane lap races to the current software but I'll make up a decent test rig with buzzer and lights first.

Software can be downloaded here – http://johnsonsystem…1/DSoftware.txt

If you're still interested here are some specs.

The board uses a 32 bit PIC chip running at 80MHz which handles all functions and runs a basic interpreter.
The basic interpreter can run about 30,000 lines of code per second.
The board boots into a basic prompt unless it finds a file named "AUTORUN.BAS" on either it's internal drive or the SD card then it will run that.
Lap counter inputs are handled by an interrupt on IO pin change and timing when checked against a know good source is accurate to +/- 1ms plus rounding errors, so say +/- 2ms
Video resolution is 480 x 432 Mono (that's black and white only)
The screen title and lane names can be easily changed in the software.

The software requires MMBasic 3.1 which allows for 12 IO lines which I've allocated thus -

4 Inputs – Lap Counters – Interrupt on change either low to high or high to low (easily changed with 1 number in the software)
4 Outputs – Track Relays – Digital IO
1 Output – track On/Off indicator – probably use a SPDT relay to drive red/green LEDs or lights
1 Output – Buzzer – the board has a speaker connector but not all monitors have speakers
1 Input – Track Call Button
1 IO spare – I had an idea for this but I've forgotten what it was. Old age is a b!tch.

For the rest of the software I intend to start with a qualifying program and a round robin race program to take up to 50 entries. This will fit into the devices memory without problems. Bells and whistles will be added as needed and possible.

I think this is a worthwhile project for people with small tracks and/or budgets so if anyone is interested and wants more info please post questions on this thread.
Cheers,

Garry J

Posted in Applications, News | Tagged , , , , | Leave a comment

DuinoMite: Todays little “waste of time”

 
Posted by YT2095 on Feb 11, 2012 1:18:32 AM
 
DuinoMite: Todays little "waste of time"

Ok, so here`s some pics of the little beastie that`s used up so much of my time this week, I`v mounted it to an Alu plate in this picture with little silicone rubber feet, I had to rob some of my daughters beads to use as stand-offs for the board mountin nuts so the underside didn`t short out, I used M2 nuts/bolts, but be careful if you do the same around the Audio out and the Power In corners, as it would be Really easy to short out some vital stuff!

perhaps Nylon if you have it?

 

DCP02342.JPG

 

the reason other than that of pure mechanical stability was so that I could Also mount it into the slot at the back of my breadboard for ease of wiring later, it`s a bit wobbly at the moment, but nothing a few crimps in the plate edge won`t fix (or bubble gum).

 

DCP02343.JPG

 

What!?… I like Colors! ok

besides, it was the cheapest Funky looking keyboard I can find and my kids love it.

 

DCP02344.JPG

 

thats the entire setup as it stands currently, incidentaly (other than wondering Why I can hear a lawnmower outside when there`s 2 inch of snow), the 12v SLA battery at the right hand side is to power the LCD TV monitor in the background that I use to run the Duinomite on, and yes, the Really observant will have noticed that I`m charging it via a car light bulb.

 

so yeah, that`s what I`v been messing with for the last week, these things are a dream to program! and I`v already written several progs to help my daughter advance with her maths (beyond the pre-chewed tripe they`re fed at sko0l).

 

I can hardly wait to get my hands on a RaspberryPi! (who needs sleep anyway?).

 

Posted in News | Tagged , , | Leave a comment

DuinoMite, a Fantastic “time waster”

Reblogged from: a Fantastic "time waster"

Posted by YT2095 on Feb 9, 2012 1:56:13 AM

 

 


I`m a bit too old now to say "I`m in Love", so I`ll temper that a little and say I`m certainly Infatuated with my latest item to hit the bench.

and I`v not "lost" so much time since the Internets were created as I have with this DuinoMite board!

Being quite New, I found it a little hard to find usable info about these, esp when it came to upgrading the firmware from the Factory standard.

but Having worked it out eventually as my Enthusiasm precludes the reading of manuals etc… (until something goes wrong of course!), I probably could have saved myself some time, probably… perhaps… maybe?

OK I`m Male! we DO things like that

 

so back to the chase, these things are Arduino/ credit card sized SBCs, at least the Mini version is, and the standard version isn`t much bigger, that you can jack a VGA monitor and a PS2 KBD into, give it some power (Adaptor/wall-wart or USB), and get playing Straight Away in BASIC!

the entire this IS Open Source, and you can slap all sorts of OS` into the thing, I`m happy with BASIC, but C, C++, MM Basic are all there to be had at.

it`s based on Microchip`s PIC32, so you can even code in Microchip if you wanted to as it has an ICSP port (0.05 pin spacing though).

there`s a micro SD card slot built in as a sort of HDD, and formatted in FAT32, will take any size you want to put in it! the lang supports data logging to this drive as well the internal A: drive (the PIC 32`s own memory of 256k Avail).

I bought 4GB cards for my Duinomites, I can`t really see me Ever using that much! but then again, it`s better to Have and not Need, than to Need and not Have!

so yeah, I`v spent the last 3+ days in the land of BASIC again, and it`s been the best waste of Time I`v had for years!

and of course it`s kinda nice to have in effect an Arduino (I have the add-on arduino card that fits on the GPIO port), that doesn`t need an external PC and IDE, only a KBD and Monitor, and programs in Directly, that you can do ALL the arduino stuff and more with.

 

I give it a good 9/10, there Are mistakes in the documents and help files, the S/ware is still New and being worked on and upgraded regularly, it has an active userbase although maybe not as much hype as RaspberryPI has currently (I`ll get one of those eventually too), but it`s a Good product and you`ll have Plenty of fun with it, and like me… lose Loads of Hours!

so where was I, ah yes!

 

10 print "Love Ya`ll ";

20 goto 10

 

> run

 

 

 

 

 

 

 

 

 

 

Posted in News | Tagged , , , | Leave a comment