Affichage des articles dont le libellé est In vacation!. Afficher tous les articles
Affichage des articles dont le libellé est In vacation!. Afficher tous les articles

vendredi 24 juillet 2026

How to go on vacation with peace of mind!

I would simply say: with as few nagging concerns as possible. 

And the best way to achieve that is to finalize certain projects that are at a conclusive stage. 

Since December 2025, I've been working on two main subjects: an FPGA-based Drumulator emulator, and porting an MSX cartridge design to FPGA. Both have been important because, first, I really had to level up my VHDL skills. Implementing the ZILOG CTC controller in VHDL — complete with the full vectorized interrupt system — was a genuine challenge. But without it, I couldn't have implemented even the Drumulator's Data potentiometer. 

That's the software side of things. 

On the hardware side, I also had to design a PCB for the MSX cartridge, this time for the larger FPGA — an Efinix TRION T20. And that meant tackling my very first four-layer PCB design.

What's more, TRION FPGAs are somewhat trickier to implement than Gowin FPGAs, for instance. That said, it really depends on the specific chips and other factors that can certainly nuance that view — but for this MSX cartridge, it definitely held true. With the physical space constraints of a cartridge, plus the fpga size and the number of passive components needed, sticking to two layers was simply out of the question.

I actually reached out to a PCB specialist who quoted me over €1,500 just for the design work. No doubt he was a pro, but that was way out of my budget — even when considering more affordable options from Asia.

So I had no choice but to tackle it myself!

It took a fair amount of time to lay out the board in KiCad, assemble it, and start testing. But at least I had the satisfaction of seeing the FPGA communicate with the JTAG probe almost right away.

After that came the implementation of the internal Sapphire processor, and finally the interfacing with the MSX bus.

A professional would say none of this is particularly remarkable. And I'd agree. But when you're a weekend hobbyist with no formal background in the field, the road is obviously a bit less 'smooth sailing.'

But there it is! I finally got my first MSX machine to boot on my new cartridge. And I have to say — it makes me absolutely thrilled!


It took a few hours of work just to be able to take this photo — and then I had to adapt the VHDL code I'd written during my tests with the Efinix development board to this new hardware. Unsurprisingly, it didn't work straight away, but thanks to Efinix's debugging tools, I finally managed to get the cartridge up and running:



In step '1', the MSX computer places address addr_IN = 0x4000 on the bus. This is the first address where a valid cartridge signature is expected. In step '2', the MSX reads from the cartridge with SLTSL_IN = 0 AND RD_IN = 0, and finally in step '3', the cartridge returns 0x4241 — which is the signature, i.e. 'A' and 'B' in ASCII.

You may notice that in step '2', the address used to access the internal FLASH on the cartridge is not 0x4000 but 0x2000. That's simply because the FLASH has a 16-bit data bus. Bit '0' of the MSX address is ultimately used to select which of the two bytes should be presented on its data bus. This is also why the FLASH returns 0x4241 — both bytes are read out as a single 16-bit word.

So, a bit of internal address translation going on.

I should also mention that during my initial tests, I used small delays to handle FLASH writes. These aren't standard components — writing to them requires a specific procedure and wait times. To keep it short, this time I'm using the FLASH's #READY/BUSY signal directly for all operations, so I'm getting as close as possible to the FLASH's maximum speed. And I have to say, writing — and thus transferring data from the PC — is now significantly faster.

From time to time, I also work on other little projects — like the CODY computer, for instance.  


I just find this tiny machine really interesting and very affordable, and since all the sources are available, it's a great source of creative fun and distraction that brings me back to my 80s computing pleasures. And that's precisely what this little computer is all about. So I adapted a USB keyboard adapter for it.


I used a solution that could definitely be improved, especially by using a Pi PICO. And since I've just managed to get the PICO development environment up and running, I think I'll do a little study on replacing it with that chip.

Finally, I was able to type things on the keyboard and run the first little program that works.
 


I also sent out a USB expansion board for an AKAI sampler to be fabricated. I honestly have no idea whether it'll work, because Akai used some pretty odd tricks on their original board. But at least this time, the backplane connector should be correctly wired — because despite double-checking everything, I still managed to reverse the ROWs. So the whole thing was upside down. You don't get to be a "Sunday tinkerer" for nothing!



I should get the board back when I return from vacation. I'll still have a few days to test it. And if it doesn't work — well, so be it. I'll have done what I could with this board and Akai's rather baroque design choices.

December 2025 was a big month for me. That's when I really started picking at artificial intelligence about VHDL, and it helped me make huge strides on the subject.

But beyond the technical side and the knowledge I gained, what really mattered was the freedom to learn. 
I don't know how things work in other countries, but Western societies tend to be pretty rigidly class-based. France is a perfect example — it still runs on a kind of "Ancien Régime" model where, if you're a nobody (which I am), you're effectively locked out of higher education. I'm oversimplifying, but the core truth is there: the education system is basically a class-filtering machine that only lets the upper classes access the kind of studies that lead to a "normal" professional life.

"The big shots land the fancy seats
Right on
The rest get Saint-Maur, Châteauroux Palace
Nowhere to go"

(Saint-Maur and Châteauroux are prisons, for real.)

InFrench original : 

"Les cadors on les retrouve aux belles placesNickelLes autres, c'est Saint-Maur, Châteauroux PalacePlus d'ciel"

(Song by Alain Souchon ‧ 1988)

Artificial intelligence currently lets you break out of that situation. Which is a huge pleasure for me, because it makes me more creative. But for how long? That's a whole other debate.