-
Debouncing
03/25/2017 at 19:26 • 0 commentsAdded timed sample of buttons (16ms) as a countermeasure for contact bouncing.Used Timer 0 to overflow at each 16msTCCR0 |= (1 << CS00) | (1<<CS02); // timer 0 prescaler 1024, overflow at FOSC/1024/256
Then wait for Timer 0 overflow before sampling the buttons
// Sample controllers each 16ms for 16MHz crystal (22ms for 12MHz) if (TIFR & (1<<TOV0)) { Get_digital_controller_data(); TIFR |= (1<<TOV0); // reset overflow flag }
This prevents bouncing at later part of the code which sends a packed each time it detects any change in the controllers.... else {// or if data has changed if (memcmp(&gamepad_report_1, &gamepad_report_1_old, sizeof(gamepad_report_t)) != 0) { to_send = 1; } } ...
-
Compiling issues
03/06/2017 at 15:09 • 0 commentsno such file or directory
The makefile from github expects a directrory named 'output' to generate then read some files (like .map ) and a folder 'bin' to generate the hex files.
To fix this error message:
- create a folder named 'output' at the same folder of each project.
- create a folder named 'bin' at the upper level which contains all projects (and contains the bootloader and usbdrv)
That should fix the annoying errors until I fix the repository to include the missing folders.
-
Pinout Diagram for Single Face Board
09/12/2016 at 23:43 • 1 commentI've lost some time debugging a firmware until I realized that I was taking the B1,B2,B3,B4 pins on the board by PB1 PB2 PB3 PB4 on the single face board. Then to avoid future mistakes such that I've drew the pinout diagram for this board.
-
Built and tested Single Faced PCB
08/03/2016 at 02:40 • 0 commentsI've just built and tested the conventional components, single faced printed circuit board for AVeRCADE. As I've imagined there were some small short circuits due to the proximity of some tracks but easily detectable with a multimeter. When checking with the magnifier glass I've realized that the board should have stayed longer in the etching bath because most of the short circuits were caused by very thin copper connections that remained from the corrosion.
Here are the 1-inch board side by side with the Single faced board. It has roughly the size of an Arduino.
The same firmware can run on both boards. After all they share exactly the same circuit.
-
DIY Single Face PCB: Built!
08/02/2016 at 13:13 • 0 commentsI've just etched the single face PCB. The results were good but I am thinking about changing the width of some tracks to reduce the probability of a short circuit.
-
Enhanced PTH board for homemade built
07/28/2016 at 14:18 • 0 commentsThe component pads have been enlarged to ease the home built versions of the board.
-
New PCB layout: single face, through hole components
07/26/2016 at 05:20 • 0 commentsJust added another PCB layout with conventional components (through-hole) and single sided for ease of diy board manufacturing. The board measures 1.8 x 2.6 inches (roughly 40 x 70 mm) and has connections for VCC and RESET pins. The remaining pins were kept at the same configuration as the original board which means 2 rows of pins, A1-A9 and B1-B9.
The Eagle files are on github under "circuit" folder.
-
Repository cleanup and new firmware available
07/13/2016 at 03:55 • 0 commentsHere are some news on the AVeRCADE project:
- The repository tree was cleansed. Most of the firmware variations now share the same V-USB driver that was updated to the latest version (20121206).
- The makefile now generates the .hex files on a "bin" folder at the root of the "Firmware" directory with different names according with the firmware variation and the microprocessor( Digital_Mega8.hex, DualDigital_Mega88.hex, etc...)
- New firmware for Dual 6 button Sega Genesis (Mode and Start buttons also available).
Things yet to be done
- Fix the references of USBASP and Bootloader firmware so they use the same V-USB folder as the remaining firmware alternatives.
- Make the composite device work (keyboard and joystick) so the ZX Keyboard + Joystick can continue