The HC-11 and HC-12 are low cost 433MHz Wireless Transceiver Modules. It would be fun if opensource firmware could be developed for the on-board STM8S003F3P6 microcontroller. A free IDE for STM8 can be downloaded at Cosmic http://cosmic-software.com/download.php or look at STVD-STM8 from ST.
After investigating the HC-11 pcb two test pads are identified. One connects to the SWIM port, the other to RESET. This is a HC11 HCMODU0054.
Luckily al digital CC1101 pins are connected to the STM8. See the connection matrix for details.
Connection matrix :
I have a couple of electric Lego Duplo trains which I want to make more intelligent. Like remote control, collision/stall detection and the ability to work together to pull more load. For the inter locomotive communication I’ll use IR transceivers at the front and back. To keep it simple the IR beam is not modulated and is connected to an UART. (one UART for the front and one for the back of the locomotive). I have tested a receiver circuit using a photodiode and a phototransistor. The phototransistor circuit is the most simple and worked well with a range over 30 CM which is enough. a baudrate of 1200 work best, with 2400 and 4800 baud the range was decreased.
This circuit can also be used with an Arduino. The IR LED and IR phototransistor pairs are sold on ebay.
A while ago I purchased some FGD280E3725 TFT LCD Touch displays at eCyberspaces, see 2.8 inch 37P TFT LCD Screen ST7781R TP I received the connector pinout but did not know if the display had a 16 or 8-bit databus width. The ST7781R uses Interface Mode Select bits to set the interface type. Since the display has either an 8-bit or 16-bit interface I assume that pin IM0 is wired to the FPC. The display has an FPC type FPC2803725 0r FPC2803715 depending on the display. This FPC contains two resistors R1 and R2. Only one Resistor is populated. R1 is connected to VCCI and R2 to Ground. So currently my device is set to a 16-bit bus width since R2 is populated so IM0=0. I’ll remove R2 and place R1 and then I assume the Interface Width is set to 8-bit. I’ll test this when my test PCB arrives.
The goal was to make a simple low cost audio player like can be found in Chinese toys. The second goal was to learn about ARM microcontrollers, the system is built around a ST STM32F030F4.
The system contains the following parts:
- A simple File System
- SPI Flash storage
- A terminal program to write WAV files to the File System
- A 8KHz mono WAV player with up sampler to 32KHz
- 32KHz 8-bit PWM to drive the speaker
- A state machine to control which file to play
- A trick to save the previous state during Standby mode
The hardware/software design can be found at github: https://github.com/MvdLande/Toy-Audio
Currently I have build Hardware V1 Rev A. The player uses a 32KHz PWM signal to directly drive the speaker using a N-MOSFET. I’m using a 32KHz signal to play a 8KHz WAV file, the speaker and the human ear will filter out the undesired frequencies. a DC signal of Vcc/2 is always applied to this speaker. It works, but I’m going for V2 which has a low pass filter to filter the PWM signal and an audio amplifier. Using Hardware V1 I have replaced the 8 Ohm speakers with 16Ohm because the can become hot while playing a long song. Version V1 started as a proof of concept. The code is a little messy. I might clean it up later on. The current software support 2 WAV files, which can be loaded using a Terminal program with Y-modem (like Tera Term)
Schematic: Hardware V1 Rev : A