Hi!
I published a 3D printed case suitable for a ‘DIY Arduboy Clone’ mounted on a 70x50mms piece of board.
Link. http://www.thingiverse.com/thing:2283349
I hope you find it useful.
Have fun!
Hi!
I published a 3D printed case suitable for a ‘DIY Arduboy Clone’ mounted on a 70x50mms piece of board.
Link. http://www.thingiverse.com/thing:2283349
I hope you find it useful.
Have fun!
Awesome! Does the sound works properly with that buzzer?
Omg hah it’s using mouse button switches!
Yes!! desoldered from recicled broken mouses. The ‘click’ is great.
Sounds ok, without any resistor, sounds a bit ‘broken’ but with the wheel potentiometer you can adjust the volume and keep a good sound.
A 200-400 Ohms resistor it’s ok for a good sound and aceptable volume
Really nice! Thanks for sharing,
Oooooooo I just noticed you used a 1.3" SH1106 OLED, can you please explain what changes you made to the libraries to get it working?
For the SH1106 screen i take some code from a library shared through this community… (I can´t remember the thread…)
The changes in code are in the src/core/core.cpp and src/Arduboy2core.cpp for arduboy and arduboy2 libraries.
In Arduboy2/src/arduboy2core.cpp relace the two ‘paintscreen’ funcions with this:
void Arduboy2Core::paintScreen(uint8_t *image, bool clear){
for (int8_t i = 7; i >= 0; i--)
{
LCDCommandMode();
SPI.transfer(0xB0 + i); // Set row
SPI.transfer(0x02); // 0x02, Set lower column address (use 0x00 for SD1306)
SPI.transfer(0x10); // Set higher column address
LCDDataMode();
for (uint16_t j = 128; j > 0; j--)
{
if(clear) image[i*128+128-j] = 0;
SPI.transfer(image[i*128+128-j]);
}
}
}
void Arduboy2Core::paintScreen(const uint8_t *image)
{
for (int8_t i = 7; i >= 0; i--)
{
LCDCommandMode();
SPI.transfer(0xB0 + i); // Set row
SPI.transfer(0x02); // 0x02, Set lower column address (use 0x00 for SD1306)
SPI.transfer(0x10); // Set higher column address
LCDDataMode();
for (uint16_t j = 128; j > 0; j--)
{
SPI.transfer(image[i*128+128-j]);
}
}
}
And for the Arduboy/src/core/core.cpp in the Arduboy library replace the paintScreen funcion for this code:
void ArduboyCore::paintScreen(unsigned char image[])
{
for (int8_t i = 7; i >= 0; i--)
{
LCDCommandMode();
SPI.transfer(0xB0 + i); // Set row
SPI.transfer(0x02); // 0x02, Set lower column address (use 0x00 for SD1306)
SPI.transfer(0x10); // Set higher column address
LCDDataMode();
for (uint16_t j = 128; j > 0; j--)
{
SPI.transfer(image[i*128+128-j]);
}
}
}
i’m pretty sure that with only this changes the SH1106 works well but i wrote this modifications some weeks ago and maybe i forgot something.
The good thing it’s that this code works for SSD1306 and SH1106 and the only change it’s the 0x02 value in one line. So you can easily adapt for both drivers.
And the bad thing it’s that consumes more memory. not much but i can’t load Evade that occupies 99% of memory. (Solved deleting some parts of the soundtrack data )
Try and comment if worked or have some issues.
If people it´s interested I can share the full file or the library trough OneDrive or something like this. I don’t have Github.
Hope you find useful this code. good luck!
yaaaaaaaa! Thank you very much! Muchas gracias!
I will try this out this soon, I got all the parts for my own fakeduino and will put aside some time to build it, if I can stop trying to play Circuit Dude that is.
Thank you again!
You’re wellcome! De nada!
Good luck with your fakeduboy!!
Whoa. These are wicked-looking!
Sorry for necrobumping but I want to share here that im working on my own front cover and its going to be even more accurate to the original design.
Not only will you have a smaller fakeduboy (if you cut off some parts), but it can also work with the existing arduboy!
You can check out the work-in-progress model here