-
-
Notifications
You must be signed in to change notification settings - Fork 7
Mods
Since there is some space left (not much, but still), you can still connect almost any module via I2C. These pins are already used for the touchscreen, so the address 0x38
is already reserved. Solder wires at the bottom side of the board to SDA and SCL pads, also C16 for power. Example modules can be pressure/temperature sensors, a small OLED screen, colour sensor or maybe even a microcontroller.
Access the hardware with your library of choice in your application.
The resistors responsible for LEDs are R28 and R27, both 1kΩ.
To lower the maximum brightness, desolder one of R13, R14, R15 or R16 as theyre all connected in parallel, creating a 2,5Ω resistor. Making it even lower resistance could damage the brightness, so you must know what you're doing!
The DAC "converter", consisting of two RC filters, have been adjusted to output frequencies from 23Hz to 18kHz. The output gets additionally filtered as recommended in the PAM8403 datasheet, however you can replace the 1uF (C10 and C12) with 470nF caps.
L1-L4 and C4, C5, C3 and C6 create an EMI (electromagnetic interference) filter, but normally it's not needed. I don't recommend to solder it, as it made my audio quality even worse. Do it if you actually can hear EMI.
Technically, instead of attaching an external antenna, one could just connect a long wire to act as an antenna (something like wi-fi antenna in laptops). Not tested.
If you want to change the case then you can use .3mf or .f3d source you have Fusion. Remember to visit EasyEDA archive too, where you can find exact positions of buttons and joysticks on the PCB - just in case you'd like to design your own case from scratch. A common non-printed choice is lasercut plexi or wood. An expensive option would be CNC milling. There is a 4" IPS screen that utilizes DSI interface, which uses basically all pins on the pi, but iirc leaves I2C - a great path is someone would like to make a proper handheld, instead of a radio remote.
The licence allows you to create your own version of Malinka, just as long as you follow the rules. The list of improvements could be quite long, but one of the goals of the project is to make it affordable for beginners too. Just so you don't repeat, check this little changelog:
- ✔️ add test pads
- ✔️ change layout so the touch connector is in place
- ✔️ change cutout so triggers can be printed w/o supports (they still need but much less)
- ✔️ change power switch to smd one, and re-route battery charger
- ✔️ change normal nrf to version with pa+lna
- ✔️ improve pwm soundcard
- ✔️ make layout symmetric (?)
- ✔️ instead of using cutout, make a huge pad for the screen cable
- ✔️ move the pi so it doesn't need to be cut
- ✔️ remodel buttons as needed (guides, holes, flat shape)
- ✔️ test parallel (8080) connection - useless, we stay with spi
- ✔️ stereo sound output
- ✔️ speaker enclosures (kinda)
- ✔️ usb c charging
- ✔️ make a border in the case for matching
- ✔️ isolate audio power from the board
- ❌
move to eagle instead of easyedafrick new eagle they broke it so much - ❌ consider cm4 instead of zero2w - cm4 is an overkill for this
- ❌ consider other pis such as mangopi - rpi is just popular and good and such
- ❌ add a soundcard via i2s (cannot have spi1 and i2s at once)
- ❌ merge usb user with usb charge into one usb c (would need an advanced USB controller)
- ❌ consider a microcontroller instead of standalone adc - not everyone has a programmer
- ❌ consider a better lcd - ips screen would take almost all pins, thus requiring a uc too
A neat addition would be hidden antenna, cuz that exposed SMA connector doesn't look really well.
You can try to improve, change or add more functions to the main driver. For that, you'll need to build it from source. As of the touch controller overlay, it uses polling instead of interrupts because of not enough GPIOs. Technically, a not so lazy engineer could move one button to the MCP3008, and use the freed pin as the FT6236 interrupt pin. You will need to change the overlay and recompile it too.
The default driver converts physical buttons into joystick buttons. However, I included a special driver next to the default driver just for that reason - just change the driver in /etc/rc.local
!