(DM) Beta Firmware Update.


Author Message
donmck

Guru

Joined: 09/06/2011
Location: Australia
Posts: 1314
Posted: 10:58am 21 Dec 2011      


(DM) Beta Firmware Update.

We now have a DuinoMite Mailing list for firmware updates & News at:
http://www.dontronics-shop.com/mailing-list-dontronics-newsl etter.html

I announced this recently on this forum.
The below mailing list message was sent a few hours ago:

Please Note. We have all the bugs sorted now, right up to V2.7b, even thought we don't have access to the the source code. However these minor bugs aren't included in this beta version, but should be included the next time around.

The PDF manual is now at around 220 pages, and been checked for grammar and English. There is still to be a lot more added in the way of new commands, settings, and UEXT peripherals with sample code.

=================================================

-2011-12-21
DuinoMite Mailing list Subscribers, please note.

There is a beta version of DuinoMite firmware available from:
http://tinyurl.com/6qvq7au

Make sure you have a backup copy of your firmware before updating.

If you have any questions or feedback, please post them to:
http://www.kenseglerdesigns.com/cms/forums/viewforum.php?f=4

We wanted to get something out prior to Christmas so users can see what has been done to date. There won't be a lot done over the festive season, so anything new will have to wait until the new year.

Many thanks to Ken Segler for the massive amount of work he has done on this project. Many of you may not be aware that Gerard Sexton joined the DuinoMite team, and was responsible for the I2C code in Maximite BASIC. He has just completed the beta version of the One wire code for the DuinoMite.

Hopefully all of these improvements will be migrated back into the MaxiMite eventually.

Merry Christmas, and a happy new year to all.

Cheers Don...

================================================

Ken Segler:

need some testers this is a beta version

setpin for freq and period on pins 5 6 7 works .
pin(21) returns battery voltage

turn off trace on NEW
TRON SERIAL will put trace info on serial/usb and not video

screen saver added to setup 5 - 60 minutes in 5 minute increments
PRINT MM.BLANK so you can check how much time till screen blank in seconds
you can also do MM.BLANK 0 to blank the screen or MM.BLANK 200 to add 200 seconds to timeout

sleep minute // Sleep for 1 minute from current time date
sleep Hour // Sleep for 1 hour from current time date
sleep day // Sleep for 1 day from current time date
sleep week // Sleep for 1 week from current time date
sleep month// Sleep for 1 month from current time date
sleep year // Sleep for 1 year from current time date

after it wakes check MM.SLEEP
1 = Sleep completed
2 = pin 7 ext Interrupt
4 = BUT Interrupt
8 = PS/2 Interrupt

================================================

Gerard Sexton: One Wire code....

I have attached some updated code that supports one wire products. There are now 4 commands and 2 functions:

OWRESET pin [,presence]
OWWRITE pin, flag, length, data [, data…]
OWREAD pin, flag, length, data [, data…]
OWSEARCH pin, srchflag, ser [,ser…]

The OWRESET and OWSEARCH commands (and the OWREAD and OWWRITE commands if a reset is requested) set the MM.OW variable:
1 = OK (presence detected, search successful) else 0 = Fail (presence not detected, search unsuccessful).

Where:
pin - the MMBasic I/O pin to use

presence - an optional variable to receive the presence pulse (1 = device response, 0 = no device response)

flag - a combination of the following options:
1 - send reset before command
2 - send reset after command
4 - only send/recv a bit instead of a byte of data
8 - invoke a strong pullup after the command (the pin will be set high and open drain disabled)

length - length of data to send or receive

data - data to send or receive

srchflag - a combination of the following options:
1 - start a new search
2 - only return devices in alarm state
4 - search for devices in the requested family (first byte of ser)
8 - skip the current device family and return the next device
16 - verify that the device with the serial number in ser is available
If srchflag = 0 (or 2) then the search will return the next device found

ser - serial number (8 bytes) will be returned (srchflag 4 and 16 will also use the values in ser)

After the command is executed, the pin will be set to the NOT_CONFIGURED state unless flag option 8 is used.

The data and ser arguments can be a string, array or a list of variables.

OWCRC8(len, cdata [, cdata…]) Processes the cdata and returns the 8 bit CRC
OWCRC16(len, cdata [, cdata…]) Processes the cdata and returns the 16 bit CRC

Where:
len - length of data to process

cdata - data to process

The cdata can be a string, array or a list of variables.

An example of using the code to read the temperature (and all registers) from a DS18B20 (with external power) and search and verify the serial number:

================================================

new
10 dim ar(10)
20 p = 18
30 owreset p,presence:? "Presence: ";presence;
35 precision = 3 : gosub 500
40 owwrite p,1,2,&hcc,&h44
50 for i = 1 to 12000
60 owread p,4,1,b
70 if b = 1 then
80 if (i mod 8) = 0 then exit for
90 endif
100 next i
120 owwrite p,1,2,&hcc,&hbe
130 owread p,2,9,ar(0)
140 ? ", Data: (";ar(0);",";ar(1);",";ar(2);",";ar(3);",";ar(4);",";ar(5);" ,";ar(6);",";ar(7);",";ar(8);
150 owreset p,presence:? " ), Presence: ";presence
155 ? "CRC: ";owcrc8(9,ar(0))
160 tl = ar(0) : th = ar(1)
170 if (th and &h80) then
190 temp = ((tl and &h0f) * 0.0625) + ((tl and &hf0) / 16) + ((th and &h07) * 16) - 128
200 else
220 temp = ((tl and &h0f) * 0.0625) + ((tl and &hf0) / 16) + ((th and &h07) * 16)
230 endif
240 tempf = ((temp * 9) / 5) + 32
250 ? "Temp: ";temp;"C, ";tempf;"F"
260 owsearch p,1,ar(0)
262 if mm.ow = 0 then
264 ? "Search failed"
266 else
270 do while mm.ow = 1
280 ? "Serial number: (";ar(0);",";ar(1);",";ar(2);",";ar(3);",";ar(4);",";ar(5);" ,";ar(6);",";ar(7);" )"
290 owsearch p,0,ar(0)
300 loop
310 endif
320 owsearch p,16,ar(0)
330 if mm.ow = 1 then
340 ? "Serial number: (";ar(0);",";ar(1);",";ar(2);",";ar(3);",";ar(4);",";ar(5);" ,";ar(6);",";ar(7);" )"
350 else
360 ? "Verify failed"
370 endif
390 end
500 if precision = 4 then
510 owwrite p,1,5,&hcc,&h4e,&h00,&h00,&h7f
520 elseif precision = 3 then
530 owwrite p,1,5,&hcc,&h4e,&h00,&h00,&h5f
540 elseif precision = 2 then
550 owwrite p,1,5,&hcc,&h4e,&h00,&h00,&h3f
560 else
570 owwrite p,1,5,&hcc,&h4e,&h00,&h00,&h1f
580 endif
590 return

================================================

NOTE **** as some of the code uses square brackets, and is auto adjusted,
the original mailing list text can be viewed at:
http://ymlp.com/zfMJBi

Cheers Don...

https://www.dontronics.com