-
Notifications
You must be signed in to change notification settings - Fork 17
/
history.txt
467 lines (345 loc) · 20.4 KB
/
history.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
### CODING 319 - 2019.10.18 ###
[libraries]
* TimerOne: SetPeriod() for RTC should write data into cmos (register 0x0A).
Add the protection of initialize for start().
Now setPeriod() has a upper limit 21474836, if over this value, it will be set to 21474836.
* Motion86: Fix some bugs.
### CODING 318 - 2019.09.05 ###
[IDE]
* Compatible for Arduino IDE 1.8.9
* Note: copy "java" directroy of Arduino to 86Duino. It can solve "ERROR downloading" problem
when using "Boards Manager" to download external json files (those links in "Additional boards URLs").
Java version problem.
[libraries]
* Change some incorrect servo function name like "mcpwm_xxx()" to "mcsv_xxx()".
* Bug Fix: Servo86 library does "not" clear the interrupt status of cooperating library (like Motion86).
Other like TimerOne, MsTimer2 library also be fixed as above.
* TimerWDT: Add the third parameter of attachInterrupt() to enable "FPU" in ISR. Set "true" to enable, default is disable.
* Add two new libraries: Motion86 and Modbus.
* Encoder: Change the define of pulseMode to "enum" type for the compatibility of Motion86 library.
[core]
* Add the "wiring_irq.cpp" to manage irq_setting (ex. Enable/Disable FPU).
### CODING 317 - 2018.10.11 ###
[IDE]
* Compatible for Arduino IDE 1.8.7
[libraries]
* Add new I2C interrupt STATUS for Wire library.
* Now, you can save the frame files in USB disk (D:\), the load("D:\FrmName.txt") can get them by Servo86 lib.
* Add the deconstructor for Servo class in Servo.cpp, Servo.h, Servo86.cpp, Servo86.h, AIServo86.cpp, AIServo86.h.
* Add "PLAY_MUSIC" command in FirmataPlus86.h.
* Update the "Audio" lib. It now supports the non-blocking playing and has a friendly API.
* Now the Audio supports 86ME Mk-II 2.2.0.
### CODING 316 - 2018.02.05 ###
[IDE]
* Fix a compiling error for FirmataPlus.ino.
(modify the writeProgram() in arduino-core\src\processing\app\preproc\PdePreprocessor.java)
* Compatible for Arduino IDE 1.8.5 (from 1.6.11 to 1.8.5)
* Update the Logo picture for 1.8.5.
[core]
* GCC update to 6.4.0.
[libraries]
* Move MAX_SERVOS define from Servo.cpp to Servo.h.
* Support the Dynamixel MX-64 servo on AIServo86 library.
* Update FreeIMU1 : speed up initialization.
* Add the FirmataPlus86 library (support Arduino WiFi shield, ESP8266, Ethernet, USB Serial).
You can use the Scratch2.0 including 86Duino block to build your program.
* Fix a bug for detach() and add the error message in load() in Servo86 library.
* Add the "INPUT_NOCHANGE" setting in the wiring_digital.cpp and pins_arduino.h.
* Move the "DhcpClass* _dhcp" form private to public for the Ethernet.h.
### CODING 315 - 2017.01.20 ###
[core]
* The defalut warnning is "-w" in platform.txt.
* Add the define of prototype of 86Duino AI board in cores, ex: pin define etc.
[libraries]
* Add the AIServo86 library for Serial AI Servo. (ex: Dynamixel AX-12, RX-28, MX-28, XL-320 etc.)
* Add bool return in load() to load offset or frame files by using Servo86 library and
update run() to wait specified time when getting the same target at IDLE state.
* Add the new CATMULL-ROM SPLINE algorithm in Servo86 library.
* Fix a memory alloc bug when using cubic spline funciton in Servo86 library.
* Fix a bug for internal array size and support the prototype of 86Duino AI board in FreeIMU1 library.
* Support the prototype of 86Duino AI board in Firmata library.
* Support the prototype of 86Duino AI board in Wire library.
* Fix a bug for attachInterrupt() and support the prototype of 86Duino AI board in Encoder library.
### CODING 300 - 2016.08.27 ###
[ide]
* Compatible with Arduino 1.6.11.
* Modify UI/arduino-builder.exe to be in line with 86Duino style.
[core]
* Add the NOMICMAX define in Arduino.h.
* GCC update to 6.1.0 and DJGPP 2.05.
* Fix a bug for v86dude.exe. If the updating filename too long, the v86dude.exe will sometime crash.
[libraries]
* For Servo86, support the CubicSpline and CubicSpline(constrain) algorithm to draw the smoothing path when servos moving.
* For Servo86, support to import the Vstone frame files (including ASCII/UTF-8/UTF16 type).
* Now the TwoWireLEGO class is only used on 86Duino Zero/One/EduCake.
* Add the Adafruit_GFX and RGBmatrixPanel library to support Adafruit LED Matrix (https://www.adafruit.com/product/420)
* Fix a marco conflict with C++ STL in Rosserial86 library for GCC 6.1.0.
### CODING 213 - 2016.06.17 ###
[core]
* Updated the implementation of marco of F(string_literal) in WString.h and
the implementation of print(const __FlashStringHelper *ifsh).
* Add the uintptr_t define in stdint.h.
[libraries]
* For Servo86, the read() and load() on ServoFrame class allow "String" type parameters.
* For Servo86, add the servoMultiRealTimeMixing() to regulate one frame.
* For Servo86, update the MotionEditor.ino example to accept the 6-axis or 9-axis sensor (ex. LSM330 or RM-G146).
* For FreeIMU1, modify the implementation of getRegVal() to speed up if no any I2C device connected with 86Duino.
* For FreeIMU1, now support the RM-G146 module (RM-G146 info: http://www.roboard.com/?page_id=1055)
* Remove the SpiderL3S from the \libraries.
### CODING 212 - 2016.03.28 ###
[core]
* Support the new 86Duino PLC board. (Use the new pinmap method in Arduino.h, HardwareSerial.cpp, HardwareSerial.h,
WInterrupts.cpp, tone.cpp, wiring.cpp, wiring_analog.cpp, wiring_digital.cpp, wiring_pulse.cpp, wiring_shift.cpp)
* The IPADDR_NONE is changed to INADDR_NONE for compatibility, same change in dns.cpp for Ethernet library.
* Fixed: the strlen() in findUntil() will crash if it get the NULL character pointer.
* Fixed: the analogRead() will return the value of another pin when the CPU runs on 500MHz.
[libraries]
* Fixed: a bug for adjusting the frequency in Audio library.
* Update: Firmata version from 2.3.6 to 2.5.2.
* Use new pin mapping method in some libraries: AFMotor, Servo, Servo86, Encoder, GSM, IRRemote, softwareSerial,
TimerOne, Tlc5940, UTFT, UTOUCH
* Add RTCZero library.
* Fixed: sometimes lost data via ESP8266 module using rosserial86 library.
* Fixed: the servoMultiRun() in playPositions() should use 45 parameters to know which servo should be moved.
* Update: WiFi library for Arduino 1.6.8 compatibility.
### CODING 211 - 2016.01.12 ###
[core]
* Fixed: modify the pointer type from short to long type in the pgmspace.h.
* Modify the HardwareSerial.cpp and .h to defined __HARDWARE_SERIAL_LIB.
* Add dtostrf.c and dtostrf.h in core/arduino/avr directory.
* Add itoa.c and itoa.h in cores/arduino directory.
* Add "include "iota.h"" in Arduino.h.
* Add reconnect function in USBcore.cpp, that will force send HIGH and LOW on the USB device's ON/OFF pin
to be sure the PC recognizes 86Duino again when we use soft-boot method to reboot 86Duino.
* Add reset event in USBCore.cpp to re-handshake with PC.
* Fixed: add "USBDEV = NULL" for Serial.end() in CDC.cpp.
* Add "if(mcpwm_ReadReloadPWM(mc, md) != 0) mcpwm_ReloadPWM(mc, md, MCPWM_RELOAD_CANCEL);" in analogWrite()
to avoid invalid behavior for reloading new duty.
* Add wdt.cpp in core\arduino directory and add wdt functions in Arduino.h.
* Add wdt.h file in core\arduino\avr directory for Arduino compatibility.
* Add wdt_init() in wiring.cpp.
* Add "rebootByWDT" boolean in wdt.cpp to record whether 86Duino is rebooted by the internal watchdog.
* Fixed: the type of config value is set to be uint8_t in the HardwareSerial.h.
* Add EEPROM library (CMOS mode) into cores/avr directory.
[libraries]
* SPI lib is updated to new version of Arduino.
* TimerOne lib add "if(mcpwm_ReadReloadPWM(mc, md) != 0) mcpwm_ReloadPWM(mc, md, MCPWM_RELOAD_CANCEL);"
to avoid invalid behavior for reloading new period.
* Fixed: in Servo86 library, re-calculate the endtime when getting the same target position during servo moving.
* Add TimerWDT library (use the internal watchdog to be a timer like TimerOne).
* Modify the Wire library to add WireLEGO class, you are able to use LEGO sensor (ex: ultrasonic sensor) on 86Duino.
* For EEPROM lib, use the I/O functions for more platforms.
* For RF12 lib, use eeprom functions (CMOS mode) in cores to access RF12 config data and
then remove the private EEPROM lib.
* For Rosserial86 lib, now support ESP8266 WiFi module.
* Update the FreeIMU1 library to version 2.0.1.
### CODING 210 - 2015.07.06 ###
[core]
* Added the exception handlers for user's program (ex: divide zero in user's program).
* Support the S4A (http://s4a.cat/), and the firmware sketch works normally after uploading directly.
[libraries]
* Increase the buffer size from 128 to 256 for Firmate library.
* The Servo86 library can read the Frame and Offset files that created by Pololu, KONDO, Innovati Motion Editors.
* Fixed the bug for Time86 Library: the now() returned a unexpected value in Coding 209/208/207.
### CODING 209 - 2015.05.14 ###
[core]
* Updated the files in cores/arduino directory to be compatiable with Arudino IDE 1.6.1.
* Fixed a USB device bug.
[libraries]
* Modified the buffer size from 32 to 128 in the Firmata library.
* Fixed a bug in EthernetClient library: a initial value issue.
* Added the Servo86 Library for controlling RC Servo robot. You can also edit/record/play the motions of robot
via 86ME (86Duino Motion Editor).
(86ME tutorial: http://www.86duino.com/index.php?p=11544)
### CODING 208 - 2015.03.17 ###
[ide]
* Fixed: 86Duino IDE always compile the files that not be modified and already compiled once if the absolute path of 86Duino directory including the blank.
[core]
* Fixed a USB device bug which cause to show nothing when opening serial monitor once again under linux.
* Updated usb_Init(), move USB_connected() to the end of IRQ installation.
* Fixed a compatible issue for Serial.peek().
* Update pgmspace.h to be compatible with Arduino 1.5.8.
* Update the low-level I/O library to speed up the process for io and interrupt.
* Update the implement of delay(), delayMicrosenconds() and millis() to adapt CPU clock automatically.
[libraries]
* Added a rosserial86 library only for 86Duino, which porting on 86Duino according to rosserial library for ROS (Robot Operating System), and support Ethernet and Serial mode, 86Duino now can be integrated to any ROS system.
* Modified SD library to speed up writing buffer into SD card.
* Remove Adafruit_Motor_shield example: AFMotor_ConstantSpeed and AFMotor_MultiStepper.
### CODING 207 - 2014.12.30 ###
[ide]
* Use the DJGPP cross-compiler to compile 86Duino program without DOSBOX and get a shorter compiling time.
* Compatible with Arduino IDE 1.5.8
* Compiler version: GCC is updated to 4.9.2 version and binutil to 2.24 version.
* New compiling system have not 8 word limit of filename.
[core]
* Added the "USE_USBCON" define to improve compatibility for the rosserail package.
* All the name of .cpp/.h files are recovered to origin for compatibility.
[libraries]
* Added RF12 library, support RFM12B wireless transceiver.
* Added RF24 library, support nRF24L01 wireless transceiver.
* Added Mirf library. (another popular library for the nRF24L01 wireless transceiver)
* Added RadioHead library, support RFM22/RF69/nRF24L01... wireless transceiver.
* Updated the EEPROM library. Don't depend on COMS anymore.
* Fixed the ISR uninstall behavior in Encoder Library.
* Fixed a Ethernet bug: re-connect to server for 16 times will cause error.
* Fixed a Serial timeout setting issue for compatibility of rosserail package.
* All the name of .cpp/.h files are recovered to origin for compatibility.
### CODING 106 - 2014.11.11 ###
[ide]
* Added the "ARDUINO" define to improve compatibility.
* Updated the UI color.
[core]
* Added avr/pgmspace.h file to improve compatibility.
* Added WProgram.h file to to improve compatibility.
[libraries]
* Fixed a conflict issue when compiling Ethernet and OneWrie library together.
* Added GLCD Library. Support the GLCD KS0108 Module.
* Added LCD12864 library. Support the GLCD ST7920 Module.
* Added TLC5940 library. Support more PWM channels output.
* Added MsTimer2 library. Provide the second timer for 86Duino.
* Added Adafruit Motor Shield library. Support to control stepper motor/PWM servo/DC motor by using Adafruit's Motor Shield.
* Added VirtualWire library. Support the radio modules like Sparkfun WRL-10534 and WRL-10532.
* Added RF12 library. This is experimental library in this version, and it is just compiled pass, is not tested.
### CODING 105 - 2014.09.18 ###
[ide]
* Added MenuScroller function to avoid that Examples or Sketchbook list too long to view.
* The DJGPP compiler version is updated to 2.04.
[core]
* Fixed a bug in can.cpp, wanalog.cpp, tone.cpp.
[libraries]
* Fixed a bug in EEPROM library.
* Added two functions in Encoder library:
setRange() : set the upbound of encoder counter and enable counter overflow and counter underflow interrupt events.
directionRead() : get the external device's rotating/moving direction.
* Added TimerOne library. (Compatible with Arduino TimerOne library: http://playground.arduino.cc/code/timer1)
* Added UTFT library. (Compatible with Henning Karlsen UTFT library: http://henningkarlsen.com/electronics/library.php?id=52)
* Added UTouch library. (Compatible with Henning Karlsen UTouch library: http://henningkarlsen.com/electronics/library.php?id=55)
* Added Adafruit_CC3000 WiFi library. (Know how connect Adafruit CC3000 WiFi Shield with 86Duino according to this page: http://www.86duino.com/?p=8370)
* Added SpiderL3S library. It is a CC3000 WiFi Module that made by FunMaker group in Taiwan.
[bootloader]
* For EduCake, it also can enter to bootloader mode by shorting RING pin with RTS/DTR pin on RSR232 connector.
### CODING 104 - 2014.07.07 ###
[ide]
* 86upload.exe is renamed as v86dude.exe and put into tools/x86 directory.
* the compiling parameter "-O1" you can find and modifiy it in platform.txt.
[core]
* Fix the bug for ISR that include tone, attachInterrupt.
* In tone.cpp, it uses another PWM module as a timer to avoid the conflict with Servo. You now can use tone and Servo functions together in a sketch.
* Add USB HID, you can get a keyboard/mouse (a new HID device) when plug 86Duino into your PC and need to update 86Duino driver using the 86Duino.inf in "drivers" directory.
* Adjust statck size form 512K to 4M for DJGPP.
[libraries]
* Modified a compatible problem for Wire library.
* Add Encoder library. Support Step/DIR, A/B phase, CW/CCW, Capture, SSI hardware counter modes. It's resolution is 10ns.
* Add IRrmote library.
* Add USB HOST library. (When using the USB Mouse, may first need to connect a USB HUB to 86Duino, then connect USB Mouse to USB HUB)
* Fix the bug for Servo ISR.
* Due to tone and IRrmote use a PWM module as their timer, so servo will use GPIO to simulate PWM signal if you use the 32 PIN.
### CODING 103 - 2014.04.23 ###
[core]
* Modify a bug that will disable a wrong PWM channel if you use muilti-channels PWM and then input 0 or 255 value in analogWrite().
* Support HIGH and LOW level trigger in attachinterrupt().
* Update can_Write() in can.cpp.
[libraries]
* Add SoftwareSerial library that support speed up to 19200.
* Add GSM library. It also allow to use hardware serial to communicate with GSM shield.
* Add CANBus library to communicate with the CAN devices.
* Modify some wrong defines and add a setSS function in SPI library.
* Modify the SPI default speed from 62.5kHz to 4MHz in SPI library.
* Modify the SPI initial speed from 1MHz to 4MHz in TFT library.
* Modify the SPI initial speed from 62.5kHz to 2MHz in WIFI library.
* Support high speed mode (3.3MHz) in Wire library.
* Use a better method to read LSM303 in FreeIMU1 library.
* You can use a new parameter(PCSPEAKER) in tone() to enable internal speaker on 86Duino EduCake.
### CODING 102 - 2014.03.07 ###
[ide]
* Modify the bug for Add external library.
* On Linux, serial monitor default baudrate is 115200 (when it default is 9600, serial monitor will get no data).
* Now, if you select "Chinese Tranditional" language, the title of 86Duino IDE is also changed.
[core]
* Change the queue size of UART TX from 256 to 4096.
* Modify the initial state of input pin to be tri-state if use pinMode(pin, INPUT) and then add INPUT_PULLDOWN for pinMode().
* Add cpuTemperature() to get the temperature of Vortex86EX CPU. You can choose degree C or degree F as units.
* Add the critical sections in pinMode(), analogWrite(), analogRead().
[libraries]
* Add Audio library to play the .wav file in SD card for 86Duino ONE.
* Add FreeIMU1 library to access the GYRO sensor on 86Duino ONE.
* Add Time86 library to access internal RTC on 86Duino.
* Add Capa(CapacitiveSensorDue) library.
* Add OneWire library.
* Update Ethernet library.
Modify MAX_SOCK_NUM from 4 to 128.
Add begin() without mac address parameter.
Add Ethernet.localmac() (read the mac address of 86Duino).
* Modify EEPROM library.
In CMOS, two bytes (20 and 22 bytes) are used by BIOS or other program. We use 26 and 27 bytes to replace them.
Add a new setBank().
Add EEPROM_200B and EEPROM_16K parameters for setBank().
* Modify TWI library to work fine if the SDA's state is LOW after soft-reset.
### CODING 101 - 2013.12.27 ###
[ide]
* Update BasicUploader.java to use the new Hehuan bootloader.
* Update DuinoCompiler.java to compile with third party DOS library.
* Modify build.varaint in board.txt to match them in variants directory.
* Add the ethernet .h files into DJGPP/include and .a file into DJGPP/lib for all platforms.
* Update uploader to support the older bootloader for compatibility.
[core]
* Add Serial232 for the RS232 port of 86Duino EduCake.
* Serial4 is now an alias of Serial485 for 86Duino ONE.
* Serial6 is now an alias of Serial232 for 86Duino EduCake.
* Modify soft-reset method to match Arduino Leonardo.
* Add 600, 14400, 28800 baudrate to com.cpp and uart.cpp.
[libraries]
* Update the EEPROM library to implement 16KB EEPROM using the reserved spaces
in the SPI flash and CMOS of 86Duino.
* Finish and test the old Wifi library (ported from Arduino 1.5.2) and the new
Wifi library (ported from Arduino 1.5.5).
* Add Ethernet library
* Add TFT library
* Modify a bug for SD library to let TFTBitmapLogo work normally.
File.cpp => seek() => fseek(_file, pos, SEEK_CUR) change to fseek(_file, pos, SEEK_SET)
* Modify a bug for Servo library to let servo work normally if you use servo.write(1500) in loop().
Comment "if(servos[channel].ticks == value) return;"
[bootloader]
* A new and rigorous bootloader protocol.
* The bootloader is now named as Hehuan.
* Update bootloader to support the older uploader for compatibility.
### CODING 100r3 - 2013.12.01 ###
[ide]
* Support Mac OS X.
[bootloader]
* Fix a USB descriptor issue that only occurs in Mac OS X.
### CODING 100r2 - 2013.11.17 ###
[ide]
* Support Linux (only tested on Ubuntu 10.04, 11.04, 12.04, and 13.04).
### CODING 100 - 2013.11.12 ###
[ide]
* Modify the GUI appearance.
* Allow to upload the bootloader via IDE.
[core]
* All of Arduino standard API (except USB keyboard and mouse) are implemented
and tested. Many bugs of standard API from the implementation of Coding 080
are fixed.
* Fix a string-buffer-size bug in String::concat(int num) and
String::concat(unsigned int num) of Wstring.cpp.
* Add Serial4 for the RS232 port of 86Duino EduCake.
* Add Serial485 for the RS485 port of 86Duino One.
* Remove the index() function in DJGPP/include/string.h to avoid the
function name conflict problem occuring in an sketch example
from the Arduino 1.5.2 IDE.
[libraries]
* Finish and test the SD library.
* Finish and test the EEPROM library, which implements the EEPROM of 86Duino
using the unused CMOS space (only 200 bytes).
[bootloader]
* Remove the file size limit to sketch programs.
* Much safe memory and disk allocation approach for uploading sketches.
### CODING 080 - 2013.10.18 ###
* First public release for alpha-test users of 86Duino; althrough it can work,
it is still in alpha stage.
* Only Windows XP is supported.
* Most of Arduino API, except few low-level functions such as
attachInterrupt(), are implemented.
* Most of Arduino libraries, such as Servo, SPI, Wire, Firmata, ...,
are ported; however, not everyone is tested entirely.
* The bootloader works but its protocol isn't rigorous and needs further
enhancement.